diff options
author | David S. Miller <davem@davemloft.net> | 2010-02-17 01:09:29 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2010-02-17 01:09:29 -0500 |
commit | 2bb4646fce8d09916b351d1a62f98db7cec6fc41 (patch) | |
tree | c1f0d002e69868606eca9d1b919835f422892063 | |
parent | 6836b9bdd98e3b500cd49512484df68f46e14659 (diff) | |
parent | b0483e78e5c4c9871fc5541875b3bc006846d46b (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
630 files changed, 12002 insertions, 6391 deletions
diff --git a/Documentation/ABI/testing/ima_policy b/Documentation/ABI/testing/ima_policy index 6434f0df012e..6cd6daefaaed 100644 --- a/Documentation/ABI/testing/ima_policy +++ b/Documentation/ABI/testing/ima_policy | |||
@@ -20,7 +20,7 @@ Description: | |||
20 | lsm: [[subj_user=] [subj_role=] [subj_type=] | 20 | lsm: [[subj_user=] [subj_role=] [subj_type=] |
21 | [obj_user=] [obj_role=] [obj_type=]] | 21 | [obj_user=] [obj_role=] [obj_type=]] |
22 | 22 | ||
23 | base: func:= [BPRM_CHECK][FILE_MMAP][INODE_PERMISSION] | 23 | base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK] |
24 | mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] | 24 | mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC] |
25 | fsmagic:= hex value | 25 | fsmagic:= hex value |
26 | uid:= decimal value | 26 | uid:= decimal value |
@@ -40,11 +40,11 @@ Description: | |||
40 | 40 | ||
41 | measure func=BPRM_CHECK | 41 | measure func=BPRM_CHECK |
42 | measure func=FILE_MMAP mask=MAY_EXEC | 42 | measure func=FILE_MMAP mask=MAY_EXEC |
43 | measure func=INODE_PERM mask=MAY_READ uid=0 | 43 | measure func=FILE_CHECK mask=MAY_READ uid=0 |
44 | 44 | ||
45 | The default policy measures all executables in bprm_check, | 45 | The default policy measures all executables in bprm_check, |
46 | all files mmapped executable in file_mmap, and all files | 46 | all files mmapped executable in file_mmap, and all files |
47 | open for read by root in inode_permission. | 47 | open for read by root in do_filp_open. |
48 | 48 | ||
49 | Examples of LSM specific definitions: | 49 | Examples of LSM specific definitions: |
50 | 50 | ||
@@ -54,8 +54,8 @@ Description: | |||
54 | 54 | ||
55 | dont_measure obj_type=var_log_t | 55 | dont_measure obj_type=var_log_t |
56 | dont_measure obj_type=auditd_log_t | 56 | dont_measure obj_type=auditd_log_t |
57 | measure subj_user=system_u func=INODE_PERM mask=MAY_READ | 57 | measure subj_user=system_u func=FILE_CHECK mask=MAY_READ |
58 | measure subj_role=system_r func=INODE_PERM mask=MAY_READ | 58 | measure subj_role=system_r func=FILE_CHECK mask=MAY_READ |
59 | 59 | ||
60 | Smack: | 60 | Smack: |
61 | measure subj_user=_ func=INODE_PERM mask=MAY_READ | 61 | measure subj_user=_ func=FILE_CHECK mask=MAY_READ |
diff --git a/Documentation/cpu-freq/governors.txt b/Documentation/cpu-freq/governors.txt index aed082f49d09..737988fca64d 100644 --- a/Documentation/cpu-freq/governors.txt +++ b/Documentation/cpu-freq/governors.txt | |||
@@ -145,8 +145,8 @@ show_sampling_rate_max: THIS INTERFACE IS DEPRECATED, DON'T USE IT. | |||
145 | up_threshold: defines what the average CPU usage between the samplings | 145 | up_threshold: defines what the average CPU usage between the samplings |
146 | of 'sampling_rate' needs to be for the kernel to make a decision on | 146 | of 'sampling_rate' needs to be for the kernel to make a decision on |
147 | whether it should increase the frequency. For example when it is set | 147 | whether it should increase the frequency. For example when it is set |
148 | to its default value of '80' it means that between the checking | 148 | to its default value of '95' it means that between the checking |
149 | intervals the CPU needs to be on average more than 80% in use to then | 149 | intervals the CPU needs to be on average more than 95% in use to then |
150 | decide that the CPU frequency needs to be increased. | 150 | decide that the CPU frequency needs to be increased. |
151 | 151 | ||
152 | ignore_nice_load: this parameter takes a value of '0' or '1'. When | 152 | ignore_nice_load: this parameter takes a value of '0' or '1'. When |
diff --git a/Documentation/fault-injection/fault-injection.txt b/Documentation/fault-injection/fault-injection.txt index 079305640790..7be15e44d481 100644 --- a/Documentation/fault-injection/fault-injection.txt +++ b/Documentation/fault-injection/fault-injection.txt | |||
@@ -143,8 +143,8 @@ o provide a way to configure fault attributes | |||
143 | failslab, fail_page_alloc, and fail_make_request use this way. | 143 | failslab, fail_page_alloc, and fail_make_request use this way. |
144 | Helper functions: | 144 | Helper functions: |
145 | 145 | ||
146 | init_fault_attr_entries(entries, attr, name); | 146 | init_fault_attr_dentries(entries, attr, name); |
147 | void cleanup_fault_attr_entries(entries); | 147 | void cleanup_fault_attr_dentries(entries); |
148 | 148 | ||
149 | - module parameters | 149 | - module parameters |
150 | 150 | ||
diff --git a/Documentation/input/multi-touch-protocol.txt b/Documentation/input/multi-touch-protocol.txt index a12ea3b586e6..8490480ce432 100644 --- a/Documentation/input/multi-touch-protocol.txt +++ b/Documentation/input/multi-touch-protocol.txt | |||
@@ -27,12 +27,30 @@ set of events/packets. | |||
27 | 27 | ||
28 | A set of ABS_MT events with the desired properties is defined. The events | 28 | A set of ABS_MT events with the desired properties is defined. The events |
29 | are divided into categories, to allow for partial implementation. The | 29 | are divided into categories, to allow for partial implementation. The |
30 | minimum set consists of ABS_MT_TOUCH_MAJOR, ABS_MT_POSITION_X and | 30 | minimum set consists of ABS_MT_POSITION_X and ABS_MT_POSITION_Y, which |
31 | ABS_MT_POSITION_Y, which allows for multiple fingers to be tracked. If the | 31 | allows for multiple fingers to be tracked. If the device supports it, the |
32 | device supports it, the ABS_MT_WIDTH_MAJOR may be used to provide the size | 32 | ABS_MT_TOUCH_MAJOR and ABS_MT_WIDTH_MAJOR may be used to provide the size |
33 | of the approaching finger. Anisotropy and direction may be specified with | 33 | of the contact area and approaching finger, respectively. |
34 | ABS_MT_TOUCH_MINOR, ABS_MT_WIDTH_MINOR and ABS_MT_ORIENTATION. The | 34 | |
35 | ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a | 35 | The TOUCH and WIDTH parameters have a geometrical interpretation; imagine |
36 | looking through a window at someone gently holding a finger against the | ||
37 | glass. You will see two regions, one inner region consisting of the part | ||
38 | of the finger actually touching the glass, and one outer region formed by | ||
39 | the perimeter of the finger. The diameter of the inner region is the | ||
40 | ABS_MT_TOUCH_MAJOR, the diameter of the outer region is | ||
41 | ABS_MT_WIDTH_MAJOR. Now imagine the person pressing the finger harder | ||
42 | against the glass. The inner region will increase, and in general, the | ||
43 | ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR, which is always smaller than | ||
44 | unity, is related to the finger pressure. For pressure-based devices, | ||
45 | ABS_MT_PRESSURE may be used to provide the pressure on the contact area | ||
46 | instead. | ||
47 | |||
48 | In addition to the MAJOR parameters, the oval shape of the finger can be | ||
49 | described by adding the MINOR parameters, such that MAJOR and MINOR are the | ||
50 | major and minor axis of an ellipse. Finally, the orientation of the oval | ||
51 | shape can be describe with the ORIENTATION parameter. | ||
52 | |||
53 | The ABS_MT_TOOL_TYPE may be used to specify whether the touching tool is a | ||
36 | finger or a pen or something else. Devices with more granular information | 54 | finger or a pen or something else. Devices with more granular information |
37 | may specify general shapes as blobs, i.e., as a sequence of rectangular | 55 | may specify general shapes as blobs, i.e., as a sequence of rectangular |
38 | shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices | 56 | shapes grouped together by an ABS_MT_BLOB_ID. Finally, for the few devices |
@@ -42,11 +60,9 @@ report finger tracking from hardware [5]. | |||
42 | Here is what a minimal event sequence for a two-finger touch would look | 60 | Here is what a minimal event sequence for a two-finger touch would look |
43 | like: | 61 | like: |
44 | 62 | ||
45 | ABS_MT_TOUCH_MAJOR | ||
46 | ABS_MT_POSITION_X | 63 | ABS_MT_POSITION_X |
47 | ABS_MT_POSITION_Y | 64 | ABS_MT_POSITION_Y |
48 | SYN_MT_REPORT | 65 | SYN_MT_REPORT |
49 | ABS_MT_TOUCH_MAJOR | ||
50 | ABS_MT_POSITION_X | 66 | ABS_MT_POSITION_X |
51 | ABS_MT_POSITION_Y | 67 | ABS_MT_POSITION_Y |
52 | SYN_MT_REPORT | 68 | SYN_MT_REPORT |
@@ -87,6 +103,12 @@ the contact. The ratio ABS_MT_TOUCH_MAJOR / ABS_MT_WIDTH_MAJOR approximates | |||
87 | the notion of pressure. The fingers of the hand and the palm all have | 103 | the notion of pressure. The fingers of the hand and the palm all have |
88 | different characteristic widths [1]. | 104 | different characteristic widths [1]. |
89 | 105 | ||
106 | ABS_MT_PRESSURE | ||
107 | |||
108 | The pressure, in arbitrary units, on the contact area. May be used instead | ||
109 | of TOUCH and WIDTH for pressure-based devices or any device with a spatial | ||
110 | signal intensity distribution. | ||
111 | |||
90 | ABS_MT_ORIENTATION | 112 | ABS_MT_ORIENTATION |
91 | 113 | ||
92 | The orientation of the ellipse. The value should describe a signed quarter | 114 | The orientation of the ellipse. The value should describe a signed quarter |
@@ -170,6 +192,16 @@ There are a few devices that support trackingID in hardware. User space can | |||
170 | make use of these native identifiers to reduce bandwidth and cpu usage. | 192 | make use of these native identifiers to reduce bandwidth and cpu usage. |
171 | 193 | ||
172 | 194 | ||
195 | Gestures | ||
196 | -------- | ||
197 | |||
198 | In the specific application of creating gesture events, the TOUCH and WIDTH | ||
199 | parameters can be used to, e.g., approximate finger pressure or distinguish | ||
200 | between index finger and thumb. With the addition of the MINOR parameters, | ||
201 | one can also distinguish between a sweeping finger and a pointing finger, | ||
202 | and with ORIENTATION, one can detect twisting of fingers. | ||
203 | |||
204 | |||
173 | Notes | 205 | Notes |
174 | ----- | 206 | ----- |
175 | 207 | ||
diff --git a/Documentation/trace/ftrace-design.txt b/Documentation/trace/ftrace-design.txt index 239f14b2b55a..6a5a579126b0 100644 --- a/Documentation/trace/ftrace-design.txt +++ b/Documentation/trace/ftrace-design.txt | |||
@@ -1,5 +1,6 @@ | |||
1 | function tracer guts | 1 | function tracer guts |
2 | ==================== | 2 | ==================== |
3 | By Mike Frysinger | ||
3 | 4 | ||
4 | Introduction | 5 | Introduction |
5 | ------------ | 6 | ------------ |
@@ -173,14 +174,16 @@ void ftrace_graph_caller(void) | |||
173 | 174 | ||
174 | unsigned long *frompc = &...; | 175 | unsigned long *frompc = &...; |
175 | unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE; | 176 | unsigned long selfpc = <return address> - MCOUNT_INSN_SIZE; |
176 | prepare_ftrace_return(frompc, selfpc); | 177 | /* passing frame pointer up is optional -- see below */ |
178 | prepare_ftrace_return(frompc, selfpc, frame_pointer); | ||
177 | 179 | ||
178 | /* restore all state needed by the ABI */ | 180 | /* restore all state needed by the ABI */ |
179 | } | 181 | } |
180 | #endif | 182 | #endif |
181 | 183 | ||
182 | For information on how to implement prepare_ftrace_return(), simply look at | 184 | For information on how to implement prepare_ftrace_return(), simply look at the |
183 | the x86 version. The only architecture-specific piece in it is the setup of | 185 | x86 version (the frame pointer passing is optional; see the next section for |
186 | more information). The only architecture-specific piece in it is the setup of | ||
184 | the fault recovery table (the asm(...) code). The rest should be the same | 187 | the fault recovery table (the asm(...) code). The rest should be the same |
185 | across architectures. | 188 | across architectures. |
186 | 189 | ||
@@ -205,6 +208,23 @@ void return_to_handler(void) | |||
205 | #endif | 208 | #endif |
206 | 209 | ||
207 | 210 | ||
211 | HAVE_FUNCTION_GRAPH_FP_TEST | ||
212 | --------------------------- | ||
213 | |||
214 | An arch may pass in a unique value (frame pointer) to both the entering and | ||
215 | exiting of a function. On exit, the value is compared and if it does not | ||
216 | match, then it will panic the kernel. This is largely a sanity check for bad | ||
217 | code generation with gcc. If gcc for your port sanely updates the frame | ||
218 | pointer under different opitmization levels, then ignore this option. | ||
219 | |||
220 | However, adding support for it isn't terribly difficult. In your assembly code | ||
221 | that calls prepare_ftrace_return(), pass the frame pointer as the 3rd argument. | ||
222 | Then in the C version of that function, do what the x86 port does and pass it | ||
223 | along to ftrace_push_return_trace() instead of a stub value of 0. | ||
224 | |||
225 | Similarly, when you call ftrace_return_to_handler(), pass it the frame pointer. | ||
226 | |||
227 | |||
208 | HAVE_FTRACE_NMI_ENTER | 228 | HAVE_FTRACE_NMI_ENTER |
209 | --------------------- | 229 | --------------------- |
210 | 230 | ||
diff --git a/Documentation/trace/ftrace.txt b/Documentation/trace/ftrace.txt index 8179692fbb90..bab3040da548 100644 --- a/Documentation/trace/ftrace.txt +++ b/Documentation/trace/ftrace.txt | |||
@@ -1625,7 +1625,7 @@ If I am only interested in sys_nanosleep and hrtimer_interrupt: | |||
1625 | 1625 | ||
1626 | # echo sys_nanosleep hrtimer_interrupt \ | 1626 | # echo sys_nanosleep hrtimer_interrupt \ |
1627 | > set_ftrace_filter | 1627 | > set_ftrace_filter |
1628 | # echo ftrace > current_tracer | 1628 | # echo function > current_tracer |
1629 | # echo 1 > tracing_enabled | 1629 | # echo 1 > tracing_enabled |
1630 | # usleep 1 | 1630 | # usleep 1 |
1631 | # echo 0 > tracing_enabled | 1631 | # echo 0 > tracing_enabled |
diff --git a/MAINTAINERS b/MAINTAINERS index fe17b8016bcf..64a237bb01ab 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -3411,8 +3411,10 @@ S: Maintained | |||
3411 | F: drivers/scsi/sym53c8xx_2/ | 3411 | F: drivers/scsi/sym53c8xx_2/ |
3412 | 3412 | ||
3413 | LTP (Linux Test Project) | 3413 | LTP (Linux Test Project) |
3414 | M: Subrata Modak <subrata@linux.vnet.ibm.com> | 3414 | M: Rishikesh K Rajak <risrajak@linux.vnet.ibm.com> |
3415 | M: Mike Frysinger <vapier@gentoo.org> | 3415 | M: Garrett Cooper <yanegomi@gmail.com> |
3416 | M: Mike Frysinger <vapier@gentoo.org> | ||
3417 | M: Subrata Modak <subrata@linux.vnet.ibm.com> | ||
3416 | L: ltp-list@lists.sourceforge.net (subscribers-only) | 3418 | L: ltp-list@lists.sourceforge.net (subscribers-only) |
3417 | W: http://ltp.sourceforge.net/ | 3419 | W: http://ltp.sourceforge.net/ |
3418 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git | 3420 | T: git git://git.kernel.org/pub/scm/linux/kernel/git/galak/ltp.git |
@@ -1,7 +1,7 @@ | |||
1 | VERSION = 2 | 1 | VERSION = 2 |
2 | PATCHLEVEL = 6 | 2 | PATCHLEVEL = 6 |
3 | SUBLEVEL = 33 | 3 | SUBLEVEL = 33 |
4 | EXTRAVERSION = -rc5 | 4 | EXTRAVERSION = -rc8 |
5 | NAME = Man-Eating Seals of Antiquity | 5 | NAME = Man-Eating Seals of Antiquity |
6 | 6 | ||
7 | # *DOCUMENTATION* | 7 | # *DOCUMENTATION* |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 4c33ca82f9b1..184a6bd54825 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -702,6 +702,7 @@ config ARCH_OMAP | |||
702 | select ARCH_HAS_CPUFREQ | 702 | select ARCH_HAS_CPUFREQ |
703 | select GENERIC_TIME | 703 | select GENERIC_TIME |
704 | select GENERIC_CLOCKEVENTS | 704 | select GENERIC_CLOCKEVENTS |
705 | select ARCH_HAS_HOLES_MEMORYMODEL | ||
705 | help | 706 | help |
706 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 707 | Support for TI's OMAP platform (OMAP1 and OMAP2). |
707 | 708 | ||
diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 9e7582572741..356d702c0808 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile | |||
@@ -94,7 +94,7 @@ CFLAGS_ABI +=-funwind-tables | |||
94 | endif | 94 | endif |
95 | 95 | ||
96 | ifeq ($(CONFIG_THUMB2_KERNEL),y) | 96 | ifeq ($(CONFIG_THUMB2_KERNEL),y) |
97 | AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=thumb,-Wa$(comma)-mauto-it) | 97 | AFLAGS_AUTOIT :=$(call as-option,-Wa$(comma)-mimplicit-it=always,-Wa$(comma)-mauto-it) |
98 | AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W) | 98 | AFLAGS_NOWARN :=$(call as-option,-Wa$(comma)-mno-warn-deprecated,-Wa$(comma)-W) |
99 | CFLAGS_THUMB2 :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN) | 99 | CFLAGS_THUMB2 :=-mthumb $(AFLAGS_AUTOIT) $(AFLAGS_NOWARN) |
100 | AFLAGS_THUMB2 :=$(CFLAGS_THUMB2) -Wa$(comma)-mthumb | 100 | AFLAGS_THUMB2 :=$(CFLAGS_THUMB2) -Wa$(comma)-mthumb |
diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c index 8bf4153d0840..3bf6304158f6 100644 --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/ata_platform.h> | 14 | #include <linux/ata_platform.h> |
15 | #include <linux/mv643xx_eth.h> | 15 | #include <linux/mv643xx_eth.h> |
16 | #include <linux/gpio.h> | ||
16 | #include <linux/spi/flash.h> | 17 | #include <linux/spi/flash.h> |
17 | #include <linux/spi/spi.h> | 18 | #include <linux/spi/spi.h> |
18 | #include <linux/spi/orion_spi.h> | 19 | #include <linux/spi/orion_spi.h> |
@@ -53,6 +54,11 @@ static void __init rd88f6192_init(void) | |||
53 | */ | 54 | */ |
54 | kirkwood_init(); | 55 | kirkwood_init(); |
55 | 56 | ||
57 | orion_gpio_set_valid(RD88F6192_GPIO_USB_VBUS, 1); | ||
58 | if (gpio_request(RD88F6192_GPIO_USB_VBUS, "USB VBUS") != 0 || | ||
59 | gpio_direction_output(RD88F6192_GPIO_USB_VBUS, 1) != 0) | ||
60 | pr_err("RD-88F6192-NAS: failed to setup USB VBUS GPIO\n"); | ||
61 | |||
56 | kirkwood_ehci_init(); | 62 | kirkwood_ehci_init(); |
57 | kirkwood_ge00_init(&rd88f6192_ge00_data); | 63 | kirkwood_ge00_init(&rd88f6192_ge00_data); |
58 | kirkwood_sata_init(&rd88f6192_sata_data); | 64 | kirkwood_sata_init(&rd88f6192_sata_data); |
diff --git a/arch/arm/mach-mx25/clock.c b/arch/arm/mach-mx25/clock.c index 6e838b857712..6acc88bcdc40 100644 --- a/arch/arm/mach-mx25/clock.c +++ b/arch/arm/mach-mx25/clock.c | |||
@@ -119,6 +119,11 @@ static unsigned long get_rate_nfc(struct clk *clk) | |||
119 | return get_rate_per(8); | 119 | return get_rate_per(8); |
120 | } | 120 | } |
121 | 121 | ||
122 | static unsigned long get_rate_gpt(struct clk *clk) | ||
123 | { | ||
124 | return get_rate_per(5); | ||
125 | } | ||
126 | |||
122 | static unsigned long get_rate_otg(struct clk *clk) | 127 | static unsigned long get_rate_otg(struct clk *clk) |
123 | { | 128 | { |
124 | return 48000000; /* FIXME */ | 129 | return 48000000; /* FIXME */ |
@@ -144,7 +149,7 @@ static void clk_cgcr_disable(struct clk *clk) | |||
144 | __raw_writel(reg, clk->enable_reg); | 149 | __raw_writel(reg, clk->enable_reg); |
145 | } | 150 | } |
146 | 151 | ||
147 | #define DEFINE_CLOCK(name, i, er, es, gr, sr) \ | 152 | #define DEFINE_CLOCK(name, i, er, es, gr, sr, s) \ |
148 | static struct clk name = { \ | 153 | static struct clk name = { \ |
149 | .id = i, \ | 154 | .id = i, \ |
150 | .enable_reg = CRM_BASE + er, \ | 155 | .enable_reg = CRM_BASE + er, \ |
@@ -153,27 +158,30 @@ static void clk_cgcr_disable(struct clk *clk) | |||
153 | .set_rate = sr, \ | 158 | .set_rate = sr, \ |
154 | .enable = clk_cgcr_enable, \ | 159 | .enable = clk_cgcr_enable, \ |
155 | .disable = clk_cgcr_disable, \ | 160 | .disable = clk_cgcr_disable, \ |
161 | .secondary = s, \ | ||
156 | } | 162 | } |
157 | 163 | ||
158 | DEFINE_CLOCK(gpt_clk, 0, CCM_CGCR0, 5, get_rate_ipg, NULL); | 164 | DEFINE_CLOCK(gpt_clk, 0, CCM_CGCR0, 5, get_rate_gpt, NULL, NULL); |
159 | DEFINE_CLOCK(cspi1_clk, 0, CCM_CGCR1, 5, get_rate_ipg, NULL); | 165 | DEFINE_CLOCK(uart_per_clk, 0, CCM_CGCR0, 15, get_rate_uart, NULL, NULL); |
160 | DEFINE_CLOCK(cspi2_clk, 0, CCM_CGCR1, 6, get_rate_ipg, NULL); | 166 | DEFINE_CLOCK(cspi1_clk, 0, CCM_CGCR1, 5, get_rate_ipg, NULL, NULL); |
161 | DEFINE_CLOCK(cspi3_clk, 0, CCM_CGCR1, 7, get_rate_ipg, NULL); | 167 | DEFINE_CLOCK(cspi2_clk, 0, CCM_CGCR1, 6, get_rate_ipg, NULL, NULL); |
162 | DEFINE_CLOCK(uart1_clk, 0, CCM_CGCR2, 14, get_rate_uart, NULL); | 168 | DEFINE_CLOCK(cspi3_clk, 0, CCM_CGCR1, 7, get_rate_ipg, NULL, NULL); |
163 | DEFINE_CLOCK(uart2_clk, 0, CCM_CGCR2, 15, get_rate_uart, NULL); | 169 | DEFINE_CLOCK(fec_ahb_clk, 0, CCM_CGCR0, 23, NULL, NULL, NULL); |
164 | DEFINE_CLOCK(uart3_clk, 0, CCM_CGCR2, 16, get_rate_uart, NULL); | 170 | DEFINE_CLOCK(uart1_clk, 0, CCM_CGCR2, 14, get_rate_uart, NULL, &uart_per_clk); |
165 | DEFINE_CLOCK(uart4_clk, 0, CCM_CGCR2, 17, get_rate_uart, NULL); | 171 | DEFINE_CLOCK(uart2_clk, 0, CCM_CGCR2, 15, get_rate_uart, NULL, &uart_per_clk); |
166 | DEFINE_CLOCK(uart5_clk, 0, CCM_CGCR2, 18, get_rate_uart, NULL); | 172 | DEFINE_CLOCK(uart3_clk, 0, CCM_CGCR2, 16, get_rate_uart, NULL, &uart_per_clk); |
167 | DEFINE_CLOCK(nfc_clk, 0, CCM_CGCR0, 8, get_rate_nfc, NULL); | 173 | DEFINE_CLOCK(uart4_clk, 0, CCM_CGCR2, 17, get_rate_uart, NULL, &uart_per_clk); |
168 | DEFINE_CLOCK(usbotg_clk, 0, CCM_CGCR0, 28, get_rate_otg, NULL); | 174 | DEFINE_CLOCK(uart5_clk, 0, CCM_CGCR2, 18, get_rate_uart, NULL, &uart_per_clk); |
169 | DEFINE_CLOCK(pwm1_clk, 0, CCM_CGCR1, 31, get_rate_ipg, NULL); | 175 | DEFINE_CLOCK(nfc_clk, 0, CCM_CGCR0, 8, get_rate_nfc, NULL, NULL); |
170 | DEFINE_CLOCK(pwm2_clk, 0, CCM_CGCR2, 0, get_rate_ipg, NULL); | 176 | DEFINE_CLOCK(usbotg_clk, 0, CCM_CGCR0, 28, get_rate_otg, NULL, NULL); |
171 | DEFINE_CLOCK(pwm3_clk, 0, CCM_CGCR2, 1, get_rate_ipg, NULL); | 177 | DEFINE_CLOCK(pwm1_clk, 0, CCM_CGCR1, 31, get_rate_ipg, NULL, NULL); |
172 | DEFINE_CLOCK(pwm4_clk, 0, CCM_CGCR2, 2, get_rate_ipg, NULL); | 178 | DEFINE_CLOCK(pwm2_clk, 0, CCM_CGCR2, 0, get_rate_ipg, NULL, NULL); |
173 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL); | 179 | DEFINE_CLOCK(pwm3_clk, 0, CCM_CGCR2, 1, get_rate_ipg, NULL, NULL); |
174 | DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL); | 180 | DEFINE_CLOCK(pwm4_clk, 0, CCM_CGCR2, 2, get_rate_ipg, NULL, NULL); |
175 | DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL); | 181 | DEFINE_CLOCK(kpp_clk, 0, CCM_CGCR1, 28, get_rate_ipg, NULL, NULL); |
176 | DEFINE_CLOCK(fec_clk, 0, CCM_CGCR0, 23, get_rate_ipg, NULL); | 182 | DEFINE_CLOCK(tsc_clk, 0, CCM_CGCR2, 13, get_rate_ipg, NULL, NULL); |
183 | DEFINE_CLOCK(i2c_clk, 0, CCM_CGCR0, 6, get_rate_i2c, NULL, NULL); | ||
184 | DEFINE_CLOCK(fec_clk, 0, CCM_CGCR1, 15, get_rate_ipg, NULL, &fec_ahb_clk); | ||
177 | 185 | ||
178 | #define _REGISTER_CLOCK(d, n, c) \ | 186 | #define _REGISTER_CLOCK(d, n, c) \ |
179 | { \ | 187 | { \ |
@@ -208,13 +216,21 @@ static struct clk_lookup lookups[] = { | |||
208 | _REGISTER_CLOCK("fec.0", NULL, fec_clk) | 216 | _REGISTER_CLOCK("fec.0", NULL, fec_clk) |
209 | }; | 217 | }; |
210 | 218 | ||
211 | int __init mx25_clocks_init(unsigned long fref) | 219 | int __init mx25_clocks_init(void) |
212 | { | 220 | { |
213 | int i; | 221 | int i; |
214 | 222 | ||
215 | for (i = 0; i < ARRAY_SIZE(lookups); i++) | 223 | for (i = 0; i < ARRAY_SIZE(lookups); i++) |
216 | clkdev_add(&lookups[i]); | 224 | clkdev_add(&lookups[i]); |
217 | 225 | ||
226 | /* Turn off all clocks except the ones we need to survive, namely: | ||
227 | * EMI, GPIO1-3 (CCM_CGCR1[18:16]), GPT1, IOMUXC (CCM_CGCR1[27]), IIM, | ||
228 | * SCC | ||
229 | */ | ||
230 | __raw_writel((1 << 19), CRM_BASE + CCM_CGCR0); | ||
231 | __raw_writel((0xf << 16) | (3 << 26), CRM_BASE + CCM_CGCR1); | ||
232 | __raw_writel((1 << 5), CRM_BASE + CCM_CGCR2); | ||
233 | |||
218 | mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54); | 234 | mxc_timer_init(&gpt_clk, MX25_IO_ADDRESS(MX25_GPT1_BASE_ADDR), 54); |
219 | 235 | ||
220 | return 0; | 236 | return 0; |
diff --git a/arch/arm/mach-mx25/mx25pdk.c b/arch/arm/mach-mx25/mx25pdk.c index 921bc99ea231..6f06089246eb 100644 --- a/arch/arm/mach-mx25/mx25pdk.c +++ b/arch/arm/mach-mx25/mx25pdk.c | |||
@@ -91,7 +91,7 @@ static void __init mx25pdk_init(void) | |||
91 | 91 | ||
92 | static void __init mx25pdk_timer_init(void) | 92 | static void __init mx25pdk_timer_init(void) |
93 | { | 93 | { |
94 | mx25_clocks_init(26000000); | 94 | mx25_clocks_init(); |
95 | } | 95 | } |
96 | 96 | ||
97 | static struct sys_timer mx25pdk_timer = { | 97 | static struct sys_timer mx25pdk_timer = { |
diff --git a/arch/arm/mach-mx3/mx31ads.c b/arch/arm/mach-mx3/mx31ads.c index 3e7bafa2ddbb..938c549767dc 100644 --- a/arch/arm/mach-mx3/mx31ads.c +++ b/arch/arm/mach-mx3/mx31ads.c | |||
@@ -173,6 +173,7 @@ static void expio_unmask_irq(u32 irq) | |||
173 | } | 173 | } |
174 | 174 | ||
175 | static struct irq_chip expio_irq_chip = { | 175 | static struct irq_chip expio_irq_chip = { |
176 | .name = "EXPIO(CPLD)", | ||
176 | .ack = expio_ack_irq, | 177 | .ack = expio_ack_irq, |
177 | .mask = expio_mask_irq, | 178 | .mask = expio_mask_irq, |
178 | .unmask = expio_unmask_irq, | 179 | .unmask = expio_unmask_irq, |
@@ -302,6 +303,7 @@ static struct regulator_init_data ldo1_data = { | |||
302 | .min_uV = 2800000, | 303 | .min_uV = 2800000, |
303 | .max_uV = 2800000, | 304 | .max_uV = 2800000, |
304 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | 305 | .valid_modes_mask = REGULATOR_MODE_NORMAL, |
306 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
305 | .apply_uV = 1, | 307 | .apply_uV = 1, |
306 | }, | 308 | }, |
307 | }; | 309 | }; |
@@ -322,6 +324,7 @@ static struct regulator_init_data ldo2_data = { | |||
322 | .min_uV = 3300000, | 324 | .min_uV = 3300000, |
323 | .max_uV = 3300000, | 325 | .max_uV = 3300000, |
324 | .valid_modes_mask = REGULATOR_MODE_NORMAL, | 326 | .valid_modes_mask = REGULATOR_MODE_NORMAL, |
327 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
325 | .apply_uV = 1, | 328 | .apply_uV = 1, |
326 | }, | 329 | }, |
327 | .num_consumer_supplies = ARRAY_SIZE(ldo2_consumers), | 330 | .num_consumer_supplies = ARRAY_SIZE(ldo2_consumers), |
@@ -459,6 +462,7 @@ static int mx31_wm8350_init(struct wm8350 *wm8350) | |||
459 | 462 | ||
460 | static struct wm8350_platform_data __initdata mx31_wm8350_pdata = { | 463 | static struct wm8350_platform_data __initdata mx31_wm8350_pdata = { |
461 | .init = mx31_wm8350_init, | 464 | .init = mx31_wm8350_init, |
465 | .irq_base = MXC_BOARD_IRQ_START + MXC_MAX_EXP_IO_LINES, | ||
462 | }; | 466 | }; |
463 | #endif | 467 | #endif |
464 | 468 | ||
diff --git a/arch/arm/mach-omap1/clock.c b/arch/arm/mach-omap1/clock.c index 2ba9ab953731..04f1d29cba2c 100644 --- a/arch/arm/mach-omap1/clock.c +++ b/arch/arm/mach-omap1/clock.c | |||
@@ -214,8 +214,8 @@ int omap1_select_table_rate(struct clk *clk, unsigned long rate) | |||
214 | struct mpu_rate * ptr; | 214 | struct mpu_rate * ptr; |
215 | unsigned long dpll1_rate, ref_rate; | 215 | unsigned long dpll1_rate, ref_rate; |
216 | 216 | ||
217 | dpll1_rate = clk_get_rate(ck_dpll1_p); | 217 | dpll1_rate = ck_dpll1_p->rate; |
218 | ref_rate = clk_get_rate(ck_ref_p); | 218 | ref_rate = ck_ref_p->rate; |
219 | 219 | ||
220 | for (ptr = omap1_rate_table; ptr->rate; ptr++) { | 220 | for (ptr = omap1_rate_table; ptr->rate; ptr++) { |
221 | if (ptr->xtal != ref_rate) | 221 | if (ptr->xtal != ref_rate) |
@@ -306,7 +306,7 @@ long omap1_round_to_table_rate(struct clk *clk, unsigned long rate) | |||
306 | long highest_rate; | 306 | long highest_rate; |
307 | unsigned long ref_rate; | 307 | unsigned long ref_rate; |
308 | 308 | ||
309 | ref_rate = clk_get_rate(ck_ref_p); | 309 | ref_rate = ck_ref_p->rate; |
310 | 310 | ||
311 | highest_rate = -EINVAL; | 311 | highest_rate = -EINVAL; |
312 | 312 | ||
diff --git a/arch/arm/mach-omap2/clock34xx_data.c b/arch/arm/mach-omap2/clock34xx_data.c index c6031d74d6f6..74930e3158e3 100644 --- a/arch/arm/mach-omap2/clock34xx_data.c +++ b/arch/arm/mach-omap2/clock34xx_data.c | |||
@@ -671,7 +671,6 @@ static struct clk dpll4_m3x2_ck = { | |||
671 | .name = "dpll4_m3x2_ck", | 671 | .name = "dpll4_m3x2_ck", |
672 | .ops = &clkops_omap2_dflt_wait, | 672 | .ops = &clkops_omap2_dflt_wait, |
673 | .parent = &dpll4_m3_ck, | 673 | .parent = &dpll4_m3_ck, |
674 | .init = &omap2_init_clksel_parent, | ||
675 | .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), | 674 | .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), |
676 | .enable_bit = OMAP3430_PWRDN_TV_SHIFT, | 675 | .enable_bit = OMAP3430_PWRDN_TV_SHIFT, |
677 | .flags = INVERT_ENABLE, | 676 | .flags = INVERT_ENABLE, |
@@ -811,7 +810,6 @@ static struct clk dpll4_m6x2_ck = { | |||
811 | .name = "dpll4_m6x2_ck", | 810 | .name = "dpll4_m6x2_ck", |
812 | .ops = &clkops_omap2_dflt_wait, | 811 | .ops = &clkops_omap2_dflt_wait, |
813 | .parent = &dpll4_m6_ck, | 812 | .parent = &dpll4_m6_ck, |
814 | .init = &omap2_init_clksel_parent, | ||
815 | .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), | 813 | .enable_reg = OMAP_CM_REGADDR(PLL_MOD, CM_CLKEN), |
816 | .enable_bit = OMAP3430_PWRDN_EMU_PERIPH_SHIFT, | 814 | .enable_bit = OMAP3430_PWRDN_EMU_PERIPH_SHIFT, |
817 | .flags = INVERT_ENABLE, | 815 | .flags = INVERT_ENABLE, |
@@ -1047,7 +1045,6 @@ static struct clk iva2_ck = { | |||
1047 | .name = "iva2_ck", | 1045 | .name = "iva2_ck", |
1048 | .ops = &clkops_omap2_dflt_wait, | 1046 | .ops = &clkops_omap2_dflt_wait, |
1049 | .parent = &dpll2_m2_ck, | 1047 | .parent = &dpll2_m2_ck, |
1050 | .init = &omap2_init_clksel_parent, | ||
1051 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN), | 1048 | .enable_reg = OMAP_CM_REGADDR(OMAP3430_IVA2_MOD, CM_FCLKEN), |
1052 | .enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, | 1049 | .enable_bit = OMAP3430_CM_FCLKEN_IVA2_EN_IVA2_SHIFT, |
1053 | .clkdm_name = "iva2_clkdm", | 1050 | .clkdm_name = "iva2_clkdm", |
@@ -1121,7 +1118,6 @@ static struct clk gfx_l3_ck = { | |||
1121 | .name = "gfx_l3_ck", | 1118 | .name = "gfx_l3_ck", |
1122 | .ops = &clkops_omap2_dflt_wait, | 1119 | .ops = &clkops_omap2_dflt_wait, |
1123 | .parent = &l3_ick, | 1120 | .parent = &l3_ick, |
1124 | .init = &omap2_init_clksel_parent, | ||
1125 | .enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_ICLKEN), | 1121 | .enable_reg = OMAP_CM_REGADDR(GFX_MOD, CM_ICLKEN), |
1126 | .enable_bit = OMAP_EN_GFX_SHIFT, | 1122 | .enable_bit = OMAP_EN_GFX_SHIFT, |
1127 | .recalc = &followparent_recalc, | 1123 | .recalc = &followparent_recalc, |
diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c index 2210e227d78a..9d882bcb56e3 100644 --- a/arch/arm/mach-omap2/clock44xx_data.c +++ b/arch/arm/mach-omap2/clock44xx_data.c | |||
@@ -346,37 +346,37 @@ static struct clk aess_fclk = { | |||
346 | }; | 346 | }; |
347 | 347 | ||
348 | static const struct clksel_rate div31_1to31_rates[] = { | 348 | static const struct clksel_rate div31_1to31_rates[] = { |
349 | { .div = 1, .val = 0, .flags = RATE_IN_4430 }, | 349 | { .div = 1, .val = 1, .flags = RATE_IN_4430 }, |
350 | { .div = 2, .val = 1, .flags = RATE_IN_4430 }, | 350 | { .div = 2, .val = 2, .flags = RATE_IN_4430 }, |
351 | { .div = 3, .val = 2, .flags = RATE_IN_4430 }, | 351 | { .div = 3, .val = 3, .flags = RATE_IN_4430 }, |
352 | { .div = 4, .val = 3, .flags = RATE_IN_4430 }, | 352 | { .div = 4, .val = 4, .flags = RATE_IN_4430 }, |
353 | { .div = 5, .val = 4, .flags = RATE_IN_4430 }, | 353 | { .div = 5, .val = 5, .flags = RATE_IN_4430 }, |
354 | { .div = 6, .val = 5, .flags = RATE_IN_4430 }, | 354 | { .div = 6, .val = 6, .flags = RATE_IN_4430 }, |
355 | { .div = 7, .val = 6, .flags = RATE_IN_4430 }, | 355 | { .div = 7, .val = 7, .flags = RATE_IN_4430 }, |
356 | { .div = 8, .val = 7, .flags = RATE_IN_4430 }, | 356 | { .div = 8, .val = 8, .flags = RATE_IN_4430 }, |
357 | { .div = 9, .val = 8, .flags = RATE_IN_4430 }, | 357 | { .div = 9, .val = 9, .flags = RATE_IN_4430 }, |
358 | { .div = 10, .val = 9, .flags = RATE_IN_4430 }, | 358 | { .div = 10, .val = 10, .flags = RATE_IN_4430 }, |
359 | { .div = 11, .val = 10, .flags = RATE_IN_4430 }, | 359 | { .div = 11, .val = 11, .flags = RATE_IN_4430 }, |
360 | { .div = 12, .val = 11, .flags = RATE_IN_4430 }, | 360 | { .div = 12, .val = 12, .flags = RATE_IN_4430 }, |
361 | { .div = 13, .val = 12, .flags = RATE_IN_4430 }, | 361 | { .div = 13, .val = 13, .flags = RATE_IN_4430 }, |
362 | { .div = 14, .val = 13, .flags = RATE_IN_4430 }, | 362 | { .div = 14, .val = 14, .flags = RATE_IN_4430 }, |
363 | { .div = 15, .val = 14, .flags = RATE_IN_4430 }, | 363 | { .div = 15, .val = 15, .flags = RATE_IN_4430 }, |
364 | { .div = 16, .val = 15, .flags = RATE_IN_4430 }, | 364 | { .div = 16, .val = 16, .flags = RATE_IN_4430 }, |
365 | { .div = 17, .val = 16, .flags = RATE_IN_4430 }, | 365 | { .div = 17, .val = 17, .flags = RATE_IN_4430 }, |
366 | { .div = 18, .val = 17, .flags = RATE_IN_4430 }, | 366 | { .div = 18, .val = 18, .flags = RATE_IN_4430 }, |
367 | { .div = 19, .val = 18, .flags = RATE_IN_4430 }, | 367 | { .div = 19, .val = 19, .flags = RATE_IN_4430 }, |
368 | { .div = 20, .val = 19, .flags = RATE_IN_4430 }, | 368 | { .div = 20, .val = 20, .flags = RATE_IN_4430 }, |
369 | { .div = 21, .val = 20, .flags = RATE_IN_4430 }, | 369 | { .div = 21, .val = 21, .flags = RATE_IN_4430 }, |
370 | { .div = 22, .val = 21, .flags = RATE_IN_4430 }, | 370 | { .div = 22, .val = 22, .flags = RATE_IN_4430 }, |
371 | { .div = 23, .val = 22, .flags = RATE_IN_4430 }, | 371 | { .div = 23, .val = 23, .flags = RATE_IN_4430 }, |
372 | { .div = 24, .val = 23, .flags = RATE_IN_4430 }, | 372 | { .div = 24, .val = 24, .flags = RATE_IN_4430 }, |
373 | { .div = 25, .val = 24, .flags = RATE_IN_4430 }, | 373 | { .div = 25, .val = 25, .flags = RATE_IN_4430 }, |
374 | { .div = 26, .val = 25, .flags = RATE_IN_4430 }, | 374 | { .div = 26, .val = 26, .flags = RATE_IN_4430 }, |
375 | { .div = 27, .val = 26, .flags = RATE_IN_4430 }, | 375 | { .div = 27, .val = 27, .flags = RATE_IN_4430 }, |
376 | { .div = 28, .val = 27, .flags = RATE_IN_4430 }, | 376 | { .div = 28, .val = 28, .flags = RATE_IN_4430 }, |
377 | { .div = 29, .val = 28, .flags = RATE_IN_4430 }, | 377 | { .div = 29, .val = 29, .flags = RATE_IN_4430 }, |
378 | { .div = 30, .val = 29, .flags = RATE_IN_4430 }, | 378 | { .div = 30, .val = 30, .flags = RATE_IN_4430 }, |
379 | { .div = 31, .val = 30, .flags = RATE_IN_4430 }, | 379 | { .div = 31, .val = 31, .flags = RATE_IN_4430 }, |
380 | { .div = 0 }, | 380 | { .div = 0 }, |
381 | }; | 381 | }; |
382 | 382 | ||
diff --git a/arch/arm/mach-omap2/cpuidle34xx.c b/arch/arm/mach-omap2/cpuidle34xx.c index a26d6a08ae3f..12f0cbfc2894 100644 --- a/arch/arm/mach-omap2/cpuidle34xx.c +++ b/arch/arm/mach-omap2/cpuidle34xx.c | |||
@@ -137,7 +137,7 @@ return_sleep_time: | |||
137 | local_irq_enable(); | 137 | local_irq_enable(); |
138 | local_fiq_enable(); | 138 | local_fiq_enable(); |
139 | 139 | ||
140 | return (u32)timespec_to_ns(&ts_idle)/1000; | 140 | return ts_idle.tv_nsec / NSEC_PER_USEC + ts_idle.tv_sec * USEC_PER_SEC; |
141 | } | 141 | } |
142 | 142 | ||
143 | /** | 143 | /** |
diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c index bd8cb5974726..7027cdc1ba49 100644 --- a/arch/arm/mach-omap2/gpmc.c +++ b/arch/arm/mach-omap2/gpmc.c | |||
@@ -505,7 +505,7 @@ static void __init gpmc_mem_init(void) | |||
505 | void __init gpmc_init(void) | 505 | void __init gpmc_init(void) |
506 | { | 506 | { |
507 | u32 l; | 507 | u32 l; |
508 | char *ck; | 508 | char *ck = NULL; |
509 | 509 | ||
510 | if (cpu_is_omap24xx()) { | 510 | if (cpu_is_omap24xx()) { |
511 | ck = "core_l3_ck"; | 511 | ck = "core_l3_ck"; |
@@ -521,6 +521,9 @@ void __init gpmc_init(void) | |||
521 | l = OMAP44XX_GPMC_BASE; | 521 | l = OMAP44XX_GPMC_BASE; |
522 | } | 522 | } |
523 | 523 | ||
524 | if (WARN_ON(!ck)) | ||
525 | return; | ||
526 | |||
524 | gpmc_l3_clk = clk_get(NULL, ck); | 527 | gpmc_l3_clk = clk_get(NULL, ck); |
525 | if (IS_ERR(gpmc_l3_clk)) { | 528 | if (IS_ERR(gpmc_l3_clk)) { |
526 | printk(KERN_ERR "Could not get GPMC clock %s\n", ck); | 529 | printk(KERN_ERR "Could not get GPMC clock %s\n", ck); |
@@ -534,6 +537,8 @@ void __init gpmc_init(void) | |||
534 | BUG(); | 537 | BUG(); |
535 | } | 538 | } |
536 | 539 | ||
540 | clk_enable(gpmc_l3_clk); | ||
541 | |||
537 | l = gpmc_read_reg(GPMC_REVISION); | 542 | l = gpmc_read_reg(GPMC_REVISION); |
538 | printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); | 543 | printk(KERN_INFO "GPMC revision %d.%d\n", (l >> 4) & 0x0f, l & 0x0f); |
539 | /* Set smart idle mode and automatic L3 clock gating */ | 544 | /* Set smart idle mode and automatic L3 clock gating */ |
diff --git a/arch/arm/mach-omap2/id.c b/arch/arm/mach-omap2/id.c index a091b53657b9..3d65c50bd017 100644 --- a/arch/arm/mach-omap2/id.c +++ b/arch/arm/mach-omap2/id.c | |||
@@ -188,6 +188,8 @@ void __init omap3_check_revision(void) | |||
188 | u16 hawkeye; | 188 | u16 hawkeye; |
189 | u8 rev; | 189 | u8 rev; |
190 | 190 | ||
191 | omap_chip.oc = CHIP_IS_OMAP3430; | ||
192 | |||
191 | /* | 193 | /* |
192 | * We cannot access revision registers on ES1.0. | 194 | * We cannot access revision registers on ES1.0. |
193 | * If the processor type is Cortex-A8 and the revision is 0x0 | 195 | * If the processor type is Cortex-A8 and the revision is 0x0 |
@@ -196,6 +198,7 @@ void __init omap3_check_revision(void) | |||
196 | cpuid = read_cpuid(CPUID_ID); | 198 | cpuid = read_cpuid(CPUID_ID); |
197 | if ((((cpuid >> 4) & 0xfff) == 0xc08) && ((cpuid & 0xf) == 0x0)) { | 199 | if ((((cpuid >> 4) & 0xfff) == 0xc08) && ((cpuid & 0xf) == 0x0)) { |
198 | omap_revision = OMAP3430_REV_ES1_0; | 200 | omap_revision = OMAP3430_REV_ES1_0; |
201 | omap_chip.oc |= CHIP_IS_OMAP3430ES1; | ||
199 | return; | 202 | return; |
200 | } | 203 | } |
201 | 204 | ||
@@ -216,18 +219,28 @@ void __init omap3_check_revision(void) | |||
216 | case 0: /* Take care of early samples */ | 219 | case 0: /* Take care of early samples */ |
217 | case 1: | 220 | case 1: |
218 | omap_revision = OMAP3430_REV_ES2_0; | 221 | omap_revision = OMAP3430_REV_ES2_0; |
222 | omap_chip.oc |= CHIP_IS_OMAP3430ES2; | ||
219 | break; | 223 | break; |
220 | case 2: | 224 | case 2: |
221 | omap_revision = OMAP3430_REV_ES2_1; | 225 | omap_revision = OMAP3430_REV_ES2_1; |
226 | omap_chip.oc |= CHIP_IS_OMAP3430ES2; | ||
222 | break; | 227 | break; |
223 | case 3: | 228 | case 3: |
224 | omap_revision = OMAP3430_REV_ES3_0; | 229 | omap_revision = OMAP3430_REV_ES3_0; |
230 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_0; | ||
225 | break; | 231 | break; |
226 | case 4: | 232 | case 4: |
233 | omap_revision = OMAP3430_REV_ES3_1; | ||
234 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | ||
235 | break; | ||
236 | case 7: | ||
227 | /* FALLTHROUGH */ | 237 | /* FALLTHROUGH */ |
228 | default: | 238 | default: |
229 | /* Use the latest known revision as default */ | 239 | /* Use the latest known revision as default */ |
230 | omap_revision = OMAP3430_REV_ES3_1; | 240 | omap_revision = OMAP3430_REV_ES3_1_2; |
241 | |||
242 | /* REVISIT: Add CHIP_IS_OMAP3430ES3_1_2? */ | ||
243 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | ||
231 | } | 244 | } |
232 | break; | 245 | break; |
233 | case 0xb868: | 246 | case 0xb868: |
@@ -235,14 +248,18 @@ void __init omap3_check_revision(void) | |||
235 | * | 248 | * |
236 | * Set the device to be OMAP3505 here. Actual device | 249 | * Set the device to be OMAP3505 here. Actual device |
237 | * is identified later based on the features. | 250 | * is identified later based on the features. |
251 | * | ||
252 | * REVISIT: AM3505/AM3517 should have their own CHIP_IS | ||
238 | */ | 253 | */ |
239 | omap_revision = OMAP3505_REV(rev); | 254 | omap_revision = OMAP3505_REV(rev); |
255 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | ||
240 | break; | 256 | break; |
241 | case 0xb891: | 257 | case 0xb891: |
242 | /* FALLTHROUGH */ | 258 | /* FALLTHROUGH */ |
243 | default: | 259 | default: |
244 | /* Unknown default to latest silicon rev as default*/ | 260 | /* Unknown default to latest silicon rev as default*/ |
245 | omap_revision = OMAP3630_REV_ES1_0; | 261 | omap_revision = OMAP3630_REV_ES1_0; |
262 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | ||
246 | } | 263 | } |
247 | } | 264 | } |
248 | 265 | ||
@@ -360,6 +377,7 @@ void __init omap2_check_revision(void) | |||
360 | omap3_check_revision(); | 377 | omap3_check_revision(); |
361 | omap3_check_features(); | 378 | omap3_check_features(); |
362 | omap3_cpuinfo(); | 379 | omap3_cpuinfo(); |
380 | return; | ||
363 | } else if (cpu_is_omap44xx()) { | 381 | } else if (cpu_is_omap44xx()) { |
364 | omap4_check_revision(); | 382 | omap4_check_revision(); |
365 | return; | 383 | return; |
@@ -374,27 +392,14 @@ void __init omap2_check_revision(void) | |||
374 | if (cpu_is_omap243x()) { | 392 | if (cpu_is_omap243x()) { |
375 | /* Currently only supports 2430ES2.1 and 2430-all */ | 393 | /* Currently only supports 2430ES2.1 and 2430-all */ |
376 | omap_chip.oc |= CHIP_IS_OMAP2430; | 394 | omap_chip.oc |= CHIP_IS_OMAP2430; |
395 | return; | ||
377 | } else if (cpu_is_omap242x()) { | 396 | } else if (cpu_is_omap242x()) { |
378 | /* Currently only supports 2420ES2.1.1 and 2420-all */ | 397 | /* Currently only supports 2420ES2.1.1 and 2420-all */ |
379 | omap_chip.oc |= CHIP_IS_OMAP2420; | 398 | omap_chip.oc |= CHIP_IS_OMAP2420; |
380 | } else if (cpu_is_omap3505() || cpu_is_omap3517()) { | 399 | return; |
381 | omap_chip.oc = CHIP_IS_OMAP3430 | CHIP_IS_OMAP3430ES3_1; | ||
382 | } else if (cpu_is_omap343x()) { | ||
383 | omap_chip.oc = CHIP_IS_OMAP3430; | ||
384 | if (omap_rev() == OMAP3430_REV_ES1_0) | ||
385 | omap_chip.oc |= CHIP_IS_OMAP3430ES1; | ||
386 | else if (omap_rev() >= OMAP3430_REV_ES2_0 && | ||
387 | omap_rev() <= OMAP3430_REV_ES2_1) | ||
388 | omap_chip.oc |= CHIP_IS_OMAP3430ES2; | ||
389 | else if (omap_rev() == OMAP3430_REV_ES3_0) | ||
390 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_0; | ||
391 | else if (omap_rev() == OMAP3430_REV_ES3_1) | ||
392 | omap_chip.oc |= CHIP_IS_OMAP3430ES3_1; | ||
393 | else if (omap_rev() == OMAP3630_REV_ES1_0) | ||
394 | omap_chip.oc |= CHIP_IS_OMAP3630ES1; | ||
395 | } else { | ||
396 | pr_err("Uninitialized omap_chip, please fix!\n"); | ||
397 | } | 400 | } |
401 | |||
402 | pr_err("Uninitialized omap_chip, please fix!\n"); | ||
398 | } | 403 | } |
399 | 404 | ||
400 | /* | 405 | /* |
diff --git a/arch/arm/mach-omap2/irq.c b/arch/arm/mach-omap2/irq.c index e9bc782fa414..26aeef560aa3 100644 --- a/arch/arm/mach-omap2/irq.c +++ b/arch/arm/mach-omap2/irq.c | |||
@@ -194,7 +194,7 @@ void __init omap_init_irq(void) | |||
194 | int i; | 194 | int i; |
195 | 195 | ||
196 | for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { | 196 | for (i = 0; i < ARRAY_SIZE(irq_banks); i++) { |
197 | unsigned long base; | 197 | unsigned long base = 0; |
198 | struct omap_irq_bank *bank = irq_banks + i; | 198 | struct omap_irq_bank *bank = irq_banks + i; |
199 | 199 | ||
200 | if (cpu_is_omap24xx()) | 200 | if (cpu_is_omap24xx()) |
@@ -202,6 +202,8 @@ void __init omap_init_irq(void) | |||
202 | else if (cpu_is_omap34xx()) | 202 | else if (cpu_is_omap34xx()) |
203 | base = OMAP34XX_IC_BASE; | 203 | base = OMAP34XX_IC_BASE; |
204 | 204 | ||
205 | BUG_ON(!base); | ||
206 | |||
205 | /* Static mapping, never released */ | 207 | /* Static mapping, never released */ |
206 | bank->base_reg = ioremap(base, SZ_4K); | 208 | bank->base_reg = ioremap(base, SZ_4K); |
207 | if (!bank->base_reg) { | 209 | if (!bank->base_reg) { |
@@ -274,4 +276,22 @@ void omap_intc_restore_context(void) | |||
274 | } | 276 | } |
275 | /* MIRs are saved and restore with other PRCM registers */ | 277 | /* MIRs are saved and restore with other PRCM registers */ |
276 | } | 278 | } |
279 | |||
280 | void omap3_intc_suspend(void) | ||
281 | { | ||
282 | /* A pending interrupt would prevent OMAP from entering suspend */ | ||
283 | omap_ack_irq(0); | ||
284 | } | ||
285 | |||
286 | void omap3_intc_prepare_idle(void) | ||
287 | { | ||
288 | /* Disable autoidle as it can stall interrupt controller */ | ||
289 | intc_bank_write_reg(0, &irq_banks[0], INTC_SYSCONFIG); | ||
290 | } | ||
291 | |||
292 | void omap3_intc_resume_idle(void) | ||
293 | { | ||
294 | /* Re-enable autoidle */ | ||
295 | intc_bank_write_reg(1, &irq_banks[0], INTC_SYSCONFIG); | ||
296 | } | ||
277 | #endif /* CONFIG_ARCH_OMAP3 */ | 297 | #endif /* CONFIG_ARCH_OMAP3 */ |
diff --git a/arch/arm/mach-omap2/mmc-twl4030.c b/arch/arm/mach-omap2/mmc-twl4030.c index 0c3c72d934bf..8afe9dd3f150 100644 --- a/arch/arm/mach-omap2/mmc-twl4030.c +++ b/arch/arm/mach-omap2/mmc-twl4030.c | |||
@@ -408,6 +408,7 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers) | |||
408 | { | 408 | { |
409 | struct twl4030_hsmmc_info *c; | 409 | struct twl4030_hsmmc_info *c; |
410 | int nr_hsmmc = ARRAY_SIZE(hsmmc_data); | 410 | int nr_hsmmc = ARRAY_SIZE(hsmmc_data); |
411 | int i; | ||
411 | 412 | ||
412 | if (cpu_is_omap2430()) { | 413 | if (cpu_is_omap2430()) { |
413 | control_pbias_offset = OMAP243X_CONTROL_PBIAS_LITE; | 414 | control_pbias_offset = OMAP243X_CONTROL_PBIAS_LITE; |
@@ -434,7 +435,7 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers) | |||
434 | mmc = kzalloc(sizeof(struct omap_mmc_platform_data), GFP_KERNEL); | 435 | mmc = kzalloc(sizeof(struct omap_mmc_platform_data), GFP_KERNEL); |
435 | if (!mmc) { | 436 | if (!mmc) { |
436 | pr_err("Cannot allocate memory for mmc device!\n"); | 437 | pr_err("Cannot allocate memory for mmc device!\n"); |
437 | return; | 438 | goto done; |
438 | } | 439 | } |
439 | 440 | ||
440 | if (c->name) | 441 | if (c->name) |
@@ -532,6 +533,10 @@ void __init twl4030_mmc_init(struct twl4030_hsmmc_info *controllers) | |||
532 | continue; | 533 | continue; |
533 | c->dev = mmc->dev; | 534 | c->dev = mmc->dev; |
534 | } | 535 | } |
536 | |||
537 | done: | ||
538 | for (i = 0; i < nr_hsmmc; i++) | ||
539 | kfree(hsmmc_data[i]); | ||
535 | } | 540 | } |
536 | 541 | ||
537 | #endif | 542 | #endif |
diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c index 459ef23ab8a8..5fedc50c58e4 100644 --- a/arch/arm/mach-omap2/mux.c +++ b/arch/arm/mach-omap2/mux.c | |||
@@ -51,7 +51,7 @@ struct omap_mux_entry { | |||
51 | static unsigned long mux_phys; | 51 | static unsigned long mux_phys; |
52 | static void __iomem *mux_base; | 52 | static void __iomem *mux_base; |
53 | 53 | ||
54 | static inline u16 omap_mux_read(u16 reg) | 54 | u16 omap_mux_read(u16 reg) |
55 | { | 55 | { |
56 | if (cpu_is_omap24xx()) | 56 | if (cpu_is_omap24xx()) |
57 | return __raw_readb(mux_base + reg); | 57 | return __raw_readb(mux_base + reg); |
@@ -59,7 +59,7 @@ static inline u16 omap_mux_read(u16 reg) | |||
59 | return __raw_readw(mux_base + reg); | 59 | return __raw_readw(mux_base + reg); |
60 | } | 60 | } |
61 | 61 | ||
62 | static inline void omap_mux_write(u16 val, u16 reg) | 62 | void omap_mux_write(u16 val, u16 reg) |
63 | { | 63 | { |
64 | if (cpu_is_omap24xx()) | 64 | if (cpu_is_omap24xx()) |
65 | __raw_writeb(val, mux_base + reg); | 65 | __raw_writeb(val, mux_base + reg); |
@@ -67,6 +67,14 @@ static inline void omap_mux_write(u16 val, u16 reg) | |||
67 | __raw_writew(val, mux_base + reg); | 67 | __raw_writew(val, mux_base + reg); |
68 | } | 68 | } |
69 | 69 | ||
70 | void omap_mux_write_array(struct omap_board_mux *board_mux) | ||
71 | { | ||
72 | while (board_mux->reg_offset != OMAP_MUX_TERMINATOR) { | ||
73 | omap_mux_write(board_mux->value, board_mux->reg_offset); | ||
74 | board_mux++; | ||
75 | } | ||
76 | } | ||
77 | |||
70 | #if defined(CONFIG_ARCH_OMAP24XX) && defined(CONFIG_OMAP_MUX) | 78 | #if defined(CONFIG_ARCH_OMAP24XX) && defined(CONFIG_OMAP_MUX) |
71 | 79 | ||
72 | static struct omap_mux_cfg arch_mux_cfg; | 80 | static struct omap_mux_cfg arch_mux_cfg; |
@@ -478,7 +486,7 @@ int __init omap_mux_init_signal(char *muxname, int val) | |||
478 | static inline void omap_mux_decode(struct seq_file *s, u16 val) | 486 | static inline void omap_mux_decode(struct seq_file *s, u16 val) |
479 | { | 487 | { |
480 | char *flags[OMAP_MUX_MAX_NR_FLAGS]; | 488 | char *flags[OMAP_MUX_MAX_NR_FLAGS]; |
481 | char mode[14]; | 489 | char mode[sizeof("OMAP_MUX_MODE") + 1]; |
482 | int i = -1; | 490 | int i = -1; |
483 | 491 | ||
484 | sprintf(mode, "OMAP_MUX_MODE%d", val & 0x7); | 492 | sprintf(mode, "OMAP_MUX_MODE%d", val & 0x7); |
@@ -545,6 +553,7 @@ static int omap_mux_dbg_board_show(struct seq_file *s, void *unused) | |||
545 | if (!m0_name) | 553 | if (!m0_name) |
546 | continue; | 554 | continue; |
547 | 555 | ||
556 | /* REVISIT: Needs to be updated if mode0 names get longer */ | ||
548 | for (i = 0; i < OMAP_MUX_DEFNAME_LEN; i++) { | 557 | for (i = 0; i < OMAP_MUX_DEFNAME_LEN; i++) { |
549 | if (m0_name[i] == '\0') { | 558 | if (m0_name[i] == '\0') { |
550 | m0_def[i] = m0_name[i]; | 559 | m0_def[i] = m0_name[i]; |
@@ -833,14 +842,6 @@ static void __init omap_mux_set_cmdline_signals(void) | |||
833 | kfree(options); | 842 | kfree(options); |
834 | } | 843 | } |
835 | 844 | ||
836 | static void __init omap_mux_set_board_signals(struct omap_board_mux *board_mux) | ||
837 | { | ||
838 | while (board_mux->reg_offset != OMAP_MUX_TERMINATOR) { | ||
839 | omap_mux_write(board_mux->value, board_mux->reg_offset); | ||
840 | board_mux++; | ||
841 | } | ||
842 | } | ||
843 | |||
844 | static int __init omap_mux_copy_names(struct omap_mux *src, | 845 | static int __init omap_mux_copy_names(struct omap_mux *src, |
845 | struct omap_mux *dst) | 846 | struct omap_mux *dst) |
846 | { | 847 | { |
@@ -968,6 +969,13 @@ static void __init omap_mux_init_list(struct omap_mux *superset) | |||
968 | } | 969 | } |
969 | #endif | 970 | #endif |
970 | 971 | ||
972 | #if defined(CONFIG_OMAP_MUX) && defined(CONFIG_DEBUG_FS) | ||
973 | if (!superset->muxnames || !superset->muxnames[0]) { | ||
974 | superset++; | ||
975 | continue; | ||
976 | } | ||
977 | #endif | ||
978 | |||
971 | entry = omap_mux_list_add(superset); | 979 | entry = omap_mux_list_add(superset); |
972 | if (!entry) { | 980 | if (!entry) { |
973 | printk(KERN_ERR "mux: Could not add entry\n"); | 981 | printk(KERN_ERR "mux: Could not add entry\n"); |
@@ -998,12 +1006,15 @@ int __init omap_mux_init(u32 mux_pbase, u32 mux_size, | |||
998 | omap_mux_package_fixup(package_subset, superset); | 1006 | omap_mux_package_fixup(package_subset, superset); |
999 | if (package_balls) | 1007 | if (package_balls) |
1000 | omap_mux_package_init_balls(package_balls, superset); | 1008 | omap_mux_package_init_balls(package_balls, superset); |
1001 | omap_mux_set_cmdline_signals(); | ||
1002 | omap_mux_set_board_signals(board_mux); | ||
1003 | #endif | 1009 | #endif |
1004 | 1010 | ||
1005 | omap_mux_init_list(superset); | 1011 | omap_mux_init_list(superset); |
1006 | 1012 | ||
1013 | #ifdef CONFIG_OMAP_MUX | ||
1014 | omap_mux_set_cmdline_signals(); | ||
1015 | omap_mux_write_array(board_mux); | ||
1016 | #endif | ||
1017 | |||
1007 | return 0; | 1018 | return 0; |
1008 | } | 1019 | } |
1009 | 1020 | ||
diff --git a/arch/arm/mach-omap2/mux.h b/arch/arm/mach-omap2/mux.h index d8b4d5ad2278..f8c2e7a8f063 100644 --- a/arch/arm/mach-omap2/mux.h +++ b/arch/arm/mach-omap2/mux.h | |||
@@ -147,6 +147,30 @@ u16 omap_mux_get_gpio(int gpio); | |||
147 | void omap_mux_set_gpio(u16 val, int gpio); | 147 | void omap_mux_set_gpio(u16 val, int gpio); |
148 | 148 | ||
149 | /** | 149 | /** |
150 | * omap_mux_read() - read mux register | ||
151 | * @mux_offset: Offset of the mux register | ||
152 | * | ||
153 | */ | ||
154 | u16 omap_mux_read(u16 mux_offset); | ||
155 | |||
156 | /** | ||
157 | * omap_mux_write() - write mux register | ||
158 | * @val: New mux register value | ||
159 | * @mux_offset: Offset of the mux register | ||
160 | * | ||
161 | * This should be only needed for dynamic remuxing of non-gpio signals. | ||
162 | */ | ||
163 | void omap_mux_write(u16 val, u16 mux_offset); | ||
164 | |||
165 | /** | ||
166 | * omap_mux_write_array() - write an array of mux registers | ||
167 | * @board_mux: Array of mux registers terminated by MAP_MUX_TERMINATOR | ||
168 | * | ||
169 | * This should be only needed for dynamic remuxing of non-gpio signals. | ||
170 | */ | ||
171 | void omap_mux_write_array(struct omap_board_mux *board_mux); | ||
172 | |||
173 | /** | ||
150 | * omap3_mux_init() - initialize mux system with board specific set | 174 | * omap3_mux_init() - initialize mux system with board specific set |
151 | * @board_mux: Board specific mux table | 175 | * @board_mux: Board specific mux table |
152 | * @flags: OMAP package type used for the board | 176 | * @flags: OMAP package type used for the board |
diff --git a/arch/arm/mach-omap2/mux34xx.c b/arch/arm/mach-omap2/mux34xx.c index 68e0a595f9a1..07aa7b3c95f7 100644 --- a/arch/arm/mach-omap2/mux34xx.c +++ b/arch/arm/mach-omap2/mux34xx.c | |||
@@ -649,6 +649,53 @@ static struct omap_mux __initdata omap3_muxmodes[] = { | |||
649 | _OMAP3_MUXENTRY(UART3_TX_IRTX, 166, | 649 | _OMAP3_MUXENTRY(UART3_TX_IRTX, 166, |
650 | "uart3_tx_irtx", NULL, NULL, NULL, | 650 | "uart3_tx_irtx", NULL, NULL, NULL, |
651 | "gpio_166", NULL, NULL, "safe_mode"), | 651 | "gpio_166", NULL, NULL, "safe_mode"), |
652 | |||
653 | /* Only on 3630, see omap36xx_cbp_subset for the signals */ | ||
654 | _OMAP3_MUXENTRY(GPMC_A11, 0, | ||
655 | NULL, NULL, NULL, NULL, | ||
656 | NULL, NULL, NULL, NULL), | ||
657 | _OMAP3_MUXENTRY(SAD2D_MBUSFLAG, 0, | ||
658 | NULL, NULL, NULL, NULL, | ||
659 | NULL, NULL, NULL, NULL), | ||
660 | _OMAP3_MUXENTRY(SAD2D_MREAD, 0, | ||
661 | NULL, NULL, NULL, NULL, | ||
662 | NULL, NULL, NULL, NULL), | ||
663 | _OMAP3_MUXENTRY(SAD2D_MWRITE, 0, | ||
664 | NULL, NULL, NULL, NULL, | ||
665 | NULL, NULL, NULL, NULL), | ||
666 | _OMAP3_MUXENTRY(SAD2D_SBUSFLAG, 0, | ||
667 | NULL, NULL, NULL, NULL, | ||
668 | NULL, NULL, NULL, NULL), | ||
669 | _OMAP3_MUXENTRY(SAD2D_SREAD, 0, | ||
670 | NULL, NULL, NULL, NULL, | ||
671 | NULL, NULL, NULL, NULL), | ||
672 | _OMAP3_MUXENTRY(SAD2D_SWRITE, 0, | ||
673 | NULL, NULL, NULL, NULL, | ||
674 | NULL, NULL, NULL, NULL), | ||
675 | _OMAP3_MUXENTRY(GPMC_A11, 0, | ||
676 | NULL, NULL, NULL, NULL, | ||
677 | NULL, NULL, NULL, NULL), | ||
678 | _OMAP3_MUXENTRY(SAD2D_MCAD28, 0, | ||
679 | NULL, NULL, NULL, NULL, | ||
680 | NULL, NULL, NULL, NULL), | ||
681 | _OMAP3_MUXENTRY(SAD2D_MCAD29, 0, | ||
682 | NULL, NULL, NULL, NULL, | ||
683 | NULL, NULL, NULL, NULL), | ||
684 | _OMAP3_MUXENTRY(SAD2D_MCAD32, 0, | ||
685 | NULL, NULL, NULL, NULL, | ||
686 | NULL, NULL, NULL, NULL), | ||
687 | _OMAP3_MUXENTRY(SAD2D_MCAD33, 0, | ||
688 | NULL, NULL, NULL, NULL, | ||
689 | NULL, NULL, NULL, NULL), | ||
690 | _OMAP3_MUXENTRY(SAD2D_MCAD34, 0, | ||
691 | NULL, NULL, NULL, NULL, | ||
692 | NULL, NULL, NULL, NULL), | ||
693 | _OMAP3_MUXENTRY(SAD2D_MCAD35, 0, | ||
694 | NULL, NULL, NULL, NULL, | ||
695 | NULL, NULL, NULL, NULL), | ||
696 | _OMAP3_MUXENTRY(SAD2D_MCAD36, 0, | ||
697 | NULL, NULL, NULL, NULL, | ||
698 | NULL, NULL, NULL, NULL), | ||
652 | { .reg_offset = OMAP_MUX_TERMINATOR }, | 699 | { .reg_offset = OMAP_MUX_TERMINATOR }, |
653 | }; | 700 | }; |
654 | 701 | ||
diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c index d8c8545875b1..478ae585ca39 100644 --- a/arch/arm/mach-omap2/omap_hwmod.c +++ b/arch/arm/mach-omap2/omap_hwmod.c | |||
@@ -94,7 +94,8 @@ static int _update_sysc_cache(struct omap_hwmod *oh) | |||
94 | 94 | ||
95 | oh->_sysc_cache = omap_hwmod_readl(oh, oh->sysconfig->sysc_offs); | 95 | oh->_sysc_cache = omap_hwmod_readl(oh, oh->sysconfig->sysc_offs); |
96 | 96 | ||
97 | oh->_int_flags |= _HWMOD_SYSCONFIG_LOADED; | 97 | if (!(oh->sysconfig->sysc_flags & SYSC_NO_CACHE)) |
98 | oh->_int_flags |= _HWMOD_SYSCONFIG_LOADED; | ||
98 | 99 | ||
99 | return 0; | 100 | return 0; |
100 | } | 101 | } |
diff --git a/arch/arm/mach-omap2/pm-debug.c b/arch/arm/mach-omap2/pm-debug.c index 860b755d2220..a0866268aa41 100644 --- a/arch/arm/mach-omap2/pm-debug.c +++ b/arch/arm/mach-omap2/pm-debug.c | |||
@@ -54,8 +54,6 @@ int omap2_pm_debug; | |||
54 | regs[reg_count++].val = \ | 54 | regs[reg_count++].val = \ |
55 | __raw_readl(OMAP2_L4_IO_ADDRESS(0x480fe000 + (off))) | 55 | __raw_readl(OMAP2_L4_IO_ADDRESS(0x480fe000 + (off))) |
56 | 56 | ||
57 | static int __init pm_dbg_init(void); | ||
58 | |||
59 | void omap2_pm_dump(int mode, int resume, unsigned int us) | 57 | void omap2_pm_dump(int mode, int resume, unsigned int us) |
60 | { | 58 | { |
61 | struct reg { | 59 | struct reg { |
@@ -167,6 +165,8 @@ struct dentry *pm_dbg_dir; | |||
167 | 165 | ||
168 | static int pm_dbg_init_done; | 166 | static int pm_dbg_init_done; |
169 | 167 | ||
168 | static int __init pm_dbg_init(void); | ||
169 | |||
170 | enum { | 170 | enum { |
171 | DEBUG_FILE_COUNTERS = 0, | 171 | DEBUG_FILE_COUNTERS = 0, |
172 | DEBUG_FILE_TIMERS, | 172 | DEBUG_FILE_TIMERS, |
@@ -488,9 +488,11 @@ int pm_dbg_regset_init(int reg_set) | |||
488 | 488 | ||
489 | static int pwrdm_suspend_get(void *data, u64 *val) | 489 | static int pwrdm_suspend_get(void *data, u64 *val) |
490 | { | 490 | { |
491 | *val = omap3_pm_get_suspend_state((struct powerdomain *)data); | 491 | int ret; |
492 | ret = omap3_pm_get_suspend_state((struct powerdomain *)data); | ||
493 | *val = ret; | ||
492 | 494 | ||
493 | if (*val >= 0) | 495 | if (ret >= 0) |
494 | return 0; | 496 | return 0; |
495 | return *val; | 497 | return *val; |
496 | } | 498 | } |
@@ -604,6 +606,4 @@ static int __init pm_dbg_init(void) | |||
604 | } | 606 | } |
605 | arch_initcall(pm_dbg_init); | 607 | arch_initcall(pm_dbg_init); |
606 | 608 | ||
607 | #else | ||
608 | void pm_dbg_update_time(struct powerdomain *pwrdm, int prev) {} | ||
609 | #endif | 609 | #endif |
diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h index 0bf345db7147..7a9c2d004511 100644 --- a/arch/arm/mach-omap2/pm.h +++ b/arch/arm/mach-omap2/pm.h | |||
@@ -32,12 +32,16 @@ extern struct omap_dm_timer *gptimer_wakeup; | |||
32 | #ifdef CONFIG_PM_DEBUG | 32 | #ifdef CONFIG_PM_DEBUG |
33 | extern void omap2_pm_dump(int mode, int resume, unsigned int us); | 33 | extern void omap2_pm_dump(int mode, int resume, unsigned int us); |
34 | extern int omap2_pm_debug; | 34 | extern int omap2_pm_debug; |
35 | #else | ||
36 | #define omap2_pm_dump(mode, resume, us) do {} while (0); | ||
37 | #define omap2_pm_debug 0 | ||
38 | #endif | ||
39 | |||
40 | #if defined(CONFIG_PM_DEBUG) && defined(CONFIG_DEBUG_FS) | ||
35 | extern void pm_dbg_update_time(struct powerdomain *pwrdm, int prev); | 41 | extern void pm_dbg_update_time(struct powerdomain *pwrdm, int prev); |
36 | extern int pm_dbg_regset_save(int reg_set); | 42 | extern int pm_dbg_regset_save(int reg_set); |
37 | extern int pm_dbg_regset_init(int reg_set); | 43 | extern int pm_dbg_regset_init(int reg_set); |
38 | #else | 44 | #else |
39 | #define omap2_pm_dump(mode, resume, us) do {} while (0); | ||
40 | #define omap2_pm_debug 0 | ||
41 | #define pm_dbg_update_time(pwrdm, prev) do {} while (0); | 45 | #define pm_dbg_update_time(pwrdm, prev) do {} while (0); |
42 | #define pm_dbg_regset_save(reg_set) do {} while (0); | 46 | #define pm_dbg_regset_save(reg_set) do {} while (0); |
43 | #define pm_dbg_regset_init(reg_set) do {} while (0); | 47 | #define pm_dbg_regset_init(reg_set) do {} while (0); |
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c index c6cc809afb79..910a7acf542d 100644 --- a/arch/arm/mach-omap2/pm34xx.c +++ b/arch/arm/mach-omap2/pm34xx.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/err.h> | 26 | #include <linux/err.h> |
27 | #include <linux/gpio.h> | 27 | #include <linux/gpio.h> |
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | #include <linux/delay.h> | ||
29 | 30 | ||
30 | #include <plat/sram.h> | 31 | #include <plat/sram.h> |
31 | #include <plat/clockdomain.h> | 32 | #include <plat/clockdomain.h> |
@@ -126,7 +127,15 @@ static void omap3_core_save_context(void) | |||
126 | /* wait for the save to complete */ | 127 | /* wait for the save to complete */ |
127 | while (!(omap_ctrl_readl(OMAP343X_CONTROL_GENERAL_PURPOSE_STATUS) | 128 | while (!(omap_ctrl_readl(OMAP343X_CONTROL_GENERAL_PURPOSE_STATUS) |
128 | & PADCONF_SAVE_DONE)) | 129 | & PADCONF_SAVE_DONE)) |
129 | ; | 130 | udelay(1); |
131 | |||
132 | /* | ||
133 | * Force write last pad into memory, as this can fail in some | ||
134 | * cases according to erratas 1.157, 1.185 | ||
135 | */ | ||
136 | omap_ctrl_writel(omap_ctrl_readl(OMAP343X_PADCONF_ETK_D14), | ||
137 | OMAP343X_CONTROL_MEM_WKUP + 0x2a0); | ||
138 | |||
130 | /* Save the Interrupt controller context */ | 139 | /* Save the Interrupt controller context */ |
131 | omap_intc_save_context(); | 140 | omap_intc_save_context(); |
132 | /* Save the GPMC context */ | 141 | /* Save the GPMC context */ |
@@ -392,6 +401,7 @@ void omap_sram_idle(void) | |||
392 | prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN); | 401 | prm_set_mod_reg_bits(OMAP3430_EN_IO, WKUP_MOD, PM_WKEN); |
393 | omap3_enable_io_chain(); | 402 | omap3_enable_io_chain(); |
394 | } | 403 | } |
404 | omap3_intc_prepare_idle(); | ||
395 | 405 | ||
396 | /* | 406 | /* |
397 | * On EMU/HS devices ROM code restores a SRDC value | 407 | * On EMU/HS devices ROM code restores a SRDC value |
@@ -438,6 +448,7 @@ void omap_sram_idle(void) | |||
438 | OMAP3430_GR_MOD, | 448 | OMAP3430_GR_MOD, |
439 | OMAP3_PRM_VOLTCTRL_OFFSET); | 449 | OMAP3_PRM_VOLTCTRL_OFFSET); |
440 | } | 450 | } |
451 | omap3_intc_resume_idle(); | ||
441 | 452 | ||
442 | /* PER */ | 453 | /* PER */ |
443 | if (per_next_state < PWRDM_POWER_ON) { | 454 | if (per_next_state < PWRDM_POWER_ON) { |
@@ -578,6 +589,8 @@ static int omap3_pm_suspend(void) | |||
578 | } | 589 | } |
579 | 590 | ||
580 | omap_uart_prepare_suspend(); | 591 | omap_uart_prepare_suspend(); |
592 | omap3_intc_suspend(); | ||
593 | |||
581 | omap_sram_idle(); | 594 | omap_sram_idle(); |
582 | 595 | ||
583 | restore: | 596 | restore: |
@@ -835,6 +848,8 @@ static void __init prcm_setup_regs(void) | |||
835 | CM_AUTOIDLE); | 848 | CM_AUTOIDLE); |
836 | } | 849 | } |
837 | 850 | ||
851 | omap_ctrl_writel(OMAP3430_AUTOIDLE, OMAP2_CONTROL_SYSCONFIG); | ||
852 | |||
838 | /* | 853 | /* |
839 | * Set all plls to autoidle. This is needed until autoidle is | 854 | * Set all plls to autoidle. This is needed until autoidle is |
840 | * enabled by clockfw | 855 | * enabled by clockfw |
@@ -875,15 +890,23 @@ static void __init prcm_setup_regs(void) | |||
875 | prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, | 890 | prm_write_mod_reg(OMAP3430_IO_EN | OMAP3430_WKUP_EN, |
876 | OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); | 891 | OCP_MOD, OMAP3_PRM_IRQENABLE_MPU_OFFSET); |
877 | 892 | ||
893 | /* Enable PM_WKEN to support DSS LPR */ | ||
894 | prm_write_mod_reg(OMAP3430_PM_WKEN_DSS_EN_DSS, | ||
895 | OMAP3430_DSS_MOD, PM_WKEN); | ||
896 | |||
878 | /* Enable wakeups in PER */ | 897 | /* Enable wakeups in PER */ |
879 | prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 | | 898 | prm_write_mod_reg(OMAP3430_EN_GPIO2 | OMAP3430_EN_GPIO3 | |
880 | OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | | 899 | OMAP3430_EN_GPIO4 | OMAP3430_EN_GPIO5 | |
881 | OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3, | 900 | OMAP3430_EN_GPIO6 | OMAP3430_EN_UART3 | |
901 | OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 | | ||
902 | OMAP3430_EN_MCBSP4, | ||
882 | OMAP3430_PER_MOD, PM_WKEN); | 903 | OMAP3430_PER_MOD, PM_WKEN); |
883 | /* and allow them to wake up MPU */ | 904 | /* and allow them to wake up MPU */ |
884 | prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | | 905 | prm_write_mod_reg(OMAP3430_GRPSEL_GPIO2 | OMAP3430_EN_GPIO3 | |
885 | OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | | 906 | OMAP3430_GRPSEL_GPIO4 | OMAP3430_EN_GPIO5 | |
886 | OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3, | 907 | OMAP3430_GRPSEL_GPIO6 | OMAP3430_EN_UART3 | |
908 | OMAP3430_EN_MCBSP2 | OMAP3430_EN_MCBSP3 | | ||
909 | OMAP3430_EN_MCBSP4, | ||
887 | OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); | 910 | OMAP3430_PER_MOD, OMAP3430_PM_MPUGRPSEL); |
888 | 911 | ||
889 | /* Don't attach IVA interrupts */ | 912 | /* Don't attach IVA interrupts */ |
@@ -904,24 +927,6 @@ static void __init prcm_setup_regs(void) | |||
904 | /* Clear any pending PRCM interrupts */ | 927 | /* Clear any pending PRCM interrupts */ |
905 | prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET); | 928 | prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET); |
906 | 929 | ||
907 | /* Don't attach IVA interrupts */ | ||
908 | prm_write_mod_reg(0, WKUP_MOD, OMAP3430_PM_IVAGRPSEL); | ||
909 | prm_write_mod_reg(0, CORE_MOD, OMAP3430_PM_IVAGRPSEL1); | ||
910 | prm_write_mod_reg(0, CORE_MOD, OMAP3430ES2_PM_IVAGRPSEL3); | ||
911 | prm_write_mod_reg(0, OMAP3430_PER_MOD, OMAP3430_PM_IVAGRPSEL); | ||
912 | |||
913 | /* Clear any pending 'reset' flags */ | ||
914 | prm_write_mod_reg(0xffffffff, MPU_MOD, RM_RSTST); | ||
915 | prm_write_mod_reg(0xffffffff, CORE_MOD, RM_RSTST); | ||
916 | prm_write_mod_reg(0xffffffff, OMAP3430_PER_MOD, RM_RSTST); | ||
917 | prm_write_mod_reg(0xffffffff, OMAP3430_EMU_MOD, RM_RSTST); | ||
918 | prm_write_mod_reg(0xffffffff, OMAP3430_NEON_MOD, RM_RSTST); | ||
919 | prm_write_mod_reg(0xffffffff, OMAP3430_DSS_MOD, RM_RSTST); | ||
920 | prm_write_mod_reg(0xffffffff, OMAP3430ES2_USBHOST_MOD, RM_RSTST); | ||
921 | |||
922 | /* Clear any pending PRCM interrupts */ | ||
923 | prm_write_mod_reg(0, OCP_MOD, OMAP3_PRM_IRQSTATUS_MPU_OFFSET); | ||
924 | |||
925 | omap3_iva_idle(); | 930 | omap3_iva_idle(); |
926 | omap3_d2d_idle(); | 931 | omap3_d2d_idle(); |
927 | } | 932 | } |
diff --git a/arch/arm/mach-omap2/prcm.c b/arch/arm/mach-omap2/prcm.c index 3ea8177ffb25..cf466ea1dffc 100644 --- a/arch/arm/mach-omap2/prcm.c +++ b/arch/arm/mach-omap2/prcm.c | |||
@@ -44,7 +44,6 @@ struct omap3_prcm_regs { | |||
44 | u32 iva2_cm_clksel2; | 44 | u32 iva2_cm_clksel2; |
45 | u32 cm_sysconfig; | 45 | u32 cm_sysconfig; |
46 | u32 sgx_cm_clksel; | 46 | u32 sgx_cm_clksel; |
47 | u32 wkup_cm_clksel; | ||
48 | u32 dss_cm_clksel; | 47 | u32 dss_cm_clksel; |
49 | u32 cam_cm_clksel; | 48 | u32 cam_cm_clksel; |
50 | u32 per_cm_clksel; | 49 | u32 per_cm_clksel; |
@@ -53,7 +52,6 @@ struct omap3_prcm_regs { | |||
53 | u32 pll_cm_autoidle2; | 52 | u32 pll_cm_autoidle2; |
54 | u32 pll_cm_clksel4; | 53 | u32 pll_cm_clksel4; |
55 | u32 pll_cm_clksel5; | 54 | u32 pll_cm_clksel5; |
56 | u32 pll_cm_clken; | ||
57 | u32 pll_cm_clken2; | 55 | u32 pll_cm_clken2; |
58 | u32 cm_polctrl; | 56 | u32 cm_polctrl; |
59 | u32 iva2_cm_fclken; | 57 | u32 iva2_cm_fclken; |
@@ -77,7 +75,6 @@ struct omap3_prcm_regs { | |||
77 | u32 usbhost_cm_iclken; | 75 | u32 usbhost_cm_iclken; |
78 | u32 iva2_cm_autiidle2; | 76 | u32 iva2_cm_autiidle2; |
79 | u32 mpu_cm_autoidle2; | 77 | u32 mpu_cm_autoidle2; |
80 | u32 pll_cm_autoidle; | ||
81 | u32 iva2_cm_clkstctrl; | 78 | u32 iva2_cm_clkstctrl; |
82 | u32 mpu_cm_clkstctrl; | 79 | u32 mpu_cm_clkstctrl; |
83 | u32 core_cm_clkstctrl; | 80 | u32 core_cm_clkstctrl; |
@@ -274,7 +271,6 @@ void omap3_prcm_save_context(void) | |||
274 | prcm_context.cm_sysconfig = __raw_readl(OMAP3430_CM_SYSCONFIG); | 271 | prcm_context.cm_sysconfig = __raw_readl(OMAP3430_CM_SYSCONFIG); |
275 | prcm_context.sgx_cm_clksel = | 272 | prcm_context.sgx_cm_clksel = |
276 | cm_read_mod_reg(OMAP3430ES2_SGX_MOD, CM_CLKSEL); | 273 | cm_read_mod_reg(OMAP3430ES2_SGX_MOD, CM_CLKSEL); |
277 | prcm_context.wkup_cm_clksel = cm_read_mod_reg(WKUP_MOD, CM_CLKSEL); | ||
278 | prcm_context.dss_cm_clksel = | 274 | prcm_context.dss_cm_clksel = |
279 | cm_read_mod_reg(OMAP3430_DSS_MOD, CM_CLKSEL); | 275 | cm_read_mod_reg(OMAP3430_DSS_MOD, CM_CLKSEL); |
280 | prcm_context.cam_cm_clksel = | 276 | prcm_context.cam_cm_clksel = |
@@ -291,8 +287,6 @@ void omap3_prcm_save_context(void) | |||
291 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL4); | 287 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL4); |
292 | prcm_context.pll_cm_clksel5 = | 288 | prcm_context.pll_cm_clksel5 = |
293 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL5); | 289 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKSEL5); |
294 | prcm_context.pll_cm_clken = | ||
295 | cm_read_mod_reg(PLL_MOD, CM_CLKEN); | ||
296 | prcm_context.pll_cm_clken2 = | 290 | prcm_context.pll_cm_clken2 = |
297 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKEN2); | 291 | cm_read_mod_reg(PLL_MOD, OMAP3430ES2_CM_CLKEN2); |
298 | prcm_context.cm_polctrl = __raw_readl(OMAP3430_CM_POLCTRL); | 292 | prcm_context.cm_polctrl = __raw_readl(OMAP3430_CM_POLCTRL); |
@@ -338,8 +332,6 @@ void omap3_prcm_save_context(void) | |||
338 | cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_AUTOIDLE2); | 332 | cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_AUTOIDLE2); |
339 | prcm_context.mpu_cm_autoidle2 = | 333 | prcm_context.mpu_cm_autoidle2 = |
340 | cm_read_mod_reg(MPU_MOD, CM_AUTOIDLE2); | 334 | cm_read_mod_reg(MPU_MOD, CM_AUTOIDLE2); |
341 | prcm_context.pll_cm_autoidle = | ||
342 | cm_read_mod_reg(PLL_MOD, CM_AUTOIDLE); | ||
343 | prcm_context.iva2_cm_clkstctrl = | 335 | prcm_context.iva2_cm_clkstctrl = |
344 | cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_CLKSTCTRL); | 336 | cm_read_mod_reg(OMAP3430_IVA2_MOD, CM_CLKSTCTRL); |
345 | prcm_context.mpu_cm_clkstctrl = | 337 | prcm_context.mpu_cm_clkstctrl = |
@@ -431,7 +423,6 @@ void omap3_prcm_restore_context(void) | |||
431 | __raw_writel(prcm_context.cm_sysconfig, OMAP3430_CM_SYSCONFIG); | 423 | __raw_writel(prcm_context.cm_sysconfig, OMAP3430_CM_SYSCONFIG); |
432 | cm_write_mod_reg(prcm_context.sgx_cm_clksel, OMAP3430ES2_SGX_MOD, | 424 | cm_write_mod_reg(prcm_context.sgx_cm_clksel, OMAP3430ES2_SGX_MOD, |
433 | CM_CLKSEL); | 425 | CM_CLKSEL); |
434 | cm_write_mod_reg(prcm_context.wkup_cm_clksel, WKUP_MOD, CM_CLKSEL); | ||
435 | cm_write_mod_reg(prcm_context.dss_cm_clksel, OMAP3430_DSS_MOD, | 426 | cm_write_mod_reg(prcm_context.dss_cm_clksel, OMAP3430_DSS_MOD, |
436 | CM_CLKSEL); | 427 | CM_CLKSEL); |
437 | cm_write_mod_reg(prcm_context.cam_cm_clksel, OMAP3430_CAM_MOD, | 428 | cm_write_mod_reg(prcm_context.cam_cm_clksel, OMAP3430_CAM_MOD, |
@@ -448,7 +439,6 @@ void omap3_prcm_restore_context(void) | |||
448 | OMAP3430ES2_CM_CLKSEL4); | 439 | OMAP3430ES2_CM_CLKSEL4); |
449 | cm_write_mod_reg(prcm_context.pll_cm_clksel5, PLL_MOD, | 440 | cm_write_mod_reg(prcm_context.pll_cm_clksel5, PLL_MOD, |
450 | OMAP3430ES2_CM_CLKSEL5); | 441 | OMAP3430ES2_CM_CLKSEL5); |
451 | cm_write_mod_reg(prcm_context.pll_cm_clken, PLL_MOD, CM_CLKEN); | ||
452 | cm_write_mod_reg(prcm_context.pll_cm_clken2, PLL_MOD, | 442 | cm_write_mod_reg(prcm_context.pll_cm_clken2, PLL_MOD, |
453 | OMAP3430ES2_CM_CLKEN2); | 443 | OMAP3430ES2_CM_CLKEN2); |
454 | __raw_writel(prcm_context.cm_polctrl, OMAP3430_CM_POLCTRL); | 444 | __raw_writel(prcm_context.cm_polctrl, OMAP3430_CM_POLCTRL); |
@@ -487,7 +477,6 @@ void omap3_prcm_restore_context(void) | |||
487 | cm_write_mod_reg(prcm_context.iva2_cm_autiidle2, OMAP3430_IVA2_MOD, | 477 | cm_write_mod_reg(prcm_context.iva2_cm_autiidle2, OMAP3430_IVA2_MOD, |
488 | CM_AUTOIDLE2); | 478 | CM_AUTOIDLE2); |
489 | cm_write_mod_reg(prcm_context.mpu_cm_autoidle2, MPU_MOD, CM_AUTOIDLE2); | 479 | cm_write_mod_reg(prcm_context.mpu_cm_autoidle2, MPU_MOD, CM_AUTOIDLE2); |
490 | cm_write_mod_reg(prcm_context.pll_cm_autoidle, PLL_MOD, CM_AUTOIDLE); | ||
491 | cm_write_mod_reg(prcm_context.iva2_cm_clkstctrl, OMAP3430_IVA2_MOD, | 480 | cm_write_mod_reg(prcm_context.iva2_cm_clkstctrl, OMAP3430_IVA2_MOD, |
492 | CM_CLKSTCTRL); | 481 | CM_CLKSTCTRL); |
493 | cm_write_mod_reg(prcm_context.mpu_cm_clkstctrl, MPU_MOD, CM_CLKSTCTRL); | 482 | cm_write_mod_reg(prcm_context.mpu_cm_clkstctrl, MPU_MOD, CM_CLKSTCTRL); |
diff --git a/arch/arm/mach-omap2/prm.h b/arch/arm/mach-omap2/prm.h index ea050ce188a7..40f006285163 100644 --- a/arch/arm/mach-omap2/prm.h +++ b/arch/arm/mach-omap2/prm.h | |||
@@ -24,6 +24,8 @@ | |||
24 | OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE + (module) + (reg)) | 24 | OMAP2_L4_IO_ADDRESS(OMAP3430_PRM_BASE + (module) + (reg)) |
25 | #define OMAP44XX_PRM_REGADDR(module, reg) \ | 25 | #define OMAP44XX_PRM_REGADDR(module, reg) \ |
26 | OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE + (module) + (reg)) | 26 | OMAP2_L4_IO_ADDRESS(OMAP4430_PRM_BASE + (module) + (reg)) |
27 | #define OMAP44XX_CHIRONSS_REGADDR(module, reg) \ | ||
28 | OMAP2_L4_IO_ADDRESS(OMAP4430_CHIRONSS_BASE + (module) + (reg)) | ||
27 | 29 | ||
28 | #include "prm44xx.h" | 30 | #include "prm44xx.h" |
29 | 31 | ||
diff --git a/arch/arm/mach-omap2/prm44xx.h b/arch/arm/mach-omap2/prm44xx.h index 89be97f0589d..adb2558bb121 100644 --- a/arch/arm/mach-omap2/prm44xx.h +++ b/arch/arm/mach-omap2/prm44xx.h | |||
@@ -386,26 +386,26 @@ | |||
386 | 386 | ||
387 | 387 | ||
388 | /* CHIRON_PRCM.CHIRONSS_OCP_SOCKET_PRCM register offsets */ | 388 | /* CHIRON_PRCM.CHIRONSS_OCP_SOCKET_PRCM register offsets */ |
389 | #define OMAP4430_REVISION_PRCM OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_OCP_SOCKET_PRCM_MOD, 0x0000) | 389 | #define OMAP4430_REVISION_PRCM OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_OCP_SOCKET_PRCM_MOD, 0x0000) |
390 | 390 | ||
391 | /* CHIRON_PRCM.CHIRONSS_DEVICE_PRM register offsets */ | 391 | /* CHIRON_PRCM.CHIRONSS_DEVICE_PRM register offsets */ |
392 | #define OMAP4430_CHIRON_PRCM_PRM_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_DEVICE_PRM_MOD, 0x0000) | 392 | #define OMAP4430_CHIRON_PRCM_PRM_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_DEVICE_PRM_MOD, 0x0000) |
393 | 393 | ||
394 | /* CHIRON_PRCM.CHIRONSS_CPU0 register offsets */ | 394 | /* CHIRON_PRCM.CHIRONSS_CPU0 register offsets */ |
395 | #define OMAP4430_PM_PDA_CPU0_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0000) | 395 | #define OMAP4430_PM_PDA_CPU0_PWRSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0000) |
396 | #define OMAP4430_PM_PDA_CPU0_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0004) | 396 | #define OMAP4430_PM_PDA_CPU0_PWRSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0004) |
397 | #define OMAP4430_RM_PDA_CPU0_CPU0_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0008) | 397 | #define OMAP4430_RM_PDA_CPU0_CPU0_CONTEXT OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0008) |
398 | #define OMAP4430_RM_PDA_CPU0_CPU0_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x000c) | 398 | #define OMAP4430_RM_PDA_CPU0_CPU0_RSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x000c) |
399 | #define OMAP4430_RM_PDA_CPU0_CPU0_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0010) | 399 | #define OMAP4430_RM_PDA_CPU0_CPU0_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0010) |
400 | #define OMAP4430_CM_PDA_CPU0_CPU0_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0014) | 400 | #define OMAP4430_CM_PDA_CPU0_CPU0_CLKCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0014) |
401 | #define OMAP4430_CM_PDA_CPU0_CLKSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0018) | 401 | #define OMAP4430_CM_PDA_CPU0_CLKSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU0_MOD, 0x0018) |
402 | 402 | ||
403 | /* CHIRON_PRCM.CHIRONSS_CPU1 register offsets */ | 403 | /* CHIRON_PRCM.CHIRONSS_CPU1 register offsets */ |
404 | #define OMAP4430_PM_PDA_CPU1_PWRSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0000) | 404 | #define OMAP4430_PM_PDA_CPU1_PWRSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0000) |
405 | #define OMAP4430_PM_PDA_CPU1_PWRSTST OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0004) | 405 | #define OMAP4430_PM_PDA_CPU1_PWRSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0004) |
406 | #define OMAP4430_RM_PDA_CPU1_CPU1_CONTEXT OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0008) | 406 | #define OMAP4430_RM_PDA_CPU1_CPU1_CONTEXT OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0008) |
407 | #define OMAP4430_RM_PDA_CPU1_CPU1_RSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x000c) | 407 | #define OMAP4430_RM_PDA_CPU1_CPU1_RSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x000c) |
408 | #define OMAP4430_RM_PDA_CPU1_CPU1_RSTST OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0010) | 408 | #define OMAP4430_RM_PDA_CPU1_CPU1_RSTST OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0010) |
409 | #define OMAP4430_CM_PDA_CPU1_CPU1_CLKCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0014) | 409 | #define OMAP4430_CM_PDA_CPU1_CPU1_CLKCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0014) |
410 | #define OMAP4430_CM_PDA_CPU1_CLKSTCTRL OMAP44XX_PRM_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0018) | 410 | #define OMAP4430_CM_PDA_CPU1_CLKSTCTRL OMAP44XX_CHIRONSS_REGADDR(OMAP4430_CHIRONSS_CHIRONSS_CPU1_MOD, 0x0018) |
411 | #endif | 411 | #endif |
diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c index 8c964bec8159..e10a02df6e1d 100644 --- a/arch/arm/mach-omap2/serial.c +++ b/arch/arm/mach-omap2/serial.c | |||
@@ -36,7 +36,13 @@ | |||
36 | #define UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV 0x52 | 36 | #define UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV 0x52 |
37 | #define UART_OMAP_WER 0x17 /* Wake-up enable register */ | 37 | #define UART_OMAP_WER 0x17 /* Wake-up enable register */ |
38 | 38 | ||
39 | #define DEFAULT_TIMEOUT (5 * HZ) | 39 | /* |
40 | * NOTE: By default the serial timeout is disabled as it causes lost characters | ||
41 | * over the serial ports. This means that the UART clocks will stay on until | ||
42 | * disabled via sysfs. This also causes that any deeper omap sleep states are | ||
43 | * blocked. | ||
44 | */ | ||
45 | #define DEFAULT_TIMEOUT 0 | ||
40 | 46 | ||
41 | struct omap_uart_state { | 47 | struct omap_uart_state { |
42 | int num; | 48 | int num; |
@@ -422,7 +428,8 @@ static void omap_uart_idle_init(struct omap_uart_state *uart) | |||
422 | uart->timeout = DEFAULT_TIMEOUT; | 428 | uart->timeout = DEFAULT_TIMEOUT; |
423 | setup_timer(&uart->timer, omap_uart_idle_timer, | 429 | setup_timer(&uart->timer, omap_uart_idle_timer, |
424 | (unsigned long) uart); | 430 | (unsigned long) uart); |
425 | mod_timer(&uart->timer, jiffies + uart->timeout); | 431 | if (uart->timeout) |
432 | mod_timer(&uart->timer, jiffies + uart->timeout); | ||
426 | omap_uart_smart_idle_enable(uart, 0); | 433 | omap_uart_smart_idle_enable(uart, 0); |
427 | 434 | ||
428 | if (cpu_is_omap34xx()) { | 435 | if (cpu_is_omap34xx()) { |
diff --git a/arch/arm/mach-omap2/sleep34xx.S b/arch/arm/mach-omap2/sleep34xx.S index 15268f8b61de..c3626ea48143 100644 --- a/arch/arm/mach-omap2/sleep34xx.S +++ b/arch/arm/mach-omap2/sleep34xx.S | |||
@@ -245,7 +245,8 @@ restore: | |||
245 | mov r1, #0 @ set task id for ROM code in r1 | 245 | mov r1, #0 @ set task id for ROM code in r1 |
246 | mov r2, #4 @ set some flags in r2, r6 | 246 | mov r2, #4 @ set some flags in r2, r6 |
247 | mov r6, #0xff | 247 | mov r6, #0xff |
248 | adr r3, write_aux_control_params @ r3 points to parameters | 248 | ldr r4, scratchpad_base |
249 | ldr r3, [r4, #0xBC] @ r3 points to parameters | ||
249 | mcr p15, 0, r0, c7, c10, 4 @ data write barrier | 250 | mcr p15, 0, r0, c7, c10, 4 @ data write barrier |
250 | mcr p15, 0, r0, c7, c10, 5 @ data memory barrier | 251 | mcr p15, 0, r0, c7, c10, 5 @ data memory barrier |
251 | .word 0xE1600071 @ call SMI monitor (smi #1) | 252 | .word 0xE1600071 @ call SMI monitor (smi #1) |
@@ -253,14 +254,14 @@ restore: | |||
253 | b logic_l1_restore | 254 | b logic_l1_restore |
254 | l2_inv_api_params: | 255 | l2_inv_api_params: |
255 | .word 0x1, 0x00 | 256 | .word 0x1, 0x00 |
256 | write_aux_control_params: | ||
257 | .word 0x1, 0x72 | ||
258 | l2_inv_gp: | 257 | l2_inv_gp: |
259 | /* Execute smi to invalidate L2 cache */ | 258 | /* Execute smi to invalidate L2 cache */ |
260 | mov r12, #0x1 @ set up to invalide L2 | 259 | mov r12, #0x1 @ set up to invalide L2 |
261 | smi: .word 0xE1600070 @ Call SMI monitor (smieq) | 260 | smi: .word 0xE1600070 @ Call SMI monitor (smieq) |
262 | /* Write to Aux control register to set some bits */ | 261 | /* Write to Aux control register to set some bits */ |
263 | mov r0, #0x72 | 262 | ldr r4, scratchpad_base |
263 | ldr r3, [r4,#0xBC] | ||
264 | ldr r0, [r3,#4] | ||
264 | mov r12, #0x3 | 265 | mov r12, #0x3 |
265 | .word 0xE1600070 @ Call SMI monitor (smieq) | 266 | .word 0xE1600070 @ Call SMI monitor (smieq) |
266 | logic_l1_restore: | 267 | logic_l1_restore: |
@@ -271,6 +272,7 @@ logic_l1_restore: | |||
271 | 272 | ||
272 | ldr r4, scratchpad_base | 273 | ldr r4, scratchpad_base |
273 | ldr r3, [r4,#0xBC] | 274 | ldr r3, [r4,#0xBC] |
275 | adds r3, r3, #8 | ||
274 | ldmia r3!, {r4-r6} | 276 | ldmia r3!, {r4-r6} |
275 | mov sp, r4 | 277 | mov sp, r4 |
276 | msr spsr_cxsf, r5 | 278 | msr spsr_cxsf, r5 |
@@ -387,6 +389,9 @@ usettbr0: | |||
387 | save_context_wfi: | 389 | save_context_wfi: |
388 | /*b save_context_wfi*/ @ enable to debug save code | 390 | /*b save_context_wfi*/ @ enable to debug save code |
389 | mov r8, r0 /* Store SDRAM address in r8 */ | 391 | mov r8, r0 /* Store SDRAM address in r8 */ |
392 | mrc p15, 0, r5, c1, c0, 1 @ Read Auxiliary Control Register | ||
393 | mov r4, #0x1 @ Number of parameters for restore call | ||
394 | stmia r8!, {r4-r5} | ||
390 | /* Check what that target sleep state is:stored in r1*/ | 395 | /* Check what that target sleep state is:stored in r1*/ |
391 | /* 1 - Only L1 and logic lost */ | 396 | /* 1 - Only L1 and logic lost */ |
392 | /* 2 - Only L2 lost */ | 397 | /* 2 - Only L2 lost */ |
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c index b31ca4cef365..8f159db4d08a 100644 --- a/arch/arm/mach-orion5x/dns323-setup.c +++ b/arch/arm/mach-orion5x/dns323-setup.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/init.h> | 14 | #include <linux/init.h> |
15 | #include <linux/delay.h> | ||
15 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
16 | #include <linux/pci.h> | 17 | #include <linux/pci.h> |
17 | #include <linux/irq.h> | 18 | #include <linux/irq.h> |
@@ -32,6 +33,7 @@ | |||
32 | 33 | ||
33 | #define DNS323_GPIO_LED_RIGHT_AMBER 1 | 34 | #define DNS323_GPIO_LED_RIGHT_AMBER 1 |
34 | #define DNS323_GPIO_LED_LEFT_AMBER 2 | 35 | #define DNS323_GPIO_LED_LEFT_AMBER 2 |
36 | #define DNS323_GPIO_SYSTEM_UP 3 | ||
35 | #define DNS323_GPIO_LED_POWER 5 | 37 | #define DNS323_GPIO_LED_POWER 5 |
36 | #define DNS323_GPIO_OVERTEMP 6 | 38 | #define DNS323_GPIO_OVERTEMP 6 |
37 | #define DNS323_GPIO_RTC 7 | 39 | #define DNS323_GPIO_RTC 7 |
@@ -239,7 +241,7 @@ static struct gpio_led dns323_leds[] = { | |||
239 | { | 241 | { |
240 | .name = "power:blue", | 242 | .name = "power:blue", |
241 | .gpio = DNS323_GPIO_LED_POWER, | 243 | .gpio = DNS323_GPIO_LED_POWER, |
242 | .active_low = 1, | 244 | .default_state = LEDS_GPIO_DEFSTATE_ON, |
243 | }, { | 245 | }, { |
244 | .name = "right:amber", | 246 | .name = "right:amber", |
245 | .gpio = DNS323_GPIO_LED_RIGHT_AMBER, | 247 | .gpio = DNS323_GPIO_LED_RIGHT_AMBER, |
@@ -334,7 +336,7 @@ static struct orion5x_mpp_mode dns323_mv88f5182_mpp_modes[] __initdata = { | |||
334 | { 0, MPP_UNUSED }, | 336 | { 0, MPP_UNUSED }, |
335 | { 1, MPP_GPIO }, /* right amber LED (sata ch0) */ | 337 | { 1, MPP_GPIO }, /* right amber LED (sata ch0) */ |
336 | { 2, MPP_GPIO }, /* left amber LED (sata ch1) */ | 338 | { 2, MPP_GPIO }, /* left amber LED (sata ch1) */ |
337 | { 3, MPP_UNUSED }, | 339 | { 3, MPP_GPIO }, /* system up flag */ |
338 | { 4, MPP_GPIO }, /* power button LED */ | 340 | { 4, MPP_GPIO }, /* power button LED */ |
339 | { 5, MPP_GPIO }, /* power button LED */ | 341 | { 5, MPP_GPIO }, /* power button LED */ |
340 | { 6, MPP_GPIO }, /* GMT G751-2f overtemp */ | 342 | { 6, MPP_GPIO }, /* GMT G751-2f overtemp */ |
@@ -372,13 +374,23 @@ static struct i2c_board_info __initdata dns323_i2c_devices[] = { | |||
372 | }, | 374 | }, |
373 | }; | 375 | }; |
374 | 376 | ||
375 | /* DNS-323 specific power off method */ | 377 | /* DNS-323 rev. A specific power off method */ |
376 | static void dns323_power_off(void) | 378 | static void dns323a_power_off(void) |
377 | { | 379 | { |
378 | pr_info("%s: triggering power-off...\n", __func__); | 380 | pr_info("%s: triggering power-off...\n", __func__); |
379 | gpio_set_value(DNS323_GPIO_POWER_OFF, 1); | 381 | gpio_set_value(DNS323_GPIO_POWER_OFF, 1); |
380 | } | 382 | } |
381 | 383 | ||
384 | /* DNS-323 rev B specific power off method */ | ||
385 | static void dns323b_power_off(void) | ||
386 | { | ||
387 | pr_info("%s: triggering power-off...\n", __func__); | ||
388 | /* Pin has to be changed to 1 and back to 0 to do actual power off. */ | ||
389 | gpio_set_value(DNS323_GPIO_POWER_OFF, 1); | ||
390 | mdelay(100); | ||
391 | gpio_set_value(DNS323_GPIO_POWER_OFF, 0); | ||
392 | } | ||
393 | |||
382 | static void __init dns323_init(void) | 394 | static void __init dns323_init(void) |
383 | { | 395 | { |
384 | /* Setup basic Orion functions. Need to be called early. */ | 396 | /* Setup basic Orion functions. Need to be called early. */ |
@@ -424,11 +436,20 @@ static void __init dns323_init(void) | |||
424 | if (dns323_dev_id() == MV88F5182_DEV_ID) | 436 | if (dns323_dev_id() == MV88F5182_DEV_ID) |
425 | orion5x_sata_init(&dns323_sata_data); | 437 | orion5x_sata_init(&dns323_sata_data); |
426 | 438 | ||
427 | /* register dns323 specific power-off method */ | 439 | /* The 5182 has flag to indicate the system is up. Without this flag |
440 | * set, power LED will flash and cannot be controlled via leds-gpio. | ||
441 | */ | ||
442 | if (dns323_dev_id() == MV88F5182_DEV_ID) | ||
443 | gpio_set_value(DNS323_GPIO_SYSTEM_UP, 1); | ||
444 | |||
445 | /* Register dns323 specific power-off method */ | ||
428 | if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 || | 446 | if (gpio_request(DNS323_GPIO_POWER_OFF, "POWEROFF") != 0 || |
429 | gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0) | 447 | gpio_direction_output(DNS323_GPIO_POWER_OFF, 0) != 0) |
430 | pr_err("DNS323: failed to setup power-off GPIO\n"); | 448 | pr_err("DNS323: failed to setup power-off GPIO\n"); |
431 | pm_power_off = dns323_power_off; | 449 | if (dns323_dev_id() == MV88F5182_DEV_ID) |
450 | pm_power_off = dns323b_power_off; | ||
451 | else | ||
452 | pm_power_off = dns323a_power_off; | ||
432 | } | 453 | } |
433 | 454 | ||
434 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ | 455 | /* Warning: D-Link uses a wrong mach-type (=526) in their bootloader */ |
diff --git a/arch/arm/mach-orion5x/wrt350n-v2-setup.c b/arch/arm/mach-orion5x/wrt350n-v2-setup.c index 1b4ad9d5e2eb..cb0feca193d4 100644 --- a/arch/arm/mach-orion5x/wrt350n-v2-setup.c +++ b/arch/arm/mach-orion5x/wrt350n-v2-setup.c | |||
@@ -15,6 +15,9 @@ | |||
15 | #include <linux/mtd/physmap.h> | 15 | #include <linux/mtd/physmap.h> |
16 | #include <linux/mv643xx_eth.h> | 16 | #include <linux/mv643xx_eth.h> |
17 | #include <linux/ethtool.h> | 17 | #include <linux/ethtool.h> |
18 | #include <linux/leds.h> | ||
19 | #include <linux/gpio_keys.h> | ||
20 | #include <linux/input.h> | ||
18 | #include <net/dsa.h> | 21 | #include <net/dsa.h> |
19 | #include <asm/mach-types.h> | 22 | #include <asm/mach-types.h> |
20 | #include <asm/gpio.h> | 23 | #include <asm/gpio.h> |
@@ -24,6 +27,80 @@ | |||
24 | #include "common.h" | 27 | #include "common.h" |
25 | #include "mpp.h" | 28 | #include "mpp.h" |
26 | 29 | ||
30 | /* | ||
31 | * LEDs attached to GPIO | ||
32 | */ | ||
33 | static struct gpio_led wrt350n_v2_led_pins[] = { | ||
34 | { | ||
35 | .name = "wrt350nv2:green:power", | ||
36 | .gpio = 0, | ||
37 | .active_low = 1, | ||
38 | }, { | ||
39 | .name = "wrt350nv2:green:security", | ||
40 | .gpio = 1, | ||
41 | .active_low = 1, | ||
42 | }, { | ||
43 | .name = "wrt350nv2:orange:power", | ||
44 | .gpio = 5, | ||
45 | .active_low = 1, | ||
46 | }, { | ||
47 | .name = "wrt350nv2:green:usb", | ||
48 | .gpio = 6, | ||
49 | .active_low = 1, | ||
50 | }, { | ||
51 | .name = "wrt350nv2:green:wireless", | ||
52 | .gpio = 7, | ||
53 | .active_low = 1, | ||
54 | }, | ||
55 | }; | ||
56 | |||
57 | static struct gpio_led_platform_data wrt350n_v2_led_data = { | ||
58 | .leds = wrt350n_v2_led_pins, | ||
59 | .num_leds = ARRAY_SIZE(wrt350n_v2_led_pins), | ||
60 | }; | ||
61 | |||
62 | static struct platform_device wrt350n_v2_leds = { | ||
63 | .name = "leds-gpio", | ||
64 | .id = -1, | ||
65 | .dev = { | ||
66 | .platform_data = &wrt350n_v2_led_data, | ||
67 | }, | ||
68 | }; | ||
69 | |||
70 | /* | ||
71 | * Buttons attached to GPIO | ||
72 | */ | ||
73 | static struct gpio_keys_button wrt350n_v2_buttons[] = { | ||
74 | { | ||
75 | .code = KEY_RESTART, | ||
76 | .gpio = 3, | ||
77 | .desc = "Reset Button", | ||
78 | .active_low = 1, | ||
79 | }, { | ||
80 | .code = KEY_WLAN, | ||
81 | .gpio = 2, | ||
82 | .desc = "WPS Button", | ||
83 | .active_low = 1, | ||
84 | }, | ||
85 | }; | ||
86 | |||
87 | static struct gpio_keys_platform_data wrt350n_v2_button_data = { | ||
88 | .buttons = wrt350n_v2_buttons, | ||
89 | .nbuttons = ARRAY_SIZE(wrt350n_v2_buttons), | ||
90 | }; | ||
91 | |||
92 | static struct platform_device wrt350n_v2_button_device = { | ||
93 | .name = "gpio-keys", | ||
94 | .id = -1, | ||
95 | .num_resources = 0, | ||
96 | .dev = { | ||
97 | .platform_data = &wrt350n_v2_button_data, | ||
98 | }, | ||
99 | }; | ||
100 | |||
101 | /* | ||
102 | * General setup | ||
103 | */ | ||
27 | static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = { | 104 | static struct orion5x_mpp_mode wrt350n_v2_mpp_modes[] __initdata = { |
28 | { 0, MPP_GPIO }, /* Power LED green (0=on) */ | 105 | { 0, MPP_GPIO }, /* Power LED green (0=on) */ |
29 | { 1, MPP_GPIO }, /* Security LED (0=on) */ | 106 | { 1, MPP_GPIO }, /* Security LED (0=on) */ |
@@ -140,6 +217,8 @@ static void __init wrt350n_v2_init(void) | |||
140 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, | 217 | orion5x_setup_dev_boot_win(WRT350N_V2_NOR_BOOT_BASE, |
141 | WRT350N_V2_NOR_BOOT_SIZE); | 218 | WRT350N_V2_NOR_BOOT_SIZE); |
142 | platform_device_register(&wrt350n_v2_nor_flash); | 219 | platform_device_register(&wrt350n_v2_nor_flash); |
220 | platform_device_register(&wrt350n_v2_leds); | ||
221 | platform_device_register(&wrt350n_v2_button_device); | ||
143 | } | 222 | } |
144 | 223 | ||
145 | static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) | 224 | static int __init wrt350n_v2_pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin) |
diff --git a/arch/arm/mach-pxa/corgi.c b/arch/arm/mach-pxa/corgi.c index 74446cf8ae69..da3156d8690b 100644 --- a/arch/arm/mach-pxa/corgi.c +++ b/arch/arm/mach-pxa/corgi.c | |||
@@ -457,6 +457,7 @@ static struct pxaficp_platform_data corgi_ficp_platform_data = { | |||
457 | * USB Device Controller | 457 | * USB Device Controller |
458 | */ | 458 | */ |
459 | static struct pxa2xx_udc_mach_info udc_info __initdata = { | 459 | static struct pxa2xx_udc_mach_info udc_info __initdata = { |
460 | .gpio_vbus = -1, | ||
460 | /* no connect GPIO; corgi can't tell connection status */ | 461 | /* no connect GPIO; corgi can't tell connection status */ |
461 | .gpio_pullup = CORGI_GPIO_USB_PULLUP, | 462 | .gpio_pullup = CORGI_GPIO_USB_PULLUP, |
462 | }; | 463 | }; |
diff --git a/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h b/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h index b13dc0269a6d..9c787855cf24 100644 --- a/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h +++ b/arch/arm/mach-pxa/include/mach/mfp-pxa25x.h | |||
@@ -169,7 +169,6 @@ | |||
169 | #define GPIO86_nSDCS2 MFP_CFG_OUT(GPIO86, AF0, DRIVE_HIGH) | 169 | #define GPIO86_nSDCS2 MFP_CFG_OUT(GPIO86, AF0, DRIVE_HIGH) |
170 | #define GPIO87_nSDCS3 MFP_CFG_OUT(GPIO87, AF0, DRIVE_HIGH) | 170 | #define GPIO87_nSDCS3 MFP_CFG_OUT(GPIO87, AF0, DRIVE_HIGH) |
171 | #define GPIO88_RDnWR MFP_CFG_OUT(GPIO88, AF0, DRIVE_HIGH) | 171 | #define GPIO88_RDnWR MFP_CFG_OUT(GPIO88, AF0, DRIVE_HIGH) |
172 | #define GPIO89_nACRESET MFP_CFG_OUT(GPIO89, AF0, DRIVE_HIGH) | ||
173 | 172 | ||
174 | /* USB */ | 173 | /* USB */ |
175 | #define GPIO9_USB_RCV MFP_CFG_IN(GPIO9, AF1) | 174 | #define GPIO9_USB_RCV MFP_CFG_IN(GPIO9, AF1) |
@@ -186,6 +185,9 @@ | |||
186 | #define GPIO30_ASSP_TXD MFP_CFG_OUT(GPIO30, AF3, DRIVE_LOW) | 185 | #define GPIO30_ASSP_TXD MFP_CFG_OUT(GPIO30, AF3, DRIVE_LOW) |
187 | #define GPIO31_ASSP_SFRM_IN MFP_CFG_IN(GPIO31, AF1) | 186 | #define GPIO31_ASSP_SFRM_IN MFP_CFG_IN(GPIO31, AF1) |
188 | #define GPIO31_ASSP_SFRM_OUT MFP_CFG_OUT(GPIO31, AF3, DRIVE_LOW) | 187 | #define GPIO31_ASSP_SFRM_OUT MFP_CFG_OUT(GPIO31, AF3, DRIVE_LOW) |
189 | #endif | 188 | |
189 | /* AC97 */ | ||
190 | #define GPIO89_AC97_nRESET MFP_CFG_OUT(GPIO89, AF0, DRIVE_HIGH) | ||
191 | #endif /* CONFIG_CPU_PXA26x */ | ||
190 | 192 | ||
191 | #endif /* __ASM_ARCH_MFP_PXA25X_H */ | 193 | #endif /* __ASM_ARCH_MFP_PXA25X_H */ |
diff --git a/arch/arm/mach-pxa/irq.c b/arch/arm/mach-pxa/irq.c index 6112af431fa4..1beb40f692fc 100644 --- a/arch/arm/mach-pxa/irq.c +++ b/arch/arm/mach-pxa/irq.c | |||
@@ -164,8 +164,11 @@ static int pxa_irq_suspend(struct sys_device *dev, pm_message_t state) | |||
164 | saved_icmr[i] = _ICMR(irq); | 164 | saved_icmr[i] = _ICMR(irq); |
165 | _ICMR(irq) = 0; | 165 | _ICMR(irq) = 0; |
166 | } | 166 | } |
167 | for (i = 0; i < pxa_internal_irq_nr; i++) | 167 | |
168 | saved_ipr[i] = IPR(i); | 168 | if (cpu_is_pxa27x() || cpu_is_pxa3xx()) { |
169 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
170 | saved_ipr[i] = IPR(i); | ||
171 | } | ||
169 | 172 | ||
170 | return 0; | 173 | return 0; |
171 | } | 174 | } |
@@ -174,12 +177,15 @@ static int pxa_irq_resume(struct sys_device *dev) | |||
174 | { | 177 | { |
175 | int i, irq = PXA_IRQ(0); | 178 | int i, irq = PXA_IRQ(0); |
176 | 179 | ||
180 | if (cpu_is_pxa27x() || cpu_is_pxa3xx()) { | ||
181 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
182 | IPR(i) = saved_ipr[i]; | ||
183 | } | ||
184 | |||
177 | for (i = 0; irq < PXA_IRQ(pxa_internal_irq_nr); i++, irq += 32) { | 185 | for (i = 0; irq < PXA_IRQ(pxa_internal_irq_nr); i++, irq += 32) { |
178 | _ICMR(irq) = saved_icmr[i]; | 186 | _ICMR(irq) = saved_icmr[i]; |
179 | _ICLR(irq) = 0; | 187 | _ICLR(irq) = 0; |
180 | } | 188 | } |
181 | for (i = 0; i < pxa_internal_irq_nr; i++) | ||
182 | IPR(i) = saved_ipr[i]; | ||
183 | 189 | ||
184 | ICCR = 1; | 190 | ICCR = 1; |
185 | return 0; | 191 | return 0; |
diff --git a/arch/arm/mach-realview/realview_pbx.c b/arch/arm/mach-realview/realview_pbx.c index a21a4b395f73..d94857eb0690 100644 --- a/arch/arm/mach-realview/realview_pbx.c +++ b/arch/arm/mach-realview/realview_pbx.c | |||
@@ -334,8 +334,8 @@ static void realview_pbx_reset(char mode) | |||
334 | * in the system FPGA | 334 | * in the system FPGA |
335 | */ | 335 | */ |
336 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); | 336 | __raw_writel(REALVIEW_SYS_LOCK_VAL, lock_ctrl); |
337 | __raw_writel(0x0000, reset_ctrl); | 337 | __raw_writel(0x00F0, reset_ctrl); |
338 | __raw_writel(0x0004, reset_ctrl); | 338 | __raw_writel(0x00F4, reset_ctrl); |
339 | } | 339 | } |
340 | 340 | ||
341 | static void __init realview_pbx_init(void) | 341 | static void __init realview_pbx_init(void) |
diff --git a/arch/arm/mach-s3c6410/mach-hmt.c b/arch/arm/mach-s3c6410/mach-hmt.c index cdd4b5378552..7619456f2ae8 100644 --- a/arch/arm/mach-s3c6410/mach-hmt.c +++ b/arch/arm/mach-s3c6410/mach-hmt.c | |||
@@ -82,7 +82,7 @@ static int hmt_bl_init(struct device *dev) | |||
82 | return ret; | 82 | return ret; |
83 | } | 83 | } |
84 | 84 | ||
85 | static int hmt_bl_notify(int brightness) | 85 | static int hmt_bl_notify(struct device *dev, int brightness) |
86 | { | 86 | { |
87 | /* | 87 | /* |
88 | * translate from CIELUV/CIELAB L*->brightness, E.G. from | 88 | * translate from CIELUV/CIELAB L*->brightness, E.G. from |
diff --git a/arch/arm/mm/proc-arm6_7.S b/arch/arm/mm/proc-arm6_7.S index 3f9cd3d8f6d5..795dc615f43b 100644 --- a/arch/arm/mm/proc-arm6_7.S +++ b/arch/arm/mm/proc-arm6_7.S | |||
@@ -41,7 +41,7 @@ ENTRY(cpu_arm7_dcache_clean_area) | |||
41 | ENTRY(cpu_arm7_data_abort) | 41 | ENTRY(cpu_arm7_data_abort) |
42 | mrc p15, 0, r1, c5, c0, 0 @ get FSR | 42 | mrc p15, 0, r1, c5, c0, 0 @ get FSR |
43 | mrc p15, 0, r0, c6, c0, 0 @ get FAR | 43 | mrc p15, 0, r0, c6, c0, 0 @ get FAR |
44 | ldr r8, [r0] @ read arm instruction | 44 | ldr r8, [r2] @ read arm instruction |
45 | tst r8, #1 << 20 @ L = 0 -> write? | 45 | tst r8, #1 << 20 @ L = 0 -> write? |
46 | orreq r1, r1, #1 << 11 @ yes. | 46 | orreq r1, r1, #1 << 11 @ yes. |
47 | and r7, r8, #15 << 24 | 47 | and r7, r8, #15 << 24 |
diff --git a/arch/arm/plat-mxc/audmux-v2.c b/arch/arm/plat-mxc/audmux-v2.c index 6f21096086fd..b06954a84436 100644 --- a/arch/arm/plat-mxc/audmux-v2.c +++ b/arch/arm/plat-mxc/audmux-v2.c | |||
@@ -23,6 +23,7 @@ | |||
23 | #include <linux/err.h> | 23 | #include <linux/err.h> |
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/clk.h> | 25 | #include <linux/clk.h> |
26 | #include <linux/debugfs.h> | ||
26 | #include <mach/audmux.h> | 27 | #include <mach/audmux.h> |
27 | #include <mach/hardware.h> | 28 | #include <mach/hardware.h> |
28 | 29 | ||
@@ -32,6 +33,140 @@ static void __iomem *audmux_base; | |||
32 | #define MXC_AUDMUX_V2_PTCR(x) ((x) * 8) | 33 | #define MXC_AUDMUX_V2_PTCR(x) ((x) * 8) |
33 | #define MXC_AUDMUX_V2_PDCR(x) ((x) * 8 + 4) | 34 | #define MXC_AUDMUX_V2_PDCR(x) ((x) * 8 + 4) |
34 | 35 | ||
36 | #ifdef CONFIG_DEBUG_FS | ||
37 | static struct dentry *audmux_debugfs_root; | ||
38 | |||
39 | static int audmux_open_file(struct inode *inode, struct file *file) | ||
40 | { | ||
41 | file->private_data = inode->i_private; | ||
42 | return 0; | ||
43 | } | ||
44 | |||
45 | /* There is an annoying discontinuity in the SSI numbering with regard | ||
46 | * to the Linux number of the devices */ | ||
47 | static const char *audmux_port_string(int port) | ||
48 | { | ||
49 | switch (port) { | ||
50 | case MX31_AUDMUX_PORT1_SSI0: | ||
51 | return "imx-ssi.0"; | ||
52 | case MX31_AUDMUX_PORT2_SSI1: | ||
53 | return "imx-ssi.1"; | ||
54 | case MX31_AUDMUX_PORT3_SSI_PINS_3: | ||
55 | return "SSI3"; | ||
56 | case MX31_AUDMUX_PORT4_SSI_PINS_4: | ||
57 | return "SSI4"; | ||
58 | case MX31_AUDMUX_PORT5_SSI_PINS_5: | ||
59 | return "SSI5"; | ||
60 | case MX31_AUDMUX_PORT6_SSI_PINS_6: | ||
61 | return "SSI6"; | ||
62 | default: | ||
63 | return "UNKNOWN"; | ||
64 | } | ||
65 | } | ||
66 | |||
67 | static ssize_t audmux_read_file(struct file *file, char __user *user_buf, | ||
68 | size_t count, loff_t *ppos) | ||
69 | { | ||
70 | ssize_t ret; | ||
71 | char *buf = kmalloc(PAGE_SIZE, GFP_KERNEL); | ||
72 | int port = (int)file->private_data; | ||
73 | u32 pdcr, ptcr; | ||
74 | |||
75 | if (!buf) | ||
76 | return -ENOMEM; | ||
77 | |||
78 | if (audmux_clk) | ||
79 | clk_enable(audmux_clk); | ||
80 | |||
81 | ptcr = readl(audmux_base + MXC_AUDMUX_V2_PTCR(port)); | ||
82 | pdcr = readl(audmux_base + MXC_AUDMUX_V2_PDCR(port)); | ||
83 | |||
84 | if (audmux_clk) | ||
85 | clk_disable(audmux_clk); | ||
86 | |||
87 | ret = snprintf(buf, PAGE_SIZE, "PDCR: %08x\nPTCR: %08x\n", | ||
88 | pdcr, ptcr); | ||
89 | |||
90 | if (ptcr & MXC_AUDMUX_V2_PTCR_TFSDIR) | ||
91 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
92 | "TxFS output from %s, ", | ||
93 | audmux_port_string((ptcr >> 27) & 0x7)); | ||
94 | else | ||
95 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
96 | "TxFS input, "); | ||
97 | |||
98 | if (ptcr & MXC_AUDMUX_V2_PTCR_TCLKDIR) | ||
99 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
100 | "TxClk output from %s", | ||
101 | audmux_port_string((ptcr >> 22) & 0x7)); | ||
102 | else | ||
103 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
104 | "TxClk input"); | ||
105 | |||
106 | ret += snprintf(buf + ret, PAGE_SIZE - ret, "\n"); | ||
107 | |||
108 | if (ptcr & MXC_AUDMUX_V2_PTCR_SYN) { | ||
109 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
110 | "Port is symmetric"); | ||
111 | } else { | ||
112 | if (ptcr & MXC_AUDMUX_V2_PTCR_RFSDIR) | ||
113 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
114 | "RxFS output from %s, ", | ||
115 | audmux_port_string((ptcr >> 17) & 0x7)); | ||
116 | else | ||
117 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
118 | "RxFS input, "); | ||
119 | |||
120 | if (ptcr & MXC_AUDMUX_V2_PTCR_RCLKDIR) | ||
121 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
122 | "RxClk output from %s", | ||
123 | audmux_port_string((ptcr >> 12) & 0x7)); | ||
124 | else | ||
125 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
126 | "RxClk input"); | ||
127 | } | ||
128 | |||
129 | ret += snprintf(buf + ret, PAGE_SIZE - ret, | ||
130 | "\nData received from %s\n", | ||
131 | audmux_port_string((pdcr >> 13) & 0x7)); | ||
132 | |||
133 | ret = simple_read_from_buffer(user_buf, count, ppos, buf, ret); | ||
134 | |||
135 | kfree(buf); | ||
136 | |||
137 | return ret; | ||
138 | } | ||
139 | |||
140 | static const struct file_operations audmux_debugfs_fops = { | ||
141 | .open = audmux_open_file, | ||
142 | .read = audmux_read_file, | ||
143 | }; | ||
144 | |||
145 | static void audmux_debugfs_init(void) | ||
146 | { | ||
147 | int i; | ||
148 | char buf[20]; | ||
149 | |||
150 | audmux_debugfs_root = debugfs_create_dir("audmux", NULL); | ||
151 | if (!audmux_debugfs_root) { | ||
152 | pr_warning("Failed to create AUDMUX debugfs root\n"); | ||
153 | return; | ||
154 | } | ||
155 | |||
156 | for (i = 1; i < 8; i++) { | ||
157 | snprintf(buf, sizeof(buf), "ssi%d", i); | ||
158 | if (!debugfs_create_file(buf, 0444, audmux_debugfs_root, | ||
159 | (void *)i, &audmux_debugfs_fops)) | ||
160 | pr_warning("Failed to create AUDMUX port %d debugfs file\n", | ||
161 | i); | ||
162 | } | ||
163 | } | ||
164 | #else | ||
165 | static inline void audmux_debugfs_init(void) | ||
166 | { | ||
167 | } | ||
168 | #endif | ||
169 | |||
35 | int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr, | 170 | int mxc_audmux_v2_configure_port(unsigned int port, unsigned int ptcr, |
36 | unsigned int pdcr) | 171 | unsigned int pdcr) |
37 | { | 172 | { |
@@ -68,6 +203,8 @@ static int mxc_audmux_v2_init(void) | |||
68 | if (cpu_is_mx31() || cpu_is_mx35()) | 203 | if (cpu_is_mx31() || cpu_is_mx35()) |
69 | audmux_base = IO_ADDRESS(AUDMUX_BASE_ADDR); | 204 | audmux_base = IO_ADDRESS(AUDMUX_BASE_ADDR); |
70 | 205 | ||
206 | audmux_debugfs_init(); | ||
207 | |||
71 | return 0; | 208 | return 0; |
72 | } | 209 | } |
73 | 210 | ||
diff --git a/arch/arm/plat-mxc/include/mach/board-mx31lite.h b/arch/arm/plat-mxc/include/mach/board-mx31lite.h index 0184b638c268..2b2da0367578 100644 --- a/arch/arm/plat-mxc/include/mach/board-mx31lite.h +++ b/arch/arm/plat-mxc/include/mach/board-mx31lite.h | |||
@@ -25,7 +25,7 @@ | |||
25 | 25 | ||
26 | #ifndef __ASSEMBLY__ | 26 | #ifndef __ASSEMBLY__ |
27 | 27 | ||
28 | enum mx31lilly_boards { | 28 | enum mx31lite_boards { |
29 | MX31LITE_NOBOARD = 0, | 29 | MX31LITE_NOBOARD = 0, |
30 | MX31LITE_DB = 1, | 30 | MX31LITE_DB = 1, |
31 | }; | 31 | }; |
diff --git a/arch/arm/plat-mxc/include/mach/common.h b/arch/arm/plat-mxc/include/mach/common.h index 286cb9b0a25b..4bf1068ffad9 100644 --- a/arch/arm/plat-mxc/include/mach/common.h +++ b/arch/arm/plat-mxc/include/mach/common.h | |||
@@ -32,7 +32,7 @@ extern void mxc91231_init_irq(void); | |||
32 | extern void mxc_timer_init(struct clk *timer_clk, void __iomem *, int); | 32 | extern void mxc_timer_init(struct clk *timer_clk, void __iomem *, int); |
33 | extern int mx1_clocks_init(unsigned long fref); | 33 | extern int mx1_clocks_init(unsigned long fref); |
34 | extern int mx21_clocks_init(unsigned long lref, unsigned long fref); | 34 | extern int mx21_clocks_init(unsigned long lref, unsigned long fref); |
35 | extern int mx25_clocks_init(unsigned long fref); | 35 | extern int mx25_clocks_init(void); |
36 | extern int mx27_clocks_init(unsigned long fref); | 36 | extern int mx27_clocks_init(unsigned long fref); |
37 | extern int mx31_clocks_init(unsigned long fref); | 37 | extern int mx31_clocks_init(unsigned long fref); |
38 | extern int mx35_clocks_init(void); | 38 | extern int mx35_clocks_init(void); |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx35.h b/arch/arm/plat-mxc/include/mach/iomux-mx35.h index 00b0ac1db225..c88d40795f7a 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx35.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx35.h | |||
@@ -671,7 +671,7 @@ | |||
671 | #define MX35_PAD_LD8__SDMA_SDMA_DEBUG_PC_8 IOMUX_PAD(0x634, 0x1d0, 6, 0x0, 0, NO_PAD_CTRL) | 671 | #define MX35_PAD_LD8__SDMA_SDMA_DEBUG_PC_8 IOMUX_PAD(0x634, 0x1d0, 6, 0x0, 0, NO_PAD_CTRL) |
672 | 672 | ||
673 | #define MX35_PAD_LD9__IPU_DISPB_DAT_9 IOMUX_PAD(0x638, 0x1d4, 0, 0x0, 0, NO_PAD_CTRL) | 673 | #define MX35_PAD_LD9__IPU_DISPB_DAT_9 IOMUX_PAD(0x638, 0x1d4, 0, 0x0, 0, NO_PAD_CTRL) |
674 | #define MX35_PAD_LD9__GPIO2_9 IOMUX_PAD(0x638, 0x1d4, 5, 0x8e4 0, NO_PAD_CTRL) | 674 | #define MX35_PAD_LD9__GPIO2_9 IOMUX_PAD(0x638, 0x1d4, 5, 0x8e4, 0, NO_PAD_CTRL) |
675 | #define MX35_PAD_LD9__SDMA_SDMA_DEBUG_PC_9 IOMUX_PAD(0x638, 0x1d4, 6, 0x0, 0, NO_PAD_CTRL) | 675 | #define MX35_PAD_LD9__SDMA_SDMA_DEBUG_PC_9 IOMUX_PAD(0x638, 0x1d4, 6, 0x0, 0, NO_PAD_CTRL) |
676 | 676 | ||
677 | #define MX35_PAD_LD10__IPU_DISPB_DAT_10 IOMUX_PAD(0x63c, 0x1d8, 0, 0x0, 0, NO_PAD_CTRL) | 677 | #define MX35_PAD_LD10__IPU_DISPB_DAT_10 IOMUX_PAD(0x63c, 0x1d8, 0, 0x0, 0, NO_PAD_CTRL) |
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h index ead9d592168d..0cb347645db4 100644 --- a/arch/arm/plat-mxc/include/mach/irqs.h +++ b/arch/arm/plat-mxc/include/mach/irqs.h | |||
@@ -37,7 +37,12 @@ | |||
37 | * within sensible limits. | 37 | * within sensible limits. |
38 | */ | 38 | */ |
39 | #define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS) | 39 | #define MXC_BOARD_IRQ_START (MXC_INTERNAL_IRQS + MXC_GPIO_IRQS) |
40 | |||
41 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 | ||
42 | #define MXC_BOARD_IRQS 80 | ||
43 | #else | ||
40 | #define MXC_BOARD_IRQS 16 | 44 | #define MXC_BOARD_IRQS 16 |
45 | #endif | ||
41 | 46 | ||
42 | #define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) | 47 | #define MXC_IPU_IRQ_START (MXC_BOARD_IRQ_START + MXC_BOARD_IRQS) |
43 | 48 | ||
diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c index d9f8c844c385..4becbdd1935c 100644 --- a/arch/arm/plat-omap/clock.c +++ b/arch/arm/plat-omap/clock.c | |||
@@ -391,7 +391,7 @@ static struct dentry *clk_debugfs_root; | |||
391 | static int clk_debugfs_register_one(struct clk *c) | 391 | static int clk_debugfs_register_one(struct clk *c) |
392 | { | 392 | { |
393 | int err; | 393 | int err; |
394 | struct dentry *d, *child; | 394 | struct dentry *d, *child, *child_tmp; |
395 | struct clk *pa = c->parent; | 395 | struct clk *pa = c->parent; |
396 | char s[255]; | 396 | char s[255]; |
397 | char *p = s; | 397 | char *p = s; |
@@ -423,7 +423,7 @@ static int clk_debugfs_register_one(struct clk *c) | |||
423 | 423 | ||
424 | err_out: | 424 | err_out: |
425 | d = c->dent; | 425 | d = c->dent; |
426 | list_for_each_entry(child, &d->d_subdirs, d_u.d_child) | 426 | list_for_each_entry_safe(child, child_tmp, &d->d_subdirs, d_u.d_child) |
427 | debugfs_remove(child); | 427 | debugfs_remove(child); |
428 | debugfs_remove(c->dent); | 428 | debugfs_remove(c->dent); |
429 | return err; | 429 | return err; |
diff --git a/arch/arm/plat-omap/common.c b/arch/arm/plat-omap/common.c index bf1eaf3a27d4..dddc0273bc8b 100644 --- a/arch/arm/plat-omap/common.c +++ b/arch/arm/plat-omap/common.c | |||
@@ -172,6 +172,32 @@ unsigned long long sched_clock(void) | |||
172 | clocksource_32k.mult, clocksource_32k.shift); | 172 | clocksource_32k.mult, clocksource_32k.shift); |
173 | } | 173 | } |
174 | 174 | ||
175 | /** | ||
176 | * read_persistent_clock - Return time from a persistent clock. | ||
177 | * | ||
178 | * Reads the time from a source which isn't disabled during PM, the | ||
179 | * 32k sync timer. Convert the cycles elapsed since last read into | ||
180 | * nsecs and adds to a monotonically increasing timespec. | ||
181 | */ | ||
182 | static struct timespec persistent_ts; | ||
183 | static cycles_t cycles, last_cycles; | ||
184 | void read_persistent_clock(struct timespec *ts) | ||
185 | { | ||
186 | unsigned long long nsecs; | ||
187 | cycles_t delta; | ||
188 | struct timespec *tsp = &persistent_ts; | ||
189 | |||
190 | last_cycles = cycles; | ||
191 | cycles = clocksource_32k.read(&clocksource_32k); | ||
192 | delta = cycles - last_cycles; | ||
193 | |||
194 | nsecs = clocksource_cyc2ns(delta, | ||
195 | clocksource_32k.mult, clocksource_32k.shift); | ||
196 | |||
197 | timespec_add_ns(tsp, nsecs); | ||
198 | *ts = *tsp; | ||
199 | } | ||
200 | |||
175 | static int __init omap_init_clocksource_32k(void) | 201 | static int __init omap_init_clocksource_32k(void) |
176 | { | 202 | { |
177 | static char err[] __initdata = KERN_ERR | 203 | static char err[] __initdata = KERN_ERR |
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 09d82b3c66ce..728c64204184 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -1183,7 +1183,7 @@ void omap_dma_unlink_lch(int lch_head, int lch_queue) | |||
1183 | } | 1183 | } |
1184 | 1184 | ||
1185 | if ((dma_chan[lch_head].flags & OMAP_DMA_ACTIVE) || | 1185 | if ((dma_chan[lch_head].flags & OMAP_DMA_ACTIVE) || |
1186 | (dma_chan[lch_head].flags & OMAP_DMA_ACTIVE)) { | 1186 | (dma_chan[lch_queue].flags & OMAP_DMA_ACTIVE)) { |
1187 | printk(KERN_ERR "omap_dma: You need to stop the DMA channels " | 1187 | printk(KERN_ERR "omap_dma: You need to stop the DMA channels " |
1188 | "before unlinking\n"); | 1188 | "before unlinking\n"); |
1189 | dump_stack(); | 1189 | dump_stack(); |
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c index 64f407ee0f4e..08ccf8922520 100644 --- a/arch/arm/plat-omap/dmtimer.c +++ b/arch/arm/plat-omap/dmtimer.c | |||
@@ -551,6 +551,19 @@ void omap_dm_timer_stop(struct omap_dm_timer *timer) | |||
551 | if (l & OMAP_TIMER_CTRL_ST) { | 551 | if (l & OMAP_TIMER_CTRL_ST) { |
552 | l &= ~0x1; | 552 | l &= ~0x1; |
553 | omap_dm_timer_write_reg(timer, OMAP_TIMER_CTRL_REG, l); | 553 | omap_dm_timer_write_reg(timer, OMAP_TIMER_CTRL_REG, l); |
554 | #if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3) || \ | ||
555 | defined(CONFIG_ARCH_OMAP4) | ||
556 | /* Readback to make sure write has completed */ | ||
557 | omap_dm_timer_read_reg(timer, OMAP_TIMER_CTRL_REG); | ||
558 | /* | ||
559 | * Wait for functional clock period x 3.5 to make sure that | ||
560 | * timer is stopped | ||
561 | */ | ||
562 | udelay(3500000 / clk_get_rate(timer->fclk) + 1); | ||
563 | /* Ack possibly pending interrupt */ | ||
564 | omap_dm_timer_write_reg(timer, OMAP_TIMER_STAT_REG, | ||
565 | OMAP_TIMER_INT_OVERFLOW); | ||
566 | #endif | ||
554 | } | 567 | } |
555 | } | 568 | } |
556 | EXPORT_SYMBOL_GPL(omap_dm_timer_stop); | 569 | EXPORT_SYMBOL_GPL(omap_dm_timer_stop); |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index d17620c50c28..d2422c766cca 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -750,6 +750,7 @@ static inline void set_24xx_gpio_triggering(struct gpio_bank *bank, int gpio, | |||
750 | } | 750 | } |
751 | #endif | 751 | #endif |
752 | 752 | ||
753 | #ifdef CONFIG_ARCH_OMAP1 | ||
753 | /* | 754 | /* |
754 | * This only applies to chips that can't do both rising and falling edge | 755 | * This only applies to chips that can't do both rising and falling edge |
755 | * detection at once. For all other chips, this function is a noop. | 756 | * detection at once. For all other chips, this function is a noop. |
@@ -760,11 +761,9 @@ static void _toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio) | |||
760 | u32 l = 0; | 761 | u32 l = 0; |
761 | 762 | ||
762 | switch (bank->method) { | 763 | switch (bank->method) { |
763 | #ifdef CONFIG_ARCH_OMAP1 | ||
764 | case METHOD_MPUIO: | 764 | case METHOD_MPUIO: |
765 | reg += OMAP_MPUIO_GPIO_INT_EDGE; | 765 | reg += OMAP_MPUIO_GPIO_INT_EDGE; |
766 | break; | 766 | break; |
767 | #endif | ||
768 | #ifdef CONFIG_ARCH_OMAP15XX | 767 | #ifdef CONFIG_ARCH_OMAP15XX |
769 | case METHOD_GPIO_1510: | 768 | case METHOD_GPIO_1510: |
770 | reg += OMAP1510_GPIO_INT_CONTROL; | 769 | reg += OMAP1510_GPIO_INT_CONTROL; |
@@ -787,6 +786,7 @@ static void _toggle_gpio_edge_triggering(struct gpio_bank *bank, int gpio) | |||
787 | 786 | ||
788 | __raw_writel(l, reg); | 787 | __raw_writel(l, reg); |
789 | } | 788 | } |
789 | #endif | ||
790 | 790 | ||
791 | static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) | 791 | static int _set_gpio_triggering(struct gpio_bank *bank, int gpio, int trigger) |
792 | { | 792 | { |
diff --git a/arch/arm/plat-omap/include/plat/cpu.h b/arch/arm/plat-omap/include/plat/cpu.h index 9a028bdebb06..a162f585b1e3 100644 --- a/arch/arm/plat-omap/include/plat/cpu.h +++ b/arch/arm/plat-omap/include/plat/cpu.h | |||
@@ -434,6 +434,7 @@ IS_OMAP_TYPE(3517, 0x3517) | |||
434 | #define OMAP3430_REV_ES2_1 0x34302034 | 434 | #define OMAP3430_REV_ES2_1 0x34302034 |
435 | #define OMAP3430_REV_ES3_0 0x34303034 | 435 | #define OMAP3430_REV_ES3_0 0x34303034 |
436 | #define OMAP3430_REV_ES3_1 0x34304034 | 436 | #define OMAP3430_REV_ES3_1 0x34304034 |
437 | #define OMAP3430_REV_ES3_1_2 0x34305034 | ||
437 | 438 | ||
438 | #define OMAP3630_REV_ES1_0 0x36300034 | 439 | #define OMAP3630_REV_ES1_0 0x36300034 |
439 | 440 | ||
diff --git a/arch/arm/plat-omap/include/plat/irqs.h b/arch/arm/plat-omap/include/plat/irqs.h index 97d6c50c3dcb..c0ab7c80f72e 100644 --- a/arch/arm/plat-omap/include/plat/irqs.h +++ b/arch/arm/plat-omap/include/plat/irqs.h | |||
@@ -499,6 +499,9 @@ extern void omap_init_irq(void); | |||
499 | extern int omap_irq_pending(void); | 499 | extern int omap_irq_pending(void); |
500 | void omap_intc_save_context(void); | 500 | void omap_intc_save_context(void); |
501 | void omap_intc_restore_context(void); | 501 | void omap_intc_restore_context(void); |
502 | void omap3_intc_suspend(void); | ||
503 | void omap3_intc_prepare_idle(void); | ||
504 | void omap3_intc_resume_idle(void); | ||
502 | #endif | 505 | #endif |
503 | 506 | ||
504 | #include <mach/hardware.h> | 507 | #include <mach/hardware.h> |
diff --git a/arch/arm/plat-omap/include/plat/omap_hwmod.h b/arch/arm/plat-omap/include/plat/omap_hwmod.h index 007935a921ea..33933256a226 100644 --- a/arch/arm/plat-omap/include/plat/omap_hwmod.h +++ b/arch/arm/plat-omap/include/plat/omap_hwmod.h | |||
@@ -227,6 +227,7 @@ struct omap_hwmod_ocp_if { | |||
227 | #define SYSC_HAS_SIDLEMODE (1 << 5) | 227 | #define SYSC_HAS_SIDLEMODE (1 << 5) |
228 | #define SYSC_HAS_MIDLEMODE (1 << 6) | 228 | #define SYSC_HAS_MIDLEMODE (1 << 6) |
229 | #define SYSS_MISSING (1 << 7) | 229 | #define SYSS_MISSING (1 << 7) |
230 | #define SYSC_NO_CACHE (1 << 8) /* XXX SW flag, belongs elsewhere */ | ||
230 | 231 | ||
231 | /* omap_hwmod_sysconfig.clockact flags */ | 232 | /* omap_hwmod_sysconfig.clockact flags */ |
232 | #define CLOCKACT_TEST_BOTH 0x0 | 233 | #define CLOCKACT_TEST_BOTH 0x0 |
diff --git a/arch/arm/plat-omap/omap_device.c b/arch/arm/plat-omap/omap_device.c index 1e5648d3e3d8..2ed72013c2e2 100644 --- a/arch/arm/plat-omap/omap_device.c +++ b/arch/arm/plat-omap/omap_device.c | |||
@@ -89,16 +89,6 @@ | |||
89 | #define USE_WAKEUP_LAT 0 | 89 | #define USE_WAKEUP_LAT 0 |
90 | #define IGNORE_WAKEUP_LAT 1 | 90 | #define IGNORE_WAKEUP_LAT 1 |
91 | 91 | ||
92 | /* XXX this should be moved into a separate file */ | ||
93 | #if defined(CONFIG_ARCH_OMAP2420) | ||
94 | # define OMAP_32KSYNCT_BASE 0x48004000 | ||
95 | #elif defined(CONFIG_ARCH_OMAP2430) | ||
96 | # define OMAP_32KSYNCT_BASE 0x49020000 | ||
97 | #elif defined(CONFIG_ARCH_OMAP3430) | ||
98 | # define OMAP_32KSYNCT_BASE 0x48320000 | ||
99 | #else | ||
100 | # error Unknown OMAP device | ||
101 | #endif | ||
102 | 92 | ||
103 | /* Private functions */ | 93 | /* Private functions */ |
104 | 94 | ||
diff --git a/arch/arm/plat-orion/pcie.c b/arch/arm/plat-orion/pcie.c index d41d41d78ad9..54c84a492a0f 100644 --- a/arch/arm/plat-orion/pcie.c +++ b/arch/arm/plat-orion/pcie.c | |||
@@ -133,6 +133,12 @@ static void __init orion_pcie_setup_wins(void __iomem *base, | |||
133 | } | 133 | } |
134 | 134 | ||
135 | /* | 135 | /* |
136 | * Round up 'size' to the nearest power of two. | ||
137 | */ | ||
138 | if ((size & (size - 1)) != 0) | ||
139 | size = 1 << fls(size); | ||
140 | |||
141 | /* | ||
136 | * Setup BAR[1] to all DRAM banks. | 142 | * Setup BAR[1] to all DRAM banks. |
137 | */ | 143 | */ |
138 | writel(dram->cs[0].base, base + PCIE_BAR_LO_OFF(1)); | 144 | writel(dram->cs[0].base, base + PCIE_BAR_LO_OFF(1)); |
diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types index c3a74ce24ef6..5a79fc6ee818 100644 --- a/arch/arm/tools/mach-types +++ b/arch/arm/tools/mach-types | |||
@@ -12,7 +12,7 @@ | |||
12 | # | 12 | # |
13 | # http://www.arm.linux.org.uk/developer/machines/?action=new | 13 | # http://www.arm.linux.org.uk/developer/machines/?action=new |
14 | # | 14 | # |
15 | # Last update: Wed Dec 16 20:06:34 2009 | 15 | # Last update: Thu Jan 28 22:15:54 2010 |
16 | # | 16 | # |
17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number | 17 | # machine_is_xxx CONFIG_xxxx MACH_TYPE_xxx number |
18 | # | 18 | # |
@@ -2536,6 +2536,7 @@ davinci_dm6467tevm MACH_DAVINCI_DM6467TEVM DAVINCI_DM6467TEVM 2548 | |||
2536 | c3ax03 MACH_C3AX03 C3AX03 2549 | 2536 | c3ax03 MACH_C3AX03 C3AX03 2549 |
2537 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 | 2537 | mxt_td60 MACH_MXT_TD60 MXT_TD60 2550 |
2538 | esyx MACH_ESYX ESYX 2551 | 2538 | esyx MACH_ESYX ESYX 2551 |
2539 | dove_db2 MACH_DOVE_DB2 DOVE_DB2 2552 | ||
2539 | bulldog MACH_BULLDOG BULLDOG 2553 | 2540 | bulldog MACH_BULLDOG BULLDOG 2553 |
2540 | derell_me2000 MACH_DERELL_ME2000 DERELL_ME2000 2554 | 2541 | derell_me2000 MACH_DERELL_ME2000 DERELL_ME2000 2554 |
2541 | bcmring_base MACH_BCMRING_BASE BCMRING_BASE 2555 | 2542 | bcmring_base MACH_BCMRING_BASE BCMRING_BASE 2555 |
@@ -2555,6 +2556,7 @@ iseo MACH_ISEO ISEO 2568 | |||
2555 | cezanne MACH_CEZANNE CEZANNE 2569 | 2556 | cezanne MACH_CEZANNE CEZANNE 2569 |
2556 | lucca MACH_LUCCA LUCCA 2570 | 2557 | lucca MACH_LUCCA LUCCA 2570 |
2557 | supersmart MACH_SUPERSMART SUPERSMART 2571 | 2558 | supersmart MACH_SUPERSMART SUPERSMART 2571 |
2559 | arm11_board MACH_CS_MISANO CS_MISANO 2572 | ||
2558 | magnolia2 MACH_MAGNOLIA2 MAGNOLIA2 2573 | 2560 | magnolia2 MACH_MAGNOLIA2 MAGNOLIA2 2573 |
2559 | emxx MACH_EMXX EMXX 2574 | 2561 | emxx MACH_EMXX EMXX 2574 |
2560 | outlaw MACH_OUTLAW OUTLAW 2575 | 2562 | outlaw MACH_OUTLAW OUTLAW 2575 |
@@ -2578,3 +2580,59 @@ glacier MACH_GLACIER GLACIER 2592 | |||
2578 | phrazer_bulldog MACH_PHRAZER_BULLDOG PHRAZER_BULLDOG 2593 | 2580 | phrazer_bulldog MACH_PHRAZER_BULLDOG PHRAZER_BULLDOG 2593 |
2579 | omap3_bulldog MACH_OMAP3_BULLDOG OMAP3_BULLDOG 2594 | 2581 | omap3_bulldog MACH_OMAP3_BULLDOG OMAP3_BULLDOG 2594 |
2580 | pca101 MACH_PCA101 PCA101 2595 | 2582 | pca101 MACH_PCA101 PCA101 2595 |
2583 | buzzc MACH_BUZZC BUZZC 2596 | ||
2584 | sasie2 MACH_SASIE2 SASIE2 2597 | ||
2585 | davinci_cio MACH_DAVINCI_CIO DAVINCI_CIO 2598 | ||
2586 | smartmeter_dl MACH_SMARTMETER_DL SMARTMETER_DL 2599 | ||
2587 | wzl6410 MACH_WZL6410 WZL6410 2600 | ||
2588 | wzl6410m MACH_WZL6410M WZL6410M 2601 | ||
2589 | wzl6410f MACH_WZL6410F WZL6410F 2602 | ||
2590 | wzl6410i MACH_WZL6410I WZL6410I 2603 | ||
2591 | spacecom1 MACH_SPACECOM1 SPACECOM1 2604 | ||
2592 | pingu920 MACH_PINGU920 PINGU920 2605 | ||
2593 | bravoc MACH_BRAVOC BRAVOC 2606 | ||
2594 | cybo2440 MACH_CYBO2440 CYBO2440 2607 | ||
2595 | vdssw MACH_VDSSW VDSSW 2608 | ||
2596 | romulus MACH_ROMULUS ROMULUS 2609 | ||
2597 | omap_magic MACH_OMAP_MAGIC OMAP_MAGIC 2610 | ||
2598 | eltd100 MACH_ELTD100 ELTD100 2611 | ||
2599 | capc7117 MACH_CAPC7117 CAPC7117 2612 | ||
2600 | swan MACH_SWAN SWAN 2613 | ||
2601 | veu MACH_VEU VEU 2614 | ||
2602 | rm2 MACH_RM2 RM2 2615 | ||
2603 | tt2100 MACH_TT2100 TT2100 2616 | ||
2604 | venice MACH_VENICE VENICE 2617 | ||
2605 | pc7323 MACH_PC7323 PC7323 2618 | ||
2606 | masp MACH_MASP MASP 2619 | ||
2607 | fujitsu_tvstbsoc0 MACH_FUJITSU_TVSTBSOC FUJITSU_TVSTBSOC 2620 | ||
2608 | fujitsu_tvstbsoc1 MACH_FUJITSU_TVSTBSOC1 FUJITSU_TVSTBSOC1 2621 | ||
2609 | lexikon MACH_LEXIKON LEXIKON 2622 | ||
2610 | mini2440v2 MACH_MINI2440V2 MINI2440V2 2623 | ||
2611 | icontrol MACH_ICONTROL ICONTROL 2624 | ||
2612 | sheevad MACH_SHEEVAD SHEEVAD 2625 | ||
2613 | qsd8x50a_st1_1 MACH_QSD8X50A_ST1_1 QSD8X50A_ST1_1 2626 | ||
2614 | qsd8x50a_st1_5 MACH_QSD8X50A_ST1_5 QSD8X50A_ST1_5 2627 | ||
2615 | bee MACH_BEE BEE 2628 | ||
2616 | mx23evk MACH_MX23EVK MX23EVK 2629 | ||
2617 | ap4evb MACH_AP4EVB AP4EVB 2630 | ||
2618 | stockholm MACH_STOCKHOLM STOCKHOLM 2631 | ||
2619 | lpc_h3131 MACH_LPC_H3131 LPC_H3131 2632 | ||
2620 | stingray MACH_STINGRAY STINGRAY 2633 | ||
2621 | kraken MACH_KRAKEN KRAKEN 2634 | ||
2622 | gw2388 MACH_GW2388 GW2388 2635 | ||
2623 | jadecpu MACH_JADECPU JADECPU 2636 | ||
2624 | carlisle MACH_CARLISLE CARLISLE 2637 | ||
2625 | lux_sf9 MACH_LUX_SFT9 LUX_SFT9 2638 | ||
2626 | nemid_tb MACH_NEMID_TB NEMID_TB 2639 | ||
2627 | terrier MACH_TERRIER TERRIER 2640 | ||
2628 | turbot MACH_TURBOT TURBOT 2641 | ||
2629 | sanddab MACH_SANDDAB SANDDAB 2642 | ||
2630 | mx35_cicada MACH_MX35_CICADA MX35_CICADA 2643 | ||
2631 | ghi2703d MACH_GHI2703D GHI2703D 2644 | ||
2632 | lux_sfx9 MACH_LUX_SFX9 LUX_SFX9 2645 | ||
2633 | lux_sf9g MACH_LUX_SF9G LUX_SF9G 2646 | ||
2634 | lux_edk9 MACH_LUX_EDK9 LUX_EDK9 2647 | ||
2635 | hw90240 MACH_HW90240 HW90240 2648 | ||
2636 | dm365_leopard MACH_DM365_LEOPARD DM365_LEOPARD 2649 | ||
2637 | mityomapl138 MACH_MITYOMAPL138 MITYOMAPL138 2650 | ||
2638 | scat110 MACH_SCAT110 SCAT110 2651 | ||
diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c index f60a5400a25b..a63c4be99b36 100644 --- a/arch/arm/vfp/vfpmodule.c +++ b/arch/arm/vfp/vfpmodule.c | |||
@@ -197,10 +197,13 @@ static void vfp_raise_exceptions(u32 exceptions, u32 inst, u32 fpscr, struct pt_ | |||
197 | } | 197 | } |
198 | 198 | ||
199 | /* | 199 | /* |
200 | * Update the FPSCR with the additional exception flags. | 200 | * If any of the status flags are set, update the FPSCR. |
201 | * Comparison instructions always return at least one of | 201 | * Comparison instructions always return at least one of |
202 | * these flags set. | 202 | * these flags set. |
203 | */ | 203 | */ |
204 | if (exceptions & (FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V)) | ||
205 | fpscr &= ~(FPSCR_N|FPSCR_Z|FPSCR_C|FPSCR_V); | ||
206 | |||
204 | fpscr |= exceptions; | 207 | fpscr |= exceptions; |
205 | 208 | ||
206 | fmxr(FPSCR, fpscr); | 209 | fmxr(FPSCR, fpscr); |
diff --git a/arch/avr32/mach-at32ap/at32ap700x.c b/arch/avr32/mach-at32ap/at32ap700x.c index 1aa1ea5e9212..b13d1879e51b 100644 --- a/arch/avr32/mach-at32ap/at32ap700x.c +++ b/arch/avr32/mach-at32ap/at32ap700x.c | |||
@@ -1325,7 +1325,7 @@ struct platform_device *__init | |||
1325 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | 1325 | at32_add_device_mci(unsigned int id, struct mci_platform_data *data) |
1326 | { | 1326 | { |
1327 | struct platform_device *pdev; | 1327 | struct platform_device *pdev; |
1328 | struct mci_dma_slave *slave; | 1328 | struct mci_dma_data *slave; |
1329 | u32 pioa_mask; | 1329 | u32 pioa_mask; |
1330 | u32 piob_mask; | 1330 | u32 piob_mask; |
1331 | 1331 | ||
@@ -1344,7 +1344,9 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1344 | ARRAY_SIZE(atmel_mci0_resource))) | 1344 | ARRAY_SIZE(atmel_mci0_resource))) |
1345 | goto fail; | 1345 | goto fail; |
1346 | 1346 | ||
1347 | slave = kzalloc(sizeof(struct mci_dma_slave), GFP_KERNEL); | 1347 | slave = kzalloc(sizeof(struct mci_dma_data), GFP_KERNEL); |
1348 | if (!slave) | ||
1349 | goto fail; | ||
1348 | 1350 | ||
1349 | slave->sdata.dma_dev = &dw_dmac0_device.dev; | 1351 | slave->sdata.dma_dev = &dw_dmac0_device.dev; |
1350 | slave->sdata.reg_width = DW_DMA_SLAVE_WIDTH_32BIT; | 1352 | slave->sdata.reg_width = DW_DMA_SLAVE_WIDTH_32BIT; |
@@ -1357,7 +1359,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1357 | 1359 | ||
1358 | if (platform_device_add_data(pdev, data, | 1360 | if (platform_device_add_data(pdev, data, |
1359 | sizeof(struct mci_platform_data))) | 1361 | sizeof(struct mci_platform_data))) |
1360 | goto fail; | 1362 | goto fail_free; |
1361 | 1363 | ||
1362 | /* CLK line is common to both slots */ | 1364 | /* CLK line is common to both slots */ |
1363 | pioa_mask = 1 << 10; | 1365 | pioa_mask = 1 << 10; |
@@ -1381,7 +1383,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1381 | /* Slot is unused */ | 1383 | /* Slot is unused */ |
1382 | break; | 1384 | break; |
1383 | default: | 1385 | default: |
1384 | goto fail; | 1386 | goto fail_free; |
1385 | } | 1387 | } |
1386 | 1388 | ||
1387 | select_peripheral(PIOA, pioa_mask, PERIPH_A, 0); | 1389 | select_peripheral(PIOA, pioa_mask, PERIPH_A, 0); |
@@ -1408,7 +1410,7 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1408 | break; | 1410 | break; |
1409 | default: | 1411 | default: |
1410 | if (!data->slot[0].bus_width) | 1412 | if (!data->slot[0].bus_width) |
1411 | goto fail; | 1413 | goto fail_free; |
1412 | 1414 | ||
1413 | data->slot[1].bus_width = 0; | 1415 | data->slot[1].bus_width = 0; |
1414 | break; | 1416 | break; |
@@ -1419,9 +1421,10 @@ at32_add_device_mci(unsigned int id, struct mci_platform_data *data) | |||
1419 | platform_device_add(pdev); | 1421 | platform_device_add(pdev); |
1420 | return pdev; | 1422 | return pdev; |
1421 | 1423 | ||
1424 | fail_free: | ||
1425 | kfree(slave); | ||
1422 | fail: | 1426 | fail: |
1423 | data->dma_slave = NULL; | 1427 | data->dma_slave = NULL; |
1424 | kfree(slave); | ||
1425 | platform_device_put(pdev); | 1428 | platform_device_put(pdev); |
1426 | return NULL; | 1429 | return NULL; |
1427 | } | 1430 | } |
diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h index e14108b19c09..4c41656ede87 100644 --- a/arch/ia64/include/asm/elf.h +++ b/arch/ia64/include/asm/elf.h | |||
@@ -201,7 +201,9 @@ extern void ia64_elf_core_copy_regs (struct pt_regs *src, elf_gregset_t dst); | |||
201 | relevant until we have real hardware to play with... */ | 201 | relevant until we have real hardware to play with... */ |
202 | #define ELF_PLATFORM NULL | 202 | #define ELF_PLATFORM NULL |
203 | 203 | ||
204 | #define SET_PERSONALITY(ex) set_personality(PER_LINUX) | 204 | #define SET_PERSONALITY(ex) \ |
205 | set_personality((current->personality & ~PER_MASK) | PER_LINUX) | ||
206 | |||
205 | #define elf_read_implies_exec(ex, executable_stack) \ | 207 | #define elf_read_implies_exec(ex, executable_stack) \ |
206 | ((executable_stack!=EXSTACK_DISABLE_X) && ((ex).e_flags & EF_IA_64_LINUX_EXECUTABLE_STACK) != 0) | 208 | ((executable_stack!=EXSTACK_DISABLE_X) && ((ex).e_flags & EF_IA_64_LINUX_EXECUTABLE_STACK) != 0) |
207 | 209 | ||
diff --git a/arch/microblaze/configs/mmu_defconfig b/arch/microblaze/configs/mmu_defconfig index bb7c374713ad..6fced1fe3bf0 100644 --- a/arch/microblaze/configs/mmu_defconfig +++ b/arch/microblaze/configs/mmu_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.31 | 3 | # Linux kernel version: 2.6.33-rc6 |
4 | # Thu Sep 24 10:28:50 2009 | 4 | # Wed Feb 3 10:02:59 2010 |
5 | # | 5 | # |
6 | CONFIG_MICROBLAZE=y | 6 | CONFIG_MICROBLAZE=y |
7 | # CONFIG_SWAP is not set | 7 | # CONFIG_SWAP is not set |
@@ -19,8 +19,12 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
19 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 19 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
20 | CONFIG_GENERIC_GPIO=y | 20 | CONFIG_GENERIC_GPIO=y |
21 | CONFIG_GENERIC_CSUM=y | 21 | CONFIG_GENERIC_CSUM=y |
22 | CONFIG_STACKTRACE_SUPPORT=y | ||
23 | CONFIG_LOCKDEP_SUPPORT=y | ||
24 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_PCI is not set | 25 | # CONFIG_PCI is not set |
23 | CONFIG_NO_DMA=y | 26 | CONFIG_NO_DMA=y |
27 | CONFIG_DTC=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | CONFIG_CONSTRUCTORS=y | 29 | CONFIG_CONSTRUCTORS=y |
26 | 30 | ||
@@ -44,6 +48,7 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
44 | # | 48 | # |
45 | CONFIG_TREE_RCU=y | 49 | CONFIG_TREE_RCU=y |
46 | # CONFIG_TREE_PREEMPT_RCU is not set | 50 | # CONFIG_TREE_PREEMPT_RCU is not set |
51 | # CONFIG_TINY_RCU is not set | ||
47 | # CONFIG_RCU_TRACE is not set | 52 | # CONFIG_RCU_TRACE is not set |
48 | CONFIG_RCU_FANOUT=32 | 53 | CONFIG_RCU_FANOUT=32 |
49 | # CONFIG_RCU_FANOUT_EXACT is not set | 54 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -64,10 +69,12 @@ CONFIG_INITRAMFS_ROOT_GID=0 | |||
64 | CONFIG_RD_GZIP=y | 69 | CONFIG_RD_GZIP=y |
65 | # CONFIG_RD_BZIP2 is not set | 70 | # CONFIG_RD_BZIP2 is not set |
66 | # CONFIG_RD_LZMA is not set | 71 | # CONFIG_RD_LZMA is not set |
72 | # CONFIG_RD_LZO is not set | ||
67 | # CONFIG_INITRAMFS_COMPRESSION_NONE is not set | 73 | # CONFIG_INITRAMFS_COMPRESSION_NONE is not set |
68 | CONFIG_INITRAMFS_COMPRESSION_GZIP=y | 74 | CONFIG_INITRAMFS_COMPRESSION_GZIP=y |
69 | # CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set | 75 | # CONFIG_INITRAMFS_COMPRESSION_BZIP2 is not set |
70 | # CONFIG_INITRAMFS_COMPRESSION_LZMA is not set | 76 | # CONFIG_INITRAMFS_COMPRESSION_LZMA is not set |
77 | # CONFIG_INITRAMFS_COMPRESSION_LZO is not set | ||
71 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 78 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
72 | CONFIG_SYSCTL=y | 79 | CONFIG_SYSCTL=y |
73 | CONFIG_ANON_INODES=y | 80 | CONFIG_ANON_INODES=y |
@@ -90,21 +97,20 @@ CONFIG_EVENTFD=y | |||
90 | CONFIG_AIO=y | 97 | CONFIG_AIO=y |
91 | 98 | ||
92 | # | 99 | # |
93 | # Performance Counters | 100 | # Kernel Performance Events And Counters |
94 | # | 101 | # |
95 | CONFIG_VM_EVENT_COUNTERS=y | 102 | CONFIG_VM_EVENT_COUNTERS=y |
96 | # CONFIG_STRIP_ASM_SYMS is not set | ||
97 | CONFIG_COMPAT_BRK=y | 103 | CONFIG_COMPAT_BRK=y |
98 | CONFIG_SLAB=y | 104 | CONFIG_SLAB=y |
99 | # CONFIG_SLUB is not set | 105 | # CONFIG_SLUB is not set |
100 | # CONFIG_SLOB is not set | 106 | # CONFIG_SLOB is not set |
101 | # CONFIG_PROFILING is not set | 107 | # CONFIG_PROFILING is not set |
102 | # CONFIG_MARKERS is not set | 108 | CONFIG_HAVE_OPROFILE=y |
103 | 109 | ||
104 | # | 110 | # |
105 | # GCOV-based kernel profiling | 111 | # GCOV-based kernel profiling |
106 | # | 112 | # |
107 | # CONFIG_SLOW_WORK is not set | 113 | CONFIG_SLOW_WORK=y |
108 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 114 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
109 | CONFIG_SLABINFO=y | 115 | CONFIG_SLABINFO=y |
110 | CONFIG_BASE_SMALL=1 | 116 | CONFIG_BASE_SMALL=1 |
@@ -123,14 +129,41 @@ CONFIG_LBDAF=y | |||
123 | # IO Schedulers | 129 | # IO Schedulers |
124 | # | 130 | # |
125 | CONFIG_IOSCHED_NOOP=y | 131 | CONFIG_IOSCHED_NOOP=y |
126 | CONFIG_IOSCHED_AS=y | ||
127 | CONFIG_IOSCHED_DEADLINE=y | 132 | CONFIG_IOSCHED_DEADLINE=y |
128 | CONFIG_IOSCHED_CFQ=y | 133 | CONFIG_IOSCHED_CFQ=y |
129 | # CONFIG_DEFAULT_AS is not set | ||
130 | # CONFIG_DEFAULT_DEADLINE is not set | 134 | # CONFIG_DEFAULT_DEADLINE is not set |
131 | CONFIG_DEFAULT_CFQ=y | 135 | CONFIG_DEFAULT_CFQ=y |
132 | # CONFIG_DEFAULT_NOOP is not set | 136 | # CONFIG_DEFAULT_NOOP is not set |
133 | CONFIG_DEFAULT_IOSCHED="cfq" | 137 | CONFIG_DEFAULT_IOSCHED="cfq" |
138 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
139 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
140 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
141 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
142 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
143 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
144 | # CONFIG_INLINE_SPIN_UNLOCK is not set | ||
145 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
146 | # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set | ||
147 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
148 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
149 | # CONFIG_INLINE_READ_LOCK is not set | ||
150 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
151 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
152 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
153 | # CONFIG_INLINE_READ_UNLOCK is not set | ||
154 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
155 | # CONFIG_INLINE_READ_UNLOCK_IRQ is not set | ||
156 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
157 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
158 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
159 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
160 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
161 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
162 | # CONFIG_INLINE_WRITE_UNLOCK is not set | ||
163 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
164 | # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set | ||
165 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
166 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
134 | # CONFIG_FREEZER is not set | 167 | # CONFIG_FREEZER is not set |
135 | 168 | ||
136 | # | 169 | # |
@@ -139,11 +172,6 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
139 | CONFIG_PLATFORM_GENERIC=y | 172 | CONFIG_PLATFORM_GENERIC=y |
140 | CONFIG_OPT_LIB_FUNCTION=y | 173 | CONFIG_OPT_LIB_FUNCTION=y |
141 | CONFIG_OPT_LIB_ASM=y | 174 | CONFIG_OPT_LIB_ASM=y |
142 | CONFIG_ALLOW_EDIT_AUTO=y | ||
143 | |||
144 | # | ||
145 | # Automatic platform settings from Kconfig.auto | ||
146 | # | ||
147 | 175 | ||
148 | # | 176 | # |
149 | # Definitions for MICROBLAZE0 | 177 | # Definitions for MICROBLAZE0 |
@@ -203,12 +231,11 @@ CONFIG_FLATMEM_MANUAL=y | |||
203 | CONFIG_FLATMEM=y | 231 | CONFIG_FLATMEM=y |
204 | CONFIG_FLAT_NODE_MEM_MAP=y | 232 | CONFIG_FLAT_NODE_MEM_MAP=y |
205 | CONFIG_PAGEFLAGS_EXTENDED=y | 233 | CONFIG_PAGEFLAGS_EXTENDED=y |
206 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 234 | CONFIG_SPLIT_PTLOCK_CPUS=999999 |
207 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 235 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
208 | CONFIG_ZONE_DMA_FLAG=0 | 236 | CONFIG_ZONE_DMA_FLAG=0 |
209 | CONFIG_VIRT_TO_BUS=y | 237 | CONFIG_VIRT_TO_BUS=y |
210 | CONFIG_HAVE_MLOCK=y | 238 | # CONFIG_KSM is not set |
211 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
212 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 239 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
213 | 240 | ||
214 | # | 241 | # |
@@ -289,7 +316,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
289 | # CONFIG_IRDA is not set | 316 | # CONFIG_IRDA is not set |
290 | # CONFIG_BT is not set | 317 | # CONFIG_BT is not set |
291 | # CONFIG_AF_RXRPC is not set | 318 | # CONFIG_AF_RXRPC is not set |
292 | # CONFIG_WIRELESS is not set | 319 | CONFIG_WIRELESS=y |
320 | # CONFIG_CFG80211 is not set | ||
321 | # CONFIG_LIB80211 is not set | ||
322 | |||
323 | # | ||
324 | # CFG80211 needs to be enabled for MAC80211 | ||
325 | # | ||
293 | # CONFIG_WIMAX is not set | 326 | # CONFIG_WIMAX is not set |
294 | # CONFIG_RFKILL is not set | 327 | # CONFIG_RFKILL is not set |
295 | # CONFIG_NET_9P is not set | 328 | # CONFIG_NET_9P is not set |
@@ -313,6 +346,10 @@ CONFIG_OF_DEVICE=y | |||
313 | CONFIG_BLK_DEV=y | 346 | CONFIG_BLK_DEV=y |
314 | # CONFIG_BLK_DEV_COW_COMMON is not set | 347 | # CONFIG_BLK_DEV_COW_COMMON is not set |
315 | # CONFIG_BLK_DEV_LOOP is not set | 348 | # CONFIG_BLK_DEV_LOOP is not set |
349 | |||
350 | # | ||
351 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
352 | # | ||
316 | # CONFIG_BLK_DEV_NBD is not set | 353 | # CONFIG_BLK_DEV_NBD is not set |
317 | CONFIG_BLK_DEV_RAM=y | 354 | CONFIG_BLK_DEV_RAM=y |
318 | CONFIG_BLK_DEV_RAM_COUNT=16 | 355 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -349,7 +386,6 @@ CONFIG_NETDEVICES=y | |||
349 | # CONFIG_PHYLIB is not set | 386 | # CONFIG_PHYLIB is not set |
350 | CONFIG_NET_ETHERNET=y | 387 | CONFIG_NET_ETHERNET=y |
351 | # CONFIG_MII is not set | 388 | # CONFIG_MII is not set |
352 | # CONFIG_ETHOC is not set | ||
353 | # CONFIG_DNET is not set | 389 | # CONFIG_DNET is not set |
354 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 390 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
355 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 391 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
@@ -359,12 +395,12 @@ CONFIG_NET_ETHERNET=y | |||
359 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | 395 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
360 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 396 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
361 | # CONFIG_KS8842 is not set | 397 | # CONFIG_KS8842 is not set |
398 | # CONFIG_KS8851_MLL is not set | ||
362 | CONFIG_XILINX_EMACLITE=y | 399 | CONFIG_XILINX_EMACLITE=y |
363 | CONFIG_NETDEV_1000=y | 400 | CONFIG_NETDEV_1000=y |
364 | CONFIG_NETDEV_10000=y | 401 | CONFIG_NETDEV_10000=y |
365 | CONFIG_WLAN=y | 402 | CONFIG_WLAN=y |
366 | # CONFIG_WLAN_PRE80211 is not set | 403 | # CONFIG_HOSTAP is not set |
367 | # CONFIG_WLAN_80211 is not set | ||
368 | 404 | ||
369 | # | 405 | # |
370 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 406 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -408,6 +444,7 @@ CONFIG_SERIAL_UARTLITE=y | |||
408 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | 444 | CONFIG_SERIAL_UARTLITE_CONSOLE=y |
409 | CONFIG_SERIAL_CORE=y | 445 | CONFIG_SERIAL_CORE=y |
410 | CONFIG_SERIAL_CORE_CONSOLE=y | 446 | CONFIG_SERIAL_CORE_CONSOLE=y |
447 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
411 | CONFIG_UNIX98_PTYS=y | 448 | CONFIG_UNIX98_PTYS=y |
412 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 449 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
413 | CONFIG_LEGACY_PTYS=y | 450 | CONFIG_LEGACY_PTYS=y |
@@ -433,7 +470,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
433 | # CONFIG_POWER_SUPPLY is not set | 470 | # CONFIG_POWER_SUPPLY is not set |
434 | # CONFIG_HWMON is not set | 471 | # CONFIG_HWMON is not set |
435 | # CONFIG_THERMAL is not set | 472 | # CONFIG_THERMAL is not set |
436 | # CONFIG_THERMAL_HWMON is not set | ||
437 | # CONFIG_WATCHDOG is not set | 473 | # CONFIG_WATCHDOG is not set |
438 | 474 | ||
439 | # | 475 | # |
@@ -526,8 +562,6 @@ CONFIG_PROC_FS=y | |||
526 | CONFIG_PROC_SYSCTL=y | 562 | CONFIG_PROC_SYSCTL=y |
527 | CONFIG_PROC_PAGE_MONITOR=y | 563 | CONFIG_PROC_PAGE_MONITOR=y |
528 | CONFIG_SYSFS=y | 564 | CONFIG_SYSFS=y |
529 | CONFIG_TMPFS=y | ||
530 | # CONFIG_TMPFS_POSIX_ACL is not set | ||
531 | # CONFIG_HUGETLB_PAGE is not set | 565 | # CONFIG_HUGETLB_PAGE is not set |
532 | # CONFIG_CONFIGFS_FS is not set | 566 | # CONFIG_CONFIGFS_FS is not set |
533 | CONFIG_MISC_FILESYSTEMS=y | 567 | CONFIG_MISC_FILESYSTEMS=y |
@@ -638,11 +672,13 @@ CONFIG_NLS_DEFAULT="iso8859-1" | |||
638 | # | 672 | # |
639 | # Kernel hacking | 673 | # Kernel hacking |
640 | # | 674 | # |
675 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
641 | # CONFIG_PRINTK_TIME is not set | 676 | # CONFIG_PRINTK_TIME is not set |
642 | CONFIG_ENABLE_WARN_DEPRECATED=y | 677 | CONFIG_ENABLE_WARN_DEPRECATED=y |
643 | CONFIG_ENABLE_MUST_CHECK=y | 678 | CONFIG_ENABLE_MUST_CHECK=y |
644 | CONFIG_FRAME_WARN=1024 | 679 | CONFIG_FRAME_WARN=1024 |
645 | # CONFIG_MAGIC_SYSRQ is not set | 680 | # CONFIG_MAGIC_SYSRQ is not set |
681 | # CONFIG_STRIP_ASM_SYMS is not set | ||
646 | # CONFIG_UNUSED_SYMBOLS is not set | 682 | # CONFIG_UNUSED_SYMBOLS is not set |
647 | # CONFIG_DEBUG_FS is not set | 683 | # CONFIG_DEBUG_FS is not set |
648 | # CONFIG_HEADERS_CHECK is not set | 684 | # CONFIG_HEADERS_CHECK is not set |
@@ -662,6 +698,9 @@ CONFIG_DEBUG_SLAB=y | |||
662 | # CONFIG_DEBUG_SLAB_LEAK is not set | 698 | # CONFIG_DEBUG_SLAB_LEAK is not set |
663 | CONFIG_DEBUG_SPINLOCK=y | 699 | CONFIG_DEBUG_SPINLOCK=y |
664 | # CONFIG_DEBUG_MUTEXES is not set | 700 | # CONFIG_DEBUG_MUTEXES is not set |
701 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
702 | # CONFIG_PROVE_LOCKING is not set | ||
703 | # CONFIG_LOCK_STAT is not set | ||
665 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 704 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
666 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 705 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
667 | # CONFIG_DEBUG_KOBJECT is not set | 706 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -680,10 +719,29 @@ CONFIG_DEBUG_INFO=y | |||
680 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 719 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
681 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 720 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
682 | # CONFIG_FAULT_INJECTION is not set | 721 | # CONFIG_FAULT_INJECTION is not set |
722 | # CONFIG_LATENCYTOP is not set | ||
683 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | 723 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set |
684 | # CONFIG_PAGE_POISONING is not set | 724 | # CONFIG_PAGE_POISONING is not set |
725 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
726 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
727 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | ||
728 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
729 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | ||
730 | CONFIG_TRACING_SUPPORT=y | ||
731 | CONFIG_FTRACE=y | ||
732 | # CONFIG_FUNCTION_TRACER is not set | ||
733 | # CONFIG_IRQSOFF_TRACER is not set | ||
734 | # CONFIG_SCHED_TRACER is not set | ||
735 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set | ||
736 | # CONFIG_BOOT_TRACER is not set | ||
737 | CONFIG_BRANCH_PROFILE_NONE=y | ||
738 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
739 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
740 | # CONFIG_STACK_TRACER is not set | ||
741 | # CONFIG_KMEMTRACE is not set | ||
742 | # CONFIG_WORKQUEUE_TRACER is not set | ||
743 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
685 | # CONFIG_SAMPLES is not set | 744 | # CONFIG_SAMPLES is not set |
686 | # CONFIG_KMEMCHECK is not set | ||
687 | CONFIG_EARLY_PRINTK=y | 745 | CONFIG_EARLY_PRINTK=y |
688 | # CONFIG_HEART_BEAT is not set | 746 | # CONFIG_HEART_BEAT is not set |
689 | CONFIG_DEBUG_BOOTMEM=y | 747 | CONFIG_DEBUG_BOOTMEM=y |
@@ -694,7 +752,11 @@ CONFIG_DEBUG_BOOTMEM=y | |||
694 | # CONFIG_KEYS is not set | 752 | # CONFIG_KEYS is not set |
695 | # CONFIG_SECURITY is not set | 753 | # CONFIG_SECURITY is not set |
696 | # CONFIG_SECURITYFS is not set | 754 | # CONFIG_SECURITYFS is not set |
697 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 755 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
756 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
757 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
758 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
759 | CONFIG_DEFAULT_SECURITY="" | ||
698 | CONFIG_CRYPTO=y | 760 | CONFIG_CRYPTO=y |
699 | 761 | ||
700 | # | 762 | # |
diff --git a/arch/microblaze/configs/nommu_defconfig b/arch/microblaze/configs/nommu_defconfig index adb839bab704..ce2da535246a 100644 --- a/arch/microblaze/configs/nommu_defconfig +++ b/arch/microblaze/configs/nommu_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.31 | 3 | # Linux kernel version: 2.6.33-rc6 |
4 | # Thu Sep 24 10:29:43 2009 | 4 | # Wed Feb 3 10:03:21 2010 |
5 | # | 5 | # |
6 | CONFIG_MICROBLAZE=y | 6 | CONFIG_MICROBLAZE=y |
7 | # CONFIG_SWAP is not set | 7 | # CONFIG_SWAP is not set |
@@ -19,8 +19,12 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
19 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 19 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
20 | CONFIG_GENERIC_GPIO=y | 20 | CONFIG_GENERIC_GPIO=y |
21 | CONFIG_GENERIC_CSUM=y | 21 | CONFIG_GENERIC_CSUM=y |
22 | CONFIG_STACKTRACE_SUPPORT=y | ||
23 | CONFIG_LOCKDEP_SUPPORT=y | ||
24 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | ||
22 | # CONFIG_PCI is not set | 25 | # CONFIG_PCI is not set |
23 | CONFIG_NO_DMA=y | 26 | CONFIG_NO_DMA=y |
27 | CONFIG_DTC=y | ||
24 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 28 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
25 | CONFIG_CONSTRUCTORS=y | 29 | CONFIG_CONSTRUCTORS=y |
26 | 30 | ||
@@ -46,6 +50,7 @@ CONFIG_BSD_PROCESS_ACCT_V3=y | |||
46 | # | 50 | # |
47 | CONFIG_TREE_RCU=y | 51 | CONFIG_TREE_RCU=y |
48 | # CONFIG_TREE_PREEMPT_RCU is not set | 52 | # CONFIG_TREE_PREEMPT_RCU is not set |
53 | # CONFIG_TINY_RCU is not set | ||
49 | # CONFIG_RCU_TRACE is not set | 54 | # CONFIG_RCU_TRACE is not set |
50 | CONFIG_RCU_FANOUT=32 | 55 | CONFIG_RCU_FANOUT=32 |
51 | # CONFIG_RCU_FANOUT_EXACT is not set | 56 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -81,16 +86,16 @@ CONFIG_EVENTFD=y | |||
81 | CONFIG_AIO=y | 86 | CONFIG_AIO=y |
82 | 87 | ||
83 | # | 88 | # |
84 | # Performance Counters | 89 | # Kernel Performance Events And Counters |
85 | # | 90 | # |
86 | CONFIG_VM_EVENT_COUNTERS=y | 91 | CONFIG_VM_EVENT_COUNTERS=y |
87 | # CONFIG_STRIP_ASM_SYMS is not set | ||
88 | CONFIG_COMPAT_BRK=y | 92 | CONFIG_COMPAT_BRK=y |
89 | CONFIG_SLAB=y | 93 | CONFIG_SLAB=y |
90 | # CONFIG_SLUB is not set | 94 | # CONFIG_SLUB is not set |
91 | # CONFIG_SLOB is not set | 95 | # CONFIG_SLOB is not set |
96 | # CONFIG_MMAP_ALLOW_UNINITIALIZED is not set | ||
92 | # CONFIG_PROFILING is not set | 97 | # CONFIG_PROFILING is not set |
93 | # CONFIG_MARKERS is not set | 98 | CONFIG_HAVE_OPROFILE=y |
94 | 99 | ||
95 | # | 100 | # |
96 | # GCOV-based kernel profiling | 101 | # GCOV-based kernel profiling |
@@ -116,14 +121,41 @@ CONFIG_LBDAF=y | |||
116 | # IO Schedulers | 121 | # IO Schedulers |
117 | # | 122 | # |
118 | CONFIG_IOSCHED_NOOP=y | 123 | CONFIG_IOSCHED_NOOP=y |
119 | CONFIG_IOSCHED_AS=y | ||
120 | CONFIG_IOSCHED_DEADLINE=y | 124 | CONFIG_IOSCHED_DEADLINE=y |
121 | CONFIG_IOSCHED_CFQ=y | 125 | CONFIG_IOSCHED_CFQ=y |
122 | # CONFIG_DEFAULT_AS is not set | ||
123 | # CONFIG_DEFAULT_DEADLINE is not set | 126 | # CONFIG_DEFAULT_DEADLINE is not set |
124 | CONFIG_DEFAULT_CFQ=y | 127 | CONFIG_DEFAULT_CFQ=y |
125 | # CONFIG_DEFAULT_NOOP is not set | 128 | # CONFIG_DEFAULT_NOOP is not set |
126 | CONFIG_DEFAULT_IOSCHED="cfq" | 129 | CONFIG_DEFAULT_IOSCHED="cfq" |
130 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
131 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
132 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
133 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
134 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
135 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
136 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
137 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
138 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
139 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
140 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
141 | # CONFIG_INLINE_READ_LOCK is not set | ||
142 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
143 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
144 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
145 | CONFIG_INLINE_READ_UNLOCK=y | ||
146 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
147 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
148 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
149 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
150 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
151 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
152 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
153 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
154 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
155 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
156 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
157 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
158 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
127 | # CONFIG_FREEZER is not set | 159 | # CONFIG_FREEZER is not set |
128 | 160 | ||
129 | # | 161 | # |
@@ -132,7 +164,10 @@ CONFIG_DEFAULT_IOSCHED="cfq" | |||
132 | CONFIG_PLATFORM_GENERIC=y | 164 | CONFIG_PLATFORM_GENERIC=y |
133 | # CONFIG_SELFMOD is not set | 165 | # CONFIG_SELFMOD is not set |
134 | # CONFIG_OPT_LIB_FUNCTION is not set | 166 | # CONFIG_OPT_LIB_FUNCTION is not set |
135 | # CONFIG_ALLOW_EDIT_AUTO is not set | 167 | |
168 | # | ||
169 | # Definitions for MICROBLAZE0 | ||
170 | # | ||
136 | CONFIG_KERNEL_BASE_ADDR=0x90000000 | 171 | CONFIG_KERNEL_BASE_ADDR=0x90000000 |
137 | CONFIG_XILINX_MICROBLAZE0_FAMILY="virtex5" | 172 | CONFIG_XILINX_MICROBLAZE0_FAMILY="virtex5" |
138 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 | 173 | CONFIG_XILINX_MICROBLAZE0_USE_MSR_INSTR=1 |
@@ -190,7 +225,6 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
190 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 225 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
191 | CONFIG_ZONE_DMA_FLAG=0 | 226 | CONFIG_ZONE_DMA_FLAG=0 |
192 | CONFIG_VIRT_TO_BUS=y | 227 | CONFIG_VIRT_TO_BUS=y |
193 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
194 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 | 228 | CONFIG_NOMMU_INITIAL_TRIM_EXCESS=1 |
195 | 229 | ||
196 | # | 230 | # |
@@ -274,9 +308,6 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
274 | # CONFIG_AF_RXRPC is not set | 308 | # CONFIG_AF_RXRPC is not set |
275 | CONFIG_WIRELESS=y | 309 | CONFIG_WIRELESS=y |
276 | # CONFIG_CFG80211 is not set | 310 | # CONFIG_CFG80211 is not set |
277 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
278 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
279 | # CONFIG_WIRELESS_EXT is not set | ||
280 | # CONFIG_LIB80211 is not set | 311 | # CONFIG_LIB80211 is not set |
281 | 312 | ||
282 | # | 313 | # |
@@ -301,9 +332,9 @@ CONFIG_STANDALONE=y | |||
301 | # CONFIG_CONNECTOR is not set | 332 | # CONFIG_CONNECTOR is not set |
302 | CONFIG_MTD=y | 333 | CONFIG_MTD=y |
303 | # CONFIG_MTD_DEBUG is not set | 334 | # CONFIG_MTD_DEBUG is not set |
335 | # CONFIG_MTD_TESTS is not set | ||
304 | CONFIG_MTD_CONCAT=y | 336 | CONFIG_MTD_CONCAT=y |
305 | CONFIG_MTD_PARTITIONS=y | 337 | CONFIG_MTD_PARTITIONS=y |
306 | # CONFIG_MTD_TESTS is not set | ||
307 | # CONFIG_MTD_REDBOOT_PARTS is not set | 338 | # CONFIG_MTD_REDBOOT_PARTS is not set |
308 | CONFIG_MTD_CMDLINE_PARTS=y | 339 | CONFIG_MTD_CMDLINE_PARTS=y |
309 | # CONFIG_MTD_OF_PARTS is not set | 340 | # CONFIG_MTD_OF_PARTS is not set |
@@ -387,6 +418,10 @@ CONFIG_OF_DEVICE=y | |||
387 | CONFIG_BLK_DEV=y | 418 | CONFIG_BLK_DEV=y |
388 | # CONFIG_BLK_DEV_COW_COMMON is not set | 419 | # CONFIG_BLK_DEV_COW_COMMON is not set |
389 | # CONFIG_BLK_DEV_LOOP is not set | 420 | # CONFIG_BLK_DEV_LOOP is not set |
421 | |||
422 | # | ||
423 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
424 | # | ||
390 | CONFIG_BLK_DEV_NBD=y | 425 | CONFIG_BLK_DEV_NBD=y |
391 | CONFIG_BLK_DEV_RAM=y | 426 | CONFIG_BLK_DEV_RAM=y |
392 | CONFIG_BLK_DEV_RAM_COUNT=16 | 427 | CONFIG_BLK_DEV_RAM_COUNT=16 |
@@ -423,7 +458,6 @@ CONFIG_NETDEVICES=y | |||
423 | # CONFIG_PHYLIB is not set | 458 | # CONFIG_PHYLIB is not set |
424 | CONFIG_NET_ETHERNET=y | 459 | CONFIG_NET_ETHERNET=y |
425 | # CONFIG_MII is not set | 460 | # CONFIG_MII is not set |
426 | # CONFIG_ETHOC is not set | ||
427 | # CONFIG_DNET is not set | 461 | # CONFIG_DNET is not set |
428 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | 462 | # CONFIG_IBM_NEW_EMAC_ZMII is not set |
429 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | 463 | # CONFIG_IBM_NEW_EMAC_RGMII is not set |
@@ -433,12 +467,12 @@ CONFIG_NET_ETHERNET=y | |||
433 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | 467 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
434 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 468 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
435 | # CONFIG_KS8842 is not set | 469 | # CONFIG_KS8842 is not set |
470 | # CONFIG_KS8851_MLL is not set | ||
436 | # CONFIG_XILINX_EMACLITE is not set | 471 | # CONFIG_XILINX_EMACLITE is not set |
437 | CONFIG_NETDEV_1000=y | 472 | CONFIG_NETDEV_1000=y |
438 | CONFIG_NETDEV_10000=y | 473 | CONFIG_NETDEV_10000=y |
439 | CONFIG_WLAN=y | 474 | CONFIG_WLAN=y |
440 | # CONFIG_WLAN_PRE80211 is not set | 475 | # CONFIG_HOSTAP is not set |
441 | # CONFIG_WLAN_80211 is not set | ||
442 | 476 | ||
443 | # | 477 | # |
444 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 478 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -482,6 +516,7 @@ CONFIG_SERIAL_UARTLITE=y | |||
482 | CONFIG_SERIAL_UARTLITE_CONSOLE=y | 516 | CONFIG_SERIAL_UARTLITE_CONSOLE=y |
483 | CONFIG_SERIAL_CORE=y | 517 | CONFIG_SERIAL_CORE=y |
484 | CONFIG_SERIAL_CORE_CONSOLE=y | 518 | CONFIG_SERIAL_CORE_CONSOLE=y |
519 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
485 | CONFIG_UNIX98_PTYS=y | 520 | CONFIG_UNIX98_PTYS=y |
486 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 521 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
487 | CONFIG_LEGACY_PTYS=y | 522 | CONFIG_LEGACY_PTYS=y |
@@ -508,7 +543,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
508 | # CONFIG_POWER_SUPPLY is not set | 543 | # CONFIG_POWER_SUPPLY is not set |
509 | # CONFIG_HWMON is not set | 544 | # CONFIG_HWMON is not set |
510 | # CONFIG_THERMAL is not set | 545 | # CONFIG_THERMAL is not set |
511 | # CONFIG_THERMAL_HWMON is not set | ||
512 | # CONFIG_WATCHDOG is not set | 546 | # CONFIG_WATCHDOG is not set |
513 | 547 | ||
514 | # | 548 | # |
@@ -616,7 +650,6 @@ CONFIG_INOTIFY_USER=y | |||
616 | CONFIG_PROC_FS=y | 650 | CONFIG_PROC_FS=y |
617 | CONFIG_PROC_SYSCTL=y | 651 | CONFIG_PROC_SYSCTL=y |
618 | CONFIG_SYSFS=y | 652 | CONFIG_SYSFS=y |
619 | # CONFIG_TMPFS is not set | ||
620 | # CONFIG_HUGETLB_PAGE is not set | 653 | # CONFIG_HUGETLB_PAGE is not set |
621 | # CONFIG_CONFIGFS_FS is not set | 654 | # CONFIG_CONFIGFS_FS is not set |
622 | CONFIG_MISC_FILESYSTEMS=y | 655 | CONFIG_MISC_FILESYSTEMS=y |
@@ -672,11 +705,13 @@ CONFIG_MSDOS_PARTITION=y | |||
672 | # | 705 | # |
673 | # Kernel hacking | 706 | # Kernel hacking |
674 | # | 707 | # |
708 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
675 | # CONFIG_PRINTK_TIME is not set | 709 | # CONFIG_PRINTK_TIME is not set |
676 | CONFIG_ENABLE_WARN_DEPRECATED=y | 710 | CONFIG_ENABLE_WARN_DEPRECATED=y |
677 | CONFIG_ENABLE_MUST_CHECK=y | 711 | CONFIG_ENABLE_MUST_CHECK=y |
678 | CONFIG_FRAME_WARN=1024 | 712 | CONFIG_FRAME_WARN=1024 |
679 | # CONFIG_MAGIC_SYSRQ is not set | 713 | # CONFIG_MAGIC_SYSRQ is not set |
714 | # CONFIG_STRIP_ASM_SYMS is not set | ||
680 | CONFIG_UNUSED_SYMBOLS=y | 715 | CONFIG_UNUSED_SYMBOLS=y |
681 | CONFIG_DEBUG_FS=y | 716 | CONFIG_DEBUG_FS=y |
682 | # CONFIG_HEADERS_CHECK is not set | 717 | # CONFIG_HEADERS_CHECK is not set |
@@ -695,12 +730,16 @@ CONFIG_DEBUG_OBJECTS=y | |||
695 | CONFIG_DEBUG_OBJECTS_SELFTEST=y | 730 | CONFIG_DEBUG_OBJECTS_SELFTEST=y |
696 | CONFIG_DEBUG_OBJECTS_FREE=y | 731 | CONFIG_DEBUG_OBJECTS_FREE=y |
697 | CONFIG_DEBUG_OBJECTS_TIMERS=y | 732 | CONFIG_DEBUG_OBJECTS_TIMERS=y |
733 | # CONFIG_DEBUG_OBJECTS_WORK is not set | ||
698 | CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 | 734 | CONFIG_DEBUG_OBJECTS_ENABLE_DEFAULT=1 |
699 | # CONFIG_DEBUG_SLAB is not set | 735 | # CONFIG_DEBUG_SLAB is not set |
700 | # CONFIG_DEBUG_RT_MUTEXES is not set | 736 | # CONFIG_DEBUG_RT_MUTEXES is not set |
701 | # CONFIG_RT_MUTEX_TESTER is not set | 737 | # CONFIG_RT_MUTEX_TESTER is not set |
702 | # CONFIG_DEBUG_SPINLOCK is not set | 738 | # CONFIG_DEBUG_SPINLOCK is not set |
703 | # CONFIG_DEBUG_MUTEXES is not set | 739 | # CONFIG_DEBUG_MUTEXES is not set |
740 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
741 | # CONFIG_PROVE_LOCKING is not set | ||
742 | # CONFIG_LOCK_STAT is not set | ||
704 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 743 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
705 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 744 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
706 | # CONFIG_DEBUG_KOBJECT is not set | 745 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -720,8 +759,28 @@ CONFIG_DEBUG_SG=y | |||
720 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 759 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
721 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | 760 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
722 | # CONFIG_FAULT_INJECTION is not set | 761 | # CONFIG_FAULT_INJECTION is not set |
762 | # CONFIG_LATENCYTOP is not set | ||
723 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 763 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
724 | # CONFIG_PAGE_POISONING is not set | 764 | # CONFIG_PAGE_POISONING is not set |
765 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
766 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
767 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | ||
768 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
769 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | ||
770 | CONFIG_TRACING_SUPPORT=y | ||
771 | CONFIG_FTRACE=y | ||
772 | # CONFIG_FUNCTION_TRACER is not set | ||
773 | # CONFIG_IRQSOFF_TRACER is not set | ||
774 | # CONFIG_SCHED_TRACER is not set | ||
775 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set | ||
776 | # CONFIG_BOOT_TRACER is not set | ||
777 | CONFIG_BRANCH_PROFILE_NONE=y | ||
778 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
779 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
780 | # CONFIG_STACK_TRACER is not set | ||
781 | # CONFIG_KMEMTRACE is not set | ||
782 | # CONFIG_WORKQUEUE_TRACER is not set | ||
783 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
725 | # CONFIG_DYNAMIC_DEBUG is not set | 784 | # CONFIG_DYNAMIC_DEBUG is not set |
726 | # CONFIG_SAMPLES is not set | 785 | # CONFIG_SAMPLES is not set |
727 | CONFIG_EARLY_PRINTK=y | 786 | CONFIG_EARLY_PRINTK=y |
@@ -734,7 +793,11 @@ CONFIG_EARLY_PRINTK=y | |||
734 | # CONFIG_KEYS is not set | 793 | # CONFIG_KEYS is not set |
735 | # CONFIG_SECURITY is not set | 794 | # CONFIG_SECURITY is not set |
736 | # CONFIG_SECURITYFS is not set | 795 | # CONFIG_SECURITYFS is not set |
737 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 796 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
797 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
798 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
799 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
800 | CONFIG_DEFAULT_SECURITY="" | ||
738 | CONFIG_CRYPTO=y | 801 | CONFIG_CRYPTO=y |
739 | 802 | ||
740 | # | 803 | # |
diff --git a/arch/microblaze/kernel/entry-nommu.S b/arch/microblaze/kernel/entry-nommu.S index 95b0855802df..391d6197fc3b 100644 --- a/arch/microblaze/kernel/entry-nommu.S +++ b/arch/microblaze/kernel/entry-nommu.S | |||
@@ -122,7 +122,7 @@ ENTRY(_interrupt) | |||
122 | 122 | ||
123 | ret_from_intr: | 123 | ret_from_intr: |
124 | lwi r11, r1, PT_MODE | 124 | lwi r11, r1, PT_MODE |
125 | bneid r11, 3f | 125 | bneid r11, no_intr_resched |
126 | 126 | ||
127 | lwi r6, r31, TS_THREAD_INFO /* get thread info */ | 127 | lwi r6, r31, TS_THREAD_INFO /* get thread info */ |
128 | lwi r19, r6, TI_FLAGS /* get flags in thread info */ | 128 | lwi r19, r6, TI_FLAGS /* get flags in thread info */ |
@@ -133,16 +133,18 @@ ret_from_intr: | |||
133 | bralid r15, schedule | 133 | bralid r15, schedule |
134 | nop | 134 | nop |
135 | 1: andi r11, r19, _TIF_SIGPENDING | 135 | 1: andi r11, r19, _TIF_SIGPENDING |
136 | beqid r11, no_intr_reshed | 136 | beqid r11, no_intr_resched |
137 | addk r5, r1, r0 | 137 | addk r5, r1, r0 |
138 | addk r7, r0, r0 | 138 | addk r7, r0, r0 |
139 | bralid r15, do_signal | 139 | bralid r15, do_signal |
140 | addk r6, r0, r0 | 140 | addk r6, r0, r0 |
141 | 141 | ||
142 | no_intr_reshed: | 142 | no_intr_resched: |
143 | /* Disable interrupts, we are now committed to the state restore */ | ||
144 | disable_irq | ||
145 | |||
143 | /* save mode indicator */ | 146 | /* save mode indicator */ |
144 | lwi r11, r1, PT_MODE | 147 | lwi r11, r1, PT_MODE |
145 | 3: | ||
146 | swi r11, r0, PER_CPU(KM) | 148 | swi r11, r0, PER_CPU(KM) |
147 | 149 | ||
148 | /* save r31 */ | 150 | /* save r31 */ |
diff --git a/arch/microblaze/kernel/setup.c b/arch/microblaze/kernel/setup.c index 5372b24ad049..bb8c4b9ccb80 100644 --- a/arch/microblaze/kernel/setup.c +++ b/arch/microblaze/kernel/setup.c | |||
@@ -54,6 +54,7 @@ void __init setup_arch(char **cmdline_p) | |||
54 | 54 | ||
55 | microblaze_cache_init(); | 55 | microblaze_cache_init(); |
56 | 56 | ||
57 | invalidate_dcache(); | ||
57 | enable_dcache(); | 58 | enable_dcache(); |
58 | 59 | ||
59 | invalidate_icache(); | 60 | invalidate_icache(); |
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig index 9541171f1220..8b5d174685f0 100644 --- a/arch/mips/Kconfig +++ b/arch/mips/Kconfig | |||
@@ -1311,6 +1311,7 @@ config SYS_SUPPORTS_ZBOOT | |||
1311 | select HAVE_KERNEL_GZIP | 1311 | select HAVE_KERNEL_GZIP |
1312 | select HAVE_KERNEL_BZIP2 | 1312 | select HAVE_KERNEL_BZIP2 |
1313 | select HAVE_KERNEL_LZMA | 1313 | select HAVE_KERNEL_LZMA |
1314 | select HAVE_KERNEL_LZO | ||
1314 | 1315 | ||
1315 | config SYS_SUPPORTS_ZBOOT_UART16550 | 1316 | config SYS_SUPPORTS_ZBOOT_UART16550 |
1316 | bool | 1317 | bool |
diff --git a/arch/mips/alchemy/common/dbdma.c b/arch/mips/alchemy/common/dbdma.c index 5c68569344c1..f9201ca2295b 100644 --- a/arch/mips/alchemy/common/dbdma.c +++ b/arch/mips/alchemy/common/dbdma.c | |||
@@ -412,8 +412,11 @@ u32 au1xxx_dbdma_ring_alloc(u32 chanid, int entries) | |||
412 | if (desc_base == 0) | 412 | if (desc_base == 0) |
413 | return 0; | 413 | return 0; |
414 | 414 | ||
415 | ctp->cdb_membase = desc_base; | ||
415 | desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t)); | 416 | desc_base = ALIGN_ADDR(desc_base, sizeof(au1x_ddma_desc_t)); |
416 | } | 417 | } else |
418 | ctp->cdb_membase = desc_base; | ||
419 | |||
417 | dp = (au1x_ddma_desc_t *)desc_base; | 420 | dp = (au1x_ddma_desc_t *)desc_base; |
418 | 421 | ||
419 | /* Keep track of the base descriptor. */ | 422 | /* Keep track of the base descriptor. */ |
@@ -831,7 +834,7 @@ void au1xxx_dbdma_chan_free(u32 chanid) | |||
831 | 834 | ||
832 | au1xxx_dbdma_stop(chanid); | 835 | au1xxx_dbdma_stop(chanid); |
833 | 836 | ||
834 | kfree((void *)ctp->chan_desc_base); | 837 | kfree((void *)ctp->cdb_membase); |
835 | 838 | ||
836 | stp->dev_flags &= ~DEV_FLAGS_INUSE; | 839 | stp->dev_flags &= ~DEV_FLAGS_INUSE; |
837 | dtp->dev_flags &= ~DEV_FLAGS_INUSE; | 840 | dtp->dev_flags &= ~DEV_FLAGS_INUSE; |
diff --git a/arch/mips/ar7/platform.c b/arch/mips/ar7/platform.c index 85169c08d8dc..f70a10a8cc96 100644 --- a/arch/mips/ar7/platform.c +++ b/arch/mips/ar7/platform.c | |||
@@ -202,7 +202,7 @@ static struct resource usb_res[] = { | |||
202 | .name = "mem", | 202 | .name = "mem", |
203 | .flags = IORESOURCE_MEM, | 203 | .flags = IORESOURCE_MEM, |
204 | .start = 0x03400000, | 204 | .start = 0x03400000, |
205 | .end = 0x034001fff, | 205 | .end = 0x03401fff, |
206 | }, | 206 | }, |
207 | }; | 207 | }; |
208 | 208 | ||
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile index 671d3448fad4..9df903d714d7 100644 --- a/arch/mips/boot/compressed/Makefile +++ b/arch/mips/boot/compressed/Makefile | |||
@@ -14,8 +14,11 @@ | |||
14 | 14 | ||
15 | # compressed kernel load addr: VMLINUZ_LOAD_ADDRESS > VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE | 15 | # compressed kernel load addr: VMLINUZ_LOAD_ADDRESS > VMLINUX_LOAD_ADDRESS + VMLINUX_SIZE |
16 | VMLINUX_SIZE := $(shell wc -c $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | cut -d' ' -f1) | 16 | VMLINUX_SIZE := $(shell wc -c $(objtree)/$(KBUILD_IMAGE) 2>/dev/null | cut -d' ' -f1) |
17 | VMLINUX_SIZE := $(shell [ -n "$(VMLINUX_SIZE)" ] && echo $$(($(VMLINUX_SIZE) + (65536 - $(VMLINUX_SIZE) % 65536)))) | 17 | VMLINUX_SIZE := $(shell [ -n "$(VMLINUX_SIZE)" ] && echo -n $$(($(VMLINUX_SIZE) + (65536 - $(VMLINUX_SIZE) % 65536)))) |
18 | VMLINUZ_LOAD_ADDRESS := 0x$(shell [ -n "$(VMLINUX_SIZE)" ] && printf %x $$(($(VMLINUX_LOAD_ADDRESS) + $(VMLINUX_SIZE)))) | 18 | # VMLINUZ_LOAD_ADDRESS = concat "high32 of VMLINUX_LOAD_ADDRESS" and "(low32 of VMLINUX_LOAD_ADDRESS) + VMLINUX_SIZE" |
19 | HIGH32 := $(shell A=$(VMLINUX_LOAD_ADDRESS); [ $${\#A} -gt 10 ] && expr substr "$(VMLINUX_LOAD_ADDRESS)" 3 $$(($${\#A} - 10))) | ||
20 | LOW32 := $(shell [ -n "$(HIGH32)" ] && A=11 || A=3; expr substr "$(VMLINUX_LOAD_ADDRESS)" $${A} 8) | ||
21 | VMLINUZ_LOAD_ADDRESS := 0x$(shell [ -n "$(VMLINUX_SIZE)" -a -n "$(LOW32)" ] && printf "$(HIGH32)%08x" $$(($(VMLINUX_SIZE) + 0x$(LOW32)))) | ||
19 | 22 | ||
20 | # set the default size of the mallocing area for decompressing | 23 | # set the default size of the mallocing area for decompressing |
21 | BOOT_HEAP_SIZE := 0x400000 | 24 | BOOT_HEAP_SIZE := 0x400000 |
@@ -41,9 +44,11 @@ $(obj)/vmlinux.bin: $(KBUILD_IMAGE) | |||
41 | suffix_$(CONFIG_KERNEL_GZIP) = gz | 44 | suffix_$(CONFIG_KERNEL_GZIP) = gz |
42 | suffix_$(CONFIG_KERNEL_BZIP2) = bz2 | 45 | suffix_$(CONFIG_KERNEL_BZIP2) = bz2 |
43 | suffix_$(CONFIG_KERNEL_LZMA) = lzma | 46 | suffix_$(CONFIG_KERNEL_LZMA) = lzma |
47 | suffix_$(CONFIG_KERNEL_LZO) = lzo | ||
44 | tool_$(CONFIG_KERNEL_GZIP) = gzip | 48 | tool_$(CONFIG_KERNEL_GZIP) = gzip |
45 | tool_$(CONFIG_KERNEL_BZIP2) = bzip2 | 49 | tool_$(CONFIG_KERNEL_BZIP2) = bzip2 |
46 | tool_$(CONFIG_KERNEL_LZMA) = lzma | 50 | tool_$(CONFIG_KERNEL_LZMA) = lzma |
51 | tool_$(CONFIG_KERNEL_LZO) = lzo | ||
47 | $(obj)/vmlinux.$(suffix_y): $(obj)/vmlinux.bin | 52 | $(obj)/vmlinux.$(suffix_y): $(obj)/vmlinux.bin |
48 | $(call if_changed,$(tool_y)) | 53 | $(call if_changed,$(tool_y)) |
49 | 54 | ||
diff --git a/arch/mips/boot/compressed/decompress.c b/arch/mips/boot/compressed/decompress.c index e48fd72898a8..55d02b3a6712 100644 --- a/arch/mips/boot/compressed/decompress.c +++ b/arch/mips/boot/compressed/decompress.c | |||
@@ -77,6 +77,10 @@ void *memset(void *s, int c, size_t n) | |||
77 | #include "../../../../lib/decompress_unlzma.c" | 77 | #include "../../../../lib/decompress_unlzma.c" |
78 | #endif | 78 | #endif |
79 | 79 | ||
80 | #ifdef CONFIG_KERNEL_LZO | ||
81 | #include "../../../../lib/decompress_unlzo.c" | ||
82 | #endif | ||
83 | |||
80 | void decompress_kernel(unsigned long boot_heap_start) | 84 | void decompress_kernel(unsigned long boot_heap_start) |
81 | { | 85 | { |
82 | int zimage_size; | 86 | int zimage_size; |
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig index ed84b4cb3c8d..84b6503f10b9 100644 --- a/arch/mips/configs/ip27_defconfig +++ b/arch/mips/configs/ip27_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.23-rc2 | 3 | # Linux kernel version: 2.6.33-rc6 |
4 | # Tue Aug 7 13:04:24 2007 | 4 | # Wed Feb 3 18:12:31 2010 |
5 | # | 5 | # |
6 | CONFIG_MIPS=y | 6 | CONFIG_MIPS=y |
7 | 7 | ||
@@ -9,20 +9,28 @@ CONFIG_MIPS=y | |||
9 | # Machine selection | 9 | # Machine selection |
10 | # | 10 | # |
11 | # CONFIG_MACH_ALCHEMY is not set | 11 | # CONFIG_MACH_ALCHEMY is not set |
12 | # CONFIG_AR7 is not set | ||
13 | # CONFIG_BCM47XX is not set | ||
14 | # CONFIG_BCM63XX is not set | ||
12 | # CONFIG_MIPS_COBALT is not set | 15 | # CONFIG_MIPS_COBALT is not set |
13 | # CONFIG_MACH_DECSTATION is not set | 16 | # CONFIG_MACH_DECSTATION is not set |
14 | # CONFIG_MACH_JAZZ is not set | 17 | # CONFIG_MACH_JAZZ is not set |
15 | # CONFIG_LEMOTE_FULONG is not set | 18 | # CONFIG_LASAT is not set |
19 | # CONFIG_MACH_LOONGSON is not set | ||
16 | # CONFIG_MIPS_MALTA is not set | 20 | # CONFIG_MIPS_MALTA is not set |
17 | # CONFIG_MIPS_SIM is not set | 21 | # CONFIG_MIPS_SIM is not set |
18 | # CONFIG_MARKEINS is not set | 22 | # CONFIG_NEC_MARKEINS is not set |
19 | # CONFIG_MACH_VR41XX is not set | 23 | # CONFIG_MACH_VR41XX is not set |
24 | # CONFIG_NXP_STB220 is not set | ||
25 | # CONFIG_NXP_STB225 is not set | ||
20 | # CONFIG_PNX8550_JBS is not set | 26 | # CONFIG_PNX8550_JBS is not set |
21 | # CONFIG_PNX8550_STB810 is not set | 27 | # CONFIG_PNX8550_STB810 is not set |
22 | # CONFIG_PMC_MSP is not set | 28 | # CONFIG_PMC_MSP is not set |
23 | # CONFIG_PMC_YOSEMITE is not set | 29 | # CONFIG_PMC_YOSEMITE is not set |
30 | # CONFIG_POWERTV is not set | ||
24 | # CONFIG_SGI_IP22 is not set | 31 | # CONFIG_SGI_IP22 is not set |
25 | CONFIG_SGI_IP27=y | 32 | CONFIG_SGI_IP27=y |
33 | # CONFIG_SGI_IP28 is not set | ||
26 | # CONFIG_SGI_IP32 is not set | 34 | # CONFIG_SGI_IP32 is not set |
27 | # CONFIG_SIBYTE_CRHINE is not set | 35 | # CONFIG_SIBYTE_CRHINE is not set |
28 | # CONFIG_SIBYTE_CARMEL is not set | 36 | # CONFIG_SIBYTE_CARMEL is not set |
@@ -33,32 +41,39 @@ CONFIG_SGI_IP27=y | |||
33 | # CONFIG_SIBYTE_SENTOSA is not set | 41 | # CONFIG_SIBYTE_SENTOSA is not set |
34 | # CONFIG_SIBYTE_BIGSUR is not set | 42 | # CONFIG_SIBYTE_BIGSUR is not set |
35 | # CONFIG_SNI_RM is not set | 43 | # CONFIG_SNI_RM is not set |
36 | # CONFIG_TOSHIBA_JMR3927 is not set | 44 | # CONFIG_MACH_TX39XX is not set |
37 | # CONFIG_TOSHIBA_RBTX4927 is not set | 45 | # CONFIG_MACH_TX49XX is not set |
38 | # CONFIG_TOSHIBA_RBTX4938 is not set | 46 | # CONFIG_MIKROTIK_RB532 is not set |
39 | # CONFIG_WR_PPMC is not set | 47 | # CONFIG_WR_PPMC is not set |
48 | # CONFIG_CAVIUM_OCTEON_SIMULATOR is not set | ||
49 | # CONFIG_CAVIUM_OCTEON_REFERENCE_BOARD is not set | ||
50 | # CONFIG_ALCHEMY_GPIO_INDIRECT is not set | ||
40 | CONFIG_SGI_SN_M_MODE=y | 51 | CONFIG_SGI_SN_M_MODE=y |
41 | # CONFIG_SGI_SN_N_MODE is not set | 52 | # CONFIG_SGI_SN_N_MODE is not set |
42 | # CONFIG_MAPPED_KERNEL is not set | 53 | # CONFIG_MAPPED_KERNEL is not set |
43 | # CONFIG_REPLICATE_KTEXT is not set | 54 | # CONFIG_REPLICATE_KTEXT is not set |
44 | # CONFIG_REPLICATE_EXHANDLERS is not set | 55 | # CONFIG_REPLICATE_EXHANDLERS is not set |
56 | CONFIG_LOONGSON_UART_BASE=y | ||
45 | CONFIG_RWSEM_GENERIC_SPINLOCK=y | 57 | CONFIG_RWSEM_GENERIC_SPINLOCK=y |
46 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set | 58 | # CONFIG_ARCH_HAS_ILOG2_U32 is not set |
47 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set | 59 | # CONFIG_ARCH_HAS_ILOG2_U64 is not set |
60 | CONFIG_ARCH_SUPPORTS_OPROFILE=y | ||
48 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 61 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
49 | CONFIG_GENERIC_HWEIGHT=y | 62 | CONFIG_GENERIC_HWEIGHT=y |
50 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 63 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
64 | CONFIG_GENERIC_CLOCKEVENTS=y | ||
51 | CONFIG_GENERIC_TIME=y | 65 | CONFIG_GENERIC_TIME=y |
52 | CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y | 66 | CONFIG_GENERIC_CMOS_UPDATE=y |
67 | CONFIG_SCHED_OMIT_FRAME_POINTER=y | ||
53 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 68 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
54 | CONFIG_ARC=y | 69 | CONFIG_ARC=y |
55 | CONFIG_DMA_COHERENT=y | 70 | CONFIG_DMA_COHERENT=y |
56 | CONFIG_EARLY_PRINTK=y | ||
57 | CONFIG_SYS_HAS_EARLY_PRINTK=y | 71 | CONFIG_SYS_HAS_EARLY_PRINTK=y |
58 | # CONFIG_NO_IOPORT is not set | 72 | # CONFIG_NO_IOPORT is not set |
59 | CONFIG_CPU_BIG_ENDIAN=y | 73 | CONFIG_CPU_BIG_ENDIAN=y |
60 | # CONFIG_CPU_LITTLE_ENDIAN is not set | 74 | # CONFIG_CPU_LITTLE_ENDIAN is not set |
61 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y | 75 | CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y |
76 | CONFIG_DEFAULT_SGI_PARTITION=y | ||
62 | CONFIG_MIPS_L1_CACHE_SHIFT=7 | 77 | CONFIG_MIPS_L1_CACHE_SHIFT=7 |
63 | CONFIG_ARC64=y | 78 | CONFIG_ARC64=y |
64 | CONFIG_BOOT_ELF64=y | 79 | CONFIG_BOOT_ELF64=y |
@@ -66,7 +81,8 @@ CONFIG_BOOT_ELF64=y | |||
66 | # | 81 | # |
67 | # CPU selection | 82 | # CPU selection |
68 | # | 83 | # |
69 | # CONFIG_CPU_LOONGSON2 is not set | 84 | # CONFIG_CPU_LOONGSON2E is not set |
85 | # CONFIG_CPU_LOONGSON2F is not set | ||
70 | # CONFIG_CPU_MIPS32_R1 is not set | 86 | # CONFIG_CPU_MIPS32_R1 is not set |
71 | # CONFIG_CPU_MIPS32_R2 is not set | 87 | # CONFIG_CPU_MIPS32_R2 is not set |
72 | # CONFIG_CPU_MIPS64_R1 is not set | 88 | # CONFIG_CPU_MIPS64_R1 is not set |
@@ -79,6 +95,7 @@ CONFIG_BOOT_ELF64=y | |||
79 | # CONFIG_CPU_TX49XX is not set | 95 | # CONFIG_CPU_TX49XX is not set |
80 | # CONFIG_CPU_R5000 is not set | 96 | # CONFIG_CPU_R5000 is not set |
81 | # CONFIG_CPU_R5432 is not set | 97 | # CONFIG_CPU_R5432 is not set |
98 | # CONFIG_CPU_R5500 is not set | ||
82 | # CONFIG_CPU_R6000 is not set | 99 | # CONFIG_CPU_R6000 is not set |
83 | # CONFIG_CPU_NEVADA is not set | 100 | # CONFIG_CPU_NEVADA is not set |
84 | # CONFIG_CPU_R8000 is not set | 101 | # CONFIG_CPU_R8000 is not set |
@@ -86,6 +103,7 @@ CONFIG_CPU_R10000=y | |||
86 | # CONFIG_CPU_RM7000 is not set | 103 | # CONFIG_CPU_RM7000 is not set |
87 | # CONFIG_CPU_RM9000 is not set | 104 | # CONFIG_CPU_RM9000 is not set |
88 | # CONFIG_CPU_SB1 is not set | 105 | # CONFIG_CPU_SB1 is not set |
106 | # CONFIG_CPU_CAVIUM_OCTEON is not set | ||
89 | CONFIG_SYS_HAS_CPU_R10000=y | 107 | CONFIG_SYS_HAS_CPU_R10000=y |
90 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y | 108 | CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y |
91 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y | 109 | CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y |
@@ -99,6 +117,7 @@ CONFIG_64BIT=y | |||
99 | CONFIG_PAGE_SIZE_4KB=y | 117 | CONFIG_PAGE_SIZE_4KB=y |
100 | # CONFIG_PAGE_SIZE_8KB is not set | 118 | # CONFIG_PAGE_SIZE_8KB is not set |
101 | # CONFIG_PAGE_SIZE_16KB is not set | 119 | # CONFIG_PAGE_SIZE_16KB is not set |
120 | # CONFIG_PAGE_SIZE_32KB is not set | ||
102 | # CONFIG_PAGE_SIZE_64KB is not set | 121 | # CONFIG_PAGE_SIZE_64KB is not set |
103 | CONFIG_CPU_HAS_PREFETCH=y | 122 | CONFIG_CPU_HAS_PREFETCH=y |
104 | CONFIG_MIPS_MT_DISABLED=y | 123 | CONFIG_MIPS_MT_DISABLED=y |
@@ -110,6 +129,7 @@ CONFIG_GENERIC_IRQ_PROBE=y | |||
110 | CONFIG_IRQ_PER_CPU=y | 129 | CONFIG_IRQ_PER_CPU=y |
111 | CONFIG_CPU_SUPPORTS_HIGHMEM=y | 130 | CONFIG_CPU_SUPPORTS_HIGHMEM=y |
112 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y | 131 | CONFIG_ARCH_DISCONTIGMEM_ENABLE=y |
132 | CONFIG_ARCH_POPULATES_NODE_MAP=y | ||
113 | CONFIG_NUMA=y | 133 | CONFIG_NUMA=y |
114 | CONFIG_SYS_SUPPORTS_NUMA=y | 134 | CONFIG_SYS_SUPPORTS_NUMA=y |
115 | CONFIG_NODES_SHIFT=6 | 135 | CONFIG_NODES_SHIFT=6 |
@@ -120,16 +140,22 @@ CONFIG_DISCONTIGMEM_MANUAL=y | |||
120 | CONFIG_DISCONTIGMEM=y | 140 | CONFIG_DISCONTIGMEM=y |
121 | CONFIG_FLAT_NODE_MEM_MAP=y | 141 | CONFIG_FLAT_NODE_MEM_MAP=y |
122 | CONFIG_NEED_MULTIPLE_NODES=y | 142 | CONFIG_NEED_MULTIPLE_NODES=y |
123 | # CONFIG_SPARSEMEM_STATIC is not set | 143 | CONFIG_PAGEFLAGS_EXTENDED=y |
124 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 144 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
125 | CONFIG_MIGRATION=y | 145 | CONFIG_MIGRATION=y |
126 | CONFIG_RESOURCES_64BIT=y | 146 | CONFIG_PHYS_ADDR_T_64BIT=y |
127 | CONFIG_ZONE_DMA_FLAG=0 | 147 | CONFIG_ZONE_DMA_FLAG=0 |
128 | CONFIG_VIRT_TO_BUS=y | 148 | CONFIG_VIRT_TO_BUS=y |
149 | # CONFIG_KSM is not set | ||
150 | CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 | ||
129 | CONFIG_SMP=y | 151 | CONFIG_SMP=y |
130 | CONFIG_SYS_SUPPORTS_SMP=y | 152 | CONFIG_SYS_SUPPORTS_SMP=y |
131 | CONFIG_NR_CPUS_DEFAULT_64=y | 153 | CONFIG_NR_CPUS_DEFAULT_64=y |
132 | CONFIG_NR_CPUS=64 | 154 | CONFIG_NR_CPUS=64 |
155 | CONFIG_TICK_ONESHOT=y | ||
156 | CONFIG_NO_HZ=y | ||
157 | CONFIG_HIGH_RES_TIMERS=y | ||
158 | CONFIG_GENERIC_CLOCKEVENTS_BUILD=y | ||
133 | # CONFIG_HZ_48 is not set | 159 | # CONFIG_HZ_48 is not set |
134 | # CONFIG_HZ_100 is not set | 160 | # CONFIG_HZ_100 is not set |
135 | # CONFIG_HZ_128 is not set | 161 | # CONFIG_HZ_128 is not set |
@@ -142,13 +168,13 @@ CONFIG_HZ=1000 | |||
142 | CONFIG_PREEMPT_NONE=y | 168 | CONFIG_PREEMPT_NONE=y |
143 | # CONFIG_PREEMPT_VOLUNTARY is not set | 169 | # CONFIG_PREEMPT_VOLUNTARY is not set |
144 | # CONFIG_PREEMPT is not set | 170 | # CONFIG_PREEMPT is not set |
145 | CONFIG_PREEMPT_BKL=y | ||
146 | # CONFIG_MIPS_INSANE_LARGE is not set | 171 | # CONFIG_MIPS_INSANE_LARGE is not set |
147 | # CONFIG_KEXEC is not set | 172 | # CONFIG_KEXEC is not set |
148 | CONFIG_SECCOMP=y | 173 | CONFIG_SECCOMP=y |
149 | CONFIG_LOCKDEP_SUPPORT=y | 174 | CONFIG_LOCKDEP_SUPPORT=y |
150 | CONFIG_STACKTRACE_SUPPORT=y | 175 | CONFIG_STACKTRACE_SUPPORT=y |
151 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 176 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
177 | CONFIG_CONSTRUCTORS=y | ||
152 | 178 | ||
153 | # | 179 | # |
154 | # General setup | 180 | # General setup |
@@ -162,20 +188,41 @@ CONFIG_SWAP=y | |||
162 | CONFIG_SYSVIPC=y | 188 | CONFIG_SYSVIPC=y |
163 | CONFIG_SYSVIPC_SYSCTL=y | 189 | CONFIG_SYSVIPC_SYSCTL=y |
164 | CONFIG_POSIX_MQUEUE=y | 190 | CONFIG_POSIX_MQUEUE=y |
191 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
165 | # CONFIG_BSD_PROCESS_ACCT is not set | 192 | # CONFIG_BSD_PROCESS_ACCT is not set |
166 | # CONFIG_TASKSTATS is not set | 193 | # CONFIG_TASKSTATS is not set |
167 | # CONFIG_USER_NS is not set | ||
168 | # CONFIG_AUDIT is not set | 194 | # CONFIG_AUDIT is not set |
195 | |||
196 | # | ||
197 | # RCU Subsystem | ||
198 | # | ||
199 | CONFIG_TREE_RCU=y | ||
200 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
201 | # CONFIG_TINY_RCU is not set | ||
202 | # CONFIG_RCU_TRACE is not set | ||
203 | CONFIG_RCU_FANOUT=64 | ||
204 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
205 | # CONFIG_TREE_RCU_TRACE is not set | ||
169 | CONFIG_IKCONFIG=y | 206 | CONFIG_IKCONFIG=y |
170 | CONFIG_IKCONFIG_PROC=y | 207 | CONFIG_IKCONFIG_PROC=y |
171 | CONFIG_LOG_BUF_SHIFT=15 | 208 | CONFIG_LOG_BUF_SHIFT=15 |
209 | # CONFIG_GROUP_SCHED is not set | ||
172 | CONFIG_CGROUPS=y | 210 | CONFIG_CGROUPS=y |
211 | # CONFIG_CGROUP_DEBUG is not set | ||
212 | # CONFIG_CGROUP_NS is not set | ||
213 | # CONFIG_CGROUP_FREEZER is not set | ||
214 | # CONFIG_CGROUP_DEVICE is not set | ||
173 | CONFIG_CPUSETS=y | 215 | CONFIG_CPUSETS=y |
174 | CONFIG_SYSFS_DEPRECATED=y | 216 | CONFIG_PROC_PID_CPUSET=y |
217 | # CONFIG_CGROUP_CPUACCT is not set | ||
218 | # CONFIG_RESOURCE_COUNTERS is not set | ||
219 | # CONFIG_SYSFS_DEPRECATED_V2 is not set | ||
175 | CONFIG_RELAY=y | 220 | CONFIG_RELAY=y |
221 | # CONFIG_NAMESPACES is not set | ||
176 | # CONFIG_BLK_DEV_INITRD is not set | 222 | # CONFIG_BLK_DEV_INITRD is not set |
177 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 223 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
178 | CONFIG_SYSCTL=y | 224 | CONFIG_SYSCTL=y |
225 | CONFIG_ANON_INODES=y | ||
179 | CONFIG_EMBEDDED=y | 226 | CONFIG_EMBEDDED=y |
180 | CONFIG_SYSCTL_SYSCALL=y | 227 | CONFIG_SYSCTL_SYSCALL=y |
181 | CONFIG_KALLSYMS=y | 228 | CONFIG_KALLSYMS=y |
@@ -184,44 +231,92 @@ CONFIG_HOTPLUG=y | |||
184 | CONFIG_PRINTK=y | 231 | CONFIG_PRINTK=y |
185 | CONFIG_BUG=y | 232 | CONFIG_BUG=y |
186 | CONFIG_ELF_CORE=y | 233 | CONFIG_ELF_CORE=y |
234 | # CONFIG_PCSPKR_PLATFORM is not set | ||
187 | CONFIG_BASE_FULL=y | 235 | CONFIG_BASE_FULL=y |
188 | CONFIG_FUTEX=y | 236 | CONFIG_FUTEX=y |
189 | CONFIG_ANON_INODES=y | ||
190 | CONFIG_EPOLL=y | 237 | CONFIG_EPOLL=y |
191 | CONFIG_SIGNALFD=y | 238 | CONFIG_SIGNALFD=y |
192 | CONFIG_TIMERFD=y | 239 | CONFIG_TIMERFD=y |
193 | CONFIG_EVENTFD=y | 240 | CONFIG_EVENTFD=y |
194 | CONFIG_SHMEM=y | 241 | CONFIG_SHMEM=y |
242 | CONFIG_AIO=y | ||
243 | |||
244 | # | ||
245 | # Kernel Performance Events And Counters | ||
246 | # | ||
195 | CONFIG_VM_EVENT_COUNTERS=y | 247 | CONFIG_VM_EVENT_COUNTERS=y |
248 | CONFIG_PCI_QUIRKS=y | ||
249 | CONFIG_COMPAT_BRK=y | ||
196 | CONFIG_SLAB=y | 250 | CONFIG_SLAB=y |
197 | # CONFIG_SLUB is not set | 251 | # CONFIG_SLUB is not set |
198 | # CONFIG_SLOB is not set | 252 | # CONFIG_SLOB is not set |
253 | # CONFIG_PROFILING is not set | ||
254 | CONFIG_HAVE_OPROFILE=y | ||
255 | CONFIG_HAVE_SYSCALL_WRAPPERS=y | ||
256 | CONFIG_USE_GENERIC_SMP_HELPERS=y | ||
257 | |||
258 | # | ||
259 | # GCOV-based kernel profiling | ||
260 | # | ||
261 | CONFIG_SLOW_WORK=y | ||
262 | CONFIG_HAVE_GENERIC_DMA_COHERENT=y | ||
263 | CONFIG_SLABINFO=y | ||
199 | CONFIG_RT_MUTEXES=y | 264 | CONFIG_RT_MUTEXES=y |
200 | # CONFIG_TINY_SHMEM is not set | ||
201 | CONFIG_BASE_SMALL=0 | 265 | CONFIG_BASE_SMALL=0 |
202 | CONFIG_MODULES=y | 266 | CONFIG_MODULES=y |
267 | # CONFIG_MODULE_FORCE_LOAD is not set | ||
203 | CONFIG_MODULE_UNLOAD=y | 268 | CONFIG_MODULE_UNLOAD=y |
204 | # CONFIG_MODULE_FORCE_UNLOAD is not set | 269 | # CONFIG_MODULE_FORCE_UNLOAD is not set |
205 | # CONFIG_MODVERSIONS is not set | 270 | # CONFIG_MODVERSIONS is not set |
206 | CONFIG_MODULE_SRCVERSION_ALL=y | 271 | CONFIG_MODULE_SRCVERSION_ALL=y |
207 | CONFIG_KMOD=y | ||
208 | CONFIG_STOP_MACHINE=y | 272 | CONFIG_STOP_MACHINE=y |
209 | CONFIG_BLOCK=y | 273 | CONFIG_BLOCK=y |
210 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
211 | # CONFIG_BLK_DEV_BSG is not set | 274 | # CONFIG_BLK_DEV_BSG is not set |
275 | # CONFIG_BLK_DEV_INTEGRITY is not set | ||
276 | # CONFIG_BLK_CGROUP is not set | ||
277 | CONFIG_BLOCK_COMPAT=y | ||
212 | 278 | ||
213 | # | 279 | # |
214 | # IO Schedulers | 280 | # IO Schedulers |
215 | # | 281 | # |
216 | CONFIG_IOSCHED_NOOP=y | 282 | CONFIG_IOSCHED_NOOP=y |
217 | CONFIG_IOSCHED_AS=y | ||
218 | CONFIG_IOSCHED_DEADLINE=y | 283 | CONFIG_IOSCHED_DEADLINE=y |
219 | CONFIG_IOSCHED_CFQ=y | 284 | CONFIG_IOSCHED_CFQ=y |
220 | CONFIG_DEFAULT_AS=y | 285 | # CONFIG_CFQ_GROUP_IOSCHED is not set |
221 | # CONFIG_DEFAULT_DEADLINE is not set | 286 | # CONFIG_DEFAULT_DEADLINE is not set |
222 | # CONFIG_DEFAULT_CFQ is not set | 287 | CONFIG_DEFAULT_CFQ=y |
223 | # CONFIG_DEFAULT_NOOP is not set | 288 | # CONFIG_DEFAULT_NOOP is not set |
224 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 289 | CONFIG_DEFAULT_IOSCHED="cfq" |
290 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
291 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
292 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
293 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
294 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
295 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
296 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
297 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
298 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
299 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
300 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
301 | # CONFIG_INLINE_READ_LOCK is not set | ||
302 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
303 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
304 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
305 | CONFIG_INLINE_READ_UNLOCK=y | ||
306 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
307 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
308 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
309 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
310 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
311 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
312 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
313 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
314 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
315 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
316 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
317 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
318 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
319 | # CONFIG_FREEZER is not set | ||
225 | 320 | ||
226 | # | 321 | # |
227 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) | 322 | # Bus options (PCI, PCMCIA, EISA, ISA, TC) |
@@ -230,11 +325,10 @@ CONFIG_HW_HAS_PCI=y | |||
230 | CONFIG_PCI=y | 325 | CONFIG_PCI=y |
231 | CONFIG_PCI_DOMAINS=y | 326 | CONFIG_PCI_DOMAINS=y |
232 | # CONFIG_ARCH_SUPPORTS_MSI is not set | 327 | # CONFIG_ARCH_SUPPORTS_MSI is not set |
328 | # CONFIG_PCI_LEGACY is not set | ||
329 | # CONFIG_PCI_STUB is not set | ||
330 | # CONFIG_PCI_IOV is not set | ||
233 | CONFIG_MMU=y | 331 | CONFIG_MMU=y |
234 | |||
235 | # | ||
236 | # PCCARD (PCMCIA/CardBus) support | ||
237 | # | ||
238 | # CONFIG_PCCARD is not set | 332 | # CONFIG_PCCARD is not set |
239 | # CONFIG_HOTPLUG_PCI is not set | 333 | # CONFIG_HOTPLUG_PCI is not set |
240 | 334 | ||
@@ -242,8 +336,9 @@ CONFIG_MMU=y | |||
242 | # Executable file formats | 336 | # Executable file formats |
243 | # | 337 | # |
244 | CONFIG_BINFMT_ELF=y | 338 | CONFIG_BINFMT_ELF=y |
339 | CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y | ||
340 | # CONFIG_HAVE_AOUT is not set | ||
245 | # CONFIG_BINFMT_MISC is not set | 341 | # CONFIG_BINFMT_MISC is not set |
246 | # CONFIG_BUILD_ELF64 is not set | ||
247 | CONFIG_MIPS32_COMPAT=y | 342 | CONFIG_MIPS32_COMPAT=y |
248 | CONFIG_COMPAT=y | 343 | CONFIG_COMPAT=y |
249 | CONFIG_SYSVIPC_COMPAT=y | 344 | CONFIG_SYSVIPC_COMPAT=y |
@@ -255,13 +350,10 @@ CONFIG_BINFMT_ELF32=y | |||
255 | # Power management options | 350 | # Power management options |
256 | # | 351 | # |
257 | CONFIG_PM=y | 352 | CONFIG_PM=y |
258 | # CONFIG_PM_LEGACY is not set | ||
259 | # CONFIG_PM_DEBUG is not set | 353 | # CONFIG_PM_DEBUG is not set |
260 | 354 | # CONFIG_PM_RUNTIME is not set | |
261 | # | ||
262 | # Networking | ||
263 | # | ||
264 | CONFIG_NET=y | 355 | CONFIG_NET=y |
356 | CONFIG_COMPAT_NETLINK_MESSAGES=y | ||
265 | 357 | ||
266 | # | 358 | # |
267 | # Networking options | 359 | # Networking options |
@@ -273,6 +365,8 @@ CONFIG_XFRM=y | |||
273 | CONFIG_XFRM_USER=m | 365 | CONFIG_XFRM_USER=m |
274 | # CONFIG_XFRM_SUB_POLICY is not set | 366 | # CONFIG_XFRM_SUB_POLICY is not set |
275 | CONFIG_XFRM_MIGRATE=y | 367 | CONFIG_XFRM_MIGRATE=y |
368 | CONFIG_XFRM_STATISTICS=y | ||
369 | CONFIG_XFRM_IPCOMP=m | ||
276 | CONFIG_NET_KEY=y | 370 | CONFIG_NET_KEY=y |
277 | CONFIG_NET_KEY_MIGRATE=y | 371 | CONFIG_NET_KEY_MIGRATE=y |
278 | CONFIG_INET=y | 372 | CONFIG_INET=y |
@@ -292,19 +386,40 @@ CONFIG_IP_PNP=y | |||
292 | # CONFIG_INET_ESP is not set | 386 | # CONFIG_INET_ESP is not set |
293 | # CONFIG_INET_IPCOMP is not set | 387 | # CONFIG_INET_IPCOMP is not set |
294 | # CONFIG_INET_XFRM_TUNNEL is not set | 388 | # CONFIG_INET_XFRM_TUNNEL is not set |
295 | # CONFIG_INET_TUNNEL is not set | 389 | CONFIG_INET_TUNNEL=m |
296 | CONFIG_INET_XFRM_MODE_TRANSPORT=m | 390 | CONFIG_INET_XFRM_MODE_TRANSPORT=m |
297 | CONFIG_INET_XFRM_MODE_TUNNEL=m | 391 | CONFIG_INET_XFRM_MODE_TUNNEL=m |
298 | CONFIG_INET_XFRM_MODE_BEET=m | 392 | CONFIG_INET_XFRM_MODE_BEET=m |
393 | CONFIG_INET_LRO=y | ||
299 | CONFIG_INET_DIAG=y | 394 | CONFIG_INET_DIAG=y |
300 | CONFIG_INET_TCP_DIAG=y | 395 | CONFIG_INET_TCP_DIAG=y |
301 | # CONFIG_TCP_CONG_ADVANCED is not set | 396 | # CONFIG_TCP_CONG_ADVANCED is not set |
302 | CONFIG_TCP_CONG_CUBIC=y | 397 | CONFIG_TCP_CONG_CUBIC=y |
303 | CONFIG_DEFAULT_TCP_CONG="cubic" | 398 | CONFIG_DEFAULT_TCP_CONG="cubic" |
304 | CONFIG_TCP_MD5SIG=y | 399 | CONFIG_TCP_MD5SIG=y |
305 | # CONFIG_IPV6 is not set | 400 | CONFIG_IPV6=y |
306 | # CONFIG_INET6_XFRM_TUNNEL is not set | 401 | CONFIG_IPV6_PRIVACY=y |
307 | # CONFIG_INET6_TUNNEL is not set | 402 | CONFIG_IPV6_ROUTER_PREF=y |
403 | CONFIG_IPV6_ROUTE_INFO=y | ||
404 | CONFIG_IPV6_OPTIMISTIC_DAD=y | ||
405 | CONFIG_INET6_AH=m | ||
406 | CONFIG_INET6_ESP=m | ||
407 | CONFIG_INET6_IPCOMP=m | ||
408 | CONFIG_IPV6_MIP6=m | ||
409 | CONFIG_INET6_XFRM_TUNNEL=m | ||
410 | CONFIG_INET6_TUNNEL=m | ||
411 | CONFIG_INET6_XFRM_MODE_TRANSPORT=m | ||
412 | CONFIG_INET6_XFRM_MODE_TUNNEL=m | ||
413 | CONFIG_INET6_XFRM_MODE_BEET=m | ||
414 | CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m | ||
415 | CONFIG_IPV6_SIT=m | ||
416 | CONFIG_IPV6_SIT_6RD=y | ||
417 | CONFIG_IPV6_NDISC_NODETYPE=y | ||
418 | CONFIG_IPV6_TUNNEL=m | ||
419 | CONFIG_IPV6_MULTIPLE_TABLES=y | ||
420 | CONFIG_IPV6_SUBTREES=y | ||
421 | CONFIG_IPV6_MROUTE=y | ||
422 | CONFIG_IPV6_PIMSM_V2=y | ||
308 | CONFIG_NETWORK_SECMARK=y | 423 | CONFIG_NETWORK_SECMARK=y |
309 | # CONFIG_NETFILTER is not set | 424 | # CONFIG_NETFILTER is not set |
310 | # CONFIG_IP_DCCP is not set | 425 | # CONFIG_IP_DCCP is not set |
@@ -314,9 +429,11 @@ CONFIG_IP_SCTP=m | |||
314 | # CONFIG_SCTP_HMAC_NONE is not set | 429 | # CONFIG_SCTP_HMAC_NONE is not set |
315 | # CONFIG_SCTP_HMAC_SHA1 is not set | 430 | # CONFIG_SCTP_HMAC_SHA1 is not set |
316 | CONFIG_SCTP_HMAC_MD5=y | 431 | CONFIG_SCTP_HMAC_MD5=y |
432 | # CONFIG_RDS is not set | ||
317 | # CONFIG_TIPC is not set | 433 | # CONFIG_TIPC is not set |
318 | # CONFIG_ATM is not set | 434 | # CONFIG_ATM is not set |
319 | # CONFIG_BRIDGE is not set | 435 | # CONFIG_BRIDGE is not set |
436 | # CONFIG_NET_DSA is not set | ||
320 | # CONFIG_VLAN_8021Q is not set | 437 | # CONFIG_VLAN_8021Q is not set |
321 | # CONFIG_DECNET is not set | 438 | # CONFIG_DECNET is not set |
322 | # CONFIG_LLC2 is not set | 439 | # CONFIG_LLC2 is not set |
@@ -326,12 +443,9 @@ CONFIG_SCTP_HMAC_MD5=y | |||
326 | # CONFIG_LAPB is not set | 443 | # CONFIG_LAPB is not set |
327 | # CONFIG_ECONET is not set | 444 | # CONFIG_ECONET is not set |
328 | # CONFIG_WAN_ROUTER is not set | 445 | # CONFIG_WAN_ROUTER is not set |
329 | 446 | # CONFIG_PHONET is not set | |
330 | # | 447 | # CONFIG_IEEE802154 is not set |
331 | # QoS and/or fair queueing | ||
332 | # | ||
333 | CONFIG_NET_SCHED=y | 448 | CONFIG_NET_SCHED=y |
334 | CONFIG_NET_SCH_FIFO=y | ||
335 | 449 | ||
336 | # | 450 | # |
337 | # Queueing/Scheduling | 451 | # Queueing/Scheduling |
@@ -340,7 +454,7 @@ CONFIG_NET_SCH_CBQ=m | |||
340 | CONFIG_NET_SCH_HTB=m | 454 | CONFIG_NET_SCH_HTB=m |
341 | CONFIG_NET_SCH_HFSC=m | 455 | CONFIG_NET_SCH_HFSC=m |
342 | CONFIG_NET_SCH_PRIO=m | 456 | CONFIG_NET_SCH_PRIO=m |
343 | CONFIG_NET_SCH_RR=m | 457 | CONFIG_NET_SCH_MULTIQ=y |
344 | CONFIG_NET_SCH_RED=m | 458 | CONFIG_NET_SCH_RED=m |
345 | CONFIG_NET_SCH_SFQ=m | 459 | CONFIG_NET_SCH_SFQ=m |
346 | CONFIG_NET_SCH_TEQL=m | 460 | CONFIG_NET_SCH_TEQL=m |
@@ -348,6 +462,7 @@ CONFIG_NET_SCH_TBF=m | |||
348 | CONFIG_NET_SCH_GRED=m | 462 | CONFIG_NET_SCH_GRED=m |
349 | CONFIG_NET_SCH_DSMARK=m | 463 | CONFIG_NET_SCH_DSMARK=m |
350 | CONFIG_NET_SCH_NETEM=m | 464 | CONFIG_NET_SCH_NETEM=m |
465 | # CONFIG_NET_SCH_DRR is not set | ||
351 | CONFIG_NET_SCH_INGRESS=m | 466 | CONFIG_NET_SCH_INGRESS=m |
352 | 467 | ||
353 | # | 468 | # |
@@ -364,41 +479,63 @@ CONFIG_NET_CLS_U32=m | |||
364 | CONFIG_CLS_U32_MARK=y | 479 | CONFIG_CLS_U32_MARK=y |
365 | CONFIG_NET_CLS_RSVP=m | 480 | CONFIG_NET_CLS_RSVP=m |
366 | CONFIG_NET_CLS_RSVP6=m | 481 | CONFIG_NET_CLS_RSVP6=m |
482 | CONFIG_NET_CLS_FLOW=m | ||
483 | CONFIG_NET_CLS_CGROUP=y | ||
367 | # CONFIG_NET_EMATCH is not set | 484 | # CONFIG_NET_EMATCH is not set |
368 | CONFIG_NET_CLS_ACT=y | 485 | CONFIG_NET_CLS_ACT=y |
369 | CONFIG_NET_ACT_POLICE=y | 486 | CONFIG_NET_ACT_POLICE=y |
370 | CONFIG_NET_ACT_GACT=m | 487 | CONFIG_NET_ACT_GACT=m |
371 | CONFIG_GACT_PROB=y | 488 | CONFIG_GACT_PROB=y |
372 | CONFIG_NET_ACT_MIRRED=m | 489 | CONFIG_NET_ACT_MIRRED=m |
490 | CONFIG_NET_ACT_NAT=m | ||
373 | CONFIG_NET_ACT_PEDIT=m | 491 | CONFIG_NET_ACT_PEDIT=m |
374 | # CONFIG_NET_ACT_SIMP is not set | 492 | # CONFIG_NET_ACT_SIMP is not set |
375 | CONFIG_NET_CLS_POLICE=y | 493 | CONFIG_NET_ACT_SKBEDIT=m |
376 | # CONFIG_NET_CLS_IND is not set | 494 | # CONFIG_NET_CLS_IND is not set |
495 | CONFIG_NET_SCH_FIFO=y | ||
496 | # CONFIG_DCB is not set | ||
377 | 497 | ||
378 | # | 498 | # |
379 | # Network testing | 499 | # Network testing |
380 | # | 500 | # |
381 | # CONFIG_NET_PKTGEN is not set | 501 | # CONFIG_NET_PKTGEN is not set |
382 | # CONFIG_HAMRADIO is not set | 502 | # CONFIG_HAMRADIO is not set |
503 | # CONFIG_CAN is not set | ||
383 | # CONFIG_IRDA is not set | 504 | # CONFIG_IRDA is not set |
384 | # CONFIG_BT is not set | 505 | # CONFIG_BT is not set |
385 | # CONFIG_AF_RXRPC is not set | 506 | # CONFIG_AF_RXRPC is not set |
386 | 507 | CONFIG_FIB_RULES=y | |
387 | # | 508 | CONFIG_WIRELESS=y |
388 | # Wireless | ||
389 | # | ||
390 | CONFIG_CFG80211=m | ||
391 | CONFIG_WIRELESS_EXT=y | 509 | CONFIG_WIRELESS_EXT=y |
510 | CONFIG_WEXT_CORE=y | ||
511 | CONFIG_WEXT_PROC=y | ||
512 | CONFIG_WEXT_SPY=y | ||
513 | CONFIG_WEXT_PRIV=y | ||
514 | CONFIG_CFG80211=m | ||
515 | # CONFIG_NL80211_TESTMODE is not set | ||
516 | # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set | ||
517 | # CONFIG_CFG80211_REG_DEBUG is not set | ||
518 | CONFIG_CFG80211_DEFAULT_PS=y | ||
519 | # CONFIG_WIRELESS_OLD_REGULATORY is not set | ||
520 | CONFIG_CFG80211_WEXT=y | ||
521 | CONFIG_WIRELESS_EXT_SYSFS=y | ||
522 | CONFIG_LIB80211=m | ||
523 | CONFIG_LIB80211_CRYPT_WEP=m | ||
524 | CONFIG_LIB80211_CRYPT_CCMP=m | ||
525 | CONFIG_LIB80211_CRYPT_TKIP=m | ||
526 | # CONFIG_LIB80211_DEBUG is not set | ||
392 | CONFIG_MAC80211=m | 527 | CONFIG_MAC80211=m |
393 | # CONFIG_MAC80211_DEBUG is not set | 528 | CONFIG_MAC80211_RC_PID=y |
394 | CONFIG_IEEE80211=m | 529 | CONFIG_MAC80211_RC_MINSTREL=y |
395 | # CONFIG_IEEE80211_DEBUG is not set | 530 | # CONFIG_MAC80211_RC_DEFAULT_PID is not set |
396 | CONFIG_IEEE80211_CRYPT_WEP=m | 531 | CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y |
397 | CONFIG_IEEE80211_CRYPT_CCMP=m | 532 | CONFIG_MAC80211_RC_DEFAULT="minstrel" |
398 | CONFIG_IEEE80211_CRYPT_TKIP=m | 533 | # CONFIG_MAC80211_MESH is not set |
399 | CONFIG_IEEE80211_SOFTMAC=m | 534 | CONFIG_MAC80211_LEDS=y |
400 | # CONFIG_IEEE80211_SOFTMAC_DEBUG is not set | 535 | # CONFIG_MAC80211_DEBUG_MENU is not set |
536 | # CONFIG_WIMAX is not set | ||
401 | CONFIG_RFKILL=m | 537 | CONFIG_RFKILL=m |
538 | CONFIG_RFKILL_LEDS=y | ||
402 | # CONFIG_NET_9P is not set | 539 | # CONFIG_NET_9P is not set |
403 | 540 | ||
404 | # | 541 | # |
@@ -408,9 +545,13 @@ CONFIG_RFKILL=m | |||
408 | # | 545 | # |
409 | # Generic Driver Options | 546 | # Generic Driver Options |
410 | # | 547 | # |
548 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | ||
549 | # CONFIG_DEVTMPFS is not set | ||
411 | CONFIG_STANDALONE=y | 550 | CONFIG_STANDALONE=y |
412 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 551 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
413 | CONFIG_FW_LOADER=y | 552 | CONFIG_FW_LOADER=y |
553 | CONFIG_FIRMWARE_IN_KERNEL=y | ||
554 | CONFIG_EXTRA_FIRMWARE="" | ||
414 | # CONFIG_SYS_HYPERVISOR is not set | 555 | # CONFIG_SYS_HYPERVISOR is not set |
415 | CONFIG_CONNECTOR=m | 556 | CONFIG_CONNECTOR=m |
416 | # CONFIG_MTD is not set | 557 | # CONFIG_MTD is not set |
@@ -423,14 +564,19 @@ CONFIG_BLK_DEV=y | |||
423 | # CONFIG_BLK_DEV_COW_COMMON is not set | 564 | # CONFIG_BLK_DEV_COW_COMMON is not set |
424 | CONFIG_BLK_DEV_LOOP=y | 565 | CONFIG_BLK_DEV_LOOP=y |
425 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 566 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
567 | # CONFIG_BLK_DEV_DRBD is not set | ||
426 | # CONFIG_BLK_DEV_NBD is not set | 568 | # CONFIG_BLK_DEV_NBD is not set |
569 | CONFIG_BLK_DEV_OSD=m | ||
427 | # CONFIG_BLK_DEV_SX8 is not set | 570 | # CONFIG_BLK_DEV_SX8 is not set |
428 | # CONFIG_BLK_DEV_RAM is not set | 571 | # CONFIG_BLK_DEV_RAM is not set |
429 | CONFIG_CDROM_PKTCDVD=m | 572 | CONFIG_CDROM_PKTCDVD=m |
430 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 573 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
431 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 574 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
432 | CONFIG_ATA_OVER_ETH=m | 575 | CONFIG_ATA_OVER_ETH=m |
576 | # CONFIG_BLK_DEV_HD is not set | ||
433 | # CONFIG_MISC_DEVICES is not set | 577 | # CONFIG_MISC_DEVICES is not set |
578 | CONFIG_EEPROM_93CX6=m | ||
579 | CONFIG_HAVE_IDE=y | ||
434 | # CONFIG_IDE is not set | 580 | # CONFIG_IDE is not set |
435 | 581 | ||
436 | # | 582 | # |
@@ -453,10 +599,6 @@ CONFIG_BLK_DEV_SR=m | |||
453 | CONFIG_BLK_DEV_SR_VENDOR=y | 599 | CONFIG_BLK_DEV_SR_VENDOR=y |
454 | CONFIG_CHR_DEV_SG=m | 600 | CONFIG_CHR_DEV_SG=m |
455 | CONFIG_CHR_DEV_SCH=m | 601 | CONFIG_CHR_DEV_SCH=m |
456 | |||
457 | # | ||
458 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
459 | # | ||
460 | # CONFIG_SCSI_MULTI_LUN is not set | 602 | # CONFIG_SCSI_MULTI_LUN is not set |
461 | CONFIG_SCSI_CONSTANTS=y | 603 | CONFIG_SCSI_CONSTANTS=y |
462 | CONFIG_SCSI_LOGGING=y | 604 | CONFIG_SCSI_LOGGING=y |
@@ -471,11 +613,18 @@ CONFIG_SCSI_FC_ATTRS=y | |||
471 | CONFIG_SCSI_ISCSI_ATTRS=m | 613 | CONFIG_SCSI_ISCSI_ATTRS=m |
472 | CONFIG_SCSI_SAS_ATTRS=m | 614 | CONFIG_SCSI_SAS_ATTRS=m |
473 | CONFIG_SCSI_SAS_LIBSAS=m | 615 | CONFIG_SCSI_SAS_LIBSAS=m |
616 | CONFIG_SCSI_SAS_HOST_SMP=y | ||
474 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set | 617 | # CONFIG_SCSI_SAS_LIBSAS_DEBUG is not set |
618 | # CONFIG_SCSI_SRP_ATTRS is not set | ||
475 | CONFIG_SCSI_LOWLEVEL=y | 619 | CONFIG_SCSI_LOWLEVEL=y |
476 | # CONFIG_ISCSI_TCP is not set | 620 | # CONFIG_ISCSI_TCP is not set |
621 | CONFIG_SCSI_CXGB3_ISCSI=m | ||
622 | CONFIG_SCSI_BNX2_ISCSI=m | ||
623 | CONFIG_BE2ISCSI=m | ||
477 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 624 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
625 | CONFIG_SCSI_HPSA=m | ||
478 | # CONFIG_SCSI_3W_9XXX is not set | 626 | # CONFIG_SCSI_3W_9XXX is not set |
627 | CONFIG_SCSI_3W_SAS=m | ||
479 | # CONFIG_SCSI_ACARD is not set | 628 | # CONFIG_SCSI_ACARD is not set |
480 | # CONFIG_SCSI_AACRAID is not set | 629 | # CONFIG_SCSI_AACRAID is not set |
481 | # CONFIG_SCSI_AIC7XXX is not set | 630 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -483,11 +632,21 @@ CONFIG_SCSI_LOWLEVEL=y | |||
483 | # CONFIG_SCSI_AIC79XX is not set | 632 | # CONFIG_SCSI_AIC79XX is not set |
484 | CONFIG_SCSI_AIC94XX=m | 633 | CONFIG_SCSI_AIC94XX=m |
485 | # CONFIG_AIC94XX_DEBUG is not set | 634 | # CONFIG_AIC94XX_DEBUG is not set |
635 | CONFIG_SCSI_MVSAS=m | ||
636 | # CONFIG_SCSI_MVSAS_DEBUG is not set | ||
637 | CONFIG_SCSI_DPT_I2O=m | ||
638 | # CONFIG_SCSI_ADVANSYS is not set | ||
486 | # CONFIG_SCSI_ARCMSR is not set | 639 | # CONFIG_SCSI_ARCMSR is not set |
487 | # CONFIG_MEGARAID_NEWGEN is not set | 640 | # CONFIG_MEGARAID_NEWGEN is not set |
488 | # CONFIG_MEGARAID_LEGACY is not set | 641 | # CONFIG_MEGARAID_LEGACY is not set |
489 | # CONFIG_MEGARAID_SAS is not set | 642 | # CONFIG_MEGARAID_SAS is not set |
643 | CONFIG_SCSI_MPT2SAS=m | ||
644 | CONFIG_SCSI_MPT2SAS_MAX_SGE=128 | ||
645 | # CONFIG_SCSI_MPT2SAS_LOGGING is not set | ||
490 | # CONFIG_SCSI_HPTIOP is not set | 646 | # CONFIG_SCSI_HPTIOP is not set |
647 | CONFIG_LIBFC=m | ||
648 | # CONFIG_LIBFCOE is not set | ||
649 | # CONFIG_FCOE is not set | ||
491 | # CONFIG_SCSI_DMX3191D is not set | 650 | # CONFIG_SCSI_DMX3191D is not set |
492 | # CONFIG_SCSI_FUTURE_DOMAIN is not set | 651 | # CONFIG_SCSI_FUTURE_DOMAIN is not set |
493 | # CONFIG_SCSI_IPS is not set | 652 | # CONFIG_SCSI_IPS is not set |
@@ -502,16 +661,31 @@ CONFIG_SCSI_QLOGIC_1280=y | |||
502 | # CONFIG_SCSI_DC395x is not set | 661 | # CONFIG_SCSI_DC395x is not set |
503 | # CONFIG_SCSI_DC390T is not set | 662 | # CONFIG_SCSI_DC390T is not set |
504 | # CONFIG_SCSI_DEBUG is not set | 663 | # CONFIG_SCSI_DEBUG is not set |
664 | CONFIG_SCSI_PMCRAID=m | ||
665 | # CONFIG_SCSI_PM8001 is not set | ||
505 | # CONFIG_SCSI_SRP is not set | 666 | # CONFIG_SCSI_SRP is not set |
667 | CONFIG_SCSI_BFA_FC=m | ||
668 | CONFIG_SCSI_DH=m | ||
669 | CONFIG_SCSI_DH_RDAC=m | ||
670 | CONFIG_SCSI_DH_HP_SW=m | ||
671 | CONFIG_SCSI_DH_EMC=m | ||
672 | CONFIG_SCSI_DH_ALUA=m | ||
673 | CONFIG_SCSI_OSD_INITIATOR=m | ||
674 | CONFIG_SCSI_OSD_ULD=m | ||
675 | CONFIG_SCSI_OSD_DPRINT_SENSE=1 | ||
676 | # CONFIG_SCSI_OSD_DEBUG is not set | ||
506 | # CONFIG_ATA is not set | 677 | # CONFIG_ATA is not set |
507 | CONFIG_MD=y | 678 | CONFIG_MD=y |
508 | CONFIG_BLK_DEV_MD=y | 679 | CONFIG_BLK_DEV_MD=y |
680 | CONFIG_MD_AUTODETECT=y | ||
509 | CONFIG_MD_LINEAR=m | 681 | CONFIG_MD_LINEAR=m |
510 | CONFIG_MD_RAID0=y | 682 | CONFIG_MD_RAID0=y |
511 | CONFIG_MD_RAID1=y | 683 | CONFIG_MD_RAID1=y |
512 | CONFIG_MD_RAID10=m | 684 | CONFIG_MD_RAID10=m |
513 | CONFIG_MD_RAID456=y | 685 | CONFIG_MD_RAID456=y |
514 | CONFIG_MD_RAID5_RESHAPE=y | 686 | # CONFIG_MULTICORE_RAID456 is not set |
687 | CONFIG_MD_RAID6_PQ=y | ||
688 | # CONFIG_ASYNC_RAID6_TEST is not set | ||
515 | CONFIG_MD_MULTIPATH=m | 689 | CONFIG_MD_MULTIPATH=m |
516 | CONFIG_MD_FAULTY=m | 690 | CONFIG_MD_FAULTY=m |
517 | CONFIG_BLK_DEV_DM=m | 691 | CONFIG_BLK_DEV_DM=m |
@@ -519,36 +693,39 @@ CONFIG_BLK_DEV_DM=m | |||
519 | CONFIG_DM_CRYPT=m | 693 | CONFIG_DM_CRYPT=m |
520 | CONFIG_DM_SNAPSHOT=m | 694 | CONFIG_DM_SNAPSHOT=m |
521 | CONFIG_DM_MIRROR=m | 695 | CONFIG_DM_MIRROR=m |
696 | CONFIG_DM_LOG_USERSPACE=m | ||
522 | CONFIG_DM_ZERO=m | 697 | CONFIG_DM_ZERO=m |
523 | CONFIG_DM_MULTIPATH=m | 698 | CONFIG_DM_MULTIPATH=m |
524 | CONFIG_DM_MULTIPATH_EMC=m | 699 | CONFIG_DM_MULTIPATH_QL=m |
525 | CONFIG_DM_MULTIPATH_RDAC=m | 700 | CONFIG_DM_MULTIPATH_ST=m |
526 | # CONFIG_DM_DELAY is not set | 701 | # CONFIG_DM_DELAY is not set |
702 | CONFIG_DM_UEVENT=y | ||
703 | # CONFIG_FUSION is not set | ||
527 | 704 | ||
528 | # | 705 | # |
529 | # Fusion MPT device support | 706 | # IEEE 1394 (FireWire) support |
530 | # | 707 | # |
531 | # CONFIG_FUSION is not set | ||
532 | # CONFIG_FUSION_SPI is not set | ||
533 | # CONFIG_FUSION_FC is not set | ||
534 | # CONFIG_FUSION_SAS is not set | ||
535 | 708 | ||
536 | # | 709 | # |
537 | # IEEE 1394 (FireWire) support | 710 | # You can enable one or both FireWire driver stacks. |
711 | # | ||
712 | |||
713 | # | ||
714 | # The newer stack is recommended. | ||
538 | # | 715 | # |
539 | # CONFIG_FIREWIRE is not set | 716 | # CONFIG_FIREWIRE is not set |
540 | # CONFIG_IEEE1394 is not set | 717 | # CONFIG_IEEE1394 is not set |
541 | # CONFIG_I2O is not set | 718 | # CONFIG_I2O is not set |
542 | CONFIG_NETDEVICES=y | 719 | CONFIG_NETDEVICES=y |
543 | CONFIG_NETDEVICES_MULTIQUEUE=y | ||
544 | CONFIG_IFB=m | 720 | CONFIG_IFB=m |
545 | # CONFIG_DUMMY is not set | 721 | # CONFIG_DUMMY is not set |
546 | # CONFIG_BONDING is not set | 722 | # CONFIG_BONDING is not set |
547 | CONFIG_MACVLAN=m | 723 | CONFIG_MACVLAN=m |
548 | # CONFIG_EQUALIZER is not set | 724 | # CONFIG_EQUALIZER is not set |
549 | # CONFIG_TUN is not set | 725 | # CONFIG_TUN is not set |
726 | CONFIG_VETH=m | ||
550 | # CONFIG_ARCNET is not set | 727 | # CONFIG_ARCNET is not set |
551 | CONFIG_PHYLIB=m | 728 | CONFIG_PHYLIB=y |
552 | 729 | ||
553 | # | 730 | # |
554 | # MII PHY device drivers | 731 | # MII PHY device drivers |
@@ -562,23 +739,51 @@ CONFIG_VITESSE_PHY=m | |||
562 | CONFIG_SMSC_PHY=m | 739 | CONFIG_SMSC_PHY=m |
563 | # CONFIG_BROADCOM_PHY is not set | 740 | # CONFIG_BROADCOM_PHY is not set |
564 | CONFIG_ICPLUS_PHY=m | 741 | CONFIG_ICPLUS_PHY=m |
742 | CONFIG_REALTEK_PHY=m | ||
743 | CONFIG_NATIONAL_PHY=m | ||
744 | CONFIG_STE10XP=m | ||
745 | CONFIG_LSI_ET1011C_PHY=m | ||
565 | # CONFIG_FIXED_PHY is not set | 746 | # CONFIG_FIXED_PHY is not set |
747 | CONFIG_MDIO_BITBANG=m | ||
566 | CONFIG_NET_ETHERNET=y | 748 | CONFIG_NET_ETHERNET=y |
567 | CONFIG_MII=y | 749 | CONFIG_MII=y |
568 | CONFIG_AX88796=m | 750 | CONFIG_AX88796=m |
751 | CONFIG_AX88796_93CX6=y | ||
569 | CONFIG_SGI_IOC3_ETH=y | 752 | CONFIG_SGI_IOC3_ETH=y |
570 | # CONFIG_HAPPYMEAL is not set | 753 | # CONFIG_HAPPYMEAL is not set |
571 | # CONFIG_SUNGEM is not set | 754 | # CONFIG_SUNGEM is not set |
572 | # CONFIG_CASSINI is not set | 755 | # CONFIG_CASSINI is not set |
573 | # CONFIG_NET_VENDOR_3COM is not set | 756 | # CONFIG_NET_VENDOR_3COM is not set |
757 | CONFIG_SMC91X=m | ||
574 | # CONFIG_DM9000 is not set | 758 | # CONFIG_DM9000 is not set |
759 | CONFIG_ETHOC=m | ||
760 | CONFIG_SMSC911X=m | ||
761 | CONFIG_DNET=m | ||
575 | # CONFIG_NET_TULIP is not set | 762 | # CONFIG_NET_TULIP is not set |
576 | # CONFIG_HP100 is not set | 763 | # CONFIG_HP100 is not set |
764 | # CONFIG_IBM_NEW_EMAC_ZMII is not set | ||
765 | # CONFIG_IBM_NEW_EMAC_RGMII is not set | ||
766 | # CONFIG_IBM_NEW_EMAC_TAH is not set | ||
767 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | ||
768 | # CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set | ||
769 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | ||
770 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | ||
577 | # CONFIG_NET_PCI is not set | 771 | # CONFIG_NET_PCI is not set |
772 | CONFIG_B44=m | ||
773 | CONFIG_B44_PCI_AUTOSELECT=y | ||
774 | CONFIG_B44_PCICORE_AUTOSELECT=y | ||
775 | CONFIG_B44_PCI=y | ||
776 | CONFIG_KS8842=m | ||
777 | CONFIG_KS8851_MLL=m | ||
778 | CONFIG_ATL2=m | ||
578 | CONFIG_NETDEV_1000=y | 779 | CONFIG_NETDEV_1000=y |
579 | # CONFIG_ACENIC is not set | 780 | # CONFIG_ACENIC is not set |
580 | # CONFIG_DL2K is not set | 781 | # CONFIG_DL2K is not set |
581 | # CONFIG_E1000 is not set | 782 | # CONFIG_E1000 is not set |
783 | CONFIG_E1000E=m | ||
784 | CONFIG_IP1000=m | ||
785 | CONFIG_IGB=m | ||
786 | CONFIG_IGBVF=m | ||
582 | # CONFIG_NS83820 is not set | 787 | # CONFIG_NS83820 is not set |
583 | # CONFIG_HAMACHI is not set | 788 | # CONFIG_HAMACHI is not set |
584 | # CONFIG_YELLOWFIN is not set | 789 | # CONFIG_YELLOWFIN is not set |
@@ -588,24 +793,75 @@ CONFIG_NETDEV_1000=y | |||
588 | # CONFIG_SKY2 is not set | 793 | # CONFIG_SKY2 is not set |
589 | CONFIG_VIA_VELOCITY=m | 794 | CONFIG_VIA_VELOCITY=m |
590 | # CONFIG_TIGON3 is not set | 795 | # CONFIG_TIGON3 is not set |
591 | # CONFIG_BNX2 is not set | 796 | CONFIG_BNX2=m |
797 | CONFIG_CNIC=m | ||
592 | CONFIG_QLA3XXX=m | 798 | CONFIG_QLA3XXX=m |
593 | # CONFIG_ATL1 is not set | 799 | # CONFIG_ATL1 is not set |
800 | CONFIG_ATL1E=m | ||
801 | CONFIG_ATL1C=m | ||
802 | CONFIG_JME=m | ||
594 | CONFIG_NETDEV_10000=y | 803 | CONFIG_NETDEV_10000=y |
804 | CONFIG_MDIO=m | ||
595 | # CONFIG_CHELSIO_T1 is not set | 805 | # CONFIG_CHELSIO_T1 is not set |
806 | CONFIG_CHELSIO_T3_DEPENDS=y | ||
596 | CONFIG_CHELSIO_T3=m | 807 | CONFIG_CHELSIO_T3=m |
808 | CONFIG_ENIC=m | ||
809 | CONFIG_IXGBE=m | ||
597 | # CONFIG_IXGB is not set | 810 | # CONFIG_IXGB is not set |
598 | # CONFIG_S2IO is not set | 811 | # CONFIG_S2IO is not set |
812 | CONFIG_VXGE=m | ||
813 | # CONFIG_VXGE_DEBUG_TRACE_ALL is not set | ||
599 | # CONFIG_MYRI10GE is not set | 814 | # CONFIG_MYRI10GE is not set |
600 | CONFIG_NETXEN_NIC=m | 815 | CONFIG_NETXEN_NIC=m |
601 | # CONFIG_MLX4_CORE is not set | 816 | CONFIG_NIU=m |
817 | CONFIG_MLX4_EN=m | ||
818 | CONFIG_MLX4_CORE=m | ||
819 | # CONFIG_MLX4_DEBUG is not set | ||
820 | CONFIG_TEHUTI=m | ||
821 | CONFIG_BNX2X=m | ||
822 | CONFIG_QLGE=m | ||
823 | CONFIG_SFC=m | ||
824 | CONFIG_BE2NET=m | ||
602 | # CONFIG_TR is not set | 825 | # CONFIG_TR is not set |
603 | 826 | CONFIG_WLAN=y | |
604 | # | 827 | CONFIG_LIBERTAS_THINFIRM=m |
605 | # Wireless LAN | 828 | CONFIG_ATMEL=m |
606 | # | 829 | CONFIG_PCI_ATMEL=m |
607 | # CONFIG_WLAN_PRE80211 is not set | 830 | CONFIG_PRISM54=m |
608 | CONFIG_WLAN_80211=y | 831 | CONFIG_RTL8180=m |
832 | CONFIG_ADM8211=m | ||
833 | # CONFIG_MAC80211_HWSIM is not set | ||
834 | CONFIG_MWL8K=m | ||
835 | CONFIG_ATH_COMMON=m | ||
836 | # CONFIG_ATH_DEBUG is not set | ||
837 | CONFIG_ATH5K=m | ||
838 | # CONFIG_ATH5K_DEBUG is not set | ||
839 | CONFIG_ATH9K_HW=m | ||
840 | CONFIG_ATH9K_COMMON=m | ||
841 | CONFIG_ATH9K=m | ||
842 | CONFIG_B43=m | ||
843 | CONFIG_B43_PCI_AUTOSELECT=y | ||
844 | CONFIG_B43_PCICORE_AUTOSELECT=y | ||
845 | CONFIG_B43_PHY_LP=y | ||
846 | CONFIG_B43_LEDS=y | ||
847 | CONFIG_B43_HWRNG=y | ||
848 | # CONFIG_B43_DEBUG is not set | ||
849 | CONFIG_B43LEGACY=m | ||
850 | CONFIG_B43LEGACY_PCI_AUTOSELECT=y | ||
851 | CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y | ||
852 | CONFIG_B43LEGACY_LEDS=y | ||
853 | CONFIG_B43LEGACY_HWRNG=y | ||
854 | # CONFIG_B43LEGACY_DEBUG is not set | ||
855 | CONFIG_B43LEGACY_DMA=y | ||
856 | CONFIG_B43LEGACY_PIO=y | ||
857 | CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y | ||
858 | # CONFIG_B43LEGACY_DMA_MODE is not set | ||
859 | # CONFIG_B43LEGACY_PIO_MODE is not set | ||
860 | CONFIG_HOSTAP=m | ||
861 | CONFIG_HOSTAP_FIRMWARE=y | ||
862 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y | ||
863 | CONFIG_HOSTAP_PLX=m | ||
864 | CONFIG_HOSTAP_PCI=m | ||
609 | CONFIG_IPW2100=m | 865 | CONFIG_IPW2100=m |
610 | CONFIG_IPW2100_MONITOR=y | 866 | CONFIG_IPW2100_MONITOR=y |
611 | CONFIG_IPW2100_DEBUG=y | 867 | CONFIG_IPW2100_DEBUG=y |
@@ -615,38 +871,57 @@ CONFIG_IPW2200_RADIOTAP=y | |||
615 | CONFIG_IPW2200_PROMISCUOUS=y | 871 | CONFIG_IPW2200_PROMISCUOUS=y |
616 | CONFIG_IPW2200_QOS=y | 872 | CONFIG_IPW2200_QOS=y |
617 | CONFIG_IPW2200_DEBUG=y | 873 | CONFIG_IPW2200_DEBUG=y |
874 | CONFIG_LIBIPW=m | ||
875 | # CONFIG_LIBIPW_DEBUG is not set | ||
876 | CONFIG_IWLWIFI=m | ||
877 | CONFIG_IWLWIFI_SPECTRUM_MEASUREMENT=y | ||
878 | # CONFIG_IWLWIFI_DEBUG is not set | ||
879 | CONFIG_IWLAGN=m | ||
880 | CONFIG_IWL4965=y | ||
881 | CONFIG_IWL5000=y | ||
882 | CONFIG_IWL3945=m | ||
883 | CONFIG_IWL3945_SPECTRUM_MEASUREMENT=y | ||
618 | CONFIG_LIBERTAS=m | 884 | CONFIG_LIBERTAS=m |
619 | # CONFIG_LIBERTAS_DEBUG is not set | 885 | # CONFIG_LIBERTAS_DEBUG is not set |
620 | CONFIG_HERMES=m | 886 | CONFIG_HERMES=m |
887 | # CONFIG_HERMES_CACHE_FW_ON_INIT is not set | ||
621 | CONFIG_PLX_HERMES=m | 888 | CONFIG_PLX_HERMES=m |
622 | CONFIG_TMD_HERMES=m | 889 | CONFIG_TMD_HERMES=m |
623 | CONFIG_NORTEL_HERMES=m | 890 | CONFIG_NORTEL_HERMES=m |
624 | CONFIG_PCI_HERMES=m | 891 | CONFIG_PCI_HERMES=m |
625 | CONFIG_ATMEL=m | 892 | CONFIG_P54_COMMON=m |
626 | CONFIG_PCI_ATMEL=m | 893 | CONFIG_P54_PCI=m |
627 | CONFIG_PRISM54=m | 894 | CONFIG_P54_LEDS=y |
628 | CONFIG_HOSTAP=m | 895 | CONFIG_RT2X00=m |
629 | CONFIG_HOSTAP_FIRMWARE=y | 896 | CONFIG_RT2400PCI=m |
630 | CONFIG_HOSTAP_FIRMWARE_NVRAM=y | 897 | CONFIG_RT2500PCI=m |
631 | CONFIG_HOSTAP_PLX=m | 898 | CONFIG_RT61PCI=m |
632 | CONFIG_HOSTAP_PCI=m | 899 | CONFIG_RT2800PCI_PCI=m |
633 | CONFIG_BCM43XX=m | 900 | CONFIG_RT2800PCI=m |
634 | CONFIG_BCM43XX_DEBUG=y | 901 | CONFIG_RT2800_LIB=m |
635 | CONFIG_BCM43XX_DMA=y | 902 | CONFIG_RT2X00_LIB_PCI=m |
636 | CONFIG_BCM43XX_PIO=y | 903 | CONFIG_RT2X00_LIB=m |
637 | CONFIG_BCM43XX_DMA_AND_PIO_MODE=y | 904 | CONFIG_RT2X00_LIB_HT=y |
638 | # CONFIG_BCM43XX_DMA_MODE is not set | 905 | CONFIG_RT2X00_LIB_FIRMWARE=y |
639 | # CONFIG_BCM43XX_PIO_MODE is not set | 906 | CONFIG_RT2X00_LIB_CRYPTO=y |
907 | CONFIG_RT2X00_LIB_LEDS=y | ||
908 | # CONFIG_RT2X00_DEBUG is not set | ||
909 | CONFIG_WL12XX=m | ||
910 | CONFIG_WL1251=m | ||
911 | |||
912 | # | ||
913 | # Enable WiMAX (Networking options) to see the WiMAX drivers | ||
914 | # | ||
640 | # CONFIG_WAN is not set | 915 | # CONFIG_WAN is not set |
641 | # CONFIG_FDDI is not set | 916 | # CONFIG_FDDI is not set |
642 | # CONFIG_HIPPI is not set | 917 | # CONFIG_HIPPI is not set |
643 | # CONFIG_PPP is not set | 918 | # CONFIG_PPP is not set |
644 | # CONFIG_SLIP is not set | 919 | # CONFIG_SLIP is not set |
645 | # CONFIG_NET_FC is not set | 920 | # CONFIG_NET_FC is not set |
646 | # CONFIG_SHAPER is not set | ||
647 | # CONFIG_NETCONSOLE is not set | 921 | # CONFIG_NETCONSOLE is not set |
648 | # CONFIG_NETPOLL is not set | 922 | # CONFIG_NETPOLL is not set |
649 | # CONFIG_NET_POLL_CONTROLLER is not set | 923 | # CONFIG_NET_POLL_CONTROLLER is not set |
924 | # CONFIG_VMXNET3 is not set | ||
650 | # CONFIG_ISDN is not set | 925 | # CONFIG_ISDN is not set |
651 | # CONFIG_PHONE is not set | 926 | # CONFIG_PHONE is not set |
652 | 927 | ||
@@ -664,13 +939,16 @@ CONFIG_SERIO_SERPORT=y | |||
664 | # CONFIG_SERIO_PCIPS2 is not set | 939 | # CONFIG_SERIO_PCIPS2 is not set |
665 | CONFIG_SERIO_LIBPS2=m | 940 | CONFIG_SERIO_LIBPS2=m |
666 | CONFIG_SERIO_RAW=m | 941 | CONFIG_SERIO_RAW=m |
942 | CONFIG_SERIO_ALTERA_PS2=m | ||
667 | # CONFIG_GAMEPORT is not set | 943 | # CONFIG_GAMEPORT is not set |
668 | 944 | ||
669 | # | 945 | # |
670 | # Character devices | 946 | # Character devices |
671 | # | 947 | # |
672 | # CONFIG_VT is not set | 948 | # CONFIG_VT is not set |
949 | CONFIG_DEVKMEM=y | ||
673 | # CONFIG_SERIAL_NONSTANDARD is not set | 950 | # CONFIG_SERIAL_NONSTANDARD is not set |
951 | CONFIG_NOZOMI=m | ||
674 | 952 | ||
675 | # | 953 | # |
676 | # Serial drivers | 954 | # Serial drivers |
@@ -693,95 +971,258 @@ CONFIG_SERIAL_CORE=y | |||
693 | CONFIG_SERIAL_CORE_CONSOLE=y | 971 | CONFIG_SERIAL_CORE_CONSOLE=y |
694 | # CONFIG_SERIAL_JSM is not set | 972 | # CONFIG_SERIAL_JSM is not set |
695 | CONFIG_UNIX98_PTYS=y | 973 | CONFIG_UNIX98_PTYS=y |
974 | CONFIG_DEVPTS_MULTIPLE_INSTANCES=y | ||
696 | CONFIG_LEGACY_PTYS=y | 975 | CONFIG_LEGACY_PTYS=y |
697 | CONFIG_LEGACY_PTY_COUNT=256 | 976 | CONFIG_LEGACY_PTY_COUNT=256 |
698 | # CONFIG_IPMI_HANDLER is not set | 977 | # CONFIG_IPMI_HANDLER is not set |
699 | # CONFIG_WATCHDOG is not set | ||
700 | CONFIG_HW_RANDOM=m | 978 | CONFIG_HW_RANDOM=m |
701 | # CONFIG_RTC is not set | 979 | CONFIG_HW_RANDOM_TIMERIOMEM=m |
702 | # CONFIG_R3964 is not set | 980 | # CONFIG_R3964 is not set |
703 | # CONFIG_APPLICOM is not set | 981 | # CONFIG_APPLICOM is not set |
704 | # CONFIG_DRM is not set | ||
705 | # CONFIG_RAW_DRIVER is not set | 982 | # CONFIG_RAW_DRIVER is not set |
706 | # CONFIG_TCG_TPM is not set | 983 | # CONFIG_TCG_TPM is not set |
707 | CONFIG_DEVPORT=y | 984 | CONFIG_DEVPORT=y |
708 | # CONFIG_I2C is not set | 985 | CONFIG_I2C=m |
986 | CONFIG_I2C_BOARDINFO=y | ||
987 | CONFIG_I2C_COMPAT=y | ||
988 | CONFIG_I2C_CHARDEV=m | ||
989 | CONFIG_I2C_HELPER_AUTO=y | ||
990 | CONFIG_I2C_ALGOBIT=m | ||
991 | CONFIG_I2C_ALGOPCA=m | ||
992 | |||
993 | # | ||
994 | # I2C Hardware Bus support | ||
995 | # | ||
996 | |||
997 | # | ||
998 | # PC SMBus host controller drivers | ||
999 | # | ||
1000 | CONFIG_I2C_ALI1535=m | ||
1001 | CONFIG_I2C_ALI1563=m | ||
1002 | CONFIG_I2C_ALI15X3=m | ||
1003 | CONFIG_I2C_AMD756=m | ||
1004 | CONFIG_I2C_AMD8111=m | ||
1005 | CONFIG_I2C_I801=m | ||
1006 | CONFIG_I2C_ISCH=m | ||
1007 | CONFIG_I2C_PIIX4=m | ||
1008 | CONFIG_I2C_NFORCE2=m | ||
1009 | CONFIG_I2C_SIS5595=m | ||
1010 | CONFIG_I2C_SIS630=m | ||
1011 | CONFIG_I2C_SIS96X=m | ||
1012 | CONFIG_I2C_VIA=m | ||
1013 | CONFIG_I2C_VIAPRO=m | ||
709 | 1014 | ||
710 | # | 1015 | # |
711 | # SPI support | 1016 | # I2C system bus drivers (mostly embedded / system-on-chip) |
712 | # | 1017 | # |
1018 | CONFIG_I2C_OCORES=m | ||
1019 | CONFIG_I2C_SIMTEC=m | ||
1020 | |||
1021 | # | ||
1022 | # External I2C/SMBus adapter drivers | ||
1023 | # | ||
1024 | CONFIG_I2C_PARPORT_LIGHT=m | ||
1025 | CONFIG_I2C_TAOS_EVM=m | ||
1026 | |||
1027 | # | ||
1028 | # Other I2C/SMBus bus drivers | ||
1029 | # | ||
1030 | CONFIG_I2C_PCA_PLATFORM=m | ||
1031 | CONFIG_I2C_STUB=m | ||
1032 | |||
1033 | # | ||
1034 | # Miscellaneous I2C Chip support | ||
1035 | # | ||
1036 | CONFIG_SENSORS_TSL2550=m | ||
1037 | # CONFIG_I2C_DEBUG_CORE is not set | ||
1038 | # CONFIG_I2C_DEBUG_ALGO is not set | ||
1039 | # CONFIG_I2C_DEBUG_BUS is not set | ||
1040 | # CONFIG_I2C_DEBUG_CHIP is not set | ||
713 | # CONFIG_SPI is not set | 1041 | # CONFIG_SPI is not set |
714 | # CONFIG_SPI_MASTER is not set | 1042 | |
1043 | # | ||
1044 | # PPS support | ||
1045 | # | ||
1046 | CONFIG_PPS=m | ||
1047 | # CONFIG_PPS_DEBUG is not set | ||
715 | # CONFIG_W1 is not set | 1048 | # CONFIG_W1 is not set |
716 | # CONFIG_POWER_SUPPLY is not set | 1049 | # CONFIG_POWER_SUPPLY is not set |
717 | # CONFIG_HWMON is not set | 1050 | # CONFIG_HWMON is not set |
1051 | CONFIG_THERMAL=m | ||
1052 | # CONFIG_WATCHDOG is not set | ||
1053 | CONFIG_SSB_POSSIBLE=y | ||
718 | 1054 | ||
719 | # | 1055 | # |
720 | # Multifunction device drivers | 1056 | # Sonics Silicon Backplane |
721 | # | 1057 | # |
722 | # CONFIG_MFD_SM501 is not set | 1058 | CONFIG_SSB=m |
1059 | CONFIG_SSB_SPROM=y | ||
1060 | CONFIG_SSB_PCIHOST_POSSIBLE=y | ||
1061 | CONFIG_SSB_PCIHOST=y | ||
1062 | CONFIG_SSB_B43_PCI_BRIDGE=y | ||
1063 | # CONFIG_SSB_SILENT is not set | ||
1064 | # CONFIG_SSB_DEBUG is not set | ||
1065 | CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y | ||
1066 | CONFIG_SSB_DRIVER_PCICORE=y | ||
1067 | # CONFIG_SSB_DRIVER_MIPS is not set | ||
723 | 1068 | ||
724 | # | 1069 | # |
725 | # Multimedia devices | 1070 | # Multifunction device drivers |
726 | # | 1071 | # |
727 | # CONFIG_VIDEO_DEV is not set | 1072 | # CONFIG_MFD_CORE is not set |
728 | # CONFIG_DVB_CORE is not set | 1073 | # CONFIG_MFD_SM501 is not set |
729 | # CONFIG_DAB is not set | 1074 | # CONFIG_HTC_PASIC3 is not set |
1075 | # CONFIG_MFD_TMIO is not set | ||
1076 | # CONFIG_MFD_WM8400 is not set | ||
1077 | CONFIG_MFD_WM8350=m | ||
1078 | CONFIG_MFD_WM8350_I2C=m | ||
1079 | CONFIG_MFD_PCF50633=m | ||
1080 | CONFIG_PCF50633_ADC=m | ||
1081 | CONFIG_PCF50633_GPIO=m | ||
1082 | CONFIG_AB3100_CORE=m | ||
1083 | CONFIG_AB3100_OTP=m | ||
1084 | # CONFIG_REGULATOR is not set | ||
1085 | # CONFIG_MEDIA_SUPPORT is not set | ||
730 | 1086 | ||
731 | # | 1087 | # |
732 | # Graphics support | 1088 | # Graphics support |
733 | # | 1089 | # |
734 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1090 | # CONFIG_VGA_ARB is not set |
735 | 1091 | # CONFIG_DRM is not set | |
736 | # | ||
737 | # Display device support | ||
738 | # | ||
739 | # CONFIG_DISPLAY_SUPPORT is not set | ||
740 | # CONFIG_VGASTATE is not set | 1092 | # CONFIG_VGASTATE is not set |
741 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 1093 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
742 | # CONFIG_FB is not set | 1094 | # CONFIG_FB is not set |
1095 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | ||
743 | 1096 | ||
744 | # | 1097 | # |
745 | # Sound | 1098 | # Display device support |
746 | # | 1099 | # |
1100 | # CONFIG_DISPLAY_SUPPORT is not set | ||
747 | # CONFIG_SOUND is not set | 1101 | # CONFIG_SOUND is not set |
748 | CONFIG_USB_SUPPORT=y | 1102 | CONFIG_USB_SUPPORT=y |
749 | CONFIG_USB_ARCH_HAS_HCD=y | 1103 | CONFIG_USB_ARCH_HAS_HCD=y |
750 | CONFIG_USB_ARCH_HAS_OHCI=y | 1104 | CONFIG_USB_ARCH_HAS_OHCI=y |
751 | CONFIG_USB_ARCH_HAS_EHCI=y | 1105 | CONFIG_USB_ARCH_HAS_EHCI=y |
752 | # CONFIG_USB is not set | 1106 | # CONFIG_USB is not set |
1107 | # CONFIG_USB_OTG_WHITELIST is not set | ||
1108 | # CONFIG_USB_OTG_BLACKLIST_HUB is not set | ||
753 | 1109 | ||
754 | # | 1110 | # |
755 | # NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' | 1111 | # Enable Host or Gadget support to see Inventra options |
756 | # | 1112 | # |
757 | 1113 | ||
758 | # | 1114 | # |
759 | # USB Gadget Support | 1115 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
760 | # | 1116 | # |
761 | # CONFIG_USB_GADGET is not set | 1117 | # CONFIG_USB_GADGET is not set |
1118 | |||
1119 | # | ||
1120 | # OTG and related infrastructure | ||
1121 | # | ||
1122 | # CONFIG_UWB is not set | ||
762 | # CONFIG_MMC is not set | 1123 | # CONFIG_MMC is not set |
763 | # CONFIG_NEW_LEDS is not set | 1124 | # CONFIG_MEMSTICK is not set |
764 | # CONFIG_INFINIBAND is not set | 1125 | CONFIG_NEW_LEDS=y |
765 | # CONFIG_RTC_CLASS is not set | 1126 | CONFIG_LEDS_CLASS=m |
1127 | |||
1128 | # | ||
1129 | # LED drivers | ||
1130 | # | ||
1131 | CONFIG_LEDS_LP3944=m | ||
1132 | CONFIG_LEDS_PCA955X=m | ||
1133 | CONFIG_LEDS_WM8350=m | ||
1134 | CONFIG_LEDS_BD2802=m | ||
1135 | |||
1136 | # | ||
1137 | # LED Triggers | ||
1138 | # | ||
1139 | CONFIG_LEDS_TRIGGERS=y | ||
1140 | CONFIG_LEDS_TRIGGER_TIMER=m | ||
1141 | CONFIG_LEDS_TRIGGER_HEARTBEAT=m | ||
1142 | CONFIG_LEDS_TRIGGER_BACKLIGHT=m | ||
1143 | CONFIG_LEDS_TRIGGER_DEFAULT_ON=m | ||
766 | 1144 | ||
767 | # | 1145 | # |
768 | # DMA Engine support | 1146 | # iptables trigger is under Netfilter config (LED target) |
769 | # | 1147 | # |
770 | # CONFIG_DMA_ENGINE is not set | 1148 | # CONFIG_ACCESSIBILITY is not set |
1149 | # CONFIG_INFINIBAND is not set | ||
1150 | CONFIG_RTC_LIB=y | ||
1151 | CONFIG_RTC_CLASS=y | ||
1152 | CONFIG_RTC_HCTOSYS=y | ||
1153 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | ||
1154 | # CONFIG_RTC_DEBUG is not set | ||
771 | 1155 | ||
772 | # | 1156 | # |
773 | # DMA Clients | 1157 | # RTC interfaces |
774 | # | 1158 | # |
1159 | CONFIG_RTC_INTF_SYSFS=y | ||
1160 | CONFIG_RTC_INTF_PROC=y | ||
1161 | CONFIG_RTC_INTF_DEV=y | ||
1162 | # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set | ||
1163 | # CONFIG_RTC_DRV_TEST is not set | ||
775 | 1164 | ||
776 | # | 1165 | # |
777 | # DMA Devices | 1166 | # I2C RTC drivers |
1167 | # | ||
1168 | # CONFIG_RTC_DRV_DS1307 is not set | ||
1169 | # CONFIG_RTC_DRV_DS1374 is not set | ||
1170 | # CONFIG_RTC_DRV_DS1672 is not set | ||
1171 | # CONFIG_RTC_DRV_MAX6900 is not set | ||
1172 | # CONFIG_RTC_DRV_RS5C372 is not set | ||
1173 | # CONFIG_RTC_DRV_ISL1208 is not set | ||
1174 | # CONFIG_RTC_DRV_X1205 is not set | ||
1175 | # CONFIG_RTC_DRV_PCF8563 is not set | ||
1176 | # CONFIG_RTC_DRV_PCF8583 is not set | ||
1177 | # CONFIG_RTC_DRV_M41T80 is not set | ||
1178 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1179 | # CONFIG_RTC_DRV_S35390A is not set | ||
1180 | # CONFIG_RTC_DRV_FM3130 is not set | ||
1181 | # CONFIG_RTC_DRV_RX8581 is not set | ||
1182 | # CONFIG_RTC_DRV_RX8025 is not set | ||
1183 | |||
1184 | # | ||
1185 | # SPI RTC drivers | ||
1186 | # | ||
1187 | |||
778 | # | 1188 | # |
1189 | # Platform RTC drivers | ||
1190 | # | ||
1191 | # CONFIG_RTC_DRV_CMOS is not set | ||
1192 | # CONFIG_RTC_DRV_DS1286 is not set | ||
1193 | # CONFIG_RTC_DRV_DS1511 is not set | ||
1194 | # CONFIG_RTC_DRV_DS1553 is not set | ||
1195 | # CONFIG_RTC_DRV_DS1742 is not set | ||
1196 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1197 | # CONFIG_RTC_DRV_M48T86 is not set | ||
1198 | CONFIG_RTC_DRV_M48T35=y | ||
1199 | # CONFIG_RTC_DRV_M48T59 is not set | ||
1200 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1201 | # CONFIG_RTC_DRV_BQ4802 is not set | ||
1202 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1203 | # CONFIG_RTC_DRV_V3020 is not set | ||
1204 | # CONFIG_RTC_DRV_WM8350 is not set | ||
1205 | # CONFIG_RTC_DRV_PCF50633 is not set | ||
1206 | CONFIG_RTC_DRV_AB3100=m | ||
779 | 1207 | ||
780 | # | 1208 | # |
781 | # Userspace I/O | 1209 | # on-CPU RTC drivers |
782 | # | 1210 | # |
1211 | # CONFIG_DMADEVICES is not set | ||
1212 | # CONFIG_AUXDISPLAY is not set | ||
783 | CONFIG_UIO=y | 1213 | CONFIG_UIO=y |
784 | # CONFIG_UIO_CIF is not set | 1214 | # CONFIG_UIO_CIF is not set |
1215 | # CONFIG_UIO_PDRV is not set | ||
1216 | # CONFIG_UIO_PDRV_GENIRQ is not set | ||
1217 | CONFIG_UIO_SMX=m | ||
1218 | CONFIG_UIO_AEC=m | ||
1219 | CONFIG_UIO_SERCOS3=m | ||
1220 | CONFIG_UIO_PCI_GENERIC=m | ||
1221 | |||
1222 | # | ||
1223 | # TI VLYNQ | ||
1224 | # | ||
1225 | # CONFIG_STAGING is not set | ||
785 | 1226 | ||
786 | # | 1227 | # |
787 | # File systems | 1228 | # File systems |
@@ -792,36 +1233,58 @@ CONFIG_EXT2_FS_POSIX_ACL=y | |||
792 | CONFIG_EXT2_FS_SECURITY=y | 1233 | CONFIG_EXT2_FS_SECURITY=y |
793 | # CONFIG_EXT2_FS_XIP is not set | 1234 | # CONFIG_EXT2_FS_XIP is not set |
794 | CONFIG_EXT3_FS=y | 1235 | CONFIG_EXT3_FS=y |
1236 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
795 | CONFIG_EXT3_FS_XATTR=y | 1237 | CONFIG_EXT3_FS_XATTR=y |
796 | CONFIG_EXT3_FS_POSIX_ACL=y | 1238 | CONFIG_EXT3_FS_POSIX_ACL=y |
797 | CONFIG_EXT3_FS_SECURITY=y | 1239 | CONFIG_EXT3_FS_SECURITY=y |
798 | # CONFIG_EXT4DEV_FS is not set | 1240 | CONFIG_EXT4_FS=y |
1241 | CONFIG_EXT4_FS_XATTR=y | ||
1242 | CONFIG_EXT4_FS_POSIX_ACL=y | ||
1243 | CONFIG_EXT4_FS_SECURITY=y | ||
1244 | # CONFIG_EXT4_DEBUG is not set | ||
799 | CONFIG_JBD=y | 1245 | CONFIG_JBD=y |
800 | CONFIG_JBD_DEBUG=y | 1246 | CONFIG_JBD2=y |
801 | CONFIG_FS_MBCACHE=y | 1247 | CONFIG_FS_MBCACHE=y |
802 | # CONFIG_REISERFS_FS is not set | 1248 | # CONFIG_REISERFS_FS is not set |
803 | # CONFIG_JFS_FS is not set | 1249 | # CONFIG_JFS_FS is not set |
804 | CONFIG_FS_POSIX_ACL=y | 1250 | CONFIG_FS_POSIX_ACL=y |
805 | CONFIG_XFS_FS=m | 1251 | CONFIG_XFS_FS=m |
806 | CONFIG_XFS_QUOTA=y | 1252 | CONFIG_XFS_QUOTA=y |
807 | CONFIG_XFS_SECURITY=y | ||
808 | CONFIG_XFS_POSIX_ACL=y | 1253 | CONFIG_XFS_POSIX_ACL=y |
809 | # CONFIG_XFS_RT is not set | 1254 | # CONFIG_XFS_RT is not set |
1255 | # CONFIG_XFS_DEBUG is not set | ||
810 | # CONFIG_GFS2_FS is not set | 1256 | # CONFIG_GFS2_FS is not set |
811 | # CONFIG_OCFS2_FS is not set | 1257 | # CONFIG_OCFS2_FS is not set |
812 | # CONFIG_MINIX_FS is not set | 1258 | CONFIG_BTRFS_FS=m |
813 | # CONFIG_ROMFS_FS is not set | 1259 | CONFIG_BTRFS_FS_POSIX_ACL=y |
1260 | # CONFIG_NILFS2_FS is not set | ||
1261 | CONFIG_FILE_LOCKING=y | ||
1262 | CONFIG_FSNOTIFY=y | ||
1263 | CONFIG_DNOTIFY=y | ||
814 | CONFIG_INOTIFY=y | 1264 | CONFIG_INOTIFY=y |
815 | CONFIG_INOTIFY_USER=y | 1265 | CONFIG_INOTIFY_USER=y |
816 | # CONFIG_QUOTA is not set | 1266 | # CONFIG_QUOTA is not set |
1267 | CONFIG_QUOTA_NETLINK_INTERFACE=y | ||
817 | CONFIG_QUOTACTL=y | 1268 | CONFIG_QUOTACTL=y |
818 | CONFIG_DNOTIFY=y | ||
819 | CONFIG_AUTOFS_FS=m | 1269 | CONFIG_AUTOFS_FS=m |
820 | # CONFIG_AUTOFS4_FS is not set | 1270 | # CONFIG_AUTOFS4_FS is not set |
821 | CONFIG_FUSE_FS=m | 1271 | CONFIG_FUSE_FS=m |
1272 | CONFIG_CUSE=m | ||
822 | CONFIG_GENERIC_ACL=y | 1273 | CONFIG_GENERIC_ACL=y |
823 | 1274 | ||
824 | # | 1275 | # |
1276 | # Caches | ||
1277 | # | ||
1278 | CONFIG_FSCACHE=m | ||
1279 | CONFIG_FSCACHE_STATS=y | ||
1280 | # CONFIG_FSCACHE_HISTOGRAM is not set | ||
1281 | # CONFIG_FSCACHE_DEBUG is not set | ||
1282 | # CONFIG_FSCACHE_OBJECT_LIST is not set | ||
1283 | CONFIG_CACHEFILES=m | ||
1284 | # CONFIG_CACHEFILES_DEBUG is not set | ||
1285 | # CONFIG_CACHEFILES_HISTOGRAM is not set | ||
1286 | |||
1287 | # | ||
825 | # CD-ROM/DVD Filesystems | 1288 | # CD-ROM/DVD Filesystems |
826 | # | 1289 | # |
827 | # CONFIG_ISO9660_FS is not set | 1290 | # CONFIG_ISO9660_FS is not set |
@@ -840,16 +1303,13 @@ CONFIG_GENERIC_ACL=y | |||
840 | CONFIG_PROC_FS=y | 1303 | CONFIG_PROC_FS=y |
841 | CONFIG_PROC_KCORE=y | 1304 | CONFIG_PROC_KCORE=y |
842 | CONFIG_PROC_SYSCTL=y | 1305 | CONFIG_PROC_SYSCTL=y |
1306 | CONFIG_PROC_PAGE_MONITOR=y | ||
843 | CONFIG_SYSFS=y | 1307 | CONFIG_SYSFS=y |
844 | CONFIG_TMPFS=y | 1308 | CONFIG_TMPFS=y |
845 | CONFIG_TMPFS_POSIX_ACL=y | 1309 | CONFIG_TMPFS_POSIX_ACL=y |
846 | # CONFIG_HUGETLB_PAGE is not set | 1310 | # CONFIG_HUGETLB_PAGE is not set |
847 | CONFIG_RAMFS=y | ||
848 | CONFIG_CONFIGFS_FS=m | 1311 | CONFIG_CONFIGFS_FS=m |
849 | 1312 | CONFIG_MISC_FILESYSTEMS=y | |
850 | # | ||
851 | # Miscellaneous filesystems | ||
852 | # | ||
853 | # CONFIG_ADFS_FS is not set | 1313 | # CONFIG_ADFS_FS is not set |
854 | # CONFIG_AFFS_FS is not set | 1314 | # CONFIG_AFFS_FS is not set |
855 | # CONFIG_ECRYPT_FS is not set | 1315 | # CONFIG_ECRYPT_FS is not set |
@@ -859,28 +1319,32 @@ CONFIG_CONFIGFS_FS=m | |||
859 | # CONFIG_BFS_FS is not set | 1319 | # CONFIG_BFS_FS is not set |
860 | # CONFIG_EFS_FS is not set | 1320 | # CONFIG_EFS_FS is not set |
861 | # CONFIG_CRAMFS is not set | 1321 | # CONFIG_CRAMFS is not set |
1322 | CONFIG_SQUASHFS=m | ||
1323 | # CONFIG_SQUASHFS_EMBEDDED is not set | ||
1324 | CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 | ||
862 | # CONFIG_VXFS_FS is not set | 1325 | # CONFIG_VXFS_FS is not set |
1326 | # CONFIG_MINIX_FS is not set | ||
1327 | CONFIG_OMFS_FS=m | ||
863 | # CONFIG_HPFS_FS is not set | 1328 | # CONFIG_HPFS_FS is not set |
864 | # CONFIG_QNX4FS_FS is not set | 1329 | # CONFIG_QNX4FS_FS is not set |
1330 | # CONFIG_ROMFS_FS is not set | ||
865 | # CONFIG_SYSV_FS is not set | 1331 | # CONFIG_SYSV_FS is not set |
866 | # CONFIG_UFS_FS is not set | 1332 | # CONFIG_UFS_FS is not set |
867 | 1333 | CONFIG_EXOFS_FS=m | |
868 | # | 1334 | # CONFIG_EXOFS_DEBUG is not set |
869 | # Network File Systems | 1335 | CONFIG_NETWORK_FILESYSTEMS=y |
870 | # | ||
871 | CONFIG_NFS_FS=y | 1336 | CONFIG_NFS_FS=y |
872 | CONFIG_NFS_V3=y | 1337 | CONFIG_NFS_V3=y |
873 | # CONFIG_NFS_V3_ACL is not set | 1338 | # CONFIG_NFS_V3_ACL is not set |
874 | # CONFIG_NFS_V4 is not set | 1339 | # CONFIG_NFS_V4 is not set |
875 | # CONFIG_NFS_DIRECTIO is not set | ||
876 | # CONFIG_NFSD is not set | ||
877 | # CONFIG_ROOT_NFS is not set | 1340 | # CONFIG_ROOT_NFS is not set |
1341 | # CONFIG_NFSD is not set | ||
878 | CONFIG_LOCKD=y | 1342 | CONFIG_LOCKD=y |
879 | CONFIG_LOCKD_V4=y | 1343 | CONFIG_LOCKD_V4=y |
1344 | CONFIG_EXPORTFS=m | ||
880 | CONFIG_NFS_COMMON=y | 1345 | CONFIG_NFS_COMMON=y |
881 | CONFIG_SUNRPC=y | 1346 | CONFIG_SUNRPC=y |
882 | CONFIG_SUNRPC_GSS=y | 1347 | CONFIG_SUNRPC_GSS=y |
883 | # CONFIG_SUNRPC_BIND34 is not set | ||
884 | CONFIG_RPCSEC_GSS_KRB5=y | 1348 | CONFIG_RPCSEC_GSS_KRB5=y |
885 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1349 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
886 | # CONFIG_SMB_FS is not set | 1350 | # CONFIG_SMB_FS is not set |
@@ -910,35 +1374,37 @@ CONFIG_SGI_PARTITION=y | |||
910 | # CONFIG_KARMA_PARTITION is not set | 1374 | # CONFIG_KARMA_PARTITION is not set |
911 | # CONFIG_EFI_PARTITION is not set | 1375 | # CONFIG_EFI_PARTITION is not set |
912 | # CONFIG_SYSV68_PARTITION is not set | 1376 | # CONFIG_SYSV68_PARTITION is not set |
913 | |||
914 | # | ||
915 | # Native Language Support | ||
916 | # | ||
917 | # CONFIG_NLS is not set | 1377 | # CONFIG_NLS is not set |
918 | |||
919 | # | ||
920 | # Distributed Lock Manager | ||
921 | # | ||
922 | CONFIG_DLM=m | 1378 | CONFIG_DLM=m |
923 | # CONFIG_DLM_DEBUG is not set | 1379 | # CONFIG_DLM_DEBUG is not set |
924 | 1380 | ||
925 | # | 1381 | # |
926 | # Profiling support | ||
927 | # | ||
928 | # CONFIG_PROFILING is not set | ||
929 | |||
930 | # | ||
931 | # Kernel hacking | 1382 | # Kernel hacking |
932 | # | 1383 | # |
933 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 1384 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
934 | # CONFIG_PRINTK_TIME is not set | 1385 | # CONFIG_PRINTK_TIME is not set |
1386 | CONFIG_ENABLE_WARN_DEPRECATED=y | ||
935 | CONFIG_ENABLE_MUST_CHECK=y | 1387 | CONFIG_ENABLE_MUST_CHECK=y |
1388 | CONFIG_FRAME_WARN=2048 | ||
936 | # CONFIG_MAGIC_SYSRQ is not set | 1389 | # CONFIG_MAGIC_SYSRQ is not set |
1390 | # CONFIG_STRIP_ASM_SYMS is not set | ||
937 | # CONFIG_UNUSED_SYMBOLS is not set | 1391 | # CONFIG_UNUSED_SYMBOLS is not set |
938 | # CONFIG_DEBUG_FS is not set | 1392 | # CONFIG_DEBUG_FS is not set |
939 | # CONFIG_HEADERS_CHECK is not set | 1393 | # CONFIG_HEADERS_CHECK is not set |
940 | # CONFIG_DEBUG_KERNEL is not set | 1394 | # CONFIG_DEBUG_KERNEL is not set |
941 | CONFIG_CROSSCOMPILE=y | 1395 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1396 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | ||
1397 | # CONFIG_SYSCTL_SYSCALL_CHECK is not set | ||
1398 | CONFIG_HAVE_FUNCTION_TRACER=y | ||
1399 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1400 | CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y | ||
1401 | CONFIG_HAVE_DYNAMIC_FTRACE=y | ||
1402 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | ||
1403 | CONFIG_TRACING_SUPPORT=y | ||
1404 | # CONFIG_FTRACE is not set | ||
1405 | # CONFIG_SAMPLES is not set | ||
1406 | CONFIG_HAVE_ARCH_KGDB=y | ||
1407 | CONFIG_EARLY_PRINTK=y | ||
942 | # CONFIG_CMDLINE_BOOL is not set | 1408 | # CONFIG_CMDLINE_BOOL is not set |
943 | 1409 | ||
944 | # | 1410 | # |
@@ -947,65 +1413,140 @@ CONFIG_CROSSCOMPILE=y | |||
947 | CONFIG_KEYS=y | 1413 | CONFIG_KEYS=y |
948 | CONFIG_KEYS_DEBUG_PROC_KEYS=y | 1414 | CONFIG_KEYS_DEBUG_PROC_KEYS=y |
949 | # CONFIG_SECURITY is not set | 1415 | # CONFIG_SECURITY is not set |
950 | CONFIG_XOR_BLOCKS=m | 1416 | CONFIG_SECURITYFS=y |
951 | CONFIG_ASYNC_CORE=m | 1417 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
952 | CONFIG_ASYNC_MEMCPY=m | 1418 | # CONFIG_DEFAULT_SECURITY_SMACK is not set |
953 | CONFIG_ASYNC_XOR=m | 1419 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set |
1420 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1421 | CONFIG_DEFAULT_SECURITY="" | ||
1422 | CONFIG_XOR_BLOCKS=y | ||
1423 | CONFIG_ASYNC_CORE=y | ||
1424 | CONFIG_ASYNC_MEMCPY=y | ||
1425 | CONFIG_ASYNC_XOR=y | ||
1426 | CONFIG_ASYNC_PQ=y | ||
1427 | CONFIG_ASYNC_RAID6_RECOV=y | ||
954 | CONFIG_CRYPTO=y | 1428 | CONFIG_CRYPTO=y |
1429 | |||
1430 | # | ||
1431 | # Crypto core or helper | ||
1432 | # | ||
1433 | CONFIG_CRYPTO_FIPS=y | ||
955 | CONFIG_CRYPTO_ALGAPI=y | 1434 | CONFIG_CRYPTO_ALGAPI=y |
956 | CONFIG_CRYPTO_ABLKCIPHER=m | 1435 | CONFIG_CRYPTO_ALGAPI2=y |
1436 | CONFIG_CRYPTO_AEAD=m | ||
1437 | CONFIG_CRYPTO_AEAD2=y | ||
957 | CONFIG_CRYPTO_BLKCIPHER=y | 1438 | CONFIG_CRYPTO_BLKCIPHER=y |
1439 | CONFIG_CRYPTO_BLKCIPHER2=y | ||
958 | CONFIG_CRYPTO_HASH=y | 1440 | CONFIG_CRYPTO_HASH=y |
1441 | CONFIG_CRYPTO_HASH2=y | ||
1442 | CONFIG_CRYPTO_RNG=m | ||
1443 | CONFIG_CRYPTO_RNG2=y | ||
1444 | CONFIG_CRYPTO_PCOMP=y | ||
959 | CONFIG_CRYPTO_MANAGER=y | 1445 | CONFIG_CRYPTO_MANAGER=y |
1446 | CONFIG_CRYPTO_MANAGER2=y | ||
1447 | CONFIG_CRYPTO_GF128MUL=m | ||
1448 | CONFIG_CRYPTO_NULL=m | ||
1449 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1450 | CONFIG_CRYPTO_CRYPTD=m | ||
1451 | CONFIG_CRYPTO_AUTHENC=m | ||
1452 | # CONFIG_CRYPTO_TEST is not set | ||
1453 | |||
1454 | # | ||
1455 | # Authenticated Encryption with Associated Data | ||
1456 | # | ||
1457 | CONFIG_CRYPTO_CCM=m | ||
1458 | CONFIG_CRYPTO_GCM=m | ||
1459 | CONFIG_CRYPTO_SEQIV=m | ||
1460 | |||
1461 | # | ||
1462 | # Block modes | ||
1463 | # | ||
1464 | CONFIG_CRYPTO_CBC=y | ||
1465 | CONFIG_CRYPTO_CTR=m | ||
1466 | CONFIG_CRYPTO_CTS=m | ||
1467 | CONFIG_CRYPTO_ECB=m | ||
1468 | CONFIG_CRYPTO_LRW=m | ||
1469 | CONFIG_CRYPTO_PCBC=m | ||
1470 | CONFIG_CRYPTO_XTS=m | ||
1471 | |||
1472 | # | ||
1473 | # Hash modes | ||
1474 | # | ||
960 | CONFIG_CRYPTO_HMAC=y | 1475 | CONFIG_CRYPTO_HMAC=y |
961 | CONFIG_CRYPTO_XCBC=m | 1476 | CONFIG_CRYPTO_XCBC=m |
962 | CONFIG_CRYPTO_NULL=m | 1477 | CONFIG_CRYPTO_VMAC=m |
1478 | |||
1479 | # | ||
1480 | # Digest | ||
1481 | # | ||
1482 | CONFIG_CRYPTO_CRC32C=m | ||
1483 | CONFIG_CRYPTO_GHASH=m | ||
963 | CONFIG_CRYPTO_MD4=m | 1484 | CONFIG_CRYPTO_MD4=m |
964 | CONFIG_CRYPTO_MD5=y | 1485 | CONFIG_CRYPTO_MD5=y |
1486 | CONFIG_CRYPTO_MICHAEL_MIC=m | ||
1487 | CONFIG_CRYPTO_RMD128=m | ||
1488 | CONFIG_CRYPTO_RMD160=m | ||
1489 | CONFIG_CRYPTO_RMD256=m | ||
1490 | CONFIG_CRYPTO_RMD320=m | ||
965 | CONFIG_CRYPTO_SHA1=m | 1491 | CONFIG_CRYPTO_SHA1=m |
966 | CONFIG_CRYPTO_SHA256=m | 1492 | CONFIG_CRYPTO_SHA256=m |
967 | CONFIG_CRYPTO_SHA512=m | 1493 | CONFIG_CRYPTO_SHA512=m |
968 | CONFIG_CRYPTO_WP512=m | ||
969 | CONFIG_CRYPTO_TGR192=m | 1494 | CONFIG_CRYPTO_TGR192=m |
970 | CONFIG_CRYPTO_GF128MUL=m | 1495 | CONFIG_CRYPTO_WP512=m |
971 | CONFIG_CRYPTO_ECB=m | 1496 | |
972 | CONFIG_CRYPTO_CBC=y | 1497 | # |
973 | CONFIG_CRYPTO_PCBC=m | 1498 | # Ciphers |
974 | CONFIG_CRYPTO_LRW=m | 1499 | # |
975 | CONFIG_CRYPTO_CRYPTD=m | ||
976 | CONFIG_CRYPTO_DES=y | ||
977 | CONFIG_CRYPTO_FCRYPT=m | ||
978 | CONFIG_CRYPTO_BLOWFISH=m | ||
979 | CONFIG_CRYPTO_TWOFISH=m | ||
980 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
981 | CONFIG_CRYPTO_SERPENT=m | ||
982 | CONFIG_CRYPTO_AES=m | 1500 | CONFIG_CRYPTO_AES=m |
1501 | CONFIG_CRYPTO_ANUBIS=m | ||
1502 | CONFIG_CRYPTO_ARC4=m | ||
1503 | CONFIG_CRYPTO_BLOWFISH=m | ||
1504 | CONFIG_CRYPTO_CAMELLIA=m | ||
983 | CONFIG_CRYPTO_CAST5=m | 1505 | CONFIG_CRYPTO_CAST5=m |
984 | CONFIG_CRYPTO_CAST6=m | 1506 | CONFIG_CRYPTO_CAST6=m |
985 | CONFIG_CRYPTO_TEA=m | 1507 | CONFIG_CRYPTO_DES=y |
986 | CONFIG_CRYPTO_ARC4=m | 1508 | CONFIG_CRYPTO_FCRYPT=m |
987 | CONFIG_CRYPTO_KHAZAD=m | 1509 | CONFIG_CRYPTO_KHAZAD=m |
988 | CONFIG_CRYPTO_ANUBIS=m | 1510 | CONFIG_CRYPTO_SALSA20=m |
1511 | CONFIG_CRYPTO_SEED=m | ||
1512 | CONFIG_CRYPTO_SERPENT=m | ||
1513 | CONFIG_CRYPTO_TEA=m | ||
1514 | CONFIG_CRYPTO_TWOFISH=m | ||
1515 | CONFIG_CRYPTO_TWOFISH_COMMON=m | ||
1516 | |||
1517 | # | ||
1518 | # Compression | ||
1519 | # | ||
989 | CONFIG_CRYPTO_DEFLATE=m | 1520 | CONFIG_CRYPTO_DEFLATE=m |
990 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1521 | CONFIG_CRYPTO_ZLIB=m |
991 | CONFIG_CRYPTO_CRC32C=m | 1522 | CONFIG_CRYPTO_LZO=m |
992 | CONFIG_CRYPTO_CAMELLIA=m | 1523 | |
993 | # CONFIG_CRYPTO_TEST is not set | 1524 | # |
1525 | # Random Number Generation | ||
1526 | # | ||
1527 | CONFIG_CRYPTO_ANSI_CPRNG=m | ||
994 | CONFIG_CRYPTO_HW=y | 1528 | CONFIG_CRYPTO_HW=y |
1529 | CONFIG_CRYPTO_DEV_HIFN_795X=m | ||
1530 | # CONFIG_CRYPTO_DEV_HIFN_795X_RNG is not set | ||
1531 | # CONFIG_BINARY_PRINTF is not set | ||
995 | 1532 | ||
996 | # | 1533 | # |
997 | # Library routines | 1534 | # Library routines |
998 | # | 1535 | # |
999 | CONFIG_BITREVERSE=y | 1536 | CONFIG_BITREVERSE=y |
1537 | CONFIG_GENERIC_FIND_LAST_BIT=y | ||
1000 | CONFIG_CRC_CCITT=m | 1538 | CONFIG_CRC_CCITT=m |
1001 | # CONFIG_CRC16 is not set | 1539 | CONFIG_CRC16=y |
1002 | # CONFIG_CRC_ITU_T is not set | 1540 | CONFIG_CRC_T10DIF=m |
1541 | CONFIG_CRC_ITU_T=m | ||
1003 | CONFIG_CRC32=y | 1542 | CONFIG_CRC32=y |
1004 | # CONFIG_CRC7 is not set | 1543 | CONFIG_CRC7=m |
1005 | CONFIG_LIBCRC32C=m | 1544 | CONFIG_LIBCRC32C=m |
1006 | CONFIG_ZLIB_INFLATE=m | 1545 | CONFIG_ZLIB_INFLATE=m |
1007 | CONFIG_ZLIB_DEFLATE=m | 1546 | CONFIG_ZLIB_DEFLATE=m |
1008 | CONFIG_PLIST=y | 1547 | CONFIG_LZO_COMPRESS=m |
1548 | CONFIG_LZO_DECOMPRESS=m | ||
1009 | CONFIG_HAS_IOMEM=y | 1549 | CONFIG_HAS_IOMEM=y |
1010 | CONFIG_HAS_IOPORT=y | 1550 | CONFIG_HAS_IOPORT=y |
1011 | CONFIG_HAS_DMA=y | 1551 | CONFIG_HAS_DMA=y |
1552 | CONFIG_NLATTR=y | ||
diff --git a/arch/mips/include/asm/cpu-features.h b/arch/mips/include/asm/cpu-features.h index 1f4df647c384..272c5ef35bbb 100644 --- a/arch/mips/include/asm/cpu-features.h +++ b/arch/mips/include/asm/cpu-features.h | |||
@@ -191,6 +191,9 @@ | |||
191 | # ifndef cpu_has_64bit_addresses | 191 | # ifndef cpu_has_64bit_addresses |
192 | # define cpu_has_64bit_addresses 0 | 192 | # define cpu_has_64bit_addresses 0 |
193 | # endif | 193 | # endif |
194 | # ifndef cpu_vmbits | ||
195 | # define cpu_vmbits 31 | ||
196 | # endif | ||
194 | #endif | 197 | #endif |
195 | 198 | ||
196 | #ifdef CONFIG_64BIT | 199 | #ifdef CONFIG_64BIT |
@@ -209,6 +212,10 @@ | |||
209 | # ifndef cpu_has_64bit_addresses | 212 | # ifndef cpu_has_64bit_addresses |
210 | # define cpu_has_64bit_addresses 1 | 213 | # define cpu_has_64bit_addresses 1 |
211 | # endif | 214 | # endif |
215 | # ifndef cpu_vmbits | ||
216 | # define cpu_vmbits cpu_data[0].vmbits | ||
217 | # define __NEED_VMBITS_PROBE | ||
218 | # endif | ||
212 | #endif | 219 | #endif |
213 | 220 | ||
214 | #if defined(CONFIG_CPU_MIPSR2_IRQ_VI) && !defined(cpu_has_vint) | 221 | #if defined(CONFIG_CPU_MIPSR2_IRQ_VI) && !defined(cpu_has_vint) |
diff --git a/arch/mips/include/asm/cpu-info.h b/arch/mips/include/asm/cpu-info.h index 126044308dec..b39def3f6e03 100644 --- a/arch/mips/include/asm/cpu-info.h +++ b/arch/mips/include/asm/cpu-info.h | |||
@@ -58,6 +58,9 @@ struct cpuinfo_mips { | |||
58 | struct cache_desc tcache; /* Tertiary/split secondary cache */ | 58 | struct cache_desc tcache; /* Tertiary/split secondary cache */ |
59 | int srsets; /* Shadow register sets */ | 59 | int srsets; /* Shadow register sets */ |
60 | int core; /* physical core number */ | 60 | int core; /* physical core number */ |
61 | #ifdef CONFIG_64BIT | ||
62 | int vmbits; /* Virtual memory size in bits */ | ||
63 | #endif | ||
61 | #if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC) | 64 | #if defined(CONFIG_MIPS_MT_SMP) || defined(CONFIG_MIPS_MT_SMTC) |
62 | /* | 65 | /* |
63 | * In the MIPS MT "SMTC" model, each TC is considered | 66 | * In the MIPS MT "SMTC" model, each TC is considered |
diff --git a/arch/mips/include/asm/irq.h b/arch/mips/include/asm/irq.h index 06960364c96b..dea4aed6478f 100644 --- a/arch/mips/include/asm/irq.h +++ b/arch/mips/include/asm/irq.h | |||
@@ -135,6 +135,7 @@ extern void free_irqno(unsigned int irq); | |||
135 | #define CP0_LEGACY_COMPARE_IRQ 7 | 135 | #define CP0_LEGACY_COMPARE_IRQ 7 |
136 | 136 | ||
137 | extern int cp0_compare_irq; | 137 | extern int cp0_compare_irq; |
138 | extern int cp0_compare_irq_shift; | ||
138 | extern int cp0_perfcount_irq; | 139 | extern int cp0_perfcount_irq; |
139 | 140 | ||
140 | #endif /* _ASM_IRQ_H */ | 141 | #endif /* _ASM_IRQ_H */ |
diff --git a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h index 06f68f43800a..d206000fbfe2 100644 --- a/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h +++ b/arch/mips/include/asm/mach-au1x00/au1xxx_dbdma.h | |||
@@ -305,6 +305,7 @@ typedef struct dbdma_chan_config { | |||
305 | dbdev_tab_t *chan_dest; | 305 | dbdev_tab_t *chan_dest; |
306 | au1x_dma_chan_t *chan_ptr; | 306 | au1x_dma_chan_t *chan_ptr; |
307 | au1x_ddma_desc_t *chan_desc_base; | 307 | au1x_ddma_desc_t *chan_desc_base; |
308 | u32 cdb_membase; /* kmalloc base of above */ | ||
308 | au1x_ddma_desc_t *get_ptr, *put_ptr, *cur_ptr; | 309 | au1x_ddma_desc_t *get_ptr, *put_ptr, *cur_ptr; |
309 | void *chan_callparam; | 310 | void *chan_callparam; |
310 | void (*chan_callback)(int, void *); | 311 | void (*chan_callback)(int, void *); |
diff --git a/arch/mips/include/asm/mach-powertv/asic_reg_map.h b/arch/mips/include/asm/mach-powertv/asic_reg_map.h new file mode 100644 index 000000000000..6f26cb09828e --- /dev/null +++ b/arch/mips/include/asm/mach-powertv/asic_reg_map.h | |||
@@ -0,0 +1,90 @@ | |||
1 | /* | ||
2 | * asic_reg_map.h | ||
3 | * | ||
4 | * A macro-enclosed list of the elements for the register_map structure for | ||
5 | * use in defining and manipulating the structure. | ||
6 | * | ||
7 | * Copyright (C) 2009 Cisco Systems, Inc. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA | ||
22 | */ | ||
23 | |||
24 | REGISTER_MAP_ELEMENT(eic_slow0_strt_add) | ||
25 | REGISTER_MAP_ELEMENT(eic_cfg_bits) | ||
26 | REGISTER_MAP_ELEMENT(eic_ready_status) | ||
27 | REGISTER_MAP_ELEMENT(chipver3) | ||
28 | REGISTER_MAP_ELEMENT(chipver2) | ||
29 | REGISTER_MAP_ELEMENT(chipver1) | ||
30 | REGISTER_MAP_ELEMENT(chipver0) | ||
31 | REGISTER_MAP_ELEMENT(uart1_intstat) | ||
32 | REGISTER_MAP_ELEMENT(uart1_inten) | ||
33 | REGISTER_MAP_ELEMENT(uart1_config1) | ||
34 | REGISTER_MAP_ELEMENT(uart1_config2) | ||
35 | REGISTER_MAP_ELEMENT(uart1_divisorhi) | ||
36 | REGISTER_MAP_ELEMENT(uart1_divisorlo) | ||
37 | REGISTER_MAP_ELEMENT(uart1_data) | ||
38 | REGISTER_MAP_ELEMENT(uart1_status) | ||
39 | REGISTER_MAP_ELEMENT(int_stat_3) | ||
40 | REGISTER_MAP_ELEMENT(int_stat_2) | ||
41 | REGISTER_MAP_ELEMENT(int_stat_1) | ||
42 | REGISTER_MAP_ELEMENT(int_stat_0) | ||
43 | REGISTER_MAP_ELEMENT(int_config) | ||
44 | REGISTER_MAP_ELEMENT(int_int_scan) | ||
45 | REGISTER_MAP_ELEMENT(ien_int_3) | ||
46 | REGISTER_MAP_ELEMENT(ien_int_2) | ||
47 | REGISTER_MAP_ELEMENT(ien_int_1) | ||
48 | REGISTER_MAP_ELEMENT(ien_int_0) | ||
49 | REGISTER_MAP_ELEMENT(int_level_3_3) | ||
50 | REGISTER_MAP_ELEMENT(int_level_3_2) | ||
51 | REGISTER_MAP_ELEMENT(int_level_3_1) | ||
52 | REGISTER_MAP_ELEMENT(int_level_3_0) | ||
53 | REGISTER_MAP_ELEMENT(int_level_2_3) | ||
54 | REGISTER_MAP_ELEMENT(int_level_2_2) | ||
55 | REGISTER_MAP_ELEMENT(int_level_2_1) | ||
56 | REGISTER_MAP_ELEMENT(int_level_2_0) | ||
57 | REGISTER_MAP_ELEMENT(int_level_1_3) | ||
58 | REGISTER_MAP_ELEMENT(int_level_1_2) | ||
59 | REGISTER_MAP_ELEMENT(int_level_1_1) | ||
60 | REGISTER_MAP_ELEMENT(int_level_1_0) | ||
61 | REGISTER_MAP_ELEMENT(int_level_0_3) | ||
62 | REGISTER_MAP_ELEMENT(int_level_0_2) | ||
63 | REGISTER_MAP_ELEMENT(int_level_0_1) | ||
64 | REGISTER_MAP_ELEMENT(int_level_0_0) | ||
65 | REGISTER_MAP_ELEMENT(int_docsis_en) | ||
66 | REGISTER_MAP_ELEMENT(mips_pll_setup) | ||
67 | REGISTER_MAP_ELEMENT(usb_fs) | ||
68 | REGISTER_MAP_ELEMENT(test_bus) | ||
69 | REGISTER_MAP_ELEMENT(crt_spare) | ||
70 | REGISTER_MAP_ELEMENT(usb2_ohci_int_mask) | ||
71 | REGISTER_MAP_ELEMENT(usb2_strap) | ||
72 | REGISTER_MAP_ELEMENT(ehci_hcapbase) | ||
73 | REGISTER_MAP_ELEMENT(ohci_hc_revision) | ||
74 | REGISTER_MAP_ELEMENT(bcm1_bs_lmi_steer) | ||
75 | REGISTER_MAP_ELEMENT(usb2_control) | ||
76 | REGISTER_MAP_ELEMENT(usb2_stbus_obc) | ||
77 | REGISTER_MAP_ELEMENT(usb2_stbus_mess_size) | ||
78 | REGISTER_MAP_ELEMENT(usb2_stbus_chunk_size) | ||
79 | REGISTER_MAP_ELEMENT(pcie_regs) | ||
80 | REGISTER_MAP_ELEMENT(tim_ch) | ||
81 | REGISTER_MAP_ELEMENT(tim_cl) | ||
82 | REGISTER_MAP_ELEMENT(gpio_dout) | ||
83 | REGISTER_MAP_ELEMENT(gpio_din) | ||
84 | REGISTER_MAP_ELEMENT(gpio_dir) | ||
85 | REGISTER_MAP_ELEMENT(watchdog) | ||
86 | REGISTER_MAP_ELEMENT(front_panel) | ||
87 | REGISTER_MAP_ELEMENT(misc_clk_ctl1) | ||
88 | REGISTER_MAP_ELEMENT(misc_clk_ctl2) | ||
89 | REGISTER_MAP_ELEMENT(crt_ext_ctl) | ||
90 | REGISTER_MAP_ELEMENT(register_maps) | ||
diff --git a/arch/mips/include/asm/mach-powertv/asic_regs.h b/arch/mips/include/asm/mach-powertv/asic_regs.h index 9a65c93782f9..1e11236c6dbc 100644 --- a/arch/mips/include/asm/mach-powertv/asic_regs.h +++ b/arch/mips/include/asm/mach-powertv/asic_regs.h | |||
@@ -35,11 +35,12 @@ enum asic_type { | |||
35 | #define CRONUS_11 0x0B4C1C21 | 35 | #define CRONUS_11 0x0B4C1C21 |
36 | #define CRONUSLITE_10 0x0B4C1C40 | 36 | #define CRONUSLITE_10 0x0B4C1C40 |
37 | 37 | ||
38 | #define NAND_FLASH_BASE 0x03000000 | 38 | #define NAND_FLASH_BASE 0x03000000 |
39 | #define ZEUS_IO_BASE 0x09000000 | ||
40 | #define CALLIOPE_IO_BASE 0x08000000 | 39 | #define CALLIOPE_IO_BASE 0x08000000 |
41 | #define CRONUS_IO_BASE 0x09000000 | 40 | #define CRONUS_IO_BASE 0x09000000 |
42 | #define ASIC_IO_SIZE 0x01000000 | 41 | #define ZEUS_IO_BASE 0x09000000 |
42 | |||
43 | #define ASIC_IO_SIZE 0x01000000 | ||
43 | 44 | ||
44 | /* Definitions for backward compatibility */ | 45 | /* Definitions for backward compatibility */ |
45 | #define UART1_INTSTAT uart1_intstat | 46 | #define UART1_INTSTAT uart1_intstat |
@@ -52,96 +53,62 @@ enum asic_type { | |||
52 | #define UART1_STATUS uart1_status | 53 | #define UART1_STATUS uart1_status |
53 | 54 | ||
54 | /* ASIC register enumeration */ | 55 | /* ASIC register enumeration */ |
56 | union register_map_entry { | ||
57 | unsigned long phys; | ||
58 | u32 *virt; | ||
59 | }; | ||
60 | |||
61 | #define REGISTER_MAP_ELEMENT(x) union register_map_entry x; | ||
55 | struct register_map { | 62 | struct register_map { |
56 | u32 eic_slow0_strt_add; | 63 | #include <asm/mach-powertv/asic_reg_map.h> |
57 | u32 eic_cfg_bits; | ||
58 | u32 eic_ready_status; | ||
59 | |||
60 | u32 chipver3; | ||
61 | u32 chipver2; | ||
62 | u32 chipver1; | ||
63 | u32 chipver0; | ||
64 | |||
65 | u32 uart1_intstat; | ||
66 | u32 uart1_inten; | ||
67 | u32 uart1_config1; | ||
68 | u32 uart1_config2; | ||
69 | u32 uart1_divisorhi; | ||
70 | u32 uart1_divisorlo; | ||
71 | u32 uart1_data; | ||
72 | u32 uart1_status; | ||
73 | |||
74 | u32 int_stat_3; | ||
75 | u32 int_stat_2; | ||
76 | u32 int_stat_1; | ||
77 | u32 int_stat_0; | ||
78 | u32 int_config; | ||
79 | u32 int_int_scan; | ||
80 | u32 ien_int_3; | ||
81 | u32 ien_int_2; | ||
82 | u32 ien_int_1; | ||
83 | u32 ien_int_0; | ||
84 | u32 int_level_3_3; | ||
85 | u32 int_level_3_2; | ||
86 | u32 int_level_3_1; | ||
87 | u32 int_level_3_0; | ||
88 | u32 int_level_2_3; | ||
89 | u32 int_level_2_2; | ||
90 | u32 int_level_2_1; | ||
91 | u32 int_level_2_0; | ||
92 | u32 int_level_1_3; | ||
93 | u32 int_level_1_2; | ||
94 | u32 int_level_1_1; | ||
95 | u32 int_level_1_0; | ||
96 | u32 int_level_0_3; | ||
97 | u32 int_level_0_2; | ||
98 | u32 int_level_0_1; | ||
99 | u32 int_level_0_0; | ||
100 | u32 int_docsis_en; | ||
101 | |||
102 | u32 mips_pll_setup; | ||
103 | u32 usb_fs; | ||
104 | u32 test_bus; | ||
105 | u32 crt_spare; | ||
106 | u32 usb2_ohci_int_mask; | ||
107 | u32 usb2_strap; | ||
108 | u32 ehci_hcapbase; | ||
109 | u32 ohci_hc_revision; | ||
110 | u32 bcm1_bs_lmi_steer; | ||
111 | u32 usb2_control; | ||
112 | u32 usb2_stbus_obc; | ||
113 | u32 usb2_stbus_mess_size; | ||
114 | u32 usb2_stbus_chunk_size; | ||
115 | |||
116 | u32 pcie_regs; | ||
117 | u32 tim_ch; | ||
118 | u32 tim_cl; | ||
119 | u32 gpio_dout; | ||
120 | u32 gpio_din; | ||
121 | u32 gpio_dir; | ||
122 | u32 watchdog; | ||
123 | u32 front_panel; | ||
124 | |||
125 | u32 register_maps; | ||
126 | }; | 64 | }; |
65 | #undef REGISTER_MAP_ELEMENT | ||
66 | |||
67 | /** | ||
68 | * register_map_offset_phys - add an offset to the physical address | ||
69 | * @map: Pointer to the &struct register_map | ||
70 | * @offset: Value to add | ||
71 | * | ||
72 | * Only adds the base to non-zero physical addresses | ||
73 | */ | ||
74 | static inline void register_map_offset_phys(struct register_map *map, | ||
75 | unsigned long offset) | ||
76 | { | ||
77 | #define REGISTER_MAP_ELEMENT(x) do { \ | ||
78 | if (map->x.phys != 0) \ | ||
79 | map->x.phys += offset; \ | ||
80 | } while (false); | ||
81 | |||
82 | #include <asm/mach-powertv/asic_reg_map.h> | ||
83 | #undef REGISTER_MAP_ELEMENT | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * register_map_virtualize - Convert ®ister_map to virtual addresses | ||
88 | * @map: Pointer to ®ister_map to virtualize | ||
89 | */ | ||
90 | static inline void register_map_virtualize(struct register_map *map) | ||
91 | { | ||
92 | #define REGISTER_MAP_ELEMENT(x) do { \ | ||
93 | map->x.virt = (!map->x.phys) ? NULL : \ | ||
94 | UNCAC_ADDR(phys_to_virt(map->x.phys)); \ | ||
95 | } while (false); | ||
96 | |||
97 | #include <asm/mach-powertv/asic_reg_map.h> | ||
98 | #undef REGISTER_MAP_ELEMENT | ||
99 | } | ||
127 | 100 | ||
128 | extern enum asic_type asic; | 101 | extern struct register_map _asic_register_map; |
129 | extern const struct register_map *register_map; | ||
130 | extern unsigned long asic_phy_base; /* Physical address of ASIC */ | ||
131 | extern unsigned long asic_base; /* Virtual address of ASIC */ | ||
132 | 102 | ||
133 | /* | 103 | /* |
134 | * Macros to interface to registers through their ioremapped address | 104 | * Macros to interface to registers through their ioremapped address |
135 | * asic_reg_offset Returns the offset of a given register from the start | ||
136 | * of the ASIC address space | ||
137 | * asic_reg_phys_addr Returns the physical address of the given register | 105 | * asic_reg_phys_addr Returns the physical address of the given register |
138 | * asic_reg_addr Returns the iomapped virtual address of the given | 106 | * asic_reg_addr Returns the iomapped virtual address of the given |
139 | * register. | 107 | * register. |
140 | */ | 108 | */ |
141 | #define asic_reg_offset(x) (register_map->x) | 109 | #define asic_reg_addr(x) (_asic_register_map.x.virt) |
142 | #define asic_reg_phys_addr(x) (asic_phy_base + asic_reg_offset(x)) | 110 | #define asic_reg_phys_addr(x) (virt_to_phys((void *) CAC_ADDR( \ |
143 | #define asic_reg_addr(x) \ | 111 | (unsigned long) asic_reg_addr(x)))) |
144 | ((unsigned int *) (asic_base + asic_reg_offset(x))) | ||
145 | 112 | ||
146 | /* | 113 | /* |
147 | * The asic_reg macro is gone. It should be replaced by either asic_read or | 114 | * The asic_reg macro is gone. It should be replaced by either asic_read or |
diff --git a/arch/mips/include/asm/mipsregs.h b/arch/mips/include/asm/mipsregs.h index a581d60cbcc2..f4ab3139d737 100644 --- a/arch/mips/include/asm/mipsregs.h +++ b/arch/mips/include/asm/mipsregs.h | |||
@@ -406,6 +406,16 @@ | |||
406 | #define ST0_XX 0x80000000 /* MIPS IV naming */ | 406 | #define ST0_XX 0x80000000 /* MIPS IV naming */ |
407 | 407 | ||
408 | /* | 408 | /* |
409 | * Bitfields and bit numbers in the coprocessor 0 IntCtl register. (MIPSR2) | ||
410 | * | ||
411 | * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. | ||
412 | */ | ||
413 | #define INTCTLB_IPPCI 26 | ||
414 | #define INTCTLF_IPPCI (_ULCAST_(7) << INTCTLB_IPPCI) | ||
415 | #define INTCTLB_IPTI 29 | ||
416 | #define INTCTLF_IPTI (_ULCAST_(7) << INTCTLB_IPTI) | ||
417 | |||
418 | /* | ||
409 | * Bitfields and bit numbers in the coprocessor 0 cause register. | 419 | * Bitfields and bit numbers in the coprocessor 0 cause register. |
410 | * | 420 | * |
411 | * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. | 421 | * Refer to your MIPS R4xx0 manual, chapter 5 for explanation. |
@@ -434,6 +444,8 @@ | |||
434 | #define CAUSEF_IV (_ULCAST_(1) << 23) | 444 | #define CAUSEF_IV (_ULCAST_(1) << 23) |
435 | #define CAUSEB_CE 28 | 445 | #define CAUSEB_CE 28 |
436 | #define CAUSEF_CE (_ULCAST_(3) << 28) | 446 | #define CAUSEF_CE (_ULCAST_(3) << 28) |
447 | #define CAUSEB_TI 30 | ||
448 | #define CAUSEF_TI (_ULCAST_(1) << 30) | ||
437 | #define CAUSEB_BD 31 | 449 | #define CAUSEB_BD 31 |
438 | #define CAUSEF_BD (_ULCAST_(1) << 31) | 450 | #define CAUSEF_BD (_ULCAST_(1) << 31) |
439 | 451 | ||
diff --git a/arch/mips/include/asm/pgtable-64.h b/arch/mips/include/asm/pgtable-64.h index 9cd508993956..8eda30b467da 100644 --- a/arch/mips/include/asm/pgtable-64.h +++ b/arch/mips/include/asm/pgtable-64.h | |||
@@ -110,7 +110,9 @@ | |||
110 | #define VMALLOC_START MAP_BASE | 110 | #define VMALLOC_START MAP_BASE |
111 | #define VMALLOC_END \ | 111 | #define VMALLOC_END \ |
112 | (VMALLOC_START + \ | 112 | (VMALLOC_START + \ |
113 | PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE - (1UL << 32)) | 113 | min(PTRS_PER_PGD * PTRS_PER_PMD * PTRS_PER_PTE * PAGE_SIZE, \ |
114 | (1UL << cpu_vmbits)) - (1UL << 32)) | ||
115 | |||
114 | #if defined(CONFIG_MODULES) && defined(KBUILD_64BIT_SYM32) && \ | 116 | #if defined(CONFIG_MODULES) && defined(KBUILD_64BIT_SYM32) && \ |
115 | VMALLOC_START != CKSSEG | 117 | VMALLOC_START != CKSSEG |
116 | /* Load modules into 32bit-compatible segment. */ | 118 | /* Load modules into 32bit-compatible segment. */ |
diff --git a/arch/mips/kernel/cevt-r4k.c b/arch/mips/kernel/cevt-r4k.c index b469ad05d520..0b2450ceb13f 100644 --- a/arch/mips/kernel/cevt-r4k.c +++ b/arch/mips/kernel/cevt-r4k.c | |||
@@ -97,7 +97,7 @@ void mips_event_handler(struct clock_event_device *dev) | |||
97 | */ | 97 | */ |
98 | static int c0_compare_int_pending(void) | 98 | static int c0_compare_int_pending(void) |
99 | { | 99 | { |
100 | return (read_c0_cause() >> cp0_compare_irq) & 0x100; | 100 | return (read_c0_cause() >> cp0_compare_irq_shift) & (1ul << CAUSEB_IP); |
101 | } | 101 | } |
102 | 102 | ||
103 | /* | 103 | /* |
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c index 80e202eca056..758ad426c57f 100644 --- a/arch/mips/kernel/cpu-probe.c +++ b/arch/mips/kernel/cpu-probe.c | |||
@@ -284,6 +284,15 @@ static inline int __cpu_has_fpu(void) | |||
284 | return ((cpu_get_fpu_id() & 0xff00) != FPIR_IMP_NONE); | 284 | return ((cpu_get_fpu_id() & 0xff00) != FPIR_IMP_NONE); |
285 | } | 285 | } |
286 | 286 | ||
287 | static inline void cpu_probe_vmbits(struct cpuinfo_mips *c) | ||
288 | { | ||
289 | #ifdef __NEED_VMBITS_PROBE | ||
290 | write_c0_entryhi(0x3fffffffffffe000ULL); | ||
291 | back_to_back_c0_hazard(); | ||
292 | c->vmbits = fls64(read_c0_entryhi() & 0x3fffffffffffe000ULL); | ||
293 | #endif | ||
294 | } | ||
295 | |||
287 | #define R4K_OPTS (MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE \ | 296 | #define R4K_OPTS (MIPS_CPU_TLB | MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE \ |
288 | | MIPS_CPU_COUNTER) | 297 | | MIPS_CPU_COUNTER) |
289 | 298 | ||
@@ -969,6 +978,8 @@ __cpuinit void cpu_probe(void) | |||
969 | c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1; | 978 | c->srsets = ((read_c0_srsctl() >> 26) & 0x0f) + 1; |
970 | else | 979 | else |
971 | c->srsets = 1; | 980 | c->srsets = 1; |
981 | |||
982 | cpu_probe_vmbits(c); | ||
972 | } | 983 | } |
973 | 984 | ||
974 | __cpuinit void cpu_report(void) | 985 | __cpuinit void cpu_report(void) |
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c index 308e43460864..31b204b26ba0 100644 --- a/arch/mips/kernel/traps.c +++ b/arch/mips/kernel/traps.c | |||
@@ -1403,6 +1403,7 @@ extern void flush_tlb_handlers(void); | |||
1403 | * Timer interrupt | 1403 | * Timer interrupt |
1404 | */ | 1404 | */ |
1405 | int cp0_compare_irq; | 1405 | int cp0_compare_irq; |
1406 | int cp0_compare_irq_shift; | ||
1406 | 1407 | ||
1407 | /* | 1408 | /* |
1408 | * Performance counter IRQ or -1 if shared with timer | 1409 | * Performance counter IRQ or -1 if shared with timer |
@@ -1493,12 +1494,14 @@ void __cpuinit per_cpu_trap_init(void) | |||
1493 | * o read IntCtl.IPPCI to determine the performance counter interrupt | 1494 | * o read IntCtl.IPPCI to determine the performance counter interrupt |
1494 | */ | 1495 | */ |
1495 | if (cpu_has_mips_r2) { | 1496 | if (cpu_has_mips_r2) { |
1496 | cp0_compare_irq = (read_c0_intctl() >> 29) & 7; | 1497 | cp0_compare_irq_shift = CAUSEB_TI - CAUSEB_IP; |
1497 | cp0_perfcount_irq = (read_c0_intctl() >> 26) & 7; | 1498 | cp0_compare_irq = (read_c0_intctl() >> INTCTLB_IPTI) & 7; |
1499 | cp0_perfcount_irq = (read_c0_intctl() >> INTCTLB_IPPCI) & 7; | ||
1498 | if (cp0_perfcount_irq == cp0_compare_irq) | 1500 | if (cp0_perfcount_irq == cp0_compare_irq) |
1499 | cp0_perfcount_irq = -1; | 1501 | cp0_perfcount_irq = -1; |
1500 | } else { | 1502 | } else { |
1501 | cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; | 1503 | cp0_compare_irq = CP0_LEGACY_COMPARE_IRQ; |
1504 | cp0_compare_irq_shift = cp0_compare_irq; | ||
1502 | cp0_perfcount_irq = -1; | 1505 | cp0_perfcount_irq = -1; |
1503 | } | 1506 | } |
1504 | 1507 | ||
diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index 94e05e5733c1..e06f1af760a7 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c | |||
@@ -174,7 +174,7 @@ static void octeon_flush_cache_page(struct vm_area_struct *vma, | |||
174 | * Probe Octeon's caches | 174 | * Probe Octeon's caches |
175 | * | 175 | * |
176 | */ | 176 | */ |
177 | static void __devinit probe_octeon(void) | 177 | static void __cpuinit probe_octeon(void) |
178 | { | 178 | { |
179 | unsigned long icache_size; | 179 | unsigned long icache_size; |
180 | unsigned long dcache_size; | 180 | unsigned long dcache_size; |
@@ -235,7 +235,7 @@ static void __devinit probe_octeon(void) | |||
235 | * Setup the Octeon cache flush routines | 235 | * Setup the Octeon cache flush routines |
236 | * | 236 | * |
237 | */ | 237 | */ |
238 | void __devinit octeon_cache_init(void) | 238 | void __cpuinit octeon_cache_init(void) |
239 | { | 239 | { |
240 | extern unsigned long ebase; | 240 | extern unsigned long ebase; |
241 | extern char except_vec2_octeon; | 241 | extern char except_vec2_octeon; |
diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index 102b2dfa542a..e716cafc346d 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c | |||
@@ -155,7 +155,7 @@ static inline void setup_protection_map(void) | |||
155 | protection_map[15] = PAGE_SHARED; | 155 | protection_map[15] = PAGE_SHARED; |
156 | } | 156 | } |
157 | 157 | ||
158 | void __devinit cpu_cache_init(void) | 158 | void __cpuinit cpu_cache_init(void) |
159 | { | 159 | { |
160 | if (cpu_has_3k_cache) { | 160 | if (cpu_has_3k_cache) { |
161 | extern void __weak r3k_cache_init(void); | 161 | extern void __weak r3k_cache_init(void); |
diff --git a/arch/mips/powertv/asic/asic-calliope.c b/arch/mips/powertv/asic/asic-calliope.c index 03d3884c6270..1ae6623444b2 100644 --- a/arch/mips/powertv/asic/asic-calliope.c +++ b/arch/mips/powertv/asic/asic-calliope.c | |||
@@ -23,76 +23,79 @@ | |||
23 | * Description: Defines the platform resources for the SA settop. | 23 | * Description: Defines the platform resources for the SA settop. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/init.h> | ||
26 | #include <asm/mach-powertv/asic.h> | 27 | #include <asm/mach-powertv/asic.h> |
27 | 28 | ||
28 | const struct register_map calliope_register_map = { | 29 | #define CALLIOPE_ADDR(x) (CALLIOPE_IO_BASE + (x)) |
29 | .eic_slow0_strt_add = 0x800000, | ||
30 | .eic_cfg_bits = 0x800038, | ||
31 | .eic_ready_status = 0x80004c, | ||
32 | 30 | ||
33 | .chipver3 = 0xA00800, | 31 | const struct register_map calliope_register_map __initdata = { |
34 | .chipver2 = 0xA00804, | 32 | .eic_slow0_strt_add = {.phys = CALLIOPE_ADDR(0x800000)}, |
35 | .chipver1 = 0xA00808, | 33 | .eic_cfg_bits = {.phys = CALLIOPE_ADDR(0x800038)}, |
36 | .chipver0 = 0xA0080c, | 34 | .eic_ready_status = {.phys = CALLIOPE_ADDR(0x80004c)}, |
35 | |||
36 | .chipver3 = {.phys = CALLIOPE_ADDR(0xA00800)}, | ||
37 | .chipver2 = {.phys = CALLIOPE_ADDR(0xA00804)}, | ||
38 | .chipver1 = {.phys = CALLIOPE_ADDR(0xA00808)}, | ||
39 | .chipver0 = {.phys = CALLIOPE_ADDR(0xA0080c)}, | ||
37 | 40 | ||
38 | /* The registers of IRBlaster */ | 41 | /* The registers of IRBlaster */ |
39 | .uart1_intstat = 0xA01800, | 42 | .uart1_intstat = {.phys = CALLIOPE_ADDR(0xA01800)}, |
40 | .uart1_inten = 0xA01804, | 43 | .uart1_inten = {.phys = CALLIOPE_ADDR(0xA01804)}, |
41 | .uart1_config1 = 0xA01808, | 44 | .uart1_config1 = {.phys = CALLIOPE_ADDR(0xA01808)}, |
42 | .uart1_config2 = 0xA0180C, | 45 | .uart1_config2 = {.phys = CALLIOPE_ADDR(0xA0180C)}, |
43 | .uart1_divisorhi = 0xA01810, | 46 | .uart1_divisorhi = {.phys = CALLIOPE_ADDR(0xA01810)}, |
44 | .uart1_divisorlo = 0xA01814, | 47 | .uart1_divisorlo = {.phys = CALLIOPE_ADDR(0xA01814)}, |
45 | .uart1_data = 0xA01818, | 48 | .uart1_data = {.phys = CALLIOPE_ADDR(0xA01818)}, |
46 | .uart1_status = 0xA0181C, | 49 | .uart1_status = {.phys = CALLIOPE_ADDR(0xA0181C)}, |
47 | 50 | ||
48 | .int_stat_3 = 0xA02800, | 51 | .int_stat_3 = {.phys = CALLIOPE_ADDR(0xA02800)}, |
49 | .int_stat_2 = 0xA02804, | 52 | .int_stat_2 = {.phys = CALLIOPE_ADDR(0xA02804)}, |
50 | .int_stat_1 = 0xA02808, | 53 | .int_stat_1 = {.phys = CALLIOPE_ADDR(0xA02808)}, |
51 | .int_stat_0 = 0xA0280c, | 54 | .int_stat_0 = {.phys = CALLIOPE_ADDR(0xA0280c)}, |
52 | .int_config = 0xA02810, | 55 | .int_config = {.phys = CALLIOPE_ADDR(0xA02810)}, |
53 | .int_int_scan = 0xA02818, | 56 | .int_int_scan = {.phys = CALLIOPE_ADDR(0xA02818)}, |
54 | .ien_int_3 = 0xA02830, | 57 | .ien_int_3 = {.phys = CALLIOPE_ADDR(0xA02830)}, |
55 | .ien_int_2 = 0xA02834, | 58 | .ien_int_2 = {.phys = CALLIOPE_ADDR(0xA02834)}, |
56 | .ien_int_1 = 0xA02838, | 59 | .ien_int_1 = {.phys = CALLIOPE_ADDR(0xA02838)}, |
57 | .ien_int_0 = 0xA0283c, | 60 | .ien_int_0 = {.phys = CALLIOPE_ADDR(0xA0283c)}, |
58 | .int_level_3_3 = 0xA02880, | 61 | .int_level_3_3 = {.phys = CALLIOPE_ADDR(0xA02880)}, |
59 | .int_level_3_2 = 0xA02884, | 62 | .int_level_3_2 = {.phys = CALLIOPE_ADDR(0xA02884)}, |
60 | .int_level_3_1 = 0xA02888, | 63 | .int_level_3_1 = {.phys = CALLIOPE_ADDR(0xA02888)}, |
61 | .int_level_3_0 = 0xA0288c, | 64 | .int_level_3_0 = {.phys = CALLIOPE_ADDR(0xA0288c)}, |
62 | .int_level_2_3 = 0xA02890, | 65 | .int_level_2_3 = {.phys = CALLIOPE_ADDR(0xA02890)}, |
63 | .int_level_2_2 = 0xA02894, | 66 | .int_level_2_2 = {.phys = CALLIOPE_ADDR(0xA02894)}, |
64 | .int_level_2_1 = 0xA02898, | 67 | .int_level_2_1 = {.phys = CALLIOPE_ADDR(0xA02898)}, |
65 | .int_level_2_0 = 0xA0289c, | 68 | .int_level_2_0 = {.phys = CALLIOPE_ADDR(0xA0289c)}, |
66 | .int_level_1_3 = 0xA028a0, | 69 | .int_level_1_3 = {.phys = CALLIOPE_ADDR(0xA028a0)}, |
67 | .int_level_1_2 = 0xA028a4, | 70 | .int_level_1_2 = {.phys = CALLIOPE_ADDR(0xA028a4)}, |
68 | .int_level_1_1 = 0xA028a8, | 71 | .int_level_1_1 = {.phys = CALLIOPE_ADDR(0xA028a8)}, |
69 | .int_level_1_0 = 0xA028ac, | 72 | .int_level_1_0 = {.phys = CALLIOPE_ADDR(0xA028ac)}, |
70 | .int_level_0_3 = 0xA028b0, | 73 | .int_level_0_3 = {.phys = CALLIOPE_ADDR(0xA028b0)}, |
71 | .int_level_0_2 = 0xA028b4, | 74 | .int_level_0_2 = {.phys = CALLIOPE_ADDR(0xA028b4)}, |
72 | .int_level_0_1 = 0xA028b8, | 75 | .int_level_0_1 = {.phys = CALLIOPE_ADDR(0xA028b8)}, |
73 | .int_level_0_0 = 0xA028bc, | 76 | .int_level_0_0 = {.phys = CALLIOPE_ADDR(0xA028bc)}, |
74 | .int_docsis_en = 0xA028F4, | 77 | .int_docsis_en = {.phys = CALLIOPE_ADDR(0xA028F4)}, |
75 | 78 | ||
76 | .mips_pll_setup = 0x980000, | 79 | .mips_pll_setup = {.phys = CALLIOPE_ADDR(0x980000)}, |
77 | .usb_fs = 0x980030, /* -default 72800028- */ | 80 | .usb_fs = {.phys = CALLIOPE_ADDR(0x980030)}, |
78 | .test_bus = 0x9800CC, | 81 | .test_bus = {.phys = CALLIOPE_ADDR(0x9800CC)}, |
79 | .crt_spare = 0x9800d4, | 82 | .crt_spare = {.phys = CALLIOPE_ADDR(0x9800d4)}, |
80 | .usb2_ohci_int_mask = 0x9A000c, | 83 | .usb2_ohci_int_mask = {.phys = CALLIOPE_ADDR(0x9A000c)}, |
81 | .usb2_strap = 0x9A0014, | 84 | .usb2_strap = {.phys = CALLIOPE_ADDR(0x9A0014)}, |
82 | .ehci_hcapbase = 0x9BFE00, | 85 | .ehci_hcapbase = {.phys = CALLIOPE_ADDR(0x9BFE00)}, |
83 | .ohci_hc_revision = 0x9BFC00, | 86 | .ohci_hc_revision = {.phys = CALLIOPE_ADDR(0x9BFC00)}, |
84 | .bcm1_bs_lmi_steer = 0x9E0004, | 87 | .bcm1_bs_lmi_steer = {.phys = CALLIOPE_ADDR(0x9E0004)}, |
85 | .usb2_control = 0x9E0054, | 88 | .usb2_control = {.phys = CALLIOPE_ADDR(0x9E0054)}, |
86 | .usb2_stbus_obc = 0x9BFF00, | 89 | .usb2_stbus_obc = {.phys = CALLIOPE_ADDR(0x9BFF00)}, |
87 | .usb2_stbus_mess_size = 0x9BFF04, | 90 | .usb2_stbus_mess_size = {.phys = CALLIOPE_ADDR(0x9BFF04)}, |
88 | .usb2_stbus_chunk_size = 0x9BFF08, | 91 | .usb2_stbus_chunk_size = {.phys = CALLIOPE_ADDR(0x9BFF08)}, |
89 | 92 | ||
90 | .pcie_regs = 0x000000, /* -doesn't exist- */ | 93 | .pcie_regs = {.phys = 0x000000}, /* -doesn't exist- */ |
91 | .tim_ch = 0xA02C10, | 94 | .tim_ch = {.phys = CALLIOPE_ADDR(0xA02C10)}, |
92 | .tim_cl = 0xA02C14, | 95 | .tim_cl = {.phys = CALLIOPE_ADDR(0xA02C14)}, |
93 | .gpio_dout = 0xA02c20, | 96 | .gpio_dout = {.phys = CALLIOPE_ADDR(0xA02c20)}, |
94 | .gpio_din = 0xA02c24, | 97 | .gpio_din = {.phys = CALLIOPE_ADDR(0xA02c24)}, |
95 | .gpio_dir = 0xA02c2C, | 98 | .gpio_dir = {.phys = CALLIOPE_ADDR(0xA02c2C)}, |
96 | .watchdog = 0xA02c30, | 99 | .watchdog = {.phys = CALLIOPE_ADDR(0xA02c30)}, |
97 | .front_panel = 0x000000, /* -not used- */ | 100 | .front_panel = {.phys = 0x000000}, /* -not used- */ |
98 | }; | 101 | }; |
diff --git a/arch/mips/powertv/asic/asic-cronus.c b/arch/mips/powertv/asic/asic-cronus.c index 5f4589c9f83d..5bb64bfb508b 100644 --- a/arch/mips/powertv/asic/asic-cronus.c +++ b/arch/mips/powertv/asic/asic-cronus.c | |||
@@ -23,76 +23,79 @@ | |||
23 | * Description: Defines the platform resources for the SA settop. | 23 | * Description: Defines the platform resources for the SA settop. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/init.h> | ||
26 | #include <asm/mach-powertv/asic.h> | 27 | #include <asm/mach-powertv/asic.h> |
27 | 28 | ||
28 | const struct register_map cronus_register_map = { | 29 | #define CRONUS_ADDR(x) (CRONUS_IO_BASE + (x)) |
29 | .eic_slow0_strt_add = 0x000000, | ||
30 | .eic_cfg_bits = 0x000038, | ||
31 | .eic_ready_status = 0x00004C, | ||
32 | 30 | ||
33 | .chipver3 = 0x2A0800, | 31 | const struct register_map cronus_register_map __initdata = { |
34 | .chipver2 = 0x2A0804, | 32 | .eic_slow0_strt_add = {.phys = CRONUS_ADDR(0x000000)}, |
35 | .chipver1 = 0x2A0808, | 33 | .eic_cfg_bits = {.phys = CRONUS_ADDR(0x000038)}, |
36 | .chipver0 = 0x2A080C, | 34 | .eic_ready_status = {.phys = CRONUS_ADDR(0x00004C)}, |
35 | |||
36 | .chipver3 = {.phys = CRONUS_ADDR(0x2A0800)}, | ||
37 | .chipver2 = {.phys = CRONUS_ADDR(0x2A0804)}, | ||
38 | .chipver1 = {.phys = CRONUS_ADDR(0x2A0808)}, | ||
39 | .chipver0 = {.phys = CRONUS_ADDR(0x2A080C)}, | ||
37 | 40 | ||
38 | /* The registers of IRBlaster */ | 41 | /* The registers of IRBlaster */ |
39 | .uart1_intstat = 0x2A1800, | 42 | .uart1_intstat = {.phys = CRONUS_ADDR(0x2A1800)}, |
40 | .uart1_inten = 0x2A1804, | 43 | .uart1_inten = {.phys = CRONUS_ADDR(0x2A1804)}, |
41 | .uart1_config1 = 0x2A1808, | 44 | .uart1_config1 = {.phys = CRONUS_ADDR(0x2A1808)}, |
42 | .uart1_config2 = 0x2A180C, | 45 | .uart1_config2 = {.phys = CRONUS_ADDR(0x2A180C)}, |
43 | .uart1_divisorhi = 0x2A1810, | 46 | .uart1_divisorhi = {.phys = CRONUS_ADDR(0x2A1810)}, |
44 | .uart1_divisorlo = 0x2A1814, | 47 | .uart1_divisorlo = {.phys = CRONUS_ADDR(0x2A1814)}, |
45 | .uart1_data = 0x2A1818, | 48 | .uart1_data = {.phys = CRONUS_ADDR(0x2A1818)}, |
46 | .uart1_status = 0x2A181C, | 49 | .uart1_status = {.phys = CRONUS_ADDR(0x2A181C)}, |
47 | 50 | ||
48 | .int_stat_3 = 0x2A2800, | 51 | .int_stat_3 = {.phys = CRONUS_ADDR(0x2A2800)}, |
49 | .int_stat_2 = 0x2A2804, | 52 | .int_stat_2 = {.phys = CRONUS_ADDR(0x2A2804)}, |
50 | .int_stat_1 = 0x2A2808, | 53 | .int_stat_1 = {.phys = CRONUS_ADDR(0x2A2808)}, |
51 | .int_stat_0 = 0x2A280C, | 54 | .int_stat_0 = {.phys = CRONUS_ADDR(0x2A280C)}, |
52 | .int_config = 0x2A2810, | 55 | .int_config = {.phys = CRONUS_ADDR(0x2A2810)}, |
53 | .int_int_scan = 0x2A2818, | 56 | .int_int_scan = {.phys = CRONUS_ADDR(0x2A2818)}, |
54 | .ien_int_3 = 0x2A2830, | 57 | .ien_int_3 = {.phys = CRONUS_ADDR(0x2A2830)}, |
55 | .ien_int_2 = 0x2A2834, | 58 | .ien_int_2 = {.phys = CRONUS_ADDR(0x2A2834)}, |
56 | .ien_int_1 = 0x2A2838, | 59 | .ien_int_1 = {.phys = CRONUS_ADDR(0x2A2838)}, |
57 | .ien_int_0 = 0x2A283C, | 60 | .ien_int_0 = {.phys = CRONUS_ADDR(0x2A283C)}, |
58 | .int_level_3_3 = 0x2A2880, | 61 | .int_level_3_3 = {.phys = CRONUS_ADDR(0x2A2880)}, |
59 | .int_level_3_2 = 0x2A2884, | 62 | .int_level_3_2 = {.phys = CRONUS_ADDR(0x2A2884)}, |
60 | .int_level_3_1 = 0x2A2888, | 63 | .int_level_3_1 = {.phys = CRONUS_ADDR(0x2A2888)}, |
61 | .int_level_3_0 = 0x2A288C, | 64 | .int_level_3_0 = {.phys = CRONUS_ADDR(0x2A288C)}, |
62 | .int_level_2_3 = 0x2A2890, | 65 | .int_level_2_3 = {.phys = CRONUS_ADDR(0x2A2890)}, |
63 | .int_level_2_2 = 0x2A2894, | 66 | .int_level_2_2 = {.phys = CRONUS_ADDR(0x2A2894)}, |
64 | .int_level_2_1 = 0x2A2898, | 67 | .int_level_2_1 = {.phys = CRONUS_ADDR(0x2A2898)}, |
65 | .int_level_2_0 = 0x2A289C, | 68 | .int_level_2_0 = {.phys = CRONUS_ADDR(0x2A289C)}, |
66 | .int_level_1_3 = 0x2A28A0, | 69 | .int_level_1_3 = {.phys = CRONUS_ADDR(0x2A28A0)}, |
67 | .int_level_1_2 = 0x2A28A4, | 70 | .int_level_1_2 = {.phys = CRONUS_ADDR(0x2A28A4)}, |
68 | .int_level_1_1 = 0x2A28A8, | 71 | .int_level_1_1 = {.phys = CRONUS_ADDR(0x2A28A8)}, |
69 | .int_level_1_0 = 0x2A28AC, | 72 | .int_level_1_0 = {.phys = CRONUS_ADDR(0x2A28AC)}, |
70 | .int_level_0_3 = 0x2A28B0, | 73 | .int_level_0_3 = {.phys = CRONUS_ADDR(0x2A28B0)}, |
71 | .int_level_0_2 = 0x2A28B4, | 74 | .int_level_0_2 = {.phys = CRONUS_ADDR(0x2A28B4)}, |
72 | .int_level_0_1 = 0x2A28B8, | 75 | .int_level_0_1 = {.phys = CRONUS_ADDR(0x2A28B8)}, |
73 | .int_level_0_0 = 0x2A28BC, | 76 | .int_level_0_0 = {.phys = CRONUS_ADDR(0x2A28BC)}, |
74 | .int_docsis_en = 0x2A28F4, | 77 | .int_docsis_en = {.phys = CRONUS_ADDR(0x2A28F4)}, |
75 | 78 | ||
76 | .mips_pll_setup = 0x1C0000, | 79 | .mips_pll_setup = {.phys = CRONUS_ADDR(0x1C0000)}, |
77 | .usb_fs = 0x1C0018, | 80 | .usb_fs = {.phys = CRONUS_ADDR(0x1C0018)}, |
78 | .test_bus = 0x1C00CC, | 81 | .test_bus = {.phys = CRONUS_ADDR(0x1C00CC)}, |
79 | .crt_spare = 0x1c00d4, | 82 | .crt_spare = {.phys = CRONUS_ADDR(0x1c00d4)}, |
80 | .usb2_ohci_int_mask = 0x20000C, | 83 | .usb2_ohci_int_mask = {.phys = CRONUS_ADDR(0x20000C)}, |
81 | .usb2_strap = 0x200014, | 84 | .usb2_strap = {.phys = CRONUS_ADDR(0x200014)}, |
82 | .ehci_hcapbase = 0x21FE00, | 85 | .ehci_hcapbase = {.phys = CRONUS_ADDR(0x21FE00)}, |
83 | .ohci_hc_revision = 0x1E0000, | 86 | .ohci_hc_revision = {.phys = CRONUS_ADDR(0x1E0000)}, |
84 | .bcm1_bs_lmi_steer = 0x2E0008, | 87 | .bcm1_bs_lmi_steer = {.phys = CRONUS_ADDR(0x2E0008)}, |
85 | .usb2_control = 0x2E004C, | 88 | .usb2_control = {.phys = CRONUS_ADDR(0x2E004C)}, |
86 | .usb2_stbus_obc = 0x21FF00, | 89 | .usb2_stbus_obc = {.phys = CRONUS_ADDR(0x21FF00)}, |
87 | .usb2_stbus_mess_size = 0x21FF04, | 90 | .usb2_stbus_mess_size = {.phys = CRONUS_ADDR(0x21FF04)}, |
88 | .usb2_stbus_chunk_size = 0x21FF08, | 91 | .usb2_stbus_chunk_size = {.phys = CRONUS_ADDR(0x21FF08)}, |
89 | 92 | ||
90 | .pcie_regs = 0x220000, | 93 | .pcie_regs = {.phys = CRONUS_ADDR(0x220000)}, |
91 | .tim_ch = 0x2A2C10, | 94 | .tim_ch = {.phys = CRONUS_ADDR(0x2A2C10)}, |
92 | .tim_cl = 0x2A2C14, | 95 | .tim_cl = {.phys = CRONUS_ADDR(0x2A2C14)}, |
93 | .gpio_dout = 0x2A2C20, | 96 | .gpio_dout = {.phys = CRONUS_ADDR(0x2A2C20)}, |
94 | .gpio_din = 0x2A2C24, | 97 | .gpio_din = {.phys = CRONUS_ADDR(0x2A2C24)}, |
95 | .gpio_dir = 0x2A2C2C, | 98 | .gpio_dir = {.phys = CRONUS_ADDR(0x2A2C2C)}, |
96 | .watchdog = 0x2A2C30, | 99 | .watchdog = {.phys = CRONUS_ADDR(0x2A2C30)}, |
97 | .front_panel = 0x2A3800, | 100 | .front_panel = {.phys = CRONUS_ADDR(0x2A3800)}, |
98 | }; | 101 | }; |
diff --git a/arch/mips/powertv/asic/asic-zeus.c b/arch/mips/powertv/asic/asic-zeus.c index 1469daab920e..095cbe10ebb9 100644 --- a/arch/mips/powertv/asic/asic-zeus.c +++ b/arch/mips/powertv/asic/asic-zeus.c | |||
@@ -23,76 +23,79 @@ | |||
23 | * Description: Defines the platform resources for the SA settop. | 23 | * Description: Defines the platform resources for the SA settop. |
24 | */ | 24 | */ |
25 | 25 | ||
26 | #include <linux/init.h> | ||
26 | #include <asm/mach-powertv/asic.h> | 27 | #include <asm/mach-powertv/asic.h> |
27 | 28 | ||
28 | const struct register_map zeus_register_map = { | 29 | #define ZEUS_ADDR(x) (ZEUS_IO_BASE + (x)) |
29 | .eic_slow0_strt_add = 0x000000, | ||
30 | .eic_cfg_bits = 0x000038, | ||
31 | .eic_ready_status = 0x00004c, | ||
32 | 30 | ||
33 | .chipver3 = 0x280800, | 31 | const struct register_map zeus_register_map __initdata = { |
34 | .chipver2 = 0x280804, | 32 | .eic_slow0_strt_add = {.phys = ZEUS_ADDR(0x000000)}, |
35 | .chipver1 = 0x280808, | 33 | .eic_cfg_bits = {.phys = ZEUS_ADDR(0x000038)}, |
36 | .chipver0 = 0x28080c, | 34 | .eic_ready_status = {.phys = ZEUS_ADDR(0x00004c)}, |
35 | |||
36 | .chipver3 = {.phys = ZEUS_ADDR(0x280800)}, | ||
37 | .chipver2 = {.phys = ZEUS_ADDR(0x280804)}, | ||
38 | .chipver1 = {.phys = ZEUS_ADDR(0x280808)}, | ||
39 | .chipver0 = {.phys = ZEUS_ADDR(0x28080c)}, | ||
37 | 40 | ||
38 | /* The registers of IRBlaster */ | 41 | /* The registers of IRBlaster */ |
39 | .uart1_intstat = 0x281800, | 42 | .uart1_intstat = {.phys = ZEUS_ADDR(0x281800)}, |
40 | .uart1_inten = 0x281804, | 43 | .uart1_inten = {.phys = ZEUS_ADDR(0x281804)}, |
41 | .uart1_config1 = 0x281808, | 44 | .uart1_config1 = {.phys = ZEUS_ADDR(0x281808)}, |
42 | .uart1_config2 = 0x28180C, | 45 | .uart1_config2 = {.phys = ZEUS_ADDR(0x28180C)}, |
43 | .uart1_divisorhi = 0x281810, | 46 | .uart1_divisorhi = {.phys = ZEUS_ADDR(0x281810)}, |
44 | .uart1_divisorlo = 0x281814, | 47 | .uart1_divisorlo = {.phys = ZEUS_ADDR(0x281814)}, |
45 | .uart1_data = 0x281818, | 48 | .uart1_data = {.phys = ZEUS_ADDR(0x281818)}, |
46 | .uart1_status = 0x28181C, | 49 | .uart1_status = {.phys = ZEUS_ADDR(0x28181C)}, |
47 | 50 | ||
48 | .int_stat_3 = 0x282800, | 51 | .int_stat_3 = {.phys = ZEUS_ADDR(0x282800)}, |
49 | .int_stat_2 = 0x282804, | 52 | .int_stat_2 = {.phys = ZEUS_ADDR(0x282804)}, |
50 | .int_stat_1 = 0x282808, | 53 | .int_stat_1 = {.phys = ZEUS_ADDR(0x282808)}, |
51 | .int_stat_0 = 0x28280c, | 54 | .int_stat_0 = {.phys = ZEUS_ADDR(0x28280c)}, |
52 | .int_config = 0x282810, | 55 | .int_config = {.phys = ZEUS_ADDR(0x282810)}, |
53 | .int_int_scan = 0x282818, | 56 | .int_int_scan = {.phys = ZEUS_ADDR(0x282818)}, |
54 | .ien_int_3 = 0x282830, | 57 | .ien_int_3 = {.phys = ZEUS_ADDR(0x282830)}, |
55 | .ien_int_2 = 0x282834, | 58 | .ien_int_2 = {.phys = ZEUS_ADDR(0x282834)}, |
56 | .ien_int_1 = 0x282838, | 59 | .ien_int_1 = {.phys = ZEUS_ADDR(0x282838)}, |
57 | .ien_int_0 = 0x28283c, | 60 | .ien_int_0 = {.phys = ZEUS_ADDR(0x28283c)}, |
58 | .int_level_3_3 = 0x282880, | 61 | .int_level_3_3 = {.phys = ZEUS_ADDR(0x282880)}, |
59 | .int_level_3_2 = 0x282884, | 62 | .int_level_3_2 = {.phys = ZEUS_ADDR(0x282884)}, |
60 | .int_level_3_1 = 0x282888, | 63 | .int_level_3_1 = {.phys = ZEUS_ADDR(0x282888)}, |
61 | .int_level_3_0 = 0x28288c, | 64 | .int_level_3_0 = {.phys = ZEUS_ADDR(0x28288c)}, |
62 | .int_level_2_3 = 0x282890, | 65 | .int_level_2_3 = {.phys = ZEUS_ADDR(0x282890)}, |
63 | .int_level_2_2 = 0x282894, | 66 | .int_level_2_2 = {.phys = ZEUS_ADDR(0x282894)}, |
64 | .int_level_2_1 = 0x282898, | 67 | .int_level_2_1 = {.phys = ZEUS_ADDR(0x282898)}, |
65 | .int_level_2_0 = 0x28289c, | 68 | .int_level_2_0 = {.phys = ZEUS_ADDR(0x28289c)}, |
66 | .int_level_1_3 = 0x2828a0, | 69 | .int_level_1_3 = {.phys = ZEUS_ADDR(0x2828a0)}, |
67 | .int_level_1_2 = 0x2828a4, | 70 | .int_level_1_2 = {.phys = ZEUS_ADDR(0x2828a4)}, |
68 | .int_level_1_1 = 0x2828a8, | 71 | .int_level_1_1 = {.phys = ZEUS_ADDR(0x2828a8)}, |
69 | .int_level_1_0 = 0x2828ac, | 72 | .int_level_1_0 = {.phys = ZEUS_ADDR(0x2828ac)}, |
70 | .int_level_0_3 = 0x2828b0, | 73 | .int_level_0_3 = {.phys = ZEUS_ADDR(0x2828b0)}, |
71 | .int_level_0_2 = 0x2828b4, | 74 | .int_level_0_2 = {.phys = ZEUS_ADDR(0x2828b4)}, |
72 | .int_level_0_1 = 0x2828b8, | 75 | .int_level_0_1 = {.phys = ZEUS_ADDR(0x2828b8)}, |
73 | .int_level_0_0 = 0x2828bc, | 76 | .int_level_0_0 = {.phys = ZEUS_ADDR(0x2828bc)}, |
74 | .int_docsis_en = 0x2828F4, | 77 | .int_docsis_en = {.phys = ZEUS_ADDR(0x2828F4)}, |
75 | 78 | ||
76 | .mips_pll_setup = 0x1a0000, | 79 | .mips_pll_setup = {.phys = ZEUS_ADDR(0x1a0000)}, |
77 | .usb_fs = 0x1a0018, | 80 | .usb_fs = {.phys = ZEUS_ADDR(0x1a0018)}, |
78 | .test_bus = 0x1a0238, | 81 | .test_bus = {.phys = ZEUS_ADDR(0x1a0238)}, |
79 | .crt_spare = 0x1a0090, | 82 | .crt_spare = {.phys = ZEUS_ADDR(0x1a0090)}, |
80 | .usb2_ohci_int_mask = 0x1e000c, | 83 | .usb2_ohci_int_mask = {.phys = ZEUS_ADDR(0x1e000c)}, |
81 | .usb2_strap = 0x1e0014, | 84 | .usb2_strap = {.phys = ZEUS_ADDR(0x1e0014)}, |
82 | .ehci_hcapbase = 0x1FFE00, | 85 | .ehci_hcapbase = {.phys = ZEUS_ADDR(0x1FFE00)}, |
83 | .ohci_hc_revision = 0x1FFC00, | 86 | .ohci_hc_revision = {.phys = ZEUS_ADDR(0x1FFC00)}, |
84 | .bcm1_bs_lmi_steer = 0x2C0008, | 87 | .bcm1_bs_lmi_steer = {.phys = ZEUS_ADDR(0x2C0008)}, |
85 | .usb2_control = 0x2c01a0, | 88 | .usb2_control = {.phys = ZEUS_ADDR(0x2c01a0)}, |
86 | .usb2_stbus_obc = 0x1FFF00, | 89 | .usb2_stbus_obc = {.phys = ZEUS_ADDR(0x1FFF00)}, |
87 | .usb2_stbus_mess_size = 0x1FFF04, | 90 | .usb2_stbus_mess_size = {.phys = ZEUS_ADDR(0x1FFF04)}, |
88 | .usb2_stbus_chunk_size = 0x1FFF08, | 91 | .usb2_stbus_chunk_size = {.phys = ZEUS_ADDR(0x1FFF08)}, |
89 | 92 | ||
90 | .pcie_regs = 0x200000, | 93 | .pcie_regs = {.phys = ZEUS_ADDR(0x200000)}, |
91 | .tim_ch = 0x282C10, | 94 | .tim_ch = {.phys = ZEUS_ADDR(0x282C10)}, |
92 | .tim_cl = 0x282C14, | 95 | .tim_cl = {.phys = ZEUS_ADDR(0x282C14)}, |
93 | .gpio_dout = 0x282c20, | 96 | .gpio_dout = {.phys = ZEUS_ADDR(0x282c20)}, |
94 | .gpio_din = 0x282c24, | 97 | .gpio_din = {.phys = ZEUS_ADDR(0x282c24)}, |
95 | .gpio_dir = 0x282c2C, | 98 | .gpio_dir = {.phys = ZEUS_ADDR(0x282c2C)}, |
96 | .watchdog = 0x282c30, | 99 | .watchdog = {.phys = ZEUS_ADDR(0x282c30)}, |
97 | .front_panel = 0x283800, | 100 | .front_panel = {.phys = ZEUS_ADDR(0x283800)}, |
98 | }; | 101 | }; |
diff --git a/arch/mips/powertv/asic/asic_devices.c b/arch/mips/powertv/asic/asic_devices.c index bae82880b6b5..6a882194e063 100644 --- a/arch/mips/powertv/asic/asic_devices.c +++ b/arch/mips/powertv/asic/asic_devices.c | |||
@@ -67,8 +67,8 @@ enum asic_type asic; | |||
67 | 67 | ||
68 | unsigned int platform_features; | 68 | unsigned int platform_features; |
69 | unsigned int platform_family; | 69 | unsigned int platform_family; |
70 | const struct register_map *register_map; | 70 | struct register_map _asic_register_map; |
71 | EXPORT_SYMBOL(register_map); /* Exported for testing */ | 71 | EXPORT_SYMBOL(_asic_register_map); /* Exported for testing */ |
72 | unsigned long asic_phy_base; | 72 | unsigned long asic_phy_base; |
73 | unsigned long asic_base; | 73 | unsigned long asic_base; |
74 | EXPORT_SYMBOL(asic_base); /* Exported for testing */ | 74 | EXPORT_SYMBOL(asic_base); /* Exported for testing */ |
@@ -418,6 +418,15 @@ void platform_unconfigure_usb_ohci() | |||
418 | { | 418 | { |
419 | } | 419 | } |
420 | 420 | ||
421 | static void __init set_register_map(unsigned long phys_base, | ||
422 | const struct register_map *map) | ||
423 | { | ||
424 | asic_phy_base = phys_base; | ||
425 | _asic_register_map = *map; | ||
426 | register_map_virtualize(&_asic_register_map); | ||
427 | asic_base = (unsigned long)ioremap_nocache(phys_base, ASIC_IO_SIZE); | ||
428 | } | ||
429 | |||
421 | /** | 430 | /** |
422 | * configure_platform - configuration based on platform type. | 431 | * configure_platform - configuration based on platform type. |
423 | */ | 432 | */ |
@@ -431,10 +440,7 @@ void __init configure_platform(void) | |||
431 | case FAMILY_1500VZF: | 440 | case FAMILY_1500VZF: |
432 | platform_features = FFS_CAPABLE; | 441 | platform_features = FFS_CAPABLE; |
433 | asic = ASIC_CALLIOPE; | 442 | asic = ASIC_CALLIOPE; |
434 | asic_phy_base = CALLIOPE_IO_BASE; | 443 | set_register_map(CALLIOPE_IO_BASE, &calliope_register_map); |
435 | register_map = &calliope_register_map; | ||
436 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
437 | ASIC_IO_SIZE); | ||
438 | 444 | ||
439 | if (platform_family == FAMILY_1500VZE) { | 445 | if (platform_family == FAMILY_1500VZE) { |
440 | gp_resources = non_dvr_vze_calliope_resources; | 446 | gp_resources = non_dvr_vze_calliope_resources; |
@@ -455,10 +461,7 @@ void __init configure_platform(void) | |||
455 | platform_features = FFS_CAPABLE | PCIE_CAPABLE | | 461 | platform_features = FFS_CAPABLE | PCIE_CAPABLE | |
456 | DISPLAY_CAPABLE; | 462 | DISPLAY_CAPABLE; |
457 | asic = ASIC_ZEUS; | 463 | asic = ASIC_ZEUS; |
458 | asic_phy_base = ZEUS_IO_BASE; | 464 | set_register_map(ZEUS_IO_BASE, &zeus_register_map); |
459 | register_map = &zeus_register_map; | ||
460 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
461 | ASIC_IO_SIZE); | ||
462 | gp_resources = non_dvr_zeus_resources; | 465 | gp_resources = non_dvr_zeus_resources; |
463 | 466 | ||
464 | pr_info("Platform: 4500 - ZEUS, NON_DVR_CAPABLE\n"); | 467 | pr_info("Platform: 4500 - ZEUS, NON_DVR_CAPABLE\n"); |
@@ -471,11 +474,6 @@ void __init configure_platform(void) | |||
471 | /* The settop has PCIE but it isn't used, so don't advertise | 474 | /* The settop has PCIE but it isn't used, so don't advertise |
472 | * it*/ | 475 | * it*/ |
473 | platform_features = FFS_CAPABLE | DISPLAY_CAPABLE; | 476 | platform_features = FFS_CAPABLE | DISPLAY_CAPABLE; |
474 | asic_phy_base = CRONUS_IO_BASE; /* same as Cronus */ | ||
475 | register_map = &cronus_register_map; /* same as Cronus */ | ||
476 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
477 | ASIC_IO_SIZE); | ||
478 | gp_resources = non_dvr_cronuslite_resources; | ||
479 | 477 | ||
480 | /* ASIC version will determine if this is a real CronusLite or | 478 | /* ASIC version will determine if this is a real CronusLite or |
481 | * Castrati(Cronus) */ | 479 | * Castrati(Cronus) */ |
@@ -489,6 +487,9 @@ void __init configure_platform(void) | |||
489 | else | 487 | else |
490 | asic = ASIC_CRONUSLITE; | 488 | asic = ASIC_CRONUSLITE; |
491 | 489 | ||
490 | /* Cronus and Cronus Lite have the same register map */ | ||
491 | set_register_map(CRONUS_IO_BASE, &cronus_register_map); | ||
492 | gp_resources = non_dvr_cronuslite_resources; | ||
492 | pr_info("Platform: 4600 - %s, NON_DVR_CAPABLE, " | 493 | pr_info("Platform: 4600 - %s, NON_DVR_CAPABLE, " |
493 | "chipversion=0x%08X\n", | 494 | "chipversion=0x%08X\n", |
494 | (asic == ASIC_CRONUS) ? "CRONUS" : "CRONUS LITE", | 495 | (asic == ASIC_CRONUS) ? "CRONUS" : "CRONUS LITE", |
@@ -498,10 +499,7 @@ void __init configure_platform(void) | |||
498 | case FAMILY_4600VZA: | 499 | case FAMILY_4600VZA: |
499 | platform_features = FFS_CAPABLE | DISPLAY_CAPABLE; | 500 | platform_features = FFS_CAPABLE | DISPLAY_CAPABLE; |
500 | asic = ASIC_CRONUS; | 501 | asic = ASIC_CRONUS; |
501 | asic_phy_base = CRONUS_IO_BASE; | 502 | set_register_map(CRONUS_IO_BASE, &cronus_register_map); |
502 | register_map = &cronus_register_map; | ||
503 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
504 | ASIC_IO_SIZE); | ||
505 | gp_resources = non_dvr_cronus_resources; | 503 | gp_resources = non_dvr_cronus_resources; |
506 | 504 | ||
507 | pr_info("Platform: Vz Class A - CRONUS, NON_DVR_CAPABLE\n"); | 505 | pr_info("Platform: Vz Class A - CRONUS, NON_DVR_CAPABLE\n"); |
@@ -512,10 +510,7 @@ void __init configure_platform(void) | |||
512 | platform_features = DVR_CAPABLE | PCIE_CAPABLE | | 510 | platform_features = DVR_CAPABLE | PCIE_CAPABLE | |
513 | DISPLAY_CAPABLE; | 511 | DISPLAY_CAPABLE; |
514 | asic = ASIC_ZEUS; | 512 | asic = ASIC_ZEUS; |
515 | asic_phy_base = ZEUS_IO_BASE; | 513 | set_register_map(ZEUS_IO_BASE, &zeus_register_map); |
516 | register_map = &zeus_register_map; | ||
517 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
518 | ASIC_IO_SIZE); | ||
519 | gp_resources = dvr_zeus_resources; | 514 | gp_resources = dvr_zeus_resources; |
520 | 515 | ||
521 | pr_info("Platform: 8500/RNG200 - ZEUS, DVR_CAPABLE\n"); | 516 | pr_info("Platform: 8500/RNG200 - ZEUS, DVR_CAPABLE\n"); |
@@ -526,10 +521,7 @@ void __init configure_platform(void) | |||
526 | platform_features = DVR_CAPABLE | PCIE_CAPABLE | | 521 | platform_features = DVR_CAPABLE | PCIE_CAPABLE | |
527 | DISPLAY_CAPABLE; | 522 | DISPLAY_CAPABLE; |
528 | asic = ASIC_CRONUS; | 523 | asic = ASIC_CRONUS; |
529 | asic_phy_base = CRONUS_IO_BASE; | 524 | set_register_map(CRONUS_IO_BASE, &cronus_register_map); |
530 | register_map = &cronus_register_map; | ||
531 | asic_base = (unsigned long)ioremap_nocache(asic_phy_base, | ||
532 | ASIC_IO_SIZE); | ||
533 | gp_resources = dvr_cronus_resources; | 525 | gp_resources = dvr_cronus_resources; |
534 | 526 | ||
535 | pr_info("Platform: 8600/Vz Class B - CRONUS, " | 527 | pr_info("Platform: 8600/Vz Class B - CRONUS, " |
diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c index 46f00691f448..31e2583ec622 100644 --- a/arch/mips/sni/rm200.c +++ b/arch/mips/sni/rm200.c | |||
@@ -404,7 +404,7 @@ void __init sni_rm200_i8259_irqs(void) | |||
404 | if (!rm200_pic_master) | 404 | if (!rm200_pic_master) |
405 | return; | 405 | return; |
406 | rm200_pic_slave = ioremap_nocache(0x160000a0, 4); | 406 | rm200_pic_slave = ioremap_nocache(0x160000a0, 4); |
407 | if (!rm200_pic_master) { | 407 | if (!rm200_pic_slave) { |
408 | iounmap(rm200_pic_master); | 408 | iounmap(rm200_pic_master); |
409 | return; | 409 | return; |
410 | } | 410 | } |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index fb37ac52e46c..35c827e94e31 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -468,7 +468,9 @@ handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka, | |||
468 | recalc_sigpending(); | 468 | recalc_sigpending(); |
469 | spin_unlock_irq(¤t->sighand->siglock); | 469 | spin_unlock_irq(¤t->sighand->siglock); |
470 | 470 | ||
471 | tracehook_signal_handler(sig, info, ka, regs, 0); | 471 | tracehook_signal_handler(sig, info, ka, regs, |
472 | test_thread_flag(TIF_SINGLESTEP) || | ||
473 | test_thread_flag(TIF_BLOCKSTEP)); | ||
472 | 474 | ||
473 | return 1; | 475 | return 1; |
474 | } | 476 | } |
diff --git a/arch/powerpc/configs/40x/acadia_defconfig b/arch/powerpc/configs/40x/acadia_defconfig index 173a5bb77ca1..8e95f8d227b9 100644 --- a/arch/powerpc/configs/40x/acadia_defconfig +++ b/arch/powerpc/configs/40x/acadia_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:17:46 2009 | 4 | # Mon Jan 4 15:33:07 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -27,15 +28,18 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
30 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
31 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
32 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
33 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
34 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
38 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
39 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
40 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
41 | CONFIG_PPC=y | 45 | CONFIG_PPC=y |
@@ -49,11 +53,15 @@ CONFIG_PPC_UDBG_16550=y | |||
49 | # CONFIG_GENERIC_TBSYNC is not set | 53 | # CONFIG_GENERIC_TBSYNC is not set |
50 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
51 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
56 | CONFIG_DTC=y | ||
52 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
53 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
54 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
55 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
64 | CONFIG_CONSTRUCTORS=y | ||
57 | 65 | ||
58 | # | 66 | # |
59 | # General setup | 67 | # General setup |
@@ -67,9 +75,21 @@ CONFIG_SWAP=y | |||
67 | CONFIG_SYSVIPC=y | 75 | CONFIG_SYSVIPC=y |
68 | CONFIG_SYSVIPC_SYSCTL=y | 76 | CONFIG_SYSVIPC_SYSCTL=y |
69 | CONFIG_POSIX_MQUEUE=y | 77 | CONFIG_POSIX_MQUEUE=y |
78 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 79 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 80 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_AUDIT is not set | 81 | # CONFIG_AUDIT is not set |
82 | |||
83 | # | ||
84 | # RCU Subsystem | ||
85 | # | ||
86 | CONFIG_TREE_RCU=y | ||
87 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
88 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
92 | # CONFIG_TREE_RCU_TRACE is not set | ||
73 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
74 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
75 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -84,31 +104,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
84 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
85 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
86 | CONFIG_INITRAMFS_SOURCE="" | 106 | CONFIG_INITRAMFS_SOURCE="" |
107 | CONFIG_RD_GZIP=y | ||
108 | # CONFIG_RD_BZIP2 is not set | ||
109 | # CONFIG_RD_LZMA is not set | ||
87 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 110 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
88 | CONFIG_SYSCTL=y | 111 | CONFIG_SYSCTL=y |
112 | CONFIG_ANON_INODES=y | ||
89 | CONFIG_EMBEDDED=y | 113 | CONFIG_EMBEDDED=y |
90 | CONFIG_SYSCTL_SYSCALL=y | 114 | CONFIG_SYSCTL_SYSCALL=y |
91 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
92 | CONFIG_KALLSYMS_ALL=y | 116 | CONFIG_KALLSYMS_ALL=y |
93 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
94 | CONFIG_KALLSYMS_EXTRA_PASS=y | 117 | CONFIG_KALLSYMS_EXTRA_PASS=y |
95 | CONFIG_HOTPLUG=y | 118 | CONFIG_HOTPLUG=y |
96 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
97 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
98 | CONFIG_ELF_CORE=y | 121 | CONFIG_ELF_CORE=y |
99 | CONFIG_COMPAT_BRK=y | ||
100 | CONFIG_BASE_FULL=y | 122 | CONFIG_BASE_FULL=y |
101 | CONFIG_FUTEX=y | 123 | CONFIG_FUTEX=y |
102 | CONFIG_ANON_INODES=y | ||
103 | CONFIG_EPOLL=y | 124 | CONFIG_EPOLL=y |
104 | CONFIG_SIGNALFD=y | 125 | CONFIG_SIGNALFD=y |
105 | CONFIG_TIMERFD=y | 126 | CONFIG_TIMERFD=y |
106 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
107 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
108 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
109 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
110 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
111 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
140 | CONFIG_COMPAT_BRK=y | ||
112 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
113 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
114 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
@@ -120,6 +149,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
159 | # CONFIG_SLOW_WORK is not set | ||
123 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
124 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
125 | CONFIG_RT_MUTEXES=y | 162 | CONFIG_RT_MUTEXES=y |
@@ -131,8 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
131 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
132 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
133 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
134 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
135 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
136 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
137 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
138 | 174 | ||
@@ -140,19 +176,41 @@ CONFIG_LBD=y | |||
140 | # IO Schedulers | 176 | # IO Schedulers |
141 | # | 177 | # |
142 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
145 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
146 | CONFIG_DEFAULT_AS=y | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
148 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
149 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
151 | CONFIG_CLASSIC_RCU=y | 185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
152 | # CONFIG_TREE_RCU is not set | 186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
153 | # CONFIG_PREEMPT_RCU is not set | 187 | # CONFIG_INLINE_SPIN_LOCK is not set |
154 | # CONFIG_TREE_RCU_TRACE is not set | 188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU_TRACE is not set | 189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
156 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
157 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 215 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
158 | 216 | ||
@@ -166,6 +224,7 @@ CONFIG_CLASSIC_RCU=y | |||
166 | CONFIG_ACADIA=y | 224 | CONFIG_ACADIA=y |
167 | # CONFIG_EP405 is not set | 225 | # CONFIG_EP405 is not set |
168 | # CONFIG_HCU4 is not set | 226 | # CONFIG_HCU4 is not set |
227 | # CONFIG_HOTFOOT is not set | ||
169 | # CONFIG_KILAUEA is not set | 228 | # CONFIG_KILAUEA is not set |
170 | # CONFIG_MAKALU is not set | 229 | # CONFIG_MAKALU is not set |
171 | # CONFIG_WALNUT is not set | 230 | # CONFIG_WALNUT is not set |
@@ -208,10 +267,12 @@ CONFIG_BINFMT_ELF=y | |||
208 | # CONFIG_BINFMT_MISC is not set | 267 | # CONFIG_BINFMT_MISC is not set |
209 | # CONFIG_MATH_EMULATION is not set | 268 | # CONFIG_MATH_EMULATION is not set |
210 | # CONFIG_IOMMU_HELPER is not set | 269 | # CONFIG_IOMMU_HELPER is not set |
211 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 270 | # CONFIG_SWIOTLB is not set |
212 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
213 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 272 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
214 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
274 | CONFIG_SPARSE_IRQ=y | ||
275 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
215 | CONFIG_ARCH_FLATMEM_ENABLE=y | 276 | CONFIG_ARCH_FLATMEM_ENABLE=y |
216 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 277 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
217 | CONFIG_SELECT_MEMORY_MODEL=y | 278 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -227,10 +288,12 @@ CONFIG_MIGRATION=y | |||
227 | CONFIG_ZONE_DMA_FLAG=1 | 288 | CONFIG_ZONE_DMA_FLAG=1 |
228 | CONFIG_BOUNCE=y | 289 | CONFIG_BOUNCE=y |
229 | CONFIG_VIRT_TO_BUS=y | 290 | CONFIG_VIRT_TO_BUS=y |
230 | CONFIG_UNEVICTABLE_LRU=y | 291 | # CONFIG_KSM is not set |
292 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
231 | CONFIG_PPC_4K_PAGES=y | 293 | CONFIG_PPC_4K_PAGES=y |
232 | # CONFIG_PPC_16K_PAGES is not set | 294 | # CONFIG_PPC_16K_PAGES is not set |
233 | # CONFIG_PPC_64K_PAGES is not set | 295 | # CONFIG_PPC_64K_PAGES is not set |
296 | # CONFIG_PPC_256K_PAGES is not set | ||
234 | CONFIG_FORCE_MAX_ZONEORDER=11 | 297 | CONFIG_FORCE_MAX_ZONEORDER=11 |
235 | CONFIG_PROC_DEVICETREE=y | 298 | CONFIG_PROC_DEVICETREE=y |
236 | # CONFIG_CMDLINE_BOOL is not set | 299 | # CONFIG_CMDLINE_BOOL is not set |
@@ -255,6 +318,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
255 | # CONFIG_PCI_LEGACY is not set | 318 | # CONFIG_PCI_LEGACY is not set |
256 | # CONFIG_PCI_DEBUG is not set | 319 | # CONFIG_PCI_DEBUG is not set |
257 | # CONFIG_PCI_STUB is not set | 320 | # CONFIG_PCI_STUB is not set |
321 | # CONFIG_PCI_IOV is not set | ||
258 | # CONFIG_PCCARD is not set | 322 | # CONFIG_PCCARD is not set |
259 | # CONFIG_HOTPLUG_PCI is not set | 323 | # CONFIG_HOTPLUG_PCI is not set |
260 | # CONFIG_HAS_RAPIDIO is not set | 324 | # CONFIG_HAS_RAPIDIO is not set |
@@ -272,14 +336,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
272 | CONFIG_KERNEL_START=0xc0000000 | 336 | CONFIG_KERNEL_START=0xc0000000 |
273 | CONFIG_PHYSICAL_START=0x00000000 | 337 | CONFIG_PHYSICAL_START=0x00000000 |
274 | CONFIG_TASK_SIZE=0xc0000000 | 338 | CONFIG_TASK_SIZE=0xc0000000 |
275 | CONFIG_CONSISTENT_START=0xff100000 | ||
276 | CONFIG_CONSISTENT_SIZE=0x00200000 | 339 | CONFIG_CONSISTENT_SIZE=0x00200000 |
277 | CONFIG_NET=y | 340 | CONFIG_NET=y |
278 | 341 | ||
279 | # | 342 | # |
280 | # Networking options | 343 | # Networking options |
281 | # | 344 | # |
282 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
283 | CONFIG_PACKET=y | 345 | CONFIG_PACKET=y |
284 | # CONFIG_PACKET_MMAP is not set | 346 | # CONFIG_PACKET_MMAP is not set |
285 | CONFIG_UNIX=y | 347 | CONFIG_UNIX=y |
@@ -316,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
316 | # CONFIG_NETFILTER is not set | 378 | # CONFIG_NETFILTER is not set |
317 | # CONFIG_IP_DCCP is not set | 379 | # CONFIG_IP_DCCP is not set |
318 | # CONFIG_IP_SCTP is not set | 380 | # CONFIG_IP_SCTP is not set |
381 | # CONFIG_RDS is not set | ||
319 | # CONFIG_TIPC is not set | 382 | # CONFIG_TIPC is not set |
320 | # CONFIG_ATM is not set | 383 | # CONFIG_ATM is not set |
321 | # CONFIG_BRIDGE is not set | 384 | # CONFIG_BRIDGE is not set |
@@ -329,6 +392,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
329 | # CONFIG_LAPB is not set | 392 | # CONFIG_LAPB is not set |
330 | # CONFIG_ECONET is not set | 393 | # CONFIG_ECONET is not set |
331 | # CONFIG_WAN_ROUTER is not set | 394 | # CONFIG_WAN_ROUTER is not set |
395 | # CONFIG_PHONET is not set | ||
396 | # CONFIG_IEEE802154 is not set | ||
332 | # CONFIG_NET_SCHED is not set | 397 | # CONFIG_NET_SCHED is not set |
333 | # CONFIG_DCB is not set | 398 | # CONFIG_DCB is not set |
334 | 399 | ||
@@ -341,8 +406,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
341 | # CONFIG_IRDA is not set | 406 | # CONFIG_IRDA is not set |
342 | # CONFIG_BT is not set | 407 | # CONFIG_BT is not set |
343 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
344 | # CONFIG_PHONET is not set | 409 | CONFIG_WIRELESS=y |
345 | # CONFIG_WIRELESS is not set | 410 | # CONFIG_CFG80211 is not set |
411 | # CONFIG_LIB80211 is not set | ||
412 | |||
413 | # | ||
414 | # CFG80211 needs to be enabled for MAC80211 | ||
415 | # | ||
346 | # CONFIG_WIMAX is not set | 416 | # CONFIG_WIMAX is not set |
347 | # CONFIG_RFKILL is not set | 417 | # CONFIG_RFKILL is not set |
348 | # CONFIG_NET_9P is not set | 418 | # CONFIG_NET_9P is not set |
@@ -355,6 +425,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
355 | # Generic Driver Options | 425 | # Generic Driver Options |
356 | # | 426 | # |
357 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 427 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
428 | # CONFIG_DEVTMPFS is not set | ||
358 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
359 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
360 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
@@ -367,9 +438,9 @@ CONFIG_CONNECTOR=y | |||
367 | CONFIG_PROC_EVENTS=y | 438 | CONFIG_PROC_EVENTS=y |
368 | CONFIG_MTD=y | 439 | CONFIG_MTD=y |
369 | # CONFIG_MTD_DEBUG is not set | 440 | # CONFIG_MTD_DEBUG is not set |
441 | # CONFIG_MTD_TESTS is not set | ||
370 | # CONFIG_MTD_CONCAT is not set | 442 | # CONFIG_MTD_CONCAT is not set |
371 | CONFIG_MTD_PARTITIONS=y | 443 | CONFIG_MTD_PARTITIONS=y |
372 | # CONFIG_MTD_TESTS is not set | ||
373 | # CONFIG_MTD_REDBOOT_PARTS is not set | 444 | # CONFIG_MTD_REDBOOT_PARTS is not set |
374 | CONFIG_MTD_CMDLINE_PARTS=y | 445 | CONFIG_MTD_CMDLINE_PARTS=y |
375 | CONFIG_MTD_OF_PARTS=y | 446 | CONFIG_MTD_OF_PARTS=y |
@@ -445,7 +516,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
445 | # LPDDR flash memory drivers | 516 | # LPDDR flash memory drivers |
446 | # | 517 | # |
447 | # CONFIG_MTD_LPDDR is not set | 518 | # CONFIG_MTD_LPDDR is not set |
448 | # CONFIG_MTD_QINFO_PROBE is not set | ||
449 | 519 | ||
450 | # | 520 | # |
451 | # UBI - Unsorted block images | 521 | # UBI - Unsorted block images |
@@ -461,6 +531,7 @@ CONFIG_BLK_DEV=y | |||
461 | # CONFIG_BLK_DEV_UMEM is not set | 531 | # CONFIG_BLK_DEV_UMEM is not set |
462 | # CONFIG_BLK_DEV_COW_COMMON is not set | 532 | # CONFIG_BLK_DEV_COW_COMMON is not set |
463 | # CONFIG_BLK_DEV_LOOP is not set | 533 | # CONFIG_BLK_DEV_LOOP is not set |
534 | # CONFIG_BLK_DEV_DRBD is not set | ||
464 | # CONFIG_BLK_DEV_NBD is not set | 535 | # CONFIG_BLK_DEV_NBD is not set |
465 | # CONFIG_BLK_DEV_SX8 is not set | 536 | # CONFIG_BLK_DEV_SX8 is not set |
466 | CONFIG_BLK_DEV_RAM=y | 537 | CONFIG_BLK_DEV_RAM=y |
@@ -491,7 +562,11 @@ CONFIG_HAVE_IDE=y | |||
491 | # | 562 | # |
492 | 563 | ||
493 | # | 564 | # |
494 | # Enable only one of the two stacks, unless you know what you are doing | 565 | # You can enable one or both FireWire driver stacks. |
566 | # | ||
567 | |||
568 | # | ||
569 | # See the help texts for more information. | ||
495 | # | 570 | # |
496 | # CONFIG_FIREWIRE is not set | 571 | # CONFIG_FIREWIRE is not set |
497 | # CONFIG_IEEE1394 is not set | 572 | # CONFIG_IEEE1394 is not set |
@@ -512,6 +587,8 @@ CONFIG_MII=y | |||
512 | # CONFIG_SUNGEM is not set | 587 | # CONFIG_SUNGEM is not set |
513 | # CONFIG_CASSINI is not set | 588 | # CONFIG_CASSINI is not set |
514 | # CONFIG_NET_VENDOR_3COM is not set | 589 | # CONFIG_NET_VENDOR_3COM is not set |
590 | # CONFIG_ETHOC is not set | ||
591 | # CONFIG_DNET is not set | ||
515 | # CONFIG_NET_TULIP is not set | 592 | # CONFIG_NET_TULIP is not set |
516 | # CONFIG_HP100 is not set | 593 | # CONFIG_HP100 is not set |
517 | CONFIG_IBM_NEW_EMAC=y | 594 | CONFIG_IBM_NEW_EMAC=y |
@@ -530,17 +607,18 @@ CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT=y | |||
530 | CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y | 607 | CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y |
531 | # CONFIG_NET_PCI is not set | 608 | # CONFIG_NET_PCI is not set |
532 | # CONFIG_B44 is not set | 609 | # CONFIG_B44 is not set |
610 | # CONFIG_KS8842 is not set | ||
611 | # CONFIG_KS8851_MLL is not set | ||
533 | # CONFIG_ATL2 is not set | 612 | # CONFIG_ATL2 is not set |
613 | # CONFIG_XILINX_EMACLITE is not set | ||
534 | # CONFIG_NETDEV_1000 is not set | 614 | # CONFIG_NETDEV_1000 is not set |
535 | # CONFIG_NETDEV_10000 is not set | 615 | # CONFIG_NETDEV_10000 is not set |
536 | # CONFIG_TR is not set | 616 | # CONFIG_TR is not set |
537 | 617 | CONFIG_WLAN=y | |
538 | # | 618 | # CONFIG_AIRO is not set |
539 | # Wireless LAN | 619 | # CONFIG_ATMEL is not set |
540 | # | 620 | # CONFIG_PRISM54 is not set |
541 | # CONFIG_WLAN_PRE80211 is not set | 621 | # CONFIG_HOSTAP is not set |
542 | # CONFIG_WLAN_80211 is not set | ||
543 | # CONFIG_IWLWIFI_LEDS is not set | ||
544 | 622 | ||
545 | # | 623 | # |
546 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 624 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -553,6 +631,7 @@ CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y | |||
553 | # CONFIG_NETCONSOLE is not set | 631 | # CONFIG_NETCONSOLE is not set |
554 | # CONFIG_NETPOLL is not set | 632 | # CONFIG_NETPOLL is not set |
555 | # CONFIG_NET_POLL_CONTROLLER is not set | 633 | # CONFIG_NET_POLL_CONTROLLER is not set |
634 | # CONFIG_VMXNET3 is not set | ||
556 | # CONFIG_ISDN is not set | 635 | # CONFIG_ISDN is not set |
557 | # CONFIG_PHONE is not set | 636 | # CONFIG_PHONE is not set |
558 | 637 | ||
@@ -598,6 +677,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
598 | # CONFIG_SERIAL_JSM is not set | 677 | # CONFIG_SERIAL_JSM is not set |
599 | CONFIG_SERIAL_OF_PLATFORM=y | 678 | CONFIG_SERIAL_OF_PLATFORM=y |
600 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 679 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
680 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
601 | CONFIG_UNIX98_PTYS=y | 681 | CONFIG_UNIX98_PTYS=y |
602 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 682 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
603 | CONFIG_LEGACY_PTYS=y | 683 | CONFIG_LEGACY_PTYS=y |
@@ -614,6 +694,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
614 | CONFIG_DEVPORT=y | 694 | CONFIG_DEVPORT=y |
615 | # CONFIG_I2C is not set | 695 | # CONFIG_I2C is not set |
616 | # CONFIG_SPI is not set | 696 | # CONFIG_SPI is not set |
697 | |||
698 | # | ||
699 | # PPS support | ||
700 | # | ||
701 | # CONFIG_PPS is not set | ||
617 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 702 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
618 | # CONFIG_GPIOLIB is not set | 703 | # CONFIG_GPIOLIB is not set |
619 | # CONFIG_W1 is not set | 704 | # CONFIG_W1 is not set |
@@ -636,27 +721,13 @@ CONFIG_SSB_POSSIBLE=y | |||
636 | # CONFIG_HTC_PASIC3 is not set | 721 | # CONFIG_HTC_PASIC3 is not set |
637 | # CONFIG_MFD_TMIO is not set | 722 | # CONFIG_MFD_TMIO is not set |
638 | # CONFIG_REGULATOR is not set | 723 | # CONFIG_REGULATOR is not set |
639 | 724 | # CONFIG_MEDIA_SUPPORT is not set | |
640 | # | ||
641 | # Multimedia devices | ||
642 | # | ||
643 | |||
644 | # | ||
645 | # Multimedia core support | ||
646 | # | ||
647 | # CONFIG_VIDEO_DEV is not set | ||
648 | # CONFIG_DVB_CORE is not set | ||
649 | # CONFIG_VIDEO_MEDIA is not set | ||
650 | |||
651 | # | ||
652 | # Multimedia drivers | ||
653 | # | ||
654 | # CONFIG_DAB is not set | ||
655 | 725 | ||
656 | # | 726 | # |
657 | # Graphics support | 727 | # Graphics support |
658 | # | 728 | # |
659 | # CONFIG_AGP is not set | 729 | # CONFIG_AGP is not set |
730 | CONFIG_VGA_ARB=y | ||
660 | # CONFIG_DRM is not set | 731 | # CONFIG_DRM is not set |
661 | # CONFIG_VGASTATE is not set | 732 | # CONFIG_VGASTATE is not set |
662 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 733 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -678,7 +749,12 @@ CONFIG_SSB_POSSIBLE=y | |||
678 | # CONFIG_EDAC is not set | 749 | # CONFIG_EDAC is not set |
679 | # CONFIG_RTC_CLASS is not set | 750 | # CONFIG_RTC_CLASS is not set |
680 | # CONFIG_DMADEVICES is not set | 751 | # CONFIG_DMADEVICES is not set |
752 | # CONFIG_AUXDISPLAY is not set | ||
681 | # CONFIG_UIO is not set | 753 | # CONFIG_UIO is not set |
754 | |||
755 | # | ||
756 | # TI VLYNQ | ||
757 | # | ||
682 | # CONFIG_STAGING is not set | 758 | # CONFIG_STAGING is not set |
683 | 759 | ||
684 | # | 760 | # |
@@ -689,14 +765,17 @@ CONFIG_EXT2_FS=y | |||
689 | # CONFIG_EXT2_FS_XIP is not set | 765 | # CONFIG_EXT2_FS_XIP is not set |
690 | # CONFIG_EXT3_FS is not set | 766 | # CONFIG_EXT3_FS is not set |
691 | # CONFIG_EXT4_FS is not set | 767 | # CONFIG_EXT4_FS is not set |
768 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
692 | # CONFIG_REISERFS_FS is not set | 769 | # CONFIG_REISERFS_FS is not set |
693 | # CONFIG_JFS_FS is not set | 770 | # CONFIG_JFS_FS is not set |
694 | # CONFIG_FS_POSIX_ACL is not set | 771 | # CONFIG_FS_POSIX_ACL is not set |
695 | CONFIG_FILE_LOCKING=y | ||
696 | # CONFIG_XFS_FS is not set | 772 | # CONFIG_XFS_FS is not set |
697 | # CONFIG_GFS2_FS is not set | 773 | # CONFIG_GFS2_FS is not set |
698 | # CONFIG_OCFS2_FS is not set | 774 | # CONFIG_OCFS2_FS is not set |
699 | # CONFIG_BTRFS_FS is not set | 775 | # CONFIG_BTRFS_FS is not set |
776 | # CONFIG_NILFS2_FS is not set | ||
777 | CONFIG_FILE_LOCKING=y | ||
778 | CONFIG_FSNOTIFY=y | ||
700 | CONFIG_DNOTIFY=y | 779 | CONFIG_DNOTIFY=y |
701 | CONFIG_INOTIFY=y | 780 | CONFIG_INOTIFY=y |
702 | CONFIG_INOTIFY_USER=y | 781 | CONFIG_INOTIFY_USER=y |
@@ -706,6 +785,11 @@ CONFIG_INOTIFY_USER=y | |||
706 | # CONFIG_FUSE_FS is not set | 785 | # CONFIG_FUSE_FS is not set |
707 | 786 | ||
708 | # | 787 | # |
788 | # Caches | ||
789 | # | ||
790 | # CONFIG_FSCACHE is not set | ||
791 | |||
792 | # | ||
709 | # CD-ROM/DVD Filesystems | 793 | # CD-ROM/DVD Filesystems |
710 | # | 794 | # |
711 | # CONFIG_ISO9660_FS is not set | 795 | # CONFIG_ISO9660_FS is not set |
@@ -760,7 +844,6 @@ CONFIG_LOCKD=y | |||
760 | CONFIG_LOCKD_V4=y | 844 | CONFIG_LOCKD_V4=y |
761 | CONFIG_NFS_COMMON=y | 845 | CONFIG_NFS_COMMON=y |
762 | CONFIG_SUNRPC=y | 846 | CONFIG_SUNRPC=y |
763 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
764 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 847 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
765 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 848 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
766 | # CONFIG_SMB_FS is not set | 849 | # CONFIG_SMB_FS is not set |
@@ -776,6 +859,7 @@ CONFIG_SUNRPC=y | |||
776 | CONFIG_MSDOS_PARTITION=y | 859 | CONFIG_MSDOS_PARTITION=y |
777 | # CONFIG_NLS is not set | 860 | # CONFIG_NLS is not set |
778 | # CONFIG_DLM is not set | 861 | # CONFIG_DLM is not set |
862 | # CONFIG_BINARY_PRINTF is not set | ||
779 | 863 | ||
780 | # | 864 | # |
781 | # Library routines | 865 | # Library routines |
@@ -790,11 +874,13 @@ CONFIG_CRC32=y | |||
790 | # CONFIG_CRC7 is not set | 874 | # CONFIG_CRC7 is not set |
791 | # CONFIG_LIBCRC32C is not set | 875 | # CONFIG_LIBCRC32C is not set |
792 | CONFIG_ZLIB_INFLATE=y | 876 | CONFIG_ZLIB_INFLATE=y |
793 | CONFIG_PLIST=y | 877 | CONFIG_DECOMPRESS_GZIP=y |
794 | CONFIG_HAS_IOMEM=y | 878 | CONFIG_HAS_IOMEM=y |
795 | CONFIG_HAS_IOPORT=y | 879 | CONFIG_HAS_IOPORT=y |
796 | CONFIG_HAS_DMA=y | 880 | CONFIG_HAS_DMA=y |
797 | CONFIG_HAVE_LMB=y | 881 | CONFIG_HAVE_LMB=y |
882 | CONFIG_NLATTR=y | ||
883 | CONFIG_GENERIC_ATOMIC64=y | ||
798 | 884 | ||
799 | # | 885 | # |
800 | # Kernel hacking | 886 | # Kernel hacking |
@@ -804,6 +890,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
804 | CONFIG_ENABLE_MUST_CHECK=y | 890 | CONFIG_ENABLE_MUST_CHECK=y |
805 | CONFIG_FRAME_WARN=1024 | 891 | CONFIG_FRAME_WARN=1024 |
806 | CONFIG_MAGIC_SYSRQ=y | 892 | CONFIG_MAGIC_SYSRQ=y |
893 | # CONFIG_STRIP_ASM_SYMS is not set | ||
807 | # CONFIG_UNUSED_SYMBOLS is not set | 894 | # CONFIG_UNUSED_SYMBOLS is not set |
808 | CONFIG_DEBUG_FS=y | 895 | CONFIG_DEBUG_FS=y |
809 | # CONFIG_HEADERS_CHECK is not set | 896 | # CONFIG_HEADERS_CHECK is not set |
@@ -812,16 +899,23 @@ CONFIG_DEBUG_KERNEL=y | |||
812 | CONFIG_DETECT_SOFTLOCKUP=y | 899 | CONFIG_DETECT_SOFTLOCKUP=y |
813 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 900 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
814 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 901 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
902 | CONFIG_DETECT_HUNG_TASK=y | ||
903 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
904 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
815 | CONFIG_SCHED_DEBUG=y | 905 | CONFIG_SCHED_DEBUG=y |
816 | # CONFIG_SCHEDSTATS is not set | 906 | # CONFIG_SCHEDSTATS is not set |
817 | # CONFIG_TIMER_STATS is not set | 907 | # CONFIG_TIMER_STATS is not set |
818 | # CONFIG_DEBUG_OBJECTS is not set | 908 | # CONFIG_DEBUG_OBJECTS is not set |
819 | # CONFIG_SLUB_DEBUG_ON is not set | 909 | # CONFIG_SLUB_DEBUG_ON is not set |
820 | # CONFIG_SLUB_STATS is not set | 910 | # CONFIG_SLUB_STATS is not set |
911 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
821 | # CONFIG_DEBUG_RT_MUTEXES is not set | 912 | # CONFIG_DEBUG_RT_MUTEXES is not set |
822 | # CONFIG_RT_MUTEX_TESTER is not set | 913 | # CONFIG_RT_MUTEX_TESTER is not set |
823 | # CONFIG_DEBUG_SPINLOCK is not set | 914 | # CONFIG_DEBUG_SPINLOCK is not set |
824 | # CONFIG_DEBUG_MUTEXES is not set | 915 | # CONFIG_DEBUG_MUTEXES is not set |
916 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
917 | # CONFIG_PROVE_LOCKING is not set | ||
918 | # CONFIG_LOCK_STAT is not set | ||
825 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 919 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
826 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 920 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
827 | # CONFIG_DEBUG_KOBJECT is not set | 921 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -833,35 +927,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
833 | # CONFIG_DEBUG_LIST is not set | 927 | # CONFIG_DEBUG_LIST is not set |
834 | # CONFIG_DEBUG_SG is not set | 928 | # CONFIG_DEBUG_SG is not set |
835 | # CONFIG_DEBUG_NOTIFIERS is not set | 929 | # CONFIG_DEBUG_NOTIFIERS is not set |
836 | # CONFIG_BOOT_PRINTK_DELAY is not set | 930 | # CONFIG_DEBUG_CREDENTIALS is not set |
837 | # CONFIG_RCU_TORTURE_TEST is not set | 931 | # CONFIG_RCU_TORTURE_TEST is not set |
838 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 932 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
839 | # CONFIG_BACKTRACE_SELF_TEST is not set | 933 | # CONFIG_BACKTRACE_SELF_TEST is not set |
840 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 934 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
935 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
841 | # CONFIG_FAULT_INJECTION is not set | 936 | # CONFIG_FAULT_INJECTION is not set |
842 | # CONFIG_LATENCYTOP is not set | 937 | # CONFIG_LATENCYTOP is not set |
843 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 938 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
939 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
844 | CONFIG_HAVE_FUNCTION_TRACER=y | 940 | CONFIG_HAVE_FUNCTION_TRACER=y |
941 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
845 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 942 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
846 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 943 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
847 | 944 | CONFIG_TRACING_SUPPORT=y | |
848 | # | 945 | CONFIG_FTRACE=y |
849 | # Tracers | ||
850 | # | ||
851 | # CONFIG_FUNCTION_TRACER is not set | 946 | # CONFIG_FUNCTION_TRACER is not set |
947 | # CONFIG_IRQSOFF_TRACER is not set | ||
852 | # CONFIG_SCHED_TRACER is not set | 948 | # CONFIG_SCHED_TRACER is not set |
853 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 949 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
854 | # CONFIG_BOOT_TRACER is not set | 950 | # CONFIG_BOOT_TRACER is not set |
855 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 951 | CONFIG_BRANCH_PROFILE_NONE=y |
952 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
953 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
856 | # CONFIG_STACK_TRACER is not set | 954 | # CONFIG_STACK_TRACER is not set |
857 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 955 | # CONFIG_KMEMTRACE is not set |
956 | # CONFIG_WORKQUEUE_TRACER is not set | ||
957 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
958 | # CONFIG_DYNAMIC_DEBUG is not set | ||
959 | # CONFIG_DMA_API_DEBUG is not set | ||
858 | # CONFIG_SAMPLES is not set | 960 | # CONFIG_SAMPLES is not set |
859 | CONFIG_HAVE_ARCH_KGDB=y | 961 | CONFIG_HAVE_ARCH_KGDB=y |
860 | # CONFIG_KGDB is not set | 962 | # CONFIG_KGDB is not set |
963 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
964 | CONFIG_PPC_WERROR=y | ||
861 | CONFIG_PRINT_STACK_DEPTH=64 | 965 | CONFIG_PRINT_STACK_DEPTH=64 |
862 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 966 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
863 | # CONFIG_DEBUG_STACK_USAGE is not set | 967 | # CONFIG_DEBUG_STACK_USAGE is not set |
864 | # CONFIG_DEBUG_PAGEALLOC is not set | 968 | # CONFIG_PPC_EMULATED_STATS is not set |
865 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 969 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
866 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 970 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
867 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 971 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -877,13 +981,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
877 | # CONFIG_KEYS is not set | 981 | # CONFIG_KEYS is not set |
878 | # CONFIG_SECURITY is not set | 982 | # CONFIG_SECURITY is not set |
879 | # CONFIG_SECURITYFS is not set | 983 | # CONFIG_SECURITYFS is not set |
880 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 984 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
985 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
986 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
987 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
988 | CONFIG_DEFAULT_SECURITY="" | ||
881 | CONFIG_CRYPTO=y | 989 | CONFIG_CRYPTO=y |
882 | 990 | ||
883 | # | 991 | # |
884 | # Crypto core or helper | 992 | # Crypto core or helper |
885 | # | 993 | # |
886 | # CONFIG_CRYPTO_FIPS is not set | ||
887 | CONFIG_CRYPTO_ALGAPI=y | 994 | CONFIG_CRYPTO_ALGAPI=y |
888 | CONFIG_CRYPTO_ALGAPI2=y | 995 | CONFIG_CRYPTO_ALGAPI2=y |
889 | CONFIG_CRYPTO_AEAD2=y | 996 | CONFIG_CRYPTO_AEAD2=y |
@@ -892,10 +999,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
892 | CONFIG_CRYPTO_HASH=y | 999 | CONFIG_CRYPTO_HASH=y |
893 | CONFIG_CRYPTO_HASH2=y | 1000 | CONFIG_CRYPTO_HASH2=y |
894 | CONFIG_CRYPTO_RNG2=y | 1001 | CONFIG_CRYPTO_RNG2=y |
1002 | CONFIG_CRYPTO_PCOMP=y | ||
895 | CONFIG_CRYPTO_MANAGER=y | 1003 | CONFIG_CRYPTO_MANAGER=y |
896 | CONFIG_CRYPTO_MANAGER2=y | 1004 | CONFIG_CRYPTO_MANAGER2=y |
897 | # CONFIG_CRYPTO_GF128MUL is not set | 1005 | # CONFIG_CRYPTO_GF128MUL is not set |
898 | # CONFIG_CRYPTO_NULL is not set | 1006 | # CONFIG_CRYPTO_NULL is not set |
1007 | CONFIG_CRYPTO_WORKQUEUE=y | ||
899 | # CONFIG_CRYPTO_CRYPTD is not set | 1008 | # CONFIG_CRYPTO_CRYPTD is not set |
900 | # CONFIG_CRYPTO_AUTHENC is not set | 1009 | # CONFIG_CRYPTO_AUTHENC is not set |
901 | # CONFIG_CRYPTO_TEST is not set | 1010 | # CONFIG_CRYPTO_TEST is not set |
@@ -923,11 +1032,13 @@ CONFIG_CRYPTO_PCBC=y | |||
923 | # | 1032 | # |
924 | # CONFIG_CRYPTO_HMAC is not set | 1033 | # CONFIG_CRYPTO_HMAC is not set |
925 | # CONFIG_CRYPTO_XCBC is not set | 1034 | # CONFIG_CRYPTO_XCBC is not set |
1035 | # CONFIG_CRYPTO_VMAC is not set | ||
926 | 1036 | ||
927 | # | 1037 | # |
928 | # Digest | 1038 | # Digest |
929 | # | 1039 | # |
930 | # CONFIG_CRYPTO_CRC32C is not set | 1040 | # CONFIG_CRYPTO_CRC32C is not set |
1041 | # CONFIG_CRYPTO_GHASH is not set | ||
931 | # CONFIG_CRYPTO_MD4 is not set | 1042 | # CONFIG_CRYPTO_MD4 is not set |
932 | CONFIG_CRYPTO_MD5=y | 1043 | CONFIG_CRYPTO_MD5=y |
933 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1044 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -964,6 +1075,7 @@ CONFIG_CRYPTO_DES=y | |||
964 | # Compression | 1075 | # Compression |
965 | # | 1076 | # |
966 | # CONFIG_CRYPTO_DEFLATE is not set | 1077 | # CONFIG_CRYPTO_DEFLATE is not set |
1078 | # CONFIG_CRYPTO_ZLIB is not set | ||
967 | # CONFIG_CRYPTO_LZO is not set | 1079 | # CONFIG_CRYPTO_LZO is not set |
968 | 1080 | ||
969 | # | 1081 | # |
@@ -972,5 +1084,6 @@ CONFIG_CRYPTO_DES=y | |||
972 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1084 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
973 | CONFIG_CRYPTO_HW=y | 1085 | CONFIG_CRYPTO_HW=y |
974 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1086 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1087 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
975 | # CONFIG_PPC_CLOCK is not set | 1088 | # CONFIG_PPC_CLOCK is not set |
976 | # CONFIG_VIRTUALIZATION is not set | 1089 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/40x/ep405_defconfig b/arch/powerpc/configs/40x/ep405_defconfig index e9b8495cde0c..918f23fd2b18 100644 --- a/arch/powerpc/configs/40x/ep405_defconfig +++ b/arch/powerpc/configs/40x/ep405_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:17:48 2009 | 4 | # Mon Jan 4 15:37:34 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -27,15 +28,18 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
30 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
31 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
32 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
33 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
34 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
38 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
39 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
40 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
41 | CONFIG_PPC=y | 45 | CONFIG_PPC=y |
@@ -49,11 +53,15 @@ CONFIG_PPC_UDBG_16550=y | |||
49 | # CONFIG_GENERIC_TBSYNC is not set | 53 | # CONFIG_GENERIC_TBSYNC is not set |
50 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
51 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
56 | CONFIG_DTC=y | ||
52 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
53 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
54 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
55 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
64 | CONFIG_CONSTRUCTORS=y | ||
57 | 65 | ||
58 | # | 66 | # |
59 | # General setup | 67 | # General setup |
@@ -67,9 +75,21 @@ CONFIG_SWAP=y | |||
67 | CONFIG_SYSVIPC=y | 75 | CONFIG_SYSVIPC=y |
68 | CONFIG_SYSVIPC_SYSCTL=y | 76 | CONFIG_SYSVIPC_SYSCTL=y |
69 | CONFIG_POSIX_MQUEUE=y | 77 | CONFIG_POSIX_MQUEUE=y |
78 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 79 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 80 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_AUDIT is not set | 81 | # CONFIG_AUDIT is not set |
82 | |||
83 | # | ||
84 | # RCU Subsystem | ||
85 | # | ||
86 | CONFIG_TREE_RCU=y | ||
87 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
88 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
92 | # CONFIG_TREE_RCU_TRACE is not set | ||
73 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
74 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
75 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -84,31 +104,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
84 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
85 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
86 | CONFIG_INITRAMFS_SOURCE="" | 106 | CONFIG_INITRAMFS_SOURCE="" |
107 | CONFIG_RD_GZIP=y | ||
108 | # CONFIG_RD_BZIP2 is not set | ||
109 | # CONFIG_RD_LZMA is not set | ||
87 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 110 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
88 | CONFIG_SYSCTL=y | 111 | CONFIG_SYSCTL=y |
112 | CONFIG_ANON_INODES=y | ||
89 | CONFIG_EMBEDDED=y | 113 | CONFIG_EMBEDDED=y |
90 | CONFIG_SYSCTL_SYSCALL=y | 114 | CONFIG_SYSCTL_SYSCALL=y |
91 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
92 | CONFIG_KALLSYMS_ALL=y | 116 | CONFIG_KALLSYMS_ALL=y |
93 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
94 | CONFIG_KALLSYMS_EXTRA_PASS=y | 117 | CONFIG_KALLSYMS_EXTRA_PASS=y |
95 | CONFIG_HOTPLUG=y | 118 | CONFIG_HOTPLUG=y |
96 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
97 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
98 | CONFIG_ELF_CORE=y | 121 | CONFIG_ELF_CORE=y |
99 | CONFIG_COMPAT_BRK=y | ||
100 | CONFIG_BASE_FULL=y | 122 | CONFIG_BASE_FULL=y |
101 | CONFIG_FUTEX=y | 123 | CONFIG_FUTEX=y |
102 | CONFIG_ANON_INODES=y | ||
103 | CONFIG_EPOLL=y | 124 | CONFIG_EPOLL=y |
104 | CONFIG_SIGNALFD=y | 125 | CONFIG_SIGNALFD=y |
105 | CONFIG_TIMERFD=y | 126 | CONFIG_TIMERFD=y |
106 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
107 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
108 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
109 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
110 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
111 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
140 | CONFIG_COMPAT_BRK=y | ||
112 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
113 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
114 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
@@ -120,6 +149,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
159 | # CONFIG_SLOW_WORK is not set | ||
123 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
124 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
125 | CONFIG_RT_MUTEXES=y | 162 | CONFIG_RT_MUTEXES=y |
@@ -131,8 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
131 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
132 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
133 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
134 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
135 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
136 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
137 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
138 | 174 | ||
@@ -140,19 +176,41 @@ CONFIG_LBD=y | |||
140 | # IO Schedulers | 176 | # IO Schedulers |
141 | # | 177 | # |
142 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
145 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
146 | CONFIG_DEFAULT_AS=y | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
148 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
149 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
151 | CONFIG_CLASSIC_RCU=y | 185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
152 | # CONFIG_TREE_RCU is not set | 186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
153 | # CONFIG_PREEMPT_RCU is not set | 187 | # CONFIG_INLINE_SPIN_LOCK is not set |
154 | # CONFIG_TREE_RCU_TRACE is not set | 188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU_TRACE is not set | 189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
156 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
157 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 215 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
158 | 216 | ||
@@ -166,6 +224,7 @@ CONFIG_CLASSIC_RCU=y | |||
166 | # CONFIG_ACADIA is not set | 224 | # CONFIG_ACADIA is not set |
167 | CONFIG_EP405=y | 225 | CONFIG_EP405=y |
168 | # CONFIG_HCU4 is not set | 226 | # CONFIG_HCU4 is not set |
227 | # CONFIG_HOTFOOT is not set | ||
169 | # CONFIG_KILAUEA is not set | 228 | # CONFIG_KILAUEA is not set |
170 | # CONFIG_MAKALU is not set | 229 | # CONFIG_MAKALU is not set |
171 | # CONFIG_WALNUT is not set | 230 | # CONFIG_WALNUT is not set |
@@ -210,10 +269,12 @@ CONFIG_BINFMT_ELF=y | |||
210 | # CONFIG_BINFMT_MISC is not set | 269 | # CONFIG_BINFMT_MISC is not set |
211 | # CONFIG_MATH_EMULATION is not set | 270 | # CONFIG_MATH_EMULATION is not set |
212 | # CONFIG_IOMMU_HELPER is not set | 271 | # CONFIG_IOMMU_HELPER is not set |
213 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 272 | # CONFIG_SWIOTLB is not set |
214 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
215 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 274 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
216 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 275 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
276 | CONFIG_SPARSE_IRQ=y | ||
277 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
217 | CONFIG_ARCH_FLATMEM_ENABLE=y | 278 | CONFIG_ARCH_FLATMEM_ENABLE=y |
218 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 279 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
219 | CONFIG_SELECT_MEMORY_MODEL=y | 280 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -229,10 +290,12 @@ CONFIG_MIGRATION=y | |||
229 | CONFIG_ZONE_DMA_FLAG=1 | 290 | CONFIG_ZONE_DMA_FLAG=1 |
230 | CONFIG_BOUNCE=y | 291 | CONFIG_BOUNCE=y |
231 | CONFIG_VIRT_TO_BUS=y | 292 | CONFIG_VIRT_TO_BUS=y |
232 | CONFIG_UNEVICTABLE_LRU=y | 293 | # CONFIG_KSM is not set |
294 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
233 | CONFIG_PPC_4K_PAGES=y | 295 | CONFIG_PPC_4K_PAGES=y |
234 | # CONFIG_PPC_16K_PAGES is not set | 296 | # CONFIG_PPC_16K_PAGES is not set |
235 | # CONFIG_PPC_64K_PAGES is not set | 297 | # CONFIG_PPC_64K_PAGES is not set |
298 | # CONFIG_PPC_256K_PAGES is not set | ||
236 | CONFIG_FORCE_MAX_ZONEORDER=11 | 299 | CONFIG_FORCE_MAX_ZONEORDER=11 |
237 | CONFIG_PROC_DEVICETREE=y | 300 | CONFIG_PROC_DEVICETREE=y |
238 | # CONFIG_CMDLINE_BOOL is not set | 301 | # CONFIG_CMDLINE_BOOL is not set |
@@ -257,6 +320,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
257 | # CONFIG_PCI_LEGACY is not set | 320 | # CONFIG_PCI_LEGACY is not set |
258 | # CONFIG_PCI_DEBUG is not set | 321 | # CONFIG_PCI_DEBUG is not set |
259 | # CONFIG_PCI_STUB is not set | 322 | # CONFIG_PCI_STUB is not set |
323 | # CONFIG_PCI_IOV is not set | ||
260 | # CONFIG_PCCARD is not set | 324 | # CONFIG_PCCARD is not set |
261 | # CONFIG_HOTPLUG_PCI is not set | 325 | # CONFIG_HOTPLUG_PCI is not set |
262 | # CONFIG_HAS_RAPIDIO is not set | 326 | # CONFIG_HAS_RAPIDIO is not set |
@@ -274,14 +338,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
274 | CONFIG_KERNEL_START=0xc0000000 | 338 | CONFIG_KERNEL_START=0xc0000000 |
275 | CONFIG_PHYSICAL_START=0x00000000 | 339 | CONFIG_PHYSICAL_START=0x00000000 |
276 | CONFIG_TASK_SIZE=0xc0000000 | 340 | CONFIG_TASK_SIZE=0xc0000000 |
277 | CONFIG_CONSISTENT_START=0xff100000 | ||
278 | CONFIG_CONSISTENT_SIZE=0x00200000 | 341 | CONFIG_CONSISTENT_SIZE=0x00200000 |
279 | CONFIG_NET=y | 342 | CONFIG_NET=y |
280 | 343 | ||
281 | # | 344 | # |
282 | # Networking options | 345 | # Networking options |
283 | # | 346 | # |
284 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
285 | CONFIG_PACKET=y | 347 | CONFIG_PACKET=y |
286 | # CONFIG_PACKET_MMAP is not set | 348 | # CONFIG_PACKET_MMAP is not set |
287 | CONFIG_UNIX=y | 349 | CONFIG_UNIX=y |
@@ -318,6 +380,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
318 | # CONFIG_NETFILTER is not set | 380 | # CONFIG_NETFILTER is not set |
319 | # CONFIG_IP_DCCP is not set | 381 | # CONFIG_IP_DCCP is not set |
320 | # CONFIG_IP_SCTP is not set | 382 | # CONFIG_IP_SCTP is not set |
383 | # CONFIG_RDS is not set | ||
321 | # CONFIG_TIPC is not set | 384 | # CONFIG_TIPC is not set |
322 | # CONFIG_ATM is not set | 385 | # CONFIG_ATM is not set |
323 | # CONFIG_BRIDGE is not set | 386 | # CONFIG_BRIDGE is not set |
@@ -331,6 +394,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
331 | # CONFIG_LAPB is not set | 394 | # CONFIG_LAPB is not set |
332 | # CONFIG_ECONET is not set | 395 | # CONFIG_ECONET is not set |
333 | # CONFIG_WAN_ROUTER is not set | 396 | # CONFIG_WAN_ROUTER is not set |
397 | # CONFIG_PHONET is not set | ||
398 | # CONFIG_IEEE802154 is not set | ||
334 | # CONFIG_NET_SCHED is not set | 399 | # CONFIG_NET_SCHED is not set |
335 | # CONFIG_DCB is not set | 400 | # CONFIG_DCB is not set |
336 | 401 | ||
@@ -343,8 +408,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
343 | # CONFIG_IRDA is not set | 408 | # CONFIG_IRDA is not set |
344 | # CONFIG_BT is not set | 409 | # CONFIG_BT is not set |
345 | # CONFIG_AF_RXRPC is not set | 410 | # CONFIG_AF_RXRPC is not set |
346 | # CONFIG_PHONET is not set | 411 | CONFIG_WIRELESS=y |
347 | # CONFIG_WIRELESS is not set | 412 | # CONFIG_CFG80211 is not set |
413 | # CONFIG_LIB80211 is not set | ||
414 | |||
415 | # | ||
416 | # CFG80211 needs to be enabled for MAC80211 | ||
417 | # | ||
348 | # CONFIG_WIMAX is not set | 418 | # CONFIG_WIMAX is not set |
349 | # CONFIG_RFKILL is not set | 419 | # CONFIG_RFKILL is not set |
350 | # CONFIG_NET_9P is not set | 420 | # CONFIG_NET_9P is not set |
@@ -357,6 +427,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
357 | # Generic Driver Options | 427 | # Generic Driver Options |
358 | # | 428 | # |
359 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 429 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
430 | # CONFIG_DEVTMPFS is not set | ||
360 | CONFIG_STANDALONE=y | 431 | CONFIG_STANDALONE=y |
361 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 432 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
362 | CONFIG_FW_LOADER=y | 433 | CONFIG_FW_LOADER=y |
@@ -369,9 +440,9 @@ CONFIG_CONNECTOR=y | |||
369 | CONFIG_PROC_EVENTS=y | 440 | CONFIG_PROC_EVENTS=y |
370 | CONFIG_MTD=y | 441 | CONFIG_MTD=y |
371 | # CONFIG_MTD_DEBUG is not set | 442 | # CONFIG_MTD_DEBUG is not set |
443 | # CONFIG_MTD_TESTS is not set | ||
372 | # CONFIG_MTD_CONCAT is not set | 444 | # CONFIG_MTD_CONCAT is not set |
373 | CONFIG_MTD_PARTITIONS=y | 445 | CONFIG_MTD_PARTITIONS=y |
374 | # CONFIG_MTD_TESTS is not set | ||
375 | # CONFIG_MTD_REDBOOT_PARTS is not set | 446 | # CONFIG_MTD_REDBOOT_PARTS is not set |
376 | CONFIG_MTD_CMDLINE_PARTS=y | 447 | CONFIG_MTD_CMDLINE_PARTS=y |
377 | CONFIG_MTD_OF_PARTS=y | 448 | CONFIG_MTD_OF_PARTS=y |
@@ -447,7 +518,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
447 | # LPDDR flash memory drivers | 518 | # LPDDR flash memory drivers |
448 | # | 519 | # |
449 | # CONFIG_MTD_LPDDR is not set | 520 | # CONFIG_MTD_LPDDR is not set |
450 | # CONFIG_MTD_QINFO_PROBE is not set | ||
451 | 521 | ||
452 | # | 522 | # |
453 | # UBI - Unsorted block images | 523 | # UBI - Unsorted block images |
@@ -463,6 +533,7 @@ CONFIG_BLK_DEV=y | |||
463 | # CONFIG_BLK_DEV_UMEM is not set | 533 | # CONFIG_BLK_DEV_UMEM is not set |
464 | # CONFIG_BLK_DEV_COW_COMMON is not set | 534 | # CONFIG_BLK_DEV_COW_COMMON is not set |
465 | # CONFIG_BLK_DEV_LOOP is not set | 535 | # CONFIG_BLK_DEV_LOOP is not set |
536 | # CONFIG_BLK_DEV_DRBD is not set | ||
466 | # CONFIG_BLK_DEV_NBD is not set | 537 | # CONFIG_BLK_DEV_NBD is not set |
467 | # CONFIG_BLK_DEV_SX8 is not set | 538 | # CONFIG_BLK_DEV_SX8 is not set |
468 | # CONFIG_BLK_DEV_UB is not set | 539 | # CONFIG_BLK_DEV_UB is not set |
@@ -476,12 +547,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
476 | # CONFIG_BLK_DEV_HD is not set | 547 | # CONFIG_BLK_DEV_HD is not set |
477 | CONFIG_MISC_DEVICES=y | 548 | CONFIG_MISC_DEVICES=y |
478 | # CONFIG_PHANTOM is not set | 549 | # CONFIG_PHANTOM is not set |
479 | # CONFIG_EEPROM_93CX6 is not set | ||
480 | # CONFIG_SGI_IOC4 is not set | 550 | # CONFIG_SGI_IOC4 is not set |
481 | # CONFIG_TIFM_CORE is not set | 551 | # CONFIG_TIFM_CORE is not set |
482 | # CONFIG_ENCLOSURE_SERVICES is not set | 552 | # CONFIG_ENCLOSURE_SERVICES is not set |
483 | # CONFIG_HP_ILO is not set | 553 | # CONFIG_HP_ILO is not set |
484 | # CONFIG_C2PORT is not set | 554 | # CONFIG_C2PORT is not set |
555 | |||
556 | # | ||
557 | # EEPROM support | ||
558 | # | ||
559 | # CONFIG_EEPROM_93CX6 is not set | ||
560 | # CONFIG_CB710_CORE is not set | ||
485 | CONFIG_HAVE_IDE=y | 561 | CONFIG_HAVE_IDE=y |
486 | # CONFIG_IDE is not set | 562 | # CONFIG_IDE is not set |
487 | 563 | ||
@@ -501,7 +577,11 @@ CONFIG_HAVE_IDE=y | |||
501 | # | 577 | # |
502 | 578 | ||
503 | # | 579 | # |
504 | # Enable only one of the two stacks, unless you know what you are doing | 580 | # You can enable one or both FireWire driver stacks. |
581 | # | ||
582 | |||
583 | # | ||
584 | # See the help texts for more information. | ||
505 | # | 585 | # |
506 | # CONFIG_FIREWIRE is not set | 586 | # CONFIG_FIREWIRE is not set |
507 | # CONFIG_IEEE1394 is not set | 587 | # CONFIG_IEEE1394 is not set |
@@ -522,6 +602,8 @@ CONFIG_NET_ETHERNET=y | |||
522 | # CONFIG_SUNGEM is not set | 602 | # CONFIG_SUNGEM is not set |
523 | # CONFIG_CASSINI is not set | 603 | # CONFIG_CASSINI is not set |
524 | # CONFIG_NET_VENDOR_3COM is not set | 604 | # CONFIG_NET_VENDOR_3COM is not set |
605 | # CONFIG_ETHOC is not set | ||
606 | # CONFIG_DNET is not set | ||
525 | # CONFIG_NET_TULIP is not set | 607 | # CONFIG_NET_TULIP is not set |
526 | # CONFIG_HP100 is not set | 608 | # CONFIG_HP100 is not set |
527 | CONFIG_IBM_NEW_EMAC=y | 609 | CONFIG_IBM_NEW_EMAC=y |
@@ -540,7 +622,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
540 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 622 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
541 | # CONFIG_NET_PCI is not set | 623 | # CONFIG_NET_PCI is not set |
542 | # CONFIG_B44 is not set | 624 | # CONFIG_B44 is not set |
625 | # CONFIG_KS8842 is not set | ||
626 | # CONFIG_KS8851_MLL is not set | ||
543 | # CONFIG_ATL2 is not set | 627 | # CONFIG_ATL2 is not set |
628 | # CONFIG_XILINX_EMACLITE is not set | ||
544 | CONFIG_NETDEV_1000=y | 629 | CONFIG_NETDEV_1000=y |
545 | # CONFIG_ACENIC is not set | 630 | # CONFIG_ACENIC is not set |
546 | # CONFIG_DL2K is not set | 631 | # CONFIG_DL2K is not set |
@@ -548,6 +633,7 @@ CONFIG_NETDEV_1000=y | |||
548 | # CONFIG_E1000E is not set | 633 | # CONFIG_E1000E is not set |
549 | # CONFIG_IP1000 is not set | 634 | # CONFIG_IP1000 is not set |
550 | # CONFIG_IGB is not set | 635 | # CONFIG_IGB is not set |
636 | # CONFIG_IGBVF is not set | ||
551 | # CONFIG_NS83820 is not set | 637 | # CONFIG_NS83820 is not set |
552 | # CONFIG_HAMACHI is not set | 638 | # CONFIG_HAMACHI is not set |
553 | # CONFIG_YELLOWFIN is not set | 639 | # CONFIG_YELLOWFIN is not set |
@@ -558,9 +644,13 @@ CONFIG_NETDEV_1000=y | |||
558 | # CONFIG_VIA_VELOCITY is not set | 644 | # CONFIG_VIA_VELOCITY is not set |
559 | # CONFIG_TIGON3 is not set | 645 | # CONFIG_TIGON3 is not set |
560 | # CONFIG_BNX2 is not set | 646 | # CONFIG_BNX2 is not set |
647 | # CONFIG_CNIC is not set | ||
648 | # CONFIG_MV643XX_ETH is not set | ||
649 | # CONFIG_XILINX_LL_TEMAC is not set | ||
561 | # CONFIG_QLA3XXX is not set | 650 | # CONFIG_QLA3XXX is not set |
562 | # CONFIG_ATL1 is not set | 651 | # CONFIG_ATL1 is not set |
563 | # CONFIG_ATL1E is not set | 652 | # CONFIG_ATL1E is not set |
653 | # CONFIG_ATL1C is not set | ||
564 | # CONFIG_JME is not set | 654 | # CONFIG_JME is not set |
565 | CONFIG_NETDEV_10000=y | 655 | CONFIG_NETDEV_10000=y |
566 | # CONFIG_CHELSIO_T1 is not set | 656 | # CONFIG_CHELSIO_T1 is not set |
@@ -570,6 +660,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
570 | # CONFIG_IXGBE is not set | 660 | # CONFIG_IXGBE is not set |
571 | # CONFIG_IXGB is not set | 661 | # CONFIG_IXGB is not set |
572 | # CONFIG_S2IO is not set | 662 | # CONFIG_S2IO is not set |
663 | # CONFIG_VXGE is not set | ||
573 | # CONFIG_MYRI10GE is not set | 664 | # CONFIG_MYRI10GE is not set |
574 | # CONFIG_NETXEN_NIC is not set | 665 | # CONFIG_NETXEN_NIC is not set |
575 | # CONFIG_NIU is not set | 666 | # CONFIG_NIU is not set |
@@ -579,14 +670,14 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
579 | # CONFIG_BNX2X is not set | 670 | # CONFIG_BNX2X is not set |
580 | # CONFIG_QLGE is not set | 671 | # CONFIG_QLGE is not set |
581 | # CONFIG_SFC is not set | 672 | # CONFIG_SFC is not set |
673 | # CONFIG_BE2NET is not set | ||
582 | # CONFIG_TR is not set | 674 | # CONFIG_TR is not set |
583 | 675 | CONFIG_WLAN=y | |
584 | # | 676 | # CONFIG_AIRO is not set |
585 | # Wireless LAN | 677 | # CONFIG_ATMEL is not set |
586 | # | 678 | # CONFIG_PRISM54 is not set |
587 | # CONFIG_WLAN_PRE80211 is not set | 679 | # CONFIG_USB_ZD1201 is not set |
588 | # CONFIG_WLAN_80211 is not set | 680 | # CONFIG_HOSTAP is not set |
589 | # CONFIG_IWLWIFI_LEDS is not set | ||
590 | 681 | ||
591 | # | 682 | # |
592 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 683 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -608,6 +699,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
608 | # CONFIG_NETCONSOLE is not set | 699 | # CONFIG_NETCONSOLE is not set |
609 | # CONFIG_NETPOLL is not set | 700 | # CONFIG_NETPOLL is not set |
610 | # CONFIG_NET_POLL_CONTROLLER is not set | 701 | # CONFIG_NET_POLL_CONTROLLER is not set |
702 | # CONFIG_VMXNET3 is not set | ||
611 | # CONFIG_ISDN is not set | 703 | # CONFIG_ISDN is not set |
612 | # CONFIG_PHONE is not set | 704 | # CONFIG_PHONE is not set |
613 | 705 | ||
@@ -653,6 +745,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
653 | # CONFIG_SERIAL_JSM is not set | 745 | # CONFIG_SERIAL_JSM is not set |
654 | CONFIG_SERIAL_OF_PLATFORM=y | 746 | CONFIG_SERIAL_OF_PLATFORM=y |
655 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 747 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
748 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
656 | CONFIG_UNIX98_PTYS=y | 749 | CONFIG_UNIX98_PTYS=y |
657 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 750 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
658 | CONFIG_LEGACY_PTYS=y | 751 | CONFIG_LEGACY_PTYS=y |
@@ -669,6 +762,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
669 | CONFIG_DEVPORT=y | 762 | CONFIG_DEVPORT=y |
670 | # CONFIG_I2C is not set | 763 | # CONFIG_I2C is not set |
671 | # CONFIG_SPI is not set | 764 | # CONFIG_SPI is not set |
765 | |||
766 | # | ||
767 | # PPS support | ||
768 | # | ||
769 | # CONFIG_PPS is not set | ||
672 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 770 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
673 | # CONFIG_GPIOLIB is not set | 771 | # CONFIG_GPIOLIB is not set |
674 | # CONFIG_W1 is not set | 772 | # CONFIG_W1 is not set |
@@ -691,27 +789,13 @@ CONFIG_SSB_POSSIBLE=y | |||
691 | # CONFIG_HTC_PASIC3 is not set | 789 | # CONFIG_HTC_PASIC3 is not set |
692 | # CONFIG_MFD_TMIO is not set | 790 | # CONFIG_MFD_TMIO is not set |
693 | # CONFIG_REGULATOR is not set | 791 | # CONFIG_REGULATOR is not set |
694 | 792 | # CONFIG_MEDIA_SUPPORT is not set | |
695 | # | ||
696 | # Multimedia devices | ||
697 | # | ||
698 | |||
699 | # | ||
700 | # Multimedia core support | ||
701 | # | ||
702 | # CONFIG_VIDEO_DEV is not set | ||
703 | # CONFIG_DVB_CORE is not set | ||
704 | # CONFIG_VIDEO_MEDIA is not set | ||
705 | |||
706 | # | ||
707 | # Multimedia drivers | ||
708 | # | ||
709 | # CONFIG_DAB is not set | ||
710 | 793 | ||
711 | # | 794 | # |
712 | # Graphics support | 795 | # Graphics support |
713 | # | 796 | # |
714 | # CONFIG_AGP is not set | 797 | # CONFIG_AGP is not set |
798 | CONFIG_VGA_ARB=y | ||
715 | # CONFIG_DRM is not set | 799 | # CONFIG_DRM is not set |
716 | # CONFIG_VGASTATE is not set | 800 | # CONFIG_VGASTATE is not set |
717 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 801 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -748,14 +832,16 @@ CONFIG_USB_MON=y | |||
748 | # USB Host Controller Drivers | 832 | # USB Host Controller Drivers |
749 | # | 833 | # |
750 | # CONFIG_USB_C67X00_HCD is not set | 834 | # CONFIG_USB_C67X00_HCD is not set |
835 | # CONFIG_USB_XHCI_HCD is not set | ||
751 | # CONFIG_USB_EHCI_HCD is not set | 836 | # CONFIG_USB_EHCI_HCD is not set |
752 | # CONFIG_USB_OXU210HP_HCD is not set | 837 | # CONFIG_USB_OXU210HP_HCD is not set |
753 | # CONFIG_USB_ISP116X_HCD is not set | 838 | # CONFIG_USB_ISP116X_HCD is not set |
754 | # CONFIG_USB_ISP1760_HCD is not set | 839 | # CONFIG_USB_ISP1760_HCD is not set |
840 | # CONFIG_USB_ISP1362_HCD is not set | ||
755 | CONFIG_USB_OHCI_HCD=y | 841 | CONFIG_USB_OHCI_HCD=y |
756 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
757 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 842 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y |
758 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | 843 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y |
844 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
759 | CONFIG_USB_OHCI_HCD_PCI=y | 845 | CONFIG_USB_OHCI_HCD_PCI=y |
760 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | 846 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y |
761 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | 847 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y |
@@ -775,11 +861,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
775 | # CONFIG_USB_TMC is not set | 861 | # CONFIG_USB_TMC is not set |
776 | 862 | ||
777 | # | 863 | # |
778 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 864 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
779 | # | 865 | # |
780 | 866 | ||
781 | # | 867 | # |
782 | # see USB_STORAGE Help for more information | 868 | # also be needed; see USB_STORAGE Help for more info |
783 | # | 869 | # |
784 | # CONFIG_USB_LIBUSUAL is not set | 870 | # CONFIG_USB_LIBUSUAL is not set |
785 | 871 | ||
@@ -807,7 +893,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
807 | # CONFIG_USB_LED is not set | 893 | # CONFIG_USB_LED is not set |
808 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 894 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
809 | # CONFIG_USB_CYTHERM is not set | 895 | # CONFIG_USB_CYTHERM is not set |
810 | # CONFIG_USB_PHIDGET is not set | ||
811 | # CONFIG_USB_IDMOUSE is not set | 896 | # CONFIG_USB_IDMOUSE is not set |
812 | # CONFIG_USB_FTDI_ELAN is not set | 897 | # CONFIG_USB_FTDI_ELAN is not set |
813 | # CONFIG_USB_APPLEDISPLAY is not set | 898 | # CONFIG_USB_APPLEDISPLAY is not set |
@@ -822,6 +907,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
822 | # | 907 | # |
823 | # OTG and related infrastructure | 908 | # OTG and related infrastructure |
824 | # | 909 | # |
910 | # CONFIG_NOP_USB_XCEIV is not set | ||
825 | # CONFIG_UWB is not set | 911 | # CONFIG_UWB is not set |
826 | # CONFIG_MMC is not set | 912 | # CONFIG_MMC is not set |
827 | # CONFIG_MEMSTICK is not set | 913 | # CONFIG_MEMSTICK is not set |
@@ -831,7 +917,12 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
831 | # CONFIG_EDAC is not set | 917 | # CONFIG_EDAC is not set |
832 | # CONFIG_RTC_CLASS is not set | 918 | # CONFIG_RTC_CLASS is not set |
833 | # CONFIG_DMADEVICES is not set | 919 | # CONFIG_DMADEVICES is not set |
920 | # CONFIG_AUXDISPLAY is not set | ||
834 | # CONFIG_UIO is not set | 921 | # CONFIG_UIO is not set |
922 | |||
923 | # | ||
924 | # TI VLYNQ | ||
925 | # | ||
835 | # CONFIG_STAGING is not set | 926 | # CONFIG_STAGING is not set |
836 | 927 | ||
837 | # | 928 | # |
@@ -842,14 +933,17 @@ CONFIG_EXT2_FS=y | |||
842 | # CONFIG_EXT2_FS_XIP is not set | 933 | # CONFIG_EXT2_FS_XIP is not set |
843 | # CONFIG_EXT3_FS is not set | 934 | # CONFIG_EXT3_FS is not set |
844 | # CONFIG_EXT4_FS is not set | 935 | # CONFIG_EXT4_FS is not set |
936 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
845 | # CONFIG_REISERFS_FS is not set | 937 | # CONFIG_REISERFS_FS is not set |
846 | # CONFIG_JFS_FS is not set | 938 | # CONFIG_JFS_FS is not set |
847 | # CONFIG_FS_POSIX_ACL is not set | 939 | # CONFIG_FS_POSIX_ACL is not set |
848 | CONFIG_FILE_LOCKING=y | ||
849 | # CONFIG_XFS_FS is not set | 940 | # CONFIG_XFS_FS is not set |
850 | # CONFIG_GFS2_FS is not set | 941 | # CONFIG_GFS2_FS is not set |
851 | # CONFIG_OCFS2_FS is not set | 942 | # CONFIG_OCFS2_FS is not set |
852 | # CONFIG_BTRFS_FS is not set | 943 | # CONFIG_BTRFS_FS is not set |
944 | # CONFIG_NILFS2_FS is not set | ||
945 | CONFIG_FILE_LOCKING=y | ||
946 | CONFIG_FSNOTIFY=y | ||
853 | CONFIG_DNOTIFY=y | 947 | CONFIG_DNOTIFY=y |
854 | CONFIG_INOTIFY=y | 948 | CONFIG_INOTIFY=y |
855 | CONFIG_INOTIFY_USER=y | 949 | CONFIG_INOTIFY_USER=y |
@@ -859,6 +953,11 @@ CONFIG_INOTIFY_USER=y | |||
859 | # CONFIG_FUSE_FS is not set | 953 | # CONFIG_FUSE_FS is not set |
860 | 954 | ||
861 | # | 955 | # |
956 | # Caches | ||
957 | # | ||
958 | # CONFIG_FSCACHE is not set | ||
959 | |||
960 | # | ||
862 | # CD-ROM/DVD Filesystems | 961 | # CD-ROM/DVD Filesystems |
863 | # | 962 | # |
864 | # CONFIG_ISO9660_FS is not set | 963 | # CONFIG_ISO9660_FS is not set |
@@ -913,7 +1012,6 @@ CONFIG_LOCKD=y | |||
913 | CONFIG_LOCKD_V4=y | 1012 | CONFIG_LOCKD_V4=y |
914 | CONFIG_NFS_COMMON=y | 1013 | CONFIG_NFS_COMMON=y |
915 | CONFIG_SUNRPC=y | 1014 | CONFIG_SUNRPC=y |
916 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
917 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1015 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
918 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1016 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
919 | # CONFIG_SMB_FS is not set | 1017 | # CONFIG_SMB_FS is not set |
@@ -927,8 +1025,48 @@ CONFIG_SUNRPC=y | |||
927 | # | 1025 | # |
928 | # CONFIG_PARTITION_ADVANCED is not set | 1026 | # CONFIG_PARTITION_ADVANCED is not set |
929 | CONFIG_MSDOS_PARTITION=y | 1027 | CONFIG_MSDOS_PARTITION=y |
930 | # CONFIG_NLS is not set | 1028 | CONFIG_NLS=y |
1029 | CONFIG_NLS_DEFAULT="iso8859-1" | ||
1030 | # CONFIG_NLS_CODEPAGE_437 is not set | ||
1031 | # CONFIG_NLS_CODEPAGE_737 is not set | ||
1032 | # CONFIG_NLS_CODEPAGE_775 is not set | ||
1033 | # CONFIG_NLS_CODEPAGE_850 is not set | ||
1034 | # CONFIG_NLS_CODEPAGE_852 is not set | ||
1035 | # CONFIG_NLS_CODEPAGE_855 is not set | ||
1036 | # CONFIG_NLS_CODEPAGE_857 is not set | ||
1037 | # CONFIG_NLS_CODEPAGE_860 is not set | ||
1038 | # CONFIG_NLS_CODEPAGE_861 is not set | ||
1039 | # CONFIG_NLS_CODEPAGE_862 is not set | ||
1040 | # CONFIG_NLS_CODEPAGE_863 is not set | ||
1041 | # CONFIG_NLS_CODEPAGE_864 is not set | ||
1042 | # CONFIG_NLS_CODEPAGE_865 is not set | ||
1043 | # CONFIG_NLS_CODEPAGE_866 is not set | ||
1044 | # CONFIG_NLS_CODEPAGE_869 is not set | ||
1045 | # CONFIG_NLS_CODEPAGE_936 is not set | ||
1046 | # CONFIG_NLS_CODEPAGE_950 is not set | ||
1047 | # CONFIG_NLS_CODEPAGE_932 is not set | ||
1048 | # CONFIG_NLS_CODEPAGE_949 is not set | ||
1049 | # CONFIG_NLS_CODEPAGE_874 is not set | ||
1050 | # CONFIG_NLS_ISO8859_8 is not set | ||
1051 | # CONFIG_NLS_CODEPAGE_1250 is not set | ||
1052 | # CONFIG_NLS_CODEPAGE_1251 is not set | ||
1053 | # CONFIG_NLS_ASCII is not set | ||
1054 | # CONFIG_NLS_ISO8859_1 is not set | ||
1055 | # CONFIG_NLS_ISO8859_2 is not set | ||
1056 | # CONFIG_NLS_ISO8859_3 is not set | ||
1057 | # CONFIG_NLS_ISO8859_4 is not set | ||
1058 | # CONFIG_NLS_ISO8859_5 is not set | ||
1059 | # CONFIG_NLS_ISO8859_6 is not set | ||
1060 | # CONFIG_NLS_ISO8859_7 is not set | ||
1061 | # CONFIG_NLS_ISO8859_9 is not set | ||
1062 | # CONFIG_NLS_ISO8859_13 is not set | ||
1063 | # CONFIG_NLS_ISO8859_14 is not set | ||
1064 | # CONFIG_NLS_ISO8859_15 is not set | ||
1065 | # CONFIG_NLS_KOI8_R is not set | ||
1066 | # CONFIG_NLS_KOI8_U is not set | ||
1067 | # CONFIG_NLS_UTF8 is not set | ||
931 | # CONFIG_DLM is not set | 1068 | # CONFIG_DLM is not set |
1069 | # CONFIG_BINARY_PRINTF is not set | ||
932 | 1070 | ||
933 | # | 1071 | # |
934 | # Library routines | 1072 | # Library routines |
@@ -943,11 +1081,13 @@ CONFIG_CRC32=y | |||
943 | # CONFIG_CRC7 is not set | 1081 | # CONFIG_CRC7 is not set |
944 | # CONFIG_LIBCRC32C is not set | 1082 | # CONFIG_LIBCRC32C is not set |
945 | CONFIG_ZLIB_INFLATE=y | 1083 | CONFIG_ZLIB_INFLATE=y |
946 | CONFIG_PLIST=y | 1084 | CONFIG_DECOMPRESS_GZIP=y |
947 | CONFIG_HAS_IOMEM=y | 1085 | CONFIG_HAS_IOMEM=y |
948 | CONFIG_HAS_IOPORT=y | 1086 | CONFIG_HAS_IOPORT=y |
949 | CONFIG_HAS_DMA=y | 1087 | CONFIG_HAS_DMA=y |
950 | CONFIG_HAVE_LMB=y | 1088 | CONFIG_HAVE_LMB=y |
1089 | CONFIG_NLATTR=y | ||
1090 | CONFIG_GENERIC_ATOMIC64=y | ||
951 | 1091 | ||
952 | # | 1092 | # |
953 | # Kernel hacking | 1093 | # Kernel hacking |
@@ -957,6 +1097,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
957 | CONFIG_ENABLE_MUST_CHECK=y | 1097 | CONFIG_ENABLE_MUST_CHECK=y |
958 | CONFIG_FRAME_WARN=1024 | 1098 | CONFIG_FRAME_WARN=1024 |
959 | CONFIG_MAGIC_SYSRQ=y | 1099 | CONFIG_MAGIC_SYSRQ=y |
1100 | # CONFIG_STRIP_ASM_SYMS is not set | ||
960 | # CONFIG_UNUSED_SYMBOLS is not set | 1101 | # CONFIG_UNUSED_SYMBOLS is not set |
961 | CONFIG_DEBUG_FS=y | 1102 | CONFIG_DEBUG_FS=y |
962 | # CONFIG_HEADERS_CHECK is not set | 1103 | # CONFIG_HEADERS_CHECK is not set |
@@ -965,16 +1106,23 @@ CONFIG_DEBUG_KERNEL=y | |||
965 | CONFIG_DETECT_SOFTLOCKUP=y | 1106 | CONFIG_DETECT_SOFTLOCKUP=y |
966 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1107 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
967 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1108 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1109 | CONFIG_DETECT_HUNG_TASK=y | ||
1110 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1111 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
968 | CONFIG_SCHED_DEBUG=y | 1112 | CONFIG_SCHED_DEBUG=y |
969 | # CONFIG_SCHEDSTATS is not set | 1113 | # CONFIG_SCHEDSTATS is not set |
970 | # CONFIG_TIMER_STATS is not set | 1114 | # CONFIG_TIMER_STATS is not set |
971 | # CONFIG_DEBUG_OBJECTS is not set | 1115 | # CONFIG_DEBUG_OBJECTS is not set |
972 | # CONFIG_SLUB_DEBUG_ON is not set | 1116 | # CONFIG_SLUB_DEBUG_ON is not set |
973 | # CONFIG_SLUB_STATS is not set | 1117 | # CONFIG_SLUB_STATS is not set |
1118 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
974 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1119 | # CONFIG_DEBUG_RT_MUTEXES is not set |
975 | # CONFIG_RT_MUTEX_TESTER is not set | 1120 | # CONFIG_RT_MUTEX_TESTER is not set |
976 | # CONFIG_DEBUG_SPINLOCK is not set | 1121 | # CONFIG_DEBUG_SPINLOCK is not set |
977 | # CONFIG_DEBUG_MUTEXES is not set | 1122 | # CONFIG_DEBUG_MUTEXES is not set |
1123 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1124 | # CONFIG_PROVE_LOCKING is not set | ||
1125 | # CONFIG_LOCK_STAT is not set | ||
978 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1126 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
979 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1127 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
980 | # CONFIG_DEBUG_KOBJECT is not set | 1128 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -986,35 +1134,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
986 | # CONFIG_DEBUG_LIST is not set | 1134 | # CONFIG_DEBUG_LIST is not set |
987 | # CONFIG_DEBUG_SG is not set | 1135 | # CONFIG_DEBUG_SG is not set |
988 | # CONFIG_DEBUG_NOTIFIERS is not set | 1136 | # CONFIG_DEBUG_NOTIFIERS is not set |
989 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1137 | # CONFIG_DEBUG_CREDENTIALS is not set |
990 | # CONFIG_RCU_TORTURE_TEST is not set | 1138 | # CONFIG_RCU_TORTURE_TEST is not set |
991 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1139 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
992 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1140 | # CONFIG_BACKTRACE_SELF_TEST is not set |
993 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1141 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1142 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
994 | # CONFIG_FAULT_INJECTION is not set | 1143 | # CONFIG_FAULT_INJECTION is not set |
995 | # CONFIG_LATENCYTOP is not set | 1144 | # CONFIG_LATENCYTOP is not set |
996 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1145 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1146 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
997 | CONFIG_HAVE_FUNCTION_TRACER=y | 1147 | CONFIG_HAVE_FUNCTION_TRACER=y |
1148 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
998 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1149 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
999 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1150 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1000 | 1151 | CONFIG_TRACING_SUPPORT=y | |
1001 | # | 1152 | CONFIG_FTRACE=y |
1002 | # Tracers | ||
1003 | # | ||
1004 | # CONFIG_FUNCTION_TRACER is not set | 1153 | # CONFIG_FUNCTION_TRACER is not set |
1154 | # CONFIG_IRQSOFF_TRACER is not set | ||
1005 | # CONFIG_SCHED_TRACER is not set | 1155 | # CONFIG_SCHED_TRACER is not set |
1006 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1156 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1007 | # CONFIG_BOOT_TRACER is not set | 1157 | # CONFIG_BOOT_TRACER is not set |
1008 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1158 | CONFIG_BRANCH_PROFILE_NONE=y |
1159 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1160 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
1009 | # CONFIG_STACK_TRACER is not set | 1161 | # CONFIG_STACK_TRACER is not set |
1010 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1162 | # CONFIG_KMEMTRACE is not set |
1163 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1164 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1165 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1166 | # CONFIG_DMA_API_DEBUG is not set | ||
1011 | # CONFIG_SAMPLES is not set | 1167 | # CONFIG_SAMPLES is not set |
1012 | CONFIG_HAVE_ARCH_KGDB=y | 1168 | CONFIG_HAVE_ARCH_KGDB=y |
1013 | # CONFIG_KGDB is not set | 1169 | # CONFIG_KGDB is not set |
1170 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1171 | CONFIG_PPC_WERROR=y | ||
1014 | CONFIG_PRINT_STACK_DEPTH=64 | 1172 | CONFIG_PRINT_STACK_DEPTH=64 |
1015 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1173 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1016 | # CONFIG_DEBUG_STACK_USAGE is not set | 1174 | # CONFIG_DEBUG_STACK_USAGE is not set |
1017 | # CONFIG_DEBUG_PAGEALLOC is not set | 1175 | # CONFIG_PPC_EMULATED_STATS is not set |
1018 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1176 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1019 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1177 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
1020 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1178 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1030,13 +1188,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1030 | # CONFIG_KEYS is not set | 1188 | # CONFIG_KEYS is not set |
1031 | # CONFIG_SECURITY is not set | 1189 | # CONFIG_SECURITY is not set |
1032 | # CONFIG_SECURITYFS is not set | 1190 | # CONFIG_SECURITYFS is not set |
1033 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1191 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1192 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1193 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1194 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1195 | CONFIG_DEFAULT_SECURITY="" | ||
1034 | CONFIG_CRYPTO=y | 1196 | CONFIG_CRYPTO=y |
1035 | 1197 | ||
1036 | # | 1198 | # |
1037 | # Crypto core or helper | 1199 | # Crypto core or helper |
1038 | # | 1200 | # |
1039 | # CONFIG_CRYPTO_FIPS is not set | ||
1040 | CONFIG_CRYPTO_ALGAPI=y | 1201 | CONFIG_CRYPTO_ALGAPI=y |
1041 | CONFIG_CRYPTO_ALGAPI2=y | 1202 | CONFIG_CRYPTO_ALGAPI2=y |
1042 | CONFIG_CRYPTO_AEAD2=y | 1203 | CONFIG_CRYPTO_AEAD2=y |
@@ -1045,10 +1206,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
1045 | CONFIG_CRYPTO_HASH=y | 1206 | CONFIG_CRYPTO_HASH=y |
1046 | CONFIG_CRYPTO_HASH2=y | 1207 | CONFIG_CRYPTO_HASH2=y |
1047 | CONFIG_CRYPTO_RNG2=y | 1208 | CONFIG_CRYPTO_RNG2=y |
1209 | CONFIG_CRYPTO_PCOMP=y | ||
1048 | CONFIG_CRYPTO_MANAGER=y | 1210 | CONFIG_CRYPTO_MANAGER=y |
1049 | CONFIG_CRYPTO_MANAGER2=y | 1211 | CONFIG_CRYPTO_MANAGER2=y |
1050 | # CONFIG_CRYPTO_GF128MUL is not set | 1212 | # CONFIG_CRYPTO_GF128MUL is not set |
1051 | # CONFIG_CRYPTO_NULL is not set | 1213 | # CONFIG_CRYPTO_NULL is not set |
1214 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1052 | # CONFIG_CRYPTO_CRYPTD is not set | 1215 | # CONFIG_CRYPTO_CRYPTD is not set |
1053 | # CONFIG_CRYPTO_AUTHENC is not set | 1216 | # CONFIG_CRYPTO_AUTHENC is not set |
1054 | # CONFIG_CRYPTO_TEST is not set | 1217 | # CONFIG_CRYPTO_TEST is not set |
@@ -1076,11 +1239,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1076 | # | 1239 | # |
1077 | # CONFIG_CRYPTO_HMAC is not set | 1240 | # CONFIG_CRYPTO_HMAC is not set |
1078 | # CONFIG_CRYPTO_XCBC is not set | 1241 | # CONFIG_CRYPTO_XCBC is not set |
1242 | # CONFIG_CRYPTO_VMAC is not set | ||
1079 | 1243 | ||
1080 | # | 1244 | # |
1081 | # Digest | 1245 | # Digest |
1082 | # | 1246 | # |
1083 | # CONFIG_CRYPTO_CRC32C is not set | 1247 | # CONFIG_CRYPTO_CRC32C is not set |
1248 | # CONFIG_CRYPTO_GHASH is not set | ||
1084 | # CONFIG_CRYPTO_MD4 is not set | 1249 | # CONFIG_CRYPTO_MD4 is not set |
1085 | CONFIG_CRYPTO_MD5=y | 1250 | CONFIG_CRYPTO_MD5=y |
1086 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1251 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1117,6 +1282,7 @@ CONFIG_CRYPTO_DES=y | |||
1117 | # Compression | 1282 | # Compression |
1118 | # | 1283 | # |
1119 | # CONFIG_CRYPTO_DEFLATE is not set | 1284 | # CONFIG_CRYPTO_DEFLATE is not set |
1285 | # CONFIG_CRYPTO_ZLIB is not set | ||
1120 | # CONFIG_CRYPTO_LZO is not set | 1286 | # CONFIG_CRYPTO_LZO is not set |
1121 | 1287 | ||
1122 | # | 1288 | # |
@@ -1125,5 +1291,6 @@ CONFIG_CRYPTO_DES=y | |||
1125 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1291 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1126 | CONFIG_CRYPTO_HW=y | 1292 | CONFIG_CRYPTO_HW=y |
1127 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1293 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1294 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1128 | # CONFIG_PPC_CLOCK is not set | 1295 | # CONFIG_PPC_CLOCK is not set |
1129 | # CONFIG_VIRTUALIZATION is not set | 1296 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/40x/hcu4_defconfig b/arch/powerpc/configs/40x/hcu4_defconfig index 8c019d79bf2a..f87ef0382280 100644 --- a/arch/powerpc/configs/40x/hcu4_defconfig +++ b/arch/powerpc/configs/40x/hcu4_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:17:50 2009 | 4 | # Mon Jan 4 15:45:11 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -27,15 +28,18 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
30 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
31 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
32 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
33 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
34 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
38 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
39 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
40 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
41 | CONFIG_PPC=y | 45 | CONFIG_PPC=y |
@@ -49,11 +53,15 @@ CONFIG_PPC_UDBG_16550=y | |||
49 | # CONFIG_GENERIC_TBSYNC is not set | 53 | # CONFIG_GENERIC_TBSYNC is not set |
50 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
51 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
56 | CONFIG_DTC=y | ||
52 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
53 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
54 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
55 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
64 | CONFIG_CONSTRUCTORS=y | ||
57 | 65 | ||
58 | # | 66 | # |
59 | # General setup | 67 | # General setup |
@@ -67,9 +75,21 @@ CONFIG_SWAP=y | |||
67 | CONFIG_SYSVIPC=y | 75 | CONFIG_SYSVIPC=y |
68 | CONFIG_SYSVIPC_SYSCTL=y | 76 | CONFIG_SYSVIPC_SYSCTL=y |
69 | CONFIG_POSIX_MQUEUE=y | 77 | CONFIG_POSIX_MQUEUE=y |
78 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 79 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 80 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_AUDIT is not set | 81 | # CONFIG_AUDIT is not set |
82 | |||
83 | # | ||
84 | # RCU Subsystem | ||
85 | # | ||
86 | CONFIG_TREE_RCU=y | ||
87 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
88 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
92 | # CONFIG_TREE_RCU_TRACE is not set | ||
73 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
74 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
75 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -84,31 +104,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
84 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
85 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
86 | CONFIG_INITRAMFS_SOURCE="" | 106 | CONFIG_INITRAMFS_SOURCE="" |
107 | CONFIG_RD_GZIP=y | ||
108 | # CONFIG_RD_BZIP2 is not set | ||
109 | # CONFIG_RD_LZMA is not set | ||
87 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 110 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
88 | CONFIG_SYSCTL=y | 111 | CONFIG_SYSCTL=y |
112 | CONFIG_ANON_INODES=y | ||
89 | CONFIG_EMBEDDED=y | 113 | CONFIG_EMBEDDED=y |
90 | CONFIG_SYSCTL_SYSCALL=y | 114 | CONFIG_SYSCTL_SYSCALL=y |
91 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
92 | CONFIG_KALLSYMS_ALL=y | 116 | CONFIG_KALLSYMS_ALL=y |
93 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
94 | CONFIG_KALLSYMS_EXTRA_PASS=y | 117 | CONFIG_KALLSYMS_EXTRA_PASS=y |
95 | CONFIG_HOTPLUG=y | 118 | CONFIG_HOTPLUG=y |
96 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
97 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
98 | CONFIG_ELF_CORE=y | 121 | CONFIG_ELF_CORE=y |
99 | CONFIG_COMPAT_BRK=y | ||
100 | CONFIG_BASE_FULL=y | 122 | CONFIG_BASE_FULL=y |
101 | CONFIG_FUTEX=y | 123 | CONFIG_FUTEX=y |
102 | CONFIG_ANON_INODES=y | ||
103 | CONFIG_EPOLL=y | 124 | CONFIG_EPOLL=y |
104 | CONFIG_SIGNALFD=y | 125 | CONFIG_SIGNALFD=y |
105 | CONFIG_TIMERFD=y | 126 | CONFIG_TIMERFD=y |
106 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
107 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
108 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
109 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
110 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
111 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
140 | CONFIG_COMPAT_BRK=y | ||
112 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
113 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
114 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
@@ -120,6 +149,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
159 | # CONFIG_SLOW_WORK is not set | ||
123 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
124 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
125 | CONFIG_RT_MUTEXES=y | 162 | CONFIG_RT_MUTEXES=y |
@@ -131,8 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
131 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
132 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
133 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
134 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
135 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
136 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
137 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
138 | 174 | ||
@@ -140,19 +176,41 @@ CONFIG_LBD=y | |||
140 | # IO Schedulers | 176 | # IO Schedulers |
141 | # | 177 | # |
142 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
145 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
146 | CONFIG_DEFAULT_AS=y | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
148 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
149 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
151 | CONFIG_CLASSIC_RCU=y | 185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
152 | # CONFIG_TREE_RCU is not set | 186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
153 | # CONFIG_PREEMPT_RCU is not set | 187 | # CONFIG_INLINE_SPIN_LOCK is not set |
154 | # CONFIG_TREE_RCU_TRACE is not set | 188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU_TRACE is not set | 189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
156 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
157 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 215 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
158 | 216 | ||
@@ -166,6 +224,7 @@ CONFIG_CLASSIC_RCU=y | |||
166 | # CONFIG_ACADIA is not set | 224 | # CONFIG_ACADIA is not set |
167 | # CONFIG_EP405 is not set | 225 | # CONFIG_EP405 is not set |
168 | CONFIG_HCU4=y | 226 | CONFIG_HCU4=y |
227 | # CONFIG_HOTFOOT is not set | ||
169 | # CONFIG_KILAUEA is not set | 228 | # CONFIG_KILAUEA is not set |
170 | # CONFIG_MAKALU is not set | 229 | # CONFIG_MAKALU is not set |
171 | # CONFIG_WALNUT is not set | 230 | # CONFIG_WALNUT is not set |
@@ -208,10 +267,12 @@ CONFIG_BINFMT_ELF=y | |||
208 | # CONFIG_BINFMT_MISC is not set | 267 | # CONFIG_BINFMT_MISC is not set |
209 | # CONFIG_MATH_EMULATION is not set | 268 | # CONFIG_MATH_EMULATION is not set |
210 | # CONFIG_IOMMU_HELPER is not set | 269 | # CONFIG_IOMMU_HELPER is not set |
211 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 270 | # CONFIG_SWIOTLB is not set |
212 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
213 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 272 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
214 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
274 | CONFIG_SPARSE_IRQ=y | ||
275 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
215 | CONFIG_ARCH_FLATMEM_ENABLE=y | 276 | CONFIG_ARCH_FLATMEM_ENABLE=y |
216 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 277 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
217 | CONFIG_SELECT_MEMORY_MODEL=y | 278 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -227,10 +288,12 @@ CONFIG_MIGRATION=y | |||
227 | CONFIG_ZONE_DMA_FLAG=1 | 288 | CONFIG_ZONE_DMA_FLAG=1 |
228 | CONFIG_BOUNCE=y | 289 | CONFIG_BOUNCE=y |
229 | CONFIG_VIRT_TO_BUS=y | 290 | CONFIG_VIRT_TO_BUS=y |
230 | CONFIG_UNEVICTABLE_LRU=y | 291 | # CONFIG_KSM is not set |
292 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
231 | CONFIG_PPC_4K_PAGES=y | 293 | CONFIG_PPC_4K_PAGES=y |
232 | # CONFIG_PPC_16K_PAGES is not set | 294 | # CONFIG_PPC_16K_PAGES is not set |
233 | # CONFIG_PPC_64K_PAGES is not set | 295 | # CONFIG_PPC_64K_PAGES is not set |
296 | # CONFIG_PPC_256K_PAGES is not set | ||
234 | CONFIG_FORCE_MAX_ZONEORDER=11 | 297 | CONFIG_FORCE_MAX_ZONEORDER=11 |
235 | CONFIG_PROC_DEVICETREE=y | 298 | CONFIG_PROC_DEVICETREE=y |
236 | # CONFIG_CMDLINE_BOOL is not set | 299 | # CONFIG_CMDLINE_BOOL is not set |
@@ -255,6 +318,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
255 | # CONFIG_PCI_LEGACY is not set | 318 | # CONFIG_PCI_LEGACY is not set |
256 | # CONFIG_PCI_DEBUG is not set | 319 | # CONFIG_PCI_DEBUG is not set |
257 | # CONFIG_PCI_STUB is not set | 320 | # CONFIG_PCI_STUB is not set |
321 | # CONFIG_PCI_IOV is not set | ||
258 | # CONFIG_PCCARD is not set | 322 | # CONFIG_PCCARD is not set |
259 | # CONFIG_HOTPLUG_PCI is not set | 323 | # CONFIG_HOTPLUG_PCI is not set |
260 | # CONFIG_HAS_RAPIDIO is not set | 324 | # CONFIG_HAS_RAPIDIO is not set |
@@ -272,14 +336,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
272 | CONFIG_KERNEL_START=0xc0000000 | 336 | CONFIG_KERNEL_START=0xc0000000 |
273 | CONFIG_PHYSICAL_START=0x00000000 | 337 | CONFIG_PHYSICAL_START=0x00000000 |
274 | CONFIG_TASK_SIZE=0xc0000000 | 338 | CONFIG_TASK_SIZE=0xc0000000 |
275 | CONFIG_CONSISTENT_START=0xff100000 | ||
276 | CONFIG_CONSISTENT_SIZE=0x00200000 | 339 | CONFIG_CONSISTENT_SIZE=0x00200000 |
277 | CONFIG_NET=y | 340 | CONFIG_NET=y |
278 | 341 | ||
279 | # | 342 | # |
280 | # Networking options | 343 | # Networking options |
281 | # | 344 | # |
282 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
283 | CONFIG_PACKET=y | 345 | CONFIG_PACKET=y |
284 | # CONFIG_PACKET_MMAP is not set | 346 | # CONFIG_PACKET_MMAP is not set |
285 | CONFIG_UNIX=y | 347 | CONFIG_UNIX=y |
@@ -316,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
316 | # CONFIG_NETFILTER is not set | 378 | # CONFIG_NETFILTER is not set |
317 | # CONFIG_IP_DCCP is not set | 379 | # CONFIG_IP_DCCP is not set |
318 | # CONFIG_IP_SCTP is not set | 380 | # CONFIG_IP_SCTP is not set |
381 | # CONFIG_RDS is not set | ||
319 | # CONFIG_TIPC is not set | 382 | # CONFIG_TIPC is not set |
320 | # CONFIG_ATM is not set | 383 | # CONFIG_ATM is not set |
321 | # CONFIG_BRIDGE is not set | 384 | # CONFIG_BRIDGE is not set |
@@ -329,6 +392,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
329 | # CONFIG_LAPB is not set | 392 | # CONFIG_LAPB is not set |
330 | # CONFIG_ECONET is not set | 393 | # CONFIG_ECONET is not set |
331 | # CONFIG_WAN_ROUTER is not set | 394 | # CONFIG_WAN_ROUTER is not set |
395 | # CONFIG_PHONET is not set | ||
396 | # CONFIG_IEEE802154 is not set | ||
332 | # CONFIG_NET_SCHED is not set | 397 | # CONFIG_NET_SCHED is not set |
333 | # CONFIG_DCB is not set | 398 | # CONFIG_DCB is not set |
334 | 399 | ||
@@ -341,8 +406,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
341 | # CONFIG_IRDA is not set | 406 | # CONFIG_IRDA is not set |
342 | # CONFIG_BT is not set | 407 | # CONFIG_BT is not set |
343 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
344 | # CONFIG_PHONET is not set | 409 | CONFIG_WIRELESS=y |
345 | # CONFIG_WIRELESS is not set | 410 | # CONFIG_CFG80211 is not set |
411 | # CONFIG_LIB80211 is not set | ||
412 | |||
413 | # | ||
414 | # CFG80211 needs to be enabled for MAC80211 | ||
415 | # | ||
346 | # CONFIG_WIMAX is not set | 416 | # CONFIG_WIMAX is not set |
347 | # CONFIG_RFKILL is not set | 417 | # CONFIG_RFKILL is not set |
348 | # CONFIG_NET_9P is not set | 418 | # CONFIG_NET_9P is not set |
@@ -355,6 +425,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
355 | # Generic Driver Options | 425 | # Generic Driver Options |
356 | # | 426 | # |
357 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 427 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
428 | # CONFIG_DEVTMPFS is not set | ||
358 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
359 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
360 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
@@ -367,9 +438,9 @@ CONFIG_CONNECTOR=y | |||
367 | CONFIG_PROC_EVENTS=y | 438 | CONFIG_PROC_EVENTS=y |
368 | CONFIG_MTD=y | 439 | CONFIG_MTD=y |
369 | # CONFIG_MTD_DEBUG is not set | 440 | # CONFIG_MTD_DEBUG is not set |
441 | # CONFIG_MTD_TESTS is not set | ||
370 | # CONFIG_MTD_CONCAT is not set | 442 | # CONFIG_MTD_CONCAT is not set |
371 | CONFIG_MTD_PARTITIONS=y | 443 | CONFIG_MTD_PARTITIONS=y |
372 | # CONFIG_MTD_TESTS is not set | ||
373 | # CONFIG_MTD_REDBOOT_PARTS is not set | 444 | # CONFIG_MTD_REDBOOT_PARTS is not set |
374 | CONFIG_MTD_CMDLINE_PARTS=y | 445 | CONFIG_MTD_CMDLINE_PARTS=y |
375 | CONFIG_MTD_OF_PARTS=y | 446 | CONFIG_MTD_OF_PARTS=y |
@@ -445,7 +516,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
445 | # LPDDR flash memory drivers | 516 | # LPDDR flash memory drivers |
446 | # | 517 | # |
447 | # CONFIG_MTD_LPDDR is not set | 518 | # CONFIG_MTD_LPDDR is not set |
448 | # CONFIG_MTD_QINFO_PROBE is not set | ||
449 | 519 | ||
450 | # | 520 | # |
451 | # UBI - Unsorted block images | 521 | # UBI - Unsorted block images |
@@ -461,6 +531,7 @@ CONFIG_BLK_DEV=y | |||
461 | # CONFIG_BLK_DEV_UMEM is not set | 531 | # CONFIG_BLK_DEV_UMEM is not set |
462 | # CONFIG_BLK_DEV_COW_COMMON is not set | 532 | # CONFIG_BLK_DEV_COW_COMMON is not set |
463 | # CONFIG_BLK_DEV_LOOP is not set | 533 | # CONFIG_BLK_DEV_LOOP is not set |
534 | # CONFIG_BLK_DEV_DRBD is not set | ||
464 | # CONFIG_BLK_DEV_NBD is not set | 535 | # CONFIG_BLK_DEV_NBD is not set |
465 | # CONFIG_BLK_DEV_SX8 is not set | 536 | # CONFIG_BLK_DEV_SX8 is not set |
466 | CONFIG_BLK_DEV_RAM=y | 537 | CONFIG_BLK_DEV_RAM=y |
@@ -473,12 +544,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
473 | # CONFIG_BLK_DEV_HD is not set | 544 | # CONFIG_BLK_DEV_HD is not set |
474 | CONFIG_MISC_DEVICES=y | 545 | CONFIG_MISC_DEVICES=y |
475 | # CONFIG_PHANTOM is not set | 546 | # CONFIG_PHANTOM is not set |
476 | # CONFIG_EEPROM_93CX6 is not set | ||
477 | # CONFIG_SGI_IOC4 is not set | 547 | # CONFIG_SGI_IOC4 is not set |
478 | # CONFIG_TIFM_CORE is not set | 548 | # CONFIG_TIFM_CORE is not set |
479 | # CONFIG_ENCLOSURE_SERVICES is not set | 549 | # CONFIG_ENCLOSURE_SERVICES is not set |
480 | # CONFIG_HP_ILO is not set | 550 | # CONFIG_HP_ILO is not set |
481 | # CONFIG_C2PORT is not set | 551 | # CONFIG_C2PORT is not set |
552 | |||
553 | # | ||
554 | # EEPROM support | ||
555 | # | ||
556 | # CONFIG_EEPROM_93CX6 is not set | ||
557 | # CONFIG_CB710_CORE is not set | ||
482 | CONFIG_HAVE_IDE=y | 558 | CONFIG_HAVE_IDE=y |
483 | # CONFIG_IDE is not set | 559 | # CONFIG_IDE is not set |
484 | 560 | ||
@@ -498,7 +574,11 @@ CONFIG_HAVE_IDE=y | |||
498 | # | 574 | # |
499 | 575 | ||
500 | # | 576 | # |
501 | # Enable only one of the two stacks, unless you know what you are doing | 577 | # You can enable one or both FireWire driver stacks. |
578 | # | ||
579 | |||
580 | # | ||
581 | # See the help texts for more information. | ||
502 | # | 582 | # |
503 | # CONFIG_FIREWIRE is not set | 583 | # CONFIG_FIREWIRE is not set |
504 | # CONFIG_IEEE1394 is not set | 584 | # CONFIG_IEEE1394 is not set |
@@ -519,6 +599,8 @@ CONFIG_NET_ETHERNET=y | |||
519 | # CONFIG_SUNGEM is not set | 599 | # CONFIG_SUNGEM is not set |
520 | # CONFIG_CASSINI is not set | 600 | # CONFIG_CASSINI is not set |
521 | # CONFIG_NET_VENDOR_3COM is not set | 601 | # CONFIG_NET_VENDOR_3COM is not set |
602 | # CONFIG_ETHOC is not set | ||
603 | # CONFIG_DNET is not set | ||
522 | # CONFIG_NET_TULIP is not set | 604 | # CONFIG_NET_TULIP is not set |
523 | # CONFIG_HP100 is not set | 605 | # CONFIG_HP100 is not set |
524 | CONFIG_IBM_NEW_EMAC=y | 606 | CONFIG_IBM_NEW_EMAC=y |
@@ -537,7 +619,10 @@ CONFIG_IBM_NEW_EMAC_RX_SKB_HEADROOM=0 | |||
537 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 619 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
538 | # CONFIG_NET_PCI is not set | 620 | # CONFIG_NET_PCI is not set |
539 | # CONFIG_B44 is not set | 621 | # CONFIG_B44 is not set |
622 | # CONFIG_KS8842 is not set | ||
623 | # CONFIG_KS8851_MLL is not set | ||
540 | # CONFIG_ATL2 is not set | 624 | # CONFIG_ATL2 is not set |
625 | # CONFIG_XILINX_EMACLITE is not set | ||
541 | CONFIG_NETDEV_1000=y | 626 | CONFIG_NETDEV_1000=y |
542 | # CONFIG_ACENIC is not set | 627 | # CONFIG_ACENIC is not set |
543 | # CONFIG_DL2K is not set | 628 | # CONFIG_DL2K is not set |
@@ -545,6 +630,7 @@ CONFIG_NETDEV_1000=y | |||
545 | # CONFIG_E1000E is not set | 630 | # CONFIG_E1000E is not set |
546 | # CONFIG_IP1000 is not set | 631 | # CONFIG_IP1000 is not set |
547 | # CONFIG_IGB is not set | 632 | # CONFIG_IGB is not set |
633 | # CONFIG_IGBVF is not set | ||
548 | # CONFIG_NS83820 is not set | 634 | # CONFIG_NS83820 is not set |
549 | # CONFIG_HAMACHI is not set | 635 | # CONFIG_HAMACHI is not set |
550 | # CONFIG_YELLOWFIN is not set | 636 | # CONFIG_YELLOWFIN is not set |
@@ -555,9 +641,13 @@ CONFIG_NETDEV_1000=y | |||
555 | # CONFIG_VIA_VELOCITY is not set | 641 | # CONFIG_VIA_VELOCITY is not set |
556 | # CONFIG_TIGON3 is not set | 642 | # CONFIG_TIGON3 is not set |
557 | # CONFIG_BNX2 is not set | 643 | # CONFIG_BNX2 is not set |
644 | # CONFIG_CNIC is not set | ||
645 | # CONFIG_MV643XX_ETH is not set | ||
646 | # CONFIG_XILINX_LL_TEMAC is not set | ||
558 | # CONFIG_QLA3XXX is not set | 647 | # CONFIG_QLA3XXX is not set |
559 | # CONFIG_ATL1 is not set | 648 | # CONFIG_ATL1 is not set |
560 | # CONFIG_ATL1E is not set | 649 | # CONFIG_ATL1E is not set |
650 | # CONFIG_ATL1C is not set | ||
561 | # CONFIG_JME is not set | 651 | # CONFIG_JME is not set |
562 | CONFIG_NETDEV_10000=y | 652 | CONFIG_NETDEV_10000=y |
563 | # CONFIG_CHELSIO_T1 is not set | 653 | # CONFIG_CHELSIO_T1 is not set |
@@ -567,6 +657,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
567 | # CONFIG_IXGBE is not set | 657 | # CONFIG_IXGBE is not set |
568 | # CONFIG_IXGB is not set | 658 | # CONFIG_IXGB is not set |
569 | # CONFIG_S2IO is not set | 659 | # CONFIG_S2IO is not set |
660 | # CONFIG_VXGE is not set | ||
570 | # CONFIG_MYRI10GE is not set | 661 | # CONFIG_MYRI10GE is not set |
571 | # CONFIG_NETXEN_NIC is not set | 662 | # CONFIG_NETXEN_NIC is not set |
572 | # CONFIG_NIU is not set | 663 | # CONFIG_NIU is not set |
@@ -576,14 +667,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
576 | # CONFIG_BNX2X is not set | 667 | # CONFIG_BNX2X is not set |
577 | # CONFIG_QLGE is not set | 668 | # CONFIG_QLGE is not set |
578 | # CONFIG_SFC is not set | 669 | # CONFIG_SFC is not set |
670 | # CONFIG_BE2NET is not set | ||
579 | # CONFIG_TR is not set | 671 | # CONFIG_TR is not set |
580 | 672 | CONFIG_WLAN=y | |
581 | # | 673 | # CONFIG_AIRO is not set |
582 | # Wireless LAN | 674 | # CONFIG_ATMEL is not set |
583 | # | 675 | # CONFIG_PRISM54 is not set |
584 | # CONFIG_WLAN_PRE80211 is not set | 676 | # CONFIG_HOSTAP is not set |
585 | # CONFIG_WLAN_80211 is not set | ||
586 | # CONFIG_IWLWIFI_LEDS is not set | ||
587 | 677 | ||
588 | # | 678 | # |
589 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 679 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -596,6 +686,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
596 | # CONFIG_NETCONSOLE is not set | 686 | # CONFIG_NETCONSOLE is not set |
597 | # CONFIG_NETPOLL is not set | 687 | # CONFIG_NETPOLL is not set |
598 | # CONFIG_NET_POLL_CONTROLLER is not set | 688 | # CONFIG_NET_POLL_CONTROLLER is not set |
689 | # CONFIG_VMXNET3 is not set | ||
599 | # CONFIG_ISDN is not set | 690 | # CONFIG_ISDN is not set |
600 | # CONFIG_PHONE is not set | 691 | # CONFIG_PHONE is not set |
601 | 692 | ||
@@ -641,6 +732,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
641 | # CONFIG_SERIAL_JSM is not set | 732 | # CONFIG_SERIAL_JSM is not set |
642 | CONFIG_SERIAL_OF_PLATFORM=y | 733 | CONFIG_SERIAL_OF_PLATFORM=y |
643 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 734 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
735 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
644 | CONFIG_UNIX98_PTYS=y | 736 | CONFIG_UNIX98_PTYS=y |
645 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 737 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
646 | CONFIG_LEGACY_PTYS=y | 738 | CONFIG_LEGACY_PTYS=y |
@@ -657,13 +749,17 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
657 | CONFIG_DEVPORT=y | 749 | CONFIG_DEVPORT=y |
658 | # CONFIG_I2C is not set | 750 | # CONFIG_I2C is not set |
659 | # CONFIG_SPI is not set | 751 | # CONFIG_SPI is not set |
752 | |||
753 | # | ||
754 | # PPS support | ||
755 | # | ||
756 | # CONFIG_PPS is not set | ||
660 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 757 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
661 | # CONFIG_GPIOLIB is not set | 758 | # CONFIG_GPIOLIB is not set |
662 | # CONFIG_W1 is not set | 759 | # CONFIG_W1 is not set |
663 | # CONFIG_POWER_SUPPLY is not set | 760 | # CONFIG_POWER_SUPPLY is not set |
664 | # CONFIG_HWMON is not set | 761 | # CONFIG_HWMON is not set |
665 | # CONFIG_THERMAL is not set | 762 | # CONFIG_THERMAL is not set |
666 | # CONFIG_THERMAL_HWMON is not set | ||
667 | # CONFIG_WATCHDOG is not set | 763 | # CONFIG_WATCHDOG is not set |
668 | CONFIG_SSB_POSSIBLE=y | 764 | CONFIG_SSB_POSSIBLE=y |
669 | 765 | ||
@@ -680,27 +776,13 @@ CONFIG_SSB_POSSIBLE=y | |||
680 | # CONFIG_HTC_PASIC3 is not set | 776 | # CONFIG_HTC_PASIC3 is not set |
681 | # CONFIG_MFD_TMIO is not set | 777 | # CONFIG_MFD_TMIO is not set |
682 | # CONFIG_REGULATOR is not set | 778 | # CONFIG_REGULATOR is not set |
683 | 779 | # CONFIG_MEDIA_SUPPORT is not set | |
684 | # | ||
685 | # Multimedia devices | ||
686 | # | ||
687 | |||
688 | # | ||
689 | # Multimedia core support | ||
690 | # | ||
691 | # CONFIG_VIDEO_DEV is not set | ||
692 | # CONFIG_DVB_CORE is not set | ||
693 | # CONFIG_VIDEO_MEDIA is not set | ||
694 | |||
695 | # | ||
696 | # Multimedia drivers | ||
697 | # | ||
698 | # CONFIG_DAB is not set | ||
699 | 780 | ||
700 | # | 781 | # |
701 | # Graphics support | 782 | # Graphics support |
702 | # | 783 | # |
703 | # CONFIG_AGP is not set | 784 | # CONFIG_AGP is not set |
785 | CONFIG_VGA_ARB=y | ||
704 | # CONFIG_DRM is not set | 786 | # CONFIG_DRM is not set |
705 | # CONFIG_VGASTATE is not set | 787 | # CONFIG_VGASTATE is not set |
706 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 788 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -722,7 +804,12 @@ CONFIG_VIDEO_OUTPUT_CONTROL=m | |||
722 | # CONFIG_EDAC is not set | 804 | # CONFIG_EDAC is not set |
723 | # CONFIG_RTC_CLASS is not set | 805 | # CONFIG_RTC_CLASS is not set |
724 | # CONFIG_DMADEVICES is not set | 806 | # CONFIG_DMADEVICES is not set |
807 | # CONFIG_AUXDISPLAY is not set | ||
725 | # CONFIG_UIO is not set | 808 | # CONFIG_UIO is not set |
809 | |||
810 | # | ||
811 | # TI VLYNQ | ||
812 | # | ||
726 | # CONFIG_STAGING is not set | 813 | # CONFIG_STAGING is not set |
727 | 814 | ||
728 | # | 815 | # |
@@ -733,14 +820,17 @@ CONFIG_EXT2_FS=y | |||
733 | # CONFIG_EXT2_FS_XIP is not set | 820 | # CONFIG_EXT2_FS_XIP is not set |
734 | # CONFIG_EXT3_FS is not set | 821 | # CONFIG_EXT3_FS is not set |
735 | # CONFIG_EXT4_FS is not set | 822 | # CONFIG_EXT4_FS is not set |
823 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
736 | # CONFIG_REISERFS_FS is not set | 824 | # CONFIG_REISERFS_FS is not set |
737 | # CONFIG_JFS_FS is not set | 825 | # CONFIG_JFS_FS is not set |
738 | # CONFIG_FS_POSIX_ACL is not set | 826 | # CONFIG_FS_POSIX_ACL is not set |
739 | CONFIG_FILE_LOCKING=y | ||
740 | # CONFIG_XFS_FS is not set | 827 | # CONFIG_XFS_FS is not set |
741 | # CONFIG_GFS2_FS is not set | 828 | # CONFIG_GFS2_FS is not set |
742 | # CONFIG_OCFS2_FS is not set | 829 | # CONFIG_OCFS2_FS is not set |
743 | # CONFIG_BTRFS_FS is not set | 830 | # CONFIG_BTRFS_FS is not set |
831 | # CONFIG_NILFS2_FS is not set | ||
832 | CONFIG_FILE_LOCKING=y | ||
833 | CONFIG_FSNOTIFY=y | ||
744 | CONFIG_DNOTIFY=y | 834 | CONFIG_DNOTIFY=y |
745 | CONFIG_INOTIFY=y | 835 | CONFIG_INOTIFY=y |
746 | CONFIG_INOTIFY_USER=y | 836 | CONFIG_INOTIFY_USER=y |
@@ -750,6 +840,11 @@ CONFIG_INOTIFY_USER=y | |||
750 | # CONFIG_FUSE_FS is not set | 840 | # CONFIG_FUSE_FS is not set |
751 | 841 | ||
752 | # | 842 | # |
843 | # Caches | ||
844 | # | ||
845 | # CONFIG_FSCACHE is not set | ||
846 | |||
847 | # | ||
753 | # CD-ROM/DVD Filesystems | 848 | # CD-ROM/DVD Filesystems |
754 | # | 849 | # |
755 | # CONFIG_ISO9660_FS is not set | 850 | # CONFIG_ISO9660_FS is not set |
@@ -804,7 +899,6 @@ CONFIG_LOCKD=y | |||
804 | CONFIG_LOCKD_V4=y | 899 | CONFIG_LOCKD_V4=y |
805 | CONFIG_NFS_COMMON=y | 900 | CONFIG_NFS_COMMON=y |
806 | CONFIG_SUNRPC=y | 901 | CONFIG_SUNRPC=y |
807 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
808 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 902 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
809 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 903 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
810 | # CONFIG_SMB_FS is not set | 904 | # CONFIG_SMB_FS is not set |
@@ -820,6 +914,7 @@ CONFIG_SUNRPC=y | |||
820 | CONFIG_MSDOS_PARTITION=y | 914 | CONFIG_MSDOS_PARTITION=y |
821 | # CONFIG_NLS is not set | 915 | # CONFIG_NLS is not set |
822 | # CONFIG_DLM is not set | 916 | # CONFIG_DLM is not set |
917 | # CONFIG_BINARY_PRINTF is not set | ||
823 | 918 | ||
824 | # | 919 | # |
825 | # Library routines | 920 | # Library routines |
@@ -834,11 +929,13 @@ CONFIG_CRC32=y | |||
834 | # CONFIG_CRC7 is not set | 929 | # CONFIG_CRC7 is not set |
835 | # CONFIG_LIBCRC32C is not set | 930 | # CONFIG_LIBCRC32C is not set |
836 | CONFIG_ZLIB_INFLATE=y | 931 | CONFIG_ZLIB_INFLATE=y |
837 | CONFIG_PLIST=y | 932 | CONFIG_DECOMPRESS_GZIP=y |
838 | CONFIG_HAS_IOMEM=y | 933 | CONFIG_HAS_IOMEM=y |
839 | CONFIG_HAS_IOPORT=y | 934 | CONFIG_HAS_IOPORT=y |
840 | CONFIG_HAS_DMA=y | 935 | CONFIG_HAS_DMA=y |
841 | CONFIG_HAVE_LMB=y | 936 | CONFIG_HAVE_LMB=y |
937 | CONFIG_NLATTR=y | ||
938 | CONFIG_GENERIC_ATOMIC64=y | ||
842 | 939 | ||
843 | # | 940 | # |
844 | # Kernel hacking | 941 | # Kernel hacking |
@@ -848,6 +945,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
848 | CONFIG_ENABLE_MUST_CHECK=y | 945 | CONFIG_ENABLE_MUST_CHECK=y |
849 | CONFIG_FRAME_WARN=1024 | 946 | CONFIG_FRAME_WARN=1024 |
850 | CONFIG_MAGIC_SYSRQ=y | 947 | CONFIG_MAGIC_SYSRQ=y |
948 | # CONFIG_STRIP_ASM_SYMS is not set | ||
851 | # CONFIG_UNUSED_SYMBOLS is not set | 949 | # CONFIG_UNUSED_SYMBOLS is not set |
852 | CONFIG_DEBUG_FS=y | 950 | CONFIG_DEBUG_FS=y |
853 | # CONFIG_HEADERS_CHECK is not set | 951 | # CONFIG_HEADERS_CHECK is not set |
@@ -856,16 +954,23 @@ CONFIG_DEBUG_KERNEL=y | |||
856 | CONFIG_DETECT_SOFTLOCKUP=y | 954 | CONFIG_DETECT_SOFTLOCKUP=y |
857 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 955 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
858 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 956 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
957 | CONFIG_DETECT_HUNG_TASK=y | ||
958 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
959 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
859 | CONFIG_SCHED_DEBUG=y | 960 | CONFIG_SCHED_DEBUG=y |
860 | # CONFIG_SCHEDSTATS is not set | 961 | # CONFIG_SCHEDSTATS is not set |
861 | # CONFIG_TIMER_STATS is not set | 962 | # CONFIG_TIMER_STATS is not set |
862 | # CONFIG_DEBUG_OBJECTS is not set | 963 | # CONFIG_DEBUG_OBJECTS is not set |
863 | # CONFIG_SLUB_DEBUG_ON is not set | 964 | # CONFIG_SLUB_DEBUG_ON is not set |
864 | # CONFIG_SLUB_STATS is not set | 965 | # CONFIG_SLUB_STATS is not set |
966 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
865 | # CONFIG_DEBUG_RT_MUTEXES is not set | 967 | # CONFIG_DEBUG_RT_MUTEXES is not set |
866 | # CONFIG_RT_MUTEX_TESTER is not set | 968 | # CONFIG_RT_MUTEX_TESTER is not set |
867 | # CONFIG_DEBUG_SPINLOCK is not set | 969 | # CONFIG_DEBUG_SPINLOCK is not set |
868 | # CONFIG_DEBUG_MUTEXES is not set | 970 | # CONFIG_DEBUG_MUTEXES is not set |
971 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
972 | # CONFIG_PROVE_LOCKING is not set | ||
973 | # CONFIG_LOCK_STAT is not set | ||
869 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 974 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
870 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 975 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
871 | # CONFIG_DEBUG_KOBJECT is not set | 976 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -877,35 +982,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
877 | # CONFIG_DEBUG_LIST is not set | 982 | # CONFIG_DEBUG_LIST is not set |
878 | # CONFIG_DEBUG_SG is not set | 983 | # CONFIG_DEBUG_SG is not set |
879 | # CONFIG_DEBUG_NOTIFIERS is not set | 984 | # CONFIG_DEBUG_NOTIFIERS is not set |
880 | # CONFIG_BOOT_PRINTK_DELAY is not set | 985 | # CONFIG_DEBUG_CREDENTIALS is not set |
881 | # CONFIG_RCU_TORTURE_TEST is not set | 986 | # CONFIG_RCU_TORTURE_TEST is not set |
882 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 987 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
883 | # CONFIG_BACKTRACE_SELF_TEST is not set | 988 | # CONFIG_BACKTRACE_SELF_TEST is not set |
884 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 989 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
990 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
885 | # CONFIG_FAULT_INJECTION is not set | 991 | # CONFIG_FAULT_INJECTION is not set |
886 | # CONFIG_LATENCYTOP is not set | 992 | # CONFIG_LATENCYTOP is not set |
887 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 993 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
994 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
888 | CONFIG_HAVE_FUNCTION_TRACER=y | 995 | CONFIG_HAVE_FUNCTION_TRACER=y |
996 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
889 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 997 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
890 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 998 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
891 | 999 | CONFIG_TRACING_SUPPORT=y | |
892 | # | 1000 | CONFIG_FTRACE=y |
893 | # Tracers | ||
894 | # | ||
895 | # CONFIG_FUNCTION_TRACER is not set | 1001 | # CONFIG_FUNCTION_TRACER is not set |
1002 | # CONFIG_IRQSOFF_TRACER is not set | ||
896 | # CONFIG_SCHED_TRACER is not set | 1003 | # CONFIG_SCHED_TRACER is not set |
897 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1004 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
898 | # CONFIG_BOOT_TRACER is not set | 1005 | # CONFIG_BOOT_TRACER is not set |
899 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1006 | CONFIG_BRANCH_PROFILE_NONE=y |
1007 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1008 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
900 | # CONFIG_STACK_TRACER is not set | 1009 | # CONFIG_STACK_TRACER is not set |
901 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1010 | # CONFIG_KMEMTRACE is not set |
1011 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1012 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1013 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1014 | # CONFIG_DMA_API_DEBUG is not set | ||
902 | # CONFIG_SAMPLES is not set | 1015 | # CONFIG_SAMPLES is not set |
903 | CONFIG_HAVE_ARCH_KGDB=y | 1016 | CONFIG_HAVE_ARCH_KGDB=y |
904 | # CONFIG_KGDB is not set | 1017 | # CONFIG_KGDB is not set |
1018 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1019 | CONFIG_PPC_WERROR=y | ||
905 | CONFIG_PRINT_STACK_DEPTH=64 | 1020 | CONFIG_PRINT_STACK_DEPTH=64 |
906 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1021 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
907 | # CONFIG_DEBUG_STACK_USAGE is not set | 1022 | # CONFIG_DEBUG_STACK_USAGE is not set |
908 | # CONFIG_DEBUG_PAGEALLOC is not set | 1023 | # CONFIG_PPC_EMULATED_STATS is not set |
909 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1024 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
910 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1025 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
911 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1026 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -921,13 +1036,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
921 | # CONFIG_KEYS is not set | 1036 | # CONFIG_KEYS is not set |
922 | # CONFIG_SECURITY is not set | 1037 | # CONFIG_SECURITY is not set |
923 | # CONFIG_SECURITYFS is not set | 1038 | # CONFIG_SECURITYFS is not set |
924 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1039 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1040 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1041 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1042 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1043 | CONFIG_DEFAULT_SECURITY="" | ||
925 | CONFIG_CRYPTO=y | 1044 | CONFIG_CRYPTO=y |
926 | 1045 | ||
927 | # | 1046 | # |
928 | # Crypto core or helper | 1047 | # Crypto core or helper |
929 | # | 1048 | # |
930 | # CONFIG_CRYPTO_FIPS is not set | ||
931 | CONFIG_CRYPTO_ALGAPI=y | 1049 | CONFIG_CRYPTO_ALGAPI=y |
932 | CONFIG_CRYPTO_ALGAPI2=y | 1050 | CONFIG_CRYPTO_ALGAPI2=y |
933 | CONFIG_CRYPTO_AEAD2=y | 1051 | CONFIG_CRYPTO_AEAD2=y |
@@ -936,10 +1054,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
936 | CONFIG_CRYPTO_HASH=y | 1054 | CONFIG_CRYPTO_HASH=y |
937 | CONFIG_CRYPTO_HASH2=y | 1055 | CONFIG_CRYPTO_HASH2=y |
938 | CONFIG_CRYPTO_RNG2=y | 1056 | CONFIG_CRYPTO_RNG2=y |
1057 | CONFIG_CRYPTO_PCOMP=y | ||
939 | CONFIG_CRYPTO_MANAGER=y | 1058 | CONFIG_CRYPTO_MANAGER=y |
940 | CONFIG_CRYPTO_MANAGER2=y | 1059 | CONFIG_CRYPTO_MANAGER2=y |
941 | # CONFIG_CRYPTO_GF128MUL is not set | 1060 | # CONFIG_CRYPTO_GF128MUL is not set |
942 | # CONFIG_CRYPTO_NULL is not set | 1061 | # CONFIG_CRYPTO_NULL is not set |
1062 | CONFIG_CRYPTO_WORKQUEUE=y | ||
943 | # CONFIG_CRYPTO_CRYPTD is not set | 1063 | # CONFIG_CRYPTO_CRYPTD is not set |
944 | # CONFIG_CRYPTO_AUTHENC is not set | 1064 | # CONFIG_CRYPTO_AUTHENC is not set |
945 | # CONFIG_CRYPTO_TEST is not set | 1065 | # CONFIG_CRYPTO_TEST is not set |
@@ -967,11 +1087,13 @@ CONFIG_CRYPTO_PCBC=y | |||
967 | # | 1087 | # |
968 | # CONFIG_CRYPTO_HMAC is not set | 1088 | # CONFIG_CRYPTO_HMAC is not set |
969 | # CONFIG_CRYPTO_XCBC is not set | 1089 | # CONFIG_CRYPTO_XCBC is not set |
1090 | # CONFIG_CRYPTO_VMAC is not set | ||
970 | 1091 | ||
971 | # | 1092 | # |
972 | # Digest | 1093 | # Digest |
973 | # | 1094 | # |
974 | # CONFIG_CRYPTO_CRC32C is not set | 1095 | # CONFIG_CRYPTO_CRC32C is not set |
1096 | # CONFIG_CRYPTO_GHASH is not set | ||
975 | # CONFIG_CRYPTO_MD4 is not set | 1097 | # CONFIG_CRYPTO_MD4 is not set |
976 | CONFIG_CRYPTO_MD5=y | 1098 | CONFIG_CRYPTO_MD5=y |
977 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1099 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1008,6 +1130,7 @@ CONFIG_CRYPTO_DES=y | |||
1008 | # Compression | 1130 | # Compression |
1009 | # | 1131 | # |
1010 | # CONFIG_CRYPTO_DEFLATE is not set | 1132 | # CONFIG_CRYPTO_DEFLATE is not set |
1133 | # CONFIG_CRYPTO_ZLIB is not set | ||
1011 | # CONFIG_CRYPTO_LZO is not set | 1134 | # CONFIG_CRYPTO_LZO is not set |
1012 | 1135 | ||
1013 | # | 1136 | # |
@@ -1016,5 +1139,6 @@ CONFIG_CRYPTO_DES=y | |||
1016 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1139 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1017 | CONFIG_CRYPTO_HW=y | 1140 | CONFIG_CRYPTO_HW=y |
1018 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1141 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1142 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1019 | # CONFIG_PPC_CLOCK is not set | 1143 | # CONFIG_PPC_CLOCK is not set |
1020 | # CONFIG_VIRTUALIZATION is not set | 1144 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/40x/kilauea_defconfig b/arch/powerpc/configs/40x/kilauea_defconfig index 9a05ec0ec312..19fbcb075376 100644 --- a/arch/powerpc/configs/40x/kilauea_defconfig +++ b/arch/powerpc/configs/40x/kilauea_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.31-rc4 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Wed Jul 29 13:28:37 2009 | 4 | # Mon Jan 4 15:51:23 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -29,7 +30,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
30 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
31 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
32 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
33 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
34 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
35 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -52,6 +55,7 @@ CONFIG_AUDIT_ARCH=y | |||
52 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
53 | CONFIG_DTC=y | 56 | CONFIG_DTC=y |
54 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
55 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
56 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
57 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
@@ -79,11 +83,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
79 | # | 83 | # |
80 | # RCU Subsystem | 84 | # RCU Subsystem |
81 | # | 85 | # |
82 | CONFIG_CLASSIC_RCU=y | 86 | CONFIG_TREE_RCU=y |
83 | # CONFIG_TREE_RCU is not set | 87 | # CONFIG_TREE_PREEMPT_RCU is not set |
84 | # CONFIG_PREEMPT_RCU is not set | 88 | # CONFIG_TINY_RCU is not set |
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
85 | # CONFIG_TREE_RCU_TRACE is not set | 92 | # CONFIG_TREE_RCU_TRACE is not set |
86 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
87 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
88 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
89 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -121,22 +127,21 @@ CONFIG_TIMERFD=y | |||
121 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
122 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
123 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
124 | CONFIG_HAVE_PERF_COUNTERS=y | 130 | CONFIG_HAVE_PERF_EVENTS=y |
125 | 131 | ||
126 | # | 132 | # |
127 | # Performance Counters | 133 | # Kernel Performance Events And Counters |
128 | # | 134 | # |
135 | # CONFIG_PERF_EVENTS is not set | ||
129 | # CONFIG_PERF_COUNTERS is not set | 136 | # CONFIG_PERF_COUNTERS is not set |
130 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
131 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
132 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
133 | # CONFIG_STRIP_ASM_SYMS is not set | ||
134 | CONFIG_COMPAT_BRK=y | 140 | CONFIG_COMPAT_BRK=y |
135 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
136 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
137 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
138 | # CONFIG_PROFILING is not set | 144 | # CONFIG_PROFILING is not set |
139 | # CONFIG_MARKERS is not set | ||
140 | CONFIG_HAVE_OPROFILE=y | 145 | CONFIG_HAVE_OPROFILE=y |
141 | # CONFIG_KPROBES is not set | 146 | # CONFIG_KPROBES is not set |
142 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 147 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -144,6 +149,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
144 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
145 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
146 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
147 | 154 | ||
148 | # | 155 | # |
149 | # GCOV-based kernel profiling | 156 | # GCOV-based kernel profiling |
@@ -169,14 +176,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 176 | # IO Schedulers |
170 | # | 177 | # |
171 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
181 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
182 | 216 | ||
@@ -190,6 +224,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y | |||
190 | # CONFIG_ACADIA is not set | 224 | # CONFIG_ACADIA is not set |
191 | # CONFIG_EP405 is not set | 225 | # CONFIG_EP405 is not set |
192 | # CONFIG_HCU4 is not set | 226 | # CONFIG_HCU4 is not set |
227 | # CONFIG_HOTFOOT is not set | ||
193 | CONFIG_KILAUEA=y | 228 | CONFIG_KILAUEA=y |
194 | # CONFIG_MAKALU is not set | 229 | # CONFIG_MAKALU is not set |
195 | # CONFIG_WALNUT is not set | 230 | # CONFIG_WALNUT is not set |
@@ -233,10 +268,11 @@ CONFIG_BINFMT_ELF=y | |||
233 | # CONFIG_MATH_EMULATION is not set | 268 | # CONFIG_MATH_EMULATION is not set |
234 | # CONFIG_IOMMU_HELPER is not set | 269 | # CONFIG_IOMMU_HELPER is not set |
235 | # CONFIG_SWIOTLB is not set | 270 | # CONFIG_SWIOTLB is not set |
236 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | ||
237 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
238 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 272 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
239 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
274 | CONFIG_SPARSE_IRQ=y | ||
275 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
240 | CONFIG_ARCH_FLATMEM_ENABLE=y | 276 | CONFIG_ARCH_FLATMEM_ENABLE=y |
241 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 277 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
242 | CONFIG_SELECT_MEMORY_MODEL=y | 278 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -252,8 +288,7 @@ CONFIG_MIGRATION=y | |||
252 | CONFIG_ZONE_DMA_FLAG=1 | 288 | CONFIG_ZONE_DMA_FLAG=1 |
253 | CONFIG_BOUNCE=y | 289 | CONFIG_BOUNCE=y |
254 | CONFIG_VIRT_TO_BUS=y | 290 | CONFIG_VIRT_TO_BUS=y |
255 | CONFIG_HAVE_MLOCK=y | 291 | # CONFIG_KSM is not set |
256 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
257 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 292 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
258 | CONFIG_PPC_4K_PAGES=y | 293 | CONFIG_PPC_4K_PAGES=y |
259 | # CONFIG_PPC_16K_PAGES is not set | 294 | # CONFIG_PPC_16K_PAGES is not set |
@@ -343,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
343 | # CONFIG_NETFILTER is not set | 378 | # CONFIG_NETFILTER is not set |
344 | # CONFIG_IP_DCCP is not set | 379 | # CONFIG_IP_DCCP is not set |
345 | # CONFIG_IP_SCTP is not set | 380 | # CONFIG_IP_SCTP is not set |
381 | # CONFIG_RDS is not set | ||
346 | # CONFIG_TIPC is not set | 382 | # CONFIG_TIPC is not set |
347 | # CONFIG_ATM is not set | 383 | # CONFIG_ATM is not set |
348 | # CONFIG_BRIDGE is not set | 384 | # CONFIG_BRIDGE is not set |
@@ -370,7 +406,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
370 | # CONFIG_IRDA is not set | 406 | # CONFIG_IRDA is not set |
371 | # CONFIG_BT is not set | 407 | # CONFIG_BT is not set |
372 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
373 | # CONFIG_WIRELESS is not set | 409 | CONFIG_WIRELESS=y |
410 | # CONFIG_CFG80211 is not set | ||
411 | # CONFIG_LIB80211 is not set | ||
412 | |||
413 | # | ||
414 | # CFG80211 needs to be enabled for MAC80211 | ||
415 | # | ||
374 | # CONFIG_WIMAX is not set | 416 | # CONFIG_WIMAX is not set |
375 | # CONFIG_RFKILL is not set | 417 | # CONFIG_RFKILL is not set |
376 | # CONFIG_NET_9P is not set | 418 | # CONFIG_NET_9P is not set |
@@ -383,6 +425,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
383 | # Generic Driver Options | 425 | # Generic Driver Options |
384 | # | 426 | # |
385 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 427 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
428 | # CONFIG_DEVTMPFS is not set | ||
386 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
387 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
388 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
@@ -395,9 +438,9 @@ CONFIG_CONNECTOR=y | |||
395 | CONFIG_PROC_EVENTS=y | 438 | CONFIG_PROC_EVENTS=y |
396 | CONFIG_MTD=y | 439 | CONFIG_MTD=y |
397 | # CONFIG_MTD_DEBUG is not set | 440 | # CONFIG_MTD_DEBUG is not set |
441 | # CONFIG_MTD_TESTS is not set | ||
398 | # CONFIG_MTD_CONCAT is not set | 442 | # CONFIG_MTD_CONCAT is not set |
399 | CONFIG_MTD_PARTITIONS=y | 443 | CONFIG_MTD_PARTITIONS=y |
400 | # CONFIG_MTD_TESTS is not set | ||
401 | # CONFIG_MTD_REDBOOT_PARTS is not set | 444 | # CONFIG_MTD_REDBOOT_PARTS is not set |
402 | CONFIG_MTD_CMDLINE_PARTS=y | 445 | CONFIG_MTD_CMDLINE_PARTS=y |
403 | CONFIG_MTD_OF_PARTS=y | 446 | CONFIG_MTD_OF_PARTS=y |
@@ -498,6 +541,7 @@ CONFIG_BLK_DEV=y | |||
498 | # CONFIG_BLK_DEV_UMEM is not set | 541 | # CONFIG_BLK_DEV_UMEM is not set |
499 | # CONFIG_BLK_DEV_COW_COMMON is not set | 542 | # CONFIG_BLK_DEV_COW_COMMON is not set |
500 | # CONFIG_BLK_DEV_LOOP is not set | 543 | # CONFIG_BLK_DEV_LOOP is not set |
544 | # CONFIG_BLK_DEV_DRBD is not set | ||
501 | # CONFIG_BLK_DEV_NBD is not set | 545 | # CONFIG_BLK_DEV_NBD is not set |
502 | # CONFIG_BLK_DEV_SX8 is not set | 546 | # CONFIG_BLK_DEV_SX8 is not set |
503 | CONFIG_BLK_DEV_RAM=y | 547 | CONFIG_BLK_DEV_RAM=y |
@@ -574,16 +618,17 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
574 | # CONFIG_NET_PCI is not set | 618 | # CONFIG_NET_PCI is not set |
575 | # CONFIG_B44 is not set | 619 | # CONFIG_B44 is not set |
576 | # CONFIG_KS8842 is not set | 620 | # CONFIG_KS8842 is not set |
621 | # CONFIG_KS8851_MLL is not set | ||
577 | # CONFIG_ATL2 is not set | 622 | # CONFIG_ATL2 is not set |
623 | # CONFIG_XILINX_EMACLITE is not set | ||
578 | # CONFIG_NETDEV_1000 is not set | 624 | # CONFIG_NETDEV_1000 is not set |
579 | # CONFIG_NETDEV_10000 is not set | 625 | # CONFIG_NETDEV_10000 is not set |
580 | # CONFIG_TR is not set | 626 | # CONFIG_TR is not set |
581 | 627 | CONFIG_WLAN=y | |
582 | # | 628 | # CONFIG_AIRO is not set |
583 | # Wireless LAN | 629 | # CONFIG_ATMEL is not set |
584 | # | 630 | # CONFIG_PRISM54 is not set |
585 | # CONFIG_WLAN_PRE80211 is not set | 631 | # CONFIG_HOSTAP is not set |
586 | # CONFIG_WLAN_80211 is not set | ||
587 | 632 | ||
588 | # | 633 | # |
589 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 634 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -596,6 +641,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
596 | # CONFIG_NETCONSOLE is not set | 641 | # CONFIG_NETCONSOLE is not set |
597 | # CONFIG_NETPOLL is not set | 642 | # CONFIG_NETPOLL is not set |
598 | # CONFIG_NET_POLL_CONTROLLER is not set | 643 | # CONFIG_NET_POLL_CONTROLLER is not set |
644 | # CONFIG_VMXNET3 is not set | ||
599 | # CONFIG_ISDN is not set | 645 | # CONFIG_ISDN is not set |
600 | # CONFIG_PHONE is not set | 646 | # CONFIG_PHONE is not set |
601 | 647 | ||
@@ -641,6 +687,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
641 | # CONFIG_SERIAL_JSM is not set | 687 | # CONFIG_SERIAL_JSM is not set |
642 | CONFIG_SERIAL_OF_PLATFORM=y | 688 | CONFIG_SERIAL_OF_PLATFORM=y |
643 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 689 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
690 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
644 | CONFIG_UNIX98_PTYS=y | 691 | CONFIG_UNIX98_PTYS=y |
645 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 692 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
646 | CONFIG_LEGACY_PTYS=y | 693 | CONFIG_LEGACY_PTYS=y |
@@ -656,6 +703,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
656 | CONFIG_DEVPORT=y | 703 | CONFIG_DEVPORT=y |
657 | CONFIG_I2C=y | 704 | CONFIG_I2C=y |
658 | CONFIG_I2C_BOARDINFO=y | 705 | CONFIG_I2C_BOARDINFO=y |
706 | CONFIG_I2C_COMPAT=y | ||
659 | CONFIG_I2C_CHARDEV=y | 707 | CONFIG_I2C_CHARDEV=y |
660 | CONFIG_I2C_HELPER_AUTO=y | 708 | CONFIG_I2C_HELPER_AUTO=y |
661 | 709 | ||
@@ -696,11 +744,6 @@ CONFIG_I2C_IBM_IIC=y | |||
696 | # CONFIG_I2C_TAOS_EVM is not set | 744 | # CONFIG_I2C_TAOS_EVM is not set |
697 | 745 | ||
698 | # | 746 | # |
699 | # Graphics adapter I2C/DDC channel drivers | ||
700 | # | ||
701 | # CONFIG_I2C_VOODOO3 is not set | ||
702 | |||
703 | # | ||
704 | # Other I2C/SMBus bus drivers | 747 | # Other I2C/SMBus bus drivers |
705 | # | 748 | # |
706 | # CONFIG_I2C_PCA_PLATFORM is not set | 749 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -709,10 +752,6 @@ CONFIG_I2C_IBM_IIC=y | |||
709 | # | 752 | # |
710 | # Miscellaneous I2C Chip support | 753 | # Miscellaneous I2C Chip support |
711 | # | 754 | # |
712 | # CONFIG_DS1682 is not set | ||
713 | # CONFIG_SENSORS_PCF8574 is not set | ||
714 | # CONFIG_PCF8575 is not set | ||
715 | # CONFIG_SENSORS_PCA9539 is not set | ||
716 | # CONFIG_SENSORS_TSL2550 is not set | 755 | # CONFIG_SENSORS_TSL2550 is not set |
717 | # CONFIG_I2C_DEBUG_CORE is not set | 756 | # CONFIG_I2C_DEBUG_CORE is not set |
718 | # CONFIG_I2C_DEBUG_ALGO is not set | 757 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -730,6 +769,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
730 | # CONFIG_POWER_SUPPLY is not set | 769 | # CONFIG_POWER_SUPPLY is not set |
731 | CONFIG_HWMON=y | 770 | CONFIG_HWMON=y |
732 | # CONFIG_HWMON_VID is not set | 771 | # CONFIG_HWMON_VID is not set |
772 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
773 | |||
774 | # | ||
775 | # Native drivers | ||
776 | # | ||
733 | # CONFIG_SENSORS_AD7414 is not set | 777 | # CONFIG_SENSORS_AD7414 is not set |
734 | # CONFIG_SENSORS_AD7418 is not set | 778 | # CONFIG_SENSORS_AD7418 is not set |
735 | # CONFIG_SENSORS_ADM1021 is not set | 779 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -753,6 +797,7 @@ CONFIG_HWMON=y | |||
753 | # CONFIG_SENSORS_GL520SM is not set | 797 | # CONFIG_SENSORS_GL520SM is not set |
754 | # CONFIG_SENSORS_IT87 is not set | 798 | # CONFIG_SENSORS_IT87 is not set |
755 | # CONFIG_SENSORS_LM63 is not set | 799 | # CONFIG_SENSORS_LM63 is not set |
800 | # CONFIG_SENSORS_LM73 is not set | ||
756 | CONFIG_SENSORS_LM75=y | 801 | CONFIG_SENSORS_LM75=y |
757 | # CONFIG_SENSORS_LM77 is not set | 802 | # CONFIG_SENSORS_LM77 is not set |
758 | # CONFIG_SENSORS_LM78 is not set | 803 | # CONFIG_SENSORS_LM78 is not set |
@@ -779,6 +824,7 @@ CONFIG_SENSORS_LM75=y | |||
779 | # CONFIG_SENSORS_ADS7828 is not set | 824 | # CONFIG_SENSORS_ADS7828 is not set |
780 | # CONFIG_SENSORS_THMC50 is not set | 825 | # CONFIG_SENSORS_THMC50 is not set |
781 | # CONFIG_SENSORS_TMP401 is not set | 826 | # CONFIG_SENSORS_TMP401 is not set |
827 | # CONFIG_SENSORS_TMP421 is not set | ||
782 | # CONFIG_SENSORS_VIA686A is not set | 828 | # CONFIG_SENSORS_VIA686A is not set |
783 | # CONFIG_SENSORS_VT1211 is not set | 829 | # CONFIG_SENSORS_VT1211 is not set |
784 | # CONFIG_SENSORS_VT8231 is not set | 830 | # CONFIG_SENSORS_VT8231 is not set |
@@ -790,7 +836,6 @@ CONFIG_SENSORS_LM75=y | |||
790 | # CONFIG_SENSORS_W83L786NG is not set | 836 | # CONFIG_SENSORS_W83L786NG is not set |
791 | # CONFIG_SENSORS_W83627HF is not set | 837 | # CONFIG_SENSORS_W83627HF is not set |
792 | # CONFIG_SENSORS_W83627EHF is not set | 838 | # CONFIG_SENSORS_W83627EHF is not set |
793 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
794 | CONFIG_THERMAL=y | 839 | CONFIG_THERMAL=y |
795 | # CONFIG_THERMAL_HWMON is not set | 840 | # CONFIG_THERMAL_HWMON is not set |
796 | # CONFIG_WATCHDOG is not set | 841 | # CONFIG_WATCHDOG is not set |
@@ -810,10 +855,13 @@ CONFIG_SSB_POSSIBLE=y | |||
810 | # CONFIG_TWL4030_CORE is not set | 855 | # CONFIG_TWL4030_CORE is not set |
811 | # CONFIG_MFD_TMIO is not set | 856 | # CONFIG_MFD_TMIO is not set |
812 | # CONFIG_PMIC_DA903X is not set | 857 | # CONFIG_PMIC_DA903X is not set |
858 | # CONFIG_PMIC_ADP5520 is not set | ||
813 | # CONFIG_MFD_WM8400 is not set | 859 | # CONFIG_MFD_WM8400 is not set |
860 | # CONFIG_MFD_WM831X is not set | ||
814 | # CONFIG_MFD_WM8350_I2C is not set | 861 | # CONFIG_MFD_WM8350_I2C is not set |
815 | # CONFIG_MFD_PCF50633 is not set | 862 | # CONFIG_MFD_PCF50633 is not set |
816 | # CONFIG_AB3100_CORE is not set | 863 | # CONFIG_AB3100_CORE is not set |
864 | # CONFIG_MFD_88PM8607 is not set | ||
817 | # CONFIG_REGULATOR is not set | 865 | # CONFIG_REGULATOR is not set |
818 | # CONFIG_MEDIA_SUPPORT is not set | 866 | # CONFIG_MEDIA_SUPPORT is not set |
819 | 867 | ||
@@ -821,6 +869,7 @@ CONFIG_SSB_POSSIBLE=y | |||
821 | # Graphics support | 869 | # Graphics support |
822 | # | 870 | # |
823 | # CONFIG_AGP is not set | 871 | # CONFIG_AGP is not set |
872 | CONFIG_VGA_ARB=y | ||
824 | # CONFIG_DRM is not set | 873 | # CONFIG_DRM is not set |
825 | # CONFIG_VGASTATE is not set | 874 | # CONFIG_VGASTATE is not set |
826 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 875 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -868,6 +917,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
868 | # CONFIG_RTC_DRV_PCF8563 is not set | 917 | # CONFIG_RTC_DRV_PCF8563 is not set |
869 | # CONFIG_RTC_DRV_PCF8583 is not set | 918 | # CONFIG_RTC_DRV_PCF8583 is not set |
870 | # CONFIG_RTC_DRV_M41T80 is not set | 919 | # CONFIG_RTC_DRV_M41T80 is not set |
920 | # CONFIG_RTC_DRV_BQ32K is not set | ||
871 | # CONFIG_RTC_DRV_S35390A is not set | 921 | # CONFIG_RTC_DRV_S35390A is not set |
872 | # CONFIG_RTC_DRV_FM3130 is not set | 922 | # CONFIG_RTC_DRV_FM3130 is not set |
873 | # CONFIG_RTC_DRV_RX8581 is not set | 923 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -889,7 +939,9 @@ CONFIG_RTC_DRV_DS1307=y | |||
889 | # CONFIG_RTC_DRV_M48T86 is not set | 939 | # CONFIG_RTC_DRV_M48T86 is not set |
890 | # CONFIG_RTC_DRV_M48T35 is not set | 940 | # CONFIG_RTC_DRV_M48T35 is not set |
891 | # CONFIG_RTC_DRV_M48T59 is not set | 941 | # CONFIG_RTC_DRV_M48T59 is not set |
942 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
892 | # CONFIG_RTC_DRV_BQ4802 is not set | 943 | # CONFIG_RTC_DRV_BQ4802 is not set |
944 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
893 | # CONFIG_RTC_DRV_V3020 is not set | 945 | # CONFIG_RTC_DRV_V3020 is not set |
894 | 946 | ||
895 | # | 947 | # |
@@ -913,6 +965,7 @@ CONFIG_EXT2_FS=y | |||
913 | # CONFIG_EXT2_FS_XIP is not set | 965 | # CONFIG_EXT2_FS_XIP is not set |
914 | # CONFIG_EXT3_FS is not set | 966 | # CONFIG_EXT3_FS is not set |
915 | # CONFIG_EXT4_FS is not set | 967 | # CONFIG_EXT4_FS is not set |
968 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
916 | # CONFIG_REISERFS_FS is not set | 969 | # CONFIG_REISERFS_FS is not set |
917 | # CONFIG_JFS_FS is not set | 970 | # CONFIG_JFS_FS is not set |
918 | # CONFIG_FS_POSIX_ACL is not set | 971 | # CONFIG_FS_POSIX_ACL is not set |
@@ -920,6 +973,7 @@ CONFIG_EXT2_FS=y | |||
920 | # CONFIG_GFS2_FS is not set | 973 | # CONFIG_GFS2_FS is not set |
921 | # CONFIG_OCFS2_FS is not set | 974 | # CONFIG_OCFS2_FS is not set |
922 | # CONFIG_BTRFS_FS is not set | 975 | # CONFIG_BTRFS_FS is not set |
976 | # CONFIG_NILFS2_FS is not set | ||
923 | CONFIG_FILE_LOCKING=y | 977 | CONFIG_FILE_LOCKING=y |
924 | CONFIG_FSNOTIFY=y | 978 | CONFIG_FSNOTIFY=y |
925 | CONFIG_DNOTIFY=y | 979 | CONFIG_DNOTIFY=y |
@@ -979,7 +1033,6 @@ CONFIG_CRAMFS=y | |||
979 | # CONFIG_ROMFS_FS is not set | 1033 | # CONFIG_ROMFS_FS is not set |
980 | # CONFIG_SYSV_FS is not set | 1034 | # CONFIG_SYSV_FS is not set |
981 | # CONFIG_UFS_FS is not set | 1035 | # CONFIG_UFS_FS is not set |
982 | # CONFIG_NILFS2_FS is not set | ||
983 | CONFIG_NETWORK_FILESYSTEMS=y | 1036 | CONFIG_NETWORK_FILESYSTEMS=y |
984 | CONFIG_NFS_FS=y | 1037 | CONFIG_NFS_FS=y |
985 | CONFIG_NFS_V3=y | 1038 | CONFIG_NFS_V3=y |
@@ -1037,6 +1090,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1037 | CONFIG_ENABLE_MUST_CHECK=y | 1090 | CONFIG_ENABLE_MUST_CHECK=y |
1038 | CONFIG_FRAME_WARN=1024 | 1091 | CONFIG_FRAME_WARN=1024 |
1039 | CONFIG_MAGIC_SYSRQ=y | 1092 | CONFIG_MAGIC_SYSRQ=y |
1093 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1040 | # CONFIG_UNUSED_SYMBOLS is not set | 1094 | # CONFIG_UNUSED_SYMBOLS is not set |
1041 | CONFIG_DEBUG_FS=y | 1095 | CONFIG_DEBUG_FS=y |
1042 | # CONFIG_HEADERS_CHECK is not set | 1096 | # CONFIG_HEADERS_CHECK is not set |
@@ -1054,6 +1108,7 @@ CONFIG_SCHED_DEBUG=y | |||
1054 | # CONFIG_DEBUG_OBJECTS is not set | 1108 | # CONFIG_DEBUG_OBJECTS is not set |
1055 | # CONFIG_SLUB_DEBUG_ON is not set | 1109 | # CONFIG_SLUB_DEBUG_ON is not set |
1056 | # CONFIG_SLUB_STATS is not set | 1110 | # CONFIG_SLUB_STATS is not set |
1111 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1057 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1112 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1058 | # CONFIG_RT_MUTEX_TESTER is not set | 1113 | # CONFIG_RT_MUTEX_TESTER is not set |
1059 | # CONFIG_DEBUG_SPINLOCK is not set | 1114 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1072,10 +1127,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1072 | # CONFIG_DEBUG_LIST is not set | 1127 | # CONFIG_DEBUG_LIST is not set |
1073 | # CONFIG_DEBUG_SG is not set | 1128 | # CONFIG_DEBUG_SG is not set |
1074 | # CONFIG_DEBUG_NOTIFIERS is not set | 1129 | # CONFIG_DEBUG_NOTIFIERS is not set |
1130 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1075 | # CONFIG_RCU_TORTURE_TEST is not set | 1131 | # CONFIG_RCU_TORTURE_TEST is not set |
1076 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1132 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1077 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1133 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1078 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1134 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1135 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1079 | # CONFIG_FAULT_INJECTION is not set | 1136 | # CONFIG_FAULT_INJECTION is not set |
1080 | # CONFIG_LATENCYTOP is not set | 1137 | # CONFIG_LATENCYTOP is not set |
1081 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1138 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -1099,10 +1156,10 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1099 | # CONFIG_WORKQUEUE_TRACER is not set | 1156 | # CONFIG_WORKQUEUE_TRACER is not set |
1100 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1157 | # CONFIG_BLK_DEV_IO_TRACE is not set |
1101 | # CONFIG_DYNAMIC_DEBUG is not set | 1158 | # CONFIG_DYNAMIC_DEBUG is not set |
1159 | # CONFIG_DMA_API_DEBUG is not set | ||
1102 | # CONFIG_SAMPLES is not set | 1160 | # CONFIG_SAMPLES is not set |
1103 | CONFIG_HAVE_ARCH_KGDB=y | 1161 | CONFIG_HAVE_ARCH_KGDB=y |
1104 | # CONFIG_KGDB is not set | 1162 | # CONFIG_KGDB is not set |
1105 | # CONFIG_KMEMCHECK is not set | ||
1106 | # CONFIG_PPC_DISABLE_WERROR is not set | 1163 | # CONFIG_PPC_DISABLE_WERROR is not set |
1107 | CONFIG_PPC_WERROR=y | 1164 | CONFIG_PPC_WERROR=y |
1108 | CONFIG_PRINT_STACK_DEPTH=64 | 1165 | CONFIG_PRINT_STACK_DEPTH=64 |
@@ -1124,13 +1181,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1124 | # CONFIG_KEYS is not set | 1181 | # CONFIG_KEYS is not set |
1125 | # CONFIG_SECURITY is not set | 1182 | # CONFIG_SECURITY is not set |
1126 | # CONFIG_SECURITYFS is not set | 1183 | # CONFIG_SECURITYFS is not set |
1127 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1184 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1185 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1186 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1187 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1188 | CONFIG_DEFAULT_SECURITY="" | ||
1128 | CONFIG_CRYPTO=y | 1189 | CONFIG_CRYPTO=y |
1129 | 1190 | ||
1130 | # | 1191 | # |
1131 | # Crypto core or helper | 1192 | # Crypto core or helper |
1132 | # | 1193 | # |
1133 | # CONFIG_CRYPTO_FIPS is not set | ||
1134 | CONFIG_CRYPTO_ALGAPI=y | 1194 | CONFIG_CRYPTO_ALGAPI=y |
1135 | CONFIG_CRYPTO_ALGAPI2=y | 1195 | CONFIG_CRYPTO_ALGAPI2=y |
1136 | CONFIG_CRYPTO_AEAD2=y | 1196 | CONFIG_CRYPTO_AEAD2=y |
@@ -1172,11 +1232,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1172 | # | 1232 | # |
1173 | # CONFIG_CRYPTO_HMAC is not set | 1233 | # CONFIG_CRYPTO_HMAC is not set |
1174 | # CONFIG_CRYPTO_XCBC is not set | 1234 | # CONFIG_CRYPTO_XCBC is not set |
1235 | # CONFIG_CRYPTO_VMAC is not set | ||
1175 | 1236 | ||
1176 | # | 1237 | # |
1177 | # Digest | 1238 | # Digest |
1178 | # | 1239 | # |
1179 | # CONFIG_CRYPTO_CRC32C is not set | 1240 | # CONFIG_CRYPTO_CRC32C is not set |
1241 | # CONFIG_CRYPTO_GHASH is not set | ||
1180 | # CONFIG_CRYPTO_MD4 is not set | 1242 | # CONFIG_CRYPTO_MD4 is not set |
1181 | CONFIG_CRYPTO_MD5=y | 1243 | CONFIG_CRYPTO_MD5=y |
1182 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1244 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
diff --git a/arch/powerpc/configs/40x/makalu_defconfig b/arch/powerpc/configs/40x/makalu_defconfig index 146747547873..eb41cd695979 100644 --- a/arch/powerpc/configs/40x/makalu_defconfig +++ b/arch/powerpc/configs/40x/makalu_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30-rc7 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Wed Jun 3 09:11:02 2009 | 4 | # Mon Jan 4 15:55:12 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -29,14 +30,16 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
30 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
31 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
32 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
33 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
34 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
35 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
36 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
37 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
38 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
39 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
40 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
41 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
42 | CONFIG_PPC=y | 45 | CONFIG_PPC=y |
@@ -52,11 +55,13 @@ CONFIG_AUDIT_ARCH=y | |||
52 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
53 | CONFIG_DTC=y | 56 | CONFIG_DTC=y |
54 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
55 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
56 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
57 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
58 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
59 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
64 | CONFIG_CONSTRUCTORS=y | ||
60 | 65 | ||
61 | # | 66 | # |
62 | # General setup | 67 | # General setup |
@@ -78,11 +83,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
78 | # | 83 | # |
79 | # RCU Subsystem | 84 | # RCU Subsystem |
80 | # | 85 | # |
81 | CONFIG_CLASSIC_RCU=y | 86 | CONFIG_TREE_RCU=y |
82 | # CONFIG_TREE_RCU is not set | 87 | # CONFIG_TREE_PREEMPT_RCU is not set |
83 | # CONFIG_PREEMPT_RCU is not set | 88 | # CONFIG_TINY_RCU is not set |
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
84 | # CONFIG_TREE_RCU_TRACE is not set | 92 | # CONFIG_TREE_RCU_TRACE is not set |
85 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
86 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
87 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
88 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -108,7 +115,6 @@ CONFIG_SYSCTL_SYSCALL=y | |||
108 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
109 | CONFIG_KALLSYMS_ALL=y | 116 | CONFIG_KALLSYMS_ALL=y |
110 | CONFIG_KALLSYMS_EXTRA_PASS=y | 117 | CONFIG_KALLSYMS_EXTRA_PASS=y |
111 | # CONFIG_STRIP_ASM_SYMS is not set | ||
112 | CONFIG_HOTPLUG=y | 118 | CONFIG_HOTPLUG=y |
113 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
114 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
@@ -121,6 +127,13 @@ CONFIG_TIMERFD=y | |||
121 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
122 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
123 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
124 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
125 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
126 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
@@ -129,7 +142,6 @@ CONFIG_COMPAT_BRK=y | |||
129 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
130 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
131 | # CONFIG_PROFILING is not set | 144 | # CONFIG_PROFILING is not set |
132 | # CONFIG_MARKERS is not set | ||
133 | CONFIG_HAVE_OPROFILE=y | 145 | CONFIG_HAVE_OPROFILE=y |
134 | # CONFIG_KPROBES is not set | 146 | # CONFIG_KPROBES is not set |
135 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 147 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -137,6 +149,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
137 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
138 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
139 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
140 | # CONFIG_SLOW_WORK is not set | 159 | # CONFIG_SLOW_WORK is not set |
141 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
142 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
@@ -149,7 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
149 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
150 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
151 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
152 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
153 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
154 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
155 | 174 | ||
@@ -157,14 +176,41 @@ CONFIG_LBD=y | |||
157 | # IO Schedulers | 176 | # IO Schedulers |
158 | # | 177 | # |
159 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
160 | CONFIG_IOSCHED_AS=y | ||
161 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
162 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
163 | CONFIG_DEFAULT_AS=y | ||
164 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
165 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
166 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
167 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
168 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
169 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
170 | 216 | ||
@@ -178,6 +224,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y | |||
178 | # CONFIG_ACADIA is not set | 224 | # CONFIG_ACADIA is not set |
179 | # CONFIG_EP405 is not set | 225 | # CONFIG_EP405 is not set |
180 | # CONFIG_HCU4 is not set | 226 | # CONFIG_HCU4 is not set |
227 | # CONFIG_HOTFOOT is not set | ||
181 | # CONFIG_KILAUEA is not set | 228 | # CONFIG_KILAUEA is not set |
182 | CONFIG_MAKALU=y | 229 | CONFIG_MAKALU=y |
183 | # CONFIG_WALNUT is not set | 230 | # CONFIG_WALNUT is not set |
@@ -220,10 +267,12 @@ CONFIG_BINFMT_ELF=y | |||
220 | # CONFIG_BINFMT_MISC is not set | 267 | # CONFIG_BINFMT_MISC is not set |
221 | # CONFIG_MATH_EMULATION is not set | 268 | # CONFIG_MATH_EMULATION is not set |
222 | # CONFIG_IOMMU_HELPER is not set | 269 | # CONFIG_IOMMU_HELPER is not set |
223 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 270 | # CONFIG_SWIOTLB is not set |
224 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 271 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
225 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 272 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
226 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 273 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
274 | CONFIG_SPARSE_IRQ=y | ||
275 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
227 | CONFIG_ARCH_FLATMEM_ENABLE=y | 276 | CONFIG_ARCH_FLATMEM_ENABLE=y |
228 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 277 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
229 | CONFIG_SELECT_MEMORY_MODEL=y | 278 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -239,9 +288,8 @@ CONFIG_MIGRATION=y | |||
239 | CONFIG_ZONE_DMA_FLAG=1 | 288 | CONFIG_ZONE_DMA_FLAG=1 |
240 | CONFIG_BOUNCE=y | 289 | CONFIG_BOUNCE=y |
241 | CONFIG_VIRT_TO_BUS=y | 290 | CONFIG_VIRT_TO_BUS=y |
242 | CONFIG_UNEVICTABLE_LRU=y | 291 | # CONFIG_KSM is not set |
243 | CONFIG_HAVE_MLOCK=y | 292 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
244 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
245 | CONFIG_PPC_4K_PAGES=y | 293 | CONFIG_PPC_4K_PAGES=y |
246 | # CONFIG_PPC_16K_PAGES is not set | 294 | # CONFIG_PPC_16K_PAGES is not set |
247 | # CONFIG_PPC_64K_PAGES is not set | 295 | # CONFIG_PPC_64K_PAGES is not set |
@@ -330,6 +378,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
330 | # CONFIG_NETFILTER is not set | 378 | # CONFIG_NETFILTER is not set |
331 | # CONFIG_IP_DCCP is not set | 379 | # CONFIG_IP_DCCP is not set |
332 | # CONFIG_IP_SCTP is not set | 380 | # CONFIG_IP_SCTP is not set |
381 | # CONFIG_RDS is not set | ||
333 | # CONFIG_TIPC is not set | 382 | # CONFIG_TIPC is not set |
334 | # CONFIG_ATM is not set | 383 | # CONFIG_ATM is not set |
335 | # CONFIG_BRIDGE is not set | 384 | # CONFIG_BRIDGE is not set |
@@ -344,6 +393,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
344 | # CONFIG_ECONET is not set | 393 | # CONFIG_ECONET is not set |
345 | # CONFIG_WAN_ROUTER is not set | 394 | # CONFIG_WAN_ROUTER is not set |
346 | # CONFIG_PHONET is not set | 395 | # CONFIG_PHONET is not set |
396 | # CONFIG_IEEE802154 is not set | ||
347 | # CONFIG_NET_SCHED is not set | 397 | # CONFIG_NET_SCHED is not set |
348 | # CONFIG_DCB is not set | 398 | # CONFIG_DCB is not set |
349 | 399 | ||
@@ -356,7 +406,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
356 | # CONFIG_IRDA is not set | 406 | # CONFIG_IRDA is not set |
357 | # CONFIG_BT is not set | 407 | # CONFIG_BT is not set |
358 | # CONFIG_AF_RXRPC is not set | 408 | # CONFIG_AF_RXRPC is not set |
359 | # CONFIG_WIRELESS is not set | 409 | CONFIG_WIRELESS=y |
410 | # CONFIG_CFG80211 is not set | ||
411 | # CONFIG_LIB80211 is not set | ||
412 | |||
413 | # | ||
414 | # CFG80211 needs to be enabled for MAC80211 | ||
415 | # | ||
360 | # CONFIG_WIMAX is not set | 416 | # CONFIG_WIMAX is not set |
361 | # CONFIG_RFKILL is not set | 417 | # CONFIG_RFKILL is not set |
362 | # CONFIG_NET_9P is not set | 418 | # CONFIG_NET_9P is not set |
@@ -369,6 +425,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
369 | # Generic Driver Options | 425 | # Generic Driver Options |
370 | # | 426 | # |
371 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 427 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
428 | # CONFIG_DEVTMPFS is not set | ||
372 | CONFIG_STANDALONE=y | 429 | CONFIG_STANDALONE=y |
373 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 430 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
374 | CONFIG_FW_LOADER=y | 431 | CONFIG_FW_LOADER=y |
@@ -381,9 +438,9 @@ CONFIG_CONNECTOR=y | |||
381 | CONFIG_PROC_EVENTS=y | 438 | CONFIG_PROC_EVENTS=y |
382 | CONFIG_MTD=y | 439 | CONFIG_MTD=y |
383 | # CONFIG_MTD_DEBUG is not set | 440 | # CONFIG_MTD_DEBUG is not set |
441 | # CONFIG_MTD_TESTS is not set | ||
384 | # CONFIG_MTD_CONCAT is not set | 442 | # CONFIG_MTD_CONCAT is not set |
385 | CONFIG_MTD_PARTITIONS=y | 443 | CONFIG_MTD_PARTITIONS=y |
386 | # CONFIG_MTD_TESTS is not set | ||
387 | # CONFIG_MTD_REDBOOT_PARTS is not set | 444 | # CONFIG_MTD_REDBOOT_PARTS is not set |
388 | CONFIG_MTD_CMDLINE_PARTS=y | 445 | CONFIG_MTD_CMDLINE_PARTS=y |
389 | CONFIG_MTD_OF_PARTS=y | 446 | CONFIG_MTD_OF_PARTS=y |
@@ -474,6 +531,7 @@ CONFIG_BLK_DEV=y | |||
474 | # CONFIG_BLK_DEV_UMEM is not set | 531 | # CONFIG_BLK_DEV_UMEM is not set |
475 | # CONFIG_BLK_DEV_COW_COMMON is not set | 532 | # CONFIG_BLK_DEV_COW_COMMON is not set |
476 | # CONFIG_BLK_DEV_LOOP is not set | 533 | # CONFIG_BLK_DEV_LOOP is not set |
534 | # CONFIG_BLK_DEV_DRBD is not set | ||
477 | # CONFIG_BLK_DEV_NBD is not set | 535 | # CONFIG_BLK_DEV_NBD is not set |
478 | # CONFIG_BLK_DEV_SX8 is not set | 536 | # CONFIG_BLK_DEV_SX8 is not set |
479 | CONFIG_BLK_DEV_RAM=y | 537 | CONFIG_BLK_DEV_RAM=y |
@@ -504,14 +562,17 @@ CONFIG_HAVE_IDE=y | |||
504 | # | 562 | # |
505 | 563 | ||
506 | # | 564 | # |
507 | # Enable only one of the two stacks, unless you know what you are doing | 565 | # You can enable one or both FireWire driver stacks. |
566 | # | ||
567 | |||
568 | # | ||
569 | # See the help texts for more information. | ||
508 | # | 570 | # |
509 | # CONFIG_FIREWIRE is not set | 571 | # CONFIG_FIREWIRE is not set |
510 | # CONFIG_IEEE1394 is not set | 572 | # CONFIG_IEEE1394 is not set |
511 | # CONFIG_I2O is not set | 573 | # CONFIG_I2O is not set |
512 | # CONFIG_MACINTOSH_DRIVERS is not set | 574 | # CONFIG_MACINTOSH_DRIVERS is not set |
513 | CONFIG_NETDEVICES=y | 575 | CONFIG_NETDEVICES=y |
514 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
515 | # CONFIG_DUMMY is not set | 576 | # CONFIG_DUMMY is not set |
516 | # CONFIG_BONDING is not set | 577 | # CONFIG_BONDING is not set |
517 | # CONFIG_MACVLAN is not set | 578 | # CONFIG_MACVLAN is not set |
@@ -546,16 +607,18 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
546 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 607 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
547 | # CONFIG_NET_PCI is not set | 608 | # CONFIG_NET_PCI is not set |
548 | # CONFIG_B44 is not set | 609 | # CONFIG_B44 is not set |
610 | # CONFIG_KS8842 is not set | ||
611 | # CONFIG_KS8851_MLL is not set | ||
549 | # CONFIG_ATL2 is not set | 612 | # CONFIG_ATL2 is not set |
613 | # CONFIG_XILINX_EMACLITE is not set | ||
550 | # CONFIG_NETDEV_1000 is not set | 614 | # CONFIG_NETDEV_1000 is not set |
551 | # CONFIG_NETDEV_10000 is not set | 615 | # CONFIG_NETDEV_10000 is not set |
552 | # CONFIG_TR is not set | 616 | # CONFIG_TR is not set |
553 | 617 | CONFIG_WLAN=y | |
554 | # | 618 | # CONFIG_AIRO is not set |
555 | # Wireless LAN | 619 | # CONFIG_ATMEL is not set |
556 | # | 620 | # CONFIG_PRISM54 is not set |
557 | # CONFIG_WLAN_PRE80211 is not set | 621 | # CONFIG_HOSTAP is not set |
558 | # CONFIG_WLAN_80211 is not set | ||
559 | 622 | ||
560 | # | 623 | # |
561 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 624 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -568,6 +631,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
568 | # CONFIG_NETCONSOLE is not set | 631 | # CONFIG_NETCONSOLE is not set |
569 | # CONFIG_NETPOLL is not set | 632 | # CONFIG_NETPOLL is not set |
570 | # CONFIG_NET_POLL_CONTROLLER is not set | 633 | # CONFIG_NET_POLL_CONTROLLER is not set |
634 | # CONFIG_VMXNET3 is not set | ||
571 | # CONFIG_ISDN is not set | 635 | # CONFIG_ISDN is not set |
572 | # CONFIG_PHONE is not set | 636 | # CONFIG_PHONE is not set |
573 | 637 | ||
@@ -613,6 +677,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
613 | # CONFIG_SERIAL_JSM is not set | 677 | # CONFIG_SERIAL_JSM is not set |
614 | CONFIG_SERIAL_OF_PLATFORM=y | 678 | CONFIG_SERIAL_OF_PLATFORM=y |
615 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 679 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
680 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
616 | CONFIG_UNIX98_PTYS=y | 681 | CONFIG_UNIX98_PTYS=y |
617 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 682 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
618 | CONFIG_LEGACY_PTYS=y | 683 | CONFIG_LEGACY_PTYS=y |
@@ -629,6 +694,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
629 | CONFIG_DEVPORT=y | 694 | CONFIG_DEVPORT=y |
630 | # CONFIG_I2C is not set | 695 | # CONFIG_I2C is not set |
631 | # CONFIG_SPI is not set | 696 | # CONFIG_SPI is not set |
697 | |||
698 | # | ||
699 | # PPS support | ||
700 | # | ||
701 | # CONFIG_PPS is not set | ||
632 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 702 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
633 | # CONFIG_GPIOLIB is not set | 703 | # CONFIG_GPIOLIB is not set |
634 | # CONFIG_W1 is not set | 704 | # CONFIG_W1 is not set |
@@ -651,27 +721,13 @@ CONFIG_SSB_POSSIBLE=y | |||
651 | # CONFIG_HTC_PASIC3 is not set | 721 | # CONFIG_HTC_PASIC3 is not set |
652 | # CONFIG_MFD_TMIO is not set | 722 | # CONFIG_MFD_TMIO is not set |
653 | # CONFIG_REGULATOR is not set | 723 | # CONFIG_REGULATOR is not set |
654 | 724 | # CONFIG_MEDIA_SUPPORT is not set | |
655 | # | ||
656 | # Multimedia devices | ||
657 | # | ||
658 | |||
659 | # | ||
660 | # Multimedia core support | ||
661 | # | ||
662 | # CONFIG_VIDEO_DEV is not set | ||
663 | # CONFIG_DVB_CORE is not set | ||
664 | # CONFIG_VIDEO_MEDIA is not set | ||
665 | |||
666 | # | ||
667 | # Multimedia drivers | ||
668 | # | ||
669 | # CONFIG_DAB is not set | ||
670 | 725 | ||
671 | # | 726 | # |
672 | # Graphics support | 727 | # Graphics support |
673 | # | 728 | # |
674 | # CONFIG_AGP is not set | 729 | # CONFIG_AGP is not set |
730 | CONFIG_VGA_ARB=y | ||
675 | # CONFIG_DRM is not set | 731 | # CONFIG_DRM is not set |
676 | # CONFIG_VGASTATE is not set | 732 | # CONFIG_VGASTATE is not set |
677 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 733 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -695,6 +751,10 @@ CONFIG_SSB_POSSIBLE=y | |||
695 | # CONFIG_DMADEVICES is not set | 751 | # CONFIG_DMADEVICES is not set |
696 | # CONFIG_AUXDISPLAY is not set | 752 | # CONFIG_AUXDISPLAY is not set |
697 | # CONFIG_UIO is not set | 753 | # CONFIG_UIO is not set |
754 | |||
755 | # | ||
756 | # TI VLYNQ | ||
757 | # | ||
698 | # CONFIG_STAGING is not set | 758 | # CONFIG_STAGING is not set |
699 | 759 | ||
700 | # | 760 | # |
@@ -705,14 +765,17 @@ CONFIG_EXT2_FS=y | |||
705 | # CONFIG_EXT2_FS_XIP is not set | 765 | # CONFIG_EXT2_FS_XIP is not set |
706 | # CONFIG_EXT3_FS is not set | 766 | # CONFIG_EXT3_FS is not set |
707 | # CONFIG_EXT4_FS is not set | 767 | # CONFIG_EXT4_FS is not set |
768 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
708 | # CONFIG_REISERFS_FS is not set | 769 | # CONFIG_REISERFS_FS is not set |
709 | # CONFIG_JFS_FS is not set | 770 | # CONFIG_JFS_FS is not set |
710 | # CONFIG_FS_POSIX_ACL is not set | 771 | # CONFIG_FS_POSIX_ACL is not set |
711 | CONFIG_FILE_LOCKING=y | ||
712 | # CONFIG_XFS_FS is not set | 772 | # CONFIG_XFS_FS is not set |
713 | # CONFIG_GFS2_FS is not set | 773 | # CONFIG_GFS2_FS is not set |
714 | # CONFIG_OCFS2_FS is not set | 774 | # CONFIG_OCFS2_FS is not set |
715 | # CONFIG_BTRFS_FS is not set | 775 | # CONFIG_BTRFS_FS is not set |
776 | # CONFIG_NILFS2_FS is not set | ||
777 | CONFIG_FILE_LOCKING=y | ||
778 | CONFIG_FSNOTIFY=y | ||
716 | CONFIG_DNOTIFY=y | 779 | CONFIG_DNOTIFY=y |
717 | CONFIG_INOTIFY=y | 780 | CONFIG_INOTIFY=y |
718 | CONFIG_INOTIFY_USER=y | 781 | CONFIG_INOTIFY_USER=y |
@@ -770,7 +833,6 @@ CONFIG_CRAMFS=y | |||
770 | # CONFIG_ROMFS_FS is not set | 833 | # CONFIG_ROMFS_FS is not set |
771 | # CONFIG_SYSV_FS is not set | 834 | # CONFIG_SYSV_FS is not set |
772 | # CONFIG_UFS_FS is not set | 835 | # CONFIG_UFS_FS is not set |
773 | # CONFIG_NILFS2_FS is not set | ||
774 | CONFIG_NETWORK_FILESYSTEMS=y | 836 | CONFIG_NETWORK_FILESYSTEMS=y |
775 | CONFIG_NFS_FS=y | 837 | CONFIG_NFS_FS=y |
776 | CONFIG_NFS_V3=y | 838 | CONFIG_NFS_V3=y |
@@ -818,6 +880,7 @@ CONFIG_HAS_IOPORT=y | |||
818 | CONFIG_HAS_DMA=y | 880 | CONFIG_HAS_DMA=y |
819 | CONFIG_HAVE_LMB=y | 881 | CONFIG_HAVE_LMB=y |
820 | CONFIG_NLATTR=y | 882 | CONFIG_NLATTR=y |
883 | CONFIG_GENERIC_ATOMIC64=y | ||
821 | 884 | ||
822 | # | 885 | # |
823 | # Kernel hacking | 886 | # Kernel hacking |
@@ -827,6 +890,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
827 | CONFIG_ENABLE_MUST_CHECK=y | 890 | CONFIG_ENABLE_MUST_CHECK=y |
828 | CONFIG_FRAME_WARN=1024 | 891 | CONFIG_FRAME_WARN=1024 |
829 | CONFIG_MAGIC_SYSRQ=y | 892 | CONFIG_MAGIC_SYSRQ=y |
893 | # CONFIG_STRIP_ASM_SYMS is not set | ||
830 | # CONFIG_UNUSED_SYMBOLS is not set | 894 | # CONFIG_UNUSED_SYMBOLS is not set |
831 | CONFIG_DEBUG_FS=y | 895 | CONFIG_DEBUG_FS=y |
832 | # CONFIG_HEADERS_CHECK is not set | 896 | # CONFIG_HEADERS_CHECK is not set |
@@ -844,10 +908,14 @@ CONFIG_SCHED_DEBUG=y | |||
844 | # CONFIG_DEBUG_OBJECTS is not set | 908 | # CONFIG_DEBUG_OBJECTS is not set |
845 | # CONFIG_SLUB_DEBUG_ON is not set | 909 | # CONFIG_SLUB_DEBUG_ON is not set |
846 | # CONFIG_SLUB_STATS is not set | 910 | # CONFIG_SLUB_STATS is not set |
911 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
847 | # CONFIG_DEBUG_RT_MUTEXES is not set | 912 | # CONFIG_DEBUG_RT_MUTEXES is not set |
848 | # CONFIG_RT_MUTEX_TESTER is not set | 913 | # CONFIG_RT_MUTEX_TESTER is not set |
849 | # CONFIG_DEBUG_SPINLOCK is not set | 914 | # CONFIG_DEBUG_SPINLOCK is not set |
850 | # CONFIG_DEBUG_MUTEXES is not set | 915 | # CONFIG_DEBUG_MUTEXES is not set |
916 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
917 | # CONFIG_PROVE_LOCKING is not set | ||
918 | # CONFIG_LOCK_STAT is not set | ||
851 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 919 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
852 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 920 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
853 | # CONFIG_DEBUG_KOBJECT is not set | 921 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -859,11 +927,12 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
859 | # CONFIG_DEBUG_LIST is not set | 927 | # CONFIG_DEBUG_LIST is not set |
860 | # CONFIG_DEBUG_SG is not set | 928 | # CONFIG_DEBUG_SG is not set |
861 | # CONFIG_DEBUG_NOTIFIERS is not set | 929 | # CONFIG_DEBUG_NOTIFIERS is not set |
862 | # CONFIG_BOOT_PRINTK_DELAY is not set | 930 | # CONFIG_DEBUG_CREDENTIALS is not set |
863 | # CONFIG_RCU_TORTURE_TEST is not set | 931 | # CONFIG_RCU_TORTURE_TEST is not set |
864 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 932 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
865 | # CONFIG_BACKTRACE_SELF_TEST is not set | 933 | # CONFIG_BACKTRACE_SELF_TEST is not set |
866 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 934 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
935 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
867 | # CONFIG_FAULT_INJECTION is not set | 936 | # CONFIG_FAULT_INJECTION is not set |
868 | # CONFIG_LATENCYTOP is not set | 937 | # CONFIG_LATENCYTOP is not set |
869 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 938 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -873,24 +942,26 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | |||
873 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 942 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
874 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 943 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
875 | CONFIG_TRACING_SUPPORT=y | 944 | CONFIG_TRACING_SUPPORT=y |
876 | 945 | CONFIG_FTRACE=y | |
877 | # | ||
878 | # Tracers | ||
879 | # | ||
880 | # CONFIG_FUNCTION_TRACER is not set | 946 | # CONFIG_FUNCTION_TRACER is not set |
947 | # CONFIG_IRQSOFF_TRACER is not set | ||
881 | # CONFIG_SCHED_TRACER is not set | 948 | # CONFIG_SCHED_TRACER is not set |
882 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 949 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
883 | # CONFIG_EVENT_TRACER is not set | ||
884 | # CONFIG_BOOT_TRACER is not set | 950 | # CONFIG_BOOT_TRACER is not set |
885 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 951 | CONFIG_BRANCH_PROFILE_NONE=y |
952 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
953 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
886 | # CONFIG_STACK_TRACER is not set | 954 | # CONFIG_STACK_TRACER is not set |
887 | # CONFIG_KMEMTRACE is not set | 955 | # CONFIG_KMEMTRACE is not set |
888 | # CONFIG_WORKQUEUE_TRACER is not set | 956 | # CONFIG_WORKQUEUE_TRACER is not set |
889 | # CONFIG_BLK_DEV_IO_TRACE is not set | 957 | # CONFIG_BLK_DEV_IO_TRACE is not set |
890 | # CONFIG_DYNAMIC_DEBUG is not set | 958 | # CONFIG_DYNAMIC_DEBUG is not set |
959 | # CONFIG_DMA_API_DEBUG is not set | ||
891 | # CONFIG_SAMPLES is not set | 960 | # CONFIG_SAMPLES is not set |
892 | CONFIG_HAVE_ARCH_KGDB=y | 961 | CONFIG_HAVE_ARCH_KGDB=y |
893 | # CONFIG_KGDB is not set | 962 | # CONFIG_KGDB is not set |
963 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
964 | CONFIG_PPC_WERROR=y | ||
894 | CONFIG_PRINT_STACK_DEPTH=64 | 965 | CONFIG_PRINT_STACK_DEPTH=64 |
895 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 966 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
896 | # CONFIG_DEBUG_STACK_USAGE is not set | 967 | # CONFIG_DEBUG_STACK_USAGE is not set |
@@ -910,13 +981,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
910 | # CONFIG_KEYS is not set | 981 | # CONFIG_KEYS is not set |
911 | # CONFIG_SECURITY is not set | 982 | # CONFIG_SECURITY is not set |
912 | # CONFIG_SECURITYFS is not set | 983 | # CONFIG_SECURITYFS is not set |
913 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 984 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
985 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
986 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
987 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
988 | CONFIG_DEFAULT_SECURITY="" | ||
914 | CONFIG_CRYPTO=y | 989 | CONFIG_CRYPTO=y |
915 | 990 | ||
916 | # | 991 | # |
917 | # Crypto core or helper | 992 | # Crypto core or helper |
918 | # | 993 | # |
919 | # CONFIG_CRYPTO_FIPS is not set | ||
920 | CONFIG_CRYPTO_ALGAPI=y | 994 | CONFIG_CRYPTO_ALGAPI=y |
921 | CONFIG_CRYPTO_ALGAPI2=y | 995 | CONFIG_CRYPTO_ALGAPI2=y |
922 | CONFIG_CRYPTO_AEAD2=y | 996 | CONFIG_CRYPTO_AEAD2=y |
@@ -958,11 +1032,13 @@ CONFIG_CRYPTO_PCBC=y | |||
958 | # | 1032 | # |
959 | # CONFIG_CRYPTO_HMAC is not set | 1033 | # CONFIG_CRYPTO_HMAC is not set |
960 | # CONFIG_CRYPTO_XCBC is not set | 1034 | # CONFIG_CRYPTO_XCBC is not set |
1035 | # CONFIG_CRYPTO_VMAC is not set | ||
961 | 1036 | ||
962 | # | 1037 | # |
963 | # Digest | 1038 | # Digest |
964 | # | 1039 | # |
965 | # CONFIG_CRYPTO_CRC32C is not set | 1040 | # CONFIG_CRYPTO_CRC32C is not set |
1041 | # CONFIG_CRYPTO_GHASH is not set | ||
966 | # CONFIG_CRYPTO_MD4 is not set | 1042 | # CONFIG_CRYPTO_MD4 is not set |
967 | CONFIG_CRYPTO_MD5=y | 1043 | CONFIG_CRYPTO_MD5=y |
968 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1044 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
diff --git a/arch/powerpc/configs/40x/walnut_defconfig b/arch/powerpc/configs/40x/walnut_defconfig index 5ab29dddd21c..bfff0eae39d2 100644 --- a/arch/powerpc/configs/40x/walnut_defconfig +++ b/arch/powerpc/configs/40x/walnut_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:17:57 2009 | 4 | # Mon Jan 4 15:56:30 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -27,15 +28,18 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
30 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
31 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
32 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
33 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
34 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
38 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
39 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
40 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
41 | CONFIG_PPC=y | 45 | CONFIG_PPC=y |
@@ -49,11 +53,15 @@ CONFIG_PPC_UDBG_16550=y | |||
49 | # CONFIG_GENERIC_TBSYNC is not set | 53 | # CONFIG_GENERIC_TBSYNC is not set |
50 | CONFIG_AUDIT_ARCH=y | 54 | CONFIG_AUDIT_ARCH=y |
51 | CONFIG_GENERIC_BUG=y | 55 | CONFIG_GENERIC_BUG=y |
56 | CONFIG_DTC=y | ||
52 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | # CONFIG_DEFAULT_UIMAGE is not set |
58 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
53 | CONFIG_PPC_DCR_NATIVE=y | 59 | CONFIG_PPC_DCR_NATIVE=y |
54 | # CONFIG_PPC_DCR_MMIO is not set | 60 | # CONFIG_PPC_DCR_MMIO is not set |
55 | CONFIG_PPC_DCR=y | 61 | CONFIG_PPC_DCR=y |
62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
56 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
64 | CONFIG_CONSTRUCTORS=y | ||
57 | 65 | ||
58 | # | 66 | # |
59 | # General setup | 67 | # General setup |
@@ -67,9 +75,21 @@ CONFIG_SWAP=y | |||
67 | CONFIG_SYSVIPC=y | 75 | CONFIG_SYSVIPC=y |
68 | CONFIG_SYSVIPC_SYSCTL=y | 76 | CONFIG_SYSVIPC_SYSCTL=y |
69 | CONFIG_POSIX_MQUEUE=y | 77 | CONFIG_POSIX_MQUEUE=y |
78 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 79 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 80 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_AUDIT is not set | 81 | # CONFIG_AUDIT is not set |
82 | |||
83 | # | ||
84 | # RCU Subsystem | ||
85 | # | ||
86 | CONFIG_TREE_RCU=y | ||
87 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
88 | # CONFIG_TINY_RCU is not set | ||
89 | # CONFIG_RCU_TRACE is not set | ||
90 | CONFIG_RCU_FANOUT=32 | ||
91 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
92 | # CONFIG_TREE_RCU_TRACE is not set | ||
73 | # CONFIG_IKCONFIG is not set | 93 | # CONFIG_IKCONFIG is not set |
74 | CONFIG_LOG_BUF_SHIFT=14 | 94 | CONFIG_LOG_BUF_SHIFT=14 |
75 | CONFIG_GROUP_SCHED=y | 95 | CONFIG_GROUP_SCHED=y |
@@ -84,31 +104,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
84 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
85 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
86 | CONFIG_INITRAMFS_SOURCE="" | 106 | CONFIG_INITRAMFS_SOURCE="" |
107 | CONFIG_RD_GZIP=y | ||
108 | # CONFIG_RD_BZIP2 is not set | ||
109 | # CONFIG_RD_LZMA is not set | ||
87 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 110 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
88 | CONFIG_SYSCTL=y | 111 | CONFIG_SYSCTL=y |
112 | CONFIG_ANON_INODES=y | ||
89 | CONFIG_EMBEDDED=y | 113 | CONFIG_EMBEDDED=y |
90 | CONFIG_SYSCTL_SYSCALL=y | 114 | CONFIG_SYSCTL_SYSCALL=y |
91 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
92 | CONFIG_KALLSYMS_ALL=y | 116 | CONFIG_KALLSYMS_ALL=y |
93 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
94 | CONFIG_KALLSYMS_EXTRA_PASS=y | 117 | CONFIG_KALLSYMS_EXTRA_PASS=y |
95 | CONFIG_HOTPLUG=y | 118 | CONFIG_HOTPLUG=y |
96 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
97 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
98 | CONFIG_ELF_CORE=y | 121 | CONFIG_ELF_CORE=y |
99 | CONFIG_COMPAT_BRK=y | ||
100 | CONFIG_BASE_FULL=y | 122 | CONFIG_BASE_FULL=y |
101 | CONFIG_FUTEX=y | 123 | CONFIG_FUTEX=y |
102 | CONFIG_ANON_INODES=y | ||
103 | CONFIG_EPOLL=y | 124 | CONFIG_EPOLL=y |
104 | CONFIG_SIGNALFD=y | 125 | CONFIG_SIGNALFD=y |
105 | CONFIG_TIMERFD=y | 126 | CONFIG_TIMERFD=y |
106 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
107 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
108 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
109 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
110 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
111 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
140 | CONFIG_COMPAT_BRK=y | ||
112 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
113 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
114 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
@@ -120,6 +149,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
120 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
121 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
122 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
159 | # CONFIG_SLOW_WORK is not set | ||
123 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
124 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
125 | CONFIG_RT_MUTEXES=y | 162 | CONFIG_RT_MUTEXES=y |
@@ -131,8 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
131 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
132 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
133 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
134 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
135 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
136 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
137 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
138 | 174 | ||
@@ -140,19 +176,41 @@ CONFIG_LBD=y | |||
140 | # IO Schedulers | 176 | # IO Schedulers |
141 | # | 177 | # |
142 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
143 | CONFIG_IOSCHED_AS=y | ||
144 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
145 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
146 | CONFIG_DEFAULT_AS=y | ||
147 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
148 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
149 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
150 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
151 | CONFIG_CLASSIC_RCU=y | 185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
152 | # CONFIG_TREE_RCU is not set | 186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
153 | # CONFIG_PREEMPT_RCU is not set | 187 | # CONFIG_INLINE_SPIN_LOCK is not set |
154 | # CONFIG_TREE_RCU_TRACE is not set | 188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU_TRACE is not set | 189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
156 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
157 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 215 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
158 | 216 | ||
@@ -166,6 +224,7 @@ CONFIG_CLASSIC_RCU=y | |||
166 | # CONFIG_ACADIA is not set | 224 | # CONFIG_ACADIA is not set |
167 | # CONFIG_EP405 is not set | 225 | # CONFIG_EP405 is not set |
168 | # CONFIG_HCU4 is not set | 226 | # CONFIG_HCU4 is not set |
227 | # CONFIG_HOTFOOT is not set | ||
169 | # CONFIG_KILAUEA is not set | 228 | # CONFIG_KILAUEA is not set |
170 | # CONFIG_MAKALU is not set | 229 | # CONFIG_MAKALU is not set |
171 | CONFIG_WALNUT=y | 230 | CONFIG_WALNUT=y |
@@ -211,10 +270,12 @@ CONFIG_BINFMT_ELF=y | |||
211 | # CONFIG_BINFMT_MISC is not set | 270 | # CONFIG_BINFMT_MISC is not set |
212 | # CONFIG_MATH_EMULATION is not set | 271 | # CONFIG_MATH_EMULATION is not set |
213 | # CONFIG_IOMMU_HELPER is not set | 272 | # CONFIG_IOMMU_HELPER is not set |
214 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 273 | # CONFIG_SWIOTLB is not set |
215 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 274 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
216 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 275 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
217 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 276 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
277 | CONFIG_SPARSE_IRQ=y | ||
278 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
218 | CONFIG_ARCH_FLATMEM_ENABLE=y | 279 | CONFIG_ARCH_FLATMEM_ENABLE=y |
219 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 280 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
220 | CONFIG_SELECT_MEMORY_MODEL=y | 281 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -230,10 +291,12 @@ CONFIG_MIGRATION=y | |||
230 | CONFIG_ZONE_DMA_FLAG=1 | 291 | CONFIG_ZONE_DMA_FLAG=1 |
231 | CONFIG_BOUNCE=y | 292 | CONFIG_BOUNCE=y |
232 | CONFIG_VIRT_TO_BUS=y | 293 | CONFIG_VIRT_TO_BUS=y |
233 | CONFIG_UNEVICTABLE_LRU=y | 294 | # CONFIG_KSM is not set |
295 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
234 | CONFIG_PPC_4K_PAGES=y | 296 | CONFIG_PPC_4K_PAGES=y |
235 | # CONFIG_PPC_16K_PAGES is not set | 297 | # CONFIG_PPC_16K_PAGES is not set |
236 | # CONFIG_PPC_64K_PAGES is not set | 298 | # CONFIG_PPC_64K_PAGES is not set |
299 | # CONFIG_PPC_256K_PAGES is not set | ||
237 | CONFIG_FORCE_MAX_ZONEORDER=11 | 300 | CONFIG_FORCE_MAX_ZONEORDER=11 |
238 | CONFIG_PROC_DEVICETREE=y | 301 | CONFIG_PROC_DEVICETREE=y |
239 | # CONFIG_CMDLINE_BOOL is not set | 302 | # CONFIG_CMDLINE_BOOL is not set |
@@ -258,6 +321,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
258 | # CONFIG_PCI_LEGACY is not set | 321 | # CONFIG_PCI_LEGACY is not set |
259 | # CONFIG_PCI_DEBUG is not set | 322 | # CONFIG_PCI_DEBUG is not set |
260 | # CONFIG_PCI_STUB is not set | 323 | # CONFIG_PCI_STUB is not set |
324 | # CONFIG_PCI_IOV is not set | ||
261 | # CONFIG_PCCARD is not set | 325 | # CONFIG_PCCARD is not set |
262 | # CONFIG_HOTPLUG_PCI is not set | 326 | # CONFIG_HOTPLUG_PCI is not set |
263 | # CONFIG_HAS_RAPIDIO is not set | 327 | # CONFIG_HAS_RAPIDIO is not set |
@@ -275,14 +339,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
275 | CONFIG_KERNEL_START=0xc0000000 | 339 | CONFIG_KERNEL_START=0xc0000000 |
276 | CONFIG_PHYSICAL_START=0x00000000 | 340 | CONFIG_PHYSICAL_START=0x00000000 |
277 | CONFIG_TASK_SIZE=0xc0000000 | 341 | CONFIG_TASK_SIZE=0xc0000000 |
278 | CONFIG_CONSISTENT_START=0xff100000 | ||
279 | CONFIG_CONSISTENT_SIZE=0x00200000 | 342 | CONFIG_CONSISTENT_SIZE=0x00200000 |
280 | CONFIG_NET=y | 343 | CONFIG_NET=y |
281 | 344 | ||
282 | # | 345 | # |
283 | # Networking options | 346 | # Networking options |
284 | # | 347 | # |
285 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
286 | CONFIG_PACKET=y | 348 | CONFIG_PACKET=y |
287 | # CONFIG_PACKET_MMAP is not set | 349 | # CONFIG_PACKET_MMAP is not set |
288 | CONFIG_UNIX=y | 350 | CONFIG_UNIX=y |
@@ -319,6 +381,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
319 | # CONFIG_NETFILTER is not set | 381 | # CONFIG_NETFILTER is not set |
320 | # CONFIG_IP_DCCP is not set | 382 | # CONFIG_IP_DCCP is not set |
321 | # CONFIG_IP_SCTP is not set | 383 | # CONFIG_IP_SCTP is not set |
384 | # CONFIG_RDS is not set | ||
322 | # CONFIG_TIPC is not set | 385 | # CONFIG_TIPC is not set |
323 | # CONFIG_ATM is not set | 386 | # CONFIG_ATM is not set |
324 | # CONFIG_BRIDGE is not set | 387 | # CONFIG_BRIDGE is not set |
@@ -332,6 +395,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
332 | # CONFIG_LAPB is not set | 395 | # CONFIG_LAPB is not set |
333 | # CONFIG_ECONET is not set | 396 | # CONFIG_ECONET is not set |
334 | # CONFIG_WAN_ROUTER is not set | 397 | # CONFIG_WAN_ROUTER is not set |
398 | # CONFIG_PHONET is not set | ||
399 | # CONFIG_IEEE802154 is not set | ||
335 | # CONFIG_NET_SCHED is not set | 400 | # CONFIG_NET_SCHED is not set |
336 | # CONFIG_DCB is not set | 401 | # CONFIG_DCB is not set |
337 | 402 | ||
@@ -344,8 +409,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
344 | # CONFIG_IRDA is not set | 409 | # CONFIG_IRDA is not set |
345 | # CONFIG_BT is not set | 410 | # CONFIG_BT is not set |
346 | # CONFIG_AF_RXRPC is not set | 411 | # CONFIG_AF_RXRPC is not set |
347 | # CONFIG_PHONET is not set | 412 | CONFIG_WIRELESS=y |
348 | # CONFIG_WIRELESS is not set | 413 | # CONFIG_CFG80211 is not set |
414 | # CONFIG_LIB80211 is not set | ||
415 | |||
416 | # | ||
417 | # CFG80211 needs to be enabled for MAC80211 | ||
418 | # | ||
349 | # CONFIG_WIMAX is not set | 419 | # CONFIG_WIMAX is not set |
350 | # CONFIG_RFKILL is not set | 420 | # CONFIG_RFKILL is not set |
351 | # CONFIG_NET_9P is not set | 421 | # CONFIG_NET_9P is not set |
@@ -358,6 +428,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
358 | # Generic Driver Options | 428 | # Generic Driver Options |
359 | # | 429 | # |
360 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 430 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
431 | # CONFIG_DEVTMPFS is not set | ||
361 | CONFIG_STANDALONE=y | 432 | CONFIG_STANDALONE=y |
362 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 433 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
363 | CONFIG_FW_LOADER=y | 434 | CONFIG_FW_LOADER=y |
@@ -370,9 +441,9 @@ CONFIG_CONNECTOR=y | |||
370 | CONFIG_PROC_EVENTS=y | 441 | CONFIG_PROC_EVENTS=y |
371 | CONFIG_MTD=y | 442 | CONFIG_MTD=y |
372 | # CONFIG_MTD_DEBUG is not set | 443 | # CONFIG_MTD_DEBUG is not set |
444 | # CONFIG_MTD_TESTS is not set | ||
373 | # CONFIG_MTD_CONCAT is not set | 445 | # CONFIG_MTD_CONCAT is not set |
374 | CONFIG_MTD_PARTITIONS=y | 446 | CONFIG_MTD_PARTITIONS=y |
375 | # CONFIG_MTD_TESTS is not set | ||
376 | # CONFIG_MTD_REDBOOT_PARTS is not set | 447 | # CONFIG_MTD_REDBOOT_PARTS is not set |
377 | CONFIG_MTD_CMDLINE_PARTS=y | 448 | CONFIG_MTD_CMDLINE_PARTS=y |
378 | CONFIG_MTD_OF_PARTS=y | 449 | CONFIG_MTD_OF_PARTS=y |
@@ -448,7 +519,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
448 | # LPDDR flash memory drivers | 519 | # LPDDR flash memory drivers |
449 | # | 520 | # |
450 | # CONFIG_MTD_LPDDR is not set | 521 | # CONFIG_MTD_LPDDR is not set |
451 | # CONFIG_MTD_QINFO_PROBE is not set | ||
452 | 522 | ||
453 | # | 523 | # |
454 | # UBI - Unsorted block images | 524 | # UBI - Unsorted block images |
@@ -464,6 +534,7 @@ CONFIG_BLK_DEV=y | |||
464 | # CONFIG_BLK_DEV_UMEM is not set | 534 | # CONFIG_BLK_DEV_UMEM is not set |
465 | # CONFIG_BLK_DEV_COW_COMMON is not set | 535 | # CONFIG_BLK_DEV_COW_COMMON is not set |
466 | # CONFIG_BLK_DEV_LOOP is not set | 536 | # CONFIG_BLK_DEV_LOOP is not set |
537 | # CONFIG_BLK_DEV_DRBD is not set | ||
467 | # CONFIG_BLK_DEV_NBD is not set | 538 | # CONFIG_BLK_DEV_NBD is not set |
468 | # CONFIG_BLK_DEV_SX8 is not set | 539 | # CONFIG_BLK_DEV_SX8 is not set |
469 | CONFIG_BLK_DEV_RAM=y | 540 | CONFIG_BLK_DEV_RAM=y |
@@ -476,12 +547,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
476 | # CONFIG_BLK_DEV_HD is not set | 547 | # CONFIG_BLK_DEV_HD is not set |
477 | CONFIG_MISC_DEVICES=y | 548 | CONFIG_MISC_DEVICES=y |
478 | # CONFIG_PHANTOM is not set | 549 | # CONFIG_PHANTOM is not set |
479 | # CONFIG_EEPROM_93CX6 is not set | ||
480 | # CONFIG_SGI_IOC4 is not set | 550 | # CONFIG_SGI_IOC4 is not set |
481 | # CONFIG_TIFM_CORE is not set | 551 | # CONFIG_TIFM_CORE is not set |
482 | # CONFIG_ENCLOSURE_SERVICES is not set | 552 | # CONFIG_ENCLOSURE_SERVICES is not set |
483 | # CONFIG_HP_ILO is not set | 553 | # CONFIG_HP_ILO is not set |
484 | # CONFIG_C2PORT is not set | 554 | # CONFIG_C2PORT is not set |
555 | |||
556 | # | ||
557 | # EEPROM support | ||
558 | # | ||
559 | # CONFIG_EEPROM_93CX6 is not set | ||
560 | # CONFIG_CB710_CORE is not set | ||
485 | CONFIG_HAVE_IDE=y | 561 | CONFIG_HAVE_IDE=y |
486 | # CONFIG_IDE is not set | 562 | # CONFIG_IDE is not set |
487 | 563 | ||
@@ -501,7 +577,11 @@ CONFIG_HAVE_IDE=y | |||
501 | # | 577 | # |
502 | 578 | ||
503 | # | 579 | # |
504 | # Enable only one of the two stacks, unless you know what you are doing | 580 | # You can enable one or both FireWire driver stacks. |
581 | # | ||
582 | |||
583 | # | ||
584 | # See the help texts for more information. | ||
505 | # | 585 | # |
506 | # CONFIG_FIREWIRE is not set | 586 | # CONFIG_FIREWIRE is not set |
507 | # CONFIG_IEEE1394 is not set | 587 | # CONFIG_IEEE1394 is not set |
@@ -522,6 +602,8 @@ CONFIG_NET_ETHERNET=y | |||
522 | # CONFIG_SUNGEM is not set | 602 | # CONFIG_SUNGEM is not set |
523 | # CONFIG_CASSINI is not set | 603 | # CONFIG_CASSINI is not set |
524 | # CONFIG_NET_VENDOR_3COM is not set | 604 | # CONFIG_NET_VENDOR_3COM is not set |
605 | # CONFIG_ETHOC is not set | ||
606 | # CONFIG_DNET is not set | ||
525 | # CONFIG_NET_TULIP is not set | 607 | # CONFIG_NET_TULIP is not set |
526 | # CONFIG_HP100 is not set | 608 | # CONFIG_HP100 is not set |
527 | CONFIG_IBM_NEW_EMAC=y | 609 | CONFIG_IBM_NEW_EMAC=y |
@@ -540,7 +622,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
540 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 622 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
541 | # CONFIG_NET_PCI is not set | 623 | # CONFIG_NET_PCI is not set |
542 | # CONFIG_B44 is not set | 624 | # CONFIG_B44 is not set |
625 | # CONFIG_KS8842 is not set | ||
626 | # CONFIG_KS8851_MLL is not set | ||
543 | # CONFIG_ATL2 is not set | 627 | # CONFIG_ATL2 is not set |
628 | # CONFIG_XILINX_EMACLITE is not set | ||
544 | CONFIG_NETDEV_1000=y | 629 | CONFIG_NETDEV_1000=y |
545 | # CONFIG_ACENIC is not set | 630 | # CONFIG_ACENIC is not set |
546 | # CONFIG_DL2K is not set | 631 | # CONFIG_DL2K is not set |
@@ -548,6 +633,7 @@ CONFIG_NETDEV_1000=y | |||
548 | # CONFIG_E1000E is not set | 633 | # CONFIG_E1000E is not set |
549 | # CONFIG_IP1000 is not set | 634 | # CONFIG_IP1000 is not set |
550 | # CONFIG_IGB is not set | 635 | # CONFIG_IGB is not set |
636 | # CONFIG_IGBVF is not set | ||
551 | # CONFIG_NS83820 is not set | 637 | # CONFIG_NS83820 is not set |
552 | # CONFIG_HAMACHI is not set | 638 | # CONFIG_HAMACHI is not set |
553 | # CONFIG_YELLOWFIN is not set | 639 | # CONFIG_YELLOWFIN is not set |
@@ -558,9 +644,13 @@ CONFIG_NETDEV_1000=y | |||
558 | # CONFIG_VIA_VELOCITY is not set | 644 | # CONFIG_VIA_VELOCITY is not set |
559 | # CONFIG_TIGON3 is not set | 645 | # CONFIG_TIGON3 is not set |
560 | # CONFIG_BNX2 is not set | 646 | # CONFIG_BNX2 is not set |
647 | # CONFIG_CNIC is not set | ||
648 | # CONFIG_MV643XX_ETH is not set | ||
649 | # CONFIG_XILINX_LL_TEMAC is not set | ||
561 | # CONFIG_QLA3XXX is not set | 650 | # CONFIG_QLA3XXX is not set |
562 | # CONFIG_ATL1 is not set | 651 | # CONFIG_ATL1 is not set |
563 | # CONFIG_ATL1E is not set | 652 | # CONFIG_ATL1E is not set |
653 | # CONFIG_ATL1C is not set | ||
564 | # CONFIG_JME is not set | 654 | # CONFIG_JME is not set |
565 | CONFIG_NETDEV_10000=y | 655 | CONFIG_NETDEV_10000=y |
566 | # CONFIG_CHELSIO_T1 is not set | 656 | # CONFIG_CHELSIO_T1 is not set |
@@ -570,6 +660,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
570 | # CONFIG_IXGBE is not set | 660 | # CONFIG_IXGBE is not set |
571 | # CONFIG_IXGB is not set | 661 | # CONFIG_IXGB is not set |
572 | # CONFIG_S2IO is not set | 662 | # CONFIG_S2IO is not set |
663 | # CONFIG_VXGE is not set | ||
573 | # CONFIG_MYRI10GE is not set | 664 | # CONFIG_MYRI10GE is not set |
574 | # CONFIG_NETXEN_NIC is not set | 665 | # CONFIG_NETXEN_NIC is not set |
575 | # CONFIG_NIU is not set | 666 | # CONFIG_NIU is not set |
@@ -579,14 +670,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
579 | # CONFIG_BNX2X is not set | 670 | # CONFIG_BNX2X is not set |
580 | # CONFIG_QLGE is not set | 671 | # CONFIG_QLGE is not set |
581 | # CONFIG_SFC is not set | 672 | # CONFIG_SFC is not set |
673 | # CONFIG_BE2NET is not set | ||
582 | # CONFIG_TR is not set | 674 | # CONFIG_TR is not set |
583 | 675 | CONFIG_WLAN=y | |
584 | # | 676 | # CONFIG_AIRO is not set |
585 | # Wireless LAN | 677 | # CONFIG_ATMEL is not set |
586 | # | 678 | # CONFIG_PRISM54 is not set |
587 | # CONFIG_WLAN_PRE80211 is not set | 679 | # CONFIG_HOSTAP is not set |
588 | # CONFIG_WLAN_80211 is not set | ||
589 | # CONFIG_IWLWIFI_LEDS is not set | ||
590 | 680 | ||
591 | # | 681 | # |
592 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 682 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -599,6 +689,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
599 | # CONFIG_NETCONSOLE is not set | 689 | # CONFIG_NETCONSOLE is not set |
600 | # CONFIG_NETPOLL is not set | 690 | # CONFIG_NETPOLL is not set |
601 | # CONFIG_NET_POLL_CONTROLLER is not set | 691 | # CONFIG_NET_POLL_CONTROLLER is not set |
692 | # CONFIG_VMXNET3 is not set | ||
602 | # CONFIG_ISDN is not set | 693 | # CONFIG_ISDN is not set |
603 | # CONFIG_PHONE is not set | 694 | # CONFIG_PHONE is not set |
604 | 695 | ||
@@ -644,6 +735,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
644 | # CONFIG_SERIAL_JSM is not set | 735 | # CONFIG_SERIAL_JSM is not set |
645 | CONFIG_SERIAL_OF_PLATFORM=y | 736 | CONFIG_SERIAL_OF_PLATFORM=y |
646 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 737 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
738 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
647 | CONFIG_UNIX98_PTYS=y | 739 | CONFIG_UNIX98_PTYS=y |
648 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 740 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
649 | CONFIG_LEGACY_PTYS=y | 741 | CONFIG_LEGACY_PTYS=y |
@@ -660,6 +752,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
660 | CONFIG_DEVPORT=y | 752 | CONFIG_DEVPORT=y |
661 | # CONFIG_I2C is not set | 753 | # CONFIG_I2C is not set |
662 | # CONFIG_SPI is not set | 754 | # CONFIG_SPI is not set |
755 | |||
756 | # | ||
757 | # PPS support | ||
758 | # | ||
759 | # CONFIG_PPS is not set | ||
663 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 760 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
664 | # CONFIG_GPIOLIB is not set | 761 | # CONFIG_GPIOLIB is not set |
665 | # CONFIG_W1 is not set | 762 | # CONFIG_W1 is not set |
@@ -682,27 +779,13 @@ CONFIG_SSB_POSSIBLE=y | |||
682 | # CONFIG_HTC_PASIC3 is not set | 779 | # CONFIG_HTC_PASIC3 is not set |
683 | # CONFIG_MFD_TMIO is not set | 780 | # CONFIG_MFD_TMIO is not set |
684 | # CONFIG_REGULATOR is not set | 781 | # CONFIG_REGULATOR is not set |
685 | 782 | # CONFIG_MEDIA_SUPPORT is not set | |
686 | # | ||
687 | # Multimedia devices | ||
688 | # | ||
689 | |||
690 | # | ||
691 | # Multimedia core support | ||
692 | # | ||
693 | # CONFIG_VIDEO_DEV is not set | ||
694 | # CONFIG_DVB_CORE is not set | ||
695 | # CONFIG_VIDEO_MEDIA is not set | ||
696 | |||
697 | # | ||
698 | # Multimedia drivers | ||
699 | # | ||
700 | # CONFIG_DAB is not set | ||
701 | 783 | ||
702 | # | 784 | # |
703 | # Graphics support | 785 | # Graphics support |
704 | # | 786 | # |
705 | # CONFIG_AGP is not set | 787 | # CONFIG_AGP is not set |
788 | CONFIG_VGA_ARB=y | ||
706 | # CONFIG_DRM is not set | 789 | # CONFIG_DRM is not set |
707 | # CONFIG_VGASTATE is not set | 790 | # CONFIG_VGASTATE is not set |
708 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 791 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -727,7 +810,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
727 | # | 810 | # |
728 | 811 | ||
729 | # | 812 | # |
730 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 813 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
731 | # | 814 | # |
732 | # CONFIG_USB_GADGET is not set | 815 | # CONFIG_USB_GADGET is not set |
733 | 816 | ||
@@ -743,7 +826,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
743 | # CONFIG_EDAC is not set | 826 | # CONFIG_EDAC is not set |
744 | # CONFIG_RTC_CLASS is not set | 827 | # CONFIG_RTC_CLASS is not set |
745 | # CONFIG_DMADEVICES is not set | 828 | # CONFIG_DMADEVICES is not set |
829 | # CONFIG_AUXDISPLAY is not set | ||
746 | # CONFIG_UIO is not set | 830 | # CONFIG_UIO is not set |
831 | |||
832 | # | ||
833 | # TI VLYNQ | ||
834 | # | ||
747 | # CONFIG_STAGING is not set | 835 | # CONFIG_STAGING is not set |
748 | 836 | ||
749 | # | 837 | # |
@@ -754,14 +842,17 @@ CONFIG_EXT2_FS=y | |||
754 | # CONFIG_EXT2_FS_XIP is not set | 842 | # CONFIG_EXT2_FS_XIP is not set |
755 | # CONFIG_EXT3_FS is not set | 843 | # CONFIG_EXT3_FS is not set |
756 | # CONFIG_EXT4_FS is not set | 844 | # CONFIG_EXT4_FS is not set |
845 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
757 | # CONFIG_REISERFS_FS is not set | 846 | # CONFIG_REISERFS_FS is not set |
758 | # CONFIG_JFS_FS is not set | 847 | # CONFIG_JFS_FS is not set |
759 | # CONFIG_FS_POSIX_ACL is not set | 848 | # CONFIG_FS_POSIX_ACL is not set |
760 | CONFIG_FILE_LOCKING=y | ||
761 | # CONFIG_XFS_FS is not set | 849 | # CONFIG_XFS_FS is not set |
762 | # CONFIG_GFS2_FS is not set | 850 | # CONFIG_GFS2_FS is not set |
763 | # CONFIG_OCFS2_FS is not set | 851 | # CONFIG_OCFS2_FS is not set |
764 | # CONFIG_BTRFS_FS is not set | 852 | # CONFIG_BTRFS_FS is not set |
853 | # CONFIG_NILFS2_FS is not set | ||
854 | CONFIG_FILE_LOCKING=y | ||
855 | CONFIG_FSNOTIFY=y | ||
765 | CONFIG_DNOTIFY=y | 856 | CONFIG_DNOTIFY=y |
766 | CONFIG_INOTIFY=y | 857 | CONFIG_INOTIFY=y |
767 | CONFIG_INOTIFY_USER=y | 858 | CONFIG_INOTIFY_USER=y |
@@ -771,6 +862,11 @@ CONFIG_INOTIFY_USER=y | |||
771 | # CONFIG_FUSE_FS is not set | 862 | # CONFIG_FUSE_FS is not set |
772 | 863 | ||
773 | # | 864 | # |
865 | # Caches | ||
866 | # | ||
867 | # CONFIG_FSCACHE is not set | ||
868 | |||
869 | # | ||
774 | # CD-ROM/DVD Filesystems | 870 | # CD-ROM/DVD Filesystems |
775 | # | 871 | # |
776 | # CONFIG_ISO9660_FS is not set | 872 | # CONFIG_ISO9660_FS is not set |
@@ -825,7 +921,6 @@ CONFIG_LOCKD=y | |||
825 | CONFIG_LOCKD_V4=y | 921 | CONFIG_LOCKD_V4=y |
826 | CONFIG_NFS_COMMON=y | 922 | CONFIG_NFS_COMMON=y |
827 | CONFIG_SUNRPC=y | 923 | CONFIG_SUNRPC=y |
828 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
829 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 924 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
830 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 925 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
831 | # CONFIG_SMB_FS is not set | 926 | # CONFIG_SMB_FS is not set |
@@ -841,6 +936,7 @@ CONFIG_SUNRPC=y | |||
841 | CONFIG_MSDOS_PARTITION=y | 936 | CONFIG_MSDOS_PARTITION=y |
842 | # CONFIG_NLS is not set | 937 | # CONFIG_NLS is not set |
843 | # CONFIG_DLM is not set | 938 | # CONFIG_DLM is not set |
939 | # CONFIG_BINARY_PRINTF is not set | ||
844 | 940 | ||
845 | # | 941 | # |
846 | # Library routines | 942 | # Library routines |
@@ -855,11 +951,13 @@ CONFIG_CRC32=y | |||
855 | # CONFIG_CRC7 is not set | 951 | # CONFIG_CRC7 is not set |
856 | # CONFIG_LIBCRC32C is not set | 952 | # CONFIG_LIBCRC32C is not set |
857 | CONFIG_ZLIB_INFLATE=y | 953 | CONFIG_ZLIB_INFLATE=y |
858 | CONFIG_PLIST=y | 954 | CONFIG_DECOMPRESS_GZIP=y |
859 | CONFIG_HAS_IOMEM=y | 955 | CONFIG_HAS_IOMEM=y |
860 | CONFIG_HAS_IOPORT=y | 956 | CONFIG_HAS_IOPORT=y |
861 | CONFIG_HAS_DMA=y | 957 | CONFIG_HAS_DMA=y |
862 | CONFIG_HAVE_LMB=y | 958 | CONFIG_HAVE_LMB=y |
959 | CONFIG_NLATTR=y | ||
960 | CONFIG_GENERIC_ATOMIC64=y | ||
863 | 961 | ||
864 | # | 962 | # |
865 | # Kernel hacking | 963 | # Kernel hacking |
@@ -869,6 +967,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
869 | CONFIG_ENABLE_MUST_CHECK=y | 967 | CONFIG_ENABLE_MUST_CHECK=y |
870 | CONFIG_FRAME_WARN=1024 | 968 | CONFIG_FRAME_WARN=1024 |
871 | CONFIG_MAGIC_SYSRQ=y | 969 | CONFIG_MAGIC_SYSRQ=y |
970 | # CONFIG_STRIP_ASM_SYMS is not set | ||
872 | # CONFIG_UNUSED_SYMBOLS is not set | 971 | # CONFIG_UNUSED_SYMBOLS is not set |
873 | CONFIG_DEBUG_FS=y | 972 | CONFIG_DEBUG_FS=y |
874 | # CONFIG_HEADERS_CHECK is not set | 973 | # CONFIG_HEADERS_CHECK is not set |
@@ -877,16 +976,23 @@ CONFIG_DEBUG_KERNEL=y | |||
877 | CONFIG_DETECT_SOFTLOCKUP=y | 976 | CONFIG_DETECT_SOFTLOCKUP=y |
878 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 977 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
879 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 978 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
979 | CONFIG_DETECT_HUNG_TASK=y | ||
980 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
981 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
880 | CONFIG_SCHED_DEBUG=y | 982 | CONFIG_SCHED_DEBUG=y |
881 | # CONFIG_SCHEDSTATS is not set | 983 | # CONFIG_SCHEDSTATS is not set |
882 | # CONFIG_TIMER_STATS is not set | 984 | # CONFIG_TIMER_STATS is not set |
883 | # CONFIG_DEBUG_OBJECTS is not set | 985 | # CONFIG_DEBUG_OBJECTS is not set |
884 | # CONFIG_SLUB_DEBUG_ON is not set | 986 | # CONFIG_SLUB_DEBUG_ON is not set |
885 | # CONFIG_SLUB_STATS is not set | 987 | # CONFIG_SLUB_STATS is not set |
988 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
886 | # CONFIG_DEBUG_RT_MUTEXES is not set | 989 | # CONFIG_DEBUG_RT_MUTEXES is not set |
887 | # CONFIG_RT_MUTEX_TESTER is not set | 990 | # CONFIG_RT_MUTEX_TESTER is not set |
888 | # CONFIG_DEBUG_SPINLOCK is not set | 991 | # CONFIG_DEBUG_SPINLOCK is not set |
889 | # CONFIG_DEBUG_MUTEXES is not set | 992 | # CONFIG_DEBUG_MUTEXES is not set |
993 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
994 | # CONFIG_PROVE_LOCKING is not set | ||
995 | # CONFIG_LOCK_STAT is not set | ||
890 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 996 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
891 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 997 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
892 | # CONFIG_DEBUG_KOBJECT is not set | 998 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -898,35 +1004,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
898 | # CONFIG_DEBUG_LIST is not set | 1004 | # CONFIG_DEBUG_LIST is not set |
899 | # CONFIG_DEBUG_SG is not set | 1005 | # CONFIG_DEBUG_SG is not set |
900 | # CONFIG_DEBUG_NOTIFIERS is not set | 1006 | # CONFIG_DEBUG_NOTIFIERS is not set |
901 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1007 | # CONFIG_DEBUG_CREDENTIALS is not set |
902 | # CONFIG_RCU_TORTURE_TEST is not set | 1008 | # CONFIG_RCU_TORTURE_TEST is not set |
903 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1009 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
904 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1010 | # CONFIG_BACKTRACE_SELF_TEST is not set |
905 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1011 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1012 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
906 | # CONFIG_FAULT_INJECTION is not set | 1013 | # CONFIG_FAULT_INJECTION is not set |
907 | # CONFIG_LATENCYTOP is not set | 1014 | # CONFIG_LATENCYTOP is not set |
908 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1015 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1016 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
909 | CONFIG_HAVE_FUNCTION_TRACER=y | 1017 | CONFIG_HAVE_FUNCTION_TRACER=y |
1018 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
910 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1019 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
911 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1020 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
912 | 1021 | CONFIG_TRACING_SUPPORT=y | |
913 | # | 1022 | CONFIG_FTRACE=y |
914 | # Tracers | ||
915 | # | ||
916 | # CONFIG_FUNCTION_TRACER is not set | 1023 | # CONFIG_FUNCTION_TRACER is not set |
1024 | # CONFIG_IRQSOFF_TRACER is not set | ||
917 | # CONFIG_SCHED_TRACER is not set | 1025 | # CONFIG_SCHED_TRACER is not set |
918 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1026 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
919 | # CONFIG_BOOT_TRACER is not set | 1027 | # CONFIG_BOOT_TRACER is not set |
920 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1028 | CONFIG_BRANCH_PROFILE_NONE=y |
1029 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1030 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
921 | # CONFIG_STACK_TRACER is not set | 1031 | # CONFIG_STACK_TRACER is not set |
922 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1032 | # CONFIG_KMEMTRACE is not set |
1033 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1034 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1035 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1036 | # CONFIG_DMA_API_DEBUG is not set | ||
923 | # CONFIG_SAMPLES is not set | 1037 | # CONFIG_SAMPLES is not set |
924 | CONFIG_HAVE_ARCH_KGDB=y | 1038 | CONFIG_HAVE_ARCH_KGDB=y |
925 | # CONFIG_KGDB is not set | 1039 | # CONFIG_KGDB is not set |
1040 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1041 | CONFIG_PPC_WERROR=y | ||
926 | CONFIG_PRINT_STACK_DEPTH=64 | 1042 | CONFIG_PRINT_STACK_DEPTH=64 |
927 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1043 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
928 | # CONFIG_DEBUG_STACK_USAGE is not set | 1044 | # CONFIG_DEBUG_STACK_USAGE is not set |
929 | # CONFIG_DEBUG_PAGEALLOC is not set | 1045 | # CONFIG_PPC_EMULATED_STATS is not set |
930 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1046 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
931 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1047 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
932 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1048 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -942,13 +1058,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
942 | # CONFIG_KEYS is not set | 1058 | # CONFIG_KEYS is not set |
943 | # CONFIG_SECURITY is not set | 1059 | # CONFIG_SECURITY is not set |
944 | # CONFIG_SECURITYFS is not set | 1060 | # CONFIG_SECURITYFS is not set |
945 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1061 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1062 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1063 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1064 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1065 | CONFIG_DEFAULT_SECURITY="" | ||
946 | CONFIG_CRYPTO=y | 1066 | CONFIG_CRYPTO=y |
947 | 1067 | ||
948 | # | 1068 | # |
949 | # Crypto core or helper | 1069 | # Crypto core or helper |
950 | # | 1070 | # |
951 | # CONFIG_CRYPTO_FIPS is not set | ||
952 | CONFIG_CRYPTO_ALGAPI=y | 1071 | CONFIG_CRYPTO_ALGAPI=y |
953 | CONFIG_CRYPTO_ALGAPI2=y | 1072 | CONFIG_CRYPTO_ALGAPI2=y |
954 | CONFIG_CRYPTO_AEAD2=y | 1073 | CONFIG_CRYPTO_AEAD2=y |
@@ -957,10 +1076,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
957 | CONFIG_CRYPTO_HASH=y | 1076 | CONFIG_CRYPTO_HASH=y |
958 | CONFIG_CRYPTO_HASH2=y | 1077 | CONFIG_CRYPTO_HASH2=y |
959 | CONFIG_CRYPTO_RNG2=y | 1078 | CONFIG_CRYPTO_RNG2=y |
1079 | CONFIG_CRYPTO_PCOMP=y | ||
960 | CONFIG_CRYPTO_MANAGER=y | 1080 | CONFIG_CRYPTO_MANAGER=y |
961 | CONFIG_CRYPTO_MANAGER2=y | 1081 | CONFIG_CRYPTO_MANAGER2=y |
962 | # CONFIG_CRYPTO_GF128MUL is not set | 1082 | # CONFIG_CRYPTO_GF128MUL is not set |
963 | # CONFIG_CRYPTO_NULL is not set | 1083 | # CONFIG_CRYPTO_NULL is not set |
1084 | CONFIG_CRYPTO_WORKQUEUE=y | ||
964 | # CONFIG_CRYPTO_CRYPTD is not set | 1085 | # CONFIG_CRYPTO_CRYPTD is not set |
965 | # CONFIG_CRYPTO_AUTHENC is not set | 1086 | # CONFIG_CRYPTO_AUTHENC is not set |
966 | # CONFIG_CRYPTO_TEST is not set | 1087 | # CONFIG_CRYPTO_TEST is not set |
@@ -988,11 +1109,13 @@ CONFIG_CRYPTO_PCBC=y | |||
988 | # | 1109 | # |
989 | # CONFIG_CRYPTO_HMAC is not set | 1110 | # CONFIG_CRYPTO_HMAC is not set |
990 | # CONFIG_CRYPTO_XCBC is not set | 1111 | # CONFIG_CRYPTO_XCBC is not set |
1112 | # CONFIG_CRYPTO_VMAC is not set | ||
991 | 1113 | ||
992 | # | 1114 | # |
993 | # Digest | 1115 | # Digest |
994 | # | 1116 | # |
995 | # CONFIG_CRYPTO_CRC32C is not set | 1117 | # CONFIG_CRYPTO_CRC32C is not set |
1118 | # CONFIG_CRYPTO_GHASH is not set | ||
996 | # CONFIG_CRYPTO_MD4 is not set | 1119 | # CONFIG_CRYPTO_MD4 is not set |
997 | CONFIG_CRYPTO_MD5=y | 1120 | CONFIG_CRYPTO_MD5=y |
998 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1121 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1029,6 +1152,7 @@ CONFIG_CRYPTO_DES=y | |||
1029 | # Compression | 1152 | # Compression |
1030 | # | 1153 | # |
1031 | # CONFIG_CRYPTO_DEFLATE is not set | 1154 | # CONFIG_CRYPTO_DEFLATE is not set |
1155 | # CONFIG_CRYPTO_ZLIB is not set | ||
1032 | # CONFIG_CRYPTO_LZO is not set | 1156 | # CONFIG_CRYPTO_LZO is not set |
1033 | 1157 | ||
1034 | # | 1158 | # |
@@ -1037,5 +1161,6 @@ CONFIG_CRYPTO_DES=y | |||
1037 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1161 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1038 | CONFIG_CRYPTO_HW=y | 1162 | CONFIG_CRYPTO_HW=y |
1039 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1163 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1164 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1040 | # CONFIG_PPC_CLOCK is not set | 1165 | # CONFIG_PPC_CLOCK is not set |
1041 | # CONFIG_VIRTUALIZATION is not set | 1166 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/arches_defconfig b/arch/powerpc/configs/44x/arches_defconfig index 6f976b51cdd0..1f6d0490e28d 100644 --- a/arch/powerpc/configs/44x/arches_defconfig +++ b/arch/powerpc/configs/44x/arches_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.31-rc5 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Thu Aug 13 14:14:07 2009 | 4 | # Mon Jan 4 14:02:35 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -33,7 +34,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
36 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
37 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
38 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
39 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -56,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
56 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
57 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
58 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
59 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
60 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
61 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
@@ -83,11 +87,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
83 | # | 87 | # |
84 | # RCU Subsystem | 88 | # RCU Subsystem |
85 | # | 89 | # |
86 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
88 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
89 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
90 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
91 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
92 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
93 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
@@ -121,22 +127,21 @@ CONFIG_TIMERFD=y | |||
121 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
122 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
123 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
124 | CONFIG_HAVE_PERF_COUNTERS=y | 130 | CONFIG_HAVE_PERF_EVENTS=y |
125 | 131 | ||
126 | # | 132 | # |
127 | # Performance Counters | 133 | # Kernel Performance Events And Counters |
128 | # | 134 | # |
135 | # CONFIG_PERF_EVENTS is not set | ||
129 | # CONFIG_PERF_COUNTERS is not set | 136 | # CONFIG_PERF_COUNTERS is not set |
130 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
131 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
132 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
133 | # CONFIG_STRIP_ASM_SYMS is not set | ||
134 | CONFIG_COMPAT_BRK=y | 140 | CONFIG_COMPAT_BRK=y |
135 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
136 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
137 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
138 | # CONFIG_PROFILING is not set | 144 | # CONFIG_PROFILING is not set |
139 | # CONFIG_MARKERS is not set | ||
140 | CONFIG_HAVE_OPROFILE=y | 145 | CONFIG_HAVE_OPROFILE=y |
141 | # CONFIG_KPROBES is not set | 146 | # CONFIG_KPROBES is not set |
142 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 147 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -144,6 +149,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
144 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
145 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
146 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
147 | 154 | ||
148 | # | 155 | # |
149 | # GCOV-based kernel profiling | 156 | # GCOV-based kernel profiling |
@@ -169,14 +176,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 176 | # IO Schedulers |
170 | # | 177 | # |
171 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
181 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
182 | 216 | ||
@@ -198,6 +232,7 @@ CONFIG_ARCHES=y | |||
198 | # CONFIG_CANYONLANDS is not set | 232 | # CONFIG_CANYONLANDS is not set |
199 | # CONFIG_GLACIER is not set | 233 | # CONFIG_GLACIER is not set |
200 | # CONFIG_REDWOOD is not set | 234 | # CONFIG_REDWOOD is not set |
235 | # CONFIG_EIGER is not set | ||
201 | # CONFIG_YOSEMITE is not set | 236 | # CONFIG_YOSEMITE is not set |
202 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 237 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
203 | CONFIG_PPC44x_SIMPLE=y | 238 | CONFIG_PPC44x_SIMPLE=y |
@@ -241,10 +276,11 @@ CONFIG_BINFMT_ELF=y | |||
241 | # CONFIG_MATH_EMULATION is not set | 276 | # CONFIG_MATH_EMULATION is not set |
242 | # CONFIG_IOMMU_HELPER is not set | 277 | # CONFIG_IOMMU_HELPER is not set |
243 | # CONFIG_SWIOTLB is not set | 278 | # CONFIG_SWIOTLB is not set |
244 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | ||
245 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
246 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
283 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
248 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
249 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
250 | CONFIG_SELECT_MEMORY_MODEL=y | 286 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -260,8 +296,7 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
260 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
261 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
262 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
263 | CONFIG_HAVE_MLOCK=y | 299 | # CONFIG_KSM is not set |
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
265 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
266 | CONFIG_STDBINUTILS=y | 301 | CONFIG_STDBINUTILS=y |
267 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -352,6 +387,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
352 | # CONFIG_NETFILTER is not set | 387 | # CONFIG_NETFILTER is not set |
353 | # CONFIG_IP_DCCP is not set | 388 | # CONFIG_IP_DCCP is not set |
354 | # CONFIG_IP_SCTP is not set | 389 | # CONFIG_IP_SCTP is not set |
390 | # CONFIG_RDS is not set | ||
355 | # CONFIG_TIPC is not set | 391 | # CONFIG_TIPC is not set |
356 | # CONFIG_ATM is not set | 392 | # CONFIG_ATM is not set |
357 | # CONFIG_BRIDGE is not set | 393 | # CONFIG_BRIDGE is not set |
@@ -379,7 +415,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_IRDA is not set | 415 | # CONFIG_IRDA is not set |
380 | # CONFIG_BT is not set | 416 | # CONFIG_BT is not set |
381 | # CONFIG_AF_RXRPC is not set | 417 | # CONFIG_AF_RXRPC is not set |
382 | # CONFIG_WIRELESS is not set | 418 | CONFIG_WIRELESS=y |
419 | # CONFIG_CFG80211 is not set | ||
420 | # CONFIG_LIB80211 is not set | ||
421 | |||
422 | # | ||
423 | # CFG80211 needs to be enabled for MAC80211 | ||
424 | # | ||
383 | # CONFIG_WIMAX is not set | 425 | # CONFIG_WIMAX is not set |
384 | # CONFIG_RFKILL is not set | 426 | # CONFIG_RFKILL is not set |
385 | # CONFIG_NET_9P is not set | 427 | # CONFIG_NET_9P is not set |
@@ -392,6 +434,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
392 | # Generic Driver Options | 434 | # Generic Driver Options |
393 | # | 435 | # |
394 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 436 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
437 | # CONFIG_DEVTMPFS is not set | ||
395 | CONFIG_STANDALONE=y | 438 | CONFIG_STANDALONE=y |
396 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 439 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
397 | CONFIG_FW_LOADER=y | 440 | CONFIG_FW_LOADER=y |
@@ -404,9 +447,9 @@ CONFIG_CONNECTOR=y | |||
404 | CONFIG_PROC_EVENTS=y | 447 | CONFIG_PROC_EVENTS=y |
405 | CONFIG_MTD=y | 448 | CONFIG_MTD=y |
406 | # CONFIG_MTD_DEBUG is not set | 449 | # CONFIG_MTD_DEBUG is not set |
450 | # CONFIG_MTD_TESTS is not set | ||
407 | # CONFIG_MTD_CONCAT is not set | 451 | # CONFIG_MTD_CONCAT is not set |
408 | CONFIG_MTD_PARTITIONS=y | 452 | CONFIG_MTD_PARTITIONS=y |
409 | # CONFIG_MTD_TESTS is not set | ||
410 | # CONFIG_MTD_REDBOOT_PARTS is not set | 453 | # CONFIG_MTD_REDBOOT_PARTS is not set |
411 | CONFIG_MTD_CMDLINE_PARTS=y | 454 | CONFIG_MTD_CMDLINE_PARTS=y |
412 | CONFIG_MTD_OF_PARTS=y | 455 | CONFIG_MTD_OF_PARTS=y |
@@ -497,6 +540,7 @@ CONFIG_BLK_DEV=y | |||
497 | # CONFIG_BLK_DEV_UMEM is not set | 540 | # CONFIG_BLK_DEV_UMEM is not set |
498 | # CONFIG_BLK_DEV_COW_COMMON is not set | 541 | # CONFIG_BLK_DEV_COW_COMMON is not set |
499 | # CONFIG_BLK_DEV_LOOP is not set | 542 | # CONFIG_BLK_DEV_LOOP is not set |
543 | # CONFIG_BLK_DEV_DRBD is not set | ||
500 | # CONFIG_BLK_DEV_NBD is not set | 544 | # CONFIG_BLK_DEV_NBD is not set |
501 | # CONFIG_BLK_DEV_SX8 is not set | 545 | # CONFIG_BLK_DEV_SX8 is not set |
502 | CONFIG_BLK_DEV_RAM=y | 546 | CONFIG_BLK_DEV_RAM=y |
@@ -573,16 +617,17 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
573 | # CONFIG_NET_PCI is not set | 617 | # CONFIG_NET_PCI is not set |
574 | # CONFIG_B44 is not set | 618 | # CONFIG_B44 is not set |
575 | # CONFIG_KS8842 is not set | 619 | # CONFIG_KS8842 is not set |
620 | # CONFIG_KS8851_MLL is not set | ||
576 | # CONFIG_ATL2 is not set | 621 | # CONFIG_ATL2 is not set |
622 | # CONFIG_XILINX_EMACLITE is not set | ||
577 | # CONFIG_NETDEV_1000 is not set | 623 | # CONFIG_NETDEV_1000 is not set |
578 | # CONFIG_NETDEV_10000 is not set | 624 | # CONFIG_NETDEV_10000 is not set |
579 | # CONFIG_TR is not set | 625 | # CONFIG_TR is not set |
580 | 626 | CONFIG_WLAN=y | |
581 | # | 627 | # CONFIG_AIRO is not set |
582 | # Wireless LAN | 628 | # CONFIG_ATMEL is not set |
583 | # | 629 | # CONFIG_PRISM54 is not set |
584 | # CONFIG_WLAN_PRE80211 is not set | 630 | # CONFIG_HOSTAP is not set |
585 | # CONFIG_WLAN_80211 is not set | ||
586 | 631 | ||
587 | # | 632 | # |
588 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 633 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -595,6 +640,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
595 | # CONFIG_NETCONSOLE is not set | 640 | # CONFIG_NETCONSOLE is not set |
596 | # CONFIG_NETPOLL is not set | 641 | # CONFIG_NETPOLL is not set |
597 | # CONFIG_NET_POLL_CONTROLLER is not set | 642 | # CONFIG_NET_POLL_CONTROLLER is not set |
643 | # CONFIG_VMXNET3 is not set | ||
598 | # CONFIG_ISDN is not set | 644 | # CONFIG_ISDN is not set |
599 | # CONFIG_PHONE is not set | 645 | # CONFIG_PHONE is not set |
600 | 646 | ||
@@ -640,6 +686,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
640 | # CONFIG_SERIAL_JSM is not set | 686 | # CONFIG_SERIAL_JSM is not set |
641 | CONFIG_SERIAL_OF_PLATFORM=y | 687 | CONFIG_SERIAL_OF_PLATFORM=y |
642 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 688 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
689 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
643 | CONFIG_UNIX98_PTYS=y | 690 | CONFIG_UNIX98_PTYS=y |
644 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 691 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
645 | CONFIG_LEGACY_PTYS=y | 692 | CONFIG_LEGACY_PTYS=y |
@@ -656,6 +703,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
656 | CONFIG_DEVPORT=y | 703 | CONFIG_DEVPORT=y |
657 | CONFIG_I2C=y | 704 | CONFIG_I2C=y |
658 | CONFIG_I2C_BOARDINFO=y | 705 | CONFIG_I2C_BOARDINFO=y |
706 | CONFIG_I2C_COMPAT=y | ||
659 | CONFIG_I2C_CHARDEV=y | 707 | CONFIG_I2C_CHARDEV=y |
660 | CONFIG_I2C_HELPER_AUTO=y | 708 | CONFIG_I2C_HELPER_AUTO=y |
661 | 709 | ||
@@ -696,11 +744,6 @@ CONFIG_I2C_IBM_IIC=y | |||
696 | # CONFIG_I2C_TAOS_EVM is not set | 744 | # CONFIG_I2C_TAOS_EVM is not set |
697 | 745 | ||
698 | # | 746 | # |
699 | # Graphics adapter I2C/DDC channel drivers | ||
700 | # | ||
701 | # CONFIG_I2C_VOODOO3 is not set | ||
702 | |||
703 | # | ||
704 | # Other I2C/SMBus bus drivers | 747 | # Other I2C/SMBus bus drivers |
705 | # | 748 | # |
706 | # CONFIG_I2C_PCA_PLATFORM is not set | 749 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -709,10 +752,6 @@ CONFIG_I2C_IBM_IIC=y | |||
709 | # | 752 | # |
710 | # Miscellaneous I2C Chip support | 753 | # Miscellaneous I2C Chip support |
711 | # | 754 | # |
712 | # CONFIG_DS1682 is not set | ||
713 | # CONFIG_SENSORS_PCF8574 is not set | ||
714 | # CONFIG_PCF8575 is not set | ||
715 | # CONFIG_SENSORS_PCA9539 is not set | ||
716 | # CONFIG_SENSORS_TSL2550 is not set | 755 | # CONFIG_SENSORS_TSL2550 is not set |
717 | # CONFIG_I2C_DEBUG_CORE is not set | 756 | # CONFIG_I2C_DEBUG_CORE is not set |
718 | # CONFIG_I2C_DEBUG_ALGO is not set | 757 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -730,6 +769,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
730 | # CONFIG_POWER_SUPPLY is not set | 769 | # CONFIG_POWER_SUPPLY is not set |
731 | CONFIG_HWMON=y | 770 | CONFIG_HWMON=y |
732 | # CONFIG_HWMON_VID is not set | 771 | # CONFIG_HWMON_VID is not set |
772 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
773 | |||
774 | # | ||
775 | # Native drivers | ||
776 | # | ||
733 | CONFIG_SENSORS_AD7414=y | 777 | CONFIG_SENSORS_AD7414=y |
734 | # CONFIG_SENSORS_AD7418 is not set | 778 | # CONFIG_SENSORS_AD7418 is not set |
735 | # CONFIG_SENSORS_ADM1021 is not set | 779 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -753,6 +797,7 @@ CONFIG_SENSORS_AD7414=y | |||
753 | # CONFIG_SENSORS_GL520SM is not set | 797 | # CONFIG_SENSORS_GL520SM is not set |
754 | # CONFIG_SENSORS_IT87 is not set | 798 | # CONFIG_SENSORS_IT87 is not set |
755 | # CONFIG_SENSORS_LM63 is not set | 799 | # CONFIG_SENSORS_LM63 is not set |
800 | # CONFIG_SENSORS_LM73 is not set | ||
756 | # CONFIG_SENSORS_LM75 is not set | 801 | # CONFIG_SENSORS_LM75 is not set |
757 | # CONFIG_SENSORS_LM77 is not set | 802 | # CONFIG_SENSORS_LM77 is not set |
758 | # CONFIG_SENSORS_LM78 is not set | 803 | # CONFIG_SENSORS_LM78 is not set |
@@ -779,6 +824,7 @@ CONFIG_SENSORS_AD7414=y | |||
779 | # CONFIG_SENSORS_ADS7828 is not set | 824 | # CONFIG_SENSORS_ADS7828 is not set |
780 | # CONFIG_SENSORS_THMC50 is not set | 825 | # CONFIG_SENSORS_THMC50 is not set |
781 | # CONFIG_SENSORS_TMP401 is not set | 826 | # CONFIG_SENSORS_TMP401 is not set |
827 | # CONFIG_SENSORS_TMP421 is not set | ||
782 | # CONFIG_SENSORS_VIA686A is not set | 828 | # CONFIG_SENSORS_VIA686A is not set |
783 | # CONFIG_SENSORS_VT1211 is not set | 829 | # CONFIG_SENSORS_VT1211 is not set |
784 | # CONFIG_SENSORS_VT8231 is not set | 830 | # CONFIG_SENSORS_VT8231 is not set |
@@ -790,9 +836,7 @@ CONFIG_SENSORS_AD7414=y | |||
790 | # CONFIG_SENSORS_W83L786NG is not set | 836 | # CONFIG_SENSORS_W83L786NG is not set |
791 | # CONFIG_SENSORS_W83627HF is not set | 837 | # CONFIG_SENSORS_W83627HF is not set |
792 | # CONFIG_SENSORS_W83627EHF is not set | 838 | # CONFIG_SENSORS_W83627EHF is not set |
793 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
794 | # CONFIG_THERMAL is not set | 839 | # CONFIG_THERMAL is not set |
795 | # CONFIG_THERMAL_HWMON is not set | ||
796 | # CONFIG_WATCHDOG is not set | 840 | # CONFIG_WATCHDOG is not set |
797 | CONFIG_SSB_POSSIBLE=y | 841 | CONFIG_SSB_POSSIBLE=y |
798 | 842 | ||
@@ -810,10 +854,13 @@ CONFIG_SSB_POSSIBLE=y | |||
810 | # CONFIG_TWL4030_CORE is not set | 854 | # CONFIG_TWL4030_CORE is not set |
811 | # CONFIG_MFD_TMIO is not set | 855 | # CONFIG_MFD_TMIO is not set |
812 | # CONFIG_PMIC_DA903X is not set | 856 | # CONFIG_PMIC_DA903X is not set |
857 | # CONFIG_PMIC_ADP5520 is not set | ||
813 | # CONFIG_MFD_WM8400 is not set | 858 | # CONFIG_MFD_WM8400 is not set |
859 | # CONFIG_MFD_WM831X is not set | ||
814 | # CONFIG_MFD_WM8350_I2C is not set | 860 | # CONFIG_MFD_WM8350_I2C is not set |
815 | # CONFIG_MFD_PCF50633 is not set | 861 | # CONFIG_MFD_PCF50633 is not set |
816 | # CONFIG_AB3100_CORE is not set | 862 | # CONFIG_AB3100_CORE is not set |
863 | # CONFIG_MFD_88PM8607 is not set | ||
817 | # CONFIG_REGULATOR is not set | 864 | # CONFIG_REGULATOR is not set |
818 | # CONFIG_MEDIA_SUPPORT is not set | 865 | # CONFIG_MEDIA_SUPPORT is not set |
819 | 866 | ||
@@ -821,6 +868,7 @@ CONFIG_SSB_POSSIBLE=y | |||
821 | # Graphics support | 868 | # Graphics support |
822 | # | 869 | # |
823 | # CONFIG_AGP is not set | 870 | # CONFIG_AGP is not set |
871 | CONFIG_VGA_ARB=y | ||
824 | # CONFIG_DRM is not set | 872 | # CONFIG_DRM is not set |
825 | # CONFIG_VGASTATE is not set | 873 | # CONFIG_VGASTATE is not set |
826 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 874 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -858,6 +906,7 @@ CONFIG_EXT2_FS=y | |||
858 | # CONFIG_EXT2_FS_XIP is not set | 906 | # CONFIG_EXT2_FS_XIP is not set |
859 | # CONFIG_EXT3_FS is not set | 907 | # CONFIG_EXT3_FS is not set |
860 | # CONFIG_EXT4_FS is not set | 908 | # CONFIG_EXT4_FS is not set |
909 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
861 | # CONFIG_REISERFS_FS is not set | 910 | # CONFIG_REISERFS_FS is not set |
862 | # CONFIG_JFS_FS is not set | 911 | # CONFIG_JFS_FS is not set |
863 | # CONFIG_FS_POSIX_ACL is not set | 912 | # CONFIG_FS_POSIX_ACL is not set |
@@ -865,6 +914,7 @@ CONFIG_EXT2_FS=y | |||
865 | # CONFIG_GFS2_FS is not set | 914 | # CONFIG_GFS2_FS is not set |
866 | # CONFIG_OCFS2_FS is not set | 915 | # CONFIG_OCFS2_FS is not set |
867 | # CONFIG_BTRFS_FS is not set | 916 | # CONFIG_BTRFS_FS is not set |
917 | # CONFIG_NILFS2_FS is not set | ||
868 | CONFIG_FILE_LOCKING=y | 918 | CONFIG_FILE_LOCKING=y |
869 | CONFIG_FSNOTIFY=y | 919 | CONFIG_FSNOTIFY=y |
870 | CONFIG_DNOTIFY=y | 920 | CONFIG_DNOTIFY=y |
@@ -934,7 +984,6 @@ CONFIG_CRAMFS=y | |||
934 | # CONFIG_ROMFS_FS is not set | 984 | # CONFIG_ROMFS_FS is not set |
935 | # CONFIG_SYSV_FS is not set | 985 | # CONFIG_SYSV_FS is not set |
936 | # CONFIG_UFS_FS is not set | 986 | # CONFIG_UFS_FS is not set |
937 | # CONFIG_NILFS2_FS is not set | ||
938 | CONFIG_NETWORK_FILESYSTEMS=y | 987 | CONFIG_NETWORK_FILESYSTEMS=y |
939 | CONFIG_NFS_FS=y | 988 | CONFIG_NFS_FS=y |
940 | CONFIG_NFS_V3=y | 989 | CONFIG_NFS_V3=y |
@@ -993,6 +1042,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
993 | CONFIG_ENABLE_MUST_CHECK=y | 1042 | CONFIG_ENABLE_MUST_CHECK=y |
994 | CONFIG_FRAME_WARN=1024 | 1043 | CONFIG_FRAME_WARN=1024 |
995 | CONFIG_MAGIC_SYSRQ=y | 1044 | CONFIG_MAGIC_SYSRQ=y |
1045 | # CONFIG_STRIP_ASM_SYMS is not set | ||
996 | # CONFIG_UNUSED_SYMBOLS is not set | 1046 | # CONFIG_UNUSED_SYMBOLS is not set |
997 | CONFIG_DEBUG_FS=y | 1047 | CONFIG_DEBUG_FS=y |
998 | # CONFIG_HEADERS_CHECK is not set | 1048 | # CONFIG_HEADERS_CHECK is not set |
@@ -1010,6 +1060,7 @@ CONFIG_SCHED_DEBUG=y | |||
1010 | # CONFIG_DEBUG_OBJECTS is not set | 1060 | # CONFIG_DEBUG_OBJECTS is not set |
1011 | # CONFIG_SLUB_DEBUG_ON is not set | 1061 | # CONFIG_SLUB_DEBUG_ON is not set |
1012 | # CONFIG_SLUB_STATS is not set | 1062 | # CONFIG_SLUB_STATS is not set |
1063 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1013 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1064 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1014 | # CONFIG_RT_MUTEX_TESTER is not set | 1065 | # CONFIG_RT_MUTEX_TESTER is not set |
1015 | # CONFIG_DEBUG_SPINLOCK is not set | 1066 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1028,10 +1079,12 @@ CONFIG_SCHED_DEBUG=y | |||
1028 | # CONFIG_DEBUG_LIST is not set | 1079 | # CONFIG_DEBUG_LIST is not set |
1029 | # CONFIG_DEBUG_SG is not set | 1080 | # CONFIG_DEBUG_SG is not set |
1030 | # CONFIG_DEBUG_NOTIFIERS is not set | 1081 | # CONFIG_DEBUG_NOTIFIERS is not set |
1082 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1031 | # CONFIG_RCU_TORTURE_TEST is not set | 1083 | # CONFIG_RCU_TORTURE_TEST is not set |
1032 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1084 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1033 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1085 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1034 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1086 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1087 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1035 | # CONFIG_FAULT_INJECTION is not set | 1088 | # CONFIG_FAULT_INJECTION is not set |
1036 | # CONFIG_LATENCYTOP is not set | 1089 | # CONFIG_LATENCYTOP is not set |
1037 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1090 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -1055,10 +1108,10 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1055 | # CONFIG_WORKQUEUE_TRACER is not set | 1108 | # CONFIG_WORKQUEUE_TRACER is not set |
1056 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1109 | # CONFIG_BLK_DEV_IO_TRACE is not set |
1057 | # CONFIG_DYNAMIC_DEBUG is not set | 1110 | # CONFIG_DYNAMIC_DEBUG is not set |
1111 | # CONFIG_DMA_API_DEBUG is not set | ||
1058 | # CONFIG_SAMPLES is not set | 1112 | # CONFIG_SAMPLES is not set |
1059 | CONFIG_HAVE_ARCH_KGDB=y | 1113 | CONFIG_HAVE_ARCH_KGDB=y |
1060 | # CONFIG_KGDB is not set | 1114 | # CONFIG_KGDB is not set |
1061 | # CONFIG_KMEMCHECK is not set | ||
1062 | # CONFIG_PPC_DISABLE_WERROR is not set | 1115 | # CONFIG_PPC_DISABLE_WERROR is not set |
1063 | CONFIG_PPC_WERROR=y | 1116 | CONFIG_PPC_WERROR=y |
1064 | CONFIG_PRINT_STACK_DEPTH=64 | 1117 | CONFIG_PRINT_STACK_DEPTH=64 |
@@ -1080,7 +1133,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1080 | # CONFIG_KEYS is not set | 1133 | # CONFIG_KEYS is not set |
1081 | # CONFIG_SECURITY is not set | 1134 | # CONFIG_SECURITY is not set |
1082 | # CONFIG_SECURITYFS is not set | 1135 | # CONFIG_SECURITYFS is not set |
1083 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1136 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1137 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1138 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1139 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1140 | CONFIG_DEFAULT_SECURITY="" | ||
1084 | # CONFIG_CRYPTO is not set | 1141 | # CONFIG_CRYPTO is not set |
1085 | # CONFIG_PPC_CLOCK is not set | 1142 | # CONFIG_PPC_CLOCK is not set |
1086 | # CONFIG_VIRTUALIZATION is not set | 1143 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/bamboo_defconfig b/arch/powerpc/configs/44x/bamboo_defconfig index e57f1e4c1795..788faac6c27a 100644 --- a/arch/powerpc/configs/44x/bamboo_defconfig +++ b/arch/powerpc/configs/44x/bamboo_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:33 2009 | 4 | # Mon Jan 4 14:09:03 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 48 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
45 | CONFIG_PPC=y | 49 | CONFIG_PPC=y |
@@ -53,11 +57,15 @@ CONFIG_PPC_UDBG_16550=y | |||
53 | # CONFIG_GENERIC_TBSYNC is not set | 57 | # CONFIG_GENERIC_TBSYNC is not set |
54 | CONFIG_AUDIT_ARCH=y | 58 | CONFIG_AUDIT_ARCH=y |
55 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | ||
56 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
58 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
60 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 67 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
68 | CONFIG_CONSTRUCTORS=y | ||
61 | 69 | ||
62 | # | 70 | # |
63 | # General setup | 71 | # General setup |
@@ -71,9 +79,21 @@ CONFIG_SWAP=y | |||
71 | CONFIG_SYSVIPC=y | 79 | CONFIG_SYSVIPC=y |
72 | CONFIG_SYSVIPC_SYSCTL=y | 80 | CONFIG_SYSVIPC_SYSCTL=y |
73 | CONFIG_POSIX_MQUEUE=y | 81 | CONFIG_POSIX_MQUEUE=y |
82 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
74 | # CONFIG_BSD_PROCESS_ACCT is not set | 83 | # CONFIG_BSD_PROCESS_ACCT is not set |
75 | # CONFIG_TASKSTATS is not set | 84 | # CONFIG_TASKSTATS is not set |
76 | # CONFIG_AUDIT is not set | 85 | # CONFIG_AUDIT is not set |
86 | |||
87 | # | ||
88 | # RCU Subsystem | ||
89 | # | ||
90 | CONFIG_TREE_RCU=y | ||
91 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
92 | # CONFIG_TINY_RCU is not set | ||
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
96 | # CONFIG_TREE_RCU_TRACE is not set | ||
77 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
78 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
79 | CONFIG_GROUP_SCHED=y | 99 | CONFIG_GROUP_SCHED=y |
@@ -88,8 +108,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
88 | # CONFIG_NAMESPACES is not set | 108 | # CONFIG_NAMESPACES is not set |
89 | CONFIG_BLK_DEV_INITRD=y | 109 | CONFIG_BLK_DEV_INITRD=y |
90 | CONFIG_INITRAMFS_SOURCE="" | 110 | CONFIG_INITRAMFS_SOURCE="" |
111 | CONFIG_RD_GZIP=y | ||
112 | # CONFIG_RD_BZIP2 is not set | ||
113 | # CONFIG_RD_LZMA is not set | ||
91 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 114 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
92 | CONFIG_SYSCTL=y | 115 | CONFIG_SYSCTL=y |
116 | CONFIG_ANON_INODES=y | ||
93 | CONFIG_EMBEDDED=y | 117 | CONFIG_EMBEDDED=y |
94 | CONFIG_SYSCTL_SYSCALL=y | 118 | CONFIG_SYSCTL_SYSCALL=y |
95 | CONFIG_KALLSYMS=y | 119 | CONFIG_KALLSYMS=y |
@@ -99,19 +123,25 @@ CONFIG_HOTPLUG=y | |||
99 | CONFIG_PRINTK=y | 123 | CONFIG_PRINTK=y |
100 | CONFIG_BUG=y | 124 | CONFIG_BUG=y |
101 | CONFIG_ELF_CORE=y | 125 | CONFIG_ELF_CORE=y |
102 | CONFIG_COMPAT_BRK=y | ||
103 | CONFIG_BASE_FULL=y | 126 | CONFIG_BASE_FULL=y |
104 | CONFIG_FUTEX=y | 127 | CONFIG_FUTEX=y |
105 | CONFIG_ANON_INODES=y | ||
106 | CONFIG_EPOLL=y | 128 | CONFIG_EPOLL=y |
107 | CONFIG_SIGNALFD=y | 129 | CONFIG_SIGNALFD=y |
108 | CONFIG_TIMERFD=y | 130 | CONFIG_TIMERFD=y |
109 | CONFIG_EVENTFD=y | 131 | CONFIG_EVENTFD=y |
110 | CONFIG_SHMEM=y | 132 | CONFIG_SHMEM=y |
111 | CONFIG_AIO=y | 133 | CONFIG_AIO=y |
134 | CONFIG_HAVE_PERF_EVENTS=y | ||
135 | |||
136 | # | ||
137 | # Kernel Performance Events And Counters | ||
138 | # | ||
139 | # CONFIG_PERF_EVENTS is not set | ||
140 | # CONFIG_PERF_COUNTERS is not set | ||
112 | CONFIG_VM_EVENT_COUNTERS=y | 141 | CONFIG_VM_EVENT_COUNTERS=y |
113 | CONFIG_PCI_QUIRKS=y | 142 | CONFIG_PCI_QUIRKS=y |
114 | CONFIG_SLUB_DEBUG=y | 143 | CONFIG_SLUB_DEBUG=y |
144 | CONFIG_COMPAT_BRK=y | ||
115 | # CONFIG_SLAB is not set | 145 | # CONFIG_SLAB is not set |
116 | CONFIG_SLUB=y | 146 | CONFIG_SLUB=y |
117 | # CONFIG_SLOB is not set | 147 | # CONFIG_SLOB is not set |
@@ -123,6 +153,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
123 | CONFIG_HAVE_KPROBES=y | 153 | CONFIG_HAVE_KPROBES=y |
124 | CONFIG_HAVE_KRETPROBES=y | 154 | CONFIG_HAVE_KRETPROBES=y |
125 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 155 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
156 | CONFIG_HAVE_DMA_ATTRS=y | ||
157 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
158 | |||
159 | # | ||
160 | # GCOV-based kernel profiling | ||
161 | # | ||
162 | # CONFIG_GCOV_KERNEL is not set | ||
163 | # CONFIG_SLOW_WORK is not set | ||
126 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 164 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
127 | CONFIG_SLABINFO=y | 165 | CONFIG_SLABINFO=y |
128 | CONFIG_RT_MUTEXES=y | 166 | CONFIG_RT_MUTEXES=y |
@@ -134,8 +172,7 @@ CONFIG_MODULE_UNLOAD=y | |||
134 | # CONFIG_MODVERSIONS is not set | 172 | # CONFIG_MODVERSIONS is not set |
135 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 173 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
136 | CONFIG_BLOCK=y | 174 | CONFIG_BLOCK=y |
137 | CONFIG_LBD=y | 175 | CONFIG_LBDAF=y |
138 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
139 | # CONFIG_BLK_DEV_BSG is not set | 176 | # CONFIG_BLK_DEV_BSG is not set |
140 | # CONFIG_BLK_DEV_INTEGRITY is not set | 177 | # CONFIG_BLK_DEV_INTEGRITY is not set |
141 | 178 | ||
@@ -143,19 +180,41 @@ CONFIG_LBD=y | |||
143 | # IO Schedulers | 180 | # IO Schedulers |
144 | # | 181 | # |
145 | CONFIG_IOSCHED_NOOP=y | 182 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 183 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 184 | CONFIG_IOSCHED_CFQ=y |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 185 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 186 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 187 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 188 | CONFIG_DEFAULT_IOSCHED="cfq" |
154 | CONFIG_CLASSIC_RCU=y | 189 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
155 | # CONFIG_TREE_RCU is not set | 190 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
156 | # CONFIG_PREEMPT_RCU is not set | 191 | # CONFIG_INLINE_SPIN_LOCK is not set |
157 | # CONFIG_TREE_RCU_TRACE is not set | 192 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
158 | # CONFIG_PREEMPT_RCU_TRACE is not set | 193 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
194 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
195 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
197 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
198 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
204 | CONFIG_INLINE_READ_UNLOCK=y | ||
205 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
206 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
207 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
208 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
213 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
215 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
216 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
217 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | # CONFIG_FREEZER is not set | 218 | # CONFIG_FREEZER is not set |
160 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 219 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
161 | 220 | ||
@@ -176,6 +235,8 @@ CONFIG_BAMBOO=y | |||
176 | # CONFIG_ARCHES is not set | 235 | # CONFIG_ARCHES is not set |
177 | # CONFIG_CANYONLANDS is not set | 236 | # CONFIG_CANYONLANDS is not set |
178 | # CONFIG_GLACIER is not set | 237 | # CONFIG_GLACIER is not set |
238 | # CONFIG_REDWOOD is not set | ||
239 | # CONFIG_EIGER is not set | ||
179 | # CONFIG_YOSEMITE is not set | 240 | # CONFIG_YOSEMITE is not set |
180 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 241 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
181 | CONFIG_PPC44x_SIMPLE=y | 242 | CONFIG_PPC44x_SIMPLE=y |
@@ -218,10 +279,12 @@ CONFIG_BINFMT_ELF=y | |||
218 | # CONFIG_BINFMT_MISC is not set | 279 | # CONFIG_BINFMT_MISC is not set |
219 | # CONFIG_MATH_EMULATION is not set | 280 | # CONFIG_MATH_EMULATION is not set |
220 | # CONFIG_IOMMU_HELPER is not set | 281 | # CONFIG_IOMMU_HELPER is not set |
221 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 282 | # CONFIG_SWIOTLB is not set |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
223 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
224 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
287 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
225 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
226 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
227 | CONFIG_SELECT_MEMORY_MODEL=y | 290 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -237,10 +300,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
237 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
238 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
239 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
240 | CONFIG_UNEVICTABLE_LRU=y | 303 | # CONFIG_KSM is not set |
304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
305 | CONFIG_STDBINUTILS=y | ||
241 | CONFIG_PPC_4K_PAGES=y | 306 | CONFIG_PPC_4K_PAGES=y |
242 | # CONFIG_PPC_16K_PAGES is not set | 307 | # CONFIG_PPC_16K_PAGES is not set |
243 | # CONFIG_PPC_64K_PAGES is not set | 308 | # CONFIG_PPC_64K_PAGES is not set |
309 | # CONFIG_PPC_256K_PAGES is not set | ||
244 | CONFIG_FORCE_MAX_ZONEORDER=11 | 310 | CONFIG_FORCE_MAX_ZONEORDER=11 |
245 | CONFIG_PROC_DEVICETREE=y | 311 | CONFIG_PROC_DEVICETREE=y |
246 | CONFIG_CMDLINE_BOOL=y | 312 | CONFIG_CMDLINE_BOOL=y |
@@ -265,6 +331,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
265 | # CONFIG_PCI_LEGACY is not set | 331 | # CONFIG_PCI_LEGACY is not set |
266 | # CONFIG_PCI_DEBUG is not set | 332 | # CONFIG_PCI_DEBUG is not set |
267 | # CONFIG_PCI_STUB is not set | 333 | # CONFIG_PCI_STUB is not set |
334 | # CONFIG_PCI_IOV is not set | ||
268 | # CONFIG_PCCARD is not set | 335 | # CONFIG_PCCARD is not set |
269 | # CONFIG_HOTPLUG_PCI is not set | 336 | # CONFIG_HOTPLUG_PCI is not set |
270 | # CONFIG_HAS_RAPIDIO is not set | 337 | # CONFIG_HAS_RAPIDIO is not set |
@@ -282,14 +349,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
282 | CONFIG_KERNEL_START=0xc0000000 | 349 | CONFIG_KERNEL_START=0xc0000000 |
283 | CONFIG_PHYSICAL_START=0x00000000 | 350 | CONFIG_PHYSICAL_START=0x00000000 |
284 | CONFIG_TASK_SIZE=0xc0000000 | 351 | CONFIG_TASK_SIZE=0xc0000000 |
285 | CONFIG_CONSISTENT_START=0xff100000 | ||
286 | CONFIG_CONSISTENT_SIZE=0x00200000 | 352 | CONFIG_CONSISTENT_SIZE=0x00200000 |
287 | CONFIG_NET=y | 353 | CONFIG_NET=y |
288 | 354 | ||
289 | # | 355 | # |
290 | # Networking options | 356 | # Networking options |
291 | # | 357 | # |
292 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
293 | CONFIG_PACKET=y | 358 | CONFIG_PACKET=y |
294 | # CONFIG_PACKET_MMAP is not set | 359 | # CONFIG_PACKET_MMAP is not set |
295 | CONFIG_UNIX=y | 360 | CONFIG_UNIX=y |
@@ -326,6 +391,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
326 | # CONFIG_NETFILTER is not set | 391 | # CONFIG_NETFILTER is not set |
327 | # CONFIG_IP_DCCP is not set | 392 | # CONFIG_IP_DCCP is not set |
328 | # CONFIG_IP_SCTP is not set | 393 | # CONFIG_IP_SCTP is not set |
394 | # CONFIG_RDS is not set | ||
329 | # CONFIG_TIPC is not set | 395 | # CONFIG_TIPC is not set |
330 | # CONFIG_ATM is not set | 396 | # CONFIG_ATM is not set |
331 | # CONFIG_BRIDGE is not set | 397 | # CONFIG_BRIDGE is not set |
@@ -339,6 +405,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
339 | # CONFIG_LAPB is not set | 405 | # CONFIG_LAPB is not set |
340 | # CONFIG_ECONET is not set | 406 | # CONFIG_ECONET is not set |
341 | # CONFIG_WAN_ROUTER is not set | 407 | # CONFIG_WAN_ROUTER is not set |
408 | # CONFIG_PHONET is not set | ||
409 | # CONFIG_IEEE802154 is not set | ||
342 | # CONFIG_NET_SCHED is not set | 410 | # CONFIG_NET_SCHED is not set |
343 | # CONFIG_DCB is not set | 411 | # CONFIG_DCB is not set |
344 | 412 | ||
@@ -351,8 +419,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
351 | # CONFIG_IRDA is not set | 419 | # CONFIG_IRDA is not set |
352 | # CONFIG_BT is not set | 420 | # CONFIG_BT is not set |
353 | # CONFIG_AF_RXRPC is not set | 421 | # CONFIG_AF_RXRPC is not set |
354 | # CONFIG_PHONET is not set | 422 | CONFIG_WIRELESS=y |
355 | # CONFIG_WIRELESS is not set | 423 | # CONFIG_CFG80211 is not set |
424 | # CONFIG_LIB80211 is not set | ||
425 | |||
426 | # | ||
427 | # CFG80211 needs to be enabled for MAC80211 | ||
428 | # | ||
356 | # CONFIG_WIMAX is not set | 429 | # CONFIG_WIMAX is not set |
357 | # CONFIG_RFKILL is not set | 430 | # CONFIG_RFKILL is not set |
358 | # CONFIG_NET_9P is not set | 431 | # CONFIG_NET_9P is not set |
@@ -365,6 +438,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
365 | # Generic Driver Options | 438 | # Generic Driver Options |
366 | # | 439 | # |
367 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 440 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
441 | # CONFIG_DEVTMPFS is not set | ||
368 | CONFIG_STANDALONE=y | 442 | CONFIG_STANDALONE=y |
369 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 443 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
370 | CONFIG_FW_LOADER=y | 444 | CONFIG_FW_LOADER=y |
@@ -386,6 +460,7 @@ CONFIG_BLK_DEV=y | |||
386 | # CONFIG_BLK_DEV_UMEM is not set | 460 | # CONFIG_BLK_DEV_UMEM is not set |
387 | # CONFIG_BLK_DEV_COW_COMMON is not set | 461 | # CONFIG_BLK_DEV_COW_COMMON is not set |
388 | # CONFIG_BLK_DEV_LOOP is not set | 462 | # CONFIG_BLK_DEV_LOOP is not set |
463 | # CONFIG_BLK_DEV_DRBD is not set | ||
389 | # CONFIG_BLK_DEV_NBD is not set | 464 | # CONFIG_BLK_DEV_NBD is not set |
390 | # CONFIG_BLK_DEV_SX8 is not set | 465 | # CONFIG_BLK_DEV_SX8 is not set |
391 | CONFIG_BLK_DEV_RAM=y | 466 | CONFIG_BLK_DEV_RAM=y |
@@ -398,12 +473,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
398 | # CONFIG_BLK_DEV_HD is not set | 473 | # CONFIG_BLK_DEV_HD is not set |
399 | CONFIG_MISC_DEVICES=y | 474 | CONFIG_MISC_DEVICES=y |
400 | # CONFIG_PHANTOM is not set | 475 | # CONFIG_PHANTOM is not set |
401 | # CONFIG_EEPROM_93CX6 is not set | ||
402 | # CONFIG_SGI_IOC4 is not set | 476 | # CONFIG_SGI_IOC4 is not set |
403 | # CONFIG_TIFM_CORE is not set | 477 | # CONFIG_TIFM_CORE is not set |
404 | # CONFIG_ENCLOSURE_SERVICES is not set | 478 | # CONFIG_ENCLOSURE_SERVICES is not set |
405 | # CONFIG_HP_ILO is not set | 479 | # CONFIG_HP_ILO is not set |
406 | # CONFIG_C2PORT is not set | 480 | # CONFIG_C2PORT is not set |
481 | |||
482 | # | ||
483 | # EEPROM support | ||
484 | # | ||
485 | # CONFIG_EEPROM_93CX6 is not set | ||
486 | # CONFIG_CB710_CORE is not set | ||
407 | CONFIG_HAVE_IDE=y | 487 | CONFIG_HAVE_IDE=y |
408 | # CONFIG_IDE is not set | 488 | # CONFIG_IDE is not set |
409 | 489 | ||
@@ -423,7 +503,11 @@ CONFIG_HAVE_IDE=y | |||
423 | # | 503 | # |
424 | 504 | ||
425 | # | 505 | # |
426 | # Enable only one of the two stacks, unless you know what you are doing | 506 | # You can enable one or both FireWire driver stacks. |
507 | # | ||
508 | |||
509 | # | ||
510 | # See the help texts for more information. | ||
427 | # | 511 | # |
428 | # CONFIG_FIREWIRE is not set | 512 | # CONFIG_FIREWIRE is not set |
429 | # CONFIG_IEEE1394 is not set | 513 | # CONFIG_IEEE1394 is not set |
@@ -444,6 +528,8 @@ CONFIG_NET_ETHERNET=y | |||
444 | # CONFIG_SUNGEM is not set | 528 | # CONFIG_SUNGEM is not set |
445 | # CONFIG_CASSINI is not set | 529 | # CONFIG_CASSINI is not set |
446 | # CONFIG_NET_VENDOR_3COM is not set | 530 | # CONFIG_NET_VENDOR_3COM is not set |
531 | # CONFIG_ETHOC is not set | ||
532 | # CONFIG_DNET is not set | ||
447 | # CONFIG_NET_TULIP is not set | 533 | # CONFIG_NET_TULIP is not set |
448 | # CONFIG_HP100 is not set | 534 | # CONFIG_HP100 is not set |
449 | CONFIG_IBM_NEW_EMAC=y | 535 | CONFIG_IBM_NEW_EMAC=y |
@@ -462,7 +548,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
462 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 548 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
463 | # CONFIG_NET_PCI is not set | 549 | # CONFIG_NET_PCI is not set |
464 | # CONFIG_B44 is not set | 550 | # CONFIG_B44 is not set |
551 | # CONFIG_KS8842 is not set | ||
552 | # CONFIG_KS8851_MLL is not set | ||
465 | # CONFIG_ATL2 is not set | 553 | # CONFIG_ATL2 is not set |
554 | # CONFIG_XILINX_EMACLITE is not set | ||
466 | CONFIG_NETDEV_1000=y | 555 | CONFIG_NETDEV_1000=y |
467 | # CONFIG_ACENIC is not set | 556 | # CONFIG_ACENIC is not set |
468 | # CONFIG_DL2K is not set | 557 | # CONFIG_DL2K is not set |
@@ -470,6 +559,7 @@ CONFIG_NETDEV_1000=y | |||
470 | # CONFIG_E1000E is not set | 559 | # CONFIG_E1000E is not set |
471 | # CONFIG_IP1000 is not set | 560 | # CONFIG_IP1000 is not set |
472 | # CONFIG_IGB is not set | 561 | # CONFIG_IGB is not set |
562 | # CONFIG_IGBVF is not set | ||
473 | # CONFIG_NS83820 is not set | 563 | # CONFIG_NS83820 is not set |
474 | # CONFIG_HAMACHI is not set | 564 | # CONFIG_HAMACHI is not set |
475 | # CONFIG_YELLOWFIN is not set | 565 | # CONFIG_YELLOWFIN is not set |
@@ -480,9 +570,13 @@ CONFIG_NETDEV_1000=y | |||
480 | # CONFIG_VIA_VELOCITY is not set | 570 | # CONFIG_VIA_VELOCITY is not set |
481 | # CONFIG_TIGON3 is not set | 571 | # CONFIG_TIGON3 is not set |
482 | # CONFIG_BNX2 is not set | 572 | # CONFIG_BNX2 is not set |
573 | # CONFIG_CNIC is not set | ||
574 | # CONFIG_MV643XX_ETH is not set | ||
575 | # CONFIG_XILINX_LL_TEMAC is not set | ||
483 | # CONFIG_QLA3XXX is not set | 576 | # CONFIG_QLA3XXX is not set |
484 | # CONFIG_ATL1 is not set | 577 | # CONFIG_ATL1 is not set |
485 | # CONFIG_ATL1E is not set | 578 | # CONFIG_ATL1E is not set |
579 | # CONFIG_ATL1C is not set | ||
486 | # CONFIG_JME is not set | 580 | # CONFIG_JME is not set |
487 | CONFIG_NETDEV_10000=y | 581 | CONFIG_NETDEV_10000=y |
488 | # CONFIG_CHELSIO_T1 is not set | 582 | # CONFIG_CHELSIO_T1 is not set |
@@ -492,6 +586,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
492 | # CONFIG_IXGBE is not set | 586 | # CONFIG_IXGBE is not set |
493 | # CONFIG_IXGB is not set | 587 | # CONFIG_IXGB is not set |
494 | # CONFIG_S2IO is not set | 588 | # CONFIG_S2IO is not set |
589 | # CONFIG_VXGE is not set | ||
495 | # CONFIG_MYRI10GE is not set | 590 | # CONFIG_MYRI10GE is not set |
496 | # CONFIG_NETXEN_NIC is not set | 591 | # CONFIG_NETXEN_NIC is not set |
497 | # CONFIG_NIU is not set | 592 | # CONFIG_NIU is not set |
@@ -501,14 +596,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
501 | # CONFIG_BNX2X is not set | 596 | # CONFIG_BNX2X is not set |
502 | # CONFIG_QLGE is not set | 597 | # CONFIG_QLGE is not set |
503 | # CONFIG_SFC is not set | 598 | # CONFIG_SFC is not set |
599 | # CONFIG_BE2NET is not set | ||
504 | # CONFIG_TR is not set | 600 | # CONFIG_TR is not set |
505 | 601 | CONFIG_WLAN=y | |
506 | # | 602 | # CONFIG_AIRO is not set |
507 | # Wireless LAN | 603 | # CONFIG_ATMEL is not set |
508 | # | 604 | # CONFIG_PRISM54 is not set |
509 | # CONFIG_WLAN_PRE80211 is not set | 605 | # CONFIG_HOSTAP is not set |
510 | # CONFIG_WLAN_80211 is not set | ||
511 | # CONFIG_IWLWIFI_LEDS is not set | ||
512 | 606 | ||
513 | # | 607 | # |
514 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 608 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -521,6 +615,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
521 | # CONFIG_NETCONSOLE is not set | 615 | # CONFIG_NETCONSOLE is not set |
522 | # CONFIG_NETPOLL is not set | 616 | # CONFIG_NETPOLL is not set |
523 | # CONFIG_NET_POLL_CONTROLLER is not set | 617 | # CONFIG_NET_POLL_CONTROLLER is not set |
618 | # CONFIG_VMXNET3 is not set | ||
524 | # CONFIG_ISDN is not set | 619 | # CONFIG_ISDN is not set |
525 | # CONFIG_PHONE is not set | 620 | # CONFIG_PHONE is not set |
526 | 621 | ||
@@ -566,6 +661,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
566 | # CONFIG_SERIAL_JSM is not set | 661 | # CONFIG_SERIAL_JSM is not set |
567 | CONFIG_SERIAL_OF_PLATFORM=y | 662 | CONFIG_SERIAL_OF_PLATFORM=y |
568 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 663 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
664 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
569 | CONFIG_UNIX98_PTYS=y | 665 | CONFIG_UNIX98_PTYS=y |
570 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 666 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
571 | CONFIG_LEGACY_PTYS=y | 667 | CONFIG_LEGACY_PTYS=y |
@@ -582,6 +678,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
582 | CONFIG_DEVPORT=y | 678 | CONFIG_DEVPORT=y |
583 | # CONFIG_I2C is not set | 679 | # CONFIG_I2C is not set |
584 | # CONFIG_SPI is not set | 680 | # CONFIG_SPI is not set |
681 | |||
682 | # | ||
683 | # PPS support | ||
684 | # | ||
685 | # CONFIG_PPS is not set | ||
585 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 686 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
586 | # CONFIG_GPIOLIB is not set | 687 | # CONFIG_GPIOLIB is not set |
587 | # CONFIG_W1 is not set | 688 | # CONFIG_W1 is not set |
@@ -604,27 +705,13 @@ CONFIG_SSB_POSSIBLE=y | |||
604 | # CONFIG_HTC_PASIC3 is not set | 705 | # CONFIG_HTC_PASIC3 is not set |
605 | # CONFIG_MFD_TMIO is not set | 706 | # CONFIG_MFD_TMIO is not set |
606 | # CONFIG_REGULATOR is not set | 707 | # CONFIG_REGULATOR is not set |
607 | 708 | # CONFIG_MEDIA_SUPPORT is not set | |
608 | # | ||
609 | # Multimedia devices | ||
610 | # | ||
611 | |||
612 | # | ||
613 | # Multimedia core support | ||
614 | # | ||
615 | # CONFIG_VIDEO_DEV is not set | ||
616 | # CONFIG_DVB_CORE is not set | ||
617 | # CONFIG_VIDEO_MEDIA is not set | ||
618 | |||
619 | # | ||
620 | # Multimedia drivers | ||
621 | # | ||
622 | CONFIG_DAB=y | ||
623 | 709 | ||
624 | # | 710 | # |
625 | # Graphics support | 711 | # Graphics support |
626 | # | 712 | # |
627 | # CONFIG_AGP is not set | 713 | # CONFIG_AGP is not set |
714 | CONFIG_VGA_ARB=y | ||
628 | # CONFIG_DRM is not set | 715 | # CONFIG_DRM is not set |
629 | # CONFIG_VGASTATE is not set | 716 | # CONFIG_VGASTATE is not set |
630 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 717 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -649,7 +736,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
649 | # | 736 | # |
650 | 737 | ||
651 | # | 738 | # |
652 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 739 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
653 | # | 740 | # |
654 | # CONFIG_USB_GADGET is not set | 741 | # CONFIG_USB_GADGET is not set |
655 | 742 | ||
@@ -665,7 +752,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
665 | # CONFIG_EDAC is not set | 752 | # CONFIG_EDAC is not set |
666 | # CONFIG_RTC_CLASS is not set | 753 | # CONFIG_RTC_CLASS is not set |
667 | # CONFIG_DMADEVICES is not set | 754 | # CONFIG_DMADEVICES is not set |
755 | # CONFIG_AUXDISPLAY is not set | ||
668 | # CONFIG_UIO is not set | 756 | # CONFIG_UIO is not set |
757 | |||
758 | # | ||
759 | # TI VLYNQ | ||
760 | # | ||
669 | # CONFIG_STAGING is not set | 761 | # CONFIG_STAGING is not set |
670 | 762 | ||
671 | # | 763 | # |
@@ -676,14 +768,17 @@ CONFIG_EXT2_FS=y | |||
676 | # CONFIG_EXT2_FS_XIP is not set | 768 | # CONFIG_EXT2_FS_XIP is not set |
677 | # CONFIG_EXT3_FS is not set | 769 | # CONFIG_EXT3_FS is not set |
678 | # CONFIG_EXT4_FS is not set | 770 | # CONFIG_EXT4_FS is not set |
771 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
679 | # CONFIG_REISERFS_FS is not set | 772 | # CONFIG_REISERFS_FS is not set |
680 | # CONFIG_JFS_FS is not set | 773 | # CONFIG_JFS_FS is not set |
681 | # CONFIG_FS_POSIX_ACL is not set | 774 | # CONFIG_FS_POSIX_ACL is not set |
682 | CONFIG_FILE_LOCKING=y | ||
683 | # CONFIG_XFS_FS is not set | 775 | # CONFIG_XFS_FS is not set |
684 | # CONFIG_GFS2_FS is not set | 776 | # CONFIG_GFS2_FS is not set |
685 | # CONFIG_OCFS2_FS is not set | 777 | # CONFIG_OCFS2_FS is not set |
686 | # CONFIG_BTRFS_FS is not set | 778 | # CONFIG_BTRFS_FS is not set |
779 | # CONFIG_NILFS2_FS is not set | ||
780 | CONFIG_FILE_LOCKING=y | ||
781 | CONFIG_FSNOTIFY=y | ||
687 | CONFIG_DNOTIFY=y | 782 | CONFIG_DNOTIFY=y |
688 | CONFIG_INOTIFY=y | 783 | CONFIG_INOTIFY=y |
689 | CONFIG_INOTIFY_USER=y | 784 | CONFIG_INOTIFY_USER=y |
@@ -693,6 +788,11 @@ CONFIG_INOTIFY_USER=y | |||
693 | # CONFIG_FUSE_FS is not set | 788 | # CONFIG_FUSE_FS is not set |
694 | 789 | ||
695 | # | 790 | # |
791 | # Caches | ||
792 | # | ||
793 | # CONFIG_FSCACHE is not set | ||
794 | |||
795 | # | ||
696 | # CD-ROM/DVD Filesystems | 796 | # CD-ROM/DVD Filesystems |
697 | # | 797 | # |
698 | # CONFIG_ISO9660_FS is not set | 798 | # CONFIG_ISO9660_FS is not set |
@@ -746,7 +846,6 @@ CONFIG_LOCKD=y | |||
746 | CONFIG_LOCKD_V4=y | 846 | CONFIG_LOCKD_V4=y |
747 | CONFIG_NFS_COMMON=y | 847 | CONFIG_NFS_COMMON=y |
748 | CONFIG_SUNRPC=y | 848 | CONFIG_SUNRPC=y |
749 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
750 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 849 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
751 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 850 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
752 | # CONFIG_SMB_FS is not set | 851 | # CONFIG_SMB_FS is not set |
@@ -762,6 +861,7 @@ CONFIG_SUNRPC=y | |||
762 | CONFIG_MSDOS_PARTITION=y | 861 | CONFIG_MSDOS_PARTITION=y |
763 | # CONFIG_NLS is not set | 862 | # CONFIG_NLS is not set |
764 | # CONFIG_DLM is not set | 863 | # CONFIG_DLM is not set |
864 | # CONFIG_BINARY_PRINTF is not set | ||
765 | 865 | ||
766 | # | 866 | # |
767 | # Library routines | 867 | # Library routines |
@@ -776,11 +876,13 @@ CONFIG_CRC32=y | |||
776 | # CONFIG_CRC7 is not set | 876 | # CONFIG_CRC7 is not set |
777 | # CONFIG_LIBCRC32C is not set | 877 | # CONFIG_LIBCRC32C is not set |
778 | CONFIG_ZLIB_INFLATE=y | 878 | CONFIG_ZLIB_INFLATE=y |
779 | CONFIG_PLIST=y | 879 | CONFIG_DECOMPRESS_GZIP=y |
780 | CONFIG_HAS_IOMEM=y | 880 | CONFIG_HAS_IOMEM=y |
781 | CONFIG_HAS_IOPORT=y | 881 | CONFIG_HAS_IOPORT=y |
782 | CONFIG_HAS_DMA=y | 882 | CONFIG_HAS_DMA=y |
783 | CONFIG_HAVE_LMB=y | 883 | CONFIG_HAVE_LMB=y |
884 | CONFIG_NLATTR=y | ||
885 | CONFIG_GENERIC_ATOMIC64=y | ||
784 | 886 | ||
785 | # | 887 | # |
786 | # Kernel hacking | 888 | # Kernel hacking |
@@ -790,6 +892,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
790 | CONFIG_ENABLE_MUST_CHECK=y | 892 | CONFIG_ENABLE_MUST_CHECK=y |
791 | CONFIG_FRAME_WARN=1024 | 893 | CONFIG_FRAME_WARN=1024 |
792 | CONFIG_MAGIC_SYSRQ=y | 894 | CONFIG_MAGIC_SYSRQ=y |
895 | # CONFIG_STRIP_ASM_SYMS is not set | ||
793 | # CONFIG_UNUSED_SYMBOLS is not set | 896 | # CONFIG_UNUSED_SYMBOLS is not set |
794 | CONFIG_DEBUG_FS=y | 897 | CONFIG_DEBUG_FS=y |
795 | # CONFIG_HEADERS_CHECK is not set | 898 | # CONFIG_HEADERS_CHECK is not set |
@@ -798,16 +901,23 @@ CONFIG_DEBUG_KERNEL=y | |||
798 | CONFIG_DETECT_SOFTLOCKUP=y | 901 | CONFIG_DETECT_SOFTLOCKUP=y |
799 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 902 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
800 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 903 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
904 | CONFIG_DETECT_HUNG_TASK=y | ||
905 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
906 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
801 | CONFIG_SCHED_DEBUG=y | 907 | CONFIG_SCHED_DEBUG=y |
802 | # CONFIG_SCHEDSTATS is not set | 908 | # CONFIG_SCHEDSTATS is not set |
803 | # CONFIG_TIMER_STATS is not set | 909 | # CONFIG_TIMER_STATS is not set |
804 | # CONFIG_DEBUG_OBJECTS is not set | 910 | # CONFIG_DEBUG_OBJECTS is not set |
805 | # CONFIG_SLUB_DEBUG_ON is not set | 911 | # CONFIG_SLUB_DEBUG_ON is not set |
806 | # CONFIG_SLUB_STATS is not set | 912 | # CONFIG_SLUB_STATS is not set |
913 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
807 | # CONFIG_DEBUG_RT_MUTEXES is not set | 914 | # CONFIG_DEBUG_RT_MUTEXES is not set |
808 | # CONFIG_RT_MUTEX_TESTER is not set | 915 | # CONFIG_RT_MUTEX_TESTER is not set |
809 | # CONFIG_DEBUG_SPINLOCK is not set | 916 | # CONFIG_DEBUG_SPINLOCK is not set |
810 | # CONFIG_DEBUG_MUTEXES is not set | 917 | # CONFIG_DEBUG_MUTEXES is not set |
918 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
919 | # CONFIG_PROVE_LOCKING is not set | ||
920 | # CONFIG_LOCK_STAT is not set | ||
811 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 921 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
812 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 922 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
813 | # CONFIG_DEBUG_KOBJECT is not set | 923 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -819,35 +929,45 @@ CONFIG_SCHED_DEBUG=y | |||
819 | # CONFIG_DEBUG_LIST is not set | 929 | # CONFIG_DEBUG_LIST is not set |
820 | # CONFIG_DEBUG_SG is not set | 930 | # CONFIG_DEBUG_SG is not set |
821 | # CONFIG_DEBUG_NOTIFIERS is not set | 931 | # CONFIG_DEBUG_NOTIFIERS is not set |
822 | # CONFIG_BOOT_PRINTK_DELAY is not set | 932 | # CONFIG_DEBUG_CREDENTIALS is not set |
823 | # CONFIG_RCU_TORTURE_TEST is not set | 933 | # CONFIG_RCU_TORTURE_TEST is not set |
824 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 934 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
825 | # CONFIG_BACKTRACE_SELF_TEST is not set | 935 | # CONFIG_BACKTRACE_SELF_TEST is not set |
826 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 936 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
937 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
827 | # CONFIG_FAULT_INJECTION is not set | 938 | # CONFIG_FAULT_INJECTION is not set |
828 | # CONFIG_LATENCYTOP is not set | 939 | # CONFIG_LATENCYTOP is not set |
829 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 940 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
941 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
830 | CONFIG_HAVE_FUNCTION_TRACER=y | 942 | CONFIG_HAVE_FUNCTION_TRACER=y |
943 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
831 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 944 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
832 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 945 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
833 | 946 | CONFIG_TRACING_SUPPORT=y | |
834 | # | 947 | CONFIG_FTRACE=y |
835 | # Tracers | ||
836 | # | ||
837 | # CONFIG_FUNCTION_TRACER is not set | 948 | # CONFIG_FUNCTION_TRACER is not set |
949 | # CONFIG_IRQSOFF_TRACER is not set | ||
838 | # CONFIG_SCHED_TRACER is not set | 950 | # CONFIG_SCHED_TRACER is not set |
839 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 951 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
840 | # CONFIG_BOOT_TRACER is not set | 952 | # CONFIG_BOOT_TRACER is not set |
841 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 953 | CONFIG_BRANCH_PROFILE_NONE=y |
954 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
955 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
842 | # CONFIG_STACK_TRACER is not set | 956 | # CONFIG_STACK_TRACER is not set |
843 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 957 | # CONFIG_KMEMTRACE is not set |
958 | # CONFIG_WORKQUEUE_TRACER is not set | ||
959 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
960 | # CONFIG_DYNAMIC_DEBUG is not set | ||
961 | # CONFIG_DMA_API_DEBUG is not set | ||
844 | # CONFIG_SAMPLES is not set | 962 | # CONFIG_SAMPLES is not set |
845 | CONFIG_HAVE_ARCH_KGDB=y | 963 | CONFIG_HAVE_ARCH_KGDB=y |
846 | # CONFIG_KGDB is not set | 964 | # CONFIG_KGDB is not set |
965 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
966 | CONFIG_PPC_WERROR=y | ||
847 | CONFIG_PRINT_STACK_DEPTH=64 | 967 | CONFIG_PRINT_STACK_DEPTH=64 |
848 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 968 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
849 | # CONFIG_DEBUG_STACK_USAGE is not set | 969 | # CONFIG_DEBUG_STACK_USAGE is not set |
850 | # CONFIG_DEBUG_PAGEALLOC is not set | 970 | # CONFIG_PPC_EMULATED_STATS is not set |
851 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 971 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
852 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 972 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
853 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 973 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -863,13 +983,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
863 | # CONFIG_KEYS is not set | 983 | # CONFIG_KEYS is not set |
864 | # CONFIG_SECURITY is not set | 984 | # CONFIG_SECURITY is not set |
865 | # CONFIG_SECURITYFS is not set | 985 | # CONFIG_SECURITYFS is not set |
866 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 986 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
987 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
988 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
989 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
990 | CONFIG_DEFAULT_SECURITY="" | ||
867 | CONFIG_CRYPTO=y | 991 | CONFIG_CRYPTO=y |
868 | 992 | ||
869 | # | 993 | # |
870 | # Crypto core or helper | 994 | # Crypto core or helper |
871 | # | 995 | # |
872 | # CONFIG_CRYPTO_FIPS is not set | ||
873 | CONFIG_CRYPTO_ALGAPI=y | 996 | CONFIG_CRYPTO_ALGAPI=y |
874 | CONFIG_CRYPTO_ALGAPI2=y | 997 | CONFIG_CRYPTO_ALGAPI2=y |
875 | CONFIG_CRYPTO_AEAD2=y | 998 | CONFIG_CRYPTO_AEAD2=y |
@@ -878,10 +1001,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
878 | CONFIG_CRYPTO_HASH=y | 1001 | CONFIG_CRYPTO_HASH=y |
879 | CONFIG_CRYPTO_HASH2=y | 1002 | CONFIG_CRYPTO_HASH2=y |
880 | CONFIG_CRYPTO_RNG2=y | 1003 | CONFIG_CRYPTO_RNG2=y |
1004 | CONFIG_CRYPTO_PCOMP=y | ||
881 | CONFIG_CRYPTO_MANAGER=y | 1005 | CONFIG_CRYPTO_MANAGER=y |
882 | CONFIG_CRYPTO_MANAGER2=y | 1006 | CONFIG_CRYPTO_MANAGER2=y |
883 | # CONFIG_CRYPTO_GF128MUL is not set | 1007 | # CONFIG_CRYPTO_GF128MUL is not set |
884 | # CONFIG_CRYPTO_NULL is not set | 1008 | # CONFIG_CRYPTO_NULL is not set |
1009 | CONFIG_CRYPTO_WORKQUEUE=y | ||
885 | # CONFIG_CRYPTO_CRYPTD is not set | 1010 | # CONFIG_CRYPTO_CRYPTD is not set |
886 | # CONFIG_CRYPTO_AUTHENC is not set | 1011 | # CONFIG_CRYPTO_AUTHENC is not set |
887 | # CONFIG_CRYPTO_TEST is not set | 1012 | # CONFIG_CRYPTO_TEST is not set |
@@ -909,11 +1034,13 @@ CONFIG_CRYPTO_PCBC=y | |||
909 | # | 1034 | # |
910 | # CONFIG_CRYPTO_HMAC is not set | 1035 | # CONFIG_CRYPTO_HMAC is not set |
911 | # CONFIG_CRYPTO_XCBC is not set | 1036 | # CONFIG_CRYPTO_XCBC is not set |
1037 | # CONFIG_CRYPTO_VMAC is not set | ||
912 | 1038 | ||
913 | # | 1039 | # |
914 | # Digest | 1040 | # Digest |
915 | # | 1041 | # |
916 | # CONFIG_CRYPTO_CRC32C is not set | 1042 | # CONFIG_CRYPTO_CRC32C is not set |
1043 | # CONFIG_CRYPTO_GHASH is not set | ||
917 | # CONFIG_CRYPTO_MD4 is not set | 1044 | # CONFIG_CRYPTO_MD4 is not set |
918 | CONFIG_CRYPTO_MD5=y | 1045 | CONFIG_CRYPTO_MD5=y |
919 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1046 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -950,6 +1077,7 @@ CONFIG_CRYPTO_DES=y | |||
950 | # Compression | 1077 | # Compression |
951 | # | 1078 | # |
952 | # CONFIG_CRYPTO_DEFLATE is not set | 1079 | # CONFIG_CRYPTO_DEFLATE is not set |
1080 | # CONFIG_CRYPTO_ZLIB is not set | ||
953 | # CONFIG_CRYPTO_LZO is not set | 1081 | # CONFIG_CRYPTO_LZO is not set |
954 | 1082 | ||
955 | # | 1083 | # |
@@ -958,5 +1086,6 @@ CONFIG_CRYPTO_DES=y | |||
958 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1086 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
959 | CONFIG_CRYPTO_HW=y | 1087 | CONFIG_CRYPTO_HW=y |
960 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1088 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1089 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
961 | # CONFIG_PPC_CLOCK is not set | 1090 | # CONFIG_PPC_CLOCK is not set |
962 | # CONFIG_VIRTUALIZATION is not set | 1091 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/canyonlands_defconfig b/arch/powerpc/configs/44x/canyonlands_defconfig index b312b166be66..4ef8bcab61f8 100644 --- a/arch/powerpc/configs/44x/canyonlands_defconfig +++ b/arch/powerpc/configs/44x/canyonlands_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.31-rc4 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Wed Jul 29 17:27:20 2009 | 4 | # Mon Jan 4 14:12:20 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -33,7 +34,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
36 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
37 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
38 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
39 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -56,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
56 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
57 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
58 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
59 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
60 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
61 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
@@ -83,11 +87,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
83 | # | 87 | # |
84 | # RCU Subsystem | 88 | # RCU Subsystem |
85 | # | 89 | # |
86 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
87 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
88 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
89 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
90 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
91 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
92 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
93 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
@@ -121,22 +127,21 @@ CONFIG_TIMERFD=y | |||
121 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
122 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
123 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
124 | CONFIG_HAVE_PERF_COUNTERS=y | 130 | CONFIG_HAVE_PERF_EVENTS=y |
125 | 131 | ||
126 | # | 132 | # |
127 | # Performance Counters | 133 | # Kernel Performance Events And Counters |
128 | # | 134 | # |
135 | # CONFIG_PERF_EVENTS is not set | ||
129 | # CONFIG_PERF_COUNTERS is not set | 136 | # CONFIG_PERF_COUNTERS is not set |
130 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
131 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
132 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
133 | # CONFIG_STRIP_ASM_SYMS is not set | ||
134 | CONFIG_COMPAT_BRK=y | 140 | CONFIG_COMPAT_BRK=y |
135 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
136 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
137 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
138 | # CONFIG_PROFILING is not set | 144 | # CONFIG_PROFILING is not set |
139 | # CONFIG_MARKERS is not set | ||
140 | CONFIG_HAVE_OPROFILE=y | 145 | CONFIG_HAVE_OPROFILE=y |
141 | # CONFIG_KPROBES is not set | 146 | # CONFIG_KPROBES is not set |
142 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 147 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -144,6 +149,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
144 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
145 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
146 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
147 | 154 | ||
148 | # | 155 | # |
149 | # GCOV-based kernel profiling | 156 | # GCOV-based kernel profiling |
@@ -169,14 +176,41 @@ CONFIG_LBDAF=y | |||
169 | # IO Schedulers | 176 | # IO Schedulers |
170 | # | 177 | # |
171 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
172 | CONFIG_IOSCHED_AS=y | ||
173 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
174 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
175 | CONFIG_DEFAULT_AS=y | ||
176 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
177 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
178 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
179 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
180 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
181 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
182 | 216 | ||
@@ -198,6 +232,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y | |||
198 | CONFIG_CANYONLANDS=y | 232 | CONFIG_CANYONLANDS=y |
199 | # CONFIG_GLACIER is not set | 233 | # CONFIG_GLACIER is not set |
200 | # CONFIG_REDWOOD is not set | 234 | # CONFIG_REDWOOD is not set |
235 | # CONFIG_EIGER is not set | ||
201 | # CONFIG_YOSEMITE is not set | 236 | # CONFIG_YOSEMITE is not set |
202 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 237 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
203 | CONFIG_PPC44x_SIMPLE=y | 238 | CONFIG_PPC44x_SIMPLE=y |
@@ -241,10 +276,11 @@ CONFIG_BINFMT_ELF=y | |||
241 | # CONFIG_MATH_EMULATION is not set | 276 | # CONFIG_MATH_EMULATION is not set |
242 | # CONFIG_IOMMU_HELPER is not set | 277 | # CONFIG_IOMMU_HELPER is not set |
243 | # CONFIG_SWIOTLB is not set | 278 | # CONFIG_SWIOTLB is not set |
244 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | ||
245 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
246 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
283 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
248 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
249 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
250 | CONFIG_SELECT_MEMORY_MODEL=y | 286 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -260,8 +296,7 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
260 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
261 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
262 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
263 | CONFIG_HAVE_MLOCK=y | 299 | # CONFIG_KSM is not set |
264 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
265 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
266 | CONFIG_STDBINUTILS=y | 301 | CONFIG_STDBINUTILS=y |
267 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -352,6 +387,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
352 | # CONFIG_NETFILTER is not set | 387 | # CONFIG_NETFILTER is not set |
353 | # CONFIG_IP_DCCP is not set | 388 | # CONFIG_IP_DCCP is not set |
354 | # CONFIG_IP_SCTP is not set | 389 | # CONFIG_IP_SCTP is not set |
390 | # CONFIG_RDS is not set | ||
355 | # CONFIG_TIPC is not set | 391 | # CONFIG_TIPC is not set |
356 | # CONFIG_ATM is not set | 392 | # CONFIG_ATM is not set |
357 | # CONFIG_BRIDGE is not set | 393 | # CONFIG_BRIDGE is not set |
@@ -379,7 +415,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
379 | # CONFIG_IRDA is not set | 415 | # CONFIG_IRDA is not set |
380 | # CONFIG_BT is not set | 416 | # CONFIG_BT is not set |
381 | # CONFIG_AF_RXRPC is not set | 417 | # CONFIG_AF_RXRPC is not set |
382 | # CONFIG_WIRELESS is not set | 418 | CONFIG_WIRELESS=y |
419 | # CONFIG_CFG80211 is not set | ||
420 | # CONFIG_LIB80211 is not set | ||
421 | |||
422 | # | ||
423 | # CFG80211 needs to be enabled for MAC80211 | ||
424 | # | ||
383 | # CONFIG_WIMAX is not set | 425 | # CONFIG_WIMAX is not set |
384 | # CONFIG_RFKILL is not set | 426 | # CONFIG_RFKILL is not set |
385 | # CONFIG_NET_9P is not set | 427 | # CONFIG_NET_9P is not set |
@@ -392,6 +434,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
392 | # Generic Driver Options | 434 | # Generic Driver Options |
393 | # | 435 | # |
394 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 436 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
437 | # CONFIG_DEVTMPFS is not set | ||
395 | CONFIG_STANDALONE=y | 438 | CONFIG_STANDALONE=y |
396 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 439 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
397 | CONFIG_FW_LOADER=y | 440 | CONFIG_FW_LOADER=y |
@@ -404,9 +447,9 @@ CONFIG_CONNECTOR=y | |||
404 | CONFIG_PROC_EVENTS=y | 447 | CONFIG_PROC_EVENTS=y |
405 | CONFIG_MTD=y | 448 | CONFIG_MTD=y |
406 | # CONFIG_MTD_DEBUG is not set | 449 | # CONFIG_MTD_DEBUG is not set |
450 | # CONFIG_MTD_TESTS is not set | ||
407 | # CONFIG_MTD_CONCAT is not set | 451 | # CONFIG_MTD_CONCAT is not set |
408 | CONFIG_MTD_PARTITIONS=y | 452 | CONFIG_MTD_PARTITIONS=y |
409 | # CONFIG_MTD_TESTS is not set | ||
410 | # CONFIG_MTD_REDBOOT_PARTS is not set | 453 | # CONFIG_MTD_REDBOOT_PARTS is not set |
411 | CONFIG_MTD_CMDLINE_PARTS=y | 454 | CONFIG_MTD_CMDLINE_PARTS=y |
412 | CONFIG_MTD_OF_PARTS=y | 455 | CONFIG_MTD_OF_PARTS=y |
@@ -508,6 +551,7 @@ CONFIG_BLK_DEV=y | |||
508 | # CONFIG_BLK_DEV_UMEM is not set | 551 | # CONFIG_BLK_DEV_UMEM is not set |
509 | # CONFIG_BLK_DEV_COW_COMMON is not set | 552 | # CONFIG_BLK_DEV_COW_COMMON is not set |
510 | # CONFIG_BLK_DEV_LOOP is not set | 553 | # CONFIG_BLK_DEV_LOOP is not set |
554 | # CONFIG_BLK_DEV_DRBD is not set | ||
511 | # CONFIG_BLK_DEV_NBD is not set | 555 | # CONFIG_BLK_DEV_NBD is not set |
512 | # CONFIG_BLK_DEV_SX8 is not set | 556 | # CONFIG_BLK_DEV_SX8 is not set |
513 | # CONFIG_BLK_DEV_UB is not set | 557 | # CONFIG_BLK_DEV_UB is not set |
@@ -585,16 +629,18 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
585 | # CONFIG_NET_PCI is not set | 629 | # CONFIG_NET_PCI is not set |
586 | # CONFIG_B44 is not set | 630 | # CONFIG_B44 is not set |
587 | # CONFIG_KS8842 is not set | 631 | # CONFIG_KS8842 is not set |
632 | # CONFIG_KS8851_MLL is not set | ||
588 | # CONFIG_ATL2 is not set | 633 | # CONFIG_ATL2 is not set |
634 | # CONFIG_XILINX_EMACLITE is not set | ||
589 | # CONFIG_NETDEV_1000 is not set | 635 | # CONFIG_NETDEV_1000 is not set |
590 | # CONFIG_NETDEV_10000 is not set | 636 | # CONFIG_NETDEV_10000 is not set |
591 | # CONFIG_TR is not set | 637 | # CONFIG_TR is not set |
592 | 638 | CONFIG_WLAN=y | |
593 | # | 639 | # CONFIG_AIRO is not set |
594 | # Wireless LAN | 640 | # CONFIG_ATMEL is not set |
595 | # | 641 | # CONFIG_PRISM54 is not set |
596 | # CONFIG_WLAN_PRE80211 is not set | 642 | # CONFIG_USB_ZD1201 is not set |
597 | # CONFIG_WLAN_80211 is not set | 643 | # CONFIG_HOSTAP is not set |
598 | 644 | ||
599 | # | 645 | # |
600 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 646 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -616,6 +662,7 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
616 | # CONFIG_NETCONSOLE is not set | 662 | # CONFIG_NETCONSOLE is not set |
617 | # CONFIG_NETPOLL is not set | 663 | # CONFIG_NETPOLL is not set |
618 | # CONFIG_NET_POLL_CONTROLLER is not set | 664 | # CONFIG_NET_POLL_CONTROLLER is not set |
665 | # CONFIG_VMXNET3 is not set | ||
619 | # CONFIG_ISDN is not set | 666 | # CONFIG_ISDN is not set |
620 | # CONFIG_PHONE is not set | 667 | # CONFIG_PHONE is not set |
621 | 668 | ||
@@ -661,6 +708,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
661 | # CONFIG_SERIAL_JSM is not set | 708 | # CONFIG_SERIAL_JSM is not set |
662 | CONFIG_SERIAL_OF_PLATFORM=y | 709 | CONFIG_SERIAL_OF_PLATFORM=y |
663 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 710 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
711 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
664 | CONFIG_UNIX98_PTYS=y | 712 | CONFIG_UNIX98_PTYS=y |
665 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 713 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
666 | CONFIG_LEGACY_PTYS=y | 714 | CONFIG_LEGACY_PTYS=y |
@@ -676,6 +724,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
676 | CONFIG_DEVPORT=y | 724 | CONFIG_DEVPORT=y |
677 | CONFIG_I2C=y | 725 | CONFIG_I2C=y |
678 | CONFIG_I2C_BOARDINFO=y | 726 | CONFIG_I2C_BOARDINFO=y |
727 | CONFIG_I2C_COMPAT=y | ||
679 | CONFIG_I2C_CHARDEV=y | 728 | CONFIG_I2C_CHARDEV=y |
680 | CONFIG_I2C_HELPER_AUTO=y | 729 | CONFIG_I2C_HELPER_AUTO=y |
681 | 730 | ||
@@ -717,11 +766,6 @@ CONFIG_I2C_IBM_IIC=y | |||
717 | # CONFIG_I2C_TINY_USB is not set | 766 | # CONFIG_I2C_TINY_USB is not set |
718 | 767 | ||
719 | # | 768 | # |
720 | # Graphics adapter I2C/DDC channel drivers | ||
721 | # | ||
722 | # CONFIG_I2C_VOODOO3 is not set | ||
723 | |||
724 | # | ||
725 | # Other I2C/SMBus bus drivers | 769 | # Other I2C/SMBus bus drivers |
726 | # | 770 | # |
727 | # CONFIG_I2C_PCA_PLATFORM is not set | 771 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -730,10 +774,6 @@ CONFIG_I2C_IBM_IIC=y | |||
730 | # | 774 | # |
731 | # Miscellaneous I2C Chip support | 775 | # Miscellaneous I2C Chip support |
732 | # | 776 | # |
733 | # CONFIG_DS1682 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_TSL2550 is not set | 777 | # CONFIG_SENSORS_TSL2550 is not set |
738 | # CONFIG_I2C_DEBUG_CORE is not set | 778 | # CONFIG_I2C_DEBUG_CORE is not set |
739 | # CONFIG_I2C_DEBUG_ALGO is not set | 779 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -751,6 +791,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
751 | # CONFIG_POWER_SUPPLY is not set | 791 | # CONFIG_POWER_SUPPLY is not set |
752 | CONFIG_HWMON=y | 792 | CONFIG_HWMON=y |
753 | # CONFIG_HWMON_VID is not set | 793 | # CONFIG_HWMON_VID is not set |
794 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
795 | |||
796 | # | ||
797 | # Native drivers | ||
798 | # | ||
754 | CONFIG_SENSORS_AD7414=y | 799 | CONFIG_SENSORS_AD7414=y |
755 | # CONFIG_SENSORS_AD7418 is not set | 800 | # CONFIG_SENSORS_AD7418 is not set |
756 | # CONFIG_SENSORS_ADM1021 is not set | 801 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -774,6 +819,7 @@ CONFIG_SENSORS_AD7414=y | |||
774 | # CONFIG_SENSORS_GL520SM is not set | 819 | # CONFIG_SENSORS_GL520SM is not set |
775 | # CONFIG_SENSORS_IT87 is not set | 820 | # CONFIG_SENSORS_IT87 is not set |
776 | # CONFIG_SENSORS_LM63 is not set | 821 | # CONFIG_SENSORS_LM63 is not set |
822 | # CONFIG_SENSORS_LM73 is not set | ||
777 | # CONFIG_SENSORS_LM75 is not set | 823 | # CONFIG_SENSORS_LM75 is not set |
778 | # CONFIG_SENSORS_LM77 is not set | 824 | # CONFIG_SENSORS_LM77 is not set |
779 | # CONFIG_SENSORS_LM78 is not set | 825 | # CONFIG_SENSORS_LM78 is not set |
@@ -800,6 +846,7 @@ CONFIG_SENSORS_AD7414=y | |||
800 | # CONFIG_SENSORS_ADS7828 is not set | 846 | # CONFIG_SENSORS_ADS7828 is not set |
801 | # CONFIG_SENSORS_THMC50 is not set | 847 | # CONFIG_SENSORS_THMC50 is not set |
802 | # CONFIG_SENSORS_TMP401 is not set | 848 | # CONFIG_SENSORS_TMP401 is not set |
849 | # CONFIG_SENSORS_TMP421 is not set | ||
803 | # CONFIG_SENSORS_VIA686A is not set | 850 | # CONFIG_SENSORS_VIA686A is not set |
804 | # CONFIG_SENSORS_VT1211 is not set | 851 | # CONFIG_SENSORS_VT1211 is not set |
805 | # CONFIG_SENSORS_VT8231 is not set | 852 | # CONFIG_SENSORS_VT8231 is not set |
@@ -811,9 +858,7 @@ CONFIG_SENSORS_AD7414=y | |||
811 | # CONFIG_SENSORS_W83L786NG is not set | 858 | # CONFIG_SENSORS_W83L786NG is not set |
812 | # CONFIG_SENSORS_W83627HF is not set | 859 | # CONFIG_SENSORS_W83627HF is not set |
813 | # CONFIG_SENSORS_W83627EHF is not set | 860 | # CONFIG_SENSORS_W83627EHF is not set |
814 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
815 | # CONFIG_THERMAL is not set | 861 | # CONFIG_THERMAL is not set |
816 | # CONFIG_THERMAL_HWMON is not set | ||
817 | # CONFIG_WATCHDOG is not set | 862 | # CONFIG_WATCHDOG is not set |
818 | CONFIG_SSB_POSSIBLE=y | 863 | CONFIG_SSB_POSSIBLE=y |
819 | 864 | ||
@@ -831,10 +876,13 @@ CONFIG_SSB_POSSIBLE=y | |||
831 | # CONFIG_TWL4030_CORE is not set | 876 | # CONFIG_TWL4030_CORE is not set |
832 | # CONFIG_MFD_TMIO is not set | 877 | # CONFIG_MFD_TMIO is not set |
833 | # CONFIG_PMIC_DA903X is not set | 878 | # CONFIG_PMIC_DA903X is not set |
879 | # CONFIG_PMIC_ADP5520 is not set | ||
834 | # CONFIG_MFD_WM8400 is not set | 880 | # CONFIG_MFD_WM8400 is not set |
881 | # CONFIG_MFD_WM831X is not set | ||
835 | # CONFIG_MFD_WM8350_I2C is not set | 882 | # CONFIG_MFD_WM8350_I2C is not set |
836 | # CONFIG_MFD_PCF50633 is not set | 883 | # CONFIG_MFD_PCF50633 is not set |
837 | # CONFIG_AB3100_CORE is not set | 884 | # CONFIG_AB3100_CORE is not set |
885 | # CONFIG_MFD_88PM8607 is not set | ||
838 | # CONFIG_REGULATOR is not set | 886 | # CONFIG_REGULATOR is not set |
839 | # CONFIG_MEDIA_SUPPORT is not set | 887 | # CONFIG_MEDIA_SUPPORT is not set |
840 | 888 | ||
@@ -842,6 +890,7 @@ CONFIG_SSB_POSSIBLE=y | |||
842 | # Graphics support | 890 | # Graphics support |
843 | # | 891 | # |
844 | # CONFIG_AGP is not set | 892 | # CONFIG_AGP is not set |
893 | CONFIG_VGA_ARB=y | ||
845 | # CONFIG_DRM is not set | 894 | # CONFIG_DRM is not set |
846 | # CONFIG_VGASTATE is not set | 895 | # CONFIG_VGASTATE is not set |
847 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 896 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -882,10 +931,12 @@ CONFIG_USB_MON=y | |||
882 | CONFIG_USB_EHCI_HCD=m | 931 | CONFIG_USB_EHCI_HCD=m |
883 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 932 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
884 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 933 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
934 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
885 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 935 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
886 | # CONFIG_USB_OXU210HP_HCD is not set | 936 | # CONFIG_USB_OXU210HP_HCD is not set |
887 | # CONFIG_USB_ISP116X_HCD is not set | 937 | # CONFIG_USB_ISP116X_HCD is not set |
888 | # CONFIG_USB_ISP1760_HCD is not set | 938 | # CONFIG_USB_ISP1760_HCD is not set |
939 | # CONFIG_USB_ISP1362_HCD is not set | ||
889 | CONFIG_USB_OHCI_HCD=y | 940 | CONFIG_USB_OHCI_HCD=y |
890 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 941 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y |
891 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | 942 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y |
@@ -993,6 +1044,7 @@ CONFIG_RTC_INTF_DEV=y | |||
993 | # CONFIG_RTC_DRV_PCF8583 is not set | 1044 | # CONFIG_RTC_DRV_PCF8583 is not set |
994 | CONFIG_RTC_DRV_M41T80=y | 1045 | CONFIG_RTC_DRV_M41T80=y |
995 | # CONFIG_RTC_DRV_M41T80_WDT is not set | 1046 | # CONFIG_RTC_DRV_M41T80_WDT is not set |
1047 | # CONFIG_RTC_DRV_BQ32K is not set | ||
996 | # CONFIG_RTC_DRV_S35390A is not set | 1048 | # CONFIG_RTC_DRV_S35390A is not set |
997 | # CONFIG_RTC_DRV_FM3130 is not set | 1049 | # CONFIG_RTC_DRV_FM3130 is not set |
998 | # CONFIG_RTC_DRV_RX8581 is not set | 1050 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1014,7 +1066,9 @@ CONFIG_RTC_DRV_M41T80=y | |||
1014 | # CONFIG_RTC_DRV_M48T86 is not set | 1066 | # CONFIG_RTC_DRV_M48T86 is not set |
1015 | # CONFIG_RTC_DRV_M48T35 is not set | 1067 | # CONFIG_RTC_DRV_M48T35 is not set |
1016 | # CONFIG_RTC_DRV_M48T59 is not set | 1068 | # CONFIG_RTC_DRV_M48T59 is not set |
1069 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1017 | # CONFIG_RTC_DRV_BQ4802 is not set | 1070 | # CONFIG_RTC_DRV_BQ4802 is not set |
1071 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1018 | # CONFIG_RTC_DRV_V3020 is not set | 1072 | # CONFIG_RTC_DRV_V3020 is not set |
1019 | 1073 | ||
1020 | # | 1074 | # |
@@ -1038,6 +1092,7 @@ CONFIG_EXT2_FS=y | |||
1038 | # CONFIG_EXT2_FS_XIP is not set | 1092 | # CONFIG_EXT2_FS_XIP is not set |
1039 | # CONFIG_EXT3_FS is not set | 1093 | # CONFIG_EXT3_FS is not set |
1040 | # CONFIG_EXT4_FS is not set | 1094 | # CONFIG_EXT4_FS is not set |
1095 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
1041 | # CONFIG_REISERFS_FS is not set | 1096 | # CONFIG_REISERFS_FS is not set |
1042 | # CONFIG_JFS_FS is not set | 1097 | # CONFIG_JFS_FS is not set |
1043 | # CONFIG_FS_POSIX_ACL is not set | 1098 | # CONFIG_FS_POSIX_ACL is not set |
@@ -1045,6 +1100,7 @@ CONFIG_EXT2_FS=y | |||
1045 | # CONFIG_GFS2_FS is not set | 1100 | # CONFIG_GFS2_FS is not set |
1046 | # CONFIG_OCFS2_FS is not set | 1101 | # CONFIG_OCFS2_FS is not set |
1047 | # CONFIG_BTRFS_FS is not set | 1102 | # CONFIG_BTRFS_FS is not set |
1103 | # CONFIG_NILFS2_FS is not set | ||
1048 | CONFIG_FILE_LOCKING=y | 1104 | CONFIG_FILE_LOCKING=y |
1049 | CONFIG_FSNOTIFY=y | 1105 | CONFIG_FSNOTIFY=y |
1050 | CONFIG_DNOTIFY=y | 1106 | CONFIG_DNOTIFY=y |
@@ -1104,7 +1160,6 @@ CONFIG_CRAMFS=y | |||
1104 | # CONFIG_ROMFS_FS is not set | 1160 | # CONFIG_ROMFS_FS is not set |
1105 | # CONFIG_SYSV_FS is not set | 1161 | # CONFIG_SYSV_FS is not set |
1106 | # CONFIG_UFS_FS is not set | 1162 | # CONFIG_UFS_FS is not set |
1107 | # CONFIG_NILFS2_FS is not set | ||
1108 | CONFIG_NETWORK_FILESYSTEMS=y | 1163 | CONFIG_NETWORK_FILESYSTEMS=y |
1109 | CONFIG_NFS_FS=y | 1164 | CONFIG_NFS_FS=y |
1110 | CONFIG_NFS_V3=y | 1165 | CONFIG_NFS_V3=y |
@@ -1201,6 +1256,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1201 | CONFIG_ENABLE_MUST_CHECK=y | 1256 | CONFIG_ENABLE_MUST_CHECK=y |
1202 | CONFIG_FRAME_WARN=1024 | 1257 | CONFIG_FRAME_WARN=1024 |
1203 | CONFIG_MAGIC_SYSRQ=y | 1258 | CONFIG_MAGIC_SYSRQ=y |
1259 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1204 | # CONFIG_UNUSED_SYMBOLS is not set | 1260 | # CONFIG_UNUSED_SYMBOLS is not set |
1205 | CONFIG_DEBUG_FS=y | 1261 | CONFIG_DEBUG_FS=y |
1206 | # CONFIG_HEADERS_CHECK is not set | 1262 | # CONFIG_HEADERS_CHECK is not set |
@@ -1218,6 +1274,7 @@ CONFIG_SCHED_DEBUG=y | |||
1218 | # CONFIG_DEBUG_OBJECTS is not set | 1274 | # CONFIG_DEBUG_OBJECTS is not set |
1219 | # CONFIG_SLUB_DEBUG_ON is not set | 1275 | # CONFIG_SLUB_DEBUG_ON is not set |
1220 | # CONFIG_SLUB_STATS is not set | 1276 | # CONFIG_SLUB_STATS is not set |
1277 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1221 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1278 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1222 | # CONFIG_RT_MUTEX_TESTER is not set | 1279 | # CONFIG_RT_MUTEX_TESTER is not set |
1223 | # CONFIG_DEBUG_SPINLOCK is not set | 1280 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1236,10 +1293,12 @@ CONFIG_SCHED_DEBUG=y | |||
1236 | # CONFIG_DEBUG_LIST is not set | 1293 | # CONFIG_DEBUG_LIST is not set |
1237 | # CONFIG_DEBUG_SG is not set | 1294 | # CONFIG_DEBUG_SG is not set |
1238 | # CONFIG_DEBUG_NOTIFIERS is not set | 1295 | # CONFIG_DEBUG_NOTIFIERS is not set |
1296 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1239 | # CONFIG_RCU_TORTURE_TEST is not set | 1297 | # CONFIG_RCU_TORTURE_TEST is not set |
1240 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1298 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1241 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1299 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1242 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1300 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1301 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1243 | # CONFIG_FAULT_INJECTION is not set | 1302 | # CONFIG_FAULT_INJECTION is not set |
1244 | # CONFIG_LATENCYTOP is not set | 1303 | # CONFIG_LATENCYTOP is not set |
1245 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1304 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -1263,10 +1322,10 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1263 | # CONFIG_WORKQUEUE_TRACER is not set | 1322 | # CONFIG_WORKQUEUE_TRACER is not set |
1264 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1323 | # CONFIG_BLK_DEV_IO_TRACE is not set |
1265 | # CONFIG_DYNAMIC_DEBUG is not set | 1324 | # CONFIG_DYNAMIC_DEBUG is not set |
1325 | # CONFIG_DMA_API_DEBUG is not set | ||
1266 | # CONFIG_SAMPLES is not set | 1326 | # CONFIG_SAMPLES is not set |
1267 | CONFIG_HAVE_ARCH_KGDB=y | 1327 | CONFIG_HAVE_ARCH_KGDB=y |
1268 | # CONFIG_KGDB is not set | 1328 | # CONFIG_KGDB is not set |
1269 | # CONFIG_KMEMCHECK is not set | ||
1270 | # CONFIG_PPC_DISABLE_WERROR is not set | 1329 | # CONFIG_PPC_DISABLE_WERROR is not set |
1271 | CONFIG_PPC_WERROR=y | 1330 | CONFIG_PPC_WERROR=y |
1272 | CONFIG_PRINT_STACK_DEPTH=64 | 1331 | CONFIG_PRINT_STACK_DEPTH=64 |
@@ -1288,7 +1347,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1288 | # CONFIG_KEYS is not set | 1347 | # CONFIG_KEYS is not set |
1289 | # CONFIG_SECURITY is not set | 1348 | # CONFIG_SECURITY is not set |
1290 | # CONFIG_SECURITYFS is not set | 1349 | # CONFIG_SECURITYFS is not set |
1291 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1350 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1351 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1352 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1353 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1354 | CONFIG_DEFAULT_SECURITY="" | ||
1292 | # CONFIG_CRYPTO is not set | 1355 | # CONFIG_CRYPTO is not set |
1293 | # CONFIG_PPC_CLOCK is not set | 1356 | # CONFIG_PPC_CLOCK is not set |
1294 | # CONFIG_VIRTUALIZATION is not set | 1357 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/ebony_defconfig b/arch/powerpc/configs/44x/ebony_defconfig index b652f7dcab5a..ca17b1496e32 100644 --- a/arch/powerpc/configs/44x/ebony_defconfig +++ b/arch/powerpc/configs/44x/ebony_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:36 2009 | 4 | # Mon Jan 4 14:20:46 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -19,6 +19,7 @@ CONFIG_BOOKE=y | |||
19 | CONFIG_PTE_64BIT=y | 19 | CONFIG_PTE_64BIT=y |
20 | CONFIG_PHYS_64BIT=y | 20 | CONFIG_PHYS_64BIT=y |
21 | CONFIG_PPC_MMU_NOHASH=y | 21 | CONFIG_PPC_MMU_NOHASH=y |
22 | CONFIG_PPC_MMU_NOHASH_32=y | ||
22 | # CONFIG_PPC_MM_SLICES is not set | 23 | # CONFIG_PPC_MM_SLICES is not set |
23 | CONFIG_NOT_COHERENT_CACHE=y | 24 | CONFIG_NOT_COHERENT_CACHE=y |
24 | CONFIG_PPC32=y | 25 | CONFIG_PPC32=y |
@@ -30,15 +31,18 @@ CONFIG_GENERIC_TIME=y | |||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | 31 | CONFIG_GENERIC_TIME_VSYSCALL=y |
31 | CONFIG_GENERIC_CLOCKEVENTS=y | 32 | CONFIG_GENERIC_CLOCKEVENTS=y |
32 | CONFIG_GENERIC_HARDIRQS=y | 33 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
36 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
34 | CONFIG_IRQ_PER_CPU=y | 37 | CONFIG_IRQ_PER_CPU=y |
38 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 39 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
37 | CONFIG_LOCKDEP_SUPPORT=y | 42 | CONFIG_LOCKDEP_SUPPORT=y |
38 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 43 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
39 | CONFIG_ARCH_HAS_ILOG2_U32=y | 44 | CONFIG_ARCH_HAS_ILOG2_U32=y |
40 | CONFIG_GENERIC_HWEIGHT=y | 45 | CONFIG_GENERIC_HWEIGHT=y |
41 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
42 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 46 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 47 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
44 | CONFIG_PPC=y | 48 | CONFIG_PPC=y |
@@ -52,11 +56,15 @@ CONFIG_PPC_UDBG_16550=y | |||
52 | # CONFIG_GENERIC_TBSYNC is not set | 56 | # CONFIG_GENERIC_TBSYNC is not set |
53 | CONFIG_AUDIT_ARCH=y | 57 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_GENERIC_BUG=y | 58 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | ||
55 | # CONFIG_DEFAULT_UIMAGE is not set | 60 | # CONFIG_DEFAULT_UIMAGE is not set |
61 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | CONFIG_PPC_DCR_NATIVE=y | 62 | CONFIG_PPC_DCR_NATIVE=y |
57 | # CONFIG_PPC_DCR_MMIO is not set | 63 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_PPC_DCR=y | 64 | CONFIG_PPC_DCR=y |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
59 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 66 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
67 | CONFIG_CONSTRUCTORS=y | ||
60 | 68 | ||
61 | # | 69 | # |
62 | # General setup | 70 | # General setup |
@@ -70,9 +78,21 @@ CONFIG_SWAP=y | |||
70 | CONFIG_SYSVIPC=y | 78 | CONFIG_SYSVIPC=y |
71 | CONFIG_SYSVIPC_SYSCTL=y | 79 | CONFIG_SYSVIPC_SYSCTL=y |
72 | CONFIG_POSIX_MQUEUE=y | 80 | CONFIG_POSIX_MQUEUE=y |
81 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
73 | # CONFIG_BSD_PROCESS_ACCT is not set | 82 | # CONFIG_BSD_PROCESS_ACCT is not set |
74 | # CONFIG_TASKSTATS is not set | 83 | # CONFIG_TASKSTATS is not set |
75 | # CONFIG_AUDIT is not set | 84 | # CONFIG_AUDIT is not set |
85 | |||
86 | # | ||
87 | # RCU Subsystem | ||
88 | # | ||
89 | CONFIG_TREE_RCU=y | ||
90 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
91 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | ||
93 | CONFIG_RCU_FANOUT=32 | ||
94 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
95 | # CONFIG_TREE_RCU_TRACE is not set | ||
76 | # CONFIG_IKCONFIG is not set | 96 | # CONFIG_IKCONFIG is not set |
77 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
78 | CONFIG_GROUP_SCHED=y | 98 | CONFIG_GROUP_SCHED=y |
@@ -87,31 +107,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
87 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
88 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
89 | CONFIG_INITRAMFS_SOURCE="" | 109 | CONFIG_INITRAMFS_SOURCE="" |
110 | CONFIG_RD_GZIP=y | ||
111 | # CONFIG_RD_BZIP2 is not set | ||
112 | # CONFIG_RD_LZMA is not set | ||
90 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 113 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
91 | CONFIG_SYSCTL=y | 114 | CONFIG_SYSCTL=y |
115 | CONFIG_ANON_INODES=y | ||
92 | CONFIG_EMBEDDED=y | 116 | CONFIG_EMBEDDED=y |
93 | CONFIG_SYSCTL_SYSCALL=y | 117 | CONFIG_SYSCTL_SYSCALL=y |
94 | CONFIG_KALLSYMS=y | 118 | CONFIG_KALLSYMS=y |
95 | CONFIG_KALLSYMS_ALL=y | 119 | CONFIG_KALLSYMS_ALL=y |
96 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
97 | CONFIG_KALLSYMS_EXTRA_PASS=y | 120 | CONFIG_KALLSYMS_EXTRA_PASS=y |
98 | CONFIG_HOTPLUG=y | 121 | CONFIG_HOTPLUG=y |
99 | CONFIG_PRINTK=y | 122 | CONFIG_PRINTK=y |
100 | CONFIG_BUG=y | 123 | CONFIG_BUG=y |
101 | CONFIG_ELF_CORE=y | 124 | CONFIG_ELF_CORE=y |
102 | CONFIG_COMPAT_BRK=y | ||
103 | CONFIG_BASE_FULL=y | 125 | CONFIG_BASE_FULL=y |
104 | CONFIG_FUTEX=y | 126 | CONFIG_FUTEX=y |
105 | CONFIG_ANON_INODES=y | ||
106 | CONFIG_EPOLL=y | 127 | CONFIG_EPOLL=y |
107 | CONFIG_SIGNALFD=y | 128 | CONFIG_SIGNALFD=y |
108 | CONFIG_TIMERFD=y | 129 | CONFIG_TIMERFD=y |
109 | CONFIG_EVENTFD=y | 130 | CONFIG_EVENTFD=y |
110 | CONFIG_SHMEM=y | 131 | CONFIG_SHMEM=y |
111 | CONFIG_AIO=y | 132 | CONFIG_AIO=y |
133 | CONFIG_HAVE_PERF_EVENTS=y | ||
134 | |||
135 | # | ||
136 | # Kernel Performance Events And Counters | ||
137 | # | ||
138 | # CONFIG_PERF_EVENTS is not set | ||
139 | # CONFIG_PERF_COUNTERS is not set | ||
112 | CONFIG_VM_EVENT_COUNTERS=y | 140 | CONFIG_VM_EVENT_COUNTERS=y |
113 | CONFIG_PCI_QUIRKS=y | 141 | CONFIG_PCI_QUIRKS=y |
114 | CONFIG_SLUB_DEBUG=y | 142 | CONFIG_SLUB_DEBUG=y |
143 | CONFIG_COMPAT_BRK=y | ||
115 | # CONFIG_SLAB is not set | 144 | # CONFIG_SLAB is not set |
116 | CONFIG_SLUB=y | 145 | CONFIG_SLUB=y |
117 | # CONFIG_SLOB is not set | 146 | # CONFIG_SLOB is not set |
@@ -123,6 +152,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
123 | CONFIG_HAVE_KPROBES=y | 152 | CONFIG_HAVE_KPROBES=y |
124 | CONFIG_HAVE_KRETPROBES=y | 153 | CONFIG_HAVE_KRETPROBES=y |
125 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 154 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
155 | CONFIG_HAVE_DMA_ATTRS=y | ||
156 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
157 | |||
158 | # | ||
159 | # GCOV-based kernel profiling | ||
160 | # | ||
161 | # CONFIG_GCOV_KERNEL is not set | ||
162 | # CONFIG_SLOW_WORK is not set | ||
126 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 163 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
127 | CONFIG_SLABINFO=y | 164 | CONFIG_SLABINFO=y |
128 | CONFIG_RT_MUTEXES=y | 165 | CONFIG_RT_MUTEXES=y |
@@ -134,8 +171,7 @@ CONFIG_MODULE_UNLOAD=y | |||
134 | # CONFIG_MODVERSIONS is not set | 171 | # CONFIG_MODVERSIONS is not set |
135 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 172 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
136 | CONFIG_BLOCK=y | 173 | CONFIG_BLOCK=y |
137 | CONFIG_LBD=y | 174 | CONFIG_LBDAF=y |
138 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
139 | # CONFIG_BLK_DEV_BSG is not set | 175 | # CONFIG_BLK_DEV_BSG is not set |
140 | # CONFIG_BLK_DEV_INTEGRITY is not set | 176 | # CONFIG_BLK_DEV_INTEGRITY is not set |
141 | 177 | ||
@@ -143,19 +179,41 @@ CONFIG_LBD=y | |||
143 | # IO Schedulers | 179 | # IO Schedulers |
144 | # | 180 | # |
145 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
148 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 185 | CONFIG_DEFAULT_CFQ=y |
152 | # CONFIG_DEFAULT_NOOP is not set | 186 | # CONFIG_DEFAULT_NOOP is not set |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="cfq" |
154 | CONFIG_CLASSIC_RCU=y | 188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
155 | # CONFIG_TREE_RCU is not set | 189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
156 | # CONFIG_PREEMPT_RCU is not set | 190 | # CONFIG_INLINE_SPIN_LOCK is not set |
157 | # CONFIG_TREE_RCU_TRACE is not set | 191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
158 | # CONFIG_PREEMPT_RCU_TRACE is not set | 192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
160 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 218 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
161 | 219 | ||
@@ -176,6 +234,8 @@ CONFIG_EBONY=y | |||
176 | # CONFIG_ARCHES is not set | 234 | # CONFIG_ARCHES is not set |
177 | # CONFIG_CANYONLANDS is not set | 235 | # CONFIG_CANYONLANDS is not set |
178 | # CONFIG_GLACIER is not set | 236 | # CONFIG_GLACIER is not set |
237 | # CONFIG_REDWOOD is not set | ||
238 | # CONFIG_EIGER is not set | ||
179 | # CONFIG_YOSEMITE is not set | 239 | # CONFIG_YOSEMITE is not set |
180 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 240 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
181 | # CONFIG_PPC44x_SIMPLE is not set | 241 | # CONFIG_PPC44x_SIMPLE is not set |
@@ -218,10 +278,12 @@ CONFIG_BINFMT_ELF=y | |||
218 | # CONFIG_BINFMT_MISC is not set | 278 | # CONFIG_BINFMT_MISC is not set |
219 | CONFIG_MATH_EMULATION=y | 279 | CONFIG_MATH_EMULATION=y |
220 | # CONFIG_IOMMU_HELPER is not set | 280 | # CONFIG_IOMMU_HELPER is not set |
221 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 281 | # CONFIG_SWIOTLB is not set |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
223 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 283 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
224 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
285 | CONFIG_SPARSE_IRQ=y | ||
286 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
225 | CONFIG_ARCH_FLATMEM_ENABLE=y | 287 | CONFIG_ARCH_FLATMEM_ENABLE=y |
226 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 288 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
227 | CONFIG_SELECT_MEMORY_MODEL=y | 289 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -237,10 +299,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
237 | CONFIG_ZONE_DMA_FLAG=1 | 299 | CONFIG_ZONE_DMA_FLAG=1 |
238 | CONFIG_BOUNCE=y | 300 | CONFIG_BOUNCE=y |
239 | CONFIG_VIRT_TO_BUS=y | 301 | CONFIG_VIRT_TO_BUS=y |
240 | CONFIG_UNEVICTABLE_LRU=y | 302 | # CONFIG_KSM is not set |
303 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
304 | CONFIG_STDBINUTILS=y | ||
241 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
242 | # CONFIG_PPC_16K_PAGES is not set | 306 | # CONFIG_PPC_16K_PAGES is not set |
243 | # CONFIG_PPC_64K_PAGES is not set | 307 | # CONFIG_PPC_64K_PAGES is not set |
308 | # CONFIG_PPC_256K_PAGES is not set | ||
244 | CONFIG_FORCE_MAX_ZONEORDER=11 | 309 | CONFIG_FORCE_MAX_ZONEORDER=11 |
245 | CONFIG_PROC_DEVICETREE=y | 310 | CONFIG_PROC_DEVICETREE=y |
246 | # CONFIG_CMDLINE_BOOL is not set | 311 | # CONFIG_CMDLINE_BOOL is not set |
@@ -264,6 +329,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
264 | # CONFIG_PCI_LEGACY is not set | 329 | # CONFIG_PCI_LEGACY is not set |
265 | # CONFIG_PCI_DEBUG is not set | 330 | # CONFIG_PCI_DEBUG is not set |
266 | # CONFIG_PCI_STUB is not set | 331 | # CONFIG_PCI_STUB is not set |
332 | # CONFIG_PCI_IOV is not set | ||
267 | # CONFIG_PCCARD is not set | 333 | # CONFIG_PCCARD is not set |
268 | # CONFIG_HOTPLUG_PCI is not set | 334 | # CONFIG_HOTPLUG_PCI is not set |
269 | # CONFIG_HAS_RAPIDIO is not set | 335 | # CONFIG_HAS_RAPIDIO is not set |
@@ -281,14 +347,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
281 | CONFIG_KERNEL_START=0xc0000000 | 347 | CONFIG_KERNEL_START=0xc0000000 |
282 | CONFIG_PHYSICAL_START=0x00000000 | 348 | CONFIG_PHYSICAL_START=0x00000000 |
283 | CONFIG_TASK_SIZE=0xc0000000 | 349 | CONFIG_TASK_SIZE=0xc0000000 |
284 | CONFIG_CONSISTENT_START=0xff100000 | ||
285 | CONFIG_CONSISTENT_SIZE=0x00200000 | 350 | CONFIG_CONSISTENT_SIZE=0x00200000 |
286 | CONFIG_NET=y | 351 | CONFIG_NET=y |
287 | 352 | ||
288 | # | 353 | # |
289 | # Networking options | 354 | # Networking options |
290 | # | 355 | # |
291 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
292 | CONFIG_PACKET=y | 356 | CONFIG_PACKET=y |
293 | # CONFIG_PACKET_MMAP is not set | 357 | # CONFIG_PACKET_MMAP is not set |
294 | CONFIG_UNIX=y | 358 | CONFIG_UNIX=y |
@@ -325,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
325 | # CONFIG_NETFILTER is not set | 389 | # CONFIG_NETFILTER is not set |
326 | # CONFIG_IP_DCCP is not set | 390 | # CONFIG_IP_DCCP is not set |
327 | # CONFIG_IP_SCTP is not set | 391 | # CONFIG_IP_SCTP is not set |
392 | # CONFIG_RDS is not set | ||
328 | # CONFIG_TIPC is not set | 393 | # CONFIG_TIPC is not set |
329 | # CONFIG_ATM is not set | 394 | # CONFIG_ATM is not set |
330 | # CONFIG_BRIDGE is not set | 395 | # CONFIG_BRIDGE is not set |
@@ -338,6 +403,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
338 | # CONFIG_LAPB is not set | 403 | # CONFIG_LAPB is not set |
339 | # CONFIG_ECONET is not set | 404 | # CONFIG_ECONET is not set |
340 | # CONFIG_WAN_ROUTER is not set | 405 | # CONFIG_WAN_ROUTER is not set |
406 | # CONFIG_PHONET is not set | ||
407 | # CONFIG_IEEE802154 is not set | ||
341 | # CONFIG_NET_SCHED is not set | 408 | # CONFIG_NET_SCHED is not set |
342 | # CONFIG_DCB is not set | 409 | # CONFIG_DCB is not set |
343 | 410 | ||
@@ -350,8 +417,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
350 | # CONFIG_IRDA is not set | 417 | # CONFIG_IRDA is not set |
351 | # CONFIG_BT is not set | 418 | # CONFIG_BT is not set |
352 | # CONFIG_AF_RXRPC is not set | 419 | # CONFIG_AF_RXRPC is not set |
353 | # CONFIG_PHONET is not set | 420 | CONFIG_WIRELESS=y |
354 | # CONFIG_WIRELESS is not set | 421 | # CONFIG_CFG80211 is not set |
422 | # CONFIG_LIB80211 is not set | ||
423 | |||
424 | # | ||
425 | # CFG80211 needs to be enabled for MAC80211 | ||
426 | # | ||
355 | # CONFIG_WIMAX is not set | 427 | # CONFIG_WIMAX is not set |
356 | # CONFIG_RFKILL is not set | 428 | # CONFIG_RFKILL is not set |
357 | # CONFIG_NET_9P is not set | 429 | # CONFIG_NET_9P is not set |
@@ -364,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
364 | # Generic Driver Options | 436 | # Generic Driver Options |
365 | # | 437 | # |
366 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 438 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
439 | # CONFIG_DEVTMPFS is not set | ||
367 | CONFIG_STANDALONE=y | 440 | CONFIG_STANDALONE=y |
368 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 441 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
369 | CONFIG_FW_LOADER=y | 442 | CONFIG_FW_LOADER=y |
@@ -376,9 +449,9 @@ CONFIG_CONNECTOR=y | |||
376 | CONFIG_PROC_EVENTS=y | 449 | CONFIG_PROC_EVENTS=y |
377 | CONFIG_MTD=y | 450 | CONFIG_MTD=y |
378 | # CONFIG_MTD_DEBUG is not set | 451 | # CONFIG_MTD_DEBUG is not set |
452 | # CONFIG_MTD_TESTS is not set | ||
379 | # CONFIG_MTD_CONCAT is not set | 453 | # CONFIG_MTD_CONCAT is not set |
380 | CONFIG_MTD_PARTITIONS=y | 454 | CONFIG_MTD_PARTITIONS=y |
381 | # CONFIG_MTD_TESTS is not set | ||
382 | # CONFIG_MTD_REDBOOT_PARTS is not set | 455 | # CONFIG_MTD_REDBOOT_PARTS is not set |
383 | # CONFIG_MTD_CMDLINE_PARTS is not set | 456 | # CONFIG_MTD_CMDLINE_PARTS is not set |
384 | CONFIG_MTD_OF_PARTS=y | 457 | CONFIG_MTD_OF_PARTS=y |
@@ -453,7 +526,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
453 | # LPDDR flash memory drivers | 526 | # LPDDR flash memory drivers |
454 | # | 527 | # |
455 | # CONFIG_MTD_LPDDR is not set | 528 | # CONFIG_MTD_LPDDR is not set |
456 | # CONFIG_MTD_QINFO_PROBE is not set | ||
457 | 529 | ||
458 | # | 530 | # |
459 | # UBI - Unsorted block images | 531 | # UBI - Unsorted block images |
@@ -469,6 +541,7 @@ CONFIG_BLK_DEV=y | |||
469 | # CONFIG_BLK_DEV_UMEM is not set | 541 | # CONFIG_BLK_DEV_UMEM is not set |
470 | # CONFIG_BLK_DEV_COW_COMMON is not set | 542 | # CONFIG_BLK_DEV_COW_COMMON is not set |
471 | # CONFIG_BLK_DEV_LOOP is not set | 543 | # CONFIG_BLK_DEV_LOOP is not set |
544 | # CONFIG_BLK_DEV_DRBD is not set | ||
472 | # CONFIG_BLK_DEV_NBD is not set | 545 | # CONFIG_BLK_DEV_NBD is not set |
473 | # CONFIG_BLK_DEV_SX8 is not set | 546 | # CONFIG_BLK_DEV_SX8 is not set |
474 | CONFIG_BLK_DEV_RAM=y | 547 | CONFIG_BLK_DEV_RAM=y |
@@ -481,12 +554,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
481 | # CONFIG_BLK_DEV_HD is not set | 554 | # CONFIG_BLK_DEV_HD is not set |
482 | CONFIG_MISC_DEVICES=y | 555 | CONFIG_MISC_DEVICES=y |
483 | # CONFIG_PHANTOM is not set | 556 | # CONFIG_PHANTOM is not set |
484 | # CONFIG_EEPROM_93CX6 is not set | ||
485 | # CONFIG_SGI_IOC4 is not set | 557 | # CONFIG_SGI_IOC4 is not set |
486 | # CONFIG_TIFM_CORE is not set | 558 | # CONFIG_TIFM_CORE is not set |
487 | # CONFIG_ENCLOSURE_SERVICES is not set | 559 | # CONFIG_ENCLOSURE_SERVICES is not set |
488 | # CONFIG_HP_ILO is not set | 560 | # CONFIG_HP_ILO is not set |
489 | # CONFIG_C2PORT is not set | 561 | # CONFIG_C2PORT is not set |
562 | |||
563 | # | ||
564 | # EEPROM support | ||
565 | # | ||
566 | # CONFIG_EEPROM_93CX6 is not set | ||
567 | # CONFIG_CB710_CORE is not set | ||
490 | CONFIG_HAVE_IDE=y | 568 | CONFIG_HAVE_IDE=y |
491 | # CONFIG_IDE is not set | 569 | # CONFIG_IDE is not set |
492 | 570 | ||
@@ -506,7 +584,11 @@ CONFIG_HAVE_IDE=y | |||
506 | # | 584 | # |
507 | 585 | ||
508 | # | 586 | # |
509 | # Enable only one of the two stacks, unless you know what you are doing | 587 | # You can enable one or both FireWire driver stacks. |
588 | # | ||
589 | |||
590 | # | ||
591 | # See the help texts for more information. | ||
510 | # | 592 | # |
511 | # CONFIG_FIREWIRE is not set | 593 | # CONFIG_FIREWIRE is not set |
512 | # CONFIG_IEEE1394 is not set | 594 | # CONFIG_IEEE1394 is not set |
@@ -527,6 +609,8 @@ CONFIG_NET_ETHERNET=y | |||
527 | # CONFIG_SUNGEM is not set | 609 | # CONFIG_SUNGEM is not set |
528 | # CONFIG_CASSINI is not set | 610 | # CONFIG_CASSINI is not set |
529 | # CONFIG_NET_VENDOR_3COM is not set | 611 | # CONFIG_NET_VENDOR_3COM is not set |
612 | # CONFIG_ETHOC is not set | ||
613 | # CONFIG_DNET is not set | ||
530 | # CONFIG_NET_TULIP is not set | 614 | # CONFIG_NET_TULIP is not set |
531 | # CONFIG_HP100 is not set | 615 | # CONFIG_HP100 is not set |
532 | CONFIG_IBM_NEW_EMAC=y | 616 | CONFIG_IBM_NEW_EMAC=y |
@@ -545,7 +629,10 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
545 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 629 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
546 | # CONFIG_NET_PCI is not set | 630 | # CONFIG_NET_PCI is not set |
547 | # CONFIG_B44 is not set | 631 | # CONFIG_B44 is not set |
632 | # CONFIG_KS8842 is not set | ||
633 | # CONFIG_KS8851_MLL is not set | ||
548 | # CONFIG_ATL2 is not set | 634 | # CONFIG_ATL2 is not set |
635 | # CONFIG_XILINX_EMACLITE is not set | ||
549 | CONFIG_NETDEV_1000=y | 636 | CONFIG_NETDEV_1000=y |
550 | # CONFIG_ACENIC is not set | 637 | # CONFIG_ACENIC is not set |
551 | # CONFIG_DL2K is not set | 638 | # CONFIG_DL2K is not set |
@@ -553,6 +640,7 @@ CONFIG_NETDEV_1000=y | |||
553 | # CONFIG_E1000E is not set | 640 | # CONFIG_E1000E is not set |
554 | # CONFIG_IP1000 is not set | 641 | # CONFIG_IP1000 is not set |
555 | # CONFIG_IGB is not set | 642 | # CONFIG_IGB is not set |
643 | # CONFIG_IGBVF is not set | ||
556 | # CONFIG_NS83820 is not set | 644 | # CONFIG_NS83820 is not set |
557 | # CONFIG_HAMACHI is not set | 645 | # CONFIG_HAMACHI is not set |
558 | # CONFIG_YELLOWFIN is not set | 646 | # CONFIG_YELLOWFIN is not set |
@@ -563,9 +651,13 @@ CONFIG_NETDEV_1000=y | |||
563 | # CONFIG_VIA_VELOCITY is not set | 651 | # CONFIG_VIA_VELOCITY is not set |
564 | # CONFIG_TIGON3 is not set | 652 | # CONFIG_TIGON3 is not set |
565 | # CONFIG_BNX2 is not set | 653 | # CONFIG_BNX2 is not set |
654 | # CONFIG_CNIC is not set | ||
655 | # CONFIG_MV643XX_ETH is not set | ||
656 | # CONFIG_XILINX_LL_TEMAC is not set | ||
566 | # CONFIG_QLA3XXX is not set | 657 | # CONFIG_QLA3XXX is not set |
567 | # CONFIG_ATL1 is not set | 658 | # CONFIG_ATL1 is not set |
568 | # CONFIG_ATL1E is not set | 659 | # CONFIG_ATL1E is not set |
660 | # CONFIG_ATL1C is not set | ||
569 | # CONFIG_JME is not set | 661 | # CONFIG_JME is not set |
570 | CONFIG_NETDEV_10000=y | 662 | CONFIG_NETDEV_10000=y |
571 | # CONFIG_CHELSIO_T1 is not set | 663 | # CONFIG_CHELSIO_T1 is not set |
@@ -575,6 +667,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
575 | # CONFIG_IXGBE is not set | 667 | # CONFIG_IXGBE is not set |
576 | # CONFIG_IXGB is not set | 668 | # CONFIG_IXGB is not set |
577 | # CONFIG_S2IO is not set | 669 | # CONFIG_S2IO is not set |
670 | # CONFIG_VXGE is not set | ||
578 | # CONFIG_MYRI10GE is not set | 671 | # CONFIG_MYRI10GE is not set |
579 | # CONFIG_NETXEN_NIC is not set | 672 | # CONFIG_NETXEN_NIC is not set |
580 | # CONFIG_NIU is not set | 673 | # CONFIG_NIU is not set |
@@ -584,14 +677,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
584 | # CONFIG_BNX2X is not set | 677 | # CONFIG_BNX2X is not set |
585 | # CONFIG_QLGE is not set | 678 | # CONFIG_QLGE is not set |
586 | # CONFIG_SFC is not set | 679 | # CONFIG_SFC is not set |
680 | # CONFIG_BE2NET is not set | ||
587 | # CONFIG_TR is not set | 681 | # CONFIG_TR is not set |
588 | 682 | CONFIG_WLAN=y | |
589 | # | 683 | # CONFIG_AIRO is not set |
590 | # Wireless LAN | 684 | # CONFIG_ATMEL is not set |
591 | # | 685 | # CONFIG_PRISM54 is not set |
592 | # CONFIG_WLAN_PRE80211 is not set | 686 | # CONFIG_HOSTAP is not set |
593 | # CONFIG_WLAN_80211 is not set | ||
594 | # CONFIG_IWLWIFI_LEDS is not set | ||
595 | 687 | ||
596 | # | 688 | # |
597 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 689 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -604,6 +696,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
604 | # CONFIG_NETCONSOLE is not set | 696 | # CONFIG_NETCONSOLE is not set |
605 | # CONFIG_NETPOLL is not set | 697 | # CONFIG_NETPOLL is not set |
606 | # CONFIG_NET_POLL_CONTROLLER is not set | 698 | # CONFIG_NET_POLL_CONTROLLER is not set |
699 | # CONFIG_VMXNET3 is not set | ||
607 | # CONFIG_ISDN is not set | 700 | # CONFIG_ISDN is not set |
608 | # CONFIG_PHONE is not set | 701 | # CONFIG_PHONE is not set |
609 | 702 | ||
@@ -649,6 +742,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
649 | # CONFIG_SERIAL_JSM is not set | 742 | # CONFIG_SERIAL_JSM is not set |
650 | CONFIG_SERIAL_OF_PLATFORM=y | 743 | CONFIG_SERIAL_OF_PLATFORM=y |
651 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 744 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
745 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
652 | CONFIG_UNIX98_PTYS=y | 746 | CONFIG_UNIX98_PTYS=y |
653 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 747 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
654 | CONFIG_LEGACY_PTYS=y | 748 | CONFIG_LEGACY_PTYS=y |
@@ -665,6 +759,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
665 | CONFIG_DEVPORT=y | 759 | CONFIG_DEVPORT=y |
666 | # CONFIG_I2C is not set | 760 | # CONFIG_I2C is not set |
667 | # CONFIG_SPI is not set | 761 | # CONFIG_SPI is not set |
762 | |||
763 | # | ||
764 | # PPS support | ||
765 | # | ||
766 | # CONFIG_PPS is not set | ||
668 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 767 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
669 | # CONFIG_GPIOLIB is not set | 768 | # CONFIG_GPIOLIB is not set |
670 | # CONFIG_W1 is not set | 769 | # CONFIG_W1 is not set |
@@ -687,27 +786,13 @@ CONFIG_SSB_POSSIBLE=y | |||
687 | # CONFIG_HTC_PASIC3 is not set | 786 | # CONFIG_HTC_PASIC3 is not set |
688 | # CONFIG_MFD_TMIO is not set | 787 | # CONFIG_MFD_TMIO is not set |
689 | # CONFIG_REGULATOR is not set | 788 | # CONFIG_REGULATOR is not set |
690 | 789 | # CONFIG_MEDIA_SUPPORT is not set | |
691 | # | ||
692 | # Multimedia devices | ||
693 | # | ||
694 | |||
695 | # | ||
696 | # Multimedia core support | ||
697 | # | ||
698 | # CONFIG_VIDEO_DEV is not set | ||
699 | # CONFIG_DVB_CORE is not set | ||
700 | # CONFIG_VIDEO_MEDIA is not set | ||
701 | |||
702 | # | ||
703 | # Multimedia drivers | ||
704 | # | ||
705 | # CONFIG_DAB is not set | ||
706 | 790 | ||
707 | # | 791 | # |
708 | # Graphics support | 792 | # Graphics support |
709 | # | 793 | # |
710 | # CONFIG_AGP is not set | 794 | # CONFIG_AGP is not set |
795 | CONFIG_VGA_ARB=y | ||
711 | # CONFIG_DRM is not set | 796 | # CONFIG_DRM is not set |
712 | # CONFIG_VGASTATE is not set | 797 | # CONFIG_VGASTATE is not set |
713 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 798 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -732,7 +817,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
732 | # | 817 | # |
733 | 818 | ||
734 | # | 819 | # |
735 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 820 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
736 | # | 821 | # |
737 | # CONFIG_USB_GADGET is not set | 822 | # CONFIG_USB_GADGET is not set |
738 | 823 | ||
@@ -748,7 +833,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
748 | # CONFIG_EDAC is not set | 833 | # CONFIG_EDAC is not set |
749 | # CONFIG_RTC_CLASS is not set | 834 | # CONFIG_RTC_CLASS is not set |
750 | # CONFIG_DMADEVICES is not set | 835 | # CONFIG_DMADEVICES is not set |
836 | # CONFIG_AUXDISPLAY is not set | ||
751 | # CONFIG_UIO is not set | 837 | # CONFIG_UIO is not set |
838 | |||
839 | # | ||
840 | # TI VLYNQ | ||
841 | # | ||
752 | # CONFIG_STAGING is not set | 842 | # CONFIG_STAGING is not set |
753 | 843 | ||
754 | # | 844 | # |
@@ -759,14 +849,17 @@ CONFIG_EXT2_FS=y | |||
759 | # CONFIG_EXT2_FS_XIP is not set | 849 | # CONFIG_EXT2_FS_XIP is not set |
760 | # CONFIG_EXT3_FS is not set | 850 | # CONFIG_EXT3_FS is not set |
761 | # CONFIG_EXT4_FS is not set | 851 | # CONFIG_EXT4_FS is not set |
852 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
762 | # CONFIG_REISERFS_FS is not set | 853 | # CONFIG_REISERFS_FS is not set |
763 | # CONFIG_JFS_FS is not set | 854 | # CONFIG_JFS_FS is not set |
764 | # CONFIG_FS_POSIX_ACL is not set | 855 | # CONFIG_FS_POSIX_ACL is not set |
765 | CONFIG_FILE_LOCKING=y | ||
766 | # CONFIG_XFS_FS is not set | 856 | # CONFIG_XFS_FS is not set |
767 | # CONFIG_GFS2_FS is not set | 857 | # CONFIG_GFS2_FS is not set |
768 | # CONFIG_OCFS2_FS is not set | 858 | # CONFIG_OCFS2_FS is not set |
769 | # CONFIG_BTRFS_FS is not set | 859 | # CONFIG_BTRFS_FS is not set |
860 | # CONFIG_NILFS2_FS is not set | ||
861 | CONFIG_FILE_LOCKING=y | ||
862 | CONFIG_FSNOTIFY=y | ||
770 | CONFIG_DNOTIFY=y | 863 | CONFIG_DNOTIFY=y |
771 | CONFIG_INOTIFY=y | 864 | CONFIG_INOTIFY=y |
772 | CONFIG_INOTIFY_USER=y | 865 | CONFIG_INOTIFY_USER=y |
@@ -776,6 +869,11 @@ CONFIG_INOTIFY_USER=y | |||
776 | # CONFIG_FUSE_FS is not set | 869 | # CONFIG_FUSE_FS is not set |
777 | 870 | ||
778 | # | 871 | # |
872 | # Caches | ||
873 | # | ||
874 | # CONFIG_FSCACHE is not set | ||
875 | |||
876 | # | ||
779 | # CD-ROM/DVD Filesystems | 877 | # CD-ROM/DVD Filesystems |
780 | # | 878 | # |
781 | # CONFIG_ISO9660_FS is not set | 879 | # CONFIG_ISO9660_FS is not set |
@@ -840,7 +938,6 @@ CONFIG_LOCKD=y | |||
840 | CONFIG_LOCKD_V4=y | 938 | CONFIG_LOCKD_V4=y |
841 | CONFIG_NFS_COMMON=y | 939 | CONFIG_NFS_COMMON=y |
842 | CONFIG_SUNRPC=y | 940 | CONFIG_SUNRPC=y |
843 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
844 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 941 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
845 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 942 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
846 | # CONFIG_SMB_FS is not set | 943 | # CONFIG_SMB_FS is not set |
@@ -856,6 +953,7 @@ CONFIG_SUNRPC=y | |||
856 | CONFIG_MSDOS_PARTITION=y | 953 | CONFIG_MSDOS_PARTITION=y |
857 | # CONFIG_NLS is not set | 954 | # CONFIG_NLS is not set |
858 | # CONFIG_DLM is not set | 955 | # CONFIG_DLM is not set |
956 | # CONFIG_BINARY_PRINTF is not set | ||
859 | 957 | ||
860 | # | 958 | # |
861 | # Library routines | 959 | # Library routines |
@@ -871,11 +969,13 @@ CONFIG_CRC32=y | |||
871 | # CONFIG_LIBCRC32C is not set | 969 | # CONFIG_LIBCRC32C is not set |
872 | CONFIG_ZLIB_INFLATE=y | 970 | CONFIG_ZLIB_INFLATE=y |
873 | CONFIG_ZLIB_DEFLATE=y | 971 | CONFIG_ZLIB_DEFLATE=y |
874 | CONFIG_PLIST=y | 972 | CONFIG_DECOMPRESS_GZIP=y |
875 | CONFIG_HAS_IOMEM=y | 973 | CONFIG_HAS_IOMEM=y |
876 | CONFIG_HAS_IOPORT=y | 974 | CONFIG_HAS_IOPORT=y |
877 | CONFIG_HAS_DMA=y | 975 | CONFIG_HAS_DMA=y |
878 | CONFIG_HAVE_LMB=y | 976 | CONFIG_HAVE_LMB=y |
977 | CONFIG_NLATTR=y | ||
978 | CONFIG_GENERIC_ATOMIC64=y | ||
879 | 979 | ||
880 | # | 980 | # |
881 | # Kernel hacking | 981 | # Kernel hacking |
@@ -885,6 +985,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
885 | CONFIG_ENABLE_MUST_CHECK=y | 985 | CONFIG_ENABLE_MUST_CHECK=y |
886 | CONFIG_FRAME_WARN=1024 | 986 | CONFIG_FRAME_WARN=1024 |
887 | CONFIG_MAGIC_SYSRQ=y | 987 | CONFIG_MAGIC_SYSRQ=y |
988 | # CONFIG_STRIP_ASM_SYMS is not set | ||
888 | # CONFIG_UNUSED_SYMBOLS is not set | 989 | # CONFIG_UNUSED_SYMBOLS is not set |
889 | CONFIG_DEBUG_FS=y | 990 | CONFIG_DEBUG_FS=y |
890 | # CONFIG_HEADERS_CHECK is not set | 991 | # CONFIG_HEADERS_CHECK is not set |
@@ -893,16 +994,23 @@ CONFIG_DEBUG_KERNEL=y | |||
893 | CONFIG_DETECT_SOFTLOCKUP=y | 994 | CONFIG_DETECT_SOFTLOCKUP=y |
894 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 995 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
895 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 996 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
997 | CONFIG_DETECT_HUNG_TASK=y | ||
998 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
999 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
896 | CONFIG_SCHED_DEBUG=y | 1000 | CONFIG_SCHED_DEBUG=y |
897 | # CONFIG_SCHEDSTATS is not set | 1001 | # CONFIG_SCHEDSTATS is not set |
898 | # CONFIG_TIMER_STATS is not set | 1002 | # CONFIG_TIMER_STATS is not set |
899 | # CONFIG_DEBUG_OBJECTS is not set | 1003 | # CONFIG_DEBUG_OBJECTS is not set |
900 | # CONFIG_SLUB_DEBUG_ON is not set | 1004 | # CONFIG_SLUB_DEBUG_ON is not set |
901 | # CONFIG_SLUB_STATS is not set | 1005 | # CONFIG_SLUB_STATS is not set |
1006 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
902 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1007 | # CONFIG_DEBUG_RT_MUTEXES is not set |
903 | # CONFIG_RT_MUTEX_TESTER is not set | 1008 | # CONFIG_RT_MUTEX_TESTER is not set |
904 | # CONFIG_DEBUG_SPINLOCK is not set | 1009 | # CONFIG_DEBUG_SPINLOCK is not set |
905 | # CONFIG_DEBUG_MUTEXES is not set | 1010 | # CONFIG_DEBUG_MUTEXES is not set |
1011 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1012 | # CONFIG_PROVE_LOCKING is not set | ||
1013 | # CONFIG_LOCK_STAT is not set | ||
906 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1014 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
907 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1015 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
908 | # CONFIG_DEBUG_KOBJECT is not set | 1016 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -914,35 +1022,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
914 | # CONFIG_DEBUG_LIST is not set | 1022 | # CONFIG_DEBUG_LIST is not set |
915 | # CONFIG_DEBUG_SG is not set | 1023 | # CONFIG_DEBUG_SG is not set |
916 | # CONFIG_DEBUG_NOTIFIERS is not set | 1024 | # CONFIG_DEBUG_NOTIFIERS is not set |
917 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1025 | # CONFIG_DEBUG_CREDENTIALS is not set |
918 | # CONFIG_RCU_TORTURE_TEST is not set | 1026 | # CONFIG_RCU_TORTURE_TEST is not set |
919 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1027 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
920 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1028 | # CONFIG_BACKTRACE_SELF_TEST is not set |
921 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1029 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1030 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
922 | # CONFIG_FAULT_INJECTION is not set | 1031 | # CONFIG_FAULT_INJECTION is not set |
923 | # CONFIG_LATENCYTOP is not set | 1032 | # CONFIG_LATENCYTOP is not set |
924 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1033 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1034 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
925 | CONFIG_HAVE_FUNCTION_TRACER=y | 1035 | CONFIG_HAVE_FUNCTION_TRACER=y |
1036 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
926 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1037 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
927 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1038 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
928 | 1039 | CONFIG_TRACING_SUPPORT=y | |
929 | # | 1040 | CONFIG_FTRACE=y |
930 | # Tracers | ||
931 | # | ||
932 | # CONFIG_FUNCTION_TRACER is not set | 1041 | # CONFIG_FUNCTION_TRACER is not set |
1042 | # CONFIG_IRQSOFF_TRACER is not set | ||
933 | # CONFIG_SCHED_TRACER is not set | 1043 | # CONFIG_SCHED_TRACER is not set |
934 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1044 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
935 | # CONFIG_BOOT_TRACER is not set | 1045 | # CONFIG_BOOT_TRACER is not set |
936 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1046 | CONFIG_BRANCH_PROFILE_NONE=y |
1047 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1048 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
937 | # CONFIG_STACK_TRACER is not set | 1049 | # CONFIG_STACK_TRACER is not set |
938 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1050 | # CONFIG_KMEMTRACE is not set |
1051 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1052 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1053 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1054 | # CONFIG_DMA_API_DEBUG is not set | ||
939 | # CONFIG_SAMPLES is not set | 1055 | # CONFIG_SAMPLES is not set |
940 | CONFIG_HAVE_ARCH_KGDB=y | 1056 | CONFIG_HAVE_ARCH_KGDB=y |
941 | # CONFIG_KGDB is not set | 1057 | # CONFIG_KGDB is not set |
1058 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1059 | CONFIG_PPC_WERROR=y | ||
942 | CONFIG_PRINT_STACK_DEPTH=64 | 1060 | CONFIG_PRINT_STACK_DEPTH=64 |
943 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1061 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
944 | # CONFIG_DEBUG_STACK_USAGE is not set | 1062 | # CONFIG_DEBUG_STACK_USAGE is not set |
945 | # CONFIG_DEBUG_PAGEALLOC is not set | 1063 | # CONFIG_PPC_EMULATED_STATS is not set |
946 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1064 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
947 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1065 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
948 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1066 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -958,13 +1076,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
958 | # CONFIG_KEYS is not set | 1076 | # CONFIG_KEYS is not set |
959 | # CONFIG_SECURITY is not set | 1077 | # CONFIG_SECURITY is not set |
960 | # CONFIG_SECURITYFS is not set | 1078 | # CONFIG_SECURITYFS is not set |
961 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1079 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1080 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1081 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1082 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1083 | CONFIG_DEFAULT_SECURITY="" | ||
962 | CONFIG_CRYPTO=y | 1084 | CONFIG_CRYPTO=y |
963 | 1085 | ||
964 | # | 1086 | # |
965 | # Crypto core or helper | 1087 | # Crypto core or helper |
966 | # | 1088 | # |
967 | # CONFIG_CRYPTO_FIPS is not set | ||
968 | CONFIG_CRYPTO_ALGAPI=y | 1089 | CONFIG_CRYPTO_ALGAPI=y |
969 | CONFIG_CRYPTO_ALGAPI2=y | 1090 | CONFIG_CRYPTO_ALGAPI2=y |
970 | CONFIG_CRYPTO_AEAD2=y | 1091 | CONFIG_CRYPTO_AEAD2=y |
@@ -973,10 +1094,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
973 | CONFIG_CRYPTO_HASH=y | 1094 | CONFIG_CRYPTO_HASH=y |
974 | CONFIG_CRYPTO_HASH2=y | 1095 | CONFIG_CRYPTO_HASH2=y |
975 | CONFIG_CRYPTO_RNG2=y | 1096 | CONFIG_CRYPTO_RNG2=y |
1097 | CONFIG_CRYPTO_PCOMP=y | ||
976 | CONFIG_CRYPTO_MANAGER=y | 1098 | CONFIG_CRYPTO_MANAGER=y |
977 | CONFIG_CRYPTO_MANAGER2=y | 1099 | CONFIG_CRYPTO_MANAGER2=y |
978 | # CONFIG_CRYPTO_GF128MUL is not set | 1100 | # CONFIG_CRYPTO_GF128MUL is not set |
979 | # CONFIG_CRYPTO_NULL is not set | 1101 | # CONFIG_CRYPTO_NULL is not set |
1102 | CONFIG_CRYPTO_WORKQUEUE=y | ||
980 | # CONFIG_CRYPTO_CRYPTD is not set | 1103 | # CONFIG_CRYPTO_CRYPTD is not set |
981 | # CONFIG_CRYPTO_AUTHENC is not set | 1104 | # CONFIG_CRYPTO_AUTHENC is not set |
982 | # CONFIG_CRYPTO_TEST is not set | 1105 | # CONFIG_CRYPTO_TEST is not set |
@@ -1004,11 +1127,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1004 | # | 1127 | # |
1005 | # CONFIG_CRYPTO_HMAC is not set | 1128 | # CONFIG_CRYPTO_HMAC is not set |
1006 | # CONFIG_CRYPTO_XCBC is not set | 1129 | # CONFIG_CRYPTO_XCBC is not set |
1130 | # CONFIG_CRYPTO_VMAC is not set | ||
1007 | 1131 | ||
1008 | # | 1132 | # |
1009 | # Digest | 1133 | # Digest |
1010 | # | 1134 | # |
1011 | # CONFIG_CRYPTO_CRC32C is not set | 1135 | # CONFIG_CRYPTO_CRC32C is not set |
1136 | # CONFIG_CRYPTO_GHASH is not set | ||
1012 | # CONFIG_CRYPTO_MD4 is not set | 1137 | # CONFIG_CRYPTO_MD4 is not set |
1013 | CONFIG_CRYPTO_MD5=y | 1138 | CONFIG_CRYPTO_MD5=y |
1014 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1139 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1045,6 +1170,7 @@ CONFIG_CRYPTO_DES=y | |||
1045 | # Compression | 1170 | # Compression |
1046 | # | 1171 | # |
1047 | # CONFIG_CRYPTO_DEFLATE is not set | 1172 | # CONFIG_CRYPTO_DEFLATE is not set |
1173 | # CONFIG_CRYPTO_ZLIB is not set | ||
1048 | # CONFIG_CRYPTO_LZO is not set | 1174 | # CONFIG_CRYPTO_LZO is not set |
1049 | 1175 | ||
1050 | # | 1176 | # |
diff --git a/arch/powerpc/configs/44x/eiger_defconfig b/arch/powerpc/configs/44x/eiger_defconfig index 007f3bd939e7..e3149bade0b2 100644 --- a/arch/powerpc/configs/44x/eiger_defconfig +++ b/arch/powerpc/configs/44x/eiger_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.31-rc6 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Wed Aug 19 13:06:50 2009 | 4 | # Mon Jan 4 14:33:04 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -34,7 +34,9 @@ CONFIG_GENERIC_CLOCKEVENTS=y | |||
34 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
37 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
38 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
39 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
40 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | 42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y |
@@ -57,6 +59,7 @@ CONFIG_AUDIT_ARCH=y | |||
57 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
58 | CONFIG_DTC=y | 60 | CONFIG_DTC=y |
59 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
60 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
61 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
62 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
@@ -84,11 +87,13 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
84 | # | 87 | # |
85 | # RCU Subsystem | 88 | # RCU Subsystem |
86 | # | 89 | # |
87 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
88 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
89 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
90 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
91 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
92 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
93 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
94 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
@@ -122,22 +127,21 @@ CONFIG_TIMERFD=y | |||
122 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
123 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
124 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
125 | CONFIG_HAVE_PERF_COUNTERS=y | 130 | CONFIG_HAVE_PERF_EVENTS=y |
126 | 131 | ||
127 | # | 132 | # |
128 | # Performance Counters | 133 | # Kernel Performance Events And Counters |
129 | # | 134 | # |
135 | # CONFIG_PERF_EVENTS is not set | ||
130 | # CONFIG_PERF_COUNTERS is not set | 136 | # CONFIG_PERF_COUNTERS is not set |
131 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
132 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
133 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
134 | # CONFIG_STRIP_ASM_SYMS is not set | ||
135 | CONFIG_COMPAT_BRK=y | 140 | CONFIG_COMPAT_BRK=y |
136 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
137 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
138 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
139 | # CONFIG_PROFILING is not set | 144 | # CONFIG_PROFILING is not set |
140 | # CONFIG_MARKERS is not set | ||
141 | CONFIG_HAVE_OPROFILE=y | 145 | CONFIG_HAVE_OPROFILE=y |
142 | # CONFIG_KPROBES is not set | 146 | # CONFIG_KPROBES is not set |
143 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 147 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -145,6 +149,8 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
145 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
146 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
147 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
148 | 154 | ||
149 | # | 155 | # |
150 | # GCOV-based kernel profiling | 156 | # GCOV-based kernel profiling |
@@ -170,14 +176,41 @@ CONFIG_LBDAF=y | |||
170 | # IO Schedulers | 176 | # IO Schedulers |
171 | # | 177 | # |
172 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
173 | CONFIG_IOSCHED_AS=y | ||
174 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
175 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
176 | CONFIG_DEFAULT_AS=y | ||
177 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
178 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
179 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
180 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
181 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
182 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
183 | 216 | ||
@@ -243,10 +276,11 @@ CONFIG_BINFMT_ELF=y | |||
243 | # CONFIG_MATH_EMULATION is not set | 276 | # CONFIG_MATH_EMULATION is not set |
244 | # CONFIG_IOMMU_HELPER is not set | 277 | # CONFIG_IOMMU_HELPER is not set |
245 | # CONFIG_SWIOTLB is not set | 278 | # CONFIG_SWIOTLB is not set |
246 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | ||
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
248 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
249 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
283 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
250 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
251 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
252 | CONFIG_SELECT_MEMORY_MODEL=y | 286 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -262,8 +296,7 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
262 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
263 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
264 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
265 | CONFIG_HAVE_MLOCK=y | 299 | # CONFIG_KSM is not set |
266 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
267 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
268 | CONFIG_STDBINUTILS=y | 301 | CONFIG_STDBINUTILS=y |
269 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
@@ -358,6 +391,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
358 | # CONFIG_NETFILTER is not set | 391 | # CONFIG_NETFILTER is not set |
359 | # CONFIG_IP_DCCP is not set | 392 | # CONFIG_IP_DCCP is not set |
360 | # CONFIG_IP_SCTP is not set | 393 | # CONFIG_IP_SCTP is not set |
394 | # CONFIG_RDS is not set | ||
361 | # CONFIG_TIPC is not set | 395 | # CONFIG_TIPC is not set |
362 | # CONFIG_ATM is not set | 396 | # CONFIG_ATM is not set |
363 | # CONFIG_BRIDGE is not set | 397 | # CONFIG_BRIDGE is not set |
@@ -387,14 +421,11 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
387 | # CONFIG_AF_RXRPC is not set | 421 | # CONFIG_AF_RXRPC is not set |
388 | CONFIG_WIRELESS=y | 422 | CONFIG_WIRELESS=y |
389 | # CONFIG_CFG80211 is not set | 423 | # CONFIG_CFG80211 is not set |
390 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
391 | # CONFIG_WIRELESS_EXT is not set | ||
392 | # CONFIG_LIB80211 is not set | 424 | # CONFIG_LIB80211 is not set |
393 | 425 | ||
394 | # | 426 | # |
395 | # CFG80211 needs to be enabled for MAC80211 | 427 | # CFG80211 needs to be enabled for MAC80211 |
396 | # | 428 | # |
397 | CONFIG_MAC80211_DEFAULT_PS_VALUE=0 | ||
398 | # CONFIG_WIMAX is not set | 429 | # CONFIG_WIMAX is not set |
399 | # CONFIG_RFKILL is not set | 430 | # CONFIG_RFKILL is not set |
400 | # CONFIG_NET_9P is not set | 431 | # CONFIG_NET_9P is not set |
@@ -407,6 +438,7 @@ CONFIG_MAC80211_DEFAULT_PS_VALUE=0 | |||
407 | # Generic Driver Options | 438 | # Generic Driver Options |
408 | # | 439 | # |
409 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 440 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
441 | # CONFIG_DEVTMPFS is not set | ||
410 | CONFIG_STANDALONE=y | 442 | CONFIG_STANDALONE=y |
411 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 443 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
412 | CONFIG_FW_LOADER=y | 444 | CONFIG_FW_LOADER=y |
@@ -419,9 +451,9 @@ CONFIG_CONNECTOR=y | |||
419 | CONFIG_PROC_EVENTS=y | 451 | CONFIG_PROC_EVENTS=y |
420 | CONFIG_MTD=y | 452 | CONFIG_MTD=y |
421 | # CONFIG_MTD_DEBUG is not set | 453 | # CONFIG_MTD_DEBUG is not set |
454 | # CONFIG_MTD_TESTS is not set | ||
422 | CONFIG_MTD_CONCAT=y | 455 | CONFIG_MTD_CONCAT=y |
423 | CONFIG_MTD_PARTITIONS=y | 456 | CONFIG_MTD_PARTITIONS=y |
424 | # CONFIG_MTD_TESTS is not set | ||
425 | # CONFIG_MTD_REDBOOT_PARTS is not set | 457 | # CONFIG_MTD_REDBOOT_PARTS is not set |
426 | CONFIG_MTD_CMDLINE_PARTS=y | 458 | CONFIG_MTD_CMDLINE_PARTS=y |
427 | CONFIG_MTD_OF_PARTS=y | 459 | CONFIG_MTD_OF_PARTS=y |
@@ -522,6 +554,7 @@ CONFIG_BLK_DEV=y | |||
522 | # CONFIG_BLK_DEV_UMEM is not set | 554 | # CONFIG_BLK_DEV_UMEM is not set |
523 | # CONFIG_BLK_DEV_COW_COMMON is not set | 555 | # CONFIG_BLK_DEV_COW_COMMON is not set |
524 | # CONFIG_BLK_DEV_LOOP is not set | 556 | # CONFIG_BLK_DEV_LOOP is not set |
557 | # CONFIG_BLK_DEV_DRBD is not set | ||
525 | # CONFIG_BLK_DEV_NBD is not set | 558 | # CONFIG_BLK_DEV_NBD is not set |
526 | # CONFIG_BLK_DEV_SX8 is not set | 559 | # CONFIG_BLK_DEV_SX8 is not set |
527 | CONFIG_BLK_DEV_RAM=y | 560 | CONFIG_BLK_DEV_RAM=y |
@@ -573,8 +606,11 @@ CONFIG_SCSI_SAS_ATTRS=y | |||
573 | CONFIG_SCSI_LOWLEVEL=y | 606 | CONFIG_SCSI_LOWLEVEL=y |
574 | # CONFIG_ISCSI_TCP is not set | 607 | # CONFIG_ISCSI_TCP is not set |
575 | # CONFIG_SCSI_BNX2_ISCSI is not set | 608 | # CONFIG_SCSI_BNX2_ISCSI is not set |
609 | # CONFIG_BE2ISCSI is not set | ||
576 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 610 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
611 | # CONFIG_SCSI_HPSA is not set | ||
577 | # CONFIG_SCSI_3W_9XXX is not set | 612 | # CONFIG_SCSI_3W_9XXX is not set |
613 | # CONFIG_SCSI_3W_SAS is not set | ||
578 | # CONFIG_SCSI_ACARD is not set | 614 | # CONFIG_SCSI_ACARD is not set |
579 | # CONFIG_SCSI_AACRAID is not set | 615 | # CONFIG_SCSI_AACRAID is not set |
580 | # CONFIG_SCSI_AIC7XXX is not set | 616 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -611,7 +647,10 @@ CONFIG_SCSI_LOWLEVEL=y | |||
611 | # CONFIG_SCSI_DC390T is not set | 647 | # CONFIG_SCSI_DC390T is not set |
612 | # CONFIG_SCSI_NSP32 is not set | 648 | # CONFIG_SCSI_NSP32 is not set |
613 | # CONFIG_SCSI_DEBUG is not set | 649 | # CONFIG_SCSI_DEBUG is not set |
650 | # CONFIG_SCSI_PMCRAID is not set | ||
651 | # CONFIG_SCSI_PM8001 is not set | ||
614 | # CONFIG_SCSI_SRP is not set | 652 | # CONFIG_SCSI_SRP is not set |
653 | # CONFIG_SCSI_BFA_FC is not set | ||
615 | # CONFIG_SCSI_DH is not set | 654 | # CONFIG_SCSI_DH is not set |
616 | # CONFIG_SCSI_OSD_INITIATOR is not set | 655 | # CONFIG_SCSI_OSD_INITIATOR is not set |
617 | # CONFIG_ATA is not set | 656 | # CONFIG_ATA is not set |
@@ -682,7 +721,9 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
682 | # CONFIG_NET_PCI is not set | 721 | # CONFIG_NET_PCI is not set |
683 | # CONFIG_B44 is not set | 722 | # CONFIG_B44 is not set |
684 | # CONFIG_KS8842 is not set | 723 | # CONFIG_KS8842 is not set |
724 | # CONFIG_KS8851_MLL is not set | ||
685 | # CONFIG_ATL2 is not set | 725 | # CONFIG_ATL2 is not set |
726 | # CONFIG_XILINX_EMACLITE is not set | ||
686 | CONFIG_NETDEV_1000=y | 727 | CONFIG_NETDEV_1000=y |
687 | # CONFIG_ACENIC is not set | 728 | # CONFIG_ACENIC is not set |
688 | # CONFIG_DL2K is not set | 729 | # CONFIG_DL2K is not set |
@@ -711,12 +752,11 @@ CONFIG_E1000E=y | |||
711 | # CONFIG_JME is not set | 752 | # CONFIG_JME is not set |
712 | # CONFIG_NETDEV_10000 is not set | 753 | # CONFIG_NETDEV_10000 is not set |
713 | # CONFIG_TR is not set | 754 | # CONFIG_TR is not set |
714 | 755 | CONFIG_WLAN=y | |
715 | # | 756 | # CONFIG_AIRO is not set |
716 | # Wireless LAN | 757 | # CONFIG_ATMEL is not set |
717 | # | 758 | # CONFIG_PRISM54 is not set |
718 | # CONFIG_WLAN_PRE80211 is not set | 759 | # CONFIG_HOSTAP is not set |
719 | # CONFIG_WLAN_80211 is not set | ||
720 | 760 | ||
721 | # | 761 | # |
722 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 762 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -730,6 +770,7 @@ CONFIG_E1000E=y | |||
730 | # CONFIG_NETCONSOLE is not set | 770 | # CONFIG_NETCONSOLE is not set |
731 | # CONFIG_NETPOLL is not set | 771 | # CONFIG_NETPOLL is not set |
732 | # CONFIG_NET_POLL_CONTROLLER is not set | 772 | # CONFIG_NET_POLL_CONTROLLER is not set |
773 | # CONFIG_VMXNET3 is not set | ||
733 | # CONFIG_ISDN is not set | 774 | # CONFIG_ISDN is not set |
734 | # CONFIG_PHONE is not set | 775 | # CONFIG_PHONE is not set |
735 | 776 | ||
@@ -775,6 +816,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
775 | # CONFIG_SERIAL_JSM is not set | 816 | # CONFIG_SERIAL_JSM is not set |
776 | CONFIG_SERIAL_OF_PLATFORM=y | 817 | CONFIG_SERIAL_OF_PLATFORM=y |
777 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 818 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
819 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
778 | CONFIG_UNIX98_PTYS=y | 820 | CONFIG_UNIX98_PTYS=y |
779 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 821 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
780 | CONFIG_LEGACY_PTYS=y | 822 | CONFIG_LEGACY_PTYS=y |
@@ -791,6 +833,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
791 | CONFIG_DEVPORT=y | 833 | CONFIG_DEVPORT=y |
792 | CONFIG_I2C=y | 834 | CONFIG_I2C=y |
793 | CONFIG_I2C_BOARDINFO=y | 835 | CONFIG_I2C_BOARDINFO=y |
836 | CONFIG_I2C_COMPAT=y | ||
794 | CONFIG_I2C_CHARDEV=y | 837 | CONFIG_I2C_CHARDEV=y |
795 | CONFIG_I2C_HELPER_AUTO=y | 838 | CONFIG_I2C_HELPER_AUTO=y |
796 | 839 | ||
@@ -831,11 +874,6 @@ CONFIG_I2C_IBM_IIC=y | |||
831 | # CONFIG_I2C_TAOS_EVM is not set | 874 | # CONFIG_I2C_TAOS_EVM is not set |
832 | 875 | ||
833 | # | 876 | # |
834 | # Graphics adapter I2C/DDC channel drivers | ||
835 | # | ||
836 | # CONFIG_I2C_VOODOO3 is not set | ||
837 | |||
838 | # | ||
839 | # Other I2C/SMBus bus drivers | 877 | # Other I2C/SMBus bus drivers |
840 | # | 878 | # |
841 | # CONFIG_I2C_PCA_PLATFORM is not set | 879 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -844,10 +882,6 @@ CONFIG_I2C_IBM_IIC=y | |||
844 | # | 882 | # |
845 | # Miscellaneous I2C Chip support | 883 | # Miscellaneous I2C Chip support |
846 | # | 884 | # |
847 | # CONFIG_DS1682 is not set | ||
848 | # CONFIG_SENSORS_PCF8574 is not set | ||
849 | # CONFIG_PCF8575 is not set | ||
850 | # CONFIG_SENSORS_PCA9539 is not set | ||
851 | # CONFIG_SENSORS_TSL2550 is not set | 885 | # CONFIG_SENSORS_TSL2550 is not set |
852 | CONFIG_I2C_DEBUG_CORE=y | 886 | CONFIG_I2C_DEBUG_CORE=y |
853 | CONFIG_I2C_DEBUG_ALGO=y | 887 | CONFIG_I2C_DEBUG_ALGO=y |
@@ -865,7 +899,6 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
865 | # CONFIG_POWER_SUPPLY is not set | 899 | # CONFIG_POWER_SUPPLY is not set |
866 | # CONFIG_HWMON is not set | 900 | # CONFIG_HWMON is not set |
867 | # CONFIG_THERMAL is not set | 901 | # CONFIG_THERMAL is not set |
868 | # CONFIG_THERMAL_HWMON is not set | ||
869 | # CONFIG_WATCHDOG is not set | 902 | # CONFIG_WATCHDOG is not set |
870 | CONFIG_SSB_POSSIBLE=y | 903 | CONFIG_SSB_POSSIBLE=y |
871 | 904 | ||
@@ -883,10 +916,13 @@ CONFIG_SSB_POSSIBLE=y | |||
883 | # CONFIG_TWL4030_CORE is not set | 916 | # CONFIG_TWL4030_CORE is not set |
884 | # CONFIG_MFD_TMIO is not set | 917 | # CONFIG_MFD_TMIO is not set |
885 | # CONFIG_PMIC_DA903X is not set | 918 | # CONFIG_PMIC_DA903X is not set |
919 | # CONFIG_PMIC_ADP5520 is not set | ||
886 | # CONFIG_MFD_WM8400 is not set | 920 | # CONFIG_MFD_WM8400 is not set |
921 | # CONFIG_MFD_WM831X is not set | ||
887 | # CONFIG_MFD_WM8350_I2C is not set | 922 | # CONFIG_MFD_WM8350_I2C is not set |
888 | # CONFIG_MFD_PCF50633 is not set | 923 | # CONFIG_MFD_PCF50633 is not set |
889 | # CONFIG_AB3100_CORE is not set | 924 | # CONFIG_AB3100_CORE is not set |
925 | # CONFIG_MFD_88PM8607 is not set | ||
890 | # CONFIG_REGULATOR is not set | 926 | # CONFIG_REGULATOR is not set |
891 | # CONFIG_MEDIA_SUPPORT is not set | 927 | # CONFIG_MEDIA_SUPPORT is not set |
892 | 928 | ||
@@ -894,6 +930,7 @@ CONFIG_SSB_POSSIBLE=y | |||
894 | # Graphics support | 930 | # Graphics support |
895 | # | 931 | # |
896 | # CONFIG_AGP is not set | 932 | # CONFIG_AGP is not set |
933 | CONFIG_VGA_ARB=y | ||
897 | # CONFIG_DRM is not set | 934 | # CONFIG_DRM is not set |
898 | # CONFIG_VGASTATE is not set | 935 | # CONFIG_VGASTATE is not set |
899 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 936 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -935,6 +972,7 @@ CONFIG_EXT2_FS=y | |||
935 | # CONFIG_EXT2_FS_XIP is not set | 972 | # CONFIG_EXT2_FS_XIP is not set |
936 | # CONFIG_EXT3_FS is not set | 973 | # CONFIG_EXT3_FS is not set |
937 | # CONFIG_EXT4_FS is not set | 974 | # CONFIG_EXT4_FS is not set |
975 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
938 | # CONFIG_REISERFS_FS is not set | 976 | # CONFIG_REISERFS_FS is not set |
939 | # CONFIG_JFS_FS is not set | 977 | # CONFIG_JFS_FS is not set |
940 | # CONFIG_FS_POSIX_ACL is not set | 978 | # CONFIG_FS_POSIX_ACL is not set |
@@ -942,6 +980,7 @@ CONFIG_EXT2_FS=y | |||
942 | # CONFIG_GFS2_FS is not set | 980 | # CONFIG_GFS2_FS is not set |
943 | # CONFIG_OCFS2_FS is not set | 981 | # CONFIG_OCFS2_FS is not set |
944 | # CONFIG_BTRFS_FS is not set | 982 | # CONFIG_BTRFS_FS is not set |
983 | # CONFIG_NILFS2_FS is not set | ||
945 | CONFIG_FILE_LOCKING=y | 984 | CONFIG_FILE_LOCKING=y |
946 | CONFIG_FSNOTIFY=y | 985 | CONFIG_FSNOTIFY=y |
947 | CONFIG_DNOTIFY=y | 986 | CONFIG_DNOTIFY=y |
@@ -1001,7 +1040,6 @@ CONFIG_CRAMFS=y | |||
1001 | # CONFIG_ROMFS_FS is not set | 1040 | # CONFIG_ROMFS_FS is not set |
1002 | # CONFIG_SYSV_FS is not set | 1041 | # CONFIG_SYSV_FS is not set |
1003 | # CONFIG_UFS_FS is not set | 1042 | # CONFIG_UFS_FS is not set |
1004 | # CONFIG_NILFS2_FS is not set | ||
1005 | CONFIG_NETWORK_FILESYSTEMS=y | 1043 | CONFIG_NETWORK_FILESYSTEMS=y |
1006 | CONFIG_NFS_FS=y | 1044 | CONFIG_NFS_FS=y |
1007 | CONFIG_NFS_V3=y | 1045 | CONFIG_NFS_V3=y |
@@ -1059,6 +1097,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1059 | CONFIG_ENABLE_MUST_CHECK=y | 1097 | CONFIG_ENABLE_MUST_CHECK=y |
1060 | CONFIG_FRAME_WARN=1024 | 1098 | CONFIG_FRAME_WARN=1024 |
1061 | CONFIG_MAGIC_SYSRQ=y | 1099 | CONFIG_MAGIC_SYSRQ=y |
1100 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1062 | # CONFIG_UNUSED_SYMBOLS is not set | 1101 | # CONFIG_UNUSED_SYMBOLS is not set |
1063 | CONFIG_DEBUG_FS=y | 1102 | CONFIG_DEBUG_FS=y |
1064 | # CONFIG_HEADERS_CHECK is not set | 1103 | # CONFIG_HEADERS_CHECK is not set |
@@ -1095,10 +1134,12 @@ CONFIG_SCHED_DEBUG=y | |||
1095 | # CONFIG_DEBUG_LIST is not set | 1134 | # CONFIG_DEBUG_LIST is not set |
1096 | # CONFIG_DEBUG_SG is not set | 1135 | # CONFIG_DEBUG_SG is not set |
1097 | # CONFIG_DEBUG_NOTIFIERS is not set | 1136 | # CONFIG_DEBUG_NOTIFIERS is not set |
1137 | # CONFIG_DEBUG_CREDENTIALS is not set | ||
1098 | # CONFIG_RCU_TORTURE_TEST is not set | 1138 | # CONFIG_RCU_TORTURE_TEST is not set |
1099 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1139 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1100 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1140 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1101 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1141 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1142 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1102 | # CONFIG_FAULT_INJECTION is not set | 1143 | # CONFIG_FAULT_INJECTION is not set |
1103 | # CONFIG_LATENCYTOP is not set | 1144 | # CONFIG_LATENCYTOP is not set |
1104 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1145 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -1122,10 +1163,10 @@ CONFIG_BRANCH_PROFILE_NONE=y | |||
1122 | # CONFIG_WORKQUEUE_TRACER is not set | 1163 | # CONFIG_WORKQUEUE_TRACER is not set |
1123 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1164 | # CONFIG_BLK_DEV_IO_TRACE is not set |
1124 | # CONFIG_DYNAMIC_DEBUG is not set | 1165 | # CONFIG_DYNAMIC_DEBUG is not set |
1166 | # CONFIG_DMA_API_DEBUG is not set | ||
1125 | # CONFIG_SAMPLES is not set | 1167 | # CONFIG_SAMPLES is not set |
1126 | CONFIG_HAVE_ARCH_KGDB=y | 1168 | CONFIG_HAVE_ARCH_KGDB=y |
1127 | # CONFIG_KGDB is not set | 1169 | # CONFIG_KGDB is not set |
1128 | # CONFIG_KMEMCHECK is not set | ||
1129 | # CONFIG_PPC_DISABLE_WERROR is not set | 1170 | # CONFIG_PPC_DISABLE_WERROR is not set |
1130 | CONFIG_PPC_WERROR=y | 1171 | CONFIG_PPC_WERROR=y |
1131 | CONFIG_PRINT_STACK_DEPTH=64 | 1172 | CONFIG_PRINT_STACK_DEPTH=64 |
@@ -1147,13 +1188,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1147 | # CONFIG_KEYS is not set | 1188 | # CONFIG_KEYS is not set |
1148 | # CONFIG_SECURITY is not set | 1189 | # CONFIG_SECURITY is not set |
1149 | # CONFIG_SECURITYFS is not set | 1190 | # CONFIG_SECURITYFS is not set |
1150 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1191 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1192 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1193 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1194 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1195 | CONFIG_DEFAULT_SECURITY="" | ||
1151 | CONFIG_CRYPTO=y | 1196 | CONFIG_CRYPTO=y |
1152 | 1197 | ||
1153 | # | 1198 | # |
1154 | # Crypto core or helper | 1199 | # Crypto core or helper |
1155 | # | 1200 | # |
1156 | # CONFIG_CRYPTO_FIPS is not set | ||
1157 | CONFIG_CRYPTO_ALGAPI=y | 1201 | CONFIG_CRYPTO_ALGAPI=y |
1158 | CONFIG_CRYPTO_ALGAPI2=y | 1202 | CONFIG_CRYPTO_ALGAPI2=y |
1159 | CONFIG_CRYPTO_AEAD=y | 1203 | CONFIG_CRYPTO_AEAD=y |
@@ -1197,11 +1241,13 @@ CONFIG_CRYPTO_XTS=y | |||
1197 | # | 1241 | # |
1198 | CONFIG_CRYPTO_HMAC=y | 1242 | CONFIG_CRYPTO_HMAC=y |
1199 | CONFIG_CRYPTO_XCBC=y | 1243 | CONFIG_CRYPTO_XCBC=y |
1244 | # CONFIG_CRYPTO_VMAC is not set | ||
1200 | 1245 | ||
1201 | # | 1246 | # |
1202 | # Digest | 1247 | # Digest |
1203 | # | 1248 | # |
1204 | # CONFIG_CRYPTO_CRC32C is not set | 1249 | # CONFIG_CRYPTO_CRC32C is not set |
1250 | CONFIG_CRYPTO_GHASH=y | ||
1205 | CONFIG_CRYPTO_MD4=y | 1251 | CONFIG_CRYPTO_MD4=y |
1206 | CONFIG_CRYPTO_MD5=y | 1252 | CONFIG_CRYPTO_MD5=y |
1207 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1253 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
diff --git a/arch/powerpc/configs/44x/katmai_defconfig b/arch/powerpc/configs/44x/katmai_defconfig index c23a4ef13e45..dec901f9cc84 100644 --- a/arch/powerpc/configs/44x/katmai_defconfig +++ b/arch/powerpc/configs/44x/katmai_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:38 2009 | 4 | # Mon Jan 4 14:55:34 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -19,6 +19,7 @@ CONFIG_BOOKE=y | |||
19 | CONFIG_PTE_64BIT=y | 19 | CONFIG_PTE_64BIT=y |
20 | CONFIG_PHYS_64BIT=y | 20 | CONFIG_PHYS_64BIT=y |
21 | CONFIG_PPC_MMU_NOHASH=y | 21 | CONFIG_PPC_MMU_NOHASH=y |
22 | CONFIG_PPC_MMU_NOHASH_32=y | ||
22 | # CONFIG_PPC_MM_SLICES is not set | 23 | # CONFIG_PPC_MM_SLICES is not set |
23 | CONFIG_NOT_COHERENT_CACHE=y | 24 | CONFIG_NOT_COHERENT_CACHE=y |
24 | CONFIG_PPC32=y | 25 | CONFIG_PPC32=y |
@@ -30,15 +31,18 @@ CONFIG_GENERIC_TIME=y | |||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | 31 | CONFIG_GENERIC_TIME_VSYSCALL=y |
31 | CONFIG_GENERIC_CLOCKEVENTS=y | 32 | CONFIG_GENERIC_CLOCKEVENTS=y |
32 | CONFIG_GENERIC_HARDIRQS=y | 33 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
36 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
34 | CONFIG_IRQ_PER_CPU=y | 37 | CONFIG_IRQ_PER_CPU=y |
38 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 39 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
37 | CONFIG_LOCKDEP_SUPPORT=y | 42 | CONFIG_LOCKDEP_SUPPORT=y |
38 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 43 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
39 | CONFIG_ARCH_HAS_ILOG2_U32=y | 44 | CONFIG_ARCH_HAS_ILOG2_U32=y |
40 | CONFIG_GENERIC_HWEIGHT=y | 45 | CONFIG_GENERIC_HWEIGHT=y |
41 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
42 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 46 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 47 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
44 | CONFIG_PPC=y | 48 | CONFIG_PPC=y |
@@ -52,11 +56,15 @@ CONFIG_PPC_UDBG_16550=y | |||
52 | # CONFIG_GENERIC_TBSYNC is not set | 56 | # CONFIG_GENERIC_TBSYNC is not set |
53 | CONFIG_AUDIT_ARCH=y | 57 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_GENERIC_BUG=y | 58 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | ||
55 | # CONFIG_DEFAULT_UIMAGE is not set | 60 | # CONFIG_DEFAULT_UIMAGE is not set |
61 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | CONFIG_PPC_DCR_NATIVE=y | 62 | CONFIG_PPC_DCR_NATIVE=y |
57 | # CONFIG_PPC_DCR_MMIO is not set | 63 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_PPC_DCR=y | 64 | CONFIG_PPC_DCR=y |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
59 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 66 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
67 | CONFIG_CONSTRUCTORS=y | ||
60 | 68 | ||
61 | # | 69 | # |
62 | # General setup | 70 | # General setup |
@@ -70,9 +78,21 @@ CONFIG_SWAP=y | |||
70 | CONFIG_SYSVIPC=y | 78 | CONFIG_SYSVIPC=y |
71 | CONFIG_SYSVIPC_SYSCTL=y | 79 | CONFIG_SYSVIPC_SYSCTL=y |
72 | CONFIG_POSIX_MQUEUE=y | 80 | CONFIG_POSIX_MQUEUE=y |
81 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
73 | # CONFIG_BSD_PROCESS_ACCT is not set | 82 | # CONFIG_BSD_PROCESS_ACCT is not set |
74 | # CONFIG_TASKSTATS is not set | 83 | # CONFIG_TASKSTATS is not set |
75 | # CONFIG_AUDIT is not set | 84 | # CONFIG_AUDIT is not set |
85 | |||
86 | # | ||
87 | # RCU Subsystem | ||
88 | # | ||
89 | CONFIG_TREE_RCU=y | ||
90 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
91 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | ||
93 | CONFIG_RCU_FANOUT=32 | ||
94 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
95 | # CONFIG_TREE_RCU_TRACE is not set | ||
76 | # CONFIG_IKCONFIG is not set | 96 | # CONFIG_IKCONFIG is not set |
77 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
78 | # CONFIG_GROUP_SCHED is not set | 98 | # CONFIG_GROUP_SCHED is not set |
@@ -83,8 +103,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
83 | # CONFIG_NAMESPACES is not set | 103 | # CONFIG_NAMESPACES is not set |
84 | CONFIG_BLK_DEV_INITRD=y | 104 | CONFIG_BLK_DEV_INITRD=y |
85 | CONFIG_INITRAMFS_SOURCE="" | 105 | CONFIG_INITRAMFS_SOURCE="" |
106 | CONFIG_RD_GZIP=y | ||
107 | # CONFIG_RD_BZIP2 is not set | ||
108 | # CONFIG_RD_LZMA is not set | ||
86 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 109 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
87 | CONFIG_SYSCTL=y | 110 | CONFIG_SYSCTL=y |
111 | CONFIG_ANON_INODES=y | ||
88 | CONFIG_EMBEDDED=y | 112 | CONFIG_EMBEDDED=y |
89 | CONFIG_SYSCTL_SYSCALL=y | 113 | CONFIG_SYSCTL_SYSCALL=y |
90 | CONFIG_KALLSYMS=y | 114 | CONFIG_KALLSYMS=y |
@@ -94,19 +118,25 @@ CONFIG_HOTPLUG=y | |||
94 | CONFIG_PRINTK=y | 118 | CONFIG_PRINTK=y |
95 | CONFIG_BUG=y | 119 | CONFIG_BUG=y |
96 | CONFIG_ELF_CORE=y | 120 | CONFIG_ELF_CORE=y |
97 | CONFIG_COMPAT_BRK=y | ||
98 | CONFIG_BASE_FULL=y | 121 | CONFIG_BASE_FULL=y |
99 | CONFIG_FUTEX=y | 122 | CONFIG_FUTEX=y |
100 | CONFIG_ANON_INODES=y | ||
101 | CONFIG_EPOLL=y | 123 | CONFIG_EPOLL=y |
102 | CONFIG_SIGNALFD=y | 124 | CONFIG_SIGNALFD=y |
103 | CONFIG_TIMERFD=y | 125 | CONFIG_TIMERFD=y |
104 | CONFIG_EVENTFD=y | 126 | CONFIG_EVENTFD=y |
105 | CONFIG_SHMEM=y | 127 | CONFIG_SHMEM=y |
106 | CONFIG_AIO=y | 128 | CONFIG_AIO=y |
129 | CONFIG_HAVE_PERF_EVENTS=y | ||
130 | |||
131 | # | ||
132 | # Kernel Performance Events And Counters | ||
133 | # | ||
134 | # CONFIG_PERF_EVENTS is not set | ||
135 | # CONFIG_PERF_COUNTERS is not set | ||
107 | CONFIG_VM_EVENT_COUNTERS=y | 136 | CONFIG_VM_EVENT_COUNTERS=y |
108 | CONFIG_PCI_QUIRKS=y | 137 | CONFIG_PCI_QUIRKS=y |
109 | CONFIG_SLUB_DEBUG=y | 138 | CONFIG_SLUB_DEBUG=y |
139 | CONFIG_COMPAT_BRK=y | ||
110 | # CONFIG_SLAB is not set | 140 | # CONFIG_SLAB is not set |
111 | CONFIG_SLUB=y | 141 | CONFIG_SLUB=y |
112 | # CONFIG_SLOB is not set | 142 | # CONFIG_SLOB is not set |
@@ -118,6 +148,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
118 | CONFIG_HAVE_KPROBES=y | 148 | CONFIG_HAVE_KPROBES=y |
119 | CONFIG_HAVE_KRETPROBES=y | 149 | CONFIG_HAVE_KRETPROBES=y |
120 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 150 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
151 | CONFIG_HAVE_DMA_ATTRS=y | ||
152 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
153 | |||
154 | # | ||
155 | # GCOV-based kernel profiling | ||
156 | # | ||
157 | # CONFIG_SLOW_WORK is not set | ||
121 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 158 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
122 | CONFIG_SLABINFO=y | 159 | CONFIG_SLABINFO=y |
123 | CONFIG_RT_MUTEXES=y | 160 | CONFIG_RT_MUTEXES=y |
@@ -129,8 +166,7 @@ CONFIG_MODULE_UNLOAD=y | |||
129 | # CONFIG_MODVERSIONS is not set | 166 | # CONFIG_MODVERSIONS is not set |
130 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 167 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
131 | CONFIG_BLOCK=y | 168 | CONFIG_BLOCK=y |
132 | CONFIG_LBD=y | 169 | CONFIG_LBDAF=y |
133 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
134 | # CONFIG_BLK_DEV_BSG is not set | 170 | # CONFIG_BLK_DEV_BSG is not set |
135 | # CONFIG_BLK_DEV_INTEGRITY is not set | 171 | # CONFIG_BLK_DEV_INTEGRITY is not set |
136 | 172 | ||
@@ -138,19 +174,41 @@ CONFIG_LBD=y | |||
138 | # IO Schedulers | 174 | # IO Schedulers |
139 | # | 175 | # |
140 | CONFIG_IOSCHED_NOOP=y | 176 | CONFIG_IOSCHED_NOOP=y |
141 | CONFIG_IOSCHED_AS=y | ||
142 | CONFIG_IOSCHED_DEADLINE=y | 177 | CONFIG_IOSCHED_DEADLINE=y |
143 | CONFIG_IOSCHED_CFQ=y | 178 | CONFIG_IOSCHED_CFQ=y |
144 | CONFIG_DEFAULT_AS=y | ||
145 | # CONFIG_DEFAULT_DEADLINE is not set | 179 | # CONFIG_DEFAULT_DEADLINE is not set |
146 | # CONFIG_DEFAULT_CFQ is not set | 180 | CONFIG_DEFAULT_CFQ=y |
147 | # CONFIG_DEFAULT_NOOP is not set | 181 | # CONFIG_DEFAULT_NOOP is not set |
148 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 182 | CONFIG_DEFAULT_IOSCHED="cfq" |
149 | CONFIG_CLASSIC_RCU=y | 183 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
150 | # CONFIG_TREE_RCU is not set | 184 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
151 | # CONFIG_PREEMPT_RCU is not set | 185 | # CONFIG_INLINE_SPIN_LOCK is not set |
152 | # CONFIG_TREE_RCU_TRACE is not set | 186 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
153 | # CONFIG_PREEMPT_RCU_TRACE is not set | 187 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
188 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
189 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
190 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
193 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
194 | # CONFIG_INLINE_READ_LOCK is not set | ||
195 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
196 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
198 | CONFIG_INLINE_READ_UNLOCK=y | ||
199 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
202 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
203 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
204 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
207 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
208 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
211 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
154 | # CONFIG_FREEZER is not set | 212 | # CONFIG_FREEZER is not set |
155 | CONFIG_PPC4xx_PCI_EXPRESS=y | 213 | CONFIG_PPC4xx_PCI_EXPRESS=y |
156 | 214 | ||
@@ -171,6 +229,8 @@ CONFIG_KATMAI=y | |||
171 | # CONFIG_ARCHES is not set | 229 | # CONFIG_ARCHES is not set |
172 | # CONFIG_CANYONLANDS is not set | 230 | # CONFIG_CANYONLANDS is not set |
173 | # CONFIG_GLACIER is not set | 231 | # CONFIG_GLACIER is not set |
232 | # CONFIG_REDWOOD is not set | ||
233 | # CONFIG_EIGER is not set | ||
174 | # CONFIG_YOSEMITE is not set | 234 | # CONFIG_YOSEMITE is not set |
175 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 235 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
176 | CONFIG_PPC44x_SIMPLE=y | 236 | CONFIG_PPC44x_SIMPLE=y |
@@ -212,10 +272,12 @@ CONFIG_BINFMT_ELF=y | |||
212 | # CONFIG_BINFMT_MISC is not set | 272 | # CONFIG_BINFMT_MISC is not set |
213 | # CONFIG_MATH_EMULATION is not set | 273 | # CONFIG_MATH_EMULATION is not set |
214 | # CONFIG_IOMMU_HELPER is not set | 274 | # CONFIG_IOMMU_HELPER is not set |
215 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 275 | # CONFIG_SWIOTLB is not set |
216 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 276 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
217 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 277 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
218 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 278 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
279 | CONFIG_SPARSE_IRQ=y | ||
280 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
219 | CONFIG_ARCH_FLATMEM_ENABLE=y | 281 | CONFIG_ARCH_FLATMEM_ENABLE=y |
220 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 282 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
221 | CONFIG_SELECT_MEMORY_MODEL=y | 283 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -231,10 +293,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
231 | CONFIG_ZONE_DMA_FLAG=1 | 293 | CONFIG_ZONE_DMA_FLAG=1 |
232 | CONFIG_BOUNCE=y | 294 | CONFIG_BOUNCE=y |
233 | CONFIG_VIRT_TO_BUS=y | 295 | CONFIG_VIRT_TO_BUS=y |
234 | CONFIG_UNEVICTABLE_LRU=y | 296 | # CONFIG_KSM is not set |
297 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
298 | CONFIG_STDBINUTILS=y | ||
235 | CONFIG_PPC_4K_PAGES=y | 299 | CONFIG_PPC_4K_PAGES=y |
236 | # CONFIG_PPC_16K_PAGES is not set | 300 | # CONFIG_PPC_16K_PAGES is not set |
237 | # CONFIG_PPC_64K_PAGES is not set | 301 | # CONFIG_PPC_64K_PAGES is not set |
302 | # CONFIG_PPC_256K_PAGES is not set | ||
238 | CONFIG_FORCE_MAX_ZONEORDER=11 | 303 | CONFIG_FORCE_MAX_ZONEORDER=11 |
239 | CONFIG_PROC_DEVICETREE=y | 304 | CONFIG_PROC_DEVICETREE=y |
240 | CONFIG_CMDLINE_BOOL=y | 305 | CONFIG_CMDLINE_BOOL=y |
@@ -259,6 +324,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
259 | # CONFIG_PCI_LEGACY is not set | 324 | # CONFIG_PCI_LEGACY is not set |
260 | # CONFIG_PCI_DEBUG is not set | 325 | # CONFIG_PCI_DEBUG is not set |
261 | # CONFIG_PCI_STUB is not set | 326 | # CONFIG_PCI_STUB is not set |
327 | # CONFIG_PCI_IOV is not set | ||
262 | # CONFIG_PCCARD is not set | 328 | # CONFIG_PCCARD is not set |
263 | # CONFIG_HOTPLUG_PCI is not set | 329 | # CONFIG_HOTPLUG_PCI is not set |
264 | # CONFIG_HAS_RAPIDIO is not set | 330 | # CONFIG_HAS_RAPIDIO is not set |
@@ -276,14 +342,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
276 | CONFIG_KERNEL_START=0xc0000000 | 342 | CONFIG_KERNEL_START=0xc0000000 |
277 | CONFIG_PHYSICAL_START=0x00000000 | 343 | CONFIG_PHYSICAL_START=0x00000000 |
278 | CONFIG_TASK_SIZE=0xc0000000 | 344 | CONFIG_TASK_SIZE=0xc0000000 |
279 | CONFIG_CONSISTENT_START=0xff100000 | ||
280 | CONFIG_CONSISTENT_SIZE=0x00200000 | 345 | CONFIG_CONSISTENT_SIZE=0x00200000 |
281 | CONFIG_NET=y | 346 | CONFIG_NET=y |
282 | 347 | ||
283 | # | 348 | # |
284 | # Networking options | 349 | # Networking options |
285 | # | 350 | # |
286 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
287 | CONFIG_PACKET=y | 351 | CONFIG_PACKET=y |
288 | # CONFIG_PACKET_MMAP is not set | 352 | # CONFIG_PACKET_MMAP is not set |
289 | CONFIG_UNIX=y | 353 | CONFIG_UNIX=y |
@@ -320,6 +384,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
320 | # CONFIG_NETFILTER is not set | 384 | # CONFIG_NETFILTER is not set |
321 | # CONFIG_IP_DCCP is not set | 385 | # CONFIG_IP_DCCP is not set |
322 | # CONFIG_IP_SCTP is not set | 386 | # CONFIG_IP_SCTP is not set |
387 | # CONFIG_RDS is not set | ||
323 | # CONFIG_TIPC is not set | 388 | # CONFIG_TIPC is not set |
324 | # CONFIG_ATM is not set | 389 | # CONFIG_ATM is not set |
325 | # CONFIG_BRIDGE is not set | 390 | # CONFIG_BRIDGE is not set |
@@ -333,6 +398,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
333 | # CONFIG_LAPB is not set | 398 | # CONFIG_LAPB is not set |
334 | # CONFIG_ECONET is not set | 399 | # CONFIG_ECONET is not set |
335 | # CONFIG_WAN_ROUTER is not set | 400 | # CONFIG_WAN_ROUTER is not set |
401 | # CONFIG_PHONET is not set | ||
402 | # CONFIG_IEEE802154 is not set | ||
336 | # CONFIG_NET_SCHED is not set | 403 | # CONFIG_NET_SCHED is not set |
337 | # CONFIG_DCB is not set | 404 | # CONFIG_DCB is not set |
338 | 405 | ||
@@ -345,8 +412,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
345 | # CONFIG_IRDA is not set | 412 | # CONFIG_IRDA is not set |
346 | # CONFIG_BT is not set | 413 | # CONFIG_BT is not set |
347 | # CONFIG_AF_RXRPC is not set | 414 | # CONFIG_AF_RXRPC is not set |
348 | # CONFIG_PHONET is not set | 415 | CONFIG_WIRELESS=y |
349 | # CONFIG_WIRELESS is not set | 416 | # CONFIG_CFG80211 is not set |
417 | # CONFIG_LIB80211 is not set | ||
418 | |||
419 | # | ||
420 | # CFG80211 needs to be enabled for MAC80211 | ||
421 | # | ||
350 | # CONFIG_WIMAX is not set | 422 | # CONFIG_WIMAX is not set |
351 | # CONFIG_RFKILL is not set | 423 | # CONFIG_RFKILL is not set |
352 | # CONFIG_NET_9P is not set | 424 | # CONFIG_NET_9P is not set |
@@ -359,6 +431,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
359 | # Generic Driver Options | 431 | # Generic Driver Options |
360 | # | 432 | # |
361 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 433 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
434 | # CONFIG_DEVTMPFS is not set | ||
362 | CONFIG_STANDALONE=y | 435 | CONFIG_STANDALONE=y |
363 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 436 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
364 | CONFIG_FW_LOADER=y | 437 | CONFIG_FW_LOADER=y |
@@ -380,6 +453,7 @@ CONFIG_BLK_DEV=y | |||
380 | # CONFIG_BLK_DEV_UMEM is not set | 453 | # CONFIG_BLK_DEV_UMEM is not set |
381 | # CONFIG_BLK_DEV_COW_COMMON is not set | 454 | # CONFIG_BLK_DEV_COW_COMMON is not set |
382 | # CONFIG_BLK_DEV_LOOP is not set | 455 | # CONFIG_BLK_DEV_LOOP is not set |
456 | # CONFIG_BLK_DEV_DRBD is not set | ||
383 | # CONFIG_BLK_DEV_NBD is not set | 457 | # CONFIG_BLK_DEV_NBD is not set |
384 | # CONFIG_BLK_DEV_SX8 is not set | 458 | # CONFIG_BLK_DEV_SX8 is not set |
385 | CONFIG_BLK_DEV_RAM=y | 459 | CONFIG_BLK_DEV_RAM=y |
@@ -392,12 +466,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
392 | # CONFIG_BLK_DEV_HD is not set | 466 | # CONFIG_BLK_DEV_HD is not set |
393 | CONFIG_MISC_DEVICES=y | 467 | CONFIG_MISC_DEVICES=y |
394 | # CONFIG_PHANTOM is not set | 468 | # CONFIG_PHANTOM is not set |
395 | # CONFIG_EEPROM_93CX6 is not set | ||
396 | # CONFIG_SGI_IOC4 is not set | 469 | # CONFIG_SGI_IOC4 is not set |
397 | # CONFIG_TIFM_CORE is not set | 470 | # CONFIG_TIFM_CORE is not set |
398 | # CONFIG_ENCLOSURE_SERVICES is not set | 471 | # CONFIG_ENCLOSURE_SERVICES is not set |
399 | # CONFIG_HP_ILO is not set | 472 | # CONFIG_HP_ILO is not set |
400 | # CONFIG_C2PORT is not set | 473 | # CONFIG_C2PORT is not set |
474 | |||
475 | # | ||
476 | # EEPROM support | ||
477 | # | ||
478 | # CONFIG_EEPROM_93CX6 is not set | ||
479 | # CONFIG_CB710_CORE is not set | ||
401 | CONFIG_HAVE_IDE=y | 480 | CONFIG_HAVE_IDE=y |
402 | # CONFIG_IDE is not set | 481 | # CONFIG_IDE is not set |
403 | 482 | ||
@@ -417,7 +496,11 @@ CONFIG_HAVE_IDE=y | |||
417 | # | 496 | # |
418 | 497 | ||
419 | # | 498 | # |
420 | # Enable only one of the two stacks, unless you know what you are doing | 499 | # You can enable one or both FireWire driver stacks. |
500 | # | ||
501 | |||
502 | # | ||
503 | # See the help texts for more information. | ||
421 | # | 504 | # |
422 | # CONFIG_FIREWIRE is not set | 505 | # CONFIG_FIREWIRE is not set |
423 | # CONFIG_IEEE1394 is not set | 506 | # CONFIG_IEEE1394 is not set |
@@ -440,6 +523,8 @@ CONFIG_NET_ETHERNET=y | |||
440 | # CONFIG_SUNGEM is not set | 523 | # CONFIG_SUNGEM is not set |
441 | # CONFIG_CASSINI is not set | 524 | # CONFIG_CASSINI is not set |
442 | # CONFIG_NET_VENDOR_3COM is not set | 525 | # CONFIG_NET_VENDOR_3COM is not set |
526 | # CONFIG_ETHOC is not set | ||
527 | # CONFIG_DNET is not set | ||
443 | # CONFIG_NET_TULIP is not set | 528 | # CONFIG_NET_TULIP is not set |
444 | # CONFIG_HP100 is not set | 529 | # CONFIG_HP100 is not set |
445 | CONFIG_IBM_NEW_EMAC=y | 530 | CONFIG_IBM_NEW_EMAC=y |
@@ -458,7 +543,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
458 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 543 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
459 | # CONFIG_NET_PCI is not set | 544 | # CONFIG_NET_PCI is not set |
460 | # CONFIG_B44 is not set | 545 | # CONFIG_B44 is not set |
546 | # CONFIG_KS8842 is not set | ||
547 | # CONFIG_KS8851_MLL is not set | ||
461 | # CONFIG_ATL2 is not set | 548 | # CONFIG_ATL2 is not set |
549 | # CONFIG_XILINX_EMACLITE is not set | ||
462 | CONFIG_NETDEV_1000=y | 550 | CONFIG_NETDEV_1000=y |
463 | # CONFIG_ACENIC is not set | 551 | # CONFIG_ACENIC is not set |
464 | # CONFIG_DL2K is not set | 552 | # CONFIG_DL2K is not set |
@@ -466,6 +554,7 @@ CONFIG_NETDEV_1000=y | |||
466 | # CONFIG_E1000E is not set | 554 | # CONFIG_E1000E is not set |
467 | # CONFIG_IP1000 is not set | 555 | # CONFIG_IP1000 is not set |
468 | # CONFIG_IGB is not set | 556 | # CONFIG_IGB is not set |
557 | # CONFIG_IGBVF is not set | ||
469 | # CONFIG_NS83820 is not set | 558 | # CONFIG_NS83820 is not set |
470 | # CONFIG_HAMACHI is not set | 559 | # CONFIG_HAMACHI is not set |
471 | # CONFIG_YELLOWFIN is not set | 560 | # CONFIG_YELLOWFIN is not set |
@@ -476,9 +565,13 @@ CONFIG_NETDEV_1000=y | |||
476 | # CONFIG_VIA_VELOCITY is not set | 565 | # CONFIG_VIA_VELOCITY is not set |
477 | # CONFIG_TIGON3 is not set | 566 | # CONFIG_TIGON3 is not set |
478 | # CONFIG_BNX2 is not set | 567 | # CONFIG_BNX2 is not set |
568 | # CONFIG_CNIC is not set | ||
569 | # CONFIG_MV643XX_ETH is not set | ||
570 | # CONFIG_XILINX_LL_TEMAC is not set | ||
479 | # CONFIG_QLA3XXX is not set | 571 | # CONFIG_QLA3XXX is not set |
480 | # CONFIG_ATL1 is not set | 572 | # CONFIG_ATL1 is not set |
481 | # CONFIG_ATL1E is not set | 573 | # CONFIG_ATL1E is not set |
574 | # CONFIG_ATL1C is not set | ||
482 | # CONFIG_JME is not set | 575 | # CONFIG_JME is not set |
483 | CONFIG_NETDEV_10000=y | 576 | CONFIG_NETDEV_10000=y |
484 | # CONFIG_CHELSIO_T1 is not set | 577 | # CONFIG_CHELSIO_T1 is not set |
@@ -488,6 +581,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
488 | # CONFIG_IXGBE is not set | 581 | # CONFIG_IXGBE is not set |
489 | # CONFIG_IXGB is not set | 582 | # CONFIG_IXGB is not set |
490 | # CONFIG_S2IO is not set | 583 | # CONFIG_S2IO is not set |
584 | # CONFIG_VXGE is not set | ||
491 | # CONFIG_MYRI10GE is not set | 585 | # CONFIG_MYRI10GE is not set |
492 | # CONFIG_NETXEN_NIC is not set | 586 | # CONFIG_NETXEN_NIC is not set |
493 | # CONFIG_NIU is not set | 587 | # CONFIG_NIU is not set |
@@ -497,14 +591,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
497 | # CONFIG_BNX2X is not set | 591 | # CONFIG_BNX2X is not set |
498 | # CONFIG_QLGE is not set | 592 | # CONFIG_QLGE is not set |
499 | # CONFIG_SFC is not set | 593 | # CONFIG_SFC is not set |
594 | # CONFIG_BE2NET is not set | ||
500 | # CONFIG_TR is not set | 595 | # CONFIG_TR is not set |
501 | 596 | CONFIG_WLAN=y | |
502 | # | 597 | # CONFIG_AIRO is not set |
503 | # Wireless LAN | 598 | # CONFIG_ATMEL is not set |
504 | # | 599 | # CONFIG_PRISM54 is not set |
505 | # CONFIG_WLAN_PRE80211 is not set | 600 | # CONFIG_HOSTAP is not set |
506 | # CONFIG_WLAN_80211 is not set | ||
507 | # CONFIG_IWLWIFI_LEDS is not set | ||
508 | 601 | ||
509 | # | 602 | # |
510 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 603 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -517,6 +610,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
517 | # CONFIG_NETCONSOLE is not set | 610 | # CONFIG_NETCONSOLE is not set |
518 | # CONFIG_NETPOLL is not set | 611 | # CONFIG_NETPOLL is not set |
519 | # CONFIG_NET_POLL_CONTROLLER is not set | 612 | # CONFIG_NET_POLL_CONTROLLER is not set |
613 | # CONFIG_VMXNET3 is not set | ||
520 | # CONFIG_ISDN is not set | 614 | # CONFIG_ISDN is not set |
521 | # CONFIG_PHONE is not set | 615 | # CONFIG_PHONE is not set |
522 | 616 | ||
@@ -562,6 +656,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
562 | # CONFIG_SERIAL_JSM is not set | 656 | # CONFIG_SERIAL_JSM is not set |
563 | CONFIG_SERIAL_OF_PLATFORM=y | 657 | CONFIG_SERIAL_OF_PLATFORM=y |
564 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 658 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
659 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
565 | CONFIG_UNIX98_PTYS=y | 660 | CONFIG_UNIX98_PTYS=y |
566 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 661 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
567 | CONFIG_LEGACY_PTYS=y | 662 | CONFIG_LEGACY_PTYS=y |
@@ -578,13 +673,17 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
578 | CONFIG_DEVPORT=y | 673 | CONFIG_DEVPORT=y |
579 | # CONFIG_I2C is not set | 674 | # CONFIG_I2C is not set |
580 | # CONFIG_SPI is not set | 675 | # CONFIG_SPI is not set |
676 | |||
677 | # | ||
678 | # PPS support | ||
679 | # | ||
680 | # CONFIG_PPS is not set | ||
581 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 681 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
582 | # CONFIG_GPIOLIB is not set | 682 | # CONFIG_GPIOLIB is not set |
583 | # CONFIG_W1 is not set | 683 | # CONFIG_W1 is not set |
584 | # CONFIG_POWER_SUPPLY is not set | 684 | # CONFIG_POWER_SUPPLY is not set |
585 | # CONFIG_HWMON is not set | 685 | # CONFIG_HWMON is not set |
586 | # CONFIG_THERMAL is not set | 686 | # CONFIG_THERMAL is not set |
587 | # CONFIG_THERMAL_HWMON is not set | ||
588 | # CONFIG_WATCHDOG is not set | 687 | # CONFIG_WATCHDOG is not set |
589 | CONFIG_SSB_POSSIBLE=y | 688 | CONFIG_SSB_POSSIBLE=y |
590 | 689 | ||
@@ -601,27 +700,13 @@ CONFIG_SSB_POSSIBLE=y | |||
601 | # CONFIG_HTC_PASIC3 is not set | 700 | # CONFIG_HTC_PASIC3 is not set |
602 | # CONFIG_MFD_TMIO is not set | 701 | # CONFIG_MFD_TMIO is not set |
603 | # CONFIG_REGULATOR is not set | 702 | # CONFIG_REGULATOR is not set |
604 | 703 | # CONFIG_MEDIA_SUPPORT is not set | |
605 | # | ||
606 | # Multimedia devices | ||
607 | # | ||
608 | |||
609 | # | ||
610 | # Multimedia core support | ||
611 | # | ||
612 | # CONFIG_VIDEO_DEV is not set | ||
613 | # CONFIG_DVB_CORE is not set | ||
614 | # CONFIG_VIDEO_MEDIA is not set | ||
615 | |||
616 | # | ||
617 | # Multimedia drivers | ||
618 | # | ||
619 | CONFIG_DAB=y | ||
620 | 704 | ||
621 | # | 705 | # |
622 | # Graphics support | 706 | # Graphics support |
623 | # | 707 | # |
624 | # CONFIG_AGP is not set | 708 | # CONFIG_AGP is not set |
709 | CONFIG_VGA_ARB=y | ||
625 | # CONFIG_DRM is not set | 710 | # CONFIG_DRM is not set |
626 | # CONFIG_VGASTATE is not set | 711 | # CONFIG_VGASTATE is not set |
627 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 712 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -646,7 +731,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
646 | # | 731 | # |
647 | 732 | ||
648 | # | 733 | # |
649 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 734 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
650 | # | 735 | # |
651 | # CONFIG_USB_GADGET is not set | 736 | # CONFIG_USB_GADGET is not set |
652 | 737 | ||
@@ -662,7 +747,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
662 | # CONFIG_EDAC is not set | 747 | # CONFIG_EDAC is not set |
663 | # CONFIG_RTC_CLASS is not set | 748 | # CONFIG_RTC_CLASS is not set |
664 | # CONFIG_DMADEVICES is not set | 749 | # CONFIG_DMADEVICES is not set |
750 | # CONFIG_AUXDISPLAY is not set | ||
665 | # CONFIG_UIO is not set | 751 | # CONFIG_UIO is not set |
752 | |||
753 | # | ||
754 | # TI VLYNQ | ||
755 | # | ||
666 | # CONFIG_STAGING is not set | 756 | # CONFIG_STAGING is not set |
667 | 757 | ||
668 | # | 758 | # |
@@ -673,14 +763,17 @@ CONFIG_EXT2_FS=y | |||
673 | # CONFIG_EXT2_FS_XIP is not set | 763 | # CONFIG_EXT2_FS_XIP is not set |
674 | # CONFIG_EXT3_FS is not set | 764 | # CONFIG_EXT3_FS is not set |
675 | # CONFIG_EXT4_FS is not set | 765 | # CONFIG_EXT4_FS is not set |
766 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
676 | # CONFIG_REISERFS_FS is not set | 767 | # CONFIG_REISERFS_FS is not set |
677 | # CONFIG_JFS_FS is not set | 768 | # CONFIG_JFS_FS is not set |
678 | # CONFIG_FS_POSIX_ACL is not set | 769 | # CONFIG_FS_POSIX_ACL is not set |
679 | CONFIG_FILE_LOCKING=y | ||
680 | # CONFIG_XFS_FS is not set | 770 | # CONFIG_XFS_FS is not set |
681 | # CONFIG_GFS2_FS is not set | 771 | # CONFIG_GFS2_FS is not set |
682 | # CONFIG_OCFS2_FS is not set | 772 | # CONFIG_OCFS2_FS is not set |
683 | # CONFIG_BTRFS_FS is not set | 773 | # CONFIG_BTRFS_FS is not set |
774 | # CONFIG_NILFS2_FS is not set | ||
775 | CONFIG_FILE_LOCKING=y | ||
776 | CONFIG_FSNOTIFY=y | ||
684 | CONFIG_DNOTIFY=y | 777 | CONFIG_DNOTIFY=y |
685 | CONFIG_INOTIFY=y | 778 | CONFIG_INOTIFY=y |
686 | CONFIG_INOTIFY_USER=y | 779 | CONFIG_INOTIFY_USER=y |
@@ -690,6 +783,11 @@ CONFIG_INOTIFY_USER=y | |||
690 | # CONFIG_FUSE_FS is not set | 783 | # CONFIG_FUSE_FS is not set |
691 | 784 | ||
692 | # | 785 | # |
786 | # Caches | ||
787 | # | ||
788 | # CONFIG_FSCACHE is not set | ||
789 | |||
790 | # | ||
693 | # CD-ROM/DVD Filesystems | 791 | # CD-ROM/DVD Filesystems |
694 | # | 792 | # |
695 | # CONFIG_ISO9660_FS is not set | 793 | # CONFIG_ISO9660_FS is not set |
@@ -743,7 +841,6 @@ CONFIG_LOCKD=y | |||
743 | CONFIG_LOCKD_V4=y | 841 | CONFIG_LOCKD_V4=y |
744 | CONFIG_NFS_COMMON=y | 842 | CONFIG_NFS_COMMON=y |
745 | CONFIG_SUNRPC=y | 843 | CONFIG_SUNRPC=y |
746 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
747 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 844 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
748 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 845 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
749 | # CONFIG_SMB_FS is not set | 846 | # CONFIG_SMB_FS is not set |
@@ -759,6 +856,7 @@ CONFIG_SUNRPC=y | |||
759 | CONFIG_MSDOS_PARTITION=y | 856 | CONFIG_MSDOS_PARTITION=y |
760 | # CONFIG_NLS is not set | 857 | # CONFIG_NLS is not set |
761 | # CONFIG_DLM is not set | 858 | # CONFIG_DLM is not set |
859 | # CONFIG_BINARY_PRINTF is not set | ||
762 | 860 | ||
763 | # | 861 | # |
764 | # Library routines | 862 | # Library routines |
@@ -773,11 +871,13 @@ CONFIG_CRC32=y | |||
773 | # CONFIG_CRC7 is not set | 871 | # CONFIG_CRC7 is not set |
774 | # CONFIG_LIBCRC32C is not set | 872 | # CONFIG_LIBCRC32C is not set |
775 | CONFIG_ZLIB_INFLATE=y | 873 | CONFIG_ZLIB_INFLATE=y |
776 | CONFIG_PLIST=y | 874 | CONFIG_DECOMPRESS_GZIP=y |
777 | CONFIG_HAS_IOMEM=y | 875 | CONFIG_HAS_IOMEM=y |
778 | CONFIG_HAS_IOPORT=y | 876 | CONFIG_HAS_IOPORT=y |
779 | CONFIG_HAS_DMA=y | 877 | CONFIG_HAS_DMA=y |
780 | CONFIG_HAVE_LMB=y | 878 | CONFIG_HAVE_LMB=y |
879 | CONFIG_NLATTR=y | ||
880 | CONFIG_GENERIC_ATOMIC64=y | ||
781 | 881 | ||
782 | # | 882 | # |
783 | # Kernel hacking | 883 | # Kernel hacking |
@@ -787,6 +887,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
787 | CONFIG_ENABLE_MUST_CHECK=y | 887 | CONFIG_ENABLE_MUST_CHECK=y |
788 | CONFIG_FRAME_WARN=1024 | 888 | CONFIG_FRAME_WARN=1024 |
789 | CONFIG_MAGIC_SYSRQ=y | 889 | CONFIG_MAGIC_SYSRQ=y |
890 | # CONFIG_STRIP_ASM_SYMS is not set | ||
790 | # CONFIG_UNUSED_SYMBOLS is not set | 891 | # CONFIG_UNUSED_SYMBOLS is not set |
791 | # CONFIG_DEBUG_FS is not set | 892 | # CONFIG_DEBUG_FS is not set |
792 | # CONFIG_HEADERS_CHECK is not set | 893 | # CONFIG_HEADERS_CHECK is not set |
@@ -795,16 +896,23 @@ CONFIG_DEBUG_KERNEL=y | |||
795 | CONFIG_DETECT_SOFTLOCKUP=y | 896 | CONFIG_DETECT_SOFTLOCKUP=y |
796 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 897 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
797 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 898 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
899 | CONFIG_DETECT_HUNG_TASK=y | ||
900 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
901 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
798 | CONFIG_SCHED_DEBUG=y | 902 | CONFIG_SCHED_DEBUG=y |
799 | # CONFIG_SCHEDSTATS is not set | 903 | # CONFIG_SCHEDSTATS is not set |
800 | # CONFIG_TIMER_STATS is not set | 904 | # CONFIG_TIMER_STATS is not set |
801 | # CONFIG_DEBUG_OBJECTS is not set | 905 | # CONFIG_DEBUG_OBJECTS is not set |
802 | # CONFIG_SLUB_DEBUG_ON is not set | 906 | # CONFIG_SLUB_DEBUG_ON is not set |
803 | # CONFIG_SLUB_STATS is not set | 907 | # CONFIG_SLUB_STATS is not set |
908 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
804 | # CONFIG_DEBUG_RT_MUTEXES is not set | 909 | # CONFIG_DEBUG_RT_MUTEXES is not set |
805 | # CONFIG_RT_MUTEX_TESTER is not set | 910 | # CONFIG_RT_MUTEX_TESTER is not set |
806 | # CONFIG_DEBUG_SPINLOCK is not set | 911 | # CONFIG_DEBUG_SPINLOCK is not set |
807 | # CONFIG_DEBUG_MUTEXES is not set | 912 | # CONFIG_DEBUG_MUTEXES is not set |
913 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
914 | # CONFIG_PROVE_LOCKING is not set | ||
915 | # CONFIG_LOCK_STAT is not set | ||
808 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 916 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
809 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 917 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
810 | # CONFIG_DEBUG_KOBJECT is not set | 918 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -816,35 +924,43 @@ CONFIG_SCHED_DEBUG=y | |||
816 | # CONFIG_DEBUG_LIST is not set | 924 | # CONFIG_DEBUG_LIST is not set |
817 | # CONFIG_DEBUG_SG is not set | 925 | # CONFIG_DEBUG_SG is not set |
818 | # CONFIG_DEBUG_NOTIFIERS is not set | 926 | # CONFIG_DEBUG_NOTIFIERS is not set |
819 | # CONFIG_BOOT_PRINTK_DELAY is not set | 927 | # CONFIG_DEBUG_CREDENTIALS is not set |
820 | # CONFIG_RCU_TORTURE_TEST is not set | 928 | # CONFIG_RCU_TORTURE_TEST is not set |
821 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 929 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
822 | # CONFIG_BACKTRACE_SELF_TEST is not set | 930 | # CONFIG_BACKTRACE_SELF_TEST is not set |
823 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 931 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
932 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
824 | # CONFIG_FAULT_INJECTION is not set | 933 | # CONFIG_FAULT_INJECTION is not set |
825 | # CONFIG_LATENCYTOP is not set | 934 | # CONFIG_LATENCYTOP is not set |
826 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 935 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
936 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
827 | CONFIG_HAVE_FUNCTION_TRACER=y | 937 | CONFIG_HAVE_FUNCTION_TRACER=y |
938 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
828 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 939 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
829 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 940 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
830 | 941 | CONFIG_TRACING_SUPPORT=y | |
831 | # | 942 | CONFIG_FTRACE=y |
832 | # Tracers | ||
833 | # | ||
834 | # CONFIG_FUNCTION_TRACER is not set | 943 | # CONFIG_FUNCTION_TRACER is not set |
944 | # CONFIG_IRQSOFF_TRACER is not set | ||
835 | # CONFIG_SCHED_TRACER is not set | 945 | # CONFIG_SCHED_TRACER is not set |
836 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 946 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
837 | # CONFIG_BOOT_TRACER is not set | 947 | # CONFIG_BOOT_TRACER is not set |
838 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 948 | CONFIG_BRANCH_PROFILE_NONE=y |
949 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
950 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
839 | # CONFIG_STACK_TRACER is not set | 951 | # CONFIG_STACK_TRACER is not set |
840 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 952 | # CONFIG_KMEMTRACE is not set |
953 | # CONFIG_WORKQUEUE_TRACER is not set | ||
954 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
955 | # CONFIG_DMA_API_DEBUG is not set | ||
841 | # CONFIG_SAMPLES is not set | 956 | # CONFIG_SAMPLES is not set |
842 | CONFIG_HAVE_ARCH_KGDB=y | 957 | CONFIG_HAVE_ARCH_KGDB=y |
843 | # CONFIG_KGDB is not set | 958 | # CONFIG_KGDB is not set |
959 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
960 | CONFIG_PPC_WERROR=y | ||
844 | CONFIG_PRINT_STACK_DEPTH=64 | 961 | CONFIG_PRINT_STACK_DEPTH=64 |
845 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 962 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
846 | # CONFIG_DEBUG_STACK_USAGE is not set | 963 | # CONFIG_DEBUG_STACK_USAGE is not set |
847 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
848 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 964 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
849 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 965 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
850 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 966 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -859,13 +975,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
859 | # CONFIG_KEYS is not set | 975 | # CONFIG_KEYS is not set |
860 | # CONFIG_SECURITY is not set | 976 | # CONFIG_SECURITY is not set |
861 | # CONFIG_SECURITYFS is not set | 977 | # CONFIG_SECURITYFS is not set |
862 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 978 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
979 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
980 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
981 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
982 | CONFIG_DEFAULT_SECURITY="" | ||
863 | CONFIG_CRYPTO=y | 983 | CONFIG_CRYPTO=y |
864 | 984 | ||
865 | # | 985 | # |
866 | # Crypto core or helper | 986 | # Crypto core or helper |
867 | # | 987 | # |
868 | # CONFIG_CRYPTO_FIPS is not set | ||
869 | CONFIG_CRYPTO_ALGAPI=y | 988 | CONFIG_CRYPTO_ALGAPI=y |
870 | CONFIG_CRYPTO_ALGAPI2=y | 989 | CONFIG_CRYPTO_ALGAPI2=y |
871 | CONFIG_CRYPTO_AEAD2=y | 990 | CONFIG_CRYPTO_AEAD2=y |
@@ -874,10 +993,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
874 | CONFIG_CRYPTO_HASH=y | 993 | CONFIG_CRYPTO_HASH=y |
875 | CONFIG_CRYPTO_HASH2=y | 994 | CONFIG_CRYPTO_HASH2=y |
876 | CONFIG_CRYPTO_RNG2=y | 995 | CONFIG_CRYPTO_RNG2=y |
996 | CONFIG_CRYPTO_PCOMP=y | ||
877 | CONFIG_CRYPTO_MANAGER=y | 997 | CONFIG_CRYPTO_MANAGER=y |
878 | CONFIG_CRYPTO_MANAGER2=y | 998 | CONFIG_CRYPTO_MANAGER2=y |
879 | # CONFIG_CRYPTO_GF128MUL is not set | 999 | # CONFIG_CRYPTO_GF128MUL is not set |
880 | # CONFIG_CRYPTO_NULL is not set | 1000 | # CONFIG_CRYPTO_NULL is not set |
1001 | CONFIG_CRYPTO_WORKQUEUE=y | ||
881 | # CONFIG_CRYPTO_CRYPTD is not set | 1002 | # CONFIG_CRYPTO_CRYPTD is not set |
882 | # CONFIG_CRYPTO_AUTHENC is not set | 1003 | # CONFIG_CRYPTO_AUTHENC is not set |
883 | # CONFIG_CRYPTO_TEST is not set | 1004 | # CONFIG_CRYPTO_TEST is not set |
@@ -905,11 +1026,13 @@ CONFIG_CRYPTO_PCBC=y | |||
905 | # | 1026 | # |
906 | # CONFIG_CRYPTO_HMAC is not set | 1027 | # CONFIG_CRYPTO_HMAC is not set |
907 | # CONFIG_CRYPTO_XCBC is not set | 1028 | # CONFIG_CRYPTO_XCBC is not set |
1029 | # CONFIG_CRYPTO_VMAC is not set | ||
908 | 1030 | ||
909 | # | 1031 | # |
910 | # Digest | 1032 | # Digest |
911 | # | 1033 | # |
912 | # CONFIG_CRYPTO_CRC32C is not set | 1034 | # CONFIG_CRYPTO_CRC32C is not set |
1035 | # CONFIG_CRYPTO_GHASH is not set | ||
913 | # CONFIG_CRYPTO_MD4 is not set | 1036 | # CONFIG_CRYPTO_MD4 is not set |
914 | CONFIG_CRYPTO_MD5=y | 1037 | CONFIG_CRYPTO_MD5=y |
915 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1038 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -946,6 +1069,7 @@ CONFIG_CRYPTO_DES=y | |||
946 | # Compression | 1069 | # Compression |
947 | # | 1070 | # |
948 | # CONFIG_CRYPTO_DEFLATE is not set | 1071 | # CONFIG_CRYPTO_DEFLATE is not set |
1072 | # CONFIG_CRYPTO_ZLIB is not set | ||
949 | # CONFIG_CRYPTO_LZO is not set | 1073 | # CONFIG_CRYPTO_LZO is not set |
950 | 1074 | ||
951 | # | 1075 | # |
@@ -954,5 +1078,6 @@ CONFIG_CRYPTO_DES=y | |||
954 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1078 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
955 | CONFIG_CRYPTO_HW=y | 1079 | CONFIG_CRYPTO_HW=y |
956 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1080 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1081 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
957 | # CONFIG_PPC_CLOCK is not set | 1082 | # CONFIG_PPC_CLOCK is not set |
958 | # CONFIG_VIRTUALIZATION is not set | 1083 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/rainier_defconfig b/arch/powerpc/configs/44x/rainier_defconfig index b25fad1343dc..8fed3b26af2e 100644 --- a/arch/powerpc/configs/44x/rainier_defconfig +++ b/arch/powerpc/configs/44x/rainier_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:41 2009 | 4 | # Mon Jan 4 14:59:12 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -19,6 +19,7 @@ CONFIG_BOOKE=y | |||
19 | CONFIG_PTE_64BIT=y | 19 | CONFIG_PTE_64BIT=y |
20 | CONFIG_PHYS_64BIT=y | 20 | CONFIG_PHYS_64BIT=y |
21 | CONFIG_PPC_MMU_NOHASH=y | 21 | CONFIG_PPC_MMU_NOHASH=y |
22 | CONFIG_PPC_MMU_NOHASH_32=y | ||
22 | # CONFIG_PPC_MM_SLICES is not set | 23 | # CONFIG_PPC_MM_SLICES is not set |
23 | CONFIG_NOT_COHERENT_CACHE=y | 24 | CONFIG_NOT_COHERENT_CACHE=y |
24 | CONFIG_PPC32=y | 25 | CONFIG_PPC32=y |
@@ -30,15 +31,18 @@ CONFIG_GENERIC_TIME=y | |||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | 31 | CONFIG_GENERIC_TIME_VSYSCALL=y |
31 | CONFIG_GENERIC_CLOCKEVENTS=y | 32 | CONFIG_GENERIC_CLOCKEVENTS=y |
32 | CONFIG_GENERIC_HARDIRQS=y | 33 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
36 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
34 | CONFIG_IRQ_PER_CPU=y | 37 | CONFIG_IRQ_PER_CPU=y |
38 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 39 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
37 | CONFIG_LOCKDEP_SUPPORT=y | 42 | CONFIG_LOCKDEP_SUPPORT=y |
38 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 43 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
39 | CONFIG_ARCH_HAS_ILOG2_U32=y | 44 | CONFIG_ARCH_HAS_ILOG2_U32=y |
40 | CONFIG_GENERIC_HWEIGHT=y | 45 | CONFIG_GENERIC_HWEIGHT=y |
41 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
42 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 46 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 47 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
44 | CONFIG_PPC=y | 48 | CONFIG_PPC=y |
@@ -52,11 +56,15 @@ CONFIG_PPC_UDBG_16550=y | |||
52 | # CONFIG_GENERIC_TBSYNC is not set | 56 | # CONFIG_GENERIC_TBSYNC is not set |
53 | CONFIG_AUDIT_ARCH=y | 57 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_GENERIC_BUG=y | 58 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | ||
55 | # CONFIG_DEFAULT_UIMAGE is not set | 60 | # CONFIG_DEFAULT_UIMAGE is not set |
61 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | CONFIG_PPC_DCR_NATIVE=y | 62 | CONFIG_PPC_DCR_NATIVE=y |
57 | # CONFIG_PPC_DCR_MMIO is not set | 63 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_PPC_DCR=y | 64 | CONFIG_PPC_DCR=y |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
59 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 66 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
67 | CONFIG_CONSTRUCTORS=y | ||
60 | 68 | ||
61 | # | 69 | # |
62 | # General setup | 70 | # General setup |
@@ -70,9 +78,21 @@ CONFIG_SWAP=y | |||
70 | CONFIG_SYSVIPC=y | 78 | CONFIG_SYSVIPC=y |
71 | CONFIG_SYSVIPC_SYSCTL=y | 79 | CONFIG_SYSVIPC_SYSCTL=y |
72 | CONFIG_POSIX_MQUEUE=y | 80 | CONFIG_POSIX_MQUEUE=y |
81 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
73 | # CONFIG_BSD_PROCESS_ACCT is not set | 82 | # CONFIG_BSD_PROCESS_ACCT is not set |
74 | # CONFIG_TASKSTATS is not set | 83 | # CONFIG_TASKSTATS is not set |
75 | # CONFIG_AUDIT is not set | 84 | # CONFIG_AUDIT is not set |
85 | |||
86 | # | ||
87 | # RCU Subsystem | ||
88 | # | ||
89 | CONFIG_TREE_RCU=y | ||
90 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
91 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | ||
93 | CONFIG_RCU_FANOUT=32 | ||
94 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
95 | # CONFIG_TREE_RCU_TRACE is not set | ||
76 | # CONFIG_IKCONFIG is not set | 96 | # CONFIG_IKCONFIG is not set |
77 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
78 | CONFIG_GROUP_SCHED=y | 98 | CONFIG_GROUP_SCHED=y |
@@ -87,8 +107,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
87 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
88 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
89 | CONFIG_INITRAMFS_SOURCE="" | 109 | CONFIG_INITRAMFS_SOURCE="" |
110 | CONFIG_RD_GZIP=y | ||
111 | # CONFIG_RD_BZIP2 is not set | ||
112 | # CONFIG_RD_LZMA is not set | ||
90 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 113 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
91 | CONFIG_SYSCTL=y | 114 | CONFIG_SYSCTL=y |
115 | CONFIG_ANON_INODES=y | ||
92 | CONFIG_EMBEDDED=y | 116 | CONFIG_EMBEDDED=y |
93 | CONFIG_SYSCTL_SYSCALL=y | 117 | CONFIG_SYSCTL_SYSCALL=y |
94 | CONFIG_KALLSYMS=y | 118 | CONFIG_KALLSYMS=y |
@@ -98,19 +122,25 @@ CONFIG_HOTPLUG=y | |||
98 | CONFIG_PRINTK=y | 122 | CONFIG_PRINTK=y |
99 | CONFIG_BUG=y | 123 | CONFIG_BUG=y |
100 | CONFIG_ELF_CORE=y | 124 | CONFIG_ELF_CORE=y |
101 | CONFIG_COMPAT_BRK=y | ||
102 | CONFIG_BASE_FULL=y | 125 | CONFIG_BASE_FULL=y |
103 | CONFIG_FUTEX=y | 126 | CONFIG_FUTEX=y |
104 | CONFIG_ANON_INODES=y | ||
105 | CONFIG_EPOLL=y | 127 | CONFIG_EPOLL=y |
106 | CONFIG_SIGNALFD=y | 128 | CONFIG_SIGNALFD=y |
107 | CONFIG_TIMERFD=y | 129 | CONFIG_TIMERFD=y |
108 | CONFIG_EVENTFD=y | 130 | CONFIG_EVENTFD=y |
109 | CONFIG_SHMEM=y | 131 | CONFIG_SHMEM=y |
110 | CONFIG_AIO=y | 132 | CONFIG_AIO=y |
133 | CONFIG_HAVE_PERF_EVENTS=y | ||
134 | |||
135 | # | ||
136 | # Kernel Performance Events And Counters | ||
137 | # | ||
138 | # CONFIG_PERF_EVENTS is not set | ||
139 | # CONFIG_PERF_COUNTERS is not set | ||
111 | CONFIG_VM_EVENT_COUNTERS=y | 140 | CONFIG_VM_EVENT_COUNTERS=y |
112 | CONFIG_PCI_QUIRKS=y | 141 | CONFIG_PCI_QUIRKS=y |
113 | CONFIG_SLUB_DEBUG=y | 142 | CONFIG_SLUB_DEBUG=y |
143 | CONFIG_COMPAT_BRK=y | ||
114 | # CONFIG_SLAB is not set | 144 | # CONFIG_SLAB is not set |
115 | CONFIG_SLUB=y | 145 | CONFIG_SLUB=y |
116 | # CONFIG_SLOB is not set | 146 | # CONFIG_SLOB is not set |
@@ -122,6 +152,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
122 | CONFIG_HAVE_KPROBES=y | 152 | CONFIG_HAVE_KPROBES=y |
123 | CONFIG_HAVE_KRETPROBES=y | 153 | CONFIG_HAVE_KRETPROBES=y |
124 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 154 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
155 | CONFIG_HAVE_DMA_ATTRS=y | ||
156 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
157 | |||
158 | # | ||
159 | # GCOV-based kernel profiling | ||
160 | # | ||
161 | # CONFIG_GCOV_KERNEL is not set | ||
162 | # CONFIG_SLOW_WORK is not set | ||
125 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 163 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
126 | CONFIG_SLABINFO=y | 164 | CONFIG_SLABINFO=y |
127 | CONFIG_RT_MUTEXES=y | 165 | CONFIG_RT_MUTEXES=y |
@@ -133,8 +171,7 @@ CONFIG_MODULE_UNLOAD=y | |||
133 | # CONFIG_MODVERSIONS is not set | 171 | # CONFIG_MODVERSIONS is not set |
134 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 172 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
135 | CONFIG_BLOCK=y | 173 | CONFIG_BLOCK=y |
136 | CONFIG_LBD=y | 174 | CONFIG_LBDAF=y |
137 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
138 | # CONFIG_BLK_DEV_BSG is not set | 175 | # CONFIG_BLK_DEV_BSG is not set |
139 | # CONFIG_BLK_DEV_INTEGRITY is not set | 176 | # CONFIG_BLK_DEV_INTEGRITY is not set |
140 | 177 | ||
@@ -142,19 +179,41 @@ CONFIG_LBD=y | |||
142 | # IO Schedulers | 179 | # IO Schedulers |
143 | # | 180 | # |
144 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
145 | CONFIG_IOSCHED_AS=y | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
147 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
148 | CONFIG_DEFAULT_AS=y | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | # CONFIG_DEFAULT_CFQ is not set | 185 | CONFIG_DEFAULT_CFQ=y |
151 | # CONFIG_DEFAULT_NOOP is not set | 186 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | CONFIG_CLASSIC_RCU=y | 188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
154 | # CONFIG_TREE_RCU is not set | 189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU is not set | 190 | # CONFIG_INLINE_SPIN_LOCK is not set |
156 | # CONFIG_TREE_RCU_TRACE is not set | 191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
157 | # CONFIG_PREEMPT_RCU_TRACE is not set | 192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
158 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
159 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 218 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
160 | 219 | ||
@@ -175,6 +234,8 @@ CONFIG_RAINIER=y | |||
175 | # CONFIG_ARCHES is not set | 234 | # CONFIG_ARCHES is not set |
176 | # CONFIG_CANYONLANDS is not set | 235 | # CONFIG_CANYONLANDS is not set |
177 | # CONFIG_GLACIER is not set | 236 | # CONFIG_GLACIER is not set |
237 | # CONFIG_REDWOOD is not set | ||
238 | # CONFIG_EIGER is not set | ||
178 | # CONFIG_YOSEMITE is not set | 239 | # CONFIG_YOSEMITE is not set |
179 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 240 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
180 | CONFIG_PPC44x_SIMPLE=y | 241 | CONFIG_PPC44x_SIMPLE=y |
@@ -216,10 +277,12 @@ CONFIG_BINFMT_ELF=y | |||
216 | # CONFIG_BINFMT_MISC is not set | 277 | # CONFIG_BINFMT_MISC is not set |
217 | CONFIG_MATH_EMULATION=y | 278 | CONFIG_MATH_EMULATION=y |
218 | # CONFIG_IOMMU_HELPER is not set | 279 | # CONFIG_IOMMU_HELPER is not set |
219 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 280 | # CONFIG_SWIOTLB is not set |
220 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
221 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 282 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
284 | CONFIG_SPARSE_IRQ=y | ||
285 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
223 | CONFIG_ARCH_FLATMEM_ENABLE=y | 286 | CONFIG_ARCH_FLATMEM_ENABLE=y |
224 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 287 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
225 | CONFIG_SELECT_MEMORY_MODEL=y | 288 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -235,10 +298,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
235 | CONFIG_ZONE_DMA_FLAG=1 | 298 | CONFIG_ZONE_DMA_FLAG=1 |
236 | CONFIG_BOUNCE=y | 299 | CONFIG_BOUNCE=y |
237 | CONFIG_VIRT_TO_BUS=y | 300 | CONFIG_VIRT_TO_BUS=y |
238 | CONFIG_UNEVICTABLE_LRU=y | 301 | # CONFIG_KSM is not set |
302 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
303 | CONFIG_STDBINUTILS=y | ||
239 | CONFIG_PPC_4K_PAGES=y | 304 | CONFIG_PPC_4K_PAGES=y |
240 | # CONFIG_PPC_16K_PAGES is not set | 305 | # CONFIG_PPC_16K_PAGES is not set |
241 | # CONFIG_PPC_64K_PAGES is not set | 306 | # CONFIG_PPC_64K_PAGES is not set |
307 | # CONFIG_PPC_256K_PAGES is not set | ||
242 | CONFIG_FORCE_MAX_ZONEORDER=11 | 308 | CONFIG_FORCE_MAX_ZONEORDER=11 |
243 | CONFIG_PROC_DEVICETREE=y | 309 | CONFIG_PROC_DEVICETREE=y |
244 | CONFIG_CMDLINE_BOOL=y | 310 | CONFIG_CMDLINE_BOOL=y |
@@ -263,6 +329,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
263 | # CONFIG_PCI_LEGACY is not set | 329 | # CONFIG_PCI_LEGACY is not set |
264 | # CONFIG_PCI_DEBUG is not set | 330 | # CONFIG_PCI_DEBUG is not set |
265 | # CONFIG_PCI_STUB is not set | 331 | # CONFIG_PCI_STUB is not set |
332 | # CONFIG_PCI_IOV is not set | ||
266 | # CONFIG_PCCARD is not set | 333 | # CONFIG_PCCARD is not set |
267 | # CONFIG_HOTPLUG_PCI is not set | 334 | # CONFIG_HOTPLUG_PCI is not set |
268 | # CONFIG_HAS_RAPIDIO is not set | 335 | # CONFIG_HAS_RAPIDIO is not set |
@@ -280,14 +347,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
280 | CONFIG_KERNEL_START=0xc0000000 | 347 | CONFIG_KERNEL_START=0xc0000000 |
281 | CONFIG_PHYSICAL_START=0x00000000 | 348 | CONFIG_PHYSICAL_START=0x00000000 |
282 | CONFIG_TASK_SIZE=0xc0000000 | 349 | CONFIG_TASK_SIZE=0xc0000000 |
283 | CONFIG_CONSISTENT_START=0xff100000 | ||
284 | CONFIG_CONSISTENT_SIZE=0x00200000 | 350 | CONFIG_CONSISTENT_SIZE=0x00200000 |
285 | CONFIG_NET=y | 351 | CONFIG_NET=y |
286 | 352 | ||
287 | # | 353 | # |
288 | # Networking options | 354 | # Networking options |
289 | # | 355 | # |
290 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
291 | CONFIG_PACKET=y | 356 | CONFIG_PACKET=y |
292 | # CONFIG_PACKET_MMAP is not set | 357 | # CONFIG_PACKET_MMAP is not set |
293 | CONFIG_UNIX=y | 358 | CONFIG_UNIX=y |
@@ -324,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
324 | # CONFIG_NETFILTER is not set | 389 | # CONFIG_NETFILTER is not set |
325 | # CONFIG_IP_DCCP is not set | 390 | # CONFIG_IP_DCCP is not set |
326 | # CONFIG_IP_SCTP is not set | 391 | # CONFIG_IP_SCTP is not set |
392 | # CONFIG_RDS is not set | ||
327 | # CONFIG_TIPC is not set | 393 | # CONFIG_TIPC is not set |
328 | # CONFIG_ATM is not set | 394 | # CONFIG_ATM is not set |
329 | # CONFIG_BRIDGE is not set | 395 | # CONFIG_BRIDGE is not set |
@@ -337,6 +403,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
337 | # CONFIG_LAPB is not set | 403 | # CONFIG_LAPB is not set |
338 | # CONFIG_ECONET is not set | 404 | # CONFIG_ECONET is not set |
339 | # CONFIG_WAN_ROUTER is not set | 405 | # CONFIG_WAN_ROUTER is not set |
406 | # CONFIG_PHONET is not set | ||
407 | # CONFIG_IEEE802154 is not set | ||
340 | # CONFIG_NET_SCHED is not set | 408 | # CONFIG_NET_SCHED is not set |
341 | # CONFIG_DCB is not set | 409 | # CONFIG_DCB is not set |
342 | 410 | ||
@@ -349,8 +417,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
349 | # CONFIG_IRDA is not set | 417 | # CONFIG_IRDA is not set |
350 | # CONFIG_BT is not set | 418 | # CONFIG_BT is not set |
351 | # CONFIG_AF_RXRPC is not set | 419 | # CONFIG_AF_RXRPC is not set |
352 | # CONFIG_PHONET is not set | 420 | CONFIG_WIRELESS=y |
353 | # CONFIG_WIRELESS is not set | 421 | # CONFIG_CFG80211 is not set |
422 | # CONFIG_LIB80211 is not set | ||
423 | |||
424 | # | ||
425 | # CFG80211 needs to be enabled for MAC80211 | ||
426 | # | ||
354 | # CONFIG_WIMAX is not set | 427 | # CONFIG_WIMAX is not set |
355 | # CONFIG_RFKILL is not set | 428 | # CONFIG_RFKILL is not set |
356 | # CONFIG_NET_9P is not set | 429 | # CONFIG_NET_9P is not set |
@@ -363,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
363 | # Generic Driver Options | 436 | # Generic Driver Options |
364 | # | 437 | # |
365 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 438 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
439 | # CONFIG_DEVTMPFS is not set | ||
366 | CONFIG_STANDALONE=y | 440 | CONFIG_STANDALONE=y |
367 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 441 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
368 | CONFIG_FW_LOADER=y | 442 | CONFIG_FW_LOADER=y |
@@ -375,9 +449,9 @@ CONFIG_CONNECTOR=y | |||
375 | CONFIG_PROC_EVENTS=y | 449 | CONFIG_PROC_EVENTS=y |
376 | CONFIG_MTD=y | 450 | CONFIG_MTD=y |
377 | # CONFIG_MTD_DEBUG is not set | 451 | # CONFIG_MTD_DEBUG is not set |
452 | # CONFIG_MTD_TESTS is not set | ||
378 | # CONFIG_MTD_CONCAT is not set | 453 | # CONFIG_MTD_CONCAT is not set |
379 | CONFIG_MTD_PARTITIONS=y | 454 | CONFIG_MTD_PARTITIONS=y |
380 | # CONFIG_MTD_TESTS is not set | ||
381 | # CONFIG_MTD_REDBOOT_PARTS is not set | 455 | # CONFIG_MTD_REDBOOT_PARTS is not set |
382 | CONFIG_MTD_CMDLINE_PARTS=y | 456 | CONFIG_MTD_CMDLINE_PARTS=y |
383 | CONFIG_MTD_OF_PARTS=y | 457 | CONFIG_MTD_OF_PARTS=y |
@@ -453,7 +527,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
453 | # LPDDR flash memory drivers | 527 | # LPDDR flash memory drivers |
454 | # | 528 | # |
455 | # CONFIG_MTD_LPDDR is not set | 529 | # CONFIG_MTD_LPDDR is not set |
456 | # CONFIG_MTD_QINFO_PROBE is not set | ||
457 | 530 | ||
458 | # | 531 | # |
459 | # UBI - Unsorted block images | 532 | # UBI - Unsorted block images |
@@ -469,6 +542,7 @@ CONFIG_BLK_DEV=y | |||
469 | # CONFIG_BLK_DEV_UMEM is not set | 542 | # CONFIG_BLK_DEV_UMEM is not set |
470 | # CONFIG_BLK_DEV_COW_COMMON is not set | 543 | # CONFIG_BLK_DEV_COW_COMMON is not set |
471 | # CONFIG_BLK_DEV_LOOP is not set | 544 | # CONFIG_BLK_DEV_LOOP is not set |
545 | # CONFIG_BLK_DEV_DRBD is not set | ||
472 | # CONFIG_BLK_DEV_NBD is not set | 546 | # CONFIG_BLK_DEV_NBD is not set |
473 | # CONFIG_BLK_DEV_SX8 is not set | 547 | # CONFIG_BLK_DEV_SX8 is not set |
474 | CONFIG_BLK_DEV_RAM=y | 548 | CONFIG_BLK_DEV_RAM=y |
@@ -481,12 +555,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
481 | # CONFIG_BLK_DEV_HD is not set | 555 | # CONFIG_BLK_DEV_HD is not set |
482 | CONFIG_MISC_DEVICES=y | 556 | CONFIG_MISC_DEVICES=y |
483 | # CONFIG_PHANTOM is not set | 557 | # CONFIG_PHANTOM is not set |
484 | # CONFIG_EEPROM_93CX6 is not set | ||
485 | # CONFIG_SGI_IOC4 is not set | 558 | # CONFIG_SGI_IOC4 is not set |
486 | # CONFIG_TIFM_CORE is not set | 559 | # CONFIG_TIFM_CORE is not set |
487 | # CONFIG_ENCLOSURE_SERVICES is not set | 560 | # CONFIG_ENCLOSURE_SERVICES is not set |
488 | # CONFIG_HP_ILO is not set | 561 | # CONFIG_HP_ILO is not set |
489 | # CONFIG_C2PORT is not set | 562 | # CONFIG_C2PORT is not set |
563 | |||
564 | # | ||
565 | # EEPROM support | ||
566 | # | ||
567 | # CONFIG_EEPROM_93CX6 is not set | ||
568 | # CONFIG_CB710_CORE is not set | ||
490 | CONFIG_HAVE_IDE=y | 569 | CONFIG_HAVE_IDE=y |
491 | # CONFIG_IDE is not set | 570 | # CONFIG_IDE is not set |
492 | 571 | ||
@@ -506,7 +585,11 @@ CONFIG_HAVE_IDE=y | |||
506 | # | 585 | # |
507 | 586 | ||
508 | # | 587 | # |
509 | # Enable only one of the two stacks, unless you know what you are doing | 588 | # You can enable one or both FireWire driver stacks. |
589 | # | ||
590 | |||
591 | # | ||
592 | # See the help texts for more information. | ||
510 | # | 593 | # |
511 | # CONFIG_FIREWIRE is not set | 594 | # CONFIG_FIREWIRE is not set |
512 | # CONFIG_IEEE1394 is not set | 595 | # CONFIG_IEEE1394 is not set |
@@ -533,6 +616,7 @@ CONFIG_NETDEV_1000=y | |||
533 | # CONFIG_E1000E is not set | 616 | # CONFIG_E1000E is not set |
534 | # CONFIG_IP1000 is not set | 617 | # CONFIG_IP1000 is not set |
535 | # CONFIG_IGB is not set | 618 | # CONFIG_IGB is not set |
619 | # CONFIG_IGBVF is not set | ||
536 | # CONFIG_NS83820 is not set | 620 | # CONFIG_NS83820 is not set |
537 | # CONFIG_HAMACHI is not set | 621 | # CONFIG_HAMACHI is not set |
538 | # CONFIG_YELLOWFIN is not set | 622 | # CONFIG_YELLOWFIN is not set |
@@ -543,9 +627,13 @@ CONFIG_NETDEV_1000=y | |||
543 | # CONFIG_VIA_VELOCITY is not set | 627 | # CONFIG_VIA_VELOCITY is not set |
544 | # CONFIG_TIGON3 is not set | 628 | # CONFIG_TIGON3 is not set |
545 | # CONFIG_BNX2 is not set | 629 | # CONFIG_BNX2 is not set |
630 | # CONFIG_CNIC is not set | ||
631 | # CONFIG_MV643XX_ETH is not set | ||
632 | # CONFIG_XILINX_LL_TEMAC is not set | ||
546 | # CONFIG_QLA3XXX is not set | 633 | # CONFIG_QLA3XXX is not set |
547 | # CONFIG_ATL1 is not set | 634 | # CONFIG_ATL1 is not set |
548 | # CONFIG_ATL1E is not set | 635 | # CONFIG_ATL1E is not set |
636 | # CONFIG_ATL1C is not set | ||
549 | # CONFIG_JME is not set | 637 | # CONFIG_JME is not set |
550 | CONFIG_NETDEV_10000=y | 638 | CONFIG_NETDEV_10000=y |
551 | # CONFIG_CHELSIO_T1 is not set | 639 | # CONFIG_CHELSIO_T1 is not set |
@@ -555,6 +643,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
555 | # CONFIG_IXGBE is not set | 643 | # CONFIG_IXGBE is not set |
556 | # CONFIG_IXGB is not set | 644 | # CONFIG_IXGB is not set |
557 | # CONFIG_S2IO is not set | 645 | # CONFIG_S2IO is not set |
646 | # CONFIG_VXGE is not set | ||
558 | # CONFIG_MYRI10GE is not set | 647 | # CONFIG_MYRI10GE is not set |
559 | # CONFIG_NETXEN_NIC is not set | 648 | # CONFIG_NETXEN_NIC is not set |
560 | # CONFIG_NIU is not set | 649 | # CONFIG_NIU is not set |
@@ -564,14 +653,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
564 | # CONFIG_BNX2X is not set | 653 | # CONFIG_BNX2X is not set |
565 | # CONFIG_QLGE is not set | 654 | # CONFIG_QLGE is not set |
566 | # CONFIG_SFC is not set | 655 | # CONFIG_SFC is not set |
656 | # CONFIG_BE2NET is not set | ||
567 | # CONFIG_TR is not set | 657 | # CONFIG_TR is not set |
568 | 658 | CONFIG_WLAN=y | |
569 | # | 659 | # CONFIG_AIRO is not set |
570 | # Wireless LAN | 660 | # CONFIG_ATMEL is not set |
571 | # | 661 | # CONFIG_PRISM54 is not set |
572 | # CONFIG_WLAN_PRE80211 is not set | 662 | # CONFIG_HOSTAP is not set |
573 | # CONFIG_WLAN_80211 is not set | ||
574 | # CONFIG_IWLWIFI_LEDS is not set | ||
575 | 663 | ||
576 | # | 664 | # |
577 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 665 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -584,6 +672,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
584 | # CONFIG_NETCONSOLE is not set | 672 | # CONFIG_NETCONSOLE is not set |
585 | # CONFIG_NETPOLL is not set | 673 | # CONFIG_NETPOLL is not set |
586 | # CONFIG_NET_POLL_CONTROLLER is not set | 674 | # CONFIG_NET_POLL_CONTROLLER is not set |
675 | # CONFIG_VMXNET3 is not set | ||
587 | # CONFIG_ISDN is not set | 676 | # CONFIG_ISDN is not set |
588 | # CONFIG_PHONE is not set | 677 | # CONFIG_PHONE is not set |
589 | 678 | ||
@@ -629,6 +718,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
629 | # CONFIG_SERIAL_JSM is not set | 718 | # CONFIG_SERIAL_JSM is not set |
630 | CONFIG_SERIAL_OF_PLATFORM=y | 719 | CONFIG_SERIAL_OF_PLATFORM=y |
631 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 720 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
721 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
632 | CONFIG_UNIX98_PTYS=y | 722 | CONFIG_UNIX98_PTYS=y |
633 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 723 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
634 | CONFIG_LEGACY_PTYS=y | 724 | CONFIG_LEGACY_PTYS=y |
@@ -645,6 +735,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
645 | CONFIG_DEVPORT=y | 735 | CONFIG_DEVPORT=y |
646 | # CONFIG_I2C is not set | 736 | # CONFIG_I2C is not set |
647 | # CONFIG_SPI is not set | 737 | # CONFIG_SPI is not set |
738 | |||
739 | # | ||
740 | # PPS support | ||
741 | # | ||
742 | # CONFIG_PPS is not set | ||
648 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 743 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
649 | # CONFIG_GPIOLIB is not set | 744 | # CONFIG_GPIOLIB is not set |
650 | # CONFIG_W1 is not set | 745 | # CONFIG_W1 is not set |
@@ -667,27 +762,13 @@ CONFIG_SSB_POSSIBLE=y | |||
667 | # CONFIG_HTC_PASIC3 is not set | 762 | # CONFIG_HTC_PASIC3 is not set |
668 | # CONFIG_MFD_TMIO is not set | 763 | # CONFIG_MFD_TMIO is not set |
669 | # CONFIG_REGULATOR is not set | 764 | # CONFIG_REGULATOR is not set |
670 | 765 | # CONFIG_MEDIA_SUPPORT is not set | |
671 | # | ||
672 | # Multimedia devices | ||
673 | # | ||
674 | |||
675 | # | ||
676 | # Multimedia core support | ||
677 | # | ||
678 | # CONFIG_VIDEO_DEV is not set | ||
679 | # CONFIG_DVB_CORE is not set | ||
680 | # CONFIG_VIDEO_MEDIA is not set | ||
681 | |||
682 | # | ||
683 | # Multimedia drivers | ||
684 | # | ||
685 | CONFIG_DAB=y | ||
686 | 766 | ||
687 | # | 767 | # |
688 | # Graphics support | 768 | # Graphics support |
689 | # | 769 | # |
690 | # CONFIG_AGP is not set | 770 | # CONFIG_AGP is not set |
771 | CONFIG_VGA_ARB=y | ||
691 | # CONFIG_DRM is not set | 772 | # CONFIG_DRM is not set |
692 | # CONFIG_VGASTATE is not set | 773 | # CONFIG_VGASTATE is not set |
693 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 774 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -712,7 +793,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
712 | # | 793 | # |
713 | 794 | ||
714 | # | 795 | # |
715 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 796 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
716 | # | 797 | # |
717 | # CONFIG_USB_GADGET is not set | 798 | # CONFIG_USB_GADGET is not set |
718 | 799 | ||
@@ -728,7 +809,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
728 | # CONFIG_EDAC is not set | 809 | # CONFIG_EDAC is not set |
729 | # CONFIG_RTC_CLASS is not set | 810 | # CONFIG_RTC_CLASS is not set |
730 | # CONFIG_DMADEVICES is not set | 811 | # CONFIG_DMADEVICES is not set |
812 | # CONFIG_AUXDISPLAY is not set | ||
731 | # CONFIG_UIO is not set | 813 | # CONFIG_UIO is not set |
814 | |||
815 | # | ||
816 | # TI VLYNQ | ||
817 | # | ||
732 | # CONFIG_STAGING is not set | 818 | # CONFIG_STAGING is not set |
733 | 819 | ||
734 | # | 820 | # |
@@ -739,14 +825,17 @@ CONFIG_EXT2_FS=y | |||
739 | # CONFIG_EXT2_FS_XIP is not set | 825 | # CONFIG_EXT2_FS_XIP is not set |
740 | # CONFIG_EXT3_FS is not set | 826 | # CONFIG_EXT3_FS is not set |
741 | # CONFIG_EXT4_FS is not set | 827 | # CONFIG_EXT4_FS is not set |
828 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
742 | # CONFIG_REISERFS_FS is not set | 829 | # CONFIG_REISERFS_FS is not set |
743 | # CONFIG_JFS_FS is not set | 830 | # CONFIG_JFS_FS is not set |
744 | # CONFIG_FS_POSIX_ACL is not set | 831 | # CONFIG_FS_POSIX_ACL is not set |
745 | CONFIG_FILE_LOCKING=y | ||
746 | # CONFIG_XFS_FS is not set | 832 | # CONFIG_XFS_FS is not set |
747 | # CONFIG_GFS2_FS is not set | 833 | # CONFIG_GFS2_FS is not set |
748 | # CONFIG_OCFS2_FS is not set | 834 | # CONFIG_OCFS2_FS is not set |
749 | # CONFIG_BTRFS_FS is not set | 835 | # CONFIG_BTRFS_FS is not set |
836 | # CONFIG_NILFS2_FS is not set | ||
837 | CONFIG_FILE_LOCKING=y | ||
838 | CONFIG_FSNOTIFY=y | ||
750 | CONFIG_DNOTIFY=y | 839 | CONFIG_DNOTIFY=y |
751 | CONFIG_INOTIFY=y | 840 | CONFIG_INOTIFY=y |
752 | CONFIG_INOTIFY_USER=y | 841 | CONFIG_INOTIFY_USER=y |
@@ -756,6 +845,11 @@ CONFIG_INOTIFY_USER=y | |||
756 | # CONFIG_FUSE_FS is not set | 845 | # CONFIG_FUSE_FS is not set |
757 | 846 | ||
758 | # | 847 | # |
848 | # Caches | ||
849 | # | ||
850 | # CONFIG_FSCACHE is not set | ||
851 | |||
852 | # | ||
759 | # CD-ROM/DVD Filesystems | 853 | # CD-ROM/DVD Filesystems |
760 | # | 854 | # |
761 | # CONFIG_ISO9660_FS is not set | 855 | # CONFIG_ISO9660_FS is not set |
@@ -820,7 +914,6 @@ CONFIG_LOCKD=y | |||
820 | CONFIG_LOCKD_V4=y | 914 | CONFIG_LOCKD_V4=y |
821 | CONFIG_NFS_COMMON=y | 915 | CONFIG_NFS_COMMON=y |
822 | CONFIG_SUNRPC=y | 916 | CONFIG_SUNRPC=y |
823 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
824 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 917 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
825 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 918 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
826 | # CONFIG_SMB_FS is not set | 919 | # CONFIG_SMB_FS is not set |
@@ -836,6 +929,7 @@ CONFIG_SUNRPC=y | |||
836 | CONFIG_MSDOS_PARTITION=y | 929 | CONFIG_MSDOS_PARTITION=y |
837 | # CONFIG_NLS is not set | 930 | # CONFIG_NLS is not set |
838 | # CONFIG_DLM is not set | 931 | # CONFIG_DLM is not set |
932 | # CONFIG_BINARY_PRINTF is not set | ||
839 | 933 | ||
840 | # | 934 | # |
841 | # Library routines | 935 | # Library routines |
@@ -851,11 +945,13 @@ CONFIG_CRC32=y | |||
851 | # CONFIG_LIBCRC32C is not set | 945 | # CONFIG_LIBCRC32C is not set |
852 | CONFIG_ZLIB_INFLATE=y | 946 | CONFIG_ZLIB_INFLATE=y |
853 | CONFIG_ZLIB_DEFLATE=y | 947 | CONFIG_ZLIB_DEFLATE=y |
854 | CONFIG_PLIST=y | 948 | CONFIG_DECOMPRESS_GZIP=y |
855 | CONFIG_HAS_IOMEM=y | 949 | CONFIG_HAS_IOMEM=y |
856 | CONFIG_HAS_IOPORT=y | 950 | CONFIG_HAS_IOPORT=y |
857 | CONFIG_HAS_DMA=y | 951 | CONFIG_HAS_DMA=y |
858 | CONFIG_HAVE_LMB=y | 952 | CONFIG_HAVE_LMB=y |
953 | CONFIG_NLATTR=y | ||
954 | CONFIG_GENERIC_ATOMIC64=y | ||
859 | 955 | ||
860 | # | 956 | # |
861 | # Kernel hacking | 957 | # Kernel hacking |
@@ -865,6 +961,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
865 | CONFIG_ENABLE_MUST_CHECK=y | 961 | CONFIG_ENABLE_MUST_CHECK=y |
866 | CONFIG_FRAME_WARN=1024 | 962 | CONFIG_FRAME_WARN=1024 |
867 | CONFIG_MAGIC_SYSRQ=y | 963 | CONFIG_MAGIC_SYSRQ=y |
964 | # CONFIG_STRIP_ASM_SYMS is not set | ||
868 | # CONFIG_UNUSED_SYMBOLS is not set | 965 | # CONFIG_UNUSED_SYMBOLS is not set |
869 | CONFIG_DEBUG_FS=y | 966 | CONFIG_DEBUG_FS=y |
870 | # CONFIG_HEADERS_CHECK is not set | 967 | # CONFIG_HEADERS_CHECK is not set |
@@ -873,16 +970,23 @@ CONFIG_DEBUG_KERNEL=y | |||
873 | CONFIG_DETECT_SOFTLOCKUP=y | 970 | CONFIG_DETECT_SOFTLOCKUP=y |
874 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 971 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
875 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 972 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
973 | CONFIG_DETECT_HUNG_TASK=y | ||
974 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
975 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
876 | CONFIG_SCHED_DEBUG=y | 976 | CONFIG_SCHED_DEBUG=y |
877 | # CONFIG_SCHEDSTATS is not set | 977 | # CONFIG_SCHEDSTATS is not set |
878 | # CONFIG_TIMER_STATS is not set | 978 | # CONFIG_TIMER_STATS is not set |
879 | # CONFIG_DEBUG_OBJECTS is not set | 979 | # CONFIG_DEBUG_OBJECTS is not set |
880 | # CONFIG_SLUB_DEBUG_ON is not set | 980 | # CONFIG_SLUB_DEBUG_ON is not set |
881 | # CONFIG_SLUB_STATS is not set | 981 | # CONFIG_SLUB_STATS is not set |
982 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
882 | # CONFIG_DEBUG_RT_MUTEXES is not set | 983 | # CONFIG_DEBUG_RT_MUTEXES is not set |
883 | # CONFIG_RT_MUTEX_TESTER is not set | 984 | # CONFIG_RT_MUTEX_TESTER is not set |
884 | # CONFIG_DEBUG_SPINLOCK is not set | 985 | # CONFIG_DEBUG_SPINLOCK is not set |
885 | # CONFIG_DEBUG_MUTEXES is not set | 986 | # CONFIG_DEBUG_MUTEXES is not set |
987 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
988 | # CONFIG_PROVE_LOCKING is not set | ||
989 | # CONFIG_LOCK_STAT is not set | ||
886 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 990 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
887 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 991 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
888 | # CONFIG_DEBUG_KOBJECT is not set | 992 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -894,35 +998,45 @@ CONFIG_SCHED_DEBUG=y | |||
894 | # CONFIG_DEBUG_LIST is not set | 998 | # CONFIG_DEBUG_LIST is not set |
895 | # CONFIG_DEBUG_SG is not set | 999 | # CONFIG_DEBUG_SG is not set |
896 | # CONFIG_DEBUG_NOTIFIERS is not set | 1000 | # CONFIG_DEBUG_NOTIFIERS is not set |
897 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1001 | # CONFIG_DEBUG_CREDENTIALS is not set |
898 | # CONFIG_RCU_TORTURE_TEST is not set | 1002 | # CONFIG_RCU_TORTURE_TEST is not set |
899 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1003 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
900 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1004 | # CONFIG_BACKTRACE_SELF_TEST is not set |
901 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1005 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1006 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
902 | # CONFIG_FAULT_INJECTION is not set | 1007 | # CONFIG_FAULT_INJECTION is not set |
903 | # CONFIG_LATENCYTOP is not set | 1008 | # CONFIG_LATENCYTOP is not set |
904 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1009 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1010 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
905 | CONFIG_HAVE_FUNCTION_TRACER=y | 1011 | CONFIG_HAVE_FUNCTION_TRACER=y |
1012 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
906 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1013 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
907 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1014 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
908 | 1015 | CONFIG_TRACING_SUPPORT=y | |
909 | # | 1016 | CONFIG_FTRACE=y |
910 | # Tracers | ||
911 | # | ||
912 | # CONFIG_FUNCTION_TRACER is not set | 1017 | # CONFIG_FUNCTION_TRACER is not set |
1018 | # CONFIG_IRQSOFF_TRACER is not set | ||
913 | # CONFIG_SCHED_TRACER is not set | 1019 | # CONFIG_SCHED_TRACER is not set |
914 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1020 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
915 | # CONFIG_BOOT_TRACER is not set | 1021 | # CONFIG_BOOT_TRACER is not set |
916 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1022 | CONFIG_BRANCH_PROFILE_NONE=y |
1023 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1024 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
917 | # CONFIG_STACK_TRACER is not set | 1025 | # CONFIG_STACK_TRACER is not set |
918 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1026 | # CONFIG_KMEMTRACE is not set |
1027 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1028 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1029 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1030 | # CONFIG_DMA_API_DEBUG is not set | ||
919 | # CONFIG_SAMPLES is not set | 1031 | # CONFIG_SAMPLES is not set |
920 | CONFIG_HAVE_ARCH_KGDB=y | 1032 | CONFIG_HAVE_ARCH_KGDB=y |
921 | # CONFIG_KGDB is not set | 1033 | # CONFIG_KGDB is not set |
1034 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1035 | CONFIG_PPC_WERROR=y | ||
922 | CONFIG_PRINT_STACK_DEPTH=64 | 1036 | CONFIG_PRINT_STACK_DEPTH=64 |
923 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1037 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
924 | # CONFIG_DEBUG_STACK_USAGE is not set | 1038 | # CONFIG_DEBUG_STACK_USAGE is not set |
925 | # CONFIG_DEBUG_PAGEALLOC is not set | 1039 | # CONFIG_PPC_EMULATED_STATS is not set |
926 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1040 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
927 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1041 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
928 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1042 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -942,6 +1056,7 @@ CONFIG_PPC_EARLY_DEBUG=y | |||
942 | CONFIG_PPC_EARLY_DEBUG_44x=y | 1056 | CONFIG_PPC_EARLY_DEBUG_44x=y |
943 | # CONFIG_PPC_EARLY_DEBUG_40x is not set | 1057 | # CONFIG_PPC_EARLY_DEBUG_40x is not set |
944 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set | 1058 | # CONFIG_PPC_EARLY_DEBUG_CPM is not set |
1059 | # CONFIG_PPC_EARLY_DEBUG_USBGECKO is not set | ||
945 | CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300 | 1060 | CONFIG_PPC_EARLY_DEBUG_44x_PHYSLOW=0xef600300 |
946 | CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1 | 1061 | CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1 |
947 | 1062 | ||
@@ -951,13 +1066,16 @@ CONFIG_PPC_EARLY_DEBUG_44x_PHYSHIGH=0x1 | |||
951 | # CONFIG_KEYS is not set | 1066 | # CONFIG_KEYS is not set |
952 | # CONFIG_SECURITY is not set | 1067 | # CONFIG_SECURITY is not set |
953 | # CONFIG_SECURITYFS is not set | 1068 | # CONFIG_SECURITYFS is not set |
954 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1069 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1070 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1071 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1072 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1073 | CONFIG_DEFAULT_SECURITY="" | ||
955 | CONFIG_CRYPTO=y | 1074 | CONFIG_CRYPTO=y |
956 | 1075 | ||
957 | # | 1076 | # |
958 | # Crypto core or helper | 1077 | # Crypto core or helper |
959 | # | 1078 | # |
960 | # CONFIG_CRYPTO_FIPS is not set | ||
961 | CONFIG_CRYPTO_ALGAPI=y | 1079 | CONFIG_CRYPTO_ALGAPI=y |
962 | CONFIG_CRYPTO_ALGAPI2=y | 1080 | CONFIG_CRYPTO_ALGAPI2=y |
963 | CONFIG_CRYPTO_AEAD2=y | 1081 | CONFIG_CRYPTO_AEAD2=y |
@@ -966,10 +1084,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
966 | CONFIG_CRYPTO_HASH=y | 1084 | CONFIG_CRYPTO_HASH=y |
967 | CONFIG_CRYPTO_HASH2=y | 1085 | CONFIG_CRYPTO_HASH2=y |
968 | CONFIG_CRYPTO_RNG2=y | 1086 | CONFIG_CRYPTO_RNG2=y |
1087 | CONFIG_CRYPTO_PCOMP=y | ||
969 | CONFIG_CRYPTO_MANAGER=y | 1088 | CONFIG_CRYPTO_MANAGER=y |
970 | CONFIG_CRYPTO_MANAGER2=y | 1089 | CONFIG_CRYPTO_MANAGER2=y |
971 | # CONFIG_CRYPTO_GF128MUL is not set | 1090 | # CONFIG_CRYPTO_GF128MUL is not set |
972 | # CONFIG_CRYPTO_NULL is not set | 1091 | # CONFIG_CRYPTO_NULL is not set |
1092 | CONFIG_CRYPTO_WORKQUEUE=y | ||
973 | # CONFIG_CRYPTO_CRYPTD is not set | 1093 | # CONFIG_CRYPTO_CRYPTD is not set |
974 | # CONFIG_CRYPTO_AUTHENC is not set | 1094 | # CONFIG_CRYPTO_AUTHENC is not set |
975 | # CONFIG_CRYPTO_TEST is not set | 1095 | # CONFIG_CRYPTO_TEST is not set |
@@ -997,11 +1117,13 @@ CONFIG_CRYPTO_PCBC=y | |||
997 | # | 1117 | # |
998 | # CONFIG_CRYPTO_HMAC is not set | 1118 | # CONFIG_CRYPTO_HMAC is not set |
999 | # CONFIG_CRYPTO_XCBC is not set | 1119 | # CONFIG_CRYPTO_XCBC is not set |
1120 | # CONFIG_CRYPTO_VMAC is not set | ||
1000 | 1121 | ||
1001 | # | 1122 | # |
1002 | # Digest | 1123 | # Digest |
1003 | # | 1124 | # |
1004 | # CONFIG_CRYPTO_CRC32C is not set | 1125 | # CONFIG_CRYPTO_CRC32C is not set |
1126 | # CONFIG_CRYPTO_GHASH is not set | ||
1005 | # CONFIG_CRYPTO_MD4 is not set | 1127 | # CONFIG_CRYPTO_MD4 is not set |
1006 | CONFIG_CRYPTO_MD5=y | 1128 | CONFIG_CRYPTO_MD5=y |
1007 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1129 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1038,6 +1160,7 @@ CONFIG_CRYPTO_DES=y | |||
1038 | # Compression | 1160 | # Compression |
1039 | # | 1161 | # |
1040 | # CONFIG_CRYPTO_DEFLATE is not set | 1162 | # CONFIG_CRYPTO_DEFLATE is not set |
1163 | # CONFIG_CRYPTO_ZLIB is not set | ||
1041 | # CONFIG_CRYPTO_LZO is not set | 1164 | # CONFIG_CRYPTO_LZO is not set |
1042 | 1165 | ||
1043 | # | 1166 | # |
@@ -1046,5 +1169,6 @@ CONFIG_CRYPTO_DES=y | |||
1046 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1169 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1047 | CONFIG_CRYPTO_HW=y | 1170 | CONFIG_CRYPTO_HW=y |
1048 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1171 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1172 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1049 | # CONFIG_PPC_CLOCK is not set | 1173 | # CONFIG_PPC_CLOCK is not set |
1050 | # CONFIG_VIRTUALIZATION is not set | 1174 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/redwood_defconfig b/arch/powerpc/configs/44x/redwood_defconfig index ed31d4f17b5a..a67ec91a28c3 100644 --- a/arch/powerpc/configs/44x/redwood_defconfig +++ b/arch/powerpc/configs/44x/redwood_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc3 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Wed Feb 4 14:31:09 2009 | 4 | # Mon Jan 4 15:05:05 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 48 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
45 | CONFIG_PPC=y | 49 | CONFIG_PPC=y |
@@ -53,11 +57,15 @@ CONFIG_PPC_UDBG_16550=y | |||
53 | # CONFIG_GENERIC_TBSYNC is not set | 57 | # CONFIG_GENERIC_TBSYNC is not set |
54 | CONFIG_AUDIT_ARCH=y | 58 | CONFIG_AUDIT_ARCH=y |
55 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | ||
56 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
58 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
60 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 67 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
68 | CONFIG_CONSTRUCTORS=y | ||
61 | 69 | ||
62 | # | 70 | # |
63 | # General setup | 71 | # General setup |
@@ -71,6 +79,7 @@ CONFIG_SWAP=y | |||
71 | CONFIG_SYSVIPC=y | 79 | CONFIG_SYSVIPC=y |
72 | CONFIG_SYSVIPC_SYSCTL=y | 80 | CONFIG_SYSVIPC_SYSCTL=y |
73 | CONFIG_POSIX_MQUEUE=y | 81 | CONFIG_POSIX_MQUEUE=y |
82 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
74 | # CONFIG_BSD_PROCESS_ACCT is not set | 83 | # CONFIG_BSD_PROCESS_ACCT is not set |
75 | # CONFIG_TASKSTATS is not set | 84 | # CONFIG_TASKSTATS is not set |
76 | # CONFIG_AUDIT is not set | 85 | # CONFIG_AUDIT is not set |
@@ -78,11 +87,13 @@ CONFIG_POSIX_MQUEUE=y | |||
78 | # | 87 | # |
79 | # RCU Subsystem | 88 | # RCU Subsystem |
80 | # | 89 | # |
81 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
82 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
83 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
84 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
85 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
86 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
87 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
88 | # CONFIG_GROUP_SCHED is not set | 99 | # CONFIG_GROUP_SCHED is not set |
@@ -93,8 +104,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
93 | # CONFIG_NAMESPACES is not set | 104 | # CONFIG_NAMESPACES is not set |
94 | CONFIG_BLK_DEV_INITRD=y | 105 | CONFIG_BLK_DEV_INITRD=y |
95 | CONFIG_INITRAMFS_SOURCE="" | 106 | CONFIG_INITRAMFS_SOURCE="" |
107 | CONFIG_RD_GZIP=y | ||
108 | # CONFIG_RD_BZIP2 is not set | ||
109 | # CONFIG_RD_LZMA is not set | ||
96 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 110 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
97 | CONFIG_SYSCTL=y | 111 | CONFIG_SYSCTL=y |
112 | CONFIG_ANON_INODES=y | ||
98 | CONFIG_EMBEDDED=y | 113 | CONFIG_EMBEDDED=y |
99 | CONFIG_SYSCTL_SYSCALL=y | 114 | CONFIG_SYSCTL_SYSCALL=y |
100 | CONFIG_KALLSYMS=y | 115 | CONFIG_KALLSYMS=y |
@@ -104,19 +119,25 @@ CONFIG_HOTPLUG=y | |||
104 | CONFIG_PRINTK=y | 119 | CONFIG_PRINTK=y |
105 | CONFIG_BUG=y | 120 | CONFIG_BUG=y |
106 | CONFIG_ELF_CORE=y | 121 | CONFIG_ELF_CORE=y |
107 | CONFIG_COMPAT_BRK=y | ||
108 | CONFIG_BASE_FULL=y | 122 | CONFIG_BASE_FULL=y |
109 | CONFIG_FUTEX=y | 123 | CONFIG_FUTEX=y |
110 | CONFIG_ANON_INODES=y | ||
111 | CONFIG_EPOLL=y | 124 | CONFIG_EPOLL=y |
112 | CONFIG_SIGNALFD=y | 125 | CONFIG_SIGNALFD=y |
113 | CONFIG_TIMERFD=y | 126 | CONFIG_TIMERFD=y |
114 | CONFIG_EVENTFD=y | 127 | CONFIG_EVENTFD=y |
115 | CONFIG_SHMEM=y | 128 | CONFIG_SHMEM=y |
116 | CONFIG_AIO=y | 129 | CONFIG_AIO=y |
130 | CONFIG_HAVE_PERF_EVENTS=y | ||
131 | |||
132 | # | ||
133 | # Kernel Performance Events And Counters | ||
134 | # | ||
135 | # CONFIG_PERF_EVENTS is not set | ||
136 | # CONFIG_PERF_COUNTERS is not set | ||
117 | CONFIG_VM_EVENT_COUNTERS=y | 137 | CONFIG_VM_EVENT_COUNTERS=y |
118 | CONFIG_PCI_QUIRKS=y | 138 | CONFIG_PCI_QUIRKS=y |
119 | CONFIG_SLUB_DEBUG=y | 139 | CONFIG_SLUB_DEBUG=y |
140 | CONFIG_COMPAT_BRK=y | ||
120 | # CONFIG_SLAB is not set | 141 | # CONFIG_SLAB is not set |
121 | CONFIG_SLUB=y | 142 | CONFIG_SLUB=y |
122 | # CONFIG_SLOB is not set | 143 | # CONFIG_SLOB is not set |
@@ -128,6 +149,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
128 | CONFIG_HAVE_KPROBES=y | 149 | CONFIG_HAVE_KPROBES=y |
129 | CONFIG_HAVE_KRETPROBES=y | 150 | CONFIG_HAVE_KRETPROBES=y |
130 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 151 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
152 | CONFIG_HAVE_DMA_ATTRS=y | ||
153 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
154 | |||
155 | # | ||
156 | # GCOV-based kernel profiling | ||
157 | # | ||
158 | # CONFIG_GCOV_KERNEL is not set | ||
159 | # CONFIG_SLOW_WORK is not set | ||
131 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 160 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
132 | CONFIG_SLABINFO=y | 161 | CONFIG_SLABINFO=y |
133 | CONFIG_RT_MUTEXES=y | 162 | CONFIG_RT_MUTEXES=y |
@@ -139,8 +168,7 @@ CONFIG_MODULE_UNLOAD=y | |||
139 | # CONFIG_MODVERSIONS is not set | 168 | # CONFIG_MODVERSIONS is not set |
140 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 169 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
141 | CONFIG_BLOCK=y | 170 | CONFIG_BLOCK=y |
142 | CONFIG_LBD=y | 171 | CONFIG_LBDAF=y |
143 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
144 | # CONFIG_BLK_DEV_BSG is not set | 172 | # CONFIG_BLK_DEV_BSG is not set |
145 | # CONFIG_BLK_DEV_INTEGRITY is not set | 173 | # CONFIG_BLK_DEV_INTEGRITY is not set |
146 | 174 | ||
@@ -148,14 +176,41 @@ CONFIG_LBD=y | |||
148 | # IO Schedulers | 176 | # IO Schedulers |
149 | # | 177 | # |
150 | CONFIG_IOSCHED_NOOP=y | 178 | CONFIG_IOSCHED_NOOP=y |
151 | CONFIG_IOSCHED_AS=y | ||
152 | CONFIG_IOSCHED_DEADLINE=y | 179 | CONFIG_IOSCHED_DEADLINE=y |
153 | CONFIG_IOSCHED_CFQ=y | 180 | CONFIG_IOSCHED_CFQ=y |
154 | CONFIG_DEFAULT_AS=y | ||
155 | # CONFIG_DEFAULT_DEADLINE is not set | 181 | # CONFIG_DEFAULT_DEADLINE is not set |
156 | # CONFIG_DEFAULT_CFQ is not set | 182 | CONFIG_DEFAULT_CFQ=y |
157 | # CONFIG_DEFAULT_NOOP is not set | 183 | # CONFIG_DEFAULT_NOOP is not set |
158 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 184 | CONFIG_DEFAULT_IOSCHED="cfq" |
185 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
186 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
187 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
188 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
189 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
191 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
192 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
193 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
194 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
195 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
196 | # CONFIG_INLINE_READ_LOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
200 | CONFIG_INLINE_READ_UNLOCK=y | ||
201 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
202 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
203 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
204 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
205 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
209 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
210 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
211 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
212 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
213 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | # CONFIG_FREEZER is not set | 214 | # CONFIG_FREEZER is not set |
160 | CONFIG_PPC4xx_PCI_EXPRESS=y | 215 | CONFIG_PPC4xx_PCI_EXPRESS=y |
161 | 216 | ||
@@ -177,6 +232,7 @@ CONFIG_PPC4xx_PCI_EXPRESS=y | |||
177 | # CONFIG_CANYONLANDS is not set | 232 | # CONFIG_CANYONLANDS is not set |
178 | # CONFIG_GLACIER is not set | 233 | # CONFIG_GLACIER is not set |
179 | CONFIG_REDWOOD=y | 234 | CONFIG_REDWOOD=y |
235 | # CONFIG_EIGER is not set | ||
180 | # CONFIG_YOSEMITE is not set | 236 | # CONFIG_YOSEMITE is not set |
181 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 237 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
182 | CONFIG_PPC44x_SIMPLE=y | 238 | CONFIG_PPC44x_SIMPLE=y |
@@ -219,10 +275,12 @@ CONFIG_BINFMT_ELF=y | |||
219 | # CONFIG_BINFMT_MISC is not set | 275 | # CONFIG_BINFMT_MISC is not set |
220 | # CONFIG_MATH_EMULATION is not set | 276 | # CONFIG_MATH_EMULATION is not set |
221 | # CONFIG_IOMMU_HELPER is not set | 277 | # CONFIG_IOMMU_HELPER is not set |
222 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 278 | # CONFIG_SWIOTLB is not set |
223 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 279 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
224 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 280 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
225 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
282 | CONFIG_SPARSE_IRQ=y | ||
283 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
226 | CONFIG_ARCH_FLATMEM_ENABLE=y | 284 | CONFIG_ARCH_FLATMEM_ENABLE=y |
227 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 285 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
228 | CONFIG_SELECT_MEMORY_MODEL=y | 286 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -238,10 +296,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
238 | CONFIG_ZONE_DMA_FLAG=1 | 296 | CONFIG_ZONE_DMA_FLAG=1 |
239 | CONFIG_BOUNCE=y | 297 | CONFIG_BOUNCE=y |
240 | CONFIG_VIRT_TO_BUS=y | 298 | CONFIG_VIRT_TO_BUS=y |
241 | CONFIG_UNEVICTABLE_LRU=y | 299 | # CONFIG_KSM is not set |
300 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
301 | CONFIG_STDBINUTILS=y | ||
242 | CONFIG_PPC_4K_PAGES=y | 302 | CONFIG_PPC_4K_PAGES=y |
243 | # CONFIG_PPC_16K_PAGES is not set | 303 | # CONFIG_PPC_16K_PAGES is not set |
244 | # CONFIG_PPC_64K_PAGES is not set | 304 | # CONFIG_PPC_64K_PAGES is not set |
305 | # CONFIG_PPC_256K_PAGES is not set | ||
245 | CONFIG_FORCE_MAX_ZONEORDER=11 | 306 | CONFIG_FORCE_MAX_ZONEORDER=11 |
246 | CONFIG_PROC_DEVICETREE=y | 307 | CONFIG_PROC_DEVICETREE=y |
247 | CONFIG_CMDLINE_BOOL=y | 308 | CONFIG_CMDLINE_BOOL=y |
@@ -262,12 +323,15 @@ CONFIG_PCI_DOMAINS=y | |||
262 | CONFIG_PCI_SYSCALL=y | 323 | CONFIG_PCI_SYSCALL=y |
263 | CONFIG_PCIEPORTBUS=y | 324 | CONFIG_PCIEPORTBUS=y |
264 | CONFIG_PCIEAER=y | 325 | CONFIG_PCIEAER=y |
326 | # CONFIG_PCIE_ECRC is not set | ||
327 | # CONFIG_PCIEAER_INJECT is not set | ||
265 | # CONFIG_PCIEASPM is not set | 328 | # CONFIG_PCIEASPM is not set |
266 | CONFIG_ARCH_SUPPORTS_MSI=y | 329 | CONFIG_ARCH_SUPPORTS_MSI=y |
267 | # CONFIG_PCI_MSI is not set | 330 | # CONFIG_PCI_MSI is not set |
268 | # CONFIG_PCI_LEGACY is not set | 331 | # CONFIG_PCI_LEGACY is not set |
269 | # CONFIG_PCI_DEBUG is not set | 332 | # CONFIG_PCI_DEBUG is not set |
270 | # CONFIG_PCI_STUB is not set | 333 | # CONFIG_PCI_STUB is not set |
334 | # CONFIG_PCI_IOV is not set | ||
271 | # CONFIG_PCCARD is not set | 335 | # CONFIG_PCCARD is not set |
272 | # CONFIG_HOTPLUG_PCI is not set | 336 | # CONFIG_HOTPLUG_PCI is not set |
273 | # CONFIG_HAS_RAPIDIO is not set | 337 | # CONFIG_HAS_RAPIDIO is not set |
@@ -285,14 +349,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
285 | CONFIG_KERNEL_START=0xc0000000 | 349 | CONFIG_KERNEL_START=0xc0000000 |
286 | CONFIG_PHYSICAL_START=0x00000000 | 350 | CONFIG_PHYSICAL_START=0x00000000 |
287 | CONFIG_TASK_SIZE=0xc0000000 | 351 | CONFIG_TASK_SIZE=0xc0000000 |
288 | CONFIG_CONSISTENT_START=0xff100000 | ||
289 | CONFIG_CONSISTENT_SIZE=0x00200000 | 352 | CONFIG_CONSISTENT_SIZE=0x00200000 |
290 | CONFIG_NET=y | 353 | CONFIG_NET=y |
291 | 354 | ||
292 | # | 355 | # |
293 | # Networking options | 356 | # Networking options |
294 | # | 357 | # |
295 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
296 | CONFIG_PACKET=y | 358 | CONFIG_PACKET=y |
297 | # CONFIG_PACKET_MMAP is not set | 359 | # CONFIG_PACKET_MMAP is not set |
298 | CONFIG_UNIX=y | 360 | CONFIG_UNIX=y |
@@ -329,6 +391,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
329 | # CONFIG_NETFILTER is not set | 391 | # CONFIG_NETFILTER is not set |
330 | # CONFIG_IP_DCCP is not set | 392 | # CONFIG_IP_DCCP is not set |
331 | # CONFIG_IP_SCTP is not set | 393 | # CONFIG_IP_SCTP is not set |
394 | # CONFIG_RDS is not set | ||
332 | # CONFIG_TIPC is not set | 395 | # CONFIG_TIPC is not set |
333 | # CONFIG_ATM is not set | 396 | # CONFIG_ATM is not set |
334 | # CONFIG_BRIDGE is not set | 397 | # CONFIG_BRIDGE is not set |
@@ -342,6 +405,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
342 | # CONFIG_LAPB is not set | 405 | # CONFIG_LAPB is not set |
343 | # CONFIG_ECONET is not set | 406 | # CONFIG_ECONET is not set |
344 | # CONFIG_WAN_ROUTER is not set | 407 | # CONFIG_WAN_ROUTER is not set |
408 | # CONFIG_PHONET is not set | ||
409 | # CONFIG_IEEE802154 is not set | ||
345 | # CONFIG_NET_SCHED is not set | 410 | # CONFIG_NET_SCHED is not set |
346 | # CONFIG_DCB is not set | 411 | # CONFIG_DCB is not set |
347 | 412 | ||
@@ -354,13 +419,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
354 | # CONFIG_IRDA is not set | 419 | # CONFIG_IRDA is not set |
355 | # CONFIG_BT is not set | 420 | # CONFIG_BT is not set |
356 | # CONFIG_AF_RXRPC is not set | 421 | # CONFIG_AF_RXRPC is not set |
357 | # CONFIG_PHONET is not set | ||
358 | CONFIG_WIRELESS=y | 422 | CONFIG_WIRELESS=y |
359 | # CONFIG_CFG80211 is not set | 423 | # CONFIG_CFG80211 is not set |
360 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
361 | # CONFIG_WIRELESS_EXT is not set | ||
362 | # CONFIG_LIB80211 is not set | 424 | # CONFIG_LIB80211 is not set |
363 | # CONFIG_MAC80211 is not set | 425 | |
426 | # | ||
427 | # CFG80211 needs to be enabled for MAC80211 | ||
428 | # | ||
364 | # CONFIG_WIMAX is not set | 429 | # CONFIG_WIMAX is not set |
365 | # CONFIG_RFKILL is not set | 430 | # CONFIG_RFKILL is not set |
366 | # CONFIG_NET_9P is not set | 431 | # CONFIG_NET_9P is not set |
@@ -373,6 +438,7 @@ CONFIG_WIRELESS_OLD_REGULATORY=y | |||
373 | # Generic Driver Options | 438 | # Generic Driver Options |
374 | # | 439 | # |
375 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 440 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
441 | # CONFIG_DEVTMPFS is not set | ||
376 | CONFIG_STANDALONE=y | 442 | CONFIG_STANDALONE=y |
377 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 443 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
378 | CONFIG_FW_LOADER=y | 444 | CONFIG_FW_LOADER=y |
@@ -385,9 +451,9 @@ CONFIG_CONNECTOR=y | |||
385 | CONFIG_PROC_EVENTS=y | 451 | CONFIG_PROC_EVENTS=y |
386 | CONFIG_MTD=y | 452 | CONFIG_MTD=y |
387 | # CONFIG_MTD_DEBUG is not set | 453 | # CONFIG_MTD_DEBUG is not set |
454 | # CONFIG_MTD_TESTS is not set | ||
388 | CONFIG_MTD_CONCAT=y | 455 | CONFIG_MTD_CONCAT=y |
389 | CONFIG_MTD_PARTITIONS=y | 456 | CONFIG_MTD_PARTITIONS=y |
390 | # CONFIG_MTD_TESTS is not set | ||
391 | # CONFIG_MTD_REDBOOT_PARTS is not set | 457 | # CONFIG_MTD_REDBOOT_PARTS is not set |
392 | CONFIG_MTD_CMDLINE_PARTS=y | 458 | CONFIG_MTD_CMDLINE_PARTS=y |
393 | CONFIG_MTD_OF_PARTS=y | 459 | CONFIG_MTD_OF_PARTS=y |
@@ -462,7 +528,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
462 | # LPDDR flash memory drivers | 528 | # LPDDR flash memory drivers |
463 | # | 529 | # |
464 | # CONFIG_MTD_LPDDR is not set | 530 | # CONFIG_MTD_LPDDR is not set |
465 | # CONFIG_MTD_QINFO_PROBE is not set | ||
466 | 531 | ||
467 | # | 532 | # |
468 | # UBI - Unsorted block images | 533 | # UBI - Unsorted block images |
@@ -479,6 +544,7 @@ CONFIG_BLK_DEV=y | |||
479 | # CONFIG_BLK_DEV_UMEM is not set | 544 | # CONFIG_BLK_DEV_UMEM is not set |
480 | # CONFIG_BLK_DEV_COW_COMMON is not set | 545 | # CONFIG_BLK_DEV_COW_COMMON is not set |
481 | # CONFIG_BLK_DEV_LOOP is not set | 546 | # CONFIG_BLK_DEV_LOOP is not set |
547 | # CONFIG_BLK_DEV_DRBD is not set | ||
482 | # CONFIG_BLK_DEV_NBD is not set | 548 | # CONFIG_BLK_DEV_NBD is not set |
483 | # CONFIG_BLK_DEV_SX8 is not set | 549 | # CONFIG_BLK_DEV_SX8 is not set |
484 | CONFIG_BLK_DEV_RAM=y | 550 | CONFIG_BLK_DEV_RAM=y |
@@ -512,10 +578,6 @@ CONFIG_BLK_DEV_SD=y | |||
512 | # CONFIG_BLK_DEV_SR is not set | 578 | # CONFIG_BLK_DEV_SR is not set |
513 | CONFIG_CHR_DEV_SG=y | 579 | CONFIG_CHR_DEV_SG=y |
514 | # CONFIG_CHR_DEV_SCH is not set | 580 | # CONFIG_CHR_DEV_SCH is not set |
515 | |||
516 | # | ||
517 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
518 | # | ||
519 | # CONFIG_SCSI_MULTI_LUN is not set | 581 | # CONFIG_SCSI_MULTI_LUN is not set |
520 | # CONFIG_SCSI_CONSTANTS is not set | 582 | # CONFIG_SCSI_CONSTANTS is not set |
521 | # CONFIG_SCSI_LOGGING is not set | 583 | # CONFIG_SCSI_LOGGING is not set |
@@ -533,23 +595,30 @@ CONFIG_SCSI_SAS_ATTRS=y | |||
533 | # CONFIG_SCSI_SRP_ATTRS is not set | 595 | # CONFIG_SCSI_SRP_ATTRS is not set |
534 | CONFIG_SCSI_LOWLEVEL=y | 596 | CONFIG_SCSI_LOWLEVEL=y |
535 | # CONFIG_ISCSI_TCP is not set | 597 | # CONFIG_ISCSI_TCP is not set |
598 | # CONFIG_SCSI_BNX2_ISCSI is not set | ||
599 | # CONFIG_BE2ISCSI is not set | ||
536 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 600 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
601 | # CONFIG_SCSI_HPSA is not set | ||
537 | # CONFIG_SCSI_3W_9XXX is not set | 602 | # CONFIG_SCSI_3W_9XXX is not set |
603 | # CONFIG_SCSI_3W_SAS is not set | ||
538 | # CONFIG_SCSI_ACARD is not set | 604 | # CONFIG_SCSI_ACARD is not set |
539 | # CONFIG_SCSI_AACRAID is not set | 605 | # CONFIG_SCSI_AACRAID is not set |
540 | # CONFIG_SCSI_AIC7XXX is not set | 606 | # CONFIG_SCSI_AIC7XXX is not set |
541 | # CONFIG_SCSI_AIC7XXX_OLD is not set | 607 | # CONFIG_SCSI_AIC7XXX_OLD is not set |
542 | # CONFIG_SCSI_AIC79XX is not set | 608 | # CONFIG_SCSI_AIC79XX is not set |
543 | # CONFIG_SCSI_AIC94XX is not set | 609 | # CONFIG_SCSI_AIC94XX is not set |
610 | # CONFIG_SCSI_MVSAS is not set | ||
544 | # CONFIG_SCSI_DPT_I2O is not set | 611 | # CONFIG_SCSI_DPT_I2O is not set |
545 | # CONFIG_SCSI_ADVANSYS is not set | 612 | # CONFIG_SCSI_ADVANSYS is not set |
546 | # CONFIG_SCSI_ARCMSR is not set | 613 | # CONFIG_SCSI_ARCMSR is not set |
547 | # CONFIG_MEGARAID_NEWGEN is not set | 614 | # CONFIG_MEGARAID_NEWGEN is not set |
548 | # CONFIG_MEGARAID_LEGACY is not set | 615 | # CONFIG_MEGARAID_LEGACY is not set |
549 | # CONFIG_MEGARAID_SAS is not set | 616 | # CONFIG_MEGARAID_SAS is not set |
617 | # CONFIG_SCSI_MPT2SAS is not set | ||
550 | # CONFIG_SCSI_HPTIOP is not set | 618 | # CONFIG_SCSI_HPTIOP is not set |
551 | # CONFIG_SCSI_BUSLOGIC is not set | 619 | # CONFIG_SCSI_BUSLOGIC is not set |
552 | # CONFIG_LIBFC is not set | 620 | # CONFIG_LIBFC is not set |
621 | # CONFIG_LIBFCOE is not set | ||
553 | # CONFIG_FCOE is not set | 622 | # CONFIG_FCOE is not set |
554 | # CONFIG_SCSI_DMX3191D is not set | 623 | # CONFIG_SCSI_DMX3191D is not set |
555 | # CONFIG_SCSI_EATA is not set | 624 | # CONFIG_SCSI_EATA is not set |
@@ -558,7 +627,6 @@ CONFIG_SCSI_LOWLEVEL=y | |||
558 | # CONFIG_SCSI_IPS is not set | 627 | # CONFIG_SCSI_IPS is not set |
559 | # CONFIG_SCSI_INITIO is not set | 628 | # CONFIG_SCSI_INITIO is not set |
560 | # CONFIG_SCSI_INIA100 is not set | 629 | # CONFIG_SCSI_INIA100 is not set |
561 | # CONFIG_SCSI_MVSAS is not set | ||
562 | # CONFIG_SCSI_STEX is not set | 630 | # CONFIG_SCSI_STEX is not set |
563 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 631 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
564 | # CONFIG_SCSI_QLOGIC_1280 is not set | 632 | # CONFIG_SCSI_QLOGIC_1280 is not set |
@@ -569,8 +637,12 @@ CONFIG_SCSI_LOWLEVEL=y | |||
569 | # CONFIG_SCSI_DC390T is not set | 637 | # CONFIG_SCSI_DC390T is not set |
570 | # CONFIG_SCSI_NSP32 is not set | 638 | # CONFIG_SCSI_NSP32 is not set |
571 | # CONFIG_SCSI_DEBUG is not set | 639 | # CONFIG_SCSI_DEBUG is not set |
640 | # CONFIG_SCSI_PMCRAID is not set | ||
641 | # CONFIG_SCSI_PM8001 is not set | ||
572 | # CONFIG_SCSI_SRP is not set | 642 | # CONFIG_SCSI_SRP is not set |
643 | # CONFIG_SCSI_BFA_FC is not set | ||
573 | # CONFIG_SCSI_DH is not set | 644 | # CONFIG_SCSI_DH is not set |
645 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
574 | # CONFIG_ATA is not set | 646 | # CONFIG_ATA is not set |
575 | # CONFIG_MD is not set | 647 | # CONFIG_MD is not set |
576 | CONFIG_FUSION=y | 648 | CONFIG_FUSION=y |
@@ -586,7 +658,11 @@ CONFIG_FUSION_MAX_SGE=128 | |||
586 | # | 658 | # |
587 | 659 | ||
588 | # | 660 | # |
589 | # Enable only one of the two stacks, unless you know what you are doing | 661 | # You can enable one or both FireWire driver stacks. |
662 | # | ||
663 | |||
664 | # | ||
665 | # See the help texts for more information. | ||
590 | # | 666 | # |
591 | # CONFIG_FIREWIRE is not set | 667 | # CONFIG_FIREWIRE is not set |
592 | # CONFIG_IEEE1394 is not set | 668 | # CONFIG_IEEE1394 is not set |
@@ -614,6 +690,8 @@ CONFIG_NET_ETHERNET=y | |||
614 | # CONFIG_SUNGEM is not set | 690 | # CONFIG_SUNGEM is not set |
615 | # CONFIG_CASSINI is not set | 691 | # CONFIG_CASSINI is not set |
616 | # CONFIG_NET_VENDOR_3COM is not set | 692 | # CONFIG_NET_VENDOR_3COM is not set |
693 | # CONFIG_ETHOC is not set | ||
694 | # CONFIG_DNET is not set | ||
617 | # CONFIG_NET_TULIP is not set | 695 | # CONFIG_NET_TULIP is not set |
618 | # CONFIG_HP100 is not set | 696 | # CONFIG_HP100 is not set |
619 | CONFIG_IBM_NEW_EMAC=y | 697 | CONFIG_IBM_NEW_EMAC=y |
@@ -632,7 +710,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
632 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 710 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
633 | # CONFIG_NET_PCI is not set | 711 | # CONFIG_NET_PCI is not set |
634 | # CONFIG_B44 is not set | 712 | # CONFIG_B44 is not set |
713 | # CONFIG_KS8842 is not set | ||
714 | # CONFIG_KS8851_MLL is not set | ||
635 | # CONFIG_ATL2 is not set | 715 | # CONFIG_ATL2 is not set |
716 | # CONFIG_XILINX_EMACLITE is not set | ||
636 | CONFIG_NETDEV_1000=y | 717 | CONFIG_NETDEV_1000=y |
637 | # CONFIG_ACENIC is not set | 718 | # CONFIG_ACENIC is not set |
638 | # CONFIG_DL2K is not set | 719 | # CONFIG_DL2K is not set |
@@ -640,6 +721,7 @@ CONFIG_NETDEV_1000=y | |||
640 | CONFIG_E1000E=y | 721 | CONFIG_E1000E=y |
641 | # CONFIG_IP1000 is not set | 722 | # CONFIG_IP1000 is not set |
642 | # CONFIG_IGB is not set | 723 | # CONFIG_IGB is not set |
724 | # CONFIG_IGBVF is not set | ||
643 | # CONFIG_NS83820 is not set | 725 | # CONFIG_NS83820 is not set |
644 | # CONFIG_HAMACHI is not set | 726 | # CONFIG_HAMACHI is not set |
645 | # CONFIG_YELLOWFIN is not set | 727 | # CONFIG_YELLOWFIN is not set |
@@ -650,19 +732,21 @@ CONFIG_E1000E=y | |||
650 | # CONFIG_VIA_VELOCITY is not set | 732 | # CONFIG_VIA_VELOCITY is not set |
651 | # CONFIG_TIGON3 is not set | 733 | # CONFIG_TIGON3 is not set |
652 | # CONFIG_BNX2 is not set | 734 | # CONFIG_BNX2 is not set |
735 | # CONFIG_CNIC is not set | ||
736 | # CONFIG_MV643XX_ETH is not set | ||
737 | # CONFIG_XILINX_LL_TEMAC is not set | ||
653 | # CONFIG_QLA3XXX is not set | 738 | # CONFIG_QLA3XXX is not set |
654 | # CONFIG_ATL1 is not set | 739 | # CONFIG_ATL1 is not set |
655 | # CONFIG_ATL1E is not set | 740 | # CONFIG_ATL1E is not set |
741 | # CONFIG_ATL1C is not set | ||
656 | # CONFIG_JME is not set | 742 | # CONFIG_JME is not set |
657 | # CONFIG_NETDEV_10000 is not set | 743 | # CONFIG_NETDEV_10000 is not set |
658 | # CONFIG_TR is not set | 744 | # CONFIG_TR is not set |
659 | 745 | CONFIG_WLAN=y | |
660 | # | 746 | # CONFIG_AIRO is not set |
661 | # Wireless LAN | 747 | # CONFIG_ATMEL is not set |
662 | # | 748 | # CONFIG_PRISM54 is not set |
663 | # CONFIG_WLAN_PRE80211 is not set | 749 | # CONFIG_HOSTAP is not set |
664 | # CONFIG_WLAN_80211 is not set | ||
665 | # CONFIG_IWLWIFI_LEDS is not set | ||
666 | 750 | ||
667 | # | 751 | # |
668 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 752 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -676,6 +760,7 @@ CONFIG_E1000E=y | |||
676 | # CONFIG_NETCONSOLE is not set | 760 | # CONFIG_NETCONSOLE is not set |
677 | # CONFIG_NETPOLL is not set | 761 | # CONFIG_NETPOLL is not set |
678 | # CONFIG_NET_POLL_CONTROLLER is not set | 762 | # CONFIG_NET_POLL_CONTROLLER is not set |
763 | # CONFIG_VMXNET3 is not set | ||
679 | # CONFIG_ISDN is not set | 764 | # CONFIG_ISDN is not set |
680 | # CONFIG_PHONE is not set | 765 | # CONFIG_PHONE is not set |
681 | 766 | ||
@@ -721,6 +806,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
721 | # CONFIG_SERIAL_JSM is not set | 806 | # CONFIG_SERIAL_JSM is not set |
722 | CONFIG_SERIAL_OF_PLATFORM=y | 807 | CONFIG_SERIAL_OF_PLATFORM=y |
723 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 808 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
809 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
724 | CONFIG_UNIX98_PTYS=y | 810 | CONFIG_UNIX98_PTYS=y |
725 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 811 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
726 | CONFIG_LEGACY_PTYS=y | 812 | CONFIG_LEGACY_PTYS=y |
@@ -737,6 +823,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
737 | CONFIG_DEVPORT=y | 823 | CONFIG_DEVPORT=y |
738 | CONFIG_I2C=y | 824 | CONFIG_I2C=y |
739 | CONFIG_I2C_BOARDINFO=y | 825 | CONFIG_I2C_BOARDINFO=y |
826 | CONFIG_I2C_COMPAT=y | ||
740 | CONFIG_I2C_CHARDEV=y | 827 | CONFIG_I2C_CHARDEV=y |
741 | CONFIG_I2C_HELPER_AUTO=y | 828 | CONFIG_I2C_HELPER_AUTO=y |
742 | 829 | ||
@@ -777,11 +864,6 @@ CONFIG_I2C_IBM_IIC=y | |||
777 | # CONFIG_I2C_TAOS_EVM is not set | 864 | # CONFIG_I2C_TAOS_EVM is not set |
778 | 865 | ||
779 | # | 866 | # |
780 | # Graphics adapter I2C/DDC channel drivers | ||
781 | # | ||
782 | # CONFIG_I2C_VOODOO3 is not set | ||
783 | |||
784 | # | ||
785 | # Other I2C/SMBus bus drivers | 867 | # Other I2C/SMBus bus drivers |
786 | # | 868 | # |
787 | # CONFIG_I2C_PCA_PLATFORM is not set | 869 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -790,25 +872,23 @@ CONFIG_I2C_IBM_IIC=y | |||
790 | # | 872 | # |
791 | # Miscellaneous I2C Chip support | 873 | # Miscellaneous I2C Chip support |
792 | # | 874 | # |
793 | # CONFIG_DS1682 is not set | ||
794 | # CONFIG_SENSORS_PCF8574 is not set | ||
795 | # CONFIG_PCF8575 is not set | ||
796 | # CONFIG_SENSORS_PCA9539 is not set | ||
797 | # CONFIG_SENSORS_PCF8591 is not set | ||
798 | # CONFIG_SENSORS_MAX6875 is not set | ||
799 | # CONFIG_SENSORS_TSL2550 is not set | 875 | # CONFIG_SENSORS_TSL2550 is not set |
800 | CONFIG_I2C_DEBUG_CORE=y | 876 | CONFIG_I2C_DEBUG_CORE=y |
801 | CONFIG_I2C_DEBUG_ALGO=y | 877 | CONFIG_I2C_DEBUG_ALGO=y |
802 | CONFIG_I2C_DEBUG_BUS=y | 878 | CONFIG_I2C_DEBUG_BUS=y |
803 | CONFIG_I2C_DEBUG_CHIP=y | 879 | CONFIG_I2C_DEBUG_CHIP=y |
804 | # CONFIG_SPI is not set | 880 | # CONFIG_SPI is not set |
881 | |||
882 | # | ||
883 | # PPS support | ||
884 | # | ||
885 | # CONFIG_PPS is not set | ||
805 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 886 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
806 | # CONFIG_GPIOLIB is not set | 887 | # CONFIG_GPIOLIB is not set |
807 | # CONFIG_W1 is not set | 888 | # CONFIG_W1 is not set |
808 | # CONFIG_POWER_SUPPLY is not set | 889 | # CONFIG_POWER_SUPPLY is not set |
809 | # CONFIG_HWMON is not set | 890 | # CONFIG_HWMON is not set |
810 | # CONFIG_THERMAL is not set | 891 | # CONFIG_THERMAL is not set |
811 | # CONFIG_THERMAL_HWMON is not set | ||
812 | # CONFIG_WATCHDOG is not set | 892 | # CONFIG_WATCHDOG is not set |
813 | CONFIG_SSB_POSSIBLE=y | 893 | CONFIG_SSB_POSSIBLE=y |
814 | 894 | ||
@@ -826,31 +906,21 @@ CONFIG_SSB_POSSIBLE=y | |||
826 | # CONFIG_TWL4030_CORE is not set | 906 | # CONFIG_TWL4030_CORE is not set |
827 | # CONFIG_MFD_TMIO is not set | 907 | # CONFIG_MFD_TMIO is not set |
828 | # CONFIG_PMIC_DA903X is not set | 908 | # CONFIG_PMIC_DA903X is not set |
909 | # CONFIG_PMIC_ADP5520 is not set | ||
829 | # CONFIG_MFD_WM8400 is not set | 910 | # CONFIG_MFD_WM8400 is not set |
911 | # CONFIG_MFD_WM831X is not set | ||
830 | # CONFIG_MFD_WM8350_I2C is not set | 912 | # CONFIG_MFD_WM8350_I2C is not set |
831 | # CONFIG_MFD_PCF50633 is not set | 913 | # CONFIG_MFD_PCF50633 is not set |
914 | # CONFIG_AB3100_CORE is not set | ||
915 | # CONFIG_MFD_88PM8607 is not set | ||
832 | # CONFIG_REGULATOR is not set | 916 | # CONFIG_REGULATOR is not set |
833 | 917 | # CONFIG_MEDIA_SUPPORT is not set | |
834 | # | ||
835 | # Multimedia devices | ||
836 | # | ||
837 | |||
838 | # | ||
839 | # Multimedia core support | ||
840 | # | ||
841 | # CONFIG_VIDEO_DEV is not set | ||
842 | # CONFIG_DVB_CORE is not set | ||
843 | # CONFIG_VIDEO_MEDIA is not set | ||
844 | |||
845 | # | ||
846 | # Multimedia drivers | ||
847 | # | ||
848 | CONFIG_DAB=y | ||
849 | 918 | ||
850 | # | 919 | # |
851 | # Graphics support | 920 | # Graphics support |
852 | # | 921 | # |
853 | # CONFIG_AGP is not set | 922 | # CONFIG_AGP is not set |
923 | CONFIG_VGA_ARB=y | ||
854 | # CONFIG_DRM is not set | 924 | # CONFIG_DRM is not set |
855 | # CONFIG_VGASTATE is not set | 925 | # CONFIG_VGASTATE is not set |
856 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 926 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -876,7 +946,12 @@ CONFIG_DMADEVICES=y | |||
876 | # | 946 | # |
877 | # DMA Devices | 947 | # DMA Devices |
878 | # | 948 | # |
949 | # CONFIG_AUXDISPLAY is not set | ||
879 | # CONFIG_UIO is not set | 950 | # CONFIG_UIO is not set |
951 | |||
952 | # | ||
953 | # TI VLYNQ | ||
954 | # | ||
880 | # CONFIG_STAGING is not set | 955 | # CONFIG_STAGING is not set |
881 | 956 | ||
882 | # | 957 | # |
@@ -887,14 +962,17 @@ CONFIG_EXT2_FS=y | |||
887 | # CONFIG_EXT2_FS_XIP is not set | 962 | # CONFIG_EXT2_FS_XIP is not set |
888 | # CONFIG_EXT3_FS is not set | 963 | # CONFIG_EXT3_FS is not set |
889 | # CONFIG_EXT4_FS is not set | 964 | # CONFIG_EXT4_FS is not set |
965 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
890 | # CONFIG_REISERFS_FS is not set | 966 | # CONFIG_REISERFS_FS is not set |
891 | # CONFIG_JFS_FS is not set | 967 | # CONFIG_JFS_FS is not set |
892 | # CONFIG_FS_POSIX_ACL is not set | 968 | # CONFIG_FS_POSIX_ACL is not set |
893 | CONFIG_FILE_LOCKING=y | ||
894 | # CONFIG_XFS_FS is not set | 969 | # CONFIG_XFS_FS is not set |
895 | # CONFIG_GFS2_FS is not set | 970 | # CONFIG_GFS2_FS is not set |
896 | # CONFIG_OCFS2_FS is not set | 971 | # CONFIG_OCFS2_FS is not set |
897 | # CONFIG_BTRFS_FS is not set | 972 | # CONFIG_BTRFS_FS is not set |
973 | # CONFIG_NILFS2_FS is not set | ||
974 | CONFIG_FILE_LOCKING=y | ||
975 | CONFIG_FSNOTIFY=y | ||
898 | CONFIG_DNOTIFY=y | 976 | CONFIG_DNOTIFY=y |
899 | CONFIG_INOTIFY=y | 977 | CONFIG_INOTIFY=y |
900 | CONFIG_INOTIFY_USER=y | 978 | CONFIG_INOTIFY_USER=y |
@@ -904,6 +982,11 @@ CONFIG_INOTIFY_USER=y | |||
904 | # CONFIG_FUSE_FS is not set | 982 | # CONFIG_FUSE_FS is not set |
905 | 983 | ||
906 | # | 984 | # |
985 | # Caches | ||
986 | # | ||
987 | # CONFIG_FSCACHE is not set | ||
988 | |||
989 | # | ||
907 | # CD-ROM/DVD Filesystems | 990 | # CD-ROM/DVD Filesystems |
908 | # | 991 | # |
909 | # CONFIG_ISO9660_FS is not set | 992 | # CONFIG_ISO9660_FS is not set |
@@ -958,7 +1041,6 @@ CONFIG_LOCKD=y | |||
958 | CONFIG_LOCKD_V4=y | 1041 | CONFIG_LOCKD_V4=y |
959 | CONFIG_NFS_COMMON=y | 1042 | CONFIG_NFS_COMMON=y |
960 | CONFIG_SUNRPC=y | 1043 | CONFIG_SUNRPC=y |
961 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
962 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1044 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
963 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1045 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
964 | # CONFIG_SMB_FS is not set | 1046 | # CONFIG_SMB_FS is not set |
@@ -974,6 +1056,7 @@ CONFIG_SUNRPC=y | |||
974 | CONFIG_MSDOS_PARTITION=y | 1056 | CONFIG_MSDOS_PARTITION=y |
975 | # CONFIG_NLS is not set | 1057 | # CONFIG_NLS is not set |
976 | # CONFIG_DLM is not set | 1058 | # CONFIG_DLM is not set |
1059 | # CONFIG_BINARY_PRINTF is not set | ||
977 | 1060 | ||
978 | # | 1061 | # |
979 | # Library routines | 1062 | # Library routines |
@@ -988,11 +1071,13 @@ CONFIG_CRC32=y | |||
988 | # CONFIG_CRC7 is not set | 1071 | # CONFIG_CRC7 is not set |
989 | # CONFIG_LIBCRC32C is not set | 1072 | # CONFIG_LIBCRC32C is not set |
990 | CONFIG_ZLIB_INFLATE=y | 1073 | CONFIG_ZLIB_INFLATE=y |
991 | CONFIG_PLIST=y | 1074 | CONFIG_DECOMPRESS_GZIP=y |
992 | CONFIG_HAS_IOMEM=y | 1075 | CONFIG_HAS_IOMEM=y |
993 | CONFIG_HAS_IOPORT=y | 1076 | CONFIG_HAS_IOPORT=y |
994 | CONFIG_HAS_DMA=y | 1077 | CONFIG_HAS_DMA=y |
995 | CONFIG_HAVE_LMB=y | 1078 | CONFIG_HAVE_LMB=y |
1079 | CONFIG_NLATTR=y | ||
1080 | CONFIG_GENERIC_ATOMIC64=y | ||
996 | 1081 | ||
997 | # | 1082 | # |
998 | # Kernel hacking | 1083 | # Kernel hacking |
@@ -1002,6 +1087,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1002 | CONFIG_ENABLE_MUST_CHECK=y | 1087 | CONFIG_ENABLE_MUST_CHECK=y |
1003 | CONFIG_FRAME_WARN=1024 | 1088 | CONFIG_FRAME_WARN=1024 |
1004 | CONFIG_MAGIC_SYSRQ=y | 1089 | CONFIG_MAGIC_SYSRQ=y |
1090 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1005 | # CONFIG_UNUSED_SYMBOLS is not set | 1091 | # CONFIG_UNUSED_SYMBOLS is not set |
1006 | CONFIG_DEBUG_FS=y | 1092 | CONFIG_DEBUG_FS=y |
1007 | # CONFIG_HEADERS_CHECK is not set | 1093 | # CONFIG_HEADERS_CHECK is not set |
@@ -1010,16 +1096,23 @@ CONFIG_DEBUG_KERNEL=y | |||
1010 | CONFIG_DETECT_SOFTLOCKUP=y | 1096 | CONFIG_DETECT_SOFTLOCKUP=y |
1011 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1097 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
1012 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1098 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1099 | CONFIG_DETECT_HUNG_TASK=y | ||
1100 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1101 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
1013 | CONFIG_SCHED_DEBUG=y | 1102 | CONFIG_SCHED_DEBUG=y |
1014 | # CONFIG_SCHEDSTATS is not set | 1103 | # CONFIG_SCHEDSTATS is not set |
1015 | # CONFIG_TIMER_STATS is not set | 1104 | # CONFIG_TIMER_STATS is not set |
1016 | # CONFIG_DEBUG_OBJECTS is not set | 1105 | # CONFIG_DEBUG_OBJECTS is not set |
1017 | # CONFIG_SLUB_DEBUG_ON is not set | 1106 | # CONFIG_SLUB_DEBUG_ON is not set |
1018 | # CONFIG_SLUB_STATS is not set | 1107 | # CONFIG_SLUB_STATS is not set |
1108 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1019 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1109 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1020 | # CONFIG_RT_MUTEX_TESTER is not set | 1110 | # CONFIG_RT_MUTEX_TESTER is not set |
1021 | # CONFIG_DEBUG_SPINLOCK is not set | 1111 | # CONFIG_DEBUG_SPINLOCK is not set |
1022 | # CONFIG_DEBUG_MUTEXES is not set | 1112 | # CONFIG_DEBUG_MUTEXES is not set |
1113 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1114 | # CONFIG_PROVE_LOCKING is not set | ||
1115 | # CONFIG_LOCK_STAT is not set | ||
1023 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1116 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1024 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1117 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1025 | # CONFIG_DEBUG_KOBJECT is not set | 1118 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1031,35 +1124,45 @@ CONFIG_SCHED_DEBUG=y | |||
1031 | # CONFIG_DEBUG_LIST is not set | 1124 | # CONFIG_DEBUG_LIST is not set |
1032 | # CONFIG_DEBUG_SG is not set | 1125 | # CONFIG_DEBUG_SG is not set |
1033 | # CONFIG_DEBUG_NOTIFIERS is not set | 1126 | # CONFIG_DEBUG_NOTIFIERS is not set |
1034 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1127 | # CONFIG_DEBUG_CREDENTIALS is not set |
1035 | # CONFIG_RCU_TORTURE_TEST is not set | 1128 | # CONFIG_RCU_TORTURE_TEST is not set |
1036 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1129 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1037 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1130 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1038 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1131 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1132 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1039 | # CONFIG_FAULT_INJECTION is not set | 1133 | # CONFIG_FAULT_INJECTION is not set |
1040 | # CONFIG_LATENCYTOP is not set | 1134 | # CONFIG_LATENCYTOP is not set |
1041 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1135 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1136 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1042 | CONFIG_HAVE_FUNCTION_TRACER=y | 1137 | CONFIG_HAVE_FUNCTION_TRACER=y |
1138 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1043 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1139 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1044 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1140 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1045 | 1141 | CONFIG_TRACING_SUPPORT=y | |
1046 | # | 1142 | CONFIG_FTRACE=y |
1047 | # Tracers | ||
1048 | # | ||
1049 | # CONFIG_FUNCTION_TRACER is not set | 1143 | # CONFIG_FUNCTION_TRACER is not set |
1144 | # CONFIG_IRQSOFF_TRACER is not set | ||
1050 | # CONFIG_SCHED_TRACER is not set | 1145 | # CONFIG_SCHED_TRACER is not set |
1051 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1146 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1052 | # CONFIG_BOOT_TRACER is not set | 1147 | # CONFIG_BOOT_TRACER is not set |
1053 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1148 | CONFIG_BRANCH_PROFILE_NONE=y |
1149 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1150 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
1054 | # CONFIG_STACK_TRACER is not set | 1151 | # CONFIG_STACK_TRACER is not set |
1055 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1152 | # CONFIG_KMEMTRACE is not set |
1153 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1154 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1155 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1156 | # CONFIG_DMA_API_DEBUG is not set | ||
1056 | # CONFIG_SAMPLES is not set | 1157 | # CONFIG_SAMPLES is not set |
1057 | CONFIG_HAVE_ARCH_KGDB=y | 1158 | CONFIG_HAVE_ARCH_KGDB=y |
1058 | # CONFIG_KGDB is not set | 1159 | # CONFIG_KGDB is not set |
1160 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1161 | CONFIG_PPC_WERROR=y | ||
1059 | CONFIG_PRINT_STACK_DEPTH=64 | 1162 | CONFIG_PRINT_STACK_DEPTH=64 |
1060 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1163 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1061 | # CONFIG_DEBUG_STACK_USAGE is not set | 1164 | # CONFIG_DEBUG_STACK_USAGE is not set |
1062 | # CONFIG_DEBUG_PAGEALLOC is not set | 1165 | # CONFIG_PPC_EMULATED_STATS is not set |
1063 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1166 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1064 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1167 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
1065 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1168 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1075,13 +1178,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1075 | # CONFIG_KEYS is not set | 1178 | # CONFIG_KEYS is not set |
1076 | # CONFIG_SECURITY is not set | 1179 | # CONFIG_SECURITY is not set |
1077 | # CONFIG_SECURITYFS is not set | 1180 | # CONFIG_SECURITYFS is not set |
1078 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1181 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1182 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1183 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1184 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1185 | CONFIG_DEFAULT_SECURITY="" | ||
1079 | CONFIG_CRYPTO=y | 1186 | CONFIG_CRYPTO=y |
1080 | 1187 | ||
1081 | # | 1188 | # |
1082 | # Crypto core or helper | 1189 | # Crypto core or helper |
1083 | # | 1190 | # |
1084 | # CONFIG_CRYPTO_FIPS is not set | ||
1085 | CONFIG_CRYPTO_ALGAPI=y | 1191 | CONFIG_CRYPTO_ALGAPI=y |
1086 | CONFIG_CRYPTO_ALGAPI2=y | 1192 | CONFIG_CRYPTO_ALGAPI2=y |
1087 | CONFIG_CRYPTO_AEAD=y | 1193 | CONFIG_CRYPTO_AEAD=y |
@@ -1092,10 +1198,12 @@ CONFIG_CRYPTO_HASH=y | |||
1092 | CONFIG_CRYPTO_HASH2=y | 1198 | CONFIG_CRYPTO_HASH2=y |
1093 | CONFIG_CRYPTO_RNG=y | 1199 | CONFIG_CRYPTO_RNG=y |
1094 | CONFIG_CRYPTO_RNG2=y | 1200 | CONFIG_CRYPTO_RNG2=y |
1201 | CONFIG_CRYPTO_PCOMP=y | ||
1095 | CONFIG_CRYPTO_MANAGER=y | 1202 | CONFIG_CRYPTO_MANAGER=y |
1096 | CONFIG_CRYPTO_MANAGER2=y | 1203 | CONFIG_CRYPTO_MANAGER2=y |
1097 | CONFIG_CRYPTO_GF128MUL=y | 1204 | CONFIG_CRYPTO_GF128MUL=y |
1098 | # CONFIG_CRYPTO_NULL is not set | 1205 | # CONFIG_CRYPTO_NULL is not set |
1206 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1099 | CONFIG_CRYPTO_CRYPTD=y | 1207 | CONFIG_CRYPTO_CRYPTD=y |
1100 | CONFIG_CRYPTO_AUTHENC=y | 1208 | CONFIG_CRYPTO_AUTHENC=y |
1101 | # CONFIG_CRYPTO_TEST is not set | 1209 | # CONFIG_CRYPTO_TEST is not set |
@@ -1123,11 +1231,13 @@ CONFIG_CRYPTO_XTS=y | |||
1123 | # | 1231 | # |
1124 | CONFIG_CRYPTO_HMAC=y | 1232 | CONFIG_CRYPTO_HMAC=y |
1125 | CONFIG_CRYPTO_XCBC=y | 1233 | CONFIG_CRYPTO_XCBC=y |
1234 | # CONFIG_CRYPTO_VMAC is not set | ||
1126 | 1235 | ||
1127 | # | 1236 | # |
1128 | # Digest | 1237 | # Digest |
1129 | # | 1238 | # |
1130 | # CONFIG_CRYPTO_CRC32C is not set | 1239 | # CONFIG_CRYPTO_CRC32C is not set |
1240 | CONFIG_CRYPTO_GHASH=y | ||
1131 | CONFIG_CRYPTO_MD4=y | 1241 | CONFIG_CRYPTO_MD4=y |
1132 | CONFIG_CRYPTO_MD5=y | 1242 | CONFIG_CRYPTO_MD5=y |
1133 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1243 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1164,6 +1274,7 @@ CONFIG_CRYPTO_DES=y | |||
1164 | # Compression | 1274 | # Compression |
1165 | # | 1275 | # |
1166 | # CONFIG_CRYPTO_DEFLATE is not set | 1276 | # CONFIG_CRYPTO_DEFLATE is not set |
1277 | # CONFIG_CRYPTO_ZLIB is not set | ||
1167 | # CONFIG_CRYPTO_LZO is not set | 1278 | # CONFIG_CRYPTO_LZO is not set |
1168 | 1279 | ||
1169 | # | 1280 | # |
@@ -1172,5 +1283,6 @@ CONFIG_CRYPTO_DES=y | |||
1172 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1283 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1173 | CONFIG_CRYPTO_HW=y | 1284 | CONFIG_CRYPTO_HW=y |
1174 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1285 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1286 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1175 | # CONFIG_PPC_CLOCK is not set | 1287 | # CONFIG_PPC_CLOCK is not set |
1176 | # CONFIG_VIRTUALIZATION is not set | 1288 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/sam440ep_defconfig b/arch/powerpc/configs/44x/sam440ep_defconfig index e14e89a5e06b..886cb6aa6432 100644 --- a/arch/powerpc/configs/44x/sam440ep_defconfig +++ b/arch/powerpc/configs/44x/sam440ep_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:42 2009 | 4 | # Mon Jan 4 15:11:24 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 48 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
45 | CONFIG_PPC=y | 49 | CONFIG_PPC=y |
@@ -53,11 +57,15 @@ CONFIG_PPC_UDBG_16550=y | |||
53 | # CONFIG_GENERIC_TBSYNC is not set | 57 | # CONFIG_GENERIC_TBSYNC is not set |
54 | CONFIG_AUDIT_ARCH=y | 58 | CONFIG_AUDIT_ARCH=y |
55 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | ||
56 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
58 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
60 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 67 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
68 | CONFIG_CONSTRUCTORS=y | ||
61 | 69 | ||
62 | # | 70 | # |
63 | # General setup | 71 | # General setup |
@@ -71,9 +79,21 @@ CONFIG_SWAP=y | |||
71 | CONFIG_SYSVIPC=y | 79 | CONFIG_SYSVIPC=y |
72 | CONFIG_SYSVIPC_SYSCTL=y | 80 | CONFIG_SYSVIPC_SYSCTL=y |
73 | CONFIG_POSIX_MQUEUE=y | 81 | CONFIG_POSIX_MQUEUE=y |
82 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
74 | # CONFIG_BSD_PROCESS_ACCT is not set | 83 | # CONFIG_BSD_PROCESS_ACCT is not set |
75 | # CONFIG_TASKSTATS is not set | 84 | # CONFIG_TASKSTATS is not set |
76 | # CONFIG_AUDIT is not set | 85 | # CONFIG_AUDIT is not set |
86 | |||
87 | # | ||
88 | # RCU Subsystem | ||
89 | # | ||
90 | CONFIG_TREE_RCU=y | ||
91 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
92 | # CONFIG_TINY_RCU is not set | ||
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
96 | # CONFIG_TREE_RCU_TRACE is not set | ||
77 | CONFIG_IKCONFIG=y | 97 | CONFIG_IKCONFIG=y |
78 | # CONFIG_IKCONFIG_PROC is not set | 98 | # CONFIG_IKCONFIG_PROC is not set |
79 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
@@ -89,8 +109,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
89 | # CONFIG_NAMESPACES is not set | 109 | # CONFIG_NAMESPACES is not set |
90 | CONFIG_BLK_DEV_INITRD=y | 110 | CONFIG_BLK_DEV_INITRD=y |
91 | CONFIG_INITRAMFS_SOURCE="" | 111 | CONFIG_INITRAMFS_SOURCE="" |
112 | CONFIG_RD_GZIP=y | ||
113 | # CONFIG_RD_BZIP2 is not set | ||
114 | # CONFIG_RD_LZMA is not set | ||
92 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 115 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
93 | CONFIG_SYSCTL=y | 116 | CONFIG_SYSCTL=y |
117 | CONFIG_ANON_INODES=y | ||
94 | CONFIG_EMBEDDED=y | 118 | CONFIG_EMBEDDED=y |
95 | CONFIG_SYSCTL_SYSCALL=y | 119 | CONFIG_SYSCTL_SYSCALL=y |
96 | CONFIG_KALLSYMS=y | 120 | CONFIG_KALLSYMS=y |
@@ -99,19 +123,25 @@ CONFIG_HOTPLUG=y | |||
99 | CONFIG_PRINTK=y | 123 | CONFIG_PRINTK=y |
100 | CONFIG_BUG=y | 124 | CONFIG_BUG=y |
101 | CONFIG_ELF_CORE=y | 125 | CONFIG_ELF_CORE=y |
102 | CONFIG_COMPAT_BRK=y | ||
103 | CONFIG_BASE_FULL=y | 126 | CONFIG_BASE_FULL=y |
104 | CONFIG_FUTEX=y | 127 | CONFIG_FUTEX=y |
105 | CONFIG_ANON_INODES=y | ||
106 | CONFIG_EPOLL=y | 128 | CONFIG_EPOLL=y |
107 | CONFIG_SIGNALFD=y | 129 | CONFIG_SIGNALFD=y |
108 | CONFIG_TIMERFD=y | 130 | CONFIG_TIMERFD=y |
109 | CONFIG_EVENTFD=y | 131 | CONFIG_EVENTFD=y |
110 | CONFIG_SHMEM=y | 132 | CONFIG_SHMEM=y |
111 | CONFIG_AIO=y | 133 | CONFIG_AIO=y |
134 | CONFIG_HAVE_PERF_EVENTS=y | ||
135 | |||
136 | # | ||
137 | # Kernel Performance Events And Counters | ||
138 | # | ||
139 | # CONFIG_PERF_EVENTS is not set | ||
140 | # CONFIG_PERF_COUNTERS is not set | ||
112 | CONFIG_VM_EVENT_COUNTERS=y | 141 | CONFIG_VM_EVENT_COUNTERS=y |
113 | CONFIG_PCI_QUIRKS=y | 142 | CONFIG_PCI_QUIRKS=y |
114 | CONFIG_SLUB_DEBUG=y | 143 | CONFIG_SLUB_DEBUG=y |
144 | CONFIG_COMPAT_BRK=y | ||
115 | # CONFIG_SLAB is not set | 145 | # CONFIG_SLAB is not set |
116 | CONFIG_SLUB=y | 146 | CONFIG_SLUB=y |
117 | # CONFIG_SLOB is not set | 147 | # CONFIG_SLOB is not set |
@@ -123,6 +153,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
123 | CONFIG_HAVE_KPROBES=y | 153 | CONFIG_HAVE_KPROBES=y |
124 | CONFIG_HAVE_KRETPROBES=y | 154 | CONFIG_HAVE_KRETPROBES=y |
125 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 155 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
156 | CONFIG_HAVE_DMA_ATTRS=y | ||
157 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
158 | |||
159 | # | ||
160 | # GCOV-based kernel profiling | ||
161 | # | ||
162 | # CONFIG_SLOW_WORK is not set | ||
126 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 163 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
127 | CONFIG_SLABINFO=y | 164 | CONFIG_SLABINFO=y |
128 | CONFIG_RT_MUTEXES=y | 165 | CONFIG_RT_MUTEXES=y |
@@ -134,8 +171,7 @@ CONFIG_MODULE_UNLOAD=y | |||
134 | # CONFIG_MODVERSIONS is not set | 171 | # CONFIG_MODVERSIONS is not set |
135 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 172 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
136 | CONFIG_BLOCK=y | 173 | CONFIG_BLOCK=y |
137 | # CONFIG_LBD is not set | 174 | CONFIG_LBDAF=y |
138 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
139 | # CONFIG_BLK_DEV_BSG is not set | 175 | # CONFIG_BLK_DEV_BSG is not set |
140 | # CONFIG_BLK_DEV_INTEGRITY is not set | 176 | # CONFIG_BLK_DEV_INTEGRITY is not set |
141 | 177 | ||
@@ -143,19 +179,41 @@ CONFIG_BLOCK=y | |||
143 | # IO Schedulers | 179 | # IO Schedulers |
144 | # | 180 | # |
145 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
146 | CONFIG_IOSCHED_AS=y | ||
147 | # CONFIG_IOSCHED_DEADLINE is not set | 182 | # CONFIG_IOSCHED_DEADLINE is not set |
148 | # CONFIG_IOSCHED_CFQ is not set | 183 | # CONFIG_IOSCHED_CFQ is not set |
149 | CONFIG_DEFAULT_AS=y | ||
150 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
151 | # CONFIG_DEFAULT_CFQ is not set | 185 | # CONFIG_DEFAULT_CFQ is not set |
152 | # CONFIG_DEFAULT_NOOP is not set | 186 | CONFIG_DEFAULT_NOOP=y |
153 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="noop" |
154 | CONFIG_CLASSIC_RCU=y | 188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
155 | # CONFIG_TREE_RCU is not set | 189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
156 | # CONFIG_PREEMPT_RCU is not set | 190 | # CONFIG_INLINE_SPIN_LOCK is not set |
157 | # CONFIG_TREE_RCU_TRACE is not set | 191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
158 | # CONFIG_PREEMPT_RCU_TRACE is not set | 192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
159 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
160 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 218 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
161 | 219 | ||
@@ -176,6 +234,8 @@ CONFIG_SAM440EP=y | |||
176 | # CONFIG_ARCHES is not set | 234 | # CONFIG_ARCHES is not set |
177 | # CONFIG_CANYONLANDS is not set | 235 | # CONFIG_CANYONLANDS is not set |
178 | # CONFIG_GLACIER is not set | 236 | # CONFIG_GLACIER is not set |
237 | # CONFIG_REDWOOD is not set | ||
238 | # CONFIG_EIGER is not set | ||
179 | # CONFIG_YOSEMITE is not set | 239 | # CONFIG_YOSEMITE is not set |
180 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 240 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
181 | # CONFIG_PPC44x_SIMPLE is not set | 241 | # CONFIG_PPC44x_SIMPLE is not set |
@@ -218,10 +278,12 @@ CONFIG_BINFMT_ELF=y | |||
218 | # CONFIG_BINFMT_MISC is not set | 278 | # CONFIG_BINFMT_MISC is not set |
219 | # CONFIG_MATH_EMULATION is not set | 279 | # CONFIG_MATH_EMULATION is not set |
220 | # CONFIG_IOMMU_HELPER is not set | 280 | # CONFIG_IOMMU_HELPER is not set |
221 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 281 | # CONFIG_SWIOTLB is not set |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 282 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
223 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 283 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
224 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 284 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
285 | CONFIG_SPARSE_IRQ=y | ||
286 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
225 | CONFIG_ARCH_FLATMEM_ENABLE=y | 287 | CONFIG_ARCH_FLATMEM_ENABLE=y |
226 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 288 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
227 | CONFIG_SELECT_MEMORY_MODEL=y | 289 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -237,10 +299,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
237 | CONFIG_ZONE_DMA_FLAG=1 | 299 | CONFIG_ZONE_DMA_FLAG=1 |
238 | CONFIG_BOUNCE=y | 300 | CONFIG_BOUNCE=y |
239 | CONFIG_VIRT_TO_BUS=y | 301 | CONFIG_VIRT_TO_BUS=y |
240 | CONFIG_UNEVICTABLE_LRU=y | 302 | # CONFIG_KSM is not set |
303 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
304 | CONFIG_STDBINUTILS=y | ||
241 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
242 | # CONFIG_PPC_16K_PAGES is not set | 306 | # CONFIG_PPC_16K_PAGES is not set |
243 | # CONFIG_PPC_64K_PAGES is not set | 307 | # CONFIG_PPC_64K_PAGES is not set |
308 | # CONFIG_PPC_256K_PAGES is not set | ||
244 | CONFIG_FORCE_MAX_ZONEORDER=11 | 309 | CONFIG_FORCE_MAX_ZONEORDER=11 |
245 | CONFIG_PROC_DEVICETREE=y | 310 | CONFIG_PROC_DEVICETREE=y |
246 | CONFIG_CMDLINE_BOOL=y | 311 | CONFIG_CMDLINE_BOOL=y |
@@ -264,6 +329,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
264 | # CONFIG_PCI_MSI is not set | 329 | # CONFIG_PCI_MSI is not set |
265 | # CONFIG_PCI_LEGACY is not set | 330 | # CONFIG_PCI_LEGACY is not set |
266 | # CONFIG_PCI_STUB is not set | 331 | # CONFIG_PCI_STUB is not set |
332 | # CONFIG_PCI_IOV is not set | ||
267 | # CONFIG_PCCARD is not set | 333 | # CONFIG_PCCARD is not set |
268 | # CONFIG_HOTPLUG_PCI is not set | 334 | # CONFIG_HOTPLUG_PCI is not set |
269 | # CONFIG_HAS_RAPIDIO is not set | 335 | # CONFIG_HAS_RAPIDIO is not set |
@@ -281,14 +347,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
281 | CONFIG_KERNEL_START=0xc0000000 | 347 | CONFIG_KERNEL_START=0xc0000000 |
282 | CONFIG_PHYSICAL_START=0x00000000 | 348 | CONFIG_PHYSICAL_START=0x00000000 |
283 | CONFIG_TASK_SIZE=0xc0000000 | 349 | CONFIG_TASK_SIZE=0xc0000000 |
284 | CONFIG_CONSISTENT_START=0xff100000 | ||
285 | CONFIG_CONSISTENT_SIZE=0x00200000 | 350 | CONFIG_CONSISTENT_SIZE=0x00200000 |
286 | CONFIG_NET=y | 351 | CONFIG_NET=y |
287 | 352 | ||
288 | # | 353 | # |
289 | # Networking options | 354 | # Networking options |
290 | # | 355 | # |
291 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
292 | CONFIG_PACKET=y | 356 | CONFIG_PACKET=y |
293 | # CONFIG_PACKET_MMAP is not set | 357 | # CONFIG_PACKET_MMAP is not set |
294 | CONFIG_UNIX=y | 358 | CONFIG_UNIX=y |
@@ -325,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
325 | # CONFIG_NETFILTER is not set | 389 | # CONFIG_NETFILTER is not set |
326 | # CONFIG_IP_DCCP is not set | 390 | # CONFIG_IP_DCCP is not set |
327 | # CONFIG_IP_SCTP is not set | 391 | # CONFIG_IP_SCTP is not set |
392 | # CONFIG_RDS is not set | ||
328 | # CONFIG_TIPC is not set | 393 | # CONFIG_TIPC is not set |
329 | # CONFIG_ATM is not set | 394 | # CONFIG_ATM is not set |
330 | # CONFIG_BRIDGE is not set | 395 | # CONFIG_BRIDGE is not set |
@@ -338,6 +403,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
338 | # CONFIG_LAPB is not set | 403 | # CONFIG_LAPB is not set |
339 | # CONFIG_ECONET is not set | 404 | # CONFIG_ECONET is not set |
340 | # CONFIG_WAN_ROUTER is not set | 405 | # CONFIG_WAN_ROUTER is not set |
406 | # CONFIG_PHONET is not set | ||
407 | # CONFIG_IEEE802154 is not set | ||
341 | # CONFIG_NET_SCHED is not set | 408 | # CONFIG_NET_SCHED is not set |
342 | # CONFIG_DCB is not set | 409 | # CONFIG_DCB is not set |
343 | 410 | ||
@@ -350,8 +417,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
350 | # CONFIG_IRDA is not set | 417 | # CONFIG_IRDA is not set |
351 | # CONFIG_BT is not set | 418 | # CONFIG_BT is not set |
352 | # CONFIG_AF_RXRPC is not set | 419 | # CONFIG_AF_RXRPC is not set |
353 | # CONFIG_PHONET is not set | 420 | CONFIG_WIRELESS=y |
354 | # CONFIG_WIRELESS is not set | 421 | # CONFIG_CFG80211 is not set |
422 | # CONFIG_LIB80211 is not set | ||
423 | |||
424 | # | ||
425 | # CFG80211 needs to be enabled for MAC80211 | ||
426 | # | ||
355 | # CONFIG_WIMAX is not set | 427 | # CONFIG_WIMAX is not set |
356 | # CONFIG_RFKILL is not set | 428 | # CONFIG_RFKILL is not set |
357 | # CONFIG_NET_9P is not set | 429 | # CONFIG_NET_9P is not set |
@@ -364,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
364 | # Generic Driver Options | 436 | # Generic Driver Options |
365 | # | 437 | # |
366 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 438 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
439 | # CONFIG_DEVTMPFS is not set | ||
367 | CONFIG_STANDALONE=y | 440 | CONFIG_STANDALONE=y |
368 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 441 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
369 | CONFIG_FW_LOADER=y | 442 | CONFIG_FW_LOADER=y |
@@ -385,6 +458,7 @@ CONFIG_BLK_DEV=y | |||
385 | # CONFIG_BLK_DEV_COW_COMMON is not set | 458 | # CONFIG_BLK_DEV_COW_COMMON is not set |
386 | CONFIG_BLK_DEV_LOOP=y | 459 | CONFIG_BLK_DEV_LOOP=y |
387 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set | 460 | # CONFIG_BLK_DEV_CRYPTOLOOP is not set |
461 | # CONFIG_BLK_DEV_DRBD is not set | ||
388 | # CONFIG_BLK_DEV_NBD is not set | 462 | # CONFIG_BLK_DEV_NBD is not set |
389 | # CONFIG_BLK_DEV_SX8 is not set | 463 | # CONFIG_BLK_DEV_SX8 is not set |
390 | # CONFIG_BLK_DEV_UB is not set | 464 | # CONFIG_BLK_DEV_UB is not set |
@@ -420,10 +494,6 @@ CONFIG_BLK_DEV_SR=y | |||
420 | # CONFIG_BLK_DEV_SR_VENDOR is not set | 494 | # CONFIG_BLK_DEV_SR_VENDOR is not set |
421 | CONFIG_CHR_DEV_SG=y | 495 | CONFIG_CHR_DEV_SG=y |
422 | # CONFIG_CHR_DEV_SCH is not set | 496 | # CONFIG_CHR_DEV_SCH is not set |
423 | |||
424 | # | ||
425 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
426 | # | ||
427 | # CONFIG_SCSI_MULTI_LUN is not set | 497 | # CONFIG_SCSI_MULTI_LUN is not set |
428 | # CONFIG_SCSI_CONSTANTS is not set | 498 | # CONFIG_SCSI_CONSTANTS is not set |
429 | # CONFIG_SCSI_LOGGING is not set | 499 | # CONFIG_SCSI_LOGGING is not set |
@@ -440,8 +510,10 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
440 | # CONFIG_SCSI_SRP_ATTRS is not set | 510 | # CONFIG_SCSI_SRP_ATTRS is not set |
441 | # CONFIG_SCSI_LOWLEVEL is not set | 511 | # CONFIG_SCSI_LOWLEVEL is not set |
442 | # CONFIG_SCSI_DH is not set | 512 | # CONFIG_SCSI_DH is not set |
513 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
443 | CONFIG_ATA=y | 514 | CONFIG_ATA=y |
444 | # CONFIG_ATA_NONSTANDARD is not set | 515 | # CONFIG_ATA_NONSTANDARD is not set |
516 | CONFIG_ATA_VERBOSE_ERROR=y | ||
445 | # CONFIG_SATA_PMP is not set | 517 | # CONFIG_SATA_PMP is not set |
446 | # CONFIG_SATA_AHCI is not set | 518 | # CONFIG_SATA_AHCI is not set |
447 | # CONFIG_SATA_SIL24 is not set | 519 | # CONFIG_SATA_SIL24 is not set |
@@ -463,6 +535,7 @@ CONFIG_SATA_SIL=y | |||
463 | # CONFIG_PATA_ALI is not set | 535 | # CONFIG_PATA_ALI is not set |
464 | # CONFIG_PATA_AMD is not set | 536 | # CONFIG_PATA_AMD is not set |
465 | # CONFIG_PATA_ARTOP is not set | 537 | # CONFIG_PATA_ARTOP is not set |
538 | # CONFIG_PATA_ATP867X is not set | ||
466 | # CONFIG_PATA_ATIIXP is not set | 539 | # CONFIG_PATA_ATIIXP is not set |
467 | # CONFIG_PATA_CMD640_PCI is not set | 540 | # CONFIG_PATA_CMD640_PCI is not set |
468 | # CONFIG_PATA_CMD64X is not set | 541 | # CONFIG_PATA_CMD64X is not set |
@@ -488,14 +561,16 @@ CONFIG_SATA_SIL=y | |||
488 | # CONFIG_PATA_NS87415 is not set | 561 | # CONFIG_PATA_NS87415 is not set |
489 | # CONFIG_PATA_OPTI is not set | 562 | # CONFIG_PATA_OPTI is not set |
490 | # CONFIG_PATA_OPTIDMA is not set | 563 | # CONFIG_PATA_OPTIDMA is not set |
564 | # CONFIG_PATA_PDC2027X is not set | ||
491 | # CONFIG_PATA_PDC_OLD is not set | 565 | # CONFIG_PATA_PDC_OLD is not set |
492 | # CONFIG_PATA_RADISYS is not set | 566 | # CONFIG_PATA_RADISYS is not set |
567 | # CONFIG_PATA_RDC is not set | ||
493 | # CONFIG_PATA_RZ1000 is not set | 568 | # CONFIG_PATA_RZ1000 is not set |
494 | # CONFIG_PATA_SC1200 is not set | 569 | # CONFIG_PATA_SC1200 is not set |
495 | # CONFIG_PATA_SERVERWORKS is not set | 570 | # CONFIG_PATA_SERVERWORKS is not set |
496 | # CONFIG_PATA_PDC2027X is not set | ||
497 | # CONFIG_PATA_SIL680 is not set | 571 | # CONFIG_PATA_SIL680 is not set |
498 | # CONFIG_PATA_SIS is not set | 572 | # CONFIG_PATA_SIS is not set |
573 | # CONFIG_PATA_TOSHIBA is not set | ||
499 | # CONFIG_PATA_VIA is not set | 574 | # CONFIG_PATA_VIA is not set |
500 | # CONFIG_PATA_WINBOND is not set | 575 | # CONFIG_PATA_WINBOND is not set |
501 | # CONFIG_PATA_PLATFORM is not set | 576 | # CONFIG_PATA_PLATFORM is not set |
@@ -508,7 +583,11 @@ CONFIG_SATA_SIL=y | |||
508 | # | 583 | # |
509 | 584 | ||
510 | # | 585 | # |
511 | # Enable only one of the two stacks, unless you know what you are doing | 586 | # You can enable one or both FireWire driver stacks. |
587 | # | ||
588 | |||
589 | # | ||
590 | # See the help texts for more information. | ||
512 | # | 591 | # |
513 | # CONFIG_FIREWIRE is not set | 592 | # CONFIG_FIREWIRE is not set |
514 | # CONFIG_IEEE1394 is not set | 593 | # CONFIG_IEEE1394 is not set |
@@ -529,6 +608,8 @@ CONFIG_NET_ETHERNET=y | |||
529 | # CONFIG_SUNGEM is not set | 608 | # CONFIG_SUNGEM is not set |
530 | # CONFIG_CASSINI is not set | 609 | # CONFIG_CASSINI is not set |
531 | # CONFIG_NET_VENDOR_3COM is not set | 610 | # CONFIG_NET_VENDOR_3COM is not set |
611 | # CONFIG_ETHOC is not set | ||
612 | # CONFIG_DNET is not set | ||
532 | # CONFIG_NET_TULIP is not set | 613 | # CONFIG_NET_TULIP is not set |
533 | # CONFIG_HP100 is not set | 614 | # CONFIG_HP100 is not set |
534 | CONFIG_IBM_NEW_EMAC=y | 615 | CONFIG_IBM_NEW_EMAC=y |
@@ -547,17 +628,19 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
547 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 628 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
548 | # CONFIG_NET_PCI is not set | 629 | # CONFIG_NET_PCI is not set |
549 | # CONFIG_B44 is not set | 630 | # CONFIG_B44 is not set |
631 | # CONFIG_KS8842 is not set | ||
632 | # CONFIG_KS8851_MLL is not set | ||
550 | # CONFIG_ATL2 is not set | 633 | # CONFIG_ATL2 is not set |
634 | # CONFIG_XILINX_EMACLITE is not set | ||
551 | # CONFIG_NETDEV_1000 is not set | 635 | # CONFIG_NETDEV_1000 is not set |
552 | # CONFIG_NETDEV_10000 is not set | 636 | # CONFIG_NETDEV_10000 is not set |
553 | # CONFIG_TR is not set | 637 | # CONFIG_TR is not set |
554 | 638 | CONFIG_WLAN=y | |
555 | # | 639 | # CONFIG_AIRO is not set |
556 | # Wireless LAN | 640 | # CONFIG_ATMEL is not set |
557 | # | 641 | # CONFIG_PRISM54 is not set |
558 | # CONFIG_WLAN_PRE80211 is not set | 642 | # CONFIG_USB_ZD1201 is not set |
559 | # CONFIG_WLAN_80211 is not set | 643 | # CONFIG_HOSTAP is not set |
560 | # CONFIG_IWLWIFI_LEDS is not set | ||
561 | 644 | ||
562 | # | 645 | # |
563 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 646 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -580,6 +663,7 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
580 | # CONFIG_NETCONSOLE is not set | 663 | # CONFIG_NETCONSOLE is not set |
581 | # CONFIG_NETPOLL is not set | 664 | # CONFIG_NETPOLL is not set |
582 | # CONFIG_NET_POLL_CONTROLLER is not set | 665 | # CONFIG_NET_POLL_CONTROLLER is not set |
666 | # CONFIG_VMXNET3 is not set | ||
583 | # CONFIG_ISDN is not set | 667 | # CONFIG_ISDN is not set |
584 | # CONFIG_PHONE is not set | 668 | # CONFIG_PHONE is not set |
585 | 669 | ||
@@ -589,6 +673,7 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
589 | CONFIG_INPUT=y | 673 | CONFIG_INPUT=y |
590 | CONFIG_INPUT_FF_MEMLESS=m | 674 | CONFIG_INPUT_FF_MEMLESS=m |
591 | # CONFIG_INPUT_POLLDEV is not set | 675 | # CONFIG_INPUT_POLLDEV is not set |
676 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
592 | 677 | ||
593 | # | 678 | # |
594 | # Userland interfaces | 679 | # Userland interfaces |
@@ -605,25 +690,30 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 | |||
605 | # Input Device Drivers | 690 | # Input Device Drivers |
606 | # | 691 | # |
607 | CONFIG_INPUT_KEYBOARD=y | 692 | CONFIG_INPUT_KEYBOARD=y |
693 | # CONFIG_KEYBOARD_ADP5588 is not set | ||
608 | CONFIG_KEYBOARD_ATKBD=y | 694 | CONFIG_KEYBOARD_ATKBD=y |
609 | # CONFIG_KEYBOARD_SUNKBD is not set | 695 | # CONFIG_QT2160 is not set |
610 | # CONFIG_KEYBOARD_LKKBD is not set | 696 | # CONFIG_KEYBOARD_LKKBD is not set |
611 | # CONFIG_KEYBOARD_XTKBD is not set | 697 | # CONFIG_KEYBOARD_MAX7359 is not set |
612 | # CONFIG_KEYBOARD_NEWTON is not set | 698 | # CONFIG_KEYBOARD_NEWTON is not set |
699 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
613 | # CONFIG_KEYBOARD_STOWAWAY is not set | 700 | # CONFIG_KEYBOARD_STOWAWAY is not set |
701 | # CONFIG_KEYBOARD_SUNKBD is not set | ||
702 | # CONFIG_KEYBOARD_XTKBD is not set | ||
614 | CONFIG_INPUT_MOUSE=y | 703 | CONFIG_INPUT_MOUSE=y |
615 | CONFIG_MOUSE_PS2=y | 704 | CONFIG_MOUSE_PS2=y |
616 | CONFIG_MOUSE_PS2_ALPS=y | 705 | CONFIG_MOUSE_PS2_ALPS=y |
617 | CONFIG_MOUSE_PS2_LOGIPS2PP=y | 706 | CONFIG_MOUSE_PS2_LOGIPS2PP=y |
618 | CONFIG_MOUSE_PS2_SYNAPTICS=y | 707 | CONFIG_MOUSE_PS2_SYNAPTICS=y |
619 | CONFIG_MOUSE_PS2_LIFEBOOK=y | ||
620 | CONFIG_MOUSE_PS2_TRACKPOINT=y | 708 | CONFIG_MOUSE_PS2_TRACKPOINT=y |
621 | # CONFIG_MOUSE_PS2_ELANTECH is not set | 709 | # CONFIG_MOUSE_PS2_ELANTECH is not set |
710 | # CONFIG_MOUSE_PS2_SENTELIC is not set | ||
622 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set | 711 | # CONFIG_MOUSE_PS2_TOUCHKIT is not set |
623 | # CONFIG_MOUSE_SERIAL is not set | 712 | # CONFIG_MOUSE_SERIAL is not set |
624 | # CONFIG_MOUSE_APPLETOUCH is not set | 713 | # CONFIG_MOUSE_APPLETOUCH is not set |
625 | # CONFIG_MOUSE_BCM5974 is not set | 714 | # CONFIG_MOUSE_BCM5974 is not set |
626 | # CONFIG_MOUSE_VSXXXAA is not set | 715 | # CONFIG_MOUSE_VSXXXAA is not set |
716 | # CONFIG_MOUSE_SYNAPTICS_I2C is not set | ||
627 | # CONFIG_INPUT_JOYSTICK is not set | 717 | # CONFIG_INPUT_JOYSTICK is not set |
628 | # CONFIG_INPUT_TABLET is not set | 718 | # CONFIG_INPUT_TABLET is not set |
629 | # CONFIG_INPUT_TOUCHSCREEN is not set | 719 | # CONFIG_INPUT_TOUCHSCREEN is not set |
@@ -639,6 +729,7 @@ CONFIG_SERIO_SERPORT=y | |||
639 | CONFIG_SERIO_LIBPS2=y | 729 | CONFIG_SERIO_LIBPS2=y |
640 | # CONFIG_SERIO_RAW is not set | 730 | # CONFIG_SERIO_RAW is not set |
641 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set | 731 | # CONFIG_SERIO_XILINX_XPS_PS2 is not set |
732 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
642 | # CONFIG_GAMEPORT is not set | 733 | # CONFIG_GAMEPORT is not set |
643 | 734 | ||
644 | # | 735 | # |
@@ -676,6 +767,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
676 | # CONFIG_SERIAL_JSM is not set | 767 | # CONFIG_SERIAL_JSM is not set |
677 | CONFIG_SERIAL_OF_PLATFORM=y | 768 | CONFIG_SERIAL_OF_PLATFORM=y |
678 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 769 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
770 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
679 | CONFIG_UNIX98_PTYS=y | 771 | CONFIG_UNIX98_PTYS=y |
680 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 772 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
681 | CONFIG_LEGACY_PTYS=y | 773 | CONFIG_LEGACY_PTYS=y |
@@ -691,6 +783,7 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
691 | CONFIG_DEVPORT=y | 783 | CONFIG_DEVPORT=y |
692 | CONFIG_I2C=y | 784 | CONFIG_I2C=y |
693 | CONFIG_I2C_BOARDINFO=y | 785 | CONFIG_I2C_BOARDINFO=y |
786 | CONFIG_I2C_COMPAT=y | ||
694 | # CONFIG_I2C_CHARDEV is not set | 787 | # CONFIG_I2C_CHARDEV is not set |
695 | CONFIG_I2C_HELPER_AUTO=y | 788 | CONFIG_I2C_HELPER_AUTO=y |
696 | CONFIG_I2C_ALGOBIT=y | 789 | CONFIG_I2C_ALGOBIT=y |
@@ -733,11 +826,6 @@ CONFIG_I2C_IBM_IIC=y | |||
733 | # CONFIG_I2C_TINY_USB is not set | 826 | # CONFIG_I2C_TINY_USB is not set |
734 | 827 | ||
735 | # | 828 | # |
736 | # Graphics adapter I2C/DDC channel drivers | ||
737 | # | ||
738 | # CONFIG_I2C_VOODOO3 is not set | ||
739 | |||
740 | # | ||
741 | # Other I2C/SMBus bus drivers | 829 | # Other I2C/SMBus bus drivers |
742 | # | 830 | # |
743 | # CONFIG_I2C_PCA_PLATFORM is not set | 831 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -746,27 +834,23 @@ CONFIG_I2C_IBM_IIC=y | |||
746 | # | 834 | # |
747 | # Miscellaneous I2C Chip support | 835 | # Miscellaneous I2C Chip support |
748 | # | 836 | # |
749 | # CONFIG_DS1682 is not set | ||
750 | # CONFIG_EEPROM_AT24 is not set | ||
751 | # CONFIG_EEPROM_LEGACY is not set | ||
752 | # CONFIG_SENSORS_PCF8574 is not set | ||
753 | # CONFIG_PCF8575 is not set | ||
754 | # CONFIG_SENSORS_PCA9539 is not set | ||
755 | # CONFIG_SENSORS_PCF8591 is not set | ||
756 | # CONFIG_SENSORS_MAX6875 is not set | ||
757 | # CONFIG_SENSORS_TSL2550 is not set | 837 | # CONFIG_SENSORS_TSL2550 is not set |
758 | # CONFIG_I2C_DEBUG_CORE is not set | 838 | # CONFIG_I2C_DEBUG_CORE is not set |
759 | # CONFIG_I2C_DEBUG_ALGO is not set | 839 | # CONFIG_I2C_DEBUG_ALGO is not set |
760 | # CONFIG_I2C_DEBUG_BUS is not set | 840 | # CONFIG_I2C_DEBUG_BUS is not set |
761 | # CONFIG_I2C_DEBUG_CHIP is not set | 841 | # CONFIG_I2C_DEBUG_CHIP is not set |
762 | # CONFIG_SPI is not set | 842 | # CONFIG_SPI is not set |
843 | |||
844 | # | ||
845 | # PPS support | ||
846 | # | ||
847 | # CONFIG_PPS is not set | ||
763 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 848 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
764 | # CONFIG_GPIOLIB is not set | 849 | # CONFIG_GPIOLIB is not set |
765 | # CONFIG_W1 is not set | 850 | # CONFIG_W1 is not set |
766 | # CONFIG_POWER_SUPPLY is not set | 851 | # CONFIG_POWER_SUPPLY is not set |
767 | # CONFIG_HWMON is not set | 852 | # CONFIG_HWMON is not set |
768 | # CONFIG_THERMAL is not set | 853 | # CONFIG_THERMAL is not set |
769 | # CONFIG_THERMAL_HWMON is not set | ||
770 | # CONFIG_WATCHDOG is not set | 854 | # CONFIG_WATCHDOG is not set |
771 | CONFIG_SSB_POSSIBLE=y | 855 | CONFIG_SSB_POSSIBLE=y |
772 | 856 | ||
@@ -784,31 +868,21 @@ CONFIG_SSB_POSSIBLE=y | |||
784 | # CONFIG_TWL4030_CORE is not set | 868 | # CONFIG_TWL4030_CORE is not set |
785 | # CONFIG_MFD_TMIO is not set | 869 | # CONFIG_MFD_TMIO is not set |
786 | # CONFIG_PMIC_DA903X is not set | 870 | # CONFIG_PMIC_DA903X is not set |
871 | # CONFIG_PMIC_ADP5520 is not set | ||
787 | # CONFIG_MFD_WM8400 is not set | 872 | # CONFIG_MFD_WM8400 is not set |
873 | # CONFIG_MFD_WM831X is not set | ||
788 | # CONFIG_MFD_WM8350_I2C is not set | 874 | # CONFIG_MFD_WM8350_I2C is not set |
789 | # CONFIG_MFD_PCF50633 is not set | 875 | # CONFIG_MFD_PCF50633 is not set |
876 | # CONFIG_AB3100_CORE is not set | ||
877 | # CONFIG_MFD_88PM8607 is not set | ||
790 | # CONFIG_REGULATOR is not set | 878 | # CONFIG_REGULATOR is not set |
791 | 879 | # CONFIG_MEDIA_SUPPORT is not set | |
792 | # | ||
793 | # Multimedia devices | ||
794 | # | ||
795 | |||
796 | # | ||
797 | # Multimedia core support | ||
798 | # | ||
799 | # CONFIG_VIDEO_DEV is not set | ||
800 | # CONFIG_DVB_CORE is not set | ||
801 | # CONFIG_VIDEO_MEDIA is not set | ||
802 | |||
803 | # | ||
804 | # Multimedia drivers | ||
805 | # | ||
806 | # CONFIG_DAB is not set | ||
807 | 880 | ||
808 | # | 881 | # |
809 | # Graphics support | 882 | # Graphics support |
810 | # | 883 | # |
811 | # CONFIG_AGP is not set | 884 | # CONFIG_AGP is not set |
885 | CONFIG_VGA_ARB=y | ||
812 | # CONFIG_DRM is not set | 886 | # CONFIG_DRM is not set |
813 | # CONFIG_VGASTATE is not set | 887 | # CONFIG_VGASTATE is not set |
814 | CONFIG_VIDEO_OUTPUT_CONTROL=y | 888 | CONFIG_VIDEO_OUTPUT_CONTROL=y |
@@ -870,6 +944,7 @@ CONFIG_FB_RADEON_BACKLIGHT=y | |||
870 | # CONFIG_FB_VIRTUAL is not set | 944 | # CONFIG_FB_VIRTUAL is not set |
871 | # CONFIG_FB_METRONOME is not set | 945 | # CONFIG_FB_METRONOME is not set |
872 | # CONFIG_FB_MB862XX is not set | 946 | # CONFIG_FB_MB862XX is not set |
947 | # CONFIG_FB_BROADSHEET is not set | ||
873 | CONFIG_BACKLIGHT_LCD_SUPPORT=y | 948 | CONFIG_BACKLIGHT_LCD_SUPPORT=y |
874 | CONFIG_LCD_CLASS_DEVICE=y | 949 | CONFIG_LCD_CLASS_DEVICE=y |
875 | # CONFIG_LCD_ILI9320 is not set | 950 | # CONFIG_LCD_ILI9320 is not set |
@@ -899,7 +974,6 @@ CONFIG_LOGO_LINUX_CLUT224=y | |||
899 | # CONFIG_SOUND is not set | 974 | # CONFIG_SOUND is not set |
900 | CONFIG_HID_SUPPORT=y | 975 | CONFIG_HID_SUPPORT=y |
901 | CONFIG_HID=y | 976 | CONFIG_HID=y |
902 | # CONFIG_HID_DEBUG is not set | ||
903 | # CONFIG_HIDRAW is not set | 977 | # CONFIG_HIDRAW is not set |
904 | 978 | ||
905 | # | 979 | # |
@@ -912,15 +986,18 @@ CONFIG_USB_HID=y | |||
912 | # | 986 | # |
913 | # Special HID drivers | 987 | # Special HID drivers |
914 | # | 988 | # |
915 | CONFIG_HID_COMPAT=y | ||
916 | CONFIG_HID_A4TECH=y | 989 | CONFIG_HID_A4TECH=y |
917 | CONFIG_HID_APPLE=y | 990 | CONFIG_HID_APPLE=y |
918 | CONFIG_HID_BELKIN=y | 991 | CONFIG_HID_BELKIN=y |
919 | CONFIG_HID_CHERRY=y | 992 | CONFIG_HID_CHERRY=y |
920 | CONFIG_HID_CHICONY=y | 993 | CONFIG_HID_CHICONY=y |
921 | CONFIG_HID_CYPRESS=y | 994 | CONFIG_HID_CYPRESS=y |
995 | # CONFIG_HID_DRAGONRISE is not set | ||
922 | CONFIG_HID_EZKEY=y | 996 | CONFIG_HID_EZKEY=y |
997 | # CONFIG_HID_KYE is not set | ||
923 | CONFIG_HID_GYRATION=y | 998 | CONFIG_HID_GYRATION=y |
999 | # CONFIG_HID_TWINHAN is not set | ||
1000 | # CONFIG_HID_KENSINGTON is not set | ||
924 | CONFIG_HID_LOGITECH=y | 1001 | CONFIG_HID_LOGITECH=y |
925 | # CONFIG_LOGITECH_FF is not set | 1002 | # CONFIG_LOGITECH_FF is not set |
926 | # CONFIG_LOGIRUMBLEPAD2_FF is not set | 1003 | # CONFIG_LOGIRUMBLEPAD2_FF is not set |
@@ -933,10 +1010,11 @@ CONFIG_HID_PETALYNX=y | |||
933 | CONFIG_HID_SAMSUNG=y | 1010 | CONFIG_HID_SAMSUNG=y |
934 | CONFIG_HID_SONY=y | 1011 | CONFIG_HID_SONY=y |
935 | CONFIG_HID_SUNPLUS=y | 1012 | CONFIG_HID_SUNPLUS=y |
936 | # CONFIG_GREENASIA_FF is not set | 1013 | # CONFIG_HID_GREENASIA is not set |
1014 | # CONFIG_HID_SMARTJOYPLUS is not set | ||
937 | # CONFIG_HID_TOPSEED is not set | 1015 | # CONFIG_HID_TOPSEED is not set |
938 | CONFIG_THRUSTMASTER_FF=m | 1016 | # CONFIG_HID_THRUSTMASTER is not set |
939 | CONFIG_ZEROPLUS_FF=m | 1017 | # CONFIG_HID_ZEROPLUS is not set |
940 | CONFIG_USB_SUPPORT=y | 1018 | CONFIG_USB_SUPPORT=y |
941 | CONFIG_USB_ARCH_HAS_HCD=y | 1019 | CONFIG_USB_ARCH_HAS_HCD=y |
942 | CONFIG_USB_ARCH_HAS_OHCI=y | 1020 | CONFIG_USB_ARCH_HAS_OHCI=y |
@@ -962,17 +1040,20 @@ CONFIG_USB_DEVICEFS=y | |||
962 | # USB Host Controller Drivers | 1040 | # USB Host Controller Drivers |
963 | # | 1041 | # |
964 | # CONFIG_USB_C67X00_HCD is not set | 1042 | # CONFIG_USB_C67X00_HCD is not set |
1043 | # CONFIG_USB_XHCI_HCD is not set | ||
965 | CONFIG_USB_EHCI_HCD=m | 1044 | CONFIG_USB_EHCI_HCD=m |
966 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1045 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
967 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1046 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1047 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
968 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1048 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
969 | # CONFIG_USB_OXU210HP_HCD is not set | 1049 | # CONFIG_USB_OXU210HP_HCD is not set |
970 | # CONFIG_USB_ISP116X_HCD is not set | 1050 | # CONFIG_USB_ISP116X_HCD is not set |
971 | # CONFIG_USB_ISP1760_HCD is not set | 1051 | # CONFIG_USB_ISP1760_HCD is not set |
1052 | # CONFIG_USB_ISP1362_HCD is not set | ||
972 | CONFIG_USB_OHCI_HCD=y | 1053 | CONFIG_USB_OHCI_HCD=y |
973 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
974 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 1054 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y |
975 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y | 1055 | CONFIG_USB_OHCI_HCD_PPC_OF_LE=y |
1056 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
976 | CONFIG_USB_OHCI_HCD_PCI=y | 1057 | CONFIG_USB_OHCI_HCD_PCI=y |
977 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | 1058 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y |
978 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | 1059 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y |
@@ -992,11 +1073,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
992 | # CONFIG_USB_TMC is not set | 1073 | # CONFIG_USB_TMC is not set |
993 | 1074 | ||
994 | # | 1075 | # |
995 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 1076 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
996 | # | 1077 | # |
997 | 1078 | ||
998 | # | 1079 | # |
999 | # see USB_STORAGE Help for more information | 1080 | # also be needed; see USB_STORAGE Help for more info |
1000 | # | 1081 | # |
1001 | CONFIG_USB_STORAGE=m | 1082 | CONFIG_USB_STORAGE=m |
1002 | # CONFIG_USB_STORAGE_DEBUG is not set | 1083 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -1038,7 +1119,6 @@ CONFIG_USB_STORAGE=m | |||
1038 | # CONFIG_USB_LED is not set | 1119 | # CONFIG_USB_LED is not set |
1039 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1120 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1040 | # CONFIG_USB_CYTHERM is not set | 1121 | # CONFIG_USB_CYTHERM is not set |
1041 | # CONFIG_USB_PHIDGET is not set | ||
1042 | # CONFIG_USB_IDMOUSE is not set | 1122 | # CONFIG_USB_IDMOUSE is not set |
1043 | # CONFIG_USB_FTDI_ELAN is not set | 1123 | # CONFIG_USB_FTDI_ELAN is not set |
1044 | # CONFIG_USB_APPLEDISPLAY is not set | 1124 | # CONFIG_USB_APPLEDISPLAY is not set |
@@ -1054,6 +1134,7 @@ CONFIG_USB_STORAGE=m | |||
1054 | # | 1134 | # |
1055 | # OTG and related infrastructure | 1135 | # OTG and related infrastructure |
1056 | # | 1136 | # |
1137 | # CONFIG_NOP_USB_XCEIV is not set | ||
1057 | # CONFIG_UWB is not set | 1138 | # CONFIG_UWB is not set |
1058 | # CONFIG_MMC is not set | 1139 | # CONFIG_MMC is not set |
1059 | # CONFIG_MEMSTICK is not set | 1140 | # CONFIG_MEMSTICK is not set |
@@ -1090,9 +1171,11 @@ CONFIG_RTC_INTF_DEV=y | |||
1090 | # CONFIG_RTC_DRV_PCF8583 is not set | 1171 | # CONFIG_RTC_DRV_PCF8583 is not set |
1091 | CONFIG_RTC_DRV_M41T80=y | 1172 | CONFIG_RTC_DRV_M41T80=y |
1092 | CONFIG_RTC_DRV_M41T80_WDT=y | 1173 | CONFIG_RTC_DRV_M41T80_WDT=y |
1174 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1093 | # CONFIG_RTC_DRV_S35390A is not set | 1175 | # CONFIG_RTC_DRV_S35390A is not set |
1094 | # CONFIG_RTC_DRV_FM3130 is not set | 1176 | # CONFIG_RTC_DRV_FM3130 is not set |
1095 | # CONFIG_RTC_DRV_RX8581 is not set | 1177 | # CONFIG_RTC_DRV_RX8581 is not set |
1178 | # CONFIG_RTC_DRV_RX8025 is not set | ||
1096 | 1179 | ||
1097 | # | 1180 | # |
1098 | # SPI RTC drivers | 1181 | # SPI RTC drivers |
@@ -1110,15 +1193,22 @@ CONFIG_RTC_DRV_M41T80_WDT=y | |||
1110 | # CONFIG_RTC_DRV_M48T86 is not set | 1193 | # CONFIG_RTC_DRV_M48T86 is not set |
1111 | # CONFIG_RTC_DRV_M48T35 is not set | 1194 | # CONFIG_RTC_DRV_M48T35 is not set |
1112 | # CONFIG_RTC_DRV_M48T59 is not set | 1195 | # CONFIG_RTC_DRV_M48T59 is not set |
1196 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1113 | # CONFIG_RTC_DRV_BQ4802 is not set | 1197 | # CONFIG_RTC_DRV_BQ4802 is not set |
1198 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1114 | # CONFIG_RTC_DRV_V3020 is not set | 1199 | # CONFIG_RTC_DRV_V3020 is not set |
1115 | 1200 | ||
1116 | # | 1201 | # |
1117 | # on-CPU RTC drivers | 1202 | # on-CPU RTC drivers |
1118 | # | 1203 | # |
1119 | # CONFIG_RTC_DRV_PPC is not set | 1204 | # CONFIG_RTC_DRV_GENERIC is not set |
1120 | # CONFIG_DMADEVICES is not set | 1205 | # CONFIG_DMADEVICES is not set |
1206 | # CONFIG_AUXDISPLAY is not set | ||
1121 | # CONFIG_UIO is not set | 1207 | # CONFIG_UIO is not set |
1208 | |||
1209 | # | ||
1210 | # TI VLYNQ | ||
1211 | # | ||
1122 | # CONFIG_STAGING is not set | 1212 | # CONFIG_STAGING is not set |
1123 | 1213 | ||
1124 | # | 1214 | # |
@@ -1130,6 +1220,7 @@ CONFIG_EXT2_FS_POSIX_ACL=y | |||
1130 | # CONFIG_EXT2_FS_SECURITY is not set | 1220 | # CONFIG_EXT2_FS_SECURITY is not set |
1131 | # CONFIG_EXT2_FS_XIP is not set | 1221 | # CONFIG_EXT2_FS_XIP is not set |
1132 | CONFIG_EXT3_FS=y | 1222 | CONFIG_EXT3_FS=y |
1223 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
1133 | CONFIG_EXT3_FS_XATTR=y | 1224 | CONFIG_EXT3_FS_XATTR=y |
1134 | CONFIG_EXT3_FS_POSIX_ACL=y | 1225 | CONFIG_EXT3_FS_POSIX_ACL=y |
1135 | # CONFIG_EXT3_FS_SECURITY is not set | 1226 | # CONFIG_EXT3_FS_SECURITY is not set |
@@ -1142,10 +1233,13 @@ CONFIG_REISERFS_FS=y | |||
1142 | # CONFIG_REISERFS_FS_XATTR is not set | 1233 | # CONFIG_REISERFS_FS_XATTR is not set |
1143 | # CONFIG_JFS_FS is not set | 1234 | # CONFIG_JFS_FS is not set |
1144 | CONFIG_FS_POSIX_ACL=y | 1235 | CONFIG_FS_POSIX_ACL=y |
1145 | CONFIG_FILE_LOCKING=y | ||
1146 | # CONFIG_XFS_FS is not set | 1236 | # CONFIG_XFS_FS is not set |
1237 | # CONFIG_GFS2_FS is not set | ||
1147 | # CONFIG_OCFS2_FS is not set | 1238 | # CONFIG_OCFS2_FS is not set |
1148 | # CONFIG_BTRFS_FS is not set | 1239 | # CONFIG_BTRFS_FS is not set |
1240 | # CONFIG_NILFS2_FS is not set | ||
1241 | CONFIG_FILE_LOCKING=y | ||
1242 | CONFIG_FSNOTIFY=y | ||
1149 | CONFIG_DNOTIFY=y | 1243 | CONFIG_DNOTIFY=y |
1150 | CONFIG_INOTIFY=y | 1244 | CONFIG_INOTIFY=y |
1151 | CONFIG_INOTIFY_USER=y | 1245 | CONFIG_INOTIFY_USER=y |
@@ -1155,6 +1249,11 @@ CONFIG_AUTOFS4_FS=y | |||
1155 | # CONFIG_FUSE_FS is not set | 1249 | # CONFIG_FUSE_FS is not set |
1156 | 1250 | ||
1157 | # | 1251 | # |
1252 | # Caches | ||
1253 | # | ||
1254 | # CONFIG_FSCACHE is not set | ||
1255 | |||
1256 | # | ||
1158 | # CD-ROM/DVD Filesystems | 1257 | # CD-ROM/DVD Filesystems |
1159 | # | 1258 | # |
1160 | CONFIG_ISO9660_FS=y | 1259 | CONFIG_ISO9660_FS=y |
@@ -1267,6 +1366,7 @@ CONFIG_NLS_ISO8859_1=y | |||
1267 | # CONFIG_NLS_KOI8_U is not set | 1366 | # CONFIG_NLS_KOI8_U is not set |
1268 | # CONFIG_NLS_UTF8 is not set | 1367 | # CONFIG_NLS_UTF8 is not set |
1269 | # CONFIG_DLM is not set | 1368 | # CONFIG_DLM is not set |
1369 | # CONFIG_BINARY_PRINTF is not set | ||
1270 | 1370 | ||
1271 | # | 1371 | # |
1272 | # Library routines | 1372 | # Library routines |
@@ -1281,11 +1381,13 @@ CONFIG_CRC32=y | |||
1281 | # CONFIG_CRC7 is not set | 1381 | # CONFIG_CRC7 is not set |
1282 | # CONFIG_LIBCRC32C is not set | 1382 | # CONFIG_LIBCRC32C is not set |
1283 | CONFIG_ZLIB_INFLATE=y | 1383 | CONFIG_ZLIB_INFLATE=y |
1284 | CONFIG_PLIST=y | 1384 | CONFIG_DECOMPRESS_GZIP=y |
1285 | CONFIG_HAS_IOMEM=y | 1385 | CONFIG_HAS_IOMEM=y |
1286 | CONFIG_HAS_IOPORT=y | 1386 | CONFIG_HAS_IOPORT=y |
1287 | CONFIG_HAS_DMA=y | 1387 | CONFIG_HAS_DMA=y |
1288 | CONFIG_HAVE_LMB=y | 1388 | CONFIG_HAVE_LMB=y |
1389 | CONFIG_NLATTR=y | ||
1390 | CONFIG_GENERIC_ATOMIC64=y | ||
1289 | 1391 | ||
1290 | # | 1392 | # |
1291 | # Kernel hacking | 1393 | # Kernel hacking |
@@ -1295,27 +1397,29 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1295 | CONFIG_ENABLE_MUST_CHECK=y | 1397 | CONFIG_ENABLE_MUST_CHECK=y |
1296 | CONFIG_FRAME_WARN=1024 | 1398 | CONFIG_FRAME_WARN=1024 |
1297 | CONFIG_MAGIC_SYSRQ=y | 1399 | CONFIG_MAGIC_SYSRQ=y |
1400 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1298 | # CONFIG_UNUSED_SYMBOLS is not set | 1401 | # CONFIG_UNUSED_SYMBOLS is not set |
1299 | # CONFIG_DEBUG_FS is not set | 1402 | # CONFIG_DEBUG_FS is not set |
1300 | # CONFIG_HEADERS_CHECK is not set | 1403 | # CONFIG_HEADERS_CHECK is not set |
1301 | # CONFIG_DEBUG_KERNEL is not set | 1404 | # CONFIG_DEBUG_KERNEL is not set |
1302 | # CONFIG_SLUB_DEBUG_ON is not set | 1405 | # CONFIG_SLUB_DEBUG_ON is not set |
1303 | # CONFIG_SLUB_STATS is not set | 1406 | # CONFIG_SLUB_STATS is not set |
1304 | # CONFIG_DEBUG_BUGVERBOSE is not set | 1407 | CONFIG_DEBUG_BUGVERBOSE=y |
1305 | # CONFIG_DEBUG_MEMORY_INIT is not set | 1408 | # CONFIG_DEBUG_MEMORY_INIT is not set |
1306 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1409 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1307 | # CONFIG_LATENCYTOP is not set | 1410 | # CONFIG_LATENCYTOP is not set |
1308 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1411 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1309 | CONFIG_HAVE_FUNCTION_TRACER=y | 1412 | CONFIG_HAVE_FUNCTION_TRACER=y |
1413 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1310 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1414 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1311 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1415 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1312 | 1416 | CONFIG_TRACING_SUPPORT=y | |
1313 | # | 1417 | # CONFIG_FTRACE is not set |
1314 | # Tracers | 1418 | # CONFIG_DMA_API_DEBUG is not set |
1315 | # | ||
1316 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | ||
1317 | # CONFIG_SAMPLES is not set | 1419 | # CONFIG_SAMPLES is not set |
1318 | CONFIG_HAVE_ARCH_KGDB=y | 1420 | CONFIG_HAVE_ARCH_KGDB=y |
1421 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1422 | CONFIG_PPC_WERROR=y | ||
1319 | CONFIG_PRINT_STACK_DEPTH=64 | 1423 | CONFIG_PRINT_STACK_DEPTH=64 |
1320 | # CONFIG_IRQSTACKS is not set | 1424 | # CONFIG_IRQSTACKS is not set |
1321 | # CONFIG_PPC_EARLY_DEBUG is not set | 1425 | # CONFIG_PPC_EARLY_DEBUG is not set |
@@ -1326,7 +1430,11 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1326 | # CONFIG_KEYS is not set | 1430 | # CONFIG_KEYS is not set |
1327 | # CONFIG_SECURITY is not set | 1431 | # CONFIG_SECURITY is not set |
1328 | # CONFIG_SECURITYFS is not set | 1432 | # CONFIG_SECURITYFS is not set |
1329 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1433 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1434 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1435 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1436 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1437 | CONFIG_DEFAULT_SECURITY="" | ||
1330 | # CONFIG_CRYPTO is not set | 1438 | # CONFIG_CRYPTO is not set |
1331 | # CONFIG_PPC_CLOCK is not set | 1439 | # CONFIG_PPC_CLOCK is not set |
1332 | # CONFIG_VIRTUALIZATION is not set | 1440 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/sequoia_defconfig b/arch/powerpc/configs/44x/sequoia_defconfig index 6400aae04dda..1b2f41dbcafb 100644 --- a/arch/powerpc/configs/44x/sequoia_defconfig +++ b/arch/powerpc/configs/44x/sequoia_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Apr 7 17:04:52 2009 | 4 | # Mon Jan 4 15:15:51 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 48 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
45 | CONFIG_PPC=y | 49 | CONFIG_PPC=y |
@@ -53,12 +57,15 @@ CONFIG_PPC_UDBG_16550=y | |||
53 | # CONFIG_GENERIC_TBSYNC is not set | 57 | # CONFIG_GENERIC_TBSYNC is not set |
54 | CONFIG_AUDIT_ARCH=y | 58 | CONFIG_AUDIT_ARCH=y |
55 | CONFIG_GENERIC_BUG=y | 59 | CONFIG_GENERIC_BUG=y |
60 | CONFIG_DTC=y | ||
56 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | # CONFIG_DEFAULT_UIMAGE is not set |
62 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
57 | CONFIG_PPC_DCR_NATIVE=y | 63 | CONFIG_PPC_DCR_NATIVE=y |
58 | # CONFIG_PPC_DCR_MMIO is not set | 64 | # CONFIG_PPC_DCR_MMIO is not set |
59 | CONFIG_PPC_DCR=y | 65 | CONFIG_PPC_DCR=y |
60 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 66 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
61 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 67 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
68 | CONFIG_CONSTRUCTORS=y | ||
62 | 69 | ||
63 | # | 70 | # |
64 | # General setup | 71 | # General setup |
@@ -72,6 +79,7 @@ CONFIG_SWAP=y | |||
72 | CONFIG_SYSVIPC=y | 79 | CONFIG_SYSVIPC=y |
73 | CONFIG_SYSVIPC_SYSCTL=y | 80 | CONFIG_SYSVIPC_SYSCTL=y |
74 | CONFIG_POSIX_MQUEUE=y | 81 | CONFIG_POSIX_MQUEUE=y |
82 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
75 | # CONFIG_BSD_PROCESS_ACCT is not set | 83 | # CONFIG_BSD_PROCESS_ACCT is not set |
76 | # CONFIG_TASKSTATS is not set | 84 | # CONFIG_TASKSTATS is not set |
77 | # CONFIG_AUDIT is not set | 85 | # CONFIG_AUDIT is not set |
@@ -79,11 +87,13 @@ CONFIG_POSIX_MQUEUE=y | |||
79 | # | 87 | # |
80 | # RCU Subsystem | 88 | # RCU Subsystem |
81 | # | 89 | # |
82 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
83 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
84 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
85 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
86 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
87 | # CONFIG_IKCONFIG is not set | 97 | # CONFIG_IKCONFIG is not set |
88 | CONFIG_LOG_BUF_SHIFT=14 | 98 | CONFIG_LOG_BUF_SHIFT=14 |
89 | CONFIG_GROUP_SCHED=y | 99 | CONFIG_GROUP_SCHED=y |
@@ -121,6 +131,13 @@ CONFIG_TIMERFD=y | |||
121 | CONFIG_EVENTFD=y | 131 | CONFIG_EVENTFD=y |
122 | CONFIG_SHMEM=y | 132 | CONFIG_SHMEM=y |
123 | CONFIG_AIO=y | 133 | CONFIG_AIO=y |
134 | CONFIG_HAVE_PERF_EVENTS=y | ||
135 | |||
136 | # | ||
137 | # Kernel Performance Events And Counters | ||
138 | # | ||
139 | # CONFIG_PERF_EVENTS is not set | ||
140 | # CONFIG_PERF_COUNTERS is not set | ||
124 | CONFIG_VM_EVENT_COUNTERS=y | 141 | CONFIG_VM_EVENT_COUNTERS=y |
125 | CONFIG_PCI_QUIRKS=y | 142 | CONFIG_PCI_QUIRKS=y |
126 | CONFIG_SLUB_DEBUG=y | 143 | CONFIG_SLUB_DEBUG=y |
@@ -129,7 +146,6 @@ CONFIG_COMPAT_BRK=y | |||
129 | CONFIG_SLUB=y | 146 | CONFIG_SLUB=y |
130 | # CONFIG_SLOB is not set | 147 | # CONFIG_SLOB is not set |
131 | # CONFIG_PROFILING is not set | 148 | # CONFIG_PROFILING is not set |
132 | # CONFIG_MARKERS is not set | ||
133 | CONFIG_HAVE_OPROFILE=y | 149 | CONFIG_HAVE_OPROFILE=y |
134 | # CONFIG_KPROBES is not set | 150 | # CONFIG_KPROBES is not set |
135 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 151 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -137,6 +153,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
137 | CONFIG_HAVE_KPROBES=y | 153 | CONFIG_HAVE_KPROBES=y |
138 | CONFIG_HAVE_KRETPROBES=y | 154 | CONFIG_HAVE_KRETPROBES=y |
139 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 155 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
156 | CONFIG_HAVE_DMA_ATTRS=y | ||
157 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
158 | |||
159 | # | ||
160 | # GCOV-based kernel profiling | ||
161 | # | ||
162 | # CONFIG_GCOV_KERNEL is not set | ||
140 | # CONFIG_SLOW_WORK is not set | 163 | # CONFIG_SLOW_WORK is not set |
141 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 164 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
142 | CONFIG_SLABINFO=y | 165 | CONFIG_SLABINFO=y |
@@ -149,7 +172,7 @@ CONFIG_MODULE_UNLOAD=y | |||
149 | # CONFIG_MODVERSIONS is not set | 172 | # CONFIG_MODVERSIONS is not set |
150 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 173 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
151 | CONFIG_BLOCK=y | 174 | CONFIG_BLOCK=y |
152 | CONFIG_LBD=y | 175 | CONFIG_LBDAF=y |
153 | # CONFIG_BLK_DEV_BSG is not set | 176 | # CONFIG_BLK_DEV_BSG is not set |
154 | # CONFIG_BLK_DEV_INTEGRITY is not set | 177 | # CONFIG_BLK_DEV_INTEGRITY is not set |
155 | 178 | ||
@@ -157,14 +180,41 @@ CONFIG_LBD=y | |||
157 | # IO Schedulers | 180 | # IO Schedulers |
158 | # | 181 | # |
159 | CONFIG_IOSCHED_NOOP=y | 182 | CONFIG_IOSCHED_NOOP=y |
160 | CONFIG_IOSCHED_AS=y | ||
161 | CONFIG_IOSCHED_DEADLINE=y | 183 | CONFIG_IOSCHED_DEADLINE=y |
162 | CONFIG_IOSCHED_CFQ=y | 184 | CONFIG_IOSCHED_CFQ=y |
163 | CONFIG_DEFAULT_AS=y | ||
164 | # CONFIG_DEFAULT_DEADLINE is not set | 185 | # CONFIG_DEFAULT_DEADLINE is not set |
165 | # CONFIG_DEFAULT_CFQ is not set | 186 | CONFIG_DEFAULT_CFQ=y |
166 | # CONFIG_DEFAULT_NOOP is not set | 187 | # CONFIG_DEFAULT_NOOP is not set |
167 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 188 | CONFIG_DEFAULT_IOSCHED="cfq" |
189 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
190 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
194 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
195 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
196 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
197 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
198 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
199 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
204 | CONFIG_INLINE_READ_UNLOCK=y | ||
205 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
206 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
207 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
208 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
213 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
214 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
215 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
216 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
217 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
168 | # CONFIG_FREEZER is not set | 218 | # CONFIG_FREEZER is not set |
169 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 219 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
170 | 220 | ||
@@ -186,6 +236,7 @@ CONFIG_SEQUOIA=y | |||
186 | # CONFIG_CANYONLANDS is not set | 236 | # CONFIG_CANYONLANDS is not set |
187 | # CONFIG_GLACIER is not set | 237 | # CONFIG_GLACIER is not set |
188 | # CONFIG_REDWOOD is not set | 238 | # CONFIG_REDWOOD is not set |
239 | # CONFIG_EIGER is not set | ||
189 | # CONFIG_YOSEMITE is not set | 240 | # CONFIG_YOSEMITE is not set |
190 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 241 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
191 | CONFIG_PPC44x_SIMPLE=y | 242 | CONFIG_PPC44x_SIMPLE=y |
@@ -228,10 +279,12 @@ CONFIG_BINFMT_ELF=y | |||
228 | # CONFIG_BINFMT_MISC is not set | 279 | # CONFIG_BINFMT_MISC is not set |
229 | # CONFIG_MATH_EMULATION is not set | 280 | # CONFIG_MATH_EMULATION is not set |
230 | # CONFIG_IOMMU_HELPER is not set | 281 | # CONFIG_IOMMU_HELPER is not set |
231 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 282 | # CONFIG_SWIOTLB is not set |
232 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
233 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
234 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
287 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
235 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
236 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
237 | CONFIG_SELECT_MEMORY_MODEL=y | 290 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -247,9 +300,8 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
247 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
248 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
249 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
250 | CONFIG_UNEVICTABLE_LRU=y | 303 | # CONFIG_KSM is not set |
251 | CONFIG_HAVE_MLOCK=y | 304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
252 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
253 | CONFIG_STDBINUTILS=y | 305 | CONFIG_STDBINUTILS=y |
254 | CONFIG_PPC_4K_PAGES=y | 306 | CONFIG_PPC_4K_PAGES=y |
255 | # CONFIG_PPC_16K_PAGES is not set | 307 | # CONFIG_PPC_16K_PAGES is not set |
@@ -293,11 +345,11 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
293 | # Default settings for advanced configuration options are used | 345 | # Default settings for advanced configuration options are used |
294 | # | 346 | # |
295 | CONFIG_LOWMEM_SIZE=0x30000000 | 347 | CONFIG_LOWMEM_SIZE=0x30000000 |
296 | CONFIG_LOWMEM_CAM_NUM=3 | ||
297 | CONFIG_PAGE_OFFSET=0xc0000000 | 348 | CONFIG_PAGE_OFFSET=0xc0000000 |
298 | CONFIG_KERNEL_START=0xc0000000 | 349 | CONFIG_KERNEL_START=0xc0000000 |
299 | CONFIG_PHYSICAL_START=0x00000000 | 350 | CONFIG_PHYSICAL_START=0x00000000 |
300 | CONFIG_TASK_SIZE=0xc0000000 | 351 | CONFIG_TASK_SIZE=0xc0000000 |
352 | CONFIG_CONSISTENT_SIZE=0x00200000 | ||
301 | CONFIG_NET=y | 353 | CONFIG_NET=y |
302 | 354 | ||
303 | # | 355 | # |
@@ -339,6 +391,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
339 | # CONFIG_NETFILTER is not set | 391 | # CONFIG_NETFILTER is not set |
340 | # CONFIG_IP_DCCP is not set | 392 | # CONFIG_IP_DCCP is not set |
341 | # CONFIG_IP_SCTP is not set | 393 | # CONFIG_IP_SCTP is not set |
394 | # CONFIG_RDS is not set | ||
342 | # CONFIG_TIPC is not set | 395 | # CONFIG_TIPC is not set |
343 | # CONFIG_ATM is not set | 396 | # CONFIG_ATM is not set |
344 | # CONFIG_BRIDGE is not set | 397 | # CONFIG_BRIDGE is not set |
@@ -353,6 +406,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
353 | # CONFIG_ECONET is not set | 406 | # CONFIG_ECONET is not set |
354 | # CONFIG_WAN_ROUTER is not set | 407 | # CONFIG_WAN_ROUTER is not set |
355 | # CONFIG_PHONET is not set | 408 | # CONFIG_PHONET is not set |
409 | # CONFIG_IEEE802154 is not set | ||
356 | # CONFIG_NET_SCHED is not set | 410 | # CONFIG_NET_SCHED is not set |
357 | # CONFIG_DCB is not set | 411 | # CONFIG_DCB is not set |
358 | 412 | ||
@@ -365,7 +419,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
365 | # CONFIG_IRDA is not set | 419 | # CONFIG_IRDA is not set |
366 | # CONFIG_BT is not set | 420 | # CONFIG_BT is not set |
367 | # CONFIG_AF_RXRPC is not set | 421 | # CONFIG_AF_RXRPC is not set |
368 | # CONFIG_WIRELESS is not set | 422 | CONFIG_WIRELESS=y |
423 | # CONFIG_CFG80211 is not set | ||
424 | # CONFIG_LIB80211 is not set | ||
425 | |||
426 | # | ||
427 | # CFG80211 needs to be enabled for MAC80211 | ||
428 | # | ||
369 | # CONFIG_WIMAX is not set | 429 | # CONFIG_WIMAX is not set |
370 | # CONFIG_RFKILL is not set | 430 | # CONFIG_RFKILL is not set |
371 | # CONFIG_NET_9P is not set | 431 | # CONFIG_NET_9P is not set |
@@ -378,6 +438,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
378 | # Generic Driver Options | 438 | # Generic Driver Options |
379 | # | 439 | # |
380 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 440 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
441 | # CONFIG_DEVTMPFS is not set | ||
381 | CONFIG_STANDALONE=y | 442 | CONFIG_STANDALONE=y |
382 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 443 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
383 | CONFIG_FW_LOADER=y | 444 | CONFIG_FW_LOADER=y |
@@ -390,9 +451,9 @@ CONFIG_CONNECTOR=y | |||
390 | CONFIG_PROC_EVENTS=y | 451 | CONFIG_PROC_EVENTS=y |
391 | CONFIG_MTD=y | 452 | CONFIG_MTD=y |
392 | # CONFIG_MTD_DEBUG is not set | 453 | # CONFIG_MTD_DEBUG is not set |
454 | # CONFIG_MTD_TESTS is not set | ||
393 | # CONFIG_MTD_CONCAT is not set | 455 | # CONFIG_MTD_CONCAT is not set |
394 | CONFIG_MTD_PARTITIONS=y | 456 | CONFIG_MTD_PARTITIONS=y |
395 | # CONFIG_MTD_TESTS is not set | ||
396 | # CONFIG_MTD_REDBOOT_PARTS is not set | 457 | # CONFIG_MTD_REDBOOT_PARTS is not set |
397 | CONFIG_MTD_CMDLINE_PARTS=y | 458 | CONFIG_MTD_CMDLINE_PARTS=y |
398 | CONFIG_MTD_OF_PARTS=y | 459 | CONFIG_MTD_OF_PARTS=y |
@@ -493,6 +554,7 @@ CONFIG_BLK_DEV=y | |||
493 | # CONFIG_BLK_DEV_UMEM is not set | 554 | # CONFIG_BLK_DEV_UMEM is not set |
494 | # CONFIG_BLK_DEV_COW_COMMON is not set | 555 | # CONFIG_BLK_DEV_COW_COMMON is not set |
495 | # CONFIG_BLK_DEV_LOOP is not set | 556 | # CONFIG_BLK_DEV_LOOP is not set |
557 | # CONFIG_BLK_DEV_DRBD is not set | ||
496 | # CONFIG_BLK_DEV_NBD is not set | 558 | # CONFIG_BLK_DEV_NBD is not set |
497 | # CONFIG_BLK_DEV_SX8 is not set | 559 | # CONFIG_BLK_DEV_SX8 is not set |
498 | CONFIG_BLK_DEV_RAM=y | 560 | CONFIG_BLK_DEV_RAM=y |
@@ -515,6 +577,7 @@ CONFIG_MISC_DEVICES=y | |||
515 | # EEPROM support | 577 | # EEPROM support |
516 | # | 578 | # |
517 | # CONFIG_EEPROM_93CX6 is not set | 579 | # CONFIG_EEPROM_93CX6 is not set |
580 | # CONFIG_CB710_CORE is not set | ||
518 | CONFIG_HAVE_IDE=y | 581 | CONFIG_HAVE_IDE=y |
519 | # CONFIG_IDE is not set | 582 | # CONFIG_IDE is not set |
520 | 583 | ||
@@ -534,14 +597,17 @@ CONFIG_HAVE_IDE=y | |||
534 | # | 597 | # |
535 | 598 | ||
536 | # | 599 | # |
537 | # Enable only one of the two stacks, unless you know what you are doing | 600 | # You can enable one or both FireWire driver stacks. |
601 | # | ||
602 | |||
603 | # | ||
604 | # See the help texts for more information. | ||
538 | # | 605 | # |
539 | # CONFIG_FIREWIRE is not set | 606 | # CONFIG_FIREWIRE is not set |
540 | # CONFIG_IEEE1394 is not set | 607 | # CONFIG_IEEE1394 is not set |
541 | # CONFIG_I2O is not set | 608 | # CONFIG_I2O is not set |
542 | # CONFIG_MACINTOSH_DRIVERS is not set | 609 | # CONFIG_MACINTOSH_DRIVERS is not set |
543 | CONFIG_NETDEVICES=y | 610 | CONFIG_NETDEVICES=y |
544 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
545 | # CONFIG_DUMMY is not set | 611 | # CONFIG_DUMMY is not set |
546 | # CONFIG_BONDING is not set | 612 | # CONFIG_BONDING is not set |
547 | # CONFIG_MACVLAN is not set | 613 | # CONFIG_MACVLAN is not set |
@@ -576,7 +642,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
576 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 642 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
577 | # CONFIG_NET_PCI is not set | 643 | # CONFIG_NET_PCI is not set |
578 | # CONFIG_B44 is not set | 644 | # CONFIG_B44 is not set |
645 | # CONFIG_KS8842 is not set | ||
646 | # CONFIG_KS8851_MLL is not set | ||
579 | # CONFIG_ATL2 is not set | 647 | # CONFIG_ATL2 is not set |
648 | # CONFIG_XILINX_EMACLITE is not set | ||
580 | CONFIG_NETDEV_1000=y | 649 | CONFIG_NETDEV_1000=y |
581 | # CONFIG_ACENIC is not set | 650 | # CONFIG_ACENIC is not set |
582 | # CONFIG_DL2K is not set | 651 | # CONFIG_DL2K is not set |
@@ -584,6 +653,7 @@ CONFIG_NETDEV_1000=y | |||
584 | # CONFIG_E1000E is not set | 653 | # CONFIG_E1000E is not set |
585 | # CONFIG_IP1000 is not set | 654 | # CONFIG_IP1000 is not set |
586 | # CONFIG_IGB is not set | 655 | # CONFIG_IGB is not set |
656 | # CONFIG_IGBVF is not set | ||
587 | # CONFIG_NS83820 is not set | 657 | # CONFIG_NS83820 is not set |
588 | # CONFIG_HAMACHI is not set | 658 | # CONFIG_HAMACHI is not set |
589 | # CONFIG_YELLOWFIN is not set | 659 | # CONFIG_YELLOWFIN is not set |
@@ -594,6 +664,9 @@ CONFIG_NETDEV_1000=y | |||
594 | # CONFIG_VIA_VELOCITY is not set | 664 | # CONFIG_VIA_VELOCITY is not set |
595 | # CONFIG_TIGON3 is not set | 665 | # CONFIG_TIGON3 is not set |
596 | # CONFIG_BNX2 is not set | 666 | # CONFIG_BNX2 is not set |
667 | # CONFIG_CNIC is not set | ||
668 | # CONFIG_MV643XX_ETH is not set | ||
669 | # CONFIG_XILINX_LL_TEMAC is not set | ||
597 | # CONFIG_QLA3XXX is not set | 670 | # CONFIG_QLA3XXX is not set |
598 | # CONFIG_ATL1 is not set | 671 | # CONFIG_ATL1 is not set |
599 | # CONFIG_ATL1E is not set | 672 | # CONFIG_ATL1E is not set |
@@ -619,12 +692,11 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
619 | # CONFIG_SFC is not set | 692 | # CONFIG_SFC is not set |
620 | # CONFIG_BE2NET is not set | 693 | # CONFIG_BE2NET is not set |
621 | # CONFIG_TR is not set | 694 | # CONFIG_TR is not set |
622 | 695 | CONFIG_WLAN=y | |
623 | # | 696 | # CONFIG_AIRO is not set |
624 | # Wireless LAN | 697 | # CONFIG_ATMEL is not set |
625 | # | 698 | # CONFIG_PRISM54 is not set |
626 | # CONFIG_WLAN_PRE80211 is not set | 699 | # CONFIG_HOSTAP is not set |
627 | # CONFIG_WLAN_80211 is not set | ||
628 | 700 | ||
629 | # | 701 | # |
630 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 702 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -637,6 +709,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
637 | # CONFIG_NETCONSOLE is not set | 709 | # CONFIG_NETCONSOLE is not set |
638 | # CONFIG_NETPOLL is not set | 710 | # CONFIG_NETPOLL is not set |
639 | # CONFIG_NET_POLL_CONTROLLER is not set | 711 | # CONFIG_NET_POLL_CONTROLLER is not set |
712 | # CONFIG_VMXNET3 is not set | ||
640 | # CONFIG_ISDN is not set | 713 | # CONFIG_ISDN is not set |
641 | # CONFIG_PHONE is not set | 714 | # CONFIG_PHONE is not set |
642 | 715 | ||
@@ -682,6 +755,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
682 | # CONFIG_SERIAL_JSM is not set | 755 | # CONFIG_SERIAL_JSM is not set |
683 | CONFIG_SERIAL_OF_PLATFORM=y | 756 | CONFIG_SERIAL_OF_PLATFORM=y |
684 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 757 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
758 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
685 | CONFIG_UNIX98_PTYS=y | 759 | CONFIG_UNIX98_PTYS=y |
686 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 760 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
687 | CONFIG_LEGACY_PTYS=y | 761 | CONFIG_LEGACY_PTYS=y |
@@ -698,6 +772,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
698 | CONFIG_DEVPORT=y | 772 | CONFIG_DEVPORT=y |
699 | # CONFIG_I2C is not set | 773 | # CONFIG_I2C is not set |
700 | # CONFIG_SPI is not set | 774 | # CONFIG_SPI is not set |
775 | |||
776 | # | ||
777 | # PPS support | ||
778 | # | ||
779 | # CONFIG_PPS is not set | ||
701 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 780 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
702 | # CONFIG_GPIOLIB is not set | 781 | # CONFIG_GPIOLIB is not set |
703 | # CONFIG_W1 is not set | 782 | # CONFIG_W1 is not set |
@@ -720,27 +799,13 @@ CONFIG_SSB_POSSIBLE=y | |||
720 | # CONFIG_HTC_PASIC3 is not set | 799 | # CONFIG_HTC_PASIC3 is not set |
721 | # CONFIG_MFD_TMIO is not set | 800 | # CONFIG_MFD_TMIO is not set |
722 | # CONFIG_REGULATOR is not set | 801 | # CONFIG_REGULATOR is not set |
723 | 802 | # CONFIG_MEDIA_SUPPORT is not set | |
724 | # | ||
725 | # Multimedia devices | ||
726 | # | ||
727 | |||
728 | # | ||
729 | # Multimedia core support | ||
730 | # | ||
731 | # CONFIG_VIDEO_DEV is not set | ||
732 | # CONFIG_DVB_CORE is not set | ||
733 | # CONFIG_VIDEO_MEDIA is not set | ||
734 | |||
735 | # | ||
736 | # Multimedia drivers | ||
737 | # | ||
738 | CONFIG_DAB=y | ||
739 | 803 | ||
740 | # | 804 | # |
741 | # Graphics support | 805 | # Graphics support |
742 | # | 806 | # |
743 | # CONFIG_AGP is not set | 807 | # CONFIG_AGP is not set |
808 | CONFIG_VGA_ARB=y | ||
744 | # CONFIG_DRM is not set | 809 | # CONFIG_DRM is not set |
745 | # CONFIG_VGASTATE is not set | 810 | # CONFIG_VGASTATE is not set |
746 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 811 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -783,6 +848,10 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
783 | # CONFIG_DMADEVICES is not set | 848 | # CONFIG_DMADEVICES is not set |
784 | # CONFIG_AUXDISPLAY is not set | 849 | # CONFIG_AUXDISPLAY is not set |
785 | # CONFIG_UIO is not set | 850 | # CONFIG_UIO is not set |
851 | |||
852 | # | ||
853 | # TI VLYNQ | ||
854 | # | ||
786 | # CONFIG_STAGING is not set | 855 | # CONFIG_STAGING is not set |
787 | 856 | ||
788 | # | 857 | # |
@@ -793,14 +862,17 @@ CONFIG_EXT2_FS=y | |||
793 | # CONFIG_EXT2_FS_XIP is not set | 862 | # CONFIG_EXT2_FS_XIP is not set |
794 | # CONFIG_EXT3_FS is not set | 863 | # CONFIG_EXT3_FS is not set |
795 | # CONFIG_EXT4_FS is not set | 864 | # CONFIG_EXT4_FS is not set |
865 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
796 | # CONFIG_REISERFS_FS is not set | 866 | # CONFIG_REISERFS_FS is not set |
797 | # CONFIG_JFS_FS is not set | 867 | # CONFIG_JFS_FS is not set |
798 | # CONFIG_FS_POSIX_ACL is not set | 868 | # CONFIG_FS_POSIX_ACL is not set |
799 | CONFIG_FILE_LOCKING=y | ||
800 | # CONFIG_XFS_FS is not set | 869 | # CONFIG_XFS_FS is not set |
801 | # CONFIG_GFS2_FS is not set | 870 | # CONFIG_GFS2_FS is not set |
802 | # CONFIG_OCFS2_FS is not set | 871 | # CONFIG_OCFS2_FS is not set |
803 | # CONFIG_BTRFS_FS is not set | 872 | # CONFIG_BTRFS_FS is not set |
873 | # CONFIG_NILFS2_FS is not set | ||
874 | CONFIG_FILE_LOCKING=y | ||
875 | CONFIG_FSNOTIFY=y | ||
804 | CONFIG_DNOTIFY=y | 876 | CONFIG_DNOTIFY=y |
805 | CONFIG_INOTIFY=y | 877 | CONFIG_INOTIFY=y |
806 | CONFIG_INOTIFY_USER=y | 878 | CONFIG_INOTIFY_USER=y |
@@ -916,6 +988,7 @@ CONFIG_HAS_IOPORT=y | |||
916 | CONFIG_HAS_DMA=y | 988 | CONFIG_HAS_DMA=y |
917 | CONFIG_HAVE_LMB=y | 989 | CONFIG_HAVE_LMB=y |
918 | CONFIG_NLATTR=y | 990 | CONFIG_NLATTR=y |
991 | CONFIG_GENERIC_ATOMIC64=y | ||
919 | 992 | ||
920 | # | 993 | # |
921 | # Kernel hacking | 994 | # Kernel hacking |
@@ -925,6 +998,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
925 | CONFIG_ENABLE_MUST_CHECK=y | 998 | CONFIG_ENABLE_MUST_CHECK=y |
926 | CONFIG_FRAME_WARN=1024 | 999 | CONFIG_FRAME_WARN=1024 |
927 | CONFIG_MAGIC_SYSRQ=y | 1000 | CONFIG_MAGIC_SYSRQ=y |
1001 | # CONFIG_STRIP_ASM_SYMS is not set | ||
928 | # CONFIG_UNUSED_SYMBOLS is not set | 1002 | # CONFIG_UNUSED_SYMBOLS is not set |
929 | CONFIG_DEBUG_FS=y | 1003 | CONFIG_DEBUG_FS=y |
930 | # CONFIG_HEADERS_CHECK is not set | 1004 | # CONFIG_HEADERS_CHECK is not set |
@@ -933,16 +1007,23 @@ CONFIG_DEBUG_KERNEL=y | |||
933 | CONFIG_DETECT_SOFTLOCKUP=y | 1007 | CONFIG_DETECT_SOFTLOCKUP=y |
934 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1008 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
935 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1009 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1010 | CONFIG_DETECT_HUNG_TASK=y | ||
1011 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1012 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
936 | CONFIG_SCHED_DEBUG=y | 1013 | CONFIG_SCHED_DEBUG=y |
937 | # CONFIG_SCHEDSTATS is not set | 1014 | # CONFIG_SCHEDSTATS is not set |
938 | # CONFIG_TIMER_STATS is not set | 1015 | # CONFIG_TIMER_STATS is not set |
939 | # CONFIG_DEBUG_OBJECTS is not set | 1016 | # CONFIG_DEBUG_OBJECTS is not set |
940 | # CONFIG_SLUB_DEBUG_ON is not set | 1017 | # CONFIG_SLUB_DEBUG_ON is not set |
941 | # CONFIG_SLUB_STATS is not set | 1018 | # CONFIG_SLUB_STATS is not set |
1019 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
942 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1020 | # CONFIG_DEBUG_RT_MUTEXES is not set |
943 | # CONFIG_RT_MUTEX_TESTER is not set | 1021 | # CONFIG_RT_MUTEX_TESTER is not set |
944 | # CONFIG_DEBUG_SPINLOCK is not set | 1022 | # CONFIG_DEBUG_SPINLOCK is not set |
945 | # CONFIG_DEBUG_MUTEXES is not set | 1023 | # CONFIG_DEBUG_MUTEXES is not set |
1024 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1025 | # CONFIG_PROVE_LOCKING is not set | ||
1026 | # CONFIG_LOCK_STAT is not set | ||
946 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1027 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
947 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1028 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
948 | # CONFIG_DEBUG_KOBJECT is not set | 1029 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -954,11 +1035,12 @@ CONFIG_SCHED_DEBUG=y | |||
954 | # CONFIG_DEBUG_LIST is not set | 1035 | # CONFIG_DEBUG_LIST is not set |
955 | # CONFIG_DEBUG_SG is not set | 1036 | # CONFIG_DEBUG_SG is not set |
956 | # CONFIG_DEBUG_NOTIFIERS is not set | 1037 | # CONFIG_DEBUG_NOTIFIERS is not set |
957 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1038 | # CONFIG_DEBUG_CREDENTIALS is not set |
958 | # CONFIG_RCU_TORTURE_TEST is not set | 1039 | # CONFIG_RCU_TORTURE_TEST is not set |
959 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1040 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
960 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1041 | # CONFIG_BACKTRACE_SELF_TEST is not set |
961 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1042 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1043 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
962 | # CONFIG_FAULT_INJECTION is not set | 1044 | # CONFIG_FAULT_INJECTION is not set |
963 | # CONFIG_LATENCYTOP is not set | 1045 | # CONFIG_LATENCYTOP is not set |
964 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1046 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -968,27 +1050,30 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | |||
968 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1050 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
969 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1051 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
970 | CONFIG_TRACING_SUPPORT=y | 1052 | CONFIG_TRACING_SUPPORT=y |
971 | 1053 | CONFIG_FTRACE=y | |
972 | # | ||
973 | # Tracers | ||
974 | # | ||
975 | # CONFIG_FUNCTION_TRACER is not set | 1054 | # CONFIG_FUNCTION_TRACER is not set |
1055 | # CONFIG_IRQSOFF_TRACER is not set | ||
976 | # CONFIG_SCHED_TRACER is not set | 1056 | # CONFIG_SCHED_TRACER is not set |
977 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1057 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
978 | # CONFIG_EVENT_TRACER is not set | ||
979 | # CONFIG_BOOT_TRACER is not set | 1058 | # CONFIG_BOOT_TRACER is not set |
980 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1059 | CONFIG_BRANCH_PROFILE_NONE=y |
1060 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1061 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
981 | # CONFIG_STACK_TRACER is not set | 1062 | # CONFIG_STACK_TRACER is not set |
982 | # CONFIG_KMEMTRACE is not set | 1063 | # CONFIG_KMEMTRACE is not set |
983 | # CONFIG_WORKQUEUE_TRACER is not set | 1064 | # CONFIG_WORKQUEUE_TRACER is not set |
984 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1065 | # CONFIG_BLK_DEV_IO_TRACE is not set |
985 | # CONFIG_DYNAMIC_DEBUG is not set | 1066 | # CONFIG_DYNAMIC_DEBUG is not set |
1067 | # CONFIG_DMA_API_DEBUG is not set | ||
986 | # CONFIG_SAMPLES is not set | 1068 | # CONFIG_SAMPLES is not set |
987 | CONFIG_HAVE_ARCH_KGDB=y | 1069 | CONFIG_HAVE_ARCH_KGDB=y |
988 | # CONFIG_KGDB is not set | 1070 | # CONFIG_KGDB is not set |
1071 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1072 | CONFIG_PPC_WERROR=y | ||
989 | CONFIG_PRINT_STACK_DEPTH=64 | 1073 | CONFIG_PRINT_STACK_DEPTH=64 |
990 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1074 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
991 | # CONFIG_DEBUG_STACK_USAGE is not set | 1075 | # CONFIG_DEBUG_STACK_USAGE is not set |
1076 | # CONFIG_PPC_EMULATED_STATS is not set | ||
992 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1077 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
993 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1078 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
994 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1079 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1004,13 +1089,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1004 | # CONFIG_KEYS is not set | 1089 | # CONFIG_KEYS is not set |
1005 | # CONFIG_SECURITY is not set | 1090 | # CONFIG_SECURITY is not set |
1006 | # CONFIG_SECURITYFS is not set | 1091 | # CONFIG_SECURITYFS is not set |
1007 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1092 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1093 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1094 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1095 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1096 | CONFIG_DEFAULT_SECURITY="" | ||
1008 | CONFIG_CRYPTO=y | 1097 | CONFIG_CRYPTO=y |
1009 | 1098 | ||
1010 | # | 1099 | # |
1011 | # Crypto core or helper | 1100 | # Crypto core or helper |
1012 | # | 1101 | # |
1013 | # CONFIG_CRYPTO_FIPS is not set | ||
1014 | CONFIG_CRYPTO_ALGAPI=y | 1102 | CONFIG_CRYPTO_ALGAPI=y |
1015 | CONFIG_CRYPTO_ALGAPI2=y | 1103 | CONFIG_CRYPTO_ALGAPI2=y |
1016 | CONFIG_CRYPTO_AEAD2=y | 1104 | CONFIG_CRYPTO_AEAD2=y |
@@ -1052,11 +1140,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1052 | # | 1140 | # |
1053 | # CONFIG_CRYPTO_HMAC is not set | 1141 | # CONFIG_CRYPTO_HMAC is not set |
1054 | # CONFIG_CRYPTO_XCBC is not set | 1142 | # CONFIG_CRYPTO_XCBC is not set |
1143 | # CONFIG_CRYPTO_VMAC is not set | ||
1055 | 1144 | ||
1056 | # | 1145 | # |
1057 | # Digest | 1146 | # Digest |
1058 | # | 1147 | # |
1059 | # CONFIG_CRYPTO_CRC32C is not set | 1148 | # CONFIG_CRYPTO_CRC32C is not set |
1149 | # CONFIG_CRYPTO_GHASH is not set | ||
1060 | # CONFIG_CRYPTO_MD4 is not set | 1150 | # CONFIG_CRYPTO_MD4 is not set |
1061 | CONFIG_CRYPTO_MD5=y | 1151 | CONFIG_CRYPTO_MD5=y |
1062 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1152 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
diff --git a/arch/powerpc/configs/44x/taishan_defconfig b/arch/powerpc/configs/44x/taishan_defconfig index ef32cc4f82eb..12041d355b8c 100644 --- a/arch/powerpc/configs/44x/taishan_defconfig +++ b/arch/powerpc/configs/44x/taishan_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jan 20 08:22:47 2009 | 4 | # Mon Jan 4 15:21:04 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -19,6 +19,7 @@ CONFIG_BOOKE=y | |||
19 | CONFIG_PTE_64BIT=y | 19 | CONFIG_PTE_64BIT=y |
20 | CONFIG_PHYS_64BIT=y | 20 | CONFIG_PHYS_64BIT=y |
21 | CONFIG_PPC_MMU_NOHASH=y | 21 | CONFIG_PPC_MMU_NOHASH=y |
22 | CONFIG_PPC_MMU_NOHASH_32=y | ||
22 | # CONFIG_PPC_MM_SLICES is not set | 23 | # CONFIG_PPC_MM_SLICES is not set |
23 | CONFIG_NOT_COHERENT_CACHE=y | 24 | CONFIG_NOT_COHERENT_CACHE=y |
24 | CONFIG_PPC32=y | 25 | CONFIG_PPC32=y |
@@ -30,15 +31,18 @@ CONFIG_GENERIC_TIME=y | |||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | 31 | CONFIG_GENERIC_TIME_VSYSCALL=y |
31 | CONFIG_GENERIC_CLOCKEVENTS=y | 32 | CONFIG_GENERIC_CLOCKEVENTS=y |
32 | CONFIG_GENERIC_HARDIRQS=y | 33 | CONFIG_GENERIC_HARDIRQS=y |
34 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 35 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
36 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
34 | CONFIG_IRQ_PER_CPU=y | 37 | CONFIG_IRQ_PER_CPU=y |
38 | CONFIG_NR_IRQS=512 | ||
35 | CONFIG_STACKTRACE_SUPPORT=y | 39 | CONFIG_STACKTRACE_SUPPORT=y |
36 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 40 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
41 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
37 | CONFIG_LOCKDEP_SUPPORT=y | 42 | CONFIG_LOCKDEP_SUPPORT=y |
38 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 43 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
39 | CONFIG_ARCH_HAS_ILOG2_U32=y | 44 | CONFIG_ARCH_HAS_ILOG2_U32=y |
40 | CONFIG_GENERIC_HWEIGHT=y | 45 | CONFIG_GENERIC_HWEIGHT=y |
41 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
42 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 46 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
43 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 47 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
44 | CONFIG_PPC=y | 48 | CONFIG_PPC=y |
@@ -52,11 +56,15 @@ CONFIG_PPC_UDBG_16550=y | |||
52 | # CONFIG_GENERIC_TBSYNC is not set | 56 | # CONFIG_GENERIC_TBSYNC is not set |
53 | CONFIG_AUDIT_ARCH=y | 57 | CONFIG_AUDIT_ARCH=y |
54 | CONFIG_GENERIC_BUG=y | 58 | CONFIG_GENERIC_BUG=y |
59 | CONFIG_DTC=y | ||
55 | # CONFIG_DEFAULT_UIMAGE is not set | 60 | # CONFIG_DEFAULT_UIMAGE is not set |
61 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
56 | CONFIG_PPC_DCR_NATIVE=y | 62 | CONFIG_PPC_DCR_NATIVE=y |
57 | # CONFIG_PPC_DCR_MMIO is not set | 63 | # CONFIG_PPC_DCR_MMIO is not set |
58 | CONFIG_PPC_DCR=y | 64 | CONFIG_PPC_DCR=y |
65 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
59 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 66 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
67 | CONFIG_CONSTRUCTORS=y | ||
60 | 68 | ||
61 | # | 69 | # |
62 | # General setup | 70 | # General setup |
@@ -70,9 +78,21 @@ CONFIG_SWAP=y | |||
70 | CONFIG_SYSVIPC=y | 78 | CONFIG_SYSVIPC=y |
71 | CONFIG_SYSVIPC_SYSCTL=y | 79 | CONFIG_SYSVIPC_SYSCTL=y |
72 | CONFIG_POSIX_MQUEUE=y | 80 | CONFIG_POSIX_MQUEUE=y |
81 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
73 | # CONFIG_BSD_PROCESS_ACCT is not set | 82 | # CONFIG_BSD_PROCESS_ACCT is not set |
74 | # CONFIG_TASKSTATS is not set | 83 | # CONFIG_TASKSTATS is not set |
75 | # CONFIG_AUDIT is not set | 84 | # CONFIG_AUDIT is not set |
85 | |||
86 | # | ||
87 | # RCU Subsystem | ||
88 | # | ||
89 | CONFIG_TREE_RCU=y | ||
90 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
91 | # CONFIG_TINY_RCU is not set | ||
92 | # CONFIG_RCU_TRACE is not set | ||
93 | CONFIG_RCU_FANOUT=32 | ||
94 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
95 | # CONFIG_TREE_RCU_TRACE is not set | ||
76 | # CONFIG_IKCONFIG is not set | 96 | # CONFIG_IKCONFIG is not set |
77 | CONFIG_LOG_BUF_SHIFT=14 | 97 | CONFIG_LOG_BUF_SHIFT=14 |
78 | CONFIG_GROUP_SCHED=y | 98 | CONFIG_GROUP_SCHED=y |
@@ -87,8 +107,12 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
87 | # CONFIG_NAMESPACES is not set | 107 | # CONFIG_NAMESPACES is not set |
88 | CONFIG_BLK_DEV_INITRD=y | 108 | CONFIG_BLK_DEV_INITRD=y |
89 | CONFIG_INITRAMFS_SOURCE="" | 109 | CONFIG_INITRAMFS_SOURCE="" |
110 | CONFIG_RD_GZIP=y | ||
111 | # CONFIG_RD_BZIP2 is not set | ||
112 | # CONFIG_RD_LZMA is not set | ||
90 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 113 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
91 | CONFIG_SYSCTL=y | 114 | CONFIG_SYSCTL=y |
115 | CONFIG_ANON_INODES=y | ||
92 | CONFIG_EMBEDDED=y | 116 | CONFIG_EMBEDDED=y |
93 | CONFIG_SYSCTL_SYSCALL=y | 117 | CONFIG_SYSCTL_SYSCALL=y |
94 | CONFIG_KALLSYMS=y | 118 | CONFIG_KALLSYMS=y |
@@ -98,19 +122,25 @@ CONFIG_HOTPLUG=y | |||
98 | CONFIG_PRINTK=y | 122 | CONFIG_PRINTK=y |
99 | CONFIG_BUG=y | 123 | CONFIG_BUG=y |
100 | CONFIG_ELF_CORE=y | 124 | CONFIG_ELF_CORE=y |
101 | CONFIG_COMPAT_BRK=y | ||
102 | CONFIG_BASE_FULL=y | 125 | CONFIG_BASE_FULL=y |
103 | CONFIG_FUTEX=y | 126 | CONFIG_FUTEX=y |
104 | CONFIG_ANON_INODES=y | ||
105 | CONFIG_EPOLL=y | 127 | CONFIG_EPOLL=y |
106 | CONFIG_SIGNALFD=y | 128 | CONFIG_SIGNALFD=y |
107 | CONFIG_TIMERFD=y | 129 | CONFIG_TIMERFD=y |
108 | CONFIG_EVENTFD=y | 130 | CONFIG_EVENTFD=y |
109 | CONFIG_SHMEM=y | 131 | CONFIG_SHMEM=y |
110 | CONFIG_AIO=y | 132 | CONFIG_AIO=y |
133 | CONFIG_HAVE_PERF_EVENTS=y | ||
134 | |||
135 | # | ||
136 | # Kernel Performance Events And Counters | ||
137 | # | ||
138 | # CONFIG_PERF_EVENTS is not set | ||
139 | # CONFIG_PERF_COUNTERS is not set | ||
111 | CONFIG_VM_EVENT_COUNTERS=y | 140 | CONFIG_VM_EVENT_COUNTERS=y |
112 | CONFIG_PCI_QUIRKS=y | 141 | CONFIG_PCI_QUIRKS=y |
113 | CONFIG_SLUB_DEBUG=y | 142 | CONFIG_SLUB_DEBUG=y |
143 | CONFIG_COMPAT_BRK=y | ||
114 | # CONFIG_SLAB is not set | 144 | # CONFIG_SLAB is not set |
115 | CONFIG_SLUB=y | 145 | CONFIG_SLUB=y |
116 | # CONFIG_SLOB is not set | 146 | # CONFIG_SLOB is not set |
@@ -122,6 +152,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
122 | CONFIG_HAVE_KPROBES=y | 152 | CONFIG_HAVE_KPROBES=y |
123 | CONFIG_HAVE_KRETPROBES=y | 153 | CONFIG_HAVE_KRETPROBES=y |
124 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 154 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
155 | CONFIG_HAVE_DMA_ATTRS=y | ||
156 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
157 | |||
158 | # | ||
159 | # GCOV-based kernel profiling | ||
160 | # | ||
161 | # CONFIG_GCOV_KERNEL is not set | ||
162 | # CONFIG_SLOW_WORK is not set | ||
125 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 163 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
126 | CONFIG_SLABINFO=y | 164 | CONFIG_SLABINFO=y |
127 | CONFIG_RT_MUTEXES=y | 165 | CONFIG_RT_MUTEXES=y |
@@ -133,8 +171,7 @@ CONFIG_MODULE_UNLOAD=y | |||
133 | # CONFIG_MODVERSIONS is not set | 171 | # CONFIG_MODVERSIONS is not set |
134 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 172 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
135 | CONFIG_BLOCK=y | 173 | CONFIG_BLOCK=y |
136 | CONFIG_LBD=y | 174 | CONFIG_LBDAF=y |
137 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
138 | # CONFIG_BLK_DEV_BSG is not set | 175 | # CONFIG_BLK_DEV_BSG is not set |
139 | # CONFIG_BLK_DEV_INTEGRITY is not set | 176 | # CONFIG_BLK_DEV_INTEGRITY is not set |
140 | 177 | ||
@@ -142,19 +179,41 @@ CONFIG_LBD=y | |||
142 | # IO Schedulers | 179 | # IO Schedulers |
143 | # | 180 | # |
144 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
145 | CONFIG_IOSCHED_AS=y | ||
146 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
147 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
148 | CONFIG_DEFAULT_AS=y | ||
149 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
150 | # CONFIG_DEFAULT_CFQ is not set | 185 | CONFIG_DEFAULT_CFQ=y |
151 | # CONFIG_DEFAULT_NOOP is not set | 186 | # CONFIG_DEFAULT_NOOP is not set |
152 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="cfq" |
153 | CONFIG_CLASSIC_RCU=y | 188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
154 | # CONFIG_TREE_RCU is not set | 189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
155 | # CONFIG_PREEMPT_RCU is not set | 190 | # CONFIG_INLINE_SPIN_LOCK is not set |
156 | # CONFIG_TREE_RCU_TRACE is not set | 191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
157 | # CONFIG_PREEMPT_RCU_TRACE is not set | 192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
158 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
159 | # CONFIG_PPC4xx_PCI_EXPRESS is not set | 218 | # CONFIG_PPC4xx_PCI_EXPRESS is not set |
160 | 219 | ||
@@ -175,6 +234,8 @@ CONFIG_TAISHAN=y | |||
175 | # CONFIG_ARCHES is not set | 234 | # CONFIG_ARCHES is not set |
176 | # CONFIG_CANYONLANDS is not set | 235 | # CONFIG_CANYONLANDS is not set |
177 | # CONFIG_GLACIER is not set | 236 | # CONFIG_GLACIER is not set |
237 | # CONFIG_REDWOOD is not set | ||
238 | # CONFIG_EIGER is not set | ||
178 | # CONFIG_YOSEMITE is not set | 239 | # CONFIG_YOSEMITE is not set |
179 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 240 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
180 | CONFIG_PPC44x_SIMPLE=y | 241 | CONFIG_PPC44x_SIMPLE=y |
@@ -216,10 +277,12 @@ CONFIG_BINFMT_ELF=y | |||
216 | # CONFIG_BINFMT_MISC is not set | 277 | # CONFIG_BINFMT_MISC is not set |
217 | # CONFIG_MATH_EMULATION is not set | 278 | # CONFIG_MATH_EMULATION is not set |
218 | # CONFIG_IOMMU_HELPER is not set | 279 | # CONFIG_IOMMU_HELPER is not set |
219 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 280 | # CONFIG_SWIOTLB is not set |
220 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
221 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 282 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
284 | CONFIG_SPARSE_IRQ=y | ||
285 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
223 | CONFIG_ARCH_FLATMEM_ENABLE=y | 286 | CONFIG_ARCH_FLATMEM_ENABLE=y |
224 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 287 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
225 | CONFIG_SELECT_MEMORY_MODEL=y | 288 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -235,10 +298,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
235 | CONFIG_ZONE_DMA_FLAG=1 | 298 | CONFIG_ZONE_DMA_FLAG=1 |
236 | CONFIG_BOUNCE=y | 299 | CONFIG_BOUNCE=y |
237 | CONFIG_VIRT_TO_BUS=y | 300 | CONFIG_VIRT_TO_BUS=y |
238 | CONFIG_UNEVICTABLE_LRU=y | 301 | # CONFIG_KSM is not set |
302 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
303 | CONFIG_STDBINUTILS=y | ||
239 | CONFIG_PPC_4K_PAGES=y | 304 | CONFIG_PPC_4K_PAGES=y |
240 | # CONFIG_PPC_16K_PAGES is not set | 305 | # CONFIG_PPC_16K_PAGES is not set |
241 | # CONFIG_PPC_64K_PAGES is not set | 306 | # CONFIG_PPC_64K_PAGES is not set |
307 | # CONFIG_PPC_256K_PAGES is not set | ||
242 | CONFIG_FORCE_MAX_ZONEORDER=11 | 308 | CONFIG_FORCE_MAX_ZONEORDER=11 |
243 | CONFIG_PROC_DEVICETREE=y | 309 | CONFIG_PROC_DEVICETREE=y |
244 | CONFIG_CMDLINE_BOOL=y | 310 | CONFIG_CMDLINE_BOOL=y |
@@ -263,6 +329,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
263 | # CONFIG_PCI_LEGACY is not set | 329 | # CONFIG_PCI_LEGACY is not set |
264 | # CONFIG_PCI_DEBUG is not set | 330 | # CONFIG_PCI_DEBUG is not set |
265 | # CONFIG_PCI_STUB is not set | 331 | # CONFIG_PCI_STUB is not set |
332 | # CONFIG_PCI_IOV is not set | ||
266 | # CONFIG_PCCARD is not set | 333 | # CONFIG_PCCARD is not set |
267 | # CONFIG_HOTPLUG_PCI is not set | 334 | # CONFIG_HOTPLUG_PCI is not set |
268 | # CONFIG_HAS_RAPIDIO is not set | 335 | # CONFIG_HAS_RAPIDIO is not set |
@@ -280,14 +347,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
280 | CONFIG_KERNEL_START=0xc0000000 | 347 | CONFIG_KERNEL_START=0xc0000000 |
281 | CONFIG_PHYSICAL_START=0x00000000 | 348 | CONFIG_PHYSICAL_START=0x00000000 |
282 | CONFIG_TASK_SIZE=0xc0000000 | 349 | CONFIG_TASK_SIZE=0xc0000000 |
283 | CONFIG_CONSISTENT_START=0xff100000 | ||
284 | CONFIG_CONSISTENT_SIZE=0x00200000 | 350 | CONFIG_CONSISTENT_SIZE=0x00200000 |
285 | CONFIG_NET=y | 351 | CONFIG_NET=y |
286 | 352 | ||
287 | # | 353 | # |
288 | # Networking options | 354 | # Networking options |
289 | # | 355 | # |
290 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
291 | CONFIG_PACKET=y | 356 | CONFIG_PACKET=y |
292 | # CONFIG_PACKET_MMAP is not set | 357 | # CONFIG_PACKET_MMAP is not set |
293 | CONFIG_UNIX=y | 358 | CONFIG_UNIX=y |
@@ -324,6 +389,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
324 | # CONFIG_NETFILTER is not set | 389 | # CONFIG_NETFILTER is not set |
325 | # CONFIG_IP_DCCP is not set | 390 | # CONFIG_IP_DCCP is not set |
326 | # CONFIG_IP_SCTP is not set | 391 | # CONFIG_IP_SCTP is not set |
392 | # CONFIG_RDS is not set | ||
327 | # CONFIG_TIPC is not set | 393 | # CONFIG_TIPC is not set |
328 | # CONFIG_ATM is not set | 394 | # CONFIG_ATM is not set |
329 | # CONFIG_BRIDGE is not set | 395 | # CONFIG_BRIDGE is not set |
@@ -337,6 +403,8 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
337 | # CONFIG_LAPB is not set | 403 | # CONFIG_LAPB is not set |
338 | # CONFIG_ECONET is not set | 404 | # CONFIG_ECONET is not set |
339 | # CONFIG_WAN_ROUTER is not set | 405 | # CONFIG_WAN_ROUTER is not set |
406 | # CONFIG_PHONET is not set | ||
407 | # CONFIG_IEEE802154 is not set | ||
340 | # CONFIG_NET_SCHED is not set | 408 | # CONFIG_NET_SCHED is not set |
341 | # CONFIG_DCB is not set | 409 | # CONFIG_DCB is not set |
342 | 410 | ||
@@ -349,8 +417,13 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
349 | # CONFIG_IRDA is not set | 417 | # CONFIG_IRDA is not set |
350 | # CONFIG_BT is not set | 418 | # CONFIG_BT is not set |
351 | # CONFIG_AF_RXRPC is not set | 419 | # CONFIG_AF_RXRPC is not set |
352 | # CONFIG_PHONET is not set | 420 | CONFIG_WIRELESS=y |
353 | # CONFIG_WIRELESS is not set | 421 | # CONFIG_CFG80211 is not set |
422 | # CONFIG_LIB80211 is not set | ||
423 | |||
424 | # | ||
425 | # CFG80211 needs to be enabled for MAC80211 | ||
426 | # | ||
354 | # CONFIG_WIMAX is not set | 427 | # CONFIG_WIMAX is not set |
355 | # CONFIG_RFKILL is not set | 428 | # CONFIG_RFKILL is not set |
356 | # CONFIG_NET_9P is not set | 429 | # CONFIG_NET_9P is not set |
@@ -363,6 +436,7 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
363 | # Generic Driver Options | 436 | # Generic Driver Options |
364 | # | 437 | # |
365 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 438 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
439 | # CONFIG_DEVTMPFS is not set | ||
366 | CONFIG_STANDALONE=y | 440 | CONFIG_STANDALONE=y |
367 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 441 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
368 | CONFIG_FW_LOADER=y | 442 | CONFIG_FW_LOADER=y |
@@ -375,9 +449,9 @@ CONFIG_CONNECTOR=y | |||
375 | CONFIG_PROC_EVENTS=y | 449 | CONFIG_PROC_EVENTS=y |
376 | CONFIG_MTD=y | 450 | CONFIG_MTD=y |
377 | # CONFIG_MTD_DEBUG is not set | 451 | # CONFIG_MTD_DEBUG is not set |
452 | # CONFIG_MTD_TESTS is not set | ||
378 | # CONFIG_MTD_CONCAT is not set | 453 | # CONFIG_MTD_CONCAT is not set |
379 | CONFIG_MTD_PARTITIONS=y | 454 | CONFIG_MTD_PARTITIONS=y |
380 | # CONFIG_MTD_TESTS is not set | ||
381 | # CONFIG_MTD_REDBOOT_PARTS is not set | 455 | # CONFIG_MTD_REDBOOT_PARTS is not set |
382 | CONFIG_MTD_CMDLINE_PARTS=y | 456 | CONFIG_MTD_CMDLINE_PARTS=y |
383 | # CONFIG_MTD_OF_PARTS is not set | 457 | # CONFIG_MTD_OF_PARTS is not set |
@@ -453,7 +527,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
453 | # LPDDR flash memory drivers | 527 | # LPDDR flash memory drivers |
454 | # | 528 | # |
455 | # CONFIG_MTD_LPDDR is not set | 529 | # CONFIG_MTD_LPDDR is not set |
456 | # CONFIG_MTD_QINFO_PROBE is not set | ||
457 | 530 | ||
458 | # | 531 | # |
459 | # UBI - Unsorted block images | 532 | # UBI - Unsorted block images |
@@ -469,6 +542,7 @@ CONFIG_BLK_DEV=y | |||
469 | # CONFIG_BLK_DEV_UMEM is not set | 542 | # CONFIG_BLK_DEV_UMEM is not set |
470 | # CONFIG_BLK_DEV_COW_COMMON is not set | 543 | # CONFIG_BLK_DEV_COW_COMMON is not set |
471 | # CONFIG_BLK_DEV_LOOP is not set | 544 | # CONFIG_BLK_DEV_LOOP is not set |
545 | # CONFIG_BLK_DEV_DRBD is not set | ||
472 | # CONFIG_BLK_DEV_NBD is not set | 546 | # CONFIG_BLK_DEV_NBD is not set |
473 | # CONFIG_BLK_DEV_SX8 is not set | 547 | # CONFIG_BLK_DEV_SX8 is not set |
474 | CONFIG_BLK_DEV_RAM=y | 548 | CONFIG_BLK_DEV_RAM=y |
@@ -481,12 +555,17 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
481 | # CONFIG_BLK_DEV_HD is not set | 555 | # CONFIG_BLK_DEV_HD is not set |
482 | CONFIG_MISC_DEVICES=y | 556 | CONFIG_MISC_DEVICES=y |
483 | # CONFIG_PHANTOM is not set | 557 | # CONFIG_PHANTOM is not set |
484 | # CONFIG_EEPROM_93CX6 is not set | ||
485 | # CONFIG_SGI_IOC4 is not set | 558 | # CONFIG_SGI_IOC4 is not set |
486 | # CONFIG_TIFM_CORE is not set | 559 | # CONFIG_TIFM_CORE is not set |
487 | # CONFIG_ENCLOSURE_SERVICES is not set | 560 | # CONFIG_ENCLOSURE_SERVICES is not set |
488 | # CONFIG_HP_ILO is not set | 561 | # CONFIG_HP_ILO is not set |
489 | # CONFIG_C2PORT is not set | 562 | # CONFIG_C2PORT is not set |
563 | |||
564 | # | ||
565 | # EEPROM support | ||
566 | # | ||
567 | # CONFIG_EEPROM_93CX6 is not set | ||
568 | # CONFIG_CB710_CORE is not set | ||
490 | CONFIG_HAVE_IDE=y | 569 | CONFIG_HAVE_IDE=y |
491 | # CONFIG_IDE is not set | 570 | # CONFIG_IDE is not set |
492 | 571 | ||
@@ -506,7 +585,11 @@ CONFIG_HAVE_IDE=y | |||
506 | # | 585 | # |
507 | 586 | ||
508 | # | 587 | # |
509 | # Enable only one of the two stacks, unless you know what you are doing | 588 | # You can enable one or both FireWire driver stacks. |
589 | # | ||
590 | |||
591 | # | ||
592 | # See the help texts for more information. | ||
510 | # | 593 | # |
511 | # CONFIG_FIREWIRE is not set | 594 | # CONFIG_FIREWIRE is not set |
512 | # CONFIG_IEEE1394 is not set | 595 | # CONFIG_IEEE1394 is not set |
@@ -529,6 +612,8 @@ CONFIG_NET_ETHERNET=y | |||
529 | # CONFIG_SUNGEM is not set | 612 | # CONFIG_SUNGEM is not set |
530 | # CONFIG_CASSINI is not set | 613 | # CONFIG_CASSINI is not set |
531 | # CONFIG_NET_VENDOR_3COM is not set | 614 | # CONFIG_NET_VENDOR_3COM is not set |
615 | # CONFIG_ETHOC is not set | ||
616 | # CONFIG_DNET is not set | ||
532 | # CONFIG_NET_TULIP is not set | 617 | # CONFIG_NET_TULIP is not set |
533 | # CONFIG_HP100 is not set | 618 | # CONFIG_HP100 is not set |
534 | CONFIG_IBM_NEW_EMAC=y | 619 | CONFIG_IBM_NEW_EMAC=y |
@@ -547,7 +632,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
547 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 632 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
548 | # CONFIG_NET_PCI is not set | 633 | # CONFIG_NET_PCI is not set |
549 | # CONFIG_B44 is not set | 634 | # CONFIG_B44 is not set |
635 | # CONFIG_KS8842 is not set | ||
636 | # CONFIG_KS8851_MLL is not set | ||
550 | # CONFIG_ATL2 is not set | 637 | # CONFIG_ATL2 is not set |
638 | # CONFIG_XILINX_EMACLITE is not set | ||
551 | CONFIG_NETDEV_1000=y | 639 | CONFIG_NETDEV_1000=y |
552 | # CONFIG_ACENIC is not set | 640 | # CONFIG_ACENIC is not set |
553 | # CONFIG_DL2K is not set | 641 | # CONFIG_DL2K is not set |
@@ -555,6 +643,7 @@ CONFIG_NETDEV_1000=y | |||
555 | # CONFIG_E1000E is not set | 643 | # CONFIG_E1000E is not set |
556 | # CONFIG_IP1000 is not set | 644 | # CONFIG_IP1000 is not set |
557 | # CONFIG_IGB is not set | 645 | # CONFIG_IGB is not set |
646 | # CONFIG_IGBVF is not set | ||
558 | # CONFIG_NS83820 is not set | 647 | # CONFIG_NS83820 is not set |
559 | # CONFIG_HAMACHI is not set | 648 | # CONFIG_HAMACHI is not set |
560 | # CONFIG_YELLOWFIN is not set | 649 | # CONFIG_YELLOWFIN is not set |
@@ -565,9 +654,13 @@ CONFIG_NETDEV_1000=y | |||
565 | # CONFIG_VIA_VELOCITY is not set | 654 | # CONFIG_VIA_VELOCITY is not set |
566 | # CONFIG_TIGON3 is not set | 655 | # CONFIG_TIGON3 is not set |
567 | # CONFIG_BNX2 is not set | 656 | # CONFIG_BNX2 is not set |
657 | # CONFIG_CNIC is not set | ||
658 | # CONFIG_MV643XX_ETH is not set | ||
659 | # CONFIG_XILINX_LL_TEMAC is not set | ||
568 | # CONFIG_QLA3XXX is not set | 660 | # CONFIG_QLA3XXX is not set |
569 | # CONFIG_ATL1 is not set | 661 | # CONFIG_ATL1 is not set |
570 | # CONFIG_ATL1E is not set | 662 | # CONFIG_ATL1E is not set |
663 | # CONFIG_ATL1C is not set | ||
571 | # CONFIG_JME is not set | 664 | # CONFIG_JME is not set |
572 | CONFIG_NETDEV_10000=y | 665 | CONFIG_NETDEV_10000=y |
573 | # CONFIG_CHELSIO_T1 is not set | 666 | # CONFIG_CHELSIO_T1 is not set |
@@ -577,6 +670,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
577 | # CONFIG_IXGBE is not set | 670 | # CONFIG_IXGBE is not set |
578 | # CONFIG_IXGB is not set | 671 | # CONFIG_IXGB is not set |
579 | # CONFIG_S2IO is not set | 672 | # CONFIG_S2IO is not set |
673 | # CONFIG_VXGE is not set | ||
580 | # CONFIG_MYRI10GE is not set | 674 | # CONFIG_MYRI10GE is not set |
581 | # CONFIG_NETXEN_NIC is not set | 675 | # CONFIG_NETXEN_NIC is not set |
582 | # CONFIG_NIU is not set | 676 | # CONFIG_NIU is not set |
@@ -586,14 +680,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
586 | # CONFIG_BNX2X is not set | 680 | # CONFIG_BNX2X is not set |
587 | # CONFIG_QLGE is not set | 681 | # CONFIG_QLGE is not set |
588 | # CONFIG_SFC is not set | 682 | # CONFIG_SFC is not set |
683 | # CONFIG_BE2NET is not set | ||
589 | # CONFIG_TR is not set | 684 | # CONFIG_TR is not set |
590 | 685 | CONFIG_WLAN=y | |
591 | # | 686 | # CONFIG_AIRO is not set |
592 | # Wireless LAN | 687 | # CONFIG_ATMEL is not set |
593 | # | 688 | # CONFIG_PRISM54 is not set |
594 | # CONFIG_WLAN_PRE80211 is not set | 689 | # CONFIG_HOSTAP is not set |
595 | # CONFIG_WLAN_80211 is not set | ||
596 | # CONFIG_IWLWIFI_LEDS is not set | ||
597 | 690 | ||
598 | # | 691 | # |
599 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 692 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -606,6 +699,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
606 | # CONFIG_NETCONSOLE is not set | 699 | # CONFIG_NETCONSOLE is not set |
607 | # CONFIG_NETPOLL is not set | 700 | # CONFIG_NETPOLL is not set |
608 | # CONFIG_NET_POLL_CONTROLLER is not set | 701 | # CONFIG_NET_POLL_CONTROLLER is not set |
702 | # CONFIG_VMXNET3 is not set | ||
609 | # CONFIG_ISDN is not set | 703 | # CONFIG_ISDN is not set |
610 | # CONFIG_PHONE is not set | 704 | # CONFIG_PHONE is not set |
611 | 705 | ||
@@ -651,6 +745,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
651 | # CONFIG_SERIAL_JSM is not set | 745 | # CONFIG_SERIAL_JSM is not set |
652 | CONFIG_SERIAL_OF_PLATFORM=y | 746 | CONFIG_SERIAL_OF_PLATFORM=y |
653 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 747 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
748 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
654 | CONFIG_UNIX98_PTYS=y | 749 | CONFIG_UNIX98_PTYS=y |
655 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 750 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
656 | CONFIG_LEGACY_PTYS=y | 751 | CONFIG_LEGACY_PTYS=y |
@@ -667,6 +762,11 @@ CONFIG_LEGACY_PTY_COUNT=256 | |||
667 | CONFIG_DEVPORT=y | 762 | CONFIG_DEVPORT=y |
668 | # CONFIG_I2C is not set | 763 | # CONFIG_I2C is not set |
669 | # CONFIG_SPI is not set | 764 | # CONFIG_SPI is not set |
765 | |||
766 | # | ||
767 | # PPS support | ||
768 | # | ||
769 | # CONFIG_PPS is not set | ||
670 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 770 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
671 | # CONFIG_GPIOLIB is not set | 771 | # CONFIG_GPIOLIB is not set |
672 | # CONFIG_W1 is not set | 772 | # CONFIG_W1 is not set |
@@ -689,27 +789,13 @@ CONFIG_SSB_POSSIBLE=y | |||
689 | # CONFIG_HTC_PASIC3 is not set | 789 | # CONFIG_HTC_PASIC3 is not set |
690 | # CONFIG_MFD_TMIO is not set | 790 | # CONFIG_MFD_TMIO is not set |
691 | # CONFIG_REGULATOR is not set | 791 | # CONFIG_REGULATOR is not set |
692 | 792 | # CONFIG_MEDIA_SUPPORT is not set | |
693 | # | ||
694 | # Multimedia devices | ||
695 | # | ||
696 | |||
697 | # | ||
698 | # Multimedia core support | ||
699 | # | ||
700 | # CONFIG_VIDEO_DEV is not set | ||
701 | # CONFIG_DVB_CORE is not set | ||
702 | # CONFIG_VIDEO_MEDIA is not set | ||
703 | |||
704 | # | ||
705 | # Multimedia drivers | ||
706 | # | ||
707 | CONFIG_DAB=y | ||
708 | 793 | ||
709 | # | 794 | # |
710 | # Graphics support | 795 | # Graphics support |
711 | # | 796 | # |
712 | # CONFIG_AGP is not set | 797 | # CONFIG_AGP is not set |
798 | CONFIG_VGA_ARB=y | ||
713 | # CONFIG_DRM is not set | 799 | # CONFIG_DRM is not set |
714 | # CONFIG_VGASTATE is not set | 800 | # CONFIG_VGASTATE is not set |
715 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 801 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -734,7 +820,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
734 | # | 820 | # |
735 | 821 | ||
736 | # | 822 | # |
737 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 823 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
738 | # | 824 | # |
739 | # CONFIG_USB_GADGET is not set | 825 | # CONFIG_USB_GADGET is not set |
740 | 826 | ||
@@ -750,7 +836,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
750 | # CONFIG_EDAC is not set | 836 | # CONFIG_EDAC is not set |
751 | # CONFIG_RTC_CLASS is not set | 837 | # CONFIG_RTC_CLASS is not set |
752 | # CONFIG_DMADEVICES is not set | 838 | # CONFIG_DMADEVICES is not set |
839 | # CONFIG_AUXDISPLAY is not set | ||
753 | # CONFIG_UIO is not set | 840 | # CONFIG_UIO is not set |
841 | |||
842 | # | ||
843 | # TI VLYNQ | ||
844 | # | ||
754 | # CONFIG_STAGING is not set | 845 | # CONFIG_STAGING is not set |
755 | 846 | ||
756 | # | 847 | # |
@@ -761,14 +852,17 @@ CONFIG_EXT2_FS=y | |||
761 | # CONFIG_EXT2_FS_XIP is not set | 852 | # CONFIG_EXT2_FS_XIP is not set |
762 | # CONFIG_EXT3_FS is not set | 853 | # CONFIG_EXT3_FS is not set |
763 | # CONFIG_EXT4_FS is not set | 854 | # CONFIG_EXT4_FS is not set |
855 | CONFIG_EXT4_USE_FOR_EXT23=y | ||
764 | # CONFIG_REISERFS_FS is not set | 856 | # CONFIG_REISERFS_FS is not set |
765 | # CONFIG_JFS_FS is not set | 857 | # CONFIG_JFS_FS is not set |
766 | # CONFIG_FS_POSIX_ACL is not set | 858 | # CONFIG_FS_POSIX_ACL is not set |
767 | CONFIG_FILE_LOCKING=y | ||
768 | # CONFIG_XFS_FS is not set | 859 | # CONFIG_XFS_FS is not set |
769 | # CONFIG_GFS2_FS is not set | 860 | # CONFIG_GFS2_FS is not set |
770 | # CONFIG_OCFS2_FS is not set | 861 | # CONFIG_OCFS2_FS is not set |
771 | # CONFIG_BTRFS_FS is not set | 862 | # CONFIG_BTRFS_FS is not set |
863 | # CONFIG_NILFS2_FS is not set | ||
864 | CONFIG_FILE_LOCKING=y | ||
865 | CONFIG_FSNOTIFY=y | ||
772 | CONFIG_DNOTIFY=y | 866 | CONFIG_DNOTIFY=y |
773 | CONFIG_INOTIFY=y | 867 | CONFIG_INOTIFY=y |
774 | CONFIG_INOTIFY_USER=y | 868 | CONFIG_INOTIFY_USER=y |
@@ -778,6 +872,11 @@ CONFIG_INOTIFY_USER=y | |||
778 | # CONFIG_FUSE_FS is not set | 872 | # CONFIG_FUSE_FS is not set |
779 | 873 | ||
780 | # | 874 | # |
875 | # Caches | ||
876 | # | ||
877 | # CONFIG_FSCACHE is not set | ||
878 | |||
879 | # | ||
781 | # CD-ROM/DVD Filesystems | 880 | # CD-ROM/DVD Filesystems |
782 | # | 881 | # |
783 | # CONFIG_ISO9660_FS is not set | 882 | # CONFIG_ISO9660_FS is not set |
@@ -832,7 +931,6 @@ CONFIG_LOCKD=y | |||
832 | CONFIG_LOCKD_V4=y | 931 | CONFIG_LOCKD_V4=y |
833 | CONFIG_NFS_COMMON=y | 932 | CONFIG_NFS_COMMON=y |
834 | CONFIG_SUNRPC=y | 933 | CONFIG_SUNRPC=y |
835 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
836 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 934 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
837 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 935 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
838 | # CONFIG_SMB_FS is not set | 936 | # CONFIG_SMB_FS is not set |
@@ -848,6 +946,7 @@ CONFIG_SUNRPC=y | |||
848 | CONFIG_MSDOS_PARTITION=y | 946 | CONFIG_MSDOS_PARTITION=y |
849 | # CONFIG_NLS is not set | 947 | # CONFIG_NLS is not set |
850 | # CONFIG_DLM is not set | 948 | # CONFIG_DLM is not set |
949 | # CONFIG_BINARY_PRINTF is not set | ||
851 | 950 | ||
852 | # | 951 | # |
853 | # Library routines | 952 | # Library routines |
@@ -862,11 +961,13 @@ CONFIG_CRC32=y | |||
862 | # CONFIG_CRC7 is not set | 961 | # CONFIG_CRC7 is not set |
863 | # CONFIG_LIBCRC32C is not set | 962 | # CONFIG_LIBCRC32C is not set |
864 | CONFIG_ZLIB_INFLATE=y | 963 | CONFIG_ZLIB_INFLATE=y |
865 | CONFIG_PLIST=y | 964 | CONFIG_DECOMPRESS_GZIP=y |
866 | CONFIG_HAS_IOMEM=y | 965 | CONFIG_HAS_IOMEM=y |
867 | CONFIG_HAS_IOPORT=y | 966 | CONFIG_HAS_IOPORT=y |
868 | CONFIG_HAS_DMA=y | 967 | CONFIG_HAS_DMA=y |
869 | CONFIG_HAVE_LMB=y | 968 | CONFIG_HAVE_LMB=y |
969 | CONFIG_NLATTR=y | ||
970 | CONFIG_GENERIC_ATOMIC64=y | ||
870 | 971 | ||
871 | # | 972 | # |
872 | # Kernel hacking | 973 | # Kernel hacking |
@@ -876,6 +977,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
876 | CONFIG_ENABLE_MUST_CHECK=y | 977 | CONFIG_ENABLE_MUST_CHECK=y |
877 | CONFIG_FRAME_WARN=1024 | 978 | CONFIG_FRAME_WARN=1024 |
878 | CONFIG_MAGIC_SYSRQ=y | 979 | CONFIG_MAGIC_SYSRQ=y |
980 | # CONFIG_STRIP_ASM_SYMS is not set | ||
879 | # CONFIG_UNUSED_SYMBOLS is not set | 981 | # CONFIG_UNUSED_SYMBOLS is not set |
880 | CONFIG_DEBUG_FS=y | 982 | CONFIG_DEBUG_FS=y |
881 | # CONFIG_HEADERS_CHECK is not set | 983 | # CONFIG_HEADERS_CHECK is not set |
@@ -884,16 +986,23 @@ CONFIG_DEBUG_KERNEL=y | |||
884 | CONFIG_DETECT_SOFTLOCKUP=y | 986 | CONFIG_DETECT_SOFTLOCKUP=y |
885 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 987 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
886 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 988 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
989 | CONFIG_DETECT_HUNG_TASK=y | ||
990 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
991 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
887 | CONFIG_SCHED_DEBUG=y | 992 | CONFIG_SCHED_DEBUG=y |
888 | # CONFIG_SCHEDSTATS is not set | 993 | # CONFIG_SCHEDSTATS is not set |
889 | # CONFIG_TIMER_STATS is not set | 994 | # CONFIG_TIMER_STATS is not set |
890 | # CONFIG_DEBUG_OBJECTS is not set | 995 | # CONFIG_DEBUG_OBJECTS is not set |
891 | # CONFIG_SLUB_DEBUG_ON is not set | 996 | # CONFIG_SLUB_DEBUG_ON is not set |
892 | # CONFIG_SLUB_STATS is not set | 997 | # CONFIG_SLUB_STATS is not set |
998 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
893 | # CONFIG_DEBUG_RT_MUTEXES is not set | 999 | # CONFIG_DEBUG_RT_MUTEXES is not set |
894 | # CONFIG_RT_MUTEX_TESTER is not set | 1000 | # CONFIG_RT_MUTEX_TESTER is not set |
895 | # CONFIG_DEBUG_SPINLOCK is not set | 1001 | # CONFIG_DEBUG_SPINLOCK is not set |
896 | # CONFIG_DEBUG_MUTEXES is not set | 1002 | # CONFIG_DEBUG_MUTEXES is not set |
1003 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1004 | # CONFIG_PROVE_LOCKING is not set | ||
1005 | # CONFIG_LOCK_STAT is not set | ||
897 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1006 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
898 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1007 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
899 | # CONFIG_DEBUG_KOBJECT is not set | 1008 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -905,35 +1014,45 @@ CONFIG_SCHED_DEBUG=y | |||
905 | # CONFIG_DEBUG_LIST is not set | 1014 | # CONFIG_DEBUG_LIST is not set |
906 | # CONFIG_DEBUG_SG is not set | 1015 | # CONFIG_DEBUG_SG is not set |
907 | # CONFIG_DEBUG_NOTIFIERS is not set | 1016 | # CONFIG_DEBUG_NOTIFIERS is not set |
908 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1017 | # CONFIG_DEBUG_CREDENTIALS is not set |
909 | # CONFIG_RCU_TORTURE_TEST is not set | 1018 | # CONFIG_RCU_TORTURE_TEST is not set |
910 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1019 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
911 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1020 | # CONFIG_BACKTRACE_SELF_TEST is not set |
912 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1021 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1022 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
913 | # CONFIG_FAULT_INJECTION is not set | 1023 | # CONFIG_FAULT_INJECTION is not set |
914 | # CONFIG_LATENCYTOP is not set | 1024 | # CONFIG_LATENCYTOP is not set |
915 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1025 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1026 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
916 | CONFIG_HAVE_FUNCTION_TRACER=y | 1027 | CONFIG_HAVE_FUNCTION_TRACER=y |
1028 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
917 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1029 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
918 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1030 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
919 | 1031 | CONFIG_TRACING_SUPPORT=y | |
920 | # | 1032 | CONFIG_FTRACE=y |
921 | # Tracers | ||
922 | # | ||
923 | # CONFIG_FUNCTION_TRACER is not set | 1033 | # CONFIG_FUNCTION_TRACER is not set |
1034 | # CONFIG_IRQSOFF_TRACER is not set | ||
924 | # CONFIG_SCHED_TRACER is not set | 1035 | # CONFIG_SCHED_TRACER is not set |
925 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1036 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
926 | # CONFIG_BOOT_TRACER is not set | 1037 | # CONFIG_BOOT_TRACER is not set |
927 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1038 | CONFIG_BRANCH_PROFILE_NONE=y |
1039 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1040 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
928 | # CONFIG_STACK_TRACER is not set | 1041 | # CONFIG_STACK_TRACER is not set |
929 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1042 | # CONFIG_KMEMTRACE is not set |
1043 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1044 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1045 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1046 | # CONFIG_DMA_API_DEBUG is not set | ||
930 | # CONFIG_SAMPLES is not set | 1047 | # CONFIG_SAMPLES is not set |
931 | CONFIG_HAVE_ARCH_KGDB=y | 1048 | CONFIG_HAVE_ARCH_KGDB=y |
932 | # CONFIG_KGDB is not set | 1049 | # CONFIG_KGDB is not set |
1050 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1051 | CONFIG_PPC_WERROR=y | ||
933 | CONFIG_PRINT_STACK_DEPTH=64 | 1052 | CONFIG_PRINT_STACK_DEPTH=64 |
934 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1053 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
935 | # CONFIG_DEBUG_STACK_USAGE is not set | 1054 | # CONFIG_DEBUG_STACK_USAGE is not set |
936 | # CONFIG_DEBUG_PAGEALLOC is not set | 1055 | # CONFIG_PPC_EMULATED_STATS is not set |
937 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1056 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
938 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1057 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
939 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1058 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -949,13 +1068,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
949 | # CONFIG_KEYS is not set | 1068 | # CONFIG_KEYS is not set |
950 | # CONFIG_SECURITY is not set | 1069 | # CONFIG_SECURITY is not set |
951 | # CONFIG_SECURITYFS is not set | 1070 | # CONFIG_SECURITYFS is not set |
952 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1071 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1072 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1073 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1074 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1075 | CONFIG_DEFAULT_SECURITY="" | ||
953 | CONFIG_CRYPTO=y | 1076 | CONFIG_CRYPTO=y |
954 | 1077 | ||
955 | # | 1078 | # |
956 | # Crypto core or helper | 1079 | # Crypto core or helper |
957 | # | 1080 | # |
958 | # CONFIG_CRYPTO_FIPS is not set | ||
959 | CONFIG_CRYPTO_ALGAPI=y | 1081 | CONFIG_CRYPTO_ALGAPI=y |
960 | CONFIG_CRYPTO_ALGAPI2=y | 1082 | CONFIG_CRYPTO_ALGAPI2=y |
961 | CONFIG_CRYPTO_AEAD2=y | 1083 | CONFIG_CRYPTO_AEAD2=y |
@@ -964,10 +1086,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
964 | CONFIG_CRYPTO_HASH=y | 1086 | CONFIG_CRYPTO_HASH=y |
965 | CONFIG_CRYPTO_HASH2=y | 1087 | CONFIG_CRYPTO_HASH2=y |
966 | CONFIG_CRYPTO_RNG2=y | 1088 | CONFIG_CRYPTO_RNG2=y |
1089 | CONFIG_CRYPTO_PCOMP=y | ||
967 | CONFIG_CRYPTO_MANAGER=y | 1090 | CONFIG_CRYPTO_MANAGER=y |
968 | CONFIG_CRYPTO_MANAGER2=y | 1091 | CONFIG_CRYPTO_MANAGER2=y |
969 | # CONFIG_CRYPTO_GF128MUL is not set | 1092 | # CONFIG_CRYPTO_GF128MUL is not set |
970 | # CONFIG_CRYPTO_NULL is not set | 1093 | # CONFIG_CRYPTO_NULL is not set |
1094 | CONFIG_CRYPTO_WORKQUEUE=y | ||
971 | # CONFIG_CRYPTO_CRYPTD is not set | 1095 | # CONFIG_CRYPTO_CRYPTD is not set |
972 | # CONFIG_CRYPTO_AUTHENC is not set | 1096 | # CONFIG_CRYPTO_AUTHENC is not set |
973 | # CONFIG_CRYPTO_TEST is not set | 1097 | # CONFIG_CRYPTO_TEST is not set |
@@ -995,11 +1119,13 @@ CONFIG_CRYPTO_PCBC=y | |||
995 | # | 1119 | # |
996 | # CONFIG_CRYPTO_HMAC is not set | 1120 | # CONFIG_CRYPTO_HMAC is not set |
997 | # CONFIG_CRYPTO_XCBC is not set | 1121 | # CONFIG_CRYPTO_XCBC is not set |
1122 | # CONFIG_CRYPTO_VMAC is not set | ||
998 | 1123 | ||
999 | # | 1124 | # |
1000 | # Digest | 1125 | # Digest |
1001 | # | 1126 | # |
1002 | # CONFIG_CRYPTO_CRC32C is not set | 1127 | # CONFIG_CRYPTO_CRC32C is not set |
1128 | # CONFIG_CRYPTO_GHASH is not set | ||
1003 | # CONFIG_CRYPTO_MD4 is not set | 1129 | # CONFIG_CRYPTO_MD4 is not set |
1004 | CONFIG_CRYPTO_MD5=y | 1130 | CONFIG_CRYPTO_MD5=y |
1005 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1131 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1036,6 +1162,7 @@ CONFIG_CRYPTO_DES=y | |||
1036 | # Compression | 1162 | # Compression |
1037 | # | 1163 | # |
1038 | # CONFIG_CRYPTO_DEFLATE is not set | 1164 | # CONFIG_CRYPTO_DEFLATE is not set |
1165 | # CONFIG_CRYPTO_ZLIB is not set | ||
1039 | # CONFIG_CRYPTO_LZO is not set | 1166 | # CONFIG_CRYPTO_LZO is not set |
1040 | 1167 | ||
1041 | # | 1168 | # |
@@ -1044,5 +1171,6 @@ CONFIG_CRYPTO_DES=y | |||
1044 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1171 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1045 | CONFIG_CRYPTO_HW=y | 1172 | CONFIG_CRYPTO_HW=y |
1046 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1173 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1174 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1047 | # CONFIG_PPC_CLOCK is not set | 1175 | # CONFIG_PPC_CLOCK is not set |
1048 | # CONFIG_VIRTUALIZATION is not set | 1176 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/44x/warp_defconfig b/arch/powerpc/configs/44x/warp_defconfig index 787635f23d8f..99eff4dd9364 100644 --- a/arch/powerpc/configs/44x/warp_defconfig +++ b/arch/powerpc/configs/44x/warp_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.30 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Tue Jun 9 23:35:36 2009 | 4 | # Mon Jan 4 15:27:46 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | CONFIG_GENERIC_GPIO=y | 48 | CONFIG_GENERIC_GPIO=y |
45 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 49 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
@@ -56,11 +60,13 @@ CONFIG_AUDIT_ARCH=y | |||
56 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
57 | CONFIG_DTC=y | 61 | CONFIG_DTC=y |
58 | # CONFIG_DEFAULT_UIMAGE is not set | 62 | # CONFIG_DEFAULT_UIMAGE is not set |
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
59 | CONFIG_PPC_DCR_NATIVE=y | 64 | CONFIG_PPC_DCR_NATIVE=y |
60 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
61 | CONFIG_PPC_DCR=y | 66 | CONFIG_PPC_DCR=y |
62 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | 67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y |
63 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 68 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
69 | CONFIG_CONSTRUCTORS=y | ||
64 | 70 | ||
65 | # | 71 | # |
66 | # General setup | 72 | # General setup |
@@ -81,11 +87,13 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
81 | # | 87 | # |
82 | # RCU Subsystem | 88 | # RCU Subsystem |
83 | # | 89 | # |
84 | CONFIG_CLASSIC_RCU=y | 90 | CONFIG_TREE_RCU=y |
85 | # CONFIG_TREE_RCU is not set | 91 | # CONFIG_TREE_PREEMPT_RCU is not set |
86 | # CONFIG_PREEMPT_RCU is not set | 92 | # CONFIG_TINY_RCU is not set |
93 | # CONFIG_RCU_TRACE is not set | ||
94 | CONFIG_RCU_FANOUT=32 | ||
95 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
87 | # CONFIG_TREE_RCU_TRACE is not set | 96 | # CONFIG_TREE_RCU_TRACE is not set |
88 | # CONFIG_PREEMPT_RCU_TRACE is not set | ||
89 | CONFIG_IKCONFIG=y | 97 | CONFIG_IKCONFIG=y |
90 | CONFIG_IKCONFIG_PROC=y | 98 | CONFIG_IKCONFIG_PROC=y |
91 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
@@ -111,7 +119,6 @@ CONFIG_SYSCTL_SYSCALL=y | |||
111 | CONFIG_KALLSYMS=y | 119 | CONFIG_KALLSYMS=y |
112 | # CONFIG_KALLSYMS_ALL is not set | 120 | # CONFIG_KALLSYMS_ALL is not set |
113 | # CONFIG_KALLSYMS_EXTRA_PASS is not set | 121 | # CONFIG_KALLSYMS_EXTRA_PASS is not set |
114 | # CONFIG_STRIP_ASM_SYMS is not set | ||
115 | CONFIG_HOTPLUG=y | 122 | CONFIG_HOTPLUG=y |
116 | CONFIG_PRINTK=y | 123 | CONFIG_PRINTK=y |
117 | CONFIG_BUG=y | 124 | CONFIG_BUG=y |
@@ -124,6 +131,13 @@ CONFIG_TIMERFD=y | |||
124 | CONFIG_EVENTFD=y | 131 | CONFIG_EVENTFD=y |
125 | CONFIG_SHMEM=y | 132 | CONFIG_SHMEM=y |
126 | CONFIG_AIO=y | 133 | CONFIG_AIO=y |
134 | CONFIG_HAVE_PERF_EVENTS=y | ||
135 | |||
136 | # | ||
137 | # Kernel Performance Events And Counters | ||
138 | # | ||
139 | # CONFIG_PERF_EVENTS is not set | ||
140 | # CONFIG_PERF_COUNTERS is not set | ||
127 | CONFIG_VM_EVENT_COUNTERS=y | 141 | CONFIG_VM_EVENT_COUNTERS=y |
128 | CONFIG_SLUB_DEBUG=y | 142 | CONFIG_SLUB_DEBUG=y |
129 | CONFIG_COMPAT_BRK=y | 143 | CONFIG_COMPAT_BRK=y |
@@ -131,7 +145,6 @@ CONFIG_COMPAT_BRK=y | |||
131 | CONFIG_SLUB=y | 145 | CONFIG_SLUB=y |
132 | # CONFIG_SLOB is not set | 146 | # CONFIG_SLOB is not set |
133 | # CONFIG_PROFILING is not set | 147 | # CONFIG_PROFILING is not set |
134 | # CONFIG_MARKERS is not set | ||
135 | CONFIG_HAVE_OPROFILE=y | 148 | CONFIG_HAVE_OPROFILE=y |
136 | # CONFIG_KPROBES is not set | 149 | # CONFIG_KPROBES is not set |
137 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y | 150 | CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y |
@@ -139,6 +152,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
139 | CONFIG_HAVE_KPROBES=y | 152 | CONFIG_HAVE_KPROBES=y |
140 | CONFIG_HAVE_KRETPROBES=y | 153 | CONFIG_HAVE_KRETPROBES=y |
141 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 154 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
155 | CONFIG_HAVE_DMA_ATTRS=y | ||
156 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
157 | |||
158 | # | ||
159 | # GCOV-based kernel profiling | ||
160 | # | ||
161 | # CONFIG_GCOV_KERNEL is not set | ||
142 | # CONFIG_SLOW_WORK is not set | 162 | # CONFIG_SLOW_WORK is not set |
143 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 163 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
144 | CONFIG_SLABINFO=y | 164 | CONFIG_SLABINFO=y |
@@ -151,7 +171,7 @@ CONFIG_MODULE_UNLOAD=y | |||
151 | # CONFIG_MODVERSIONS is not set | 171 | # CONFIG_MODVERSIONS is not set |
152 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 172 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
153 | CONFIG_BLOCK=y | 173 | CONFIG_BLOCK=y |
154 | # CONFIG_LBD is not set | 174 | CONFIG_LBDAF=y |
155 | # CONFIG_BLK_DEV_BSG is not set | 175 | # CONFIG_BLK_DEV_BSG is not set |
156 | # CONFIG_BLK_DEV_INTEGRITY is not set | 176 | # CONFIG_BLK_DEV_INTEGRITY is not set |
157 | 177 | ||
@@ -159,14 +179,41 @@ CONFIG_BLOCK=y | |||
159 | # IO Schedulers | 179 | # IO Schedulers |
160 | # | 180 | # |
161 | CONFIG_IOSCHED_NOOP=y | 181 | CONFIG_IOSCHED_NOOP=y |
162 | CONFIG_IOSCHED_AS=y | ||
163 | CONFIG_IOSCHED_DEADLINE=y | 182 | CONFIG_IOSCHED_DEADLINE=y |
164 | CONFIG_IOSCHED_CFQ=y | 183 | CONFIG_IOSCHED_CFQ=y |
165 | CONFIG_DEFAULT_AS=y | ||
166 | # CONFIG_DEFAULT_DEADLINE is not set | 184 | # CONFIG_DEFAULT_DEADLINE is not set |
167 | # CONFIG_DEFAULT_CFQ is not set | 185 | CONFIG_DEFAULT_CFQ=y |
168 | # CONFIG_DEFAULT_NOOP is not set | 186 | # CONFIG_DEFAULT_NOOP is not set |
169 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 187 | CONFIG_DEFAULT_IOSCHED="cfq" |
188 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
189 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
190 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
191 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
192 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
193 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
198 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
199 | # CONFIG_INLINE_READ_LOCK is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
201 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
207 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
216 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
170 | # CONFIG_FREEZER is not set | 217 | # CONFIG_FREEZER is not set |
171 | 218 | ||
172 | # | 219 | # |
@@ -187,6 +234,7 @@ CONFIG_WARP=y | |||
187 | # CONFIG_CANYONLANDS is not set | 234 | # CONFIG_CANYONLANDS is not set |
188 | # CONFIG_GLACIER is not set | 235 | # CONFIG_GLACIER is not set |
189 | # CONFIG_REDWOOD is not set | 236 | # CONFIG_REDWOOD is not set |
237 | # CONFIG_EIGER is not set | ||
190 | # CONFIG_YOSEMITE is not set | 238 | # CONFIG_YOSEMITE is not set |
191 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set | 239 | # CONFIG_XILINX_VIRTEX440_GENERIC_BOARD is not set |
192 | # CONFIG_PPC44x_SIMPLE is not set | 240 | # CONFIG_PPC44x_SIMPLE is not set |
@@ -229,10 +277,12 @@ CONFIG_BINFMT_ELF=y | |||
229 | # CONFIG_BINFMT_MISC is not set | 277 | # CONFIG_BINFMT_MISC is not set |
230 | # CONFIG_MATH_EMULATION is not set | 278 | # CONFIG_MATH_EMULATION is not set |
231 | # CONFIG_IOMMU_HELPER is not set | 279 | # CONFIG_IOMMU_HELPER is not set |
232 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 280 | # CONFIG_SWIOTLB is not set |
233 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 281 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
234 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 282 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
235 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
284 | CONFIG_SPARSE_IRQ=y | ||
285 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
236 | CONFIG_ARCH_FLATMEM_ENABLE=y | 286 | CONFIG_ARCH_FLATMEM_ENABLE=y |
237 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 287 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
238 | CONFIG_SELECT_MEMORY_MODEL=y | 288 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -248,9 +298,8 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
248 | CONFIG_ZONE_DMA_FLAG=1 | 298 | CONFIG_ZONE_DMA_FLAG=1 |
249 | CONFIG_BOUNCE=y | 299 | CONFIG_BOUNCE=y |
250 | CONFIG_VIRT_TO_BUS=y | 300 | CONFIG_VIRT_TO_BUS=y |
251 | CONFIG_UNEVICTABLE_LRU=y | 301 | # CONFIG_KSM is not set |
252 | CONFIG_HAVE_MLOCK=y | 302 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
253 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
254 | CONFIG_STDBINUTILS=y | 303 | CONFIG_STDBINUTILS=y |
255 | CONFIG_PPC_4K_PAGES=y | 304 | CONFIG_PPC_4K_PAGES=y |
256 | # CONFIG_PPC_16K_PAGES is not set | 305 | # CONFIG_PPC_16K_PAGES is not set |
@@ -356,6 +405,7 @@ CONFIG_NETFILTER_ADVANCED=y | |||
356 | # CONFIG_IP_NF_ARPTABLES is not set | 405 | # CONFIG_IP_NF_ARPTABLES is not set |
357 | # CONFIG_IP_DCCP is not set | 406 | # CONFIG_IP_DCCP is not set |
358 | # CONFIG_IP_SCTP is not set | 407 | # CONFIG_IP_SCTP is not set |
408 | # CONFIG_RDS is not set | ||
359 | # CONFIG_TIPC is not set | 409 | # CONFIG_TIPC is not set |
360 | # CONFIG_ATM is not set | 410 | # CONFIG_ATM is not set |
361 | # CONFIG_BRIDGE is not set | 411 | # CONFIG_BRIDGE is not set |
@@ -371,6 +421,7 @@ CONFIG_VLAN_8021Q=y | |||
371 | # CONFIG_ECONET is not set | 421 | # CONFIG_ECONET is not set |
372 | # CONFIG_WAN_ROUTER is not set | 422 | # CONFIG_WAN_ROUTER is not set |
373 | # CONFIG_PHONET is not set | 423 | # CONFIG_PHONET is not set |
424 | # CONFIG_IEEE802154 is not set | ||
374 | # CONFIG_NET_SCHED is not set | 425 | # CONFIG_NET_SCHED is not set |
375 | # CONFIG_DCB is not set | 426 | # CONFIG_DCB is not set |
376 | 427 | ||
@@ -383,7 +434,13 @@ CONFIG_VLAN_8021Q=y | |||
383 | # CONFIG_IRDA is not set | 434 | # CONFIG_IRDA is not set |
384 | # CONFIG_BT is not set | 435 | # CONFIG_BT is not set |
385 | # CONFIG_AF_RXRPC is not set | 436 | # CONFIG_AF_RXRPC is not set |
386 | # CONFIG_WIRELESS is not set | 437 | CONFIG_WIRELESS=y |
438 | # CONFIG_CFG80211 is not set | ||
439 | # CONFIG_LIB80211 is not set | ||
440 | |||
441 | # | ||
442 | # CFG80211 needs to be enabled for MAC80211 | ||
443 | # | ||
387 | # CONFIG_WIMAX is not set | 444 | # CONFIG_WIMAX is not set |
388 | # CONFIG_RFKILL is not set | 445 | # CONFIG_RFKILL is not set |
389 | # CONFIG_NET_9P is not set | 446 | # CONFIG_NET_9P is not set |
@@ -396,6 +453,7 @@ CONFIG_VLAN_8021Q=y | |||
396 | # Generic Driver Options | 453 | # Generic Driver Options |
397 | # | 454 | # |
398 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 455 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
456 | # CONFIG_DEVTMPFS is not set | ||
399 | # CONFIG_STANDALONE is not set | 457 | # CONFIG_STANDALONE is not set |
400 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 458 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
401 | CONFIG_FW_LOADER=y | 459 | CONFIG_FW_LOADER=y |
@@ -407,9 +465,9 @@ CONFIG_EXTRA_FIRMWARE="" | |||
407 | # CONFIG_CONNECTOR is not set | 465 | # CONFIG_CONNECTOR is not set |
408 | CONFIG_MTD=y | 466 | CONFIG_MTD=y |
409 | # CONFIG_MTD_DEBUG is not set | 467 | # CONFIG_MTD_DEBUG is not set |
468 | # CONFIG_MTD_TESTS is not set | ||
410 | # CONFIG_MTD_CONCAT is not set | 469 | # CONFIG_MTD_CONCAT is not set |
411 | CONFIG_MTD_PARTITIONS=y | 470 | CONFIG_MTD_PARTITIONS=y |
412 | # CONFIG_MTD_TESTS is not set | ||
413 | # CONFIG_MTD_REDBOOT_PARTS is not set | 471 | # CONFIG_MTD_REDBOOT_PARTS is not set |
414 | CONFIG_MTD_CMDLINE_PARTS=y | 472 | CONFIG_MTD_CMDLINE_PARTS=y |
415 | CONFIG_MTD_OF_PARTS=y | 473 | CONFIG_MTD_OF_PARTS=y |
@@ -513,6 +571,10 @@ CONFIG_BLK_DEV=y | |||
513 | # CONFIG_BLK_DEV_FD is not set | 571 | # CONFIG_BLK_DEV_FD is not set |
514 | # CONFIG_BLK_DEV_COW_COMMON is not set | 572 | # CONFIG_BLK_DEV_COW_COMMON is not set |
515 | # CONFIG_BLK_DEV_LOOP is not set | 573 | # CONFIG_BLK_DEV_LOOP is not set |
574 | |||
575 | # | ||
576 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
577 | # | ||
516 | # CONFIG_BLK_DEV_NBD is not set | 578 | # CONFIG_BLK_DEV_NBD is not set |
517 | # CONFIG_BLK_DEV_UB is not set | 579 | # CONFIG_BLK_DEV_UB is not set |
518 | CONFIG_BLK_DEV_RAM=y | 580 | CONFIG_BLK_DEV_RAM=y |
@@ -524,9 +586,11 @@ CONFIG_BLK_DEV_RAM_SIZE=4096 | |||
524 | # CONFIG_XILINX_SYSACE is not set | 586 | # CONFIG_XILINX_SYSACE is not set |
525 | # CONFIG_BLK_DEV_HD is not set | 587 | # CONFIG_BLK_DEV_HD is not set |
526 | CONFIG_MISC_DEVICES=y | 588 | CONFIG_MISC_DEVICES=y |
589 | # CONFIG_AD525X_DPOT is not set | ||
527 | # CONFIG_ICS932S401 is not set | 590 | # CONFIG_ICS932S401 is not set |
528 | # CONFIG_ENCLOSURE_SERVICES is not set | 591 | # CONFIG_ENCLOSURE_SERVICES is not set |
529 | # CONFIG_ISL29003 is not set | 592 | # CONFIG_ISL29003 is not set |
593 | # CONFIG_DS1682 is not set | ||
530 | # CONFIG_C2PORT is not set | 594 | # CONFIG_C2PORT is not set |
531 | 595 | ||
532 | # | 596 | # |
@@ -534,7 +598,9 @@ CONFIG_MISC_DEVICES=y | |||
534 | # | 598 | # |
535 | CONFIG_EEPROM_AT24=y | 599 | CONFIG_EEPROM_AT24=y |
536 | # CONFIG_EEPROM_LEGACY is not set | 600 | # CONFIG_EEPROM_LEGACY is not set |
601 | # CONFIG_EEPROM_MAX6875 is not set | ||
537 | # CONFIG_EEPROM_93CX6 is not set | 602 | # CONFIG_EEPROM_93CX6 is not set |
603 | # CONFIG_IWMC3200TOP is not set | ||
538 | CONFIG_HAVE_IDE=y | 604 | CONFIG_HAVE_IDE=y |
539 | # CONFIG_IDE is not set | 605 | # CONFIG_IDE is not set |
540 | 606 | ||
@@ -557,15 +623,11 @@ CONFIG_BLK_DEV_SD=y | |||
557 | # CONFIG_BLK_DEV_SR is not set | 623 | # CONFIG_BLK_DEV_SR is not set |
558 | # CONFIG_CHR_DEV_SG is not set | 624 | # CONFIG_CHR_DEV_SG is not set |
559 | # CONFIG_CHR_DEV_SCH is not set | 625 | # CONFIG_CHR_DEV_SCH is not set |
560 | |||
561 | # | ||
562 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
563 | # | ||
564 | # CONFIG_SCSI_MULTI_LUN is not set | 626 | # CONFIG_SCSI_MULTI_LUN is not set |
565 | # CONFIG_SCSI_CONSTANTS is not set | 627 | # CONFIG_SCSI_CONSTANTS is not set |
566 | # CONFIG_SCSI_LOGGING is not set | 628 | # CONFIG_SCSI_LOGGING is not set |
567 | # CONFIG_SCSI_SCAN_ASYNC is not set | 629 | # CONFIG_SCSI_SCAN_ASYNC is not set |
568 | # CONFIG_SCSI_WAIT_SCAN is not set | 630 | CONFIG_SCSI_WAIT_SCAN=m |
569 | 631 | ||
570 | # | 632 | # |
571 | # SCSI Transports | 633 | # SCSI Transports |
@@ -582,7 +644,6 @@ CONFIG_SCSI_SPI_ATTRS=y | |||
582 | # CONFIG_MD is not set | 644 | # CONFIG_MD is not set |
583 | # CONFIG_MACINTOSH_DRIVERS is not set | 645 | # CONFIG_MACINTOSH_DRIVERS is not set |
584 | CONFIG_NETDEVICES=y | 646 | CONFIG_NETDEVICES=y |
585 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
586 | # CONFIG_DUMMY is not set | 647 | # CONFIG_DUMMY is not set |
587 | # CONFIG_BONDING is not set | 648 | # CONFIG_BONDING is not set |
588 | # CONFIG_MACVLAN is not set | 649 | # CONFIG_MACVLAN is not set |
@@ -609,14 +670,14 @@ CONFIG_IBM_NEW_EMAC_ZMII=y | |||
609 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set | 670 | # CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set |
610 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 671 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
611 | # CONFIG_B44 is not set | 672 | # CONFIG_B44 is not set |
673 | # CONFIG_KS8842 is not set | ||
674 | # CONFIG_KS8851_MLL is not set | ||
675 | # CONFIG_XILINX_EMACLITE is not set | ||
612 | # CONFIG_NETDEV_1000 is not set | 676 | # CONFIG_NETDEV_1000 is not set |
613 | # CONFIG_NETDEV_10000 is not set | 677 | # CONFIG_NETDEV_10000 is not set |
614 | 678 | CONFIG_WLAN=y | |
615 | # | 679 | # CONFIG_USB_ZD1201 is not set |
616 | # Wireless LAN | 680 | # CONFIG_HOSTAP is not set |
617 | # | ||
618 | # CONFIG_WLAN_PRE80211 is not set | ||
619 | # CONFIG_WLAN_80211 is not set | ||
620 | 681 | ||
621 | # | 682 | # |
622 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 683 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -678,6 +739,7 @@ CONFIG_SERIAL_CORE=y | |||
678 | CONFIG_SERIAL_CORE_CONSOLE=y | 739 | CONFIG_SERIAL_CORE_CONSOLE=y |
679 | # CONFIG_SERIAL_OF_PLATFORM is not set | 740 | # CONFIG_SERIAL_OF_PLATFORM is not set |
680 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 741 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
742 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
681 | CONFIG_UNIX98_PTYS=y | 743 | CONFIG_UNIX98_PTYS=y |
682 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 744 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
683 | CONFIG_LEGACY_PTYS=y | 745 | CONFIG_LEGACY_PTYS=y |
@@ -693,6 +755,7 @@ CONFIG_HW_RANDOM=y | |||
693 | # CONFIG_TCG_TPM is not set | 755 | # CONFIG_TCG_TPM is not set |
694 | CONFIG_I2C=y | 756 | CONFIG_I2C=y |
695 | CONFIG_I2C_BOARDINFO=y | 757 | CONFIG_I2C_BOARDINFO=y |
758 | CONFIG_I2C_COMPAT=y | ||
696 | # CONFIG_I2C_CHARDEV is not set | 759 | # CONFIG_I2C_CHARDEV is not set |
697 | CONFIG_I2C_HELPER_AUTO=y | 760 | CONFIG_I2C_HELPER_AUTO=y |
698 | 761 | ||
@@ -725,17 +788,17 @@ CONFIG_I2C_IBM_IIC=y | |||
725 | # | 788 | # |
726 | # Miscellaneous I2C Chip support | 789 | # Miscellaneous I2C Chip support |
727 | # | 790 | # |
728 | # CONFIG_DS1682 is not set | ||
729 | # CONFIG_SENSORS_PCF8574 is not set | ||
730 | # CONFIG_PCF8575 is not set | ||
731 | # CONFIG_SENSORS_PCA9539 is not set | ||
732 | # CONFIG_SENSORS_MAX6875 is not set | ||
733 | # CONFIG_SENSORS_TSL2550 is not set | 791 | # CONFIG_SENSORS_TSL2550 is not set |
734 | # CONFIG_I2C_DEBUG_CORE is not set | 792 | # CONFIG_I2C_DEBUG_CORE is not set |
735 | # CONFIG_I2C_DEBUG_ALGO is not set | 793 | # CONFIG_I2C_DEBUG_ALGO is not set |
736 | # CONFIG_I2C_DEBUG_BUS is not set | 794 | # CONFIG_I2C_DEBUG_BUS is not set |
737 | # CONFIG_I2C_DEBUG_CHIP is not set | 795 | # CONFIG_I2C_DEBUG_CHIP is not set |
738 | # CONFIG_SPI is not set | 796 | # CONFIG_SPI is not set |
797 | |||
798 | # | ||
799 | # PPS support | ||
800 | # | ||
801 | # CONFIG_PPS is not set | ||
739 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 802 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
740 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | 803 | CONFIG_ARCH_REQUIRE_GPIOLIB=y |
741 | CONFIG_GPIOLIB=y | 804 | CONFIG_GPIOLIB=y |
@@ -761,10 +824,19 @@ CONFIG_GPIO_SYSFS=y | |||
761 | # | 824 | # |
762 | # SPI GPIO expanders: | 825 | # SPI GPIO expanders: |
763 | # | 826 | # |
827 | |||
828 | # | ||
829 | # AC97 GPIO expanders: | ||
830 | # | ||
764 | # CONFIG_W1 is not set | 831 | # CONFIG_W1 is not set |
765 | # CONFIG_POWER_SUPPLY is not set | 832 | # CONFIG_POWER_SUPPLY is not set |
766 | CONFIG_HWMON=y | 833 | CONFIG_HWMON=y |
767 | # CONFIG_HWMON_VID is not set | 834 | # CONFIG_HWMON_VID is not set |
835 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
836 | |||
837 | # | ||
838 | # Native drivers | ||
839 | # | ||
768 | CONFIG_SENSORS_AD7414=y | 840 | CONFIG_SENSORS_AD7414=y |
769 | # CONFIG_SENSORS_AD7418 is not set | 841 | # CONFIG_SENSORS_AD7418 is not set |
770 | # CONFIG_SENSORS_ADM1021 is not set | 842 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -787,6 +859,7 @@ CONFIG_SENSORS_AD7414=y | |||
787 | # CONFIG_SENSORS_GL520SM is not set | 859 | # CONFIG_SENSORS_GL520SM is not set |
788 | # CONFIG_SENSORS_IT87 is not set | 860 | # CONFIG_SENSORS_IT87 is not set |
789 | # CONFIG_SENSORS_LM63 is not set | 861 | # CONFIG_SENSORS_LM63 is not set |
862 | # CONFIG_SENSORS_LM73 is not set | ||
790 | # CONFIG_SENSORS_LM75 is not set | 863 | # CONFIG_SENSORS_LM75 is not set |
791 | # CONFIG_SENSORS_LM77 is not set | 864 | # CONFIG_SENSORS_LM77 is not set |
792 | # CONFIG_SENSORS_LM78 is not set | 865 | # CONFIG_SENSORS_LM78 is not set |
@@ -812,6 +885,8 @@ CONFIG_SENSORS_AD7414=y | |||
812 | # CONFIG_SENSORS_SMSC47B397 is not set | 885 | # CONFIG_SENSORS_SMSC47B397 is not set |
813 | # CONFIG_SENSORS_ADS7828 is not set | 886 | # CONFIG_SENSORS_ADS7828 is not set |
814 | # CONFIG_SENSORS_THMC50 is not set | 887 | # CONFIG_SENSORS_THMC50 is not set |
888 | # CONFIG_SENSORS_TMP401 is not set | ||
889 | # CONFIG_SENSORS_TMP421 is not set | ||
815 | # CONFIG_SENSORS_VT1211 is not set | 890 | # CONFIG_SENSORS_VT1211 is not set |
816 | # CONFIG_SENSORS_W83781D is not set | 891 | # CONFIG_SENSORS_W83781D is not set |
817 | # CONFIG_SENSORS_W83791D is not set | 892 | # CONFIG_SENSORS_W83791D is not set |
@@ -821,7 +896,6 @@ CONFIG_SENSORS_AD7414=y | |||
821 | # CONFIG_SENSORS_W83L786NG is not set | 896 | # CONFIG_SENSORS_W83L786NG is not set |
822 | # CONFIG_SENSORS_W83627HF is not set | 897 | # CONFIG_SENSORS_W83627HF is not set |
823 | # CONFIG_SENSORS_W83627EHF is not set | 898 | # CONFIG_SENSORS_W83627EHF is not set |
824 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
825 | CONFIG_THERMAL=y | 899 | CONFIG_THERMAL=y |
826 | CONFIG_THERMAL_HWMON=y | 900 | CONFIG_THERMAL_HWMON=y |
827 | CONFIG_WATCHDOG=y | 901 | CONFIG_WATCHDOG=y |
@@ -855,26 +929,15 @@ CONFIG_SSB_POSSIBLE=y | |||
855 | # CONFIG_TWL4030_CORE is not set | 929 | # CONFIG_TWL4030_CORE is not set |
856 | # CONFIG_MFD_TMIO is not set | 930 | # CONFIG_MFD_TMIO is not set |
857 | # CONFIG_PMIC_DA903X is not set | 931 | # CONFIG_PMIC_DA903X is not set |
932 | # CONFIG_PMIC_ADP5520 is not set | ||
858 | # CONFIG_MFD_WM8400 is not set | 933 | # CONFIG_MFD_WM8400 is not set |
934 | # CONFIG_MFD_WM831X is not set | ||
859 | # CONFIG_MFD_WM8350_I2C is not set | 935 | # CONFIG_MFD_WM8350_I2C is not set |
860 | # CONFIG_MFD_PCF50633 is not set | 936 | # CONFIG_MFD_PCF50633 is not set |
937 | # CONFIG_AB3100_CORE is not set | ||
938 | # CONFIG_MFD_88PM8607 is not set | ||
861 | # CONFIG_REGULATOR is not set | 939 | # CONFIG_REGULATOR is not set |
862 | 940 | # CONFIG_MEDIA_SUPPORT is not set | |
863 | # | ||
864 | # Multimedia devices | ||
865 | # | ||
866 | |||
867 | # | ||
868 | # Multimedia core support | ||
869 | # | ||
870 | # CONFIG_VIDEO_DEV is not set | ||
871 | # CONFIG_DVB_CORE is not set | ||
872 | # CONFIG_VIDEO_MEDIA is not set | ||
873 | |||
874 | # | ||
875 | # Multimedia drivers | ||
876 | # | ||
877 | # CONFIG_DAB is not set | ||
878 | 941 | ||
879 | # | 942 | # |
880 | # Graphics support | 943 | # Graphics support |
@@ -917,10 +980,11 @@ CONFIG_USB_MON=y | |||
917 | # CONFIG_USB_OXU210HP_HCD is not set | 980 | # CONFIG_USB_OXU210HP_HCD is not set |
918 | # CONFIG_USB_ISP116X_HCD is not set | 981 | # CONFIG_USB_ISP116X_HCD is not set |
919 | # CONFIG_USB_ISP1760_HCD is not set | 982 | # CONFIG_USB_ISP1760_HCD is not set |
983 | # CONFIG_USB_ISP1362_HCD is not set | ||
920 | CONFIG_USB_OHCI_HCD=y | 984 | CONFIG_USB_OHCI_HCD=y |
921 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
922 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 985 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y |
923 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set | 986 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set |
987 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
924 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | 988 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y |
925 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | 989 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y |
926 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y | 990 | CONFIG_USB_OHCI_LITTLE_ENDIAN=y |
@@ -988,6 +1052,7 @@ CONFIG_USB_STORAGE=y | |||
988 | # CONFIG_USB_LD is not set | 1052 | # CONFIG_USB_LD is not set |
989 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1053 | # CONFIG_USB_TRANCEVIBRATOR is not set |
990 | # CONFIG_USB_IOWARRIOR is not set | 1054 | # CONFIG_USB_IOWARRIOR is not set |
1055 | # CONFIG_USB_TEST is not set | ||
991 | # CONFIG_USB_ISIGHTFW is not set | 1056 | # CONFIG_USB_ISIGHTFW is not set |
992 | # CONFIG_USB_VST is not set | 1057 | # CONFIG_USB_VST is not set |
993 | # CONFIG_USB_GADGET is not set | 1058 | # CONFIG_USB_GADGET is not set |
@@ -1014,7 +1079,8 @@ CONFIG_MMC_BLOCK_BOUNCE=y | |||
1014 | # | 1079 | # |
1015 | # CONFIG_MMC_SDHCI is not set | 1080 | # CONFIG_MMC_SDHCI is not set |
1016 | # CONFIG_MMC_WBSD is not set | 1081 | # CONFIG_MMC_WBSD is not set |
1017 | CONFIG_MMC_PIKASD=y | 1082 | # CONFIG_MMC_AT91 is not set |
1083 | # CONFIG_MMC_ATMELMCI is not set | ||
1018 | # CONFIG_MEMSTICK is not set | 1084 | # CONFIG_MEMSTICK is not set |
1019 | CONFIG_NEW_LEDS=y | 1085 | CONFIG_NEW_LEDS=y |
1020 | CONFIG_LEDS_CLASS=y | 1086 | CONFIG_LEDS_CLASS=y |
@@ -1025,9 +1091,10 @@ CONFIG_LEDS_CLASS=y | |||
1025 | CONFIG_LEDS_GPIO=y | 1091 | CONFIG_LEDS_GPIO=y |
1026 | # CONFIG_LEDS_GPIO_PLATFORM is not set | 1092 | # CONFIG_LEDS_GPIO_PLATFORM is not set |
1027 | CONFIG_LEDS_GPIO_OF=y | 1093 | CONFIG_LEDS_GPIO_OF=y |
1028 | # CONFIG_LEDS_LP5521 is not set | 1094 | # CONFIG_LEDS_LP3944 is not set |
1029 | # CONFIG_LEDS_PCA955X is not set | 1095 | # CONFIG_LEDS_PCA955X is not set |
1030 | # CONFIG_LEDS_BD2802 is not set | 1096 | # CONFIG_LEDS_BD2802 is not set |
1097 | # CONFIG_LEDS_LT3593 is not set | ||
1031 | 1098 | ||
1032 | # | 1099 | # |
1033 | # LED Triggers | 1100 | # LED Triggers |
@@ -1048,6 +1115,10 @@ CONFIG_LEDS_TRIGGER_DEFAULT_ON=y | |||
1048 | # CONFIG_DMADEVICES is not set | 1115 | # CONFIG_DMADEVICES is not set |
1049 | # CONFIG_AUXDISPLAY is not set | 1116 | # CONFIG_AUXDISPLAY is not set |
1050 | # CONFIG_UIO is not set | 1117 | # CONFIG_UIO is not set |
1118 | |||
1119 | # | ||
1120 | # TI VLYNQ | ||
1121 | # | ||
1051 | # CONFIG_STAGING is not set | 1122 | # CONFIG_STAGING is not set |
1052 | 1123 | ||
1053 | # | 1124 | # |
@@ -1065,10 +1136,13 @@ CONFIG_JBD=y | |||
1065 | # CONFIG_REISERFS_FS is not set | 1136 | # CONFIG_REISERFS_FS is not set |
1066 | # CONFIG_JFS_FS is not set | 1137 | # CONFIG_JFS_FS is not set |
1067 | # CONFIG_FS_POSIX_ACL is not set | 1138 | # CONFIG_FS_POSIX_ACL is not set |
1068 | CONFIG_FILE_LOCKING=y | ||
1069 | # CONFIG_XFS_FS is not set | 1139 | # CONFIG_XFS_FS is not set |
1140 | # CONFIG_GFS2_FS is not set | ||
1070 | # CONFIG_OCFS2_FS is not set | 1141 | # CONFIG_OCFS2_FS is not set |
1071 | # CONFIG_BTRFS_FS is not set | 1142 | # CONFIG_BTRFS_FS is not set |
1143 | # CONFIG_NILFS2_FS is not set | ||
1144 | CONFIG_FILE_LOCKING=y | ||
1145 | CONFIG_FSNOTIFY=y | ||
1072 | CONFIG_DNOTIFY=y | 1146 | CONFIG_DNOTIFY=y |
1073 | CONFIG_INOTIFY=y | 1147 | CONFIG_INOTIFY=y |
1074 | CONFIG_INOTIFY_USER=y | 1148 | CONFIG_INOTIFY_USER=y |
@@ -1145,7 +1219,6 @@ CONFIG_CRAMFS=y | |||
1145 | # CONFIG_ROMFS_FS is not set | 1219 | # CONFIG_ROMFS_FS is not set |
1146 | # CONFIG_SYSV_FS is not set | 1220 | # CONFIG_SYSV_FS is not set |
1147 | # CONFIG_UFS_FS is not set | 1221 | # CONFIG_UFS_FS is not set |
1148 | # CONFIG_NILFS2_FS is not set | ||
1149 | CONFIG_NETWORK_FILESYSTEMS=y | 1222 | CONFIG_NETWORK_FILESYSTEMS=y |
1150 | CONFIG_NFS_FS=y | 1223 | CONFIG_NFS_FS=y |
1151 | CONFIG_NFS_V3=y | 1224 | CONFIG_NFS_V3=y |
@@ -1235,6 +1308,7 @@ CONFIG_HAS_IOPORT=y | |||
1235 | CONFIG_HAS_DMA=y | 1308 | CONFIG_HAS_DMA=y |
1236 | CONFIG_HAVE_LMB=y | 1309 | CONFIG_HAVE_LMB=y |
1237 | CONFIG_NLATTR=y | 1310 | CONFIG_NLATTR=y |
1311 | CONFIG_GENERIC_ATOMIC64=y | ||
1238 | 1312 | ||
1239 | # | 1313 | # |
1240 | # Kernel hacking | 1314 | # Kernel hacking |
@@ -1244,6 +1318,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1244 | CONFIG_ENABLE_MUST_CHECK=y | 1318 | CONFIG_ENABLE_MUST_CHECK=y |
1245 | CONFIG_FRAME_WARN=1024 | 1319 | CONFIG_FRAME_WARN=1024 |
1246 | CONFIG_MAGIC_SYSRQ=y | 1320 | CONFIG_MAGIC_SYSRQ=y |
1321 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1247 | # CONFIG_UNUSED_SYMBOLS is not set | 1322 | # CONFIG_UNUSED_SYMBOLS is not set |
1248 | CONFIG_DEBUG_FS=y | 1323 | CONFIG_DEBUG_FS=y |
1249 | # CONFIG_HEADERS_CHECK is not set | 1324 | # CONFIG_HEADERS_CHECK is not set |
@@ -1261,10 +1336,14 @@ CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | |||
1261 | # CONFIG_DEBUG_OBJECTS is not set | 1336 | # CONFIG_DEBUG_OBJECTS is not set |
1262 | # CONFIG_SLUB_DEBUG_ON is not set | 1337 | # CONFIG_SLUB_DEBUG_ON is not set |
1263 | # CONFIG_SLUB_STATS is not set | 1338 | # CONFIG_SLUB_STATS is not set |
1339 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1264 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1340 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1265 | # CONFIG_RT_MUTEX_TESTER is not set | 1341 | # CONFIG_RT_MUTEX_TESTER is not set |
1266 | # CONFIG_DEBUG_SPINLOCK is not set | 1342 | # CONFIG_DEBUG_SPINLOCK is not set |
1267 | # CONFIG_DEBUG_MUTEXES is not set | 1343 | # CONFIG_DEBUG_MUTEXES is not set |
1344 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1345 | # CONFIG_PROVE_LOCKING is not set | ||
1346 | # CONFIG_LOCK_STAT is not set | ||
1268 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1347 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1269 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1348 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1270 | # CONFIG_DEBUG_KOBJECT is not set | 1349 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1276,11 +1355,12 @@ CONFIG_DEBUG_INFO=y | |||
1276 | # CONFIG_DEBUG_LIST is not set | 1355 | # CONFIG_DEBUG_LIST is not set |
1277 | # CONFIG_DEBUG_SG is not set | 1356 | # CONFIG_DEBUG_SG is not set |
1278 | # CONFIG_DEBUG_NOTIFIERS is not set | 1357 | # CONFIG_DEBUG_NOTIFIERS is not set |
1279 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1358 | # CONFIG_DEBUG_CREDENTIALS is not set |
1280 | # CONFIG_RCU_TORTURE_TEST is not set | 1359 | # CONFIG_RCU_TORTURE_TEST is not set |
1281 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1360 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1282 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1361 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1283 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1362 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1363 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1284 | # CONFIG_FAULT_INJECTION is not set | 1364 | # CONFIG_FAULT_INJECTION is not set |
1285 | # CONFIG_LATENCYTOP is not set | 1365 | # CONFIG_LATENCYTOP is not set |
1286 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1366 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
@@ -1290,27 +1370,30 @@ CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | |||
1290 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1370 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1291 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1371 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1292 | CONFIG_TRACING_SUPPORT=y | 1372 | CONFIG_TRACING_SUPPORT=y |
1293 | 1373 | CONFIG_FTRACE=y | |
1294 | # | ||
1295 | # Tracers | ||
1296 | # | ||
1297 | # CONFIG_FUNCTION_TRACER is not set | 1374 | # CONFIG_FUNCTION_TRACER is not set |
1375 | # CONFIG_IRQSOFF_TRACER is not set | ||
1298 | # CONFIG_SCHED_TRACER is not set | 1376 | # CONFIG_SCHED_TRACER is not set |
1299 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1377 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1300 | # CONFIG_EVENT_TRACER is not set | ||
1301 | # CONFIG_BOOT_TRACER is not set | 1378 | # CONFIG_BOOT_TRACER is not set |
1302 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1379 | CONFIG_BRANCH_PROFILE_NONE=y |
1380 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1381 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
1303 | # CONFIG_STACK_TRACER is not set | 1382 | # CONFIG_STACK_TRACER is not set |
1304 | # CONFIG_KMEMTRACE is not set | 1383 | # CONFIG_KMEMTRACE is not set |
1305 | # CONFIG_WORKQUEUE_TRACER is not set | 1384 | # CONFIG_WORKQUEUE_TRACER is not set |
1306 | # CONFIG_BLK_DEV_IO_TRACE is not set | 1385 | # CONFIG_BLK_DEV_IO_TRACE is not set |
1307 | # CONFIG_DYNAMIC_DEBUG is not set | 1386 | # CONFIG_DYNAMIC_DEBUG is not set |
1387 | # CONFIG_DMA_API_DEBUG is not set | ||
1308 | # CONFIG_SAMPLES is not set | 1388 | # CONFIG_SAMPLES is not set |
1309 | CONFIG_HAVE_ARCH_KGDB=y | 1389 | CONFIG_HAVE_ARCH_KGDB=y |
1310 | # CONFIG_KGDB is not set | 1390 | # CONFIG_KGDB is not set |
1391 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1392 | CONFIG_PPC_WERROR=y | ||
1311 | CONFIG_PRINT_STACK_DEPTH=64 | 1393 | CONFIG_PRINT_STACK_DEPTH=64 |
1312 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1394 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1313 | # CONFIG_DEBUG_STACK_USAGE is not set | 1395 | # CONFIG_DEBUG_STACK_USAGE is not set |
1396 | # CONFIG_PPC_EMULATED_STATS is not set | ||
1314 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1397 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1315 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1398 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
1316 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1399 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1326,13 +1409,16 @@ CONFIG_IRQSTACKS=y | |||
1326 | # CONFIG_KEYS is not set | 1409 | # CONFIG_KEYS is not set |
1327 | # CONFIG_SECURITY is not set | 1410 | # CONFIG_SECURITY is not set |
1328 | # CONFIG_SECURITYFS is not set | 1411 | # CONFIG_SECURITYFS is not set |
1329 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1412 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1413 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1414 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1415 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1416 | CONFIG_DEFAULT_SECURITY="" | ||
1330 | CONFIG_CRYPTO=y | 1417 | CONFIG_CRYPTO=y |
1331 | 1418 | ||
1332 | # | 1419 | # |
1333 | # Crypto core or helper | 1420 | # Crypto core or helper |
1334 | # | 1421 | # |
1335 | # CONFIG_CRYPTO_FIPS is not set | ||
1336 | CONFIG_CRYPTO_ALGAPI=y | 1422 | CONFIG_CRYPTO_ALGAPI=y |
1337 | CONFIG_CRYPTO_ALGAPI2=y | 1423 | CONFIG_CRYPTO_ALGAPI2=y |
1338 | # CONFIG_CRYPTO_MANAGER is not set | 1424 | # CONFIG_CRYPTO_MANAGER is not set |
@@ -1366,11 +1452,13 @@ CONFIG_CRYPTO_ALGAPI2=y | |||
1366 | # | 1452 | # |
1367 | # CONFIG_CRYPTO_HMAC is not set | 1453 | # CONFIG_CRYPTO_HMAC is not set |
1368 | # CONFIG_CRYPTO_XCBC is not set | 1454 | # CONFIG_CRYPTO_XCBC is not set |
1455 | # CONFIG_CRYPTO_VMAC is not set | ||
1369 | 1456 | ||
1370 | # | 1457 | # |
1371 | # Digest | 1458 | # Digest |
1372 | # | 1459 | # |
1373 | # CONFIG_CRYPTO_CRC32C is not set | 1460 | # CONFIG_CRYPTO_CRC32C is not set |
1461 | # CONFIG_CRYPTO_GHASH is not set | ||
1374 | # CONFIG_CRYPTO_MD4 is not set | 1462 | # CONFIG_CRYPTO_MD4 is not set |
1375 | # CONFIG_CRYPTO_MD5 is not set | 1463 | # CONFIG_CRYPTO_MD5 is not set |
1376 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1464 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
diff --git a/arch/powerpc/configs/ppc40x_defconfig b/arch/powerpc/configs/ppc40x_defconfig index 326205cabf77..35b60683cde5 100644 --- a/arch/powerpc/configs/ppc40x_defconfig +++ b/arch/powerpc/configs/ppc40x_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Fri Jan 23 08:44:03 2009 | 4 | # Mon Jan 4 13:54:06 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | CONFIG_40x=y | 14 | CONFIG_40x=y |
@@ -16,6 +16,7 @@ CONFIG_40x=y | |||
16 | # CONFIG_E200 is not set | 16 | # CONFIG_E200 is not set |
17 | CONFIG_4xx=y | 17 | CONFIG_4xx=y |
18 | CONFIG_PPC_MMU_NOHASH=y | 18 | CONFIG_PPC_MMU_NOHASH=y |
19 | CONFIG_PPC_MMU_NOHASH_32=y | ||
19 | # CONFIG_PPC_MM_SLICES is not set | 20 | # CONFIG_PPC_MM_SLICES is not set |
20 | CONFIG_NOT_COHERENT_CACHE=y | 21 | CONFIG_NOT_COHERENT_CACHE=y |
21 | CONFIG_PPC32=y | 22 | CONFIG_PPC32=y |
@@ -27,15 +28,18 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
30 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
33 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
31 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
35 | CONFIG_NR_IRQS=512 | ||
32 | CONFIG_STACKTRACE_SUPPORT=y | 36 | CONFIG_STACKTRACE_SUPPORT=y |
33 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
38 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
34 | CONFIG_LOCKDEP_SUPPORT=y | 39 | CONFIG_LOCKDEP_SUPPORT=y |
35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 40 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
36 | CONFIG_ARCH_HAS_ILOG2_U32=y | 41 | CONFIG_ARCH_HAS_ILOG2_U32=y |
37 | CONFIG_GENERIC_HWEIGHT=y | 42 | CONFIG_GENERIC_HWEIGHT=y |
38 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
39 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 43 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
40 | CONFIG_GENERIC_GPIO=y | 44 | CONFIG_GENERIC_GPIO=y |
41 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 45 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
@@ -50,11 +54,15 @@ CONFIG_PPC_UDBG_16550=y | |||
50 | # CONFIG_GENERIC_TBSYNC is not set | 54 | # CONFIG_GENERIC_TBSYNC is not set |
51 | CONFIG_AUDIT_ARCH=y | 55 | CONFIG_AUDIT_ARCH=y |
52 | CONFIG_GENERIC_BUG=y | 56 | CONFIG_GENERIC_BUG=y |
53 | # CONFIG_DEFAULT_UIMAGE is not set | 57 | CONFIG_DTC=y |
58 | CONFIG_DEFAULT_UIMAGE=y | ||
59 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
54 | CONFIG_PPC_DCR_NATIVE=y | 60 | CONFIG_PPC_DCR_NATIVE=y |
55 | # CONFIG_PPC_DCR_MMIO is not set | 61 | # CONFIG_PPC_DCR_MMIO is not set |
56 | CONFIG_PPC_DCR=y | 62 | CONFIG_PPC_DCR=y |
63 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
57 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 64 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
65 | CONFIG_CONSTRUCTORS=y | ||
58 | 66 | ||
59 | # | 67 | # |
60 | # General setup | 68 | # General setup |
@@ -68,9 +76,21 @@ CONFIG_SWAP=y | |||
68 | CONFIG_SYSVIPC=y | 76 | CONFIG_SYSVIPC=y |
69 | CONFIG_SYSVIPC_SYSCTL=y | 77 | CONFIG_SYSVIPC_SYSCTL=y |
70 | CONFIG_POSIX_MQUEUE=y | 78 | CONFIG_POSIX_MQUEUE=y |
79 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
71 | # CONFIG_BSD_PROCESS_ACCT is not set | 80 | # CONFIG_BSD_PROCESS_ACCT is not set |
72 | # CONFIG_TASKSTATS is not set | 81 | # CONFIG_TASKSTATS is not set |
73 | # CONFIG_AUDIT is not set | 82 | # CONFIG_AUDIT is not set |
83 | |||
84 | # | ||
85 | # RCU Subsystem | ||
86 | # | ||
87 | CONFIG_TREE_RCU=y | ||
88 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
89 | # CONFIG_TINY_RCU is not set | ||
90 | # CONFIG_RCU_TRACE is not set | ||
91 | CONFIG_RCU_FANOUT=32 | ||
92 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
93 | # CONFIG_TREE_RCU_TRACE is not set | ||
74 | # CONFIG_IKCONFIG is not set | 94 | # CONFIG_IKCONFIG is not set |
75 | CONFIG_LOG_BUF_SHIFT=14 | 95 | CONFIG_LOG_BUF_SHIFT=14 |
76 | CONFIG_GROUP_SCHED=y | 96 | CONFIG_GROUP_SCHED=y |
@@ -85,31 +105,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
85 | # CONFIG_NAMESPACES is not set | 105 | # CONFIG_NAMESPACES is not set |
86 | CONFIG_BLK_DEV_INITRD=y | 106 | CONFIG_BLK_DEV_INITRD=y |
87 | CONFIG_INITRAMFS_SOURCE="" | 107 | CONFIG_INITRAMFS_SOURCE="" |
108 | CONFIG_RD_GZIP=y | ||
109 | # CONFIG_RD_BZIP2 is not set | ||
110 | # CONFIG_RD_LZMA is not set | ||
88 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 111 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
89 | CONFIG_SYSCTL=y | 112 | CONFIG_SYSCTL=y |
113 | CONFIG_ANON_INODES=y | ||
90 | CONFIG_EMBEDDED=y | 114 | CONFIG_EMBEDDED=y |
91 | CONFIG_SYSCTL_SYSCALL=y | 115 | CONFIG_SYSCTL_SYSCALL=y |
92 | CONFIG_KALLSYMS=y | 116 | CONFIG_KALLSYMS=y |
93 | CONFIG_KALLSYMS_ALL=y | 117 | CONFIG_KALLSYMS_ALL=y |
94 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
95 | CONFIG_KALLSYMS_EXTRA_PASS=y | 118 | CONFIG_KALLSYMS_EXTRA_PASS=y |
96 | CONFIG_HOTPLUG=y | 119 | CONFIG_HOTPLUG=y |
97 | CONFIG_PRINTK=y | 120 | CONFIG_PRINTK=y |
98 | CONFIG_BUG=y | 121 | CONFIG_BUG=y |
99 | CONFIG_ELF_CORE=y | 122 | CONFIG_ELF_CORE=y |
100 | CONFIG_COMPAT_BRK=y | ||
101 | CONFIG_BASE_FULL=y | 123 | CONFIG_BASE_FULL=y |
102 | CONFIG_FUTEX=y | 124 | CONFIG_FUTEX=y |
103 | CONFIG_ANON_INODES=y | ||
104 | CONFIG_EPOLL=y | 125 | CONFIG_EPOLL=y |
105 | CONFIG_SIGNALFD=y | 126 | CONFIG_SIGNALFD=y |
106 | CONFIG_TIMERFD=y | 127 | CONFIG_TIMERFD=y |
107 | CONFIG_EVENTFD=y | 128 | CONFIG_EVENTFD=y |
108 | CONFIG_SHMEM=y | 129 | CONFIG_SHMEM=y |
109 | CONFIG_AIO=y | 130 | CONFIG_AIO=y |
131 | CONFIG_HAVE_PERF_EVENTS=y | ||
132 | |||
133 | # | ||
134 | # Kernel Performance Events And Counters | ||
135 | # | ||
136 | # CONFIG_PERF_EVENTS is not set | ||
137 | # CONFIG_PERF_COUNTERS is not set | ||
110 | CONFIG_VM_EVENT_COUNTERS=y | 138 | CONFIG_VM_EVENT_COUNTERS=y |
111 | CONFIG_PCI_QUIRKS=y | 139 | CONFIG_PCI_QUIRKS=y |
112 | CONFIG_SLUB_DEBUG=y | 140 | CONFIG_SLUB_DEBUG=y |
141 | CONFIG_COMPAT_BRK=y | ||
113 | # CONFIG_SLAB is not set | 142 | # CONFIG_SLAB is not set |
114 | CONFIG_SLUB=y | 143 | CONFIG_SLUB=y |
115 | # CONFIG_SLOB is not set | 144 | # CONFIG_SLOB is not set |
@@ -121,6 +150,14 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
121 | CONFIG_HAVE_KPROBES=y | 150 | CONFIG_HAVE_KPROBES=y |
122 | CONFIG_HAVE_KRETPROBES=y | 151 | CONFIG_HAVE_KRETPROBES=y |
123 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 152 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
153 | CONFIG_HAVE_DMA_ATTRS=y | ||
154 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
155 | |||
156 | # | ||
157 | # GCOV-based kernel profiling | ||
158 | # | ||
159 | # CONFIG_GCOV_KERNEL is not set | ||
160 | # CONFIG_SLOW_WORK is not set | ||
124 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 161 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
125 | CONFIG_SLABINFO=y | 162 | CONFIG_SLABINFO=y |
126 | CONFIG_RT_MUTEXES=y | 163 | CONFIG_RT_MUTEXES=y |
@@ -132,8 +169,7 @@ CONFIG_MODULE_UNLOAD=y | |||
132 | # CONFIG_MODVERSIONS is not set | 169 | # CONFIG_MODVERSIONS is not set |
133 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 170 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
134 | CONFIG_BLOCK=y | 171 | CONFIG_BLOCK=y |
135 | CONFIG_LBD=y | 172 | CONFIG_LBDAF=y |
136 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
137 | # CONFIG_BLK_DEV_BSG is not set | 173 | # CONFIG_BLK_DEV_BSG is not set |
138 | # CONFIG_BLK_DEV_INTEGRITY is not set | 174 | # CONFIG_BLK_DEV_INTEGRITY is not set |
139 | 175 | ||
@@ -141,19 +177,41 @@ CONFIG_LBD=y | |||
141 | # IO Schedulers | 177 | # IO Schedulers |
142 | # | 178 | # |
143 | CONFIG_IOSCHED_NOOP=y | 179 | CONFIG_IOSCHED_NOOP=y |
144 | CONFIG_IOSCHED_AS=y | ||
145 | CONFIG_IOSCHED_DEADLINE=y | 180 | CONFIG_IOSCHED_DEADLINE=y |
146 | CONFIG_IOSCHED_CFQ=y | 181 | CONFIG_IOSCHED_CFQ=y |
147 | CONFIG_DEFAULT_AS=y | ||
148 | # CONFIG_DEFAULT_DEADLINE is not set | 182 | # CONFIG_DEFAULT_DEADLINE is not set |
149 | # CONFIG_DEFAULT_CFQ is not set | 183 | CONFIG_DEFAULT_CFQ=y |
150 | # CONFIG_DEFAULT_NOOP is not set | 184 | # CONFIG_DEFAULT_NOOP is not set |
151 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 185 | CONFIG_DEFAULT_IOSCHED="cfq" |
152 | CONFIG_CLASSIC_RCU=y | 186 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
153 | # CONFIG_TREE_RCU is not set | 187 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
154 | # CONFIG_PREEMPT_RCU is not set | 188 | # CONFIG_INLINE_SPIN_LOCK is not set |
155 | # CONFIG_TREE_RCU_TRACE is not set | 189 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
156 | # CONFIG_PREEMPT_RCU_TRACE is not set | 190 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
191 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
192 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
193 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
194 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
195 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
196 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
197 | # CONFIG_INLINE_READ_LOCK is not set | ||
198 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
199 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
200 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
201 | CONFIG_INLINE_READ_UNLOCK=y | ||
202 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
203 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
204 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
205 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
206 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
207 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
208 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
209 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
210 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
211 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
212 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
213 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
214 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
157 | # CONFIG_FREEZER is not set | 215 | # CONFIG_FREEZER is not set |
158 | CONFIG_PPC4xx_PCI_EXPRESS=y | 216 | CONFIG_PPC4xx_PCI_EXPRESS=y |
159 | 217 | ||
@@ -168,12 +226,14 @@ CONFIG_XILINX_VIRTEX=y | |||
168 | CONFIG_ACADIA=y | 226 | CONFIG_ACADIA=y |
169 | CONFIG_EP405=y | 227 | CONFIG_EP405=y |
170 | CONFIG_HCU4=y | 228 | CONFIG_HCU4=y |
229 | CONFIG_HOTFOOT=y | ||
171 | CONFIG_KILAUEA=y | 230 | CONFIG_KILAUEA=y |
172 | CONFIG_MAKALU=y | 231 | CONFIG_MAKALU=y |
173 | CONFIG_WALNUT=y | 232 | CONFIG_WALNUT=y |
174 | CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y | 233 | CONFIG_XILINX_VIRTEX_GENERIC_BOARD=y |
175 | CONFIG_PPC40x_SIMPLE=y | 234 | CONFIG_PPC40x_SIMPLE=y |
176 | CONFIG_405GP=y | 235 | CONFIG_405GP=y |
236 | CONFIG_405EP=y | ||
177 | CONFIG_405EX=y | 237 | CONFIG_405EX=y |
178 | CONFIG_405EZ=y | 238 | CONFIG_405EZ=y |
179 | CONFIG_405GPR=y | 239 | CONFIG_405GPR=y |
@@ -195,6 +255,7 @@ CONFIG_IBM405_ERR51=y | |||
195 | # CONFIG_FSL_ULI1575 is not set | 255 | # CONFIG_FSL_ULI1575 is not set |
196 | CONFIG_OF_RTC=y | 256 | CONFIG_OF_RTC=y |
197 | # CONFIG_SIMPLE_GPIO is not set | 257 | # CONFIG_SIMPLE_GPIO is not set |
258 | # CONFIG_XILINX_PCI is not set | ||
198 | 259 | ||
199 | # | 260 | # |
200 | # Kernel options | 261 | # Kernel options |
@@ -218,10 +279,12 @@ CONFIG_BINFMT_ELF=y | |||
218 | # CONFIG_BINFMT_MISC is not set | 279 | # CONFIG_BINFMT_MISC is not set |
219 | # CONFIG_MATH_EMULATION is not set | 280 | # CONFIG_MATH_EMULATION is not set |
220 | # CONFIG_IOMMU_HELPER is not set | 281 | # CONFIG_IOMMU_HELPER is not set |
221 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 282 | # CONFIG_SWIOTLB is not set |
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 283 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
223 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 284 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
224 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 285 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
286 | CONFIG_SPARSE_IRQ=y | ||
287 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
225 | CONFIG_ARCH_FLATMEM_ENABLE=y | 288 | CONFIG_ARCH_FLATMEM_ENABLE=y |
226 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 289 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
227 | CONFIG_SELECT_MEMORY_MODEL=y | 290 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -237,10 +300,12 @@ CONFIG_MIGRATION=y | |||
237 | CONFIG_ZONE_DMA_FLAG=1 | 300 | CONFIG_ZONE_DMA_FLAG=1 |
238 | CONFIG_BOUNCE=y | 301 | CONFIG_BOUNCE=y |
239 | CONFIG_VIRT_TO_BUS=y | 302 | CONFIG_VIRT_TO_BUS=y |
240 | CONFIG_UNEVICTABLE_LRU=y | 303 | # CONFIG_KSM is not set |
304 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
241 | CONFIG_PPC_4K_PAGES=y | 305 | CONFIG_PPC_4K_PAGES=y |
242 | # CONFIG_PPC_16K_PAGES is not set | 306 | # CONFIG_PPC_16K_PAGES is not set |
243 | # CONFIG_PPC_64K_PAGES is not set | 307 | # CONFIG_PPC_64K_PAGES is not set |
308 | # CONFIG_PPC_256K_PAGES is not set | ||
244 | CONFIG_FORCE_MAX_ZONEORDER=11 | 309 | CONFIG_FORCE_MAX_ZONEORDER=11 |
245 | CONFIG_PROC_DEVICETREE=y | 310 | CONFIG_PROC_DEVICETREE=y |
246 | # CONFIG_CMDLINE_BOOL is not set | 311 | # CONFIG_CMDLINE_BOOL is not set |
@@ -265,6 +330,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
265 | # CONFIG_PCI_LEGACY is not set | 330 | # CONFIG_PCI_LEGACY is not set |
266 | # CONFIG_PCI_DEBUG is not set | 331 | # CONFIG_PCI_DEBUG is not set |
267 | # CONFIG_PCI_STUB is not set | 332 | # CONFIG_PCI_STUB is not set |
333 | # CONFIG_PCI_IOV is not set | ||
268 | # CONFIG_PCCARD is not set | 334 | # CONFIG_PCCARD is not set |
269 | # CONFIG_HOTPLUG_PCI is not set | 335 | # CONFIG_HOTPLUG_PCI is not set |
270 | # CONFIG_HAS_RAPIDIO is not set | 336 | # CONFIG_HAS_RAPIDIO is not set |
@@ -282,14 +348,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
282 | CONFIG_KERNEL_START=0xc0000000 | 348 | CONFIG_KERNEL_START=0xc0000000 |
283 | CONFIG_PHYSICAL_START=0x00000000 | 349 | CONFIG_PHYSICAL_START=0x00000000 |
284 | CONFIG_TASK_SIZE=0xc0000000 | 350 | CONFIG_TASK_SIZE=0xc0000000 |
285 | CONFIG_CONSISTENT_START=0xff100000 | ||
286 | CONFIG_CONSISTENT_SIZE=0x00200000 | 351 | CONFIG_CONSISTENT_SIZE=0x00200000 |
287 | CONFIG_NET=y | 352 | CONFIG_NET=y |
288 | 353 | ||
289 | # | 354 | # |
290 | # Networking options | 355 | # Networking options |
291 | # | 356 | # |
292 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
293 | CONFIG_PACKET=y | 357 | CONFIG_PACKET=y |
294 | # CONFIG_PACKET_MMAP is not set | 358 | # CONFIG_PACKET_MMAP is not set |
295 | CONFIG_UNIX=y | 359 | CONFIG_UNIX=y |
@@ -341,6 +405,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
341 | CONFIG_INET6_XFRM_MODE_BEET=m | 405 | CONFIG_INET6_XFRM_MODE_BEET=m |
342 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 406 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
343 | CONFIG_IPV6_SIT=m | 407 | CONFIG_IPV6_SIT=m |
408 | # CONFIG_IPV6_SIT_6RD is not set | ||
344 | CONFIG_IPV6_NDISC_NODETYPE=y | 409 | CONFIG_IPV6_NDISC_NODETYPE=y |
345 | # CONFIG_IPV6_TUNNEL is not set | 410 | # CONFIG_IPV6_TUNNEL is not set |
346 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 411 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -349,6 +414,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
349 | # CONFIG_NETFILTER is not set | 414 | # CONFIG_NETFILTER is not set |
350 | # CONFIG_IP_DCCP is not set | 415 | # CONFIG_IP_DCCP is not set |
351 | # CONFIG_IP_SCTP is not set | 416 | # CONFIG_IP_SCTP is not set |
417 | # CONFIG_RDS is not set | ||
352 | # CONFIG_TIPC is not set | 418 | # CONFIG_TIPC is not set |
353 | # CONFIG_ATM is not set | 419 | # CONFIG_ATM is not set |
354 | # CONFIG_BRIDGE is not set | 420 | # CONFIG_BRIDGE is not set |
@@ -362,6 +428,8 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
362 | # CONFIG_LAPB is not set | 428 | # CONFIG_LAPB is not set |
363 | # CONFIG_ECONET is not set | 429 | # CONFIG_ECONET is not set |
364 | # CONFIG_WAN_ROUTER is not set | 430 | # CONFIG_WAN_ROUTER is not set |
431 | # CONFIG_PHONET is not set | ||
432 | # CONFIG_IEEE802154 is not set | ||
365 | # CONFIG_NET_SCHED is not set | 433 | # CONFIG_NET_SCHED is not set |
366 | # CONFIG_DCB is not set | 434 | # CONFIG_DCB is not set |
367 | 435 | ||
@@ -374,13 +442,13 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
374 | # CONFIG_IRDA is not set | 442 | # CONFIG_IRDA is not set |
375 | # CONFIG_BT is not set | 443 | # CONFIG_BT is not set |
376 | # CONFIG_AF_RXRPC is not set | 444 | # CONFIG_AF_RXRPC is not set |
377 | # CONFIG_PHONET is not set | ||
378 | CONFIG_WIRELESS=y | 445 | CONFIG_WIRELESS=y |
379 | # CONFIG_CFG80211 is not set | 446 | # CONFIG_CFG80211 is not set |
380 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
381 | # CONFIG_WIRELESS_EXT is not set | ||
382 | # CONFIG_LIB80211 is not set | 447 | # CONFIG_LIB80211 is not set |
383 | # CONFIG_MAC80211 is not set | 448 | |
449 | # | ||
450 | # CFG80211 needs to be enabled for MAC80211 | ||
451 | # | ||
384 | # CONFIG_WIMAX is not set | 452 | # CONFIG_WIMAX is not set |
385 | # CONFIG_RFKILL is not set | 453 | # CONFIG_RFKILL is not set |
386 | # CONFIG_NET_9P is not set | 454 | # CONFIG_NET_9P is not set |
@@ -393,6 +461,7 @@ CONFIG_WIRELESS_OLD_REGULATORY=y | |||
393 | # Generic Driver Options | 461 | # Generic Driver Options |
394 | # | 462 | # |
395 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 463 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
464 | # CONFIG_DEVTMPFS is not set | ||
396 | CONFIG_STANDALONE=y | 465 | CONFIG_STANDALONE=y |
397 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 466 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
398 | CONFIG_FW_LOADER=y | 467 | CONFIG_FW_LOADER=y |
@@ -405,9 +474,9 @@ CONFIG_CONNECTOR=y | |||
405 | CONFIG_PROC_EVENTS=y | 474 | CONFIG_PROC_EVENTS=y |
406 | CONFIG_MTD=y | 475 | CONFIG_MTD=y |
407 | # CONFIG_MTD_DEBUG is not set | 476 | # CONFIG_MTD_DEBUG is not set |
477 | # CONFIG_MTD_TESTS is not set | ||
408 | # CONFIG_MTD_CONCAT is not set | 478 | # CONFIG_MTD_CONCAT is not set |
409 | CONFIG_MTD_PARTITIONS=y | 479 | CONFIG_MTD_PARTITIONS=y |
410 | # CONFIG_MTD_TESTS is not set | ||
411 | # CONFIG_MTD_REDBOOT_PARTS is not set | 480 | # CONFIG_MTD_REDBOOT_PARTS is not set |
412 | CONFIG_MTD_CMDLINE_PARTS=y | 481 | CONFIG_MTD_CMDLINE_PARTS=y |
413 | CONFIG_MTD_OF_PARTS=y | 482 | CONFIG_MTD_OF_PARTS=y |
@@ -483,7 +552,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
483 | # LPDDR flash memory drivers | 552 | # LPDDR flash memory drivers |
484 | # | 553 | # |
485 | # CONFIG_MTD_LPDDR is not set | 554 | # CONFIG_MTD_LPDDR is not set |
486 | # CONFIG_MTD_QINFO_PROBE is not set | ||
487 | 555 | ||
488 | # | 556 | # |
489 | # UBI - Unsorted block images | 557 | # UBI - Unsorted block images |
@@ -491,7 +559,7 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
491 | CONFIG_MTD_UBI=m | 559 | CONFIG_MTD_UBI=m |
492 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | 560 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 |
493 | CONFIG_MTD_UBI_BEB_RESERVE=1 | 561 | CONFIG_MTD_UBI_BEB_RESERVE=1 |
494 | CONFIG_MTD_UBI_GLUEBI=y | 562 | CONFIG_MTD_UBI_GLUEBI=m |
495 | 563 | ||
496 | # | 564 | # |
497 | # UBI debugging options | 565 | # UBI debugging options |
@@ -509,6 +577,7 @@ CONFIG_BLK_DEV=y | |||
509 | # CONFIG_BLK_DEV_UMEM is not set | 577 | # CONFIG_BLK_DEV_UMEM is not set |
510 | # CONFIG_BLK_DEV_COW_COMMON is not set | 578 | # CONFIG_BLK_DEV_COW_COMMON is not set |
511 | # CONFIG_BLK_DEV_LOOP is not set | 579 | # CONFIG_BLK_DEV_LOOP is not set |
580 | # CONFIG_BLK_DEV_DRBD is not set | ||
512 | # CONFIG_BLK_DEV_NBD is not set | 581 | # CONFIG_BLK_DEV_NBD is not set |
513 | # CONFIG_BLK_DEV_SX8 is not set | 582 | # CONFIG_BLK_DEV_SX8 is not set |
514 | CONFIG_BLK_DEV_RAM=y | 583 | CONFIG_BLK_DEV_RAM=y |
@@ -520,14 +589,25 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
520 | CONFIG_XILINX_SYSACE=m | 589 | CONFIG_XILINX_SYSACE=m |
521 | # CONFIG_BLK_DEV_HD is not set | 590 | # CONFIG_BLK_DEV_HD is not set |
522 | CONFIG_MISC_DEVICES=y | 591 | CONFIG_MISC_DEVICES=y |
592 | # CONFIG_AD525X_DPOT is not set | ||
523 | # CONFIG_PHANTOM is not set | 593 | # CONFIG_PHANTOM is not set |
524 | # CONFIG_EEPROM_93CX6 is not set | ||
525 | # CONFIG_SGI_IOC4 is not set | 594 | # CONFIG_SGI_IOC4 is not set |
526 | # CONFIG_TIFM_CORE is not set | 595 | # CONFIG_TIFM_CORE is not set |
527 | # CONFIG_ICS932S401 is not set | 596 | # CONFIG_ICS932S401 is not set |
528 | # CONFIG_ENCLOSURE_SERVICES is not set | 597 | # CONFIG_ENCLOSURE_SERVICES is not set |
529 | # CONFIG_HP_ILO is not set | 598 | # CONFIG_HP_ILO is not set |
599 | # CONFIG_ISL29003 is not set | ||
600 | # CONFIG_DS1682 is not set | ||
530 | # CONFIG_C2PORT is not set | 601 | # CONFIG_C2PORT is not set |
602 | |||
603 | # | ||
604 | # EEPROM support | ||
605 | # | ||
606 | # CONFIG_EEPROM_AT24 is not set | ||
607 | # CONFIG_EEPROM_LEGACY is not set | ||
608 | # CONFIG_EEPROM_MAX6875 is not set | ||
609 | # CONFIG_EEPROM_93CX6 is not set | ||
610 | # CONFIG_CB710_CORE is not set | ||
531 | CONFIG_HAVE_IDE=y | 611 | CONFIG_HAVE_IDE=y |
532 | # CONFIG_IDE is not set | 612 | # CONFIG_IDE is not set |
533 | 613 | ||
@@ -547,7 +627,11 @@ CONFIG_HAVE_IDE=y | |||
547 | # | 627 | # |
548 | 628 | ||
549 | # | 629 | # |
550 | # Enable only one of the two stacks, unless you know what you are doing | 630 | # You can enable one or both FireWire driver stacks. |
631 | # | ||
632 | |||
633 | # | ||
634 | # See the help texts for more information. | ||
551 | # | 635 | # |
552 | # CONFIG_FIREWIRE is not set | 636 | # CONFIG_FIREWIRE is not set |
553 | # CONFIG_IEEE1394 is not set | 637 | # CONFIG_IEEE1394 is not set |
@@ -568,6 +652,8 @@ CONFIG_NET_ETHERNET=y | |||
568 | # CONFIG_SUNGEM is not set | 652 | # CONFIG_SUNGEM is not set |
569 | # CONFIG_CASSINI is not set | 653 | # CONFIG_CASSINI is not set |
570 | # CONFIG_NET_VENDOR_3COM is not set | 654 | # CONFIG_NET_VENDOR_3COM is not set |
655 | # CONFIG_ETHOC is not set | ||
656 | # CONFIG_DNET is not set | ||
571 | # CONFIG_NET_TULIP is not set | 657 | # CONFIG_NET_TULIP is not set |
572 | # CONFIG_HP100 is not set | 658 | # CONFIG_HP100 is not set |
573 | CONFIG_IBM_NEW_EMAC=y | 659 | CONFIG_IBM_NEW_EMAC=y |
@@ -586,7 +672,10 @@ CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT=y | |||
586 | CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y | 672 | CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR=y |
587 | # CONFIG_NET_PCI is not set | 673 | # CONFIG_NET_PCI is not set |
588 | # CONFIG_B44 is not set | 674 | # CONFIG_B44 is not set |
675 | # CONFIG_KS8842 is not set | ||
676 | # CONFIG_KS8851_MLL is not set | ||
589 | # CONFIG_ATL2 is not set | 677 | # CONFIG_ATL2 is not set |
678 | # CONFIG_XILINX_EMACLITE is not set | ||
590 | CONFIG_NETDEV_1000=y | 679 | CONFIG_NETDEV_1000=y |
591 | # CONFIG_ACENIC is not set | 680 | # CONFIG_ACENIC is not set |
592 | # CONFIG_DL2K is not set | 681 | # CONFIG_DL2K is not set |
@@ -594,6 +683,7 @@ CONFIG_NETDEV_1000=y | |||
594 | # CONFIG_E1000E is not set | 683 | # CONFIG_E1000E is not set |
595 | # CONFIG_IP1000 is not set | 684 | # CONFIG_IP1000 is not set |
596 | # CONFIG_IGB is not set | 685 | # CONFIG_IGB is not set |
686 | # CONFIG_IGBVF is not set | ||
597 | # CONFIG_NS83820 is not set | 687 | # CONFIG_NS83820 is not set |
598 | # CONFIG_HAMACHI is not set | 688 | # CONFIG_HAMACHI is not set |
599 | # CONFIG_YELLOWFIN is not set | 689 | # CONFIG_YELLOWFIN is not set |
@@ -604,9 +694,13 @@ CONFIG_NETDEV_1000=y | |||
604 | # CONFIG_VIA_VELOCITY is not set | 694 | # CONFIG_VIA_VELOCITY is not set |
605 | # CONFIG_TIGON3 is not set | 695 | # CONFIG_TIGON3 is not set |
606 | # CONFIG_BNX2 is not set | 696 | # CONFIG_BNX2 is not set |
697 | # CONFIG_CNIC is not set | ||
698 | # CONFIG_MV643XX_ETH is not set | ||
699 | # CONFIG_XILINX_LL_TEMAC is not set | ||
607 | # CONFIG_QLA3XXX is not set | 700 | # CONFIG_QLA3XXX is not set |
608 | # CONFIG_ATL1 is not set | 701 | # CONFIG_ATL1 is not set |
609 | # CONFIG_ATL1E is not set | 702 | # CONFIG_ATL1E is not set |
703 | # CONFIG_ATL1C is not set | ||
610 | # CONFIG_JME is not set | 704 | # CONFIG_JME is not set |
611 | CONFIG_NETDEV_10000=y | 705 | CONFIG_NETDEV_10000=y |
612 | # CONFIG_CHELSIO_T1 is not set | 706 | # CONFIG_CHELSIO_T1 is not set |
@@ -616,6 +710,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
616 | # CONFIG_IXGBE is not set | 710 | # CONFIG_IXGBE is not set |
617 | # CONFIG_IXGB is not set | 711 | # CONFIG_IXGB is not set |
618 | # CONFIG_S2IO is not set | 712 | # CONFIG_S2IO is not set |
713 | # CONFIG_VXGE is not set | ||
619 | # CONFIG_MYRI10GE is not set | 714 | # CONFIG_MYRI10GE is not set |
620 | # CONFIG_NETXEN_NIC is not set | 715 | # CONFIG_NETXEN_NIC is not set |
621 | # CONFIG_NIU is not set | 716 | # CONFIG_NIU is not set |
@@ -625,14 +720,13 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
625 | # CONFIG_BNX2X is not set | 720 | # CONFIG_BNX2X is not set |
626 | # CONFIG_QLGE is not set | 721 | # CONFIG_QLGE is not set |
627 | # CONFIG_SFC is not set | 722 | # CONFIG_SFC is not set |
723 | # CONFIG_BE2NET is not set | ||
628 | # CONFIG_TR is not set | 724 | # CONFIG_TR is not set |
629 | 725 | CONFIG_WLAN=y | |
630 | # | 726 | # CONFIG_AIRO is not set |
631 | # Wireless LAN | 727 | # CONFIG_ATMEL is not set |
632 | # | 728 | # CONFIG_PRISM54 is not set |
633 | # CONFIG_WLAN_PRE80211 is not set | 729 | # CONFIG_HOSTAP is not set |
634 | # CONFIG_WLAN_80211 is not set | ||
635 | # CONFIG_IWLWIFI_LEDS is not set | ||
636 | 730 | ||
637 | # | 731 | # |
638 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 732 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -645,6 +739,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
645 | # CONFIG_NETCONSOLE is not set | 739 | # CONFIG_NETCONSOLE is not set |
646 | # CONFIG_NETPOLL is not set | 740 | # CONFIG_NETPOLL is not set |
647 | # CONFIG_NET_POLL_CONTROLLER is not set | 741 | # CONFIG_NET_POLL_CONTROLLER is not set |
742 | # CONFIG_VMXNET3 is not set | ||
648 | # CONFIG_ISDN is not set | 743 | # CONFIG_ISDN is not set |
649 | # CONFIG_PHONE is not set | 744 | # CONFIG_PHONE is not set |
650 | 745 | ||
@@ -663,6 +758,7 @@ CONFIG_SERIO=m | |||
663 | # CONFIG_SERIO_LIBPS2 is not set | 758 | # CONFIG_SERIO_LIBPS2 is not set |
664 | # CONFIG_SERIO_RAW is not set | 759 | # CONFIG_SERIO_RAW is not set |
665 | CONFIG_SERIO_XILINX_XPS_PS2=m | 760 | CONFIG_SERIO_XILINX_XPS_PS2=m |
761 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
666 | # CONFIG_GAMEPORT is not set | 762 | # CONFIG_GAMEPORT is not set |
667 | 763 | ||
668 | # | 764 | # |
@@ -697,6 +793,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
697 | # CONFIG_SERIAL_JSM is not set | 793 | # CONFIG_SERIAL_JSM is not set |
698 | CONFIG_SERIAL_OF_PLATFORM=y | 794 | CONFIG_SERIAL_OF_PLATFORM=y |
699 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 795 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
796 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
700 | CONFIG_UNIX98_PTYS=y | 797 | CONFIG_UNIX98_PTYS=y |
701 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 798 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
702 | CONFIG_LEGACY_PTYS=y | 799 | CONFIG_LEGACY_PTYS=y |
@@ -714,6 +811,7 @@ CONFIG_XILINX_HWICAP=m | |||
714 | CONFIG_DEVPORT=y | 811 | CONFIG_DEVPORT=y |
715 | CONFIG_I2C=m | 812 | CONFIG_I2C=m |
716 | CONFIG_I2C_BOARDINFO=y | 813 | CONFIG_I2C_BOARDINFO=y |
814 | CONFIG_I2C_COMPAT=y | ||
717 | CONFIG_I2C_CHARDEV=m | 815 | CONFIG_I2C_CHARDEV=m |
718 | CONFIG_I2C_HELPER_AUTO=y | 816 | CONFIG_I2C_HELPER_AUTO=y |
719 | CONFIG_I2C_ALGOBIT=m | 817 | CONFIG_I2C_ALGOBIT=m |
@@ -756,11 +854,6 @@ CONFIG_I2C_IBM_IIC=m | |||
756 | # CONFIG_I2C_TAOS_EVM is not set | 854 | # CONFIG_I2C_TAOS_EVM is not set |
757 | 855 | ||
758 | # | 856 | # |
759 | # Graphics adapter I2C/DDC channel drivers | ||
760 | # | ||
761 | # CONFIG_I2C_VOODOO3 is not set | ||
762 | |||
763 | # | ||
764 | # Other I2C/SMBus bus drivers | 857 | # Other I2C/SMBus bus drivers |
765 | # | 858 | # |
766 | # CONFIG_I2C_PCA_PLATFORM is not set | 859 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -769,20 +862,17 @@ CONFIG_I2C_IBM_IIC=m | |||
769 | # | 862 | # |
770 | # Miscellaneous I2C Chip support | 863 | # Miscellaneous I2C Chip support |
771 | # | 864 | # |
772 | # CONFIG_DS1682 is not set | ||
773 | # CONFIG_EEPROM_AT24 is not set | ||
774 | # CONFIG_EEPROM_LEGACY is not set | ||
775 | # CONFIG_SENSORS_PCF8574 is not set | ||
776 | # CONFIG_PCF8575 is not set | ||
777 | # CONFIG_SENSORS_PCA9539 is not set | ||
778 | # CONFIG_SENSORS_PCF8591 is not set | ||
779 | # CONFIG_SENSORS_MAX6875 is not set | ||
780 | # CONFIG_SENSORS_TSL2550 is not set | 865 | # CONFIG_SENSORS_TSL2550 is not set |
781 | # CONFIG_I2C_DEBUG_CORE is not set | 866 | # CONFIG_I2C_DEBUG_CORE is not set |
782 | # CONFIG_I2C_DEBUG_ALGO is not set | 867 | # CONFIG_I2C_DEBUG_ALGO is not set |
783 | # CONFIG_I2C_DEBUG_BUS is not set | 868 | # CONFIG_I2C_DEBUG_BUS is not set |
784 | # CONFIG_I2C_DEBUG_CHIP is not set | 869 | # CONFIG_I2C_DEBUG_CHIP is not set |
785 | # CONFIG_SPI is not set | 870 | # CONFIG_SPI is not set |
871 | |||
872 | # | ||
873 | # PPS support | ||
874 | # | ||
875 | # CONFIG_PPS is not set | ||
786 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 876 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
787 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | 877 | CONFIG_ARCH_REQUIRE_GPIOLIB=y |
788 | CONFIG_GPIOLIB=y | 878 | CONFIG_GPIOLIB=y |
@@ -804,11 +894,17 @@ CONFIG_GPIO_XILINX=y | |||
804 | # | 894 | # |
805 | # PCI GPIO expanders: | 895 | # PCI GPIO expanders: |
806 | # | 896 | # |
897 | # CONFIG_GPIO_CS5535 is not set | ||
807 | # CONFIG_GPIO_BT8XX is not set | 898 | # CONFIG_GPIO_BT8XX is not set |
899 | # CONFIG_GPIO_LANGWELL is not set | ||
808 | 900 | ||
809 | # | 901 | # |
810 | # SPI GPIO expanders: | 902 | # SPI GPIO expanders: |
811 | # | 903 | # |
904 | |||
905 | # | ||
906 | # AC97 GPIO expanders: | ||
907 | # | ||
812 | # CONFIG_W1 is not set | 908 | # CONFIG_W1 is not set |
813 | # CONFIG_POWER_SUPPLY is not set | 909 | # CONFIG_POWER_SUPPLY is not set |
814 | # CONFIG_HWMON is not set | 910 | # CONFIG_HWMON is not set |
@@ -832,28 +928,15 @@ CONFIG_SSB_POSSIBLE=y | |||
832 | # CONFIG_MFD_WM8400 is not set | 928 | # CONFIG_MFD_WM8400 is not set |
833 | # CONFIG_MFD_WM8350_I2C is not set | 929 | # CONFIG_MFD_WM8350_I2C is not set |
834 | # CONFIG_MFD_PCF50633 is not set | 930 | # CONFIG_MFD_PCF50633 is not set |
931 | # CONFIG_AB3100_CORE is not set | ||
835 | # CONFIG_REGULATOR is not set | 932 | # CONFIG_REGULATOR is not set |
836 | 933 | # CONFIG_MEDIA_SUPPORT is not set | |
837 | # | ||
838 | # Multimedia devices | ||
839 | # | ||
840 | |||
841 | # | ||
842 | # Multimedia core support | ||
843 | # | ||
844 | # CONFIG_VIDEO_DEV is not set | ||
845 | # CONFIG_DVB_CORE is not set | ||
846 | # CONFIG_VIDEO_MEDIA is not set | ||
847 | |||
848 | # | ||
849 | # Multimedia drivers | ||
850 | # | ||
851 | # CONFIG_DAB is not set | ||
852 | 934 | ||
853 | # | 935 | # |
854 | # Graphics support | 936 | # Graphics support |
855 | # | 937 | # |
856 | # CONFIG_AGP is not set | 938 | # CONFIG_AGP is not set |
939 | CONFIG_VGA_ARB=y | ||
857 | # CONFIG_DRM is not set | 940 | # CONFIG_DRM is not set |
858 | # CONFIG_VGASTATE is not set | 941 | # CONFIG_VGASTATE is not set |
859 | CONFIG_VIDEO_OUTPUT_CONTROL=m | 942 | CONFIG_VIDEO_OUTPUT_CONTROL=m |
@@ -909,6 +992,7 @@ CONFIG_FB_XILINX=m | |||
909 | # CONFIG_FB_VIRTUAL is not set | 992 | # CONFIG_FB_VIRTUAL is not set |
910 | # CONFIG_FB_METRONOME is not set | 993 | # CONFIG_FB_METRONOME is not set |
911 | # CONFIG_FB_MB862XX is not set | 994 | # CONFIG_FB_MB862XX is not set |
995 | # CONFIG_FB_BROADSHEET is not set | ||
912 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 996 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
913 | 997 | ||
914 | # | 998 | # |
@@ -930,7 +1014,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
930 | # | 1014 | # |
931 | 1015 | ||
932 | # | 1016 | # |
933 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 1017 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
934 | # | 1018 | # |
935 | # CONFIG_USB_GADGET is not set | 1019 | # CONFIG_USB_GADGET is not set |
936 | 1020 | ||
@@ -946,7 +1030,12 @@ CONFIG_USB_ARCH_HAS_EHCI=y | |||
946 | # CONFIG_EDAC is not set | 1030 | # CONFIG_EDAC is not set |
947 | # CONFIG_RTC_CLASS is not set | 1031 | # CONFIG_RTC_CLASS is not set |
948 | # CONFIG_DMADEVICES is not set | 1032 | # CONFIG_DMADEVICES is not set |
1033 | # CONFIG_AUXDISPLAY is not set | ||
949 | # CONFIG_UIO is not set | 1034 | # CONFIG_UIO is not set |
1035 | |||
1036 | # | ||
1037 | # TI VLYNQ | ||
1038 | # | ||
950 | # CONFIG_STAGING is not set | 1039 | # CONFIG_STAGING is not set |
951 | 1040 | ||
952 | # | 1041 | # |
@@ -956,6 +1045,7 @@ CONFIG_EXT2_FS=y | |||
956 | # CONFIG_EXT2_FS_XATTR is not set | 1045 | # CONFIG_EXT2_FS_XATTR is not set |
957 | # CONFIG_EXT2_FS_XIP is not set | 1046 | # CONFIG_EXT2_FS_XIP is not set |
958 | CONFIG_EXT3_FS=m | 1047 | CONFIG_EXT3_FS=m |
1048 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
959 | CONFIG_EXT3_FS_XATTR=y | 1049 | CONFIG_EXT3_FS_XATTR=y |
960 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1050 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
961 | # CONFIG_EXT3_FS_SECURITY is not set | 1051 | # CONFIG_EXT3_FS_SECURITY is not set |
@@ -966,11 +1056,13 @@ CONFIG_FS_MBCACHE=m | |||
966 | # CONFIG_REISERFS_FS is not set | 1056 | # CONFIG_REISERFS_FS is not set |
967 | # CONFIG_JFS_FS is not set | 1057 | # CONFIG_JFS_FS is not set |
968 | # CONFIG_FS_POSIX_ACL is not set | 1058 | # CONFIG_FS_POSIX_ACL is not set |
969 | CONFIG_FILE_LOCKING=y | ||
970 | # CONFIG_XFS_FS is not set | 1059 | # CONFIG_XFS_FS is not set |
971 | # CONFIG_GFS2_FS is not set | 1060 | # CONFIG_GFS2_FS is not set |
972 | # CONFIG_OCFS2_FS is not set | 1061 | # CONFIG_OCFS2_FS is not set |
973 | # CONFIG_BTRFS_FS is not set | 1062 | # CONFIG_BTRFS_FS is not set |
1063 | # CONFIG_NILFS2_FS is not set | ||
1064 | CONFIG_FILE_LOCKING=y | ||
1065 | CONFIG_FSNOTIFY=y | ||
974 | CONFIG_DNOTIFY=y | 1066 | CONFIG_DNOTIFY=y |
975 | CONFIG_INOTIFY=y | 1067 | CONFIG_INOTIFY=y |
976 | CONFIG_INOTIFY_USER=y | 1068 | CONFIG_INOTIFY_USER=y |
@@ -980,6 +1072,11 @@ CONFIG_INOTIFY_USER=y | |||
980 | # CONFIG_FUSE_FS is not set | 1072 | # CONFIG_FUSE_FS is not set |
981 | 1073 | ||
982 | # | 1074 | # |
1075 | # Caches | ||
1076 | # | ||
1077 | # CONFIG_FSCACHE is not set | ||
1078 | |||
1079 | # | ||
983 | # CD-ROM/DVD Filesystems | 1080 | # CD-ROM/DVD Filesystems |
984 | # | 1081 | # |
985 | # CONFIG_ISO9660_FS is not set | 1082 | # CONFIG_ISO9660_FS is not set |
@@ -1053,7 +1150,6 @@ CONFIG_LOCKD=y | |||
1053 | CONFIG_LOCKD_V4=y | 1150 | CONFIG_LOCKD_V4=y |
1054 | CONFIG_NFS_COMMON=y | 1151 | CONFIG_NFS_COMMON=y |
1055 | CONFIG_SUNRPC=y | 1152 | CONFIG_SUNRPC=y |
1056 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1057 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1153 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1058 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1154 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1059 | # CONFIG_SMB_FS is not set | 1155 | # CONFIG_SMB_FS is not set |
@@ -1108,6 +1204,7 @@ CONFIG_NLS_ISO8859_1=m | |||
1108 | # CONFIG_NLS_KOI8_U is not set | 1204 | # CONFIG_NLS_KOI8_U is not set |
1109 | # CONFIG_NLS_UTF8 is not set | 1205 | # CONFIG_NLS_UTF8 is not set |
1110 | # CONFIG_DLM is not set | 1206 | # CONFIG_DLM is not set |
1207 | # CONFIG_BINARY_PRINTF is not set | ||
1111 | 1208 | ||
1112 | # | 1209 | # |
1113 | # Library routines | 1210 | # Library routines |
@@ -1125,11 +1222,13 @@ CONFIG_ZLIB_INFLATE=y | |||
1125 | CONFIG_ZLIB_DEFLATE=m | 1222 | CONFIG_ZLIB_DEFLATE=m |
1126 | CONFIG_LZO_COMPRESS=m | 1223 | CONFIG_LZO_COMPRESS=m |
1127 | CONFIG_LZO_DECOMPRESS=m | 1224 | CONFIG_LZO_DECOMPRESS=m |
1128 | CONFIG_PLIST=y | 1225 | CONFIG_DECOMPRESS_GZIP=y |
1129 | CONFIG_HAS_IOMEM=y | 1226 | CONFIG_HAS_IOMEM=y |
1130 | CONFIG_HAS_IOPORT=y | 1227 | CONFIG_HAS_IOPORT=y |
1131 | CONFIG_HAS_DMA=y | 1228 | CONFIG_HAS_DMA=y |
1132 | CONFIG_HAVE_LMB=y | 1229 | CONFIG_HAVE_LMB=y |
1230 | CONFIG_NLATTR=y | ||
1231 | CONFIG_GENERIC_ATOMIC64=y | ||
1133 | 1232 | ||
1134 | # | 1233 | # |
1135 | # Kernel hacking | 1234 | # Kernel hacking |
@@ -1139,6 +1238,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1139 | CONFIG_ENABLE_MUST_CHECK=y | 1238 | CONFIG_ENABLE_MUST_CHECK=y |
1140 | CONFIG_FRAME_WARN=1024 | 1239 | CONFIG_FRAME_WARN=1024 |
1141 | CONFIG_MAGIC_SYSRQ=y | 1240 | CONFIG_MAGIC_SYSRQ=y |
1241 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1142 | # CONFIG_UNUSED_SYMBOLS is not set | 1242 | # CONFIG_UNUSED_SYMBOLS is not set |
1143 | CONFIG_DEBUG_FS=y | 1243 | CONFIG_DEBUG_FS=y |
1144 | # CONFIG_HEADERS_CHECK is not set | 1244 | # CONFIG_HEADERS_CHECK is not set |
@@ -1147,16 +1247,23 @@ CONFIG_DEBUG_KERNEL=y | |||
1147 | CONFIG_DETECT_SOFTLOCKUP=y | 1247 | CONFIG_DETECT_SOFTLOCKUP=y |
1148 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1248 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
1149 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1249 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1250 | CONFIG_DETECT_HUNG_TASK=y | ||
1251 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1252 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
1150 | CONFIG_SCHED_DEBUG=y | 1253 | CONFIG_SCHED_DEBUG=y |
1151 | # CONFIG_SCHEDSTATS is not set | 1254 | # CONFIG_SCHEDSTATS is not set |
1152 | # CONFIG_TIMER_STATS is not set | 1255 | # CONFIG_TIMER_STATS is not set |
1153 | # CONFIG_DEBUG_OBJECTS is not set | 1256 | # CONFIG_DEBUG_OBJECTS is not set |
1154 | # CONFIG_SLUB_DEBUG_ON is not set | 1257 | # CONFIG_SLUB_DEBUG_ON is not set |
1155 | # CONFIG_SLUB_STATS is not set | 1258 | # CONFIG_SLUB_STATS is not set |
1259 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1156 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1260 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1157 | # CONFIG_RT_MUTEX_TESTER is not set | 1261 | # CONFIG_RT_MUTEX_TESTER is not set |
1158 | # CONFIG_DEBUG_SPINLOCK is not set | 1262 | # CONFIG_DEBUG_SPINLOCK is not set |
1159 | # CONFIG_DEBUG_MUTEXES is not set | 1263 | # CONFIG_DEBUG_MUTEXES is not set |
1264 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1265 | # CONFIG_PROVE_LOCKING is not set | ||
1266 | # CONFIG_LOCK_STAT is not set | ||
1160 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1267 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1161 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1268 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1162 | # CONFIG_DEBUG_KOBJECT is not set | 1269 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1168,35 +1275,45 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1168 | # CONFIG_DEBUG_LIST is not set | 1275 | # CONFIG_DEBUG_LIST is not set |
1169 | # CONFIG_DEBUG_SG is not set | 1276 | # CONFIG_DEBUG_SG is not set |
1170 | # CONFIG_DEBUG_NOTIFIERS is not set | 1277 | # CONFIG_DEBUG_NOTIFIERS is not set |
1171 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1278 | # CONFIG_DEBUG_CREDENTIALS is not set |
1172 | # CONFIG_RCU_TORTURE_TEST is not set | 1279 | # CONFIG_RCU_TORTURE_TEST is not set |
1173 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1280 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1174 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1281 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1175 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1282 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1283 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1176 | # CONFIG_FAULT_INJECTION is not set | 1284 | # CONFIG_FAULT_INJECTION is not set |
1177 | # CONFIG_LATENCYTOP is not set | 1285 | # CONFIG_LATENCYTOP is not set |
1178 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1286 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1287 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1179 | CONFIG_HAVE_FUNCTION_TRACER=y | 1288 | CONFIG_HAVE_FUNCTION_TRACER=y |
1289 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1180 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1290 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1181 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1291 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1182 | 1292 | CONFIG_TRACING_SUPPORT=y | |
1183 | # | 1293 | CONFIG_FTRACE=y |
1184 | # Tracers | ||
1185 | # | ||
1186 | # CONFIG_FUNCTION_TRACER is not set | 1294 | # CONFIG_FUNCTION_TRACER is not set |
1295 | # CONFIG_IRQSOFF_TRACER is not set | ||
1187 | # CONFIG_SCHED_TRACER is not set | 1296 | # CONFIG_SCHED_TRACER is not set |
1188 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1297 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1189 | # CONFIG_BOOT_TRACER is not set | 1298 | # CONFIG_BOOT_TRACER is not set |
1190 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1299 | CONFIG_BRANCH_PROFILE_NONE=y |
1300 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1301 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
1191 | # CONFIG_STACK_TRACER is not set | 1302 | # CONFIG_STACK_TRACER is not set |
1192 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1303 | # CONFIG_KMEMTRACE is not set |
1304 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1305 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1306 | # CONFIG_DYNAMIC_DEBUG is not set | ||
1307 | # CONFIG_DMA_API_DEBUG is not set | ||
1193 | # CONFIG_SAMPLES is not set | 1308 | # CONFIG_SAMPLES is not set |
1194 | CONFIG_HAVE_ARCH_KGDB=y | 1309 | CONFIG_HAVE_ARCH_KGDB=y |
1195 | # CONFIG_KGDB is not set | 1310 | # CONFIG_KGDB is not set |
1311 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1312 | CONFIG_PPC_WERROR=y | ||
1196 | CONFIG_PRINT_STACK_DEPTH=64 | 1313 | CONFIG_PRINT_STACK_DEPTH=64 |
1197 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1314 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1198 | # CONFIG_DEBUG_STACK_USAGE is not set | 1315 | # CONFIG_DEBUG_STACK_USAGE is not set |
1199 | # CONFIG_DEBUG_PAGEALLOC is not set | 1316 | # CONFIG_PPC_EMULATED_STATS is not set |
1200 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1317 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1201 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1318 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
1202 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1319 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1212,13 +1329,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1212 | # CONFIG_KEYS is not set | 1329 | # CONFIG_KEYS is not set |
1213 | # CONFIG_SECURITY is not set | 1330 | # CONFIG_SECURITY is not set |
1214 | # CONFIG_SECURITYFS is not set | 1331 | # CONFIG_SECURITYFS is not set |
1215 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1332 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1333 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1334 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1335 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1336 | CONFIG_DEFAULT_SECURITY="" | ||
1216 | CONFIG_CRYPTO=y | 1337 | CONFIG_CRYPTO=y |
1217 | 1338 | ||
1218 | # | 1339 | # |
1219 | # Crypto core or helper | 1340 | # Crypto core or helper |
1220 | # | 1341 | # |
1221 | # CONFIG_CRYPTO_FIPS is not set | ||
1222 | CONFIG_CRYPTO_ALGAPI=y | 1342 | CONFIG_CRYPTO_ALGAPI=y |
1223 | CONFIG_CRYPTO_ALGAPI2=y | 1343 | CONFIG_CRYPTO_ALGAPI2=y |
1224 | CONFIG_CRYPTO_AEAD2=y | 1344 | CONFIG_CRYPTO_AEAD2=y |
@@ -1227,10 +1347,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
1227 | CONFIG_CRYPTO_HASH=y | 1347 | CONFIG_CRYPTO_HASH=y |
1228 | CONFIG_CRYPTO_HASH2=y | 1348 | CONFIG_CRYPTO_HASH2=y |
1229 | CONFIG_CRYPTO_RNG2=y | 1349 | CONFIG_CRYPTO_RNG2=y |
1350 | CONFIG_CRYPTO_PCOMP=y | ||
1230 | CONFIG_CRYPTO_MANAGER=y | 1351 | CONFIG_CRYPTO_MANAGER=y |
1231 | CONFIG_CRYPTO_MANAGER2=y | 1352 | CONFIG_CRYPTO_MANAGER2=y |
1232 | # CONFIG_CRYPTO_GF128MUL is not set | 1353 | # CONFIG_CRYPTO_GF128MUL is not set |
1233 | # CONFIG_CRYPTO_NULL is not set | 1354 | # CONFIG_CRYPTO_NULL is not set |
1355 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1234 | # CONFIG_CRYPTO_CRYPTD is not set | 1356 | # CONFIG_CRYPTO_CRYPTD is not set |
1235 | # CONFIG_CRYPTO_AUTHENC is not set | 1357 | # CONFIG_CRYPTO_AUTHENC is not set |
1236 | # CONFIG_CRYPTO_TEST is not set | 1358 | # CONFIG_CRYPTO_TEST is not set |
@@ -1258,11 +1380,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1258 | # | 1380 | # |
1259 | # CONFIG_CRYPTO_HMAC is not set | 1381 | # CONFIG_CRYPTO_HMAC is not set |
1260 | # CONFIG_CRYPTO_XCBC is not set | 1382 | # CONFIG_CRYPTO_XCBC is not set |
1383 | # CONFIG_CRYPTO_VMAC is not set | ||
1261 | 1384 | ||
1262 | # | 1385 | # |
1263 | # Digest | 1386 | # Digest |
1264 | # | 1387 | # |
1265 | # CONFIG_CRYPTO_CRC32C is not set | 1388 | # CONFIG_CRYPTO_CRC32C is not set |
1389 | # CONFIG_CRYPTO_GHASH is not set | ||
1266 | # CONFIG_CRYPTO_MD4 is not set | 1390 | # CONFIG_CRYPTO_MD4 is not set |
1267 | CONFIG_CRYPTO_MD5=y | 1391 | CONFIG_CRYPTO_MD5=y |
1268 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1392 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1299,6 +1423,7 @@ CONFIG_CRYPTO_DES=y | |||
1299 | # Compression | 1423 | # Compression |
1300 | # | 1424 | # |
1301 | CONFIG_CRYPTO_DEFLATE=m | 1425 | CONFIG_CRYPTO_DEFLATE=m |
1426 | # CONFIG_CRYPTO_ZLIB is not set | ||
1302 | CONFIG_CRYPTO_LZO=m | 1427 | CONFIG_CRYPTO_LZO=m |
1303 | 1428 | ||
1304 | # | 1429 | # |
@@ -1307,5 +1432,6 @@ CONFIG_CRYPTO_LZO=m | |||
1307 | # CONFIG_CRYPTO_ANSI_CPRNG is not set | 1432 | # CONFIG_CRYPTO_ANSI_CPRNG is not set |
1308 | CONFIG_CRYPTO_HW=y | 1433 | CONFIG_CRYPTO_HW=y |
1309 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | 1434 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set |
1435 | # CONFIG_CRYPTO_DEV_PPC4XX is not set | ||
1310 | # CONFIG_PPC_CLOCK is not set | 1436 | # CONFIG_PPC_CLOCK is not set |
1311 | # CONFIG_VIRTUALIZATION is not set | 1437 | # CONFIG_VIRTUALIZATION is not set |
diff --git a/arch/powerpc/configs/ppc44x_defconfig b/arch/powerpc/configs/ppc44x_defconfig index 5e6d55f006bb..46f5c47e9f85 100644 --- a/arch/powerpc/configs/ppc44x_defconfig +++ b/arch/powerpc/configs/ppc44x_defconfig | |||
@@ -1,14 +1,14 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.29-rc2 | 3 | # Linux kernel version: 2.6.33-rc1 |
4 | # Fri Jan 23 08:43:46 2009 | 4 | # Mon Jan 4 13:42:17 2010 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
8 | # | 8 | # |
9 | # Processor support | 9 | # Processor support |
10 | # | 10 | # |
11 | # CONFIG_6xx is not set | 11 | # CONFIG_PPC_BOOK3S_32 is not set |
12 | # CONFIG_PPC_85xx is not set | 12 | # CONFIG_PPC_85xx is not set |
13 | # CONFIG_PPC_8xx is not set | 13 | # CONFIG_PPC_8xx is not set |
14 | # CONFIG_40x is not set | 14 | # CONFIG_40x is not set |
@@ -20,6 +20,7 @@ CONFIG_BOOKE=y | |||
20 | CONFIG_PTE_64BIT=y | 20 | CONFIG_PTE_64BIT=y |
21 | CONFIG_PHYS_64BIT=y | 21 | CONFIG_PHYS_64BIT=y |
22 | CONFIG_PPC_MMU_NOHASH=y | 22 | CONFIG_PPC_MMU_NOHASH=y |
23 | CONFIG_PPC_MMU_NOHASH_32=y | ||
23 | # CONFIG_PPC_MM_SLICES is not set | 24 | # CONFIG_PPC_MM_SLICES is not set |
24 | CONFIG_NOT_COHERENT_CACHE=y | 25 | CONFIG_NOT_COHERENT_CACHE=y |
25 | CONFIG_PPC32=y | 26 | CONFIG_PPC32=y |
@@ -31,15 +32,18 @@ CONFIG_GENERIC_TIME=y | |||
31 | CONFIG_GENERIC_TIME_VSYSCALL=y | 32 | CONFIG_GENERIC_TIME_VSYSCALL=y |
32 | CONFIG_GENERIC_CLOCKEVENTS=y | 33 | CONFIG_GENERIC_CLOCKEVENTS=y |
33 | CONFIG_GENERIC_HARDIRQS=y | 34 | CONFIG_GENERIC_HARDIRQS=y |
35 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | ||
34 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | 36 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set |
37 | # CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK is not set | ||
35 | CONFIG_IRQ_PER_CPU=y | 38 | CONFIG_IRQ_PER_CPU=y |
39 | CONFIG_NR_IRQS=512 | ||
36 | CONFIG_STACKTRACE_SUPPORT=y | 40 | CONFIG_STACKTRACE_SUPPORT=y |
37 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y | 41 | CONFIG_HAVE_LATENCYTOP_SUPPORT=y |
42 | CONFIG_TRACE_IRQFLAGS_SUPPORT=y | ||
38 | CONFIG_LOCKDEP_SUPPORT=y | 43 | CONFIG_LOCKDEP_SUPPORT=y |
39 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 44 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
40 | CONFIG_ARCH_HAS_ILOG2_U32=y | 45 | CONFIG_ARCH_HAS_ILOG2_U32=y |
41 | CONFIG_GENERIC_HWEIGHT=y | 46 | CONFIG_GENERIC_HWEIGHT=y |
42 | CONFIG_GENERIC_CALIBRATE_DELAY=y | ||
43 | CONFIG_GENERIC_FIND_NEXT_BIT=y | 47 | CONFIG_GENERIC_FIND_NEXT_BIT=y |
44 | CONFIG_GENERIC_GPIO=y | 48 | CONFIG_GENERIC_GPIO=y |
45 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set | 49 | # CONFIG_ARCH_NO_VIRT_TO_BUS is not set |
@@ -54,11 +58,15 @@ CONFIG_PPC_UDBG_16550=y | |||
54 | # CONFIG_GENERIC_TBSYNC is not set | 58 | # CONFIG_GENERIC_TBSYNC is not set |
55 | CONFIG_AUDIT_ARCH=y | 59 | CONFIG_AUDIT_ARCH=y |
56 | CONFIG_GENERIC_BUG=y | 60 | CONFIG_GENERIC_BUG=y |
57 | # CONFIG_DEFAULT_UIMAGE is not set | 61 | CONFIG_DTC=y |
62 | CONFIG_DEFAULT_UIMAGE=y | ||
63 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
58 | CONFIG_PPC_DCR_NATIVE=y | 64 | CONFIG_PPC_DCR_NATIVE=y |
59 | # CONFIG_PPC_DCR_MMIO is not set | 65 | # CONFIG_PPC_DCR_MMIO is not set |
60 | CONFIG_PPC_DCR=y | 66 | CONFIG_PPC_DCR=y |
67 | CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y | ||
61 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 68 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
69 | CONFIG_CONSTRUCTORS=y | ||
62 | 70 | ||
63 | # | 71 | # |
64 | # General setup | 72 | # General setup |
@@ -72,9 +80,21 @@ CONFIG_SWAP=y | |||
72 | CONFIG_SYSVIPC=y | 80 | CONFIG_SYSVIPC=y |
73 | CONFIG_SYSVIPC_SYSCTL=y | 81 | CONFIG_SYSVIPC_SYSCTL=y |
74 | CONFIG_POSIX_MQUEUE=y | 82 | CONFIG_POSIX_MQUEUE=y |
83 | CONFIG_POSIX_MQUEUE_SYSCTL=y | ||
75 | # CONFIG_BSD_PROCESS_ACCT is not set | 84 | # CONFIG_BSD_PROCESS_ACCT is not set |
76 | # CONFIG_TASKSTATS is not set | 85 | # CONFIG_TASKSTATS is not set |
77 | # CONFIG_AUDIT is not set | 86 | # CONFIG_AUDIT is not set |
87 | |||
88 | # | ||
89 | # RCU Subsystem | ||
90 | # | ||
91 | CONFIG_TREE_RCU=y | ||
92 | # CONFIG_TREE_PREEMPT_RCU is not set | ||
93 | # CONFIG_TINY_RCU is not set | ||
94 | # CONFIG_RCU_TRACE is not set | ||
95 | CONFIG_RCU_FANOUT=32 | ||
96 | # CONFIG_RCU_FANOUT_EXACT is not set | ||
97 | # CONFIG_TREE_RCU_TRACE is not set | ||
78 | # CONFIG_IKCONFIG is not set | 98 | # CONFIG_IKCONFIG is not set |
79 | CONFIG_LOG_BUF_SHIFT=14 | 99 | CONFIG_LOG_BUF_SHIFT=14 |
80 | CONFIG_GROUP_SCHED=y | 100 | CONFIG_GROUP_SCHED=y |
@@ -89,31 +109,40 @@ CONFIG_SYSFS_DEPRECATED_V2=y | |||
89 | # CONFIG_NAMESPACES is not set | 109 | # CONFIG_NAMESPACES is not set |
90 | CONFIG_BLK_DEV_INITRD=y | 110 | CONFIG_BLK_DEV_INITRD=y |
91 | CONFIG_INITRAMFS_SOURCE="" | 111 | CONFIG_INITRAMFS_SOURCE="" |
112 | CONFIG_RD_GZIP=y | ||
113 | # CONFIG_RD_BZIP2 is not set | ||
114 | # CONFIG_RD_LZMA is not set | ||
92 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 115 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
93 | CONFIG_SYSCTL=y | 116 | CONFIG_SYSCTL=y |
117 | CONFIG_ANON_INODES=y | ||
94 | CONFIG_EMBEDDED=y | 118 | CONFIG_EMBEDDED=y |
95 | CONFIG_SYSCTL_SYSCALL=y | 119 | CONFIG_SYSCTL_SYSCALL=y |
96 | CONFIG_KALLSYMS=y | 120 | CONFIG_KALLSYMS=y |
97 | CONFIG_KALLSYMS_ALL=y | 121 | CONFIG_KALLSYMS_ALL=y |
98 | CONFIG_KALLSYMS_STRIP_GENERATED=y | ||
99 | CONFIG_KALLSYMS_EXTRA_PASS=y | 122 | CONFIG_KALLSYMS_EXTRA_PASS=y |
100 | CONFIG_HOTPLUG=y | 123 | CONFIG_HOTPLUG=y |
101 | CONFIG_PRINTK=y | 124 | CONFIG_PRINTK=y |
102 | CONFIG_BUG=y | 125 | CONFIG_BUG=y |
103 | CONFIG_ELF_CORE=y | 126 | CONFIG_ELF_CORE=y |
104 | CONFIG_COMPAT_BRK=y | ||
105 | CONFIG_BASE_FULL=y | 127 | CONFIG_BASE_FULL=y |
106 | CONFIG_FUTEX=y | 128 | CONFIG_FUTEX=y |
107 | CONFIG_ANON_INODES=y | ||
108 | CONFIG_EPOLL=y | 129 | CONFIG_EPOLL=y |
109 | CONFIG_SIGNALFD=y | 130 | CONFIG_SIGNALFD=y |
110 | CONFIG_TIMERFD=y | 131 | CONFIG_TIMERFD=y |
111 | CONFIG_EVENTFD=y | 132 | CONFIG_EVENTFD=y |
112 | CONFIG_SHMEM=y | 133 | CONFIG_SHMEM=y |
113 | CONFIG_AIO=y | 134 | CONFIG_AIO=y |
135 | CONFIG_HAVE_PERF_EVENTS=y | ||
136 | |||
137 | # | ||
138 | # Kernel Performance Events And Counters | ||
139 | # | ||
140 | # CONFIG_PERF_EVENTS is not set | ||
141 | # CONFIG_PERF_COUNTERS is not set | ||
114 | CONFIG_VM_EVENT_COUNTERS=y | 142 | CONFIG_VM_EVENT_COUNTERS=y |
115 | CONFIG_PCI_QUIRKS=y | 143 | CONFIG_PCI_QUIRKS=y |
116 | CONFIG_SLUB_DEBUG=y | 144 | CONFIG_SLUB_DEBUG=y |
145 | CONFIG_COMPAT_BRK=y | ||
117 | # CONFIG_SLAB is not set | 146 | # CONFIG_SLAB is not set |
118 | CONFIG_SLUB=y | 147 | CONFIG_SLUB=y |
119 | # CONFIG_SLOB is not set | 148 | # CONFIG_SLOB is not set |
@@ -125,6 +154,13 @@ CONFIG_HAVE_IOREMAP_PROT=y | |||
125 | CONFIG_HAVE_KPROBES=y | 154 | CONFIG_HAVE_KPROBES=y |
126 | CONFIG_HAVE_KRETPROBES=y | 155 | CONFIG_HAVE_KRETPROBES=y |
127 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 156 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
157 | CONFIG_HAVE_DMA_ATTRS=y | ||
158 | CONFIG_HAVE_DMA_API_DEBUG=y | ||
159 | |||
160 | # | ||
161 | # GCOV-based kernel profiling | ||
162 | # | ||
163 | # CONFIG_SLOW_WORK is not set | ||
128 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set | 164 | # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set |
129 | CONFIG_SLABINFO=y | 165 | CONFIG_SLABINFO=y |
130 | CONFIG_RT_MUTEXES=y | 166 | CONFIG_RT_MUTEXES=y |
@@ -136,8 +172,7 @@ CONFIG_MODULE_UNLOAD=y | |||
136 | # CONFIG_MODVERSIONS is not set | 172 | # CONFIG_MODVERSIONS is not set |
137 | # CONFIG_MODULE_SRCVERSION_ALL is not set | 173 | # CONFIG_MODULE_SRCVERSION_ALL is not set |
138 | CONFIG_BLOCK=y | 174 | CONFIG_BLOCK=y |
139 | CONFIG_LBD=y | 175 | CONFIG_LBDAF=y |
140 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
141 | # CONFIG_BLK_DEV_BSG is not set | 176 | # CONFIG_BLK_DEV_BSG is not set |
142 | # CONFIG_BLK_DEV_INTEGRITY is not set | 177 | # CONFIG_BLK_DEV_INTEGRITY is not set |
143 | 178 | ||
@@ -145,20 +180,42 @@ CONFIG_LBD=y | |||
145 | # IO Schedulers | 180 | # IO Schedulers |
146 | # | 181 | # |
147 | CONFIG_IOSCHED_NOOP=y | 182 | CONFIG_IOSCHED_NOOP=y |
148 | CONFIG_IOSCHED_AS=y | ||
149 | CONFIG_IOSCHED_DEADLINE=y | 183 | CONFIG_IOSCHED_DEADLINE=y |
150 | CONFIG_IOSCHED_CFQ=y | 184 | CONFIG_IOSCHED_CFQ=y |
151 | CONFIG_DEFAULT_AS=y | ||
152 | # CONFIG_DEFAULT_DEADLINE is not set | 185 | # CONFIG_DEFAULT_DEADLINE is not set |
153 | # CONFIG_DEFAULT_CFQ is not set | 186 | CONFIG_DEFAULT_CFQ=y |
154 | # CONFIG_DEFAULT_NOOP is not set | 187 | # CONFIG_DEFAULT_NOOP is not set |
155 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 188 | CONFIG_DEFAULT_IOSCHED="cfq" |
156 | CONFIG_PREEMPT_NOTIFIERS=y | 189 | CONFIG_PREEMPT_NOTIFIERS=y |
157 | CONFIG_CLASSIC_RCU=y | 190 | # CONFIG_INLINE_SPIN_TRYLOCK is not set |
158 | # CONFIG_TREE_RCU is not set | 191 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set |
159 | # CONFIG_PREEMPT_RCU is not set | 192 | # CONFIG_INLINE_SPIN_LOCK is not set |
160 | # CONFIG_TREE_RCU_TRACE is not set | 193 | # CONFIG_INLINE_SPIN_LOCK_BH is not set |
161 | # CONFIG_PREEMPT_RCU_TRACE is not set | 194 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set |
195 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
196 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
197 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
198 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
199 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
200 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
201 | # CONFIG_INLINE_READ_LOCK is not set | ||
202 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
203 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
204 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
205 | CONFIG_INLINE_READ_UNLOCK=y | ||
206 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
207 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
208 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
209 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
210 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
211 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
212 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
213 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
214 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
215 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
216 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
217 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
218 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
162 | # CONFIG_FREEZER is not set | 219 | # CONFIG_FREEZER is not set |
163 | CONFIG_PPC4xx_PCI_EXPRESS=y | 220 | CONFIG_PPC4xx_PCI_EXPRESS=y |
164 | 221 | ||
@@ -179,8 +236,11 @@ CONFIG_WARP=y | |||
179 | CONFIG_ARCHES=y | 236 | CONFIG_ARCHES=y |
180 | CONFIG_CANYONLANDS=y | 237 | CONFIG_CANYONLANDS=y |
181 | CONFIG_GLACIER=y | 238 | CONFIG_GLACIER=y |
239 | CONFIG_REDWOOD=y | ||
240 | CONFIG_EIGER=y | ||
182 | CONFIG_YOSEMITE=y | 241 | CONFIG_YOSEMITE=y |
183 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y | 242 | CONFIG_XILINX_VIRTEX440_GENERIC_BOARD=y |
243 | # CONFIG_XILINX_ML510 is not set | ||
184 | CONFIG_PPC44x_SIMPLE=y | 244 | CONFIG_PPC44x_SIMPLE=y |
185 | CONFIG_PPC4xx_GPIO=y | 245 | CONFIG_PPC4xx_GPIO=y |
186 | CONFIG_440EP=y | 246 | CONFIG_440EP=y |
@@ -190,6 +250,7 @@ CONFIG_440GP=y | |||
190 | CONFIG_440GX=y | 250 | CONFIG_440GX=y |
191 | CONFIG_440SPe=y | 251 | CONFIG_440SPe=y |
192 | CONFIG_460EX=y | 252 | CONFIG_460EX=y |
253 | CONFIG_460SX=y | ||
193 | CONFIG_IBM440EP_ERR42=y | 254 | CONFIG_IBM440EP_ERR42=y |
194 | CONFIG_XILINX_VIRTEX=y | 255 | CONFIG_XILINX_VIRTEX=y |
195 | CONFIG_XILINX_VIRTEX_5_FXT=y | 256 | CONFIG_XILINX_VIRTEX_5_FXT=y |
@@ -207,6 +268,7 @@ CONFIG_XILINX_VIRTEX_5_FXT=y | |||
207 | # CONFIG_FSL_ULI1575 is not set | 268 | # CONFIG_FSL_ULI1575 is not set |
208 | CONFIG_OF_RTC=y | 269 | CONFIG_OF_RTC=y |
209 | # CONFIG_SIMPLE_GPIO is not set | 270 | # CONFIG_SIMPLE_GPIO is not set |
271 | # CONFIG_XILINX_PCI is not set | ||
210 | 272 | ||
211 | # | 273 | # |
212 | # Kernel options | 274 | # Kernel options |
@@ -230,10 +292,12 @@ CONFIG_BINFMT_ELF=y | |||
230 | # CONFIG_BINFMT_MISC is not set | 292 | # CONFIG_BINFMT_MISC is not set |
231 | CONFIG_MATH_EMULATION=y | 293 | CONFIG_MATH_EMULATION=y |
232 | # CONFIG_IOMMU_HELPER is not set | 294 | # CONFIG_IOMMU_HELPER is not set |
233 | CONFIG_PPC_NEED_DMA_SYNC_OPS=y | 295 | # CONFIG_SWIOTLB is not set |
234 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 296 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
235 | CONFIG_ARCH_HAS_WALK_MEMORY=y | 297 | CONFIG_ARCH_HAS_WALK_MEMORY=y |
236 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | 298 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y |
299 | CONFIG_SPARSE_IRQ=y | ||
300 | CONFIG_MAX_ACTIVE_REGIONS=32 | ||
237 | CONFIG_ARCH_FLATMEM_ENABLE=y | 301 | CONFIG_ARCH_FLATMEM_ENABLE=y |
238 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 302 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
239 | CONFIG_SELECT_MEMORY_MODEL=y | 303 | CONFIG_SELECT_MEMORY_MODEL=y |
@@ -249,10 +313,13 @@ CONFIG_PHYS_ADDR_T_64BIT=y | |||
249 | CONFIG_ZONE_DMA_FLAG=1 | 313 | CONFIG_ZONE_DMA_FLAG=1 |
250 | CONFIG_BOUNCE=y | 314 | CONFIG_BOUNCE=y |
251 | CONFIG_VIRT_TO_BUS=y | 315 | CONFIG_VIRT_TO_BUS=y |
252 | CONFIG_UNEVICTABLE_LRU=y | 316 | # CONFIG_KSM is not set |
317 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | ||
318 | CONFIG_STDBINUTILS=y | ||
253 | CONFIG_PPC_4K_PAGES=y | 319 | CONFIG_PPC_4K_PAGES=y |
254 | # CONFIG_PPC_16K_PAGES is not set | 320 | # CONFIG_PPC_16K_PAGES is not set |
255 | # CONFIG_PPC_64K_PAGES is not set | 321 | # CONFIG_PPC_64K_PAGES is not set |
322 | # CONFIG_PPC_256K_PAGES is not set | ||
256 | CONFIG_FORCE_MAX_ZONEORDER=11 | 323 | CONFIG_FORCE_MAX_ZONEORDER=11 |
257 | CONFIG_PROC_DEVICETREE=y | 324 | CONFIG_PROC_DEVICETREE=y |
258 | # CONFIG_CMDLINE_BOOL is not set | 325 | # CONFIG_CMDLINE_BOOL is not set |
@@ -276,6 +343,7 @@ CONFIG_ARCH_SUPPORTS_MSI=y | |||
276 | # CONFIG_PCI_LEGACY is not set | 343 | # CONFIG_PCI_LEGACY is not set |
277 | # CONFIG_PCI_DEBUG is not set | 344 | # CONFIG_PCI_DEBUG is not set |
278 | # CONFIG_PCI_STUB is not set | 345 | # CONFIG_PCI_STUB is not set |
346 | # CONFIG_PCI_IOV is not set | ||
279 | # CONFIG_PCCARD is not set | 347 | # CONFIG_PCCARD is not set |
280 | # CONFIG_HOTPLUG_PCI is not set | 348 | # CONFIG_HOTPLUG_PCI is not set |
281 | # CONFIG_HAS_RAPIDIO is not set | 349 | # CONFIG_HAS_RAPIDIO is not set |
@@ -293,14 +361,12 @@ CONFIG_PAGE_OFFSET=0xc0000000 | |||
293 | CONFIG_KERNEL_START=0xc0000000 | 361 | CONFIG_KERNEL_START=0xc0000000 |
294 | CONFIG_PHYSICAL_START=0x00000000 | 362 | CONFIG_PHYSICAL_START=0x00000000 |
295 | CONFIG_TASK_SIZE=0xc0000000 | 363 | CONFIG_TASK_SIZE=0xc0000000 |
296 | CONFIG_CONSISTENT_START=0xff100000 | ||
297 | CONFIG_CONSISTENT_SIZE=0x00200000 | 364 | CONFIG_CONSISTENT_SIZE=0x00200000 |
298 | CONFIG_NET=y | 365 | CONFIG_NET=y |
299 | 366 | ||
300 | # | 367 | # |
301 | # Networking options | 368 | # Networking options |
302 | # | 369 | # |
303 | CONFIG_COMPAT_NET_DEV_OPS=y | ||
304 | CONFIG_PACKET=y | 370 | CONFIG_PACKET=y |
305 | # CONFIG_PACKET_MMAP is not set | 371 | # CONFIG_PACKET_MMAP is not set |
306 | CONFIG_UNIX=y | 372 | CONFIG_UNIX=y |
@@ -352,6 +418,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
352 | CONFIG_INET6_XFRM_MODE_BEET=m | 418 | CONFIG_INET6_XFRM_MODE_BEET=m |
353 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 419 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
354 | CONFIG_IPV6_SIT=m | 420 | CONFIG_IPV6_SIT=m |
421 | # CONFIG_IPV6_SIT_6RD is not set | ||
355 | CONFIG_IPV6_NDISC_NODETYPE=y | 422 | CONFIG_IPV6_NDISC_NODETYPE=y |
356 | # CONFIG_IPV6_TUNNEL is not set | 423 | # CONFIG_IPV6_TUNNEL is not set |
357 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 424 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -360,6 +427,7 @@ CONFIG_IPV6_NDISC_NODETYPE=y | |||
360 | # CONFIG_NETFILTER is not set | 427 | # CONFIG_NETFILTER is not set |
361 | # CONFIG_IP_DCCP is not set | 428 | # CONFIG_IP_DCCP is not set |
362 | # CONFIG_IP_SCTP is not set | 429 | # CONFIG_IP_SCTP is not set |
430 | # CONFIG_RDS is not set | ||
363 | # CONFIG_TIPC is not set | 431 | # CONFIG_TIPC is not set |
364 | # CONFIG_ATM is not set | 432 | # CONFIG_ATM is not set |
365 | CONFIG_STP=m | 433 | CONFIG_STP=m |
@@ -375,6 +443,8 @@ CONFIG_LLC=m | |||
375 | # CONFIG_LAPB is not set | 443 | # CONFIG_LAPB is not set |
376 | # CONFIG_ECONET is not set | 444 | # CONFIG_ECONET is not set |
377 | # CONFIG_WAN_ROUTER is not set | 445 | # CONFIG_WAN_ROUTER is not set |
446 | # CONFIG_PHONET is not set | ||
447 | # CONFIG_IEEE802154 is not set | ||
378 | # CONFIG_NET_SCHED is not set | 448 | # CONFIG_NET_SCHED is not set |
379 | # CONFIG_DCB is not set | 449 | # CONFIG_DCB is not set |
380 | 450 | ||
@@ -387,8 +457,13 @@ CONFIG_LLC=m | |||
387 | # CONFIG_IRDA is not set | 457 | # CONFIG_IRDA is not set |
388 | # CONFIG_BT is not set | 458 | # CONFIG_BT is not set |
389 | # CONFIG_AF_RXRPC is not set | 459 | # CONFIG_AF_RXRPC is not set |
390 | # CONFIG_PHONET is not set | 460 | CONFIG_WIRELESS=y |
391 | # CONFIG_WIRELESS is not set | 461 | # CONFIG_CFG80211 is not set |
462 | # CONFIG_LIB80211 is not set | ||
463 | |||
464 | # | ||
465 | # CFG80211 needs to be enabled for MAC80211 | ||
466 | # | ||
392 | # CONFIG_WIMAX is not set | 467 | # CONFIG_WIMAX is not set |
393 | # CONFIG_RFKILL is not set | 468 | # CONFIG_RFKILL is not set |
394 | # CONFIG_NET_9P is not set | 469 | # CONFIG_NET_9P is not set |
@@ -401,6 +476,7 @@ CONFIG_LLC=m | |||
401 | # Generic Driver Options | 476 | # Generic Driver Options |
402 | # | 477 | # |
403 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 478 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
479 | # CONFIG_DEVTMPFS is not set | ||
404 | CONFIG_STANDALONE=y | 480 | CONFIG_STANDALONE=y |
405 | CONFIG_PREVENT_FIRMWARE_BUILD=y | 481 | CONFIG_PREVENT_FIRMWARE_BUILD=y |
406 | CONFIG_FW_LOADER=y | 482 | CONFIG_FW_LOADER=y |
@@ -413,9 +489,9 @@ CONFIG_CONNECTOR=y | |||
413 | CONFIG_PROC_EVENTS=y | 489 | CONFIG_PROC_EVENTS=y |
414 | CONFIG_MTD=y | 490 | CONFIG_MTD=y |
415 | # CONFIG_MTD_DEBUG is not set | 491 | # CONFIG_MTD_DEBUG is not set |
492 | # CONFIG_MTD_TESTS is not set | ||
416 | # CONFIG_MTD_CONCAT is not set | 493 | # CONFIG_MTD_CONCAT is not set |
417 | CONFIG_MTD_PARTITIONS=y | 494 | CONFIG_MTD_PARTITIONS=y |
418 | # CONFIG_MTD_TESTS is not set | ||
419 | # CONFIG_MTD_REDBOOT_PARTS is not set | 495 | # CONFIG_MTD_REDBOOT_PARTS is not set |
420 | # CONFIG_MTD_CMDLINE_PARTS is not set | 496 | # CONFIG_MTD_CMDLINE_PARTS is not set |
421 | CONFIG_MTD_OF_PARTS=y | 497 | CONFIG_MTD_OF_PARTS=y |
@@ -490,7 +566,6 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
490 | # LPDDR flash memory drivers | 566 | # LPDDR flash memory drivers |
491 | # | 567 | # |
492 | # CONFIG_MTD_LPDDR is not set | 568 | # CONFIG_MTD_LPDDR is not set |
493 | # CONFIG_MTD_QINFO_PROBE is not set | ||
494 | 569 | ||
495 | # | 570 | # |
496 | # UBI - Unsorted block images | 571 | # UBI - Unsorted block images |
@@ -498,7 +573,7 @@ CONFIG_MTD_PHYSMAP_OF=y | |||
498 | CONFIG_MTD_UBI=m | 573 | CONFIG_MTD_UBI=m |
499 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 | 574 | CONFIG_MTD_UBI_WL_THRESHOLD=4096 |
500 | CONFIG_MTD_UBI_BEB_RESERVE=1 | 575 | CONFIG_MTD_UBI_BEB_RESERVE=1 |
501 | CONFIG_MTD_UBI_GLUEBI=y | 576 | CONFIG_MTD_UBI_GLUEBI=m |
502 | 577 | ||
503 | # | 578 | # |
504 | # UBI debugging options | 579 | # UBI debugging options |
@@ -516,6 +591,7 @@ CONFIG_BLK_DEV=y | |||
516 | # CONFIG_BLK_DEV_UMEM is not set | 591 | # CONFIG_BLK_DEV_UMEM is not set |
517 | # CONFIG_BLK_DEV_COW_COMMON is not set | 592 | # CONFIG_BLK_DEV_COW_COMMON is not set |
518 | # CONFIG_BLK_DEV_LOOP is not set | 593 | # CONFIG_BLK_DEV_LOOP is not set |
594 | # CONFIG_BLK_DEV_DRBD is not set | ||
519 | # CONFIG_BLK_DEV_NBD is not set | 595 | # CONFIG_BLK_DEV_NBD is not set |
520 | # CONFIG_BLK_DEV_SX8 is not set | 596 | # CONFIG_BLK_DEV_SX8 is not set |
521 | # CONFIG_BLK_DEV_UB is not set | 597 | # CONFIG_BLK_DEV_UB is not set |
@@ -528,14 +604,25 @@ CONFIG_BLK_DEV_RAM_SIZE=35000 | |||
528 | CONFIG_XILINX_SYSACE=m | 604 | CONFIG_XILINX_SYSACE=m |
529 | # CONFIG_BLK_DEV_HD is not set | 605 | # CONFIG_BLK_DEV_HD is not set |
530 | CONFIG_MISC_DEVICES=y | 606 | CONFIG_MISC_DEVICES=y |
607 | # CONFIG_AD525X_DPOT is not set | ||
531 | # CONFIG_PHANTOM is not set | 608 | # CONFIG_PHANTOM is not set |
532 | # CONFIG_EEPROM_93CX6 is not set | ||
533 | # CONFIG_SGI_IOC4 is not set | 609 | # CONFIG_SGI_IOC4 is not set |
534 | # CONFIG_TIFM_CORE is not set | 610 | # CONFIG_TIFM_CORE is not set |
535 | # CONFIG_ICS932S401 is not set | 611 | # CONFIG_ICS932S401 is not set |
536 | # CONFIG_ENCLOSURE_SERVICES is not set | 612 | # CONFIG_ENCLOSURE_SERVICES is not set |
537 | # CONFIG_HP_ILO is not set | 613 | # CONFIG_HP_ILO is not set |
614 | # CONFIG_ISL29003 is not set | ||
615 | # CONFIG_DS1682 is not set | ||
538 | # CONFIG_C2PORT is not set | 616 | # CONFIG_C2PORT is not set |
617 | |||
618 | # | ||
619 | # EEPROM support | ||
620 | # | ||
621 | # CONFIG_EEPROM_AT24 is not set | ||
622 | # CONFIG_EEPROM_LEGACY is not set | ||
623 | # CONFIG_EEPROM_MAX6875 is not set | ||
624 | # CONFIG_EEPROM_93CX6 is not set | ||
625 | # CONFIG_CB710_CORE is not set | ||
539 | CONFIG_HAVE_IDE=y | 626 | CONFIG_HAVE_IDE=y |
540 | # CONFIG_IDE is not set | 627 | # CONFIG_IDE is not set |
541 | 628 | ||
@@ -558,10 +645,6 @@ CONFIG_BLK_DEV_SD=m | |||
558 | # CONFIG_BLK_DEV_SR is not set | 645 | # CONFIG_BLK_DEV_SR is not set |
559 | # CONFIG_CHR_DEV_SG is not set | 646 | # CONFIG_CHR_DEV_SG is not set |
560 | # CONFIG_CHR_DEV_SCH is not set | 647 | # CONFIG_CHR_DEV_SCH is not set |
561 | |||
562 | # | ||
563 | # Some SCSI devices (e.g. CD jukebox) support multiple LUNs | ||
564 | # | ||
565 | # CONFIG_SCSI_MULTI_LUN is not set | 648 | # CONFIG_SCSI_MULTI_LUN is not set |
566 | # CONFIG_SCSI_CONSTANTS is not set | 649 | # CONFIG_SCSI_CONSTANTS is not set |
567 | # CONFIG_SCSI_LOGGING is not set | 650 | # CONFIG_SCSI_LOGGING is not set |
@@ -578,6 +661,7 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
578 | # CONFIG_SCSI_SRP_ATTRS is not set | 661 | # CONFIG_SCSI_SRP_ATTRS is not set |
579 | # CONFIG_SCSI_LOWLEVEL is not set | 662 | # CONFIG_SCSI_LOWLEVEL is not set |
580 | # CONFIG_SCSI_DH is not set | 663 | # CONFIG_SCSI_DH is not set |
664 | # CONFIG_SCSI_OSD_INITIATOR is not set | ||
581 | # CONFIG_ATA is not set | 665 | # CONFIG_ATA is not set |
582 | # CONFIG_MD is not set | 666 | # CONFIG_MD is not set |
583 | # CONFIG_FUSION is not set | 667 | # CONFIG_FUSION is not set |
@@ -587,7 +671,11 @@ CONFIG_SCSI_WAIT_SCAN=m | |||
587 | # | 671 | # |
588 | 672 | ||
589 | # | 673 | # |
590 | # Enable only one of the two stacks, unless you know what you are doing | 674 | # You can enable one or both FireWire driver stacks. |
675 | # | ||
676 | |||
677 | # | ||
678 | # See the help texts for more information. | ||
591 | # | 679 | # |
592 | # CONFIG_FIREWIRE is not set | 680 | # CONFIG_FIREWIRE is not set |
593 | # CONFIG_IEEE1394 is not set | 681 | # CONFIG_IEEE1394 is not set |
@@ -608,6 +696,8 @@ CONFIG_NET_ETHERNET=y | |||
608 | # CONFIG_SUNGEM is not set | 696 | # CONFIG_SUNGEM is not set |
609 | # CONFIG_CASSINI is not set | 697 | # CONFIG_CASSINI is not set |
610 | # CONFIG_NET_VENDOR_3COM is not set | 698 | # CONFIG_NET_VENDOR_3COM is not set |
699 | # CONFIG_ETHOC is not set | ||
700 | # CONFIG_DNET is not set | ||
611 | # CONFIG_NET_TULIP is not set | 701 | # CONFIG_NET_TULIP is not set |
612 | # CONFIG_HP100 is not set | 702 | # CONFIG_HP100 is not set |
613 | CONFIG_IBM_NEW_EMAC=y | 703 | CONFIG_IBM_NEW_EMAC=y |
@@ -626,7 +716,10 @@ CONFIG_IBM_NEW_EMAC_EMAC4=y | |||
626 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set | 716 | # CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set |
627 | # CONFIG_NET_PCI is not set | 717 | # CONFIG_NET_PCI is not set |
628 | # CONFIG_B44 is not set | 718 | # CONFIG_B44 is not set |
719 | # CONFIG_KS8842 is not set | ||
720 | # CONFIG_KS8851_MLL is not set | ||
629 | # CONFIG_ATL2 is not set | 721 | # CONFIG_ATL2 is not set |
722 | # CONFIG_XILINX_EMACLITE is not set | ||
630 | CONFIG_NETDEV_1000=y | 723 | CONFIG_NETDEV_1000=y |
631 | # CONFIG_ACENIC is not set | 724 | # CONFIG_ACENIC is not set |
632 | # CONFIG_DL2K is not set | 725 | # CONFIG_DL2K is not set |
@@ -634,6 +727,7 @@ CONFIG_NETDEV_1000=y | |||
634 | # CONFIG_E1000E is not set | 727 | # CONFIG_E1000E is not set |
635 | # CONFIG_IP1000 is not set | 728 | # CONFIG_IP1000 is not set |
636 | # CONFIG_IGB is not set | 729 | # CONFIG_IGB is not set |
730 | # CONFIG_IGBVF is not set | ||
637 | # CONFIG_NS83820 is not set | 731 | # CONFIG_NS83820 is not set |
638 | # CONFIG_HAMACHI is not set | 732 | # CONFIG_HAMACHI is not set |
639 | # CONFIG_YELLOWFIN is not set | 733 | # CONFIG_YELLOWFIN is not set |
@@ -644,9 +738,13 @@ CONFIG_NETDEV_1000=y | |||
644 | # CONFIG_VIA_VELOCITY is not set | 738 | # CONFIG_VIA_VELOCITY is not set |
645 | # CONFIG_TIGON3 is not set | 739 | # CONFIG_TIGON3 is not set |
646 | # CONFIG_BNX2 is not set | 740 | # CONFIG_BNX2 is not set |
741 | # CONFIG_CNIC is not set | ||
742 | # CONFIG_MV643XX_ETH is not set | ||
743 | # CONFIG_XILINX_LL_TEMAC is not set | ||
647 | # CONFIG_QLA3XXX is not set | 744 | # CONFIG_QLA3XXX is not set |
648 | # CONFIG_ATL1 is not set | 745 | # CONFIG_ATL1 is not set |
649 | # CONFIG_ATL1E is not set | 746 | # CONFIG_ATL1E is not set |
747 | # CONFIG_ATL1C is not set | ||
650 | # CONFIG_JME is not set | 748 | # CONFIG_JME is not set |
651 | CONFIG_NETDEV_10000=y | 749 | CONFIG_NETDEV_10000=y |
652 | # CONFIG_CHELSIO_T1 is not set | 750 | # CONFIG_CHELSIO_T1 is not set |
@@ -656,6 +754,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
656 | # CONFIG_IXGBE is not set | 754 | # CONFIG_IXGBE is not set |
657 | # CONFIG_IXGB is not set | 755 | # CONFIG_IXGB is not set |
658 | # CONFIG_S2IO is not set | 756 | # CONFIG_S2IO is not set |
757 | # CONFIG_VXGE is not set | ||
659 | # CONFIG_MYRI10GE is not set | 758 | # CONFIG_MYRI10GE is not set |
660 | # CONFIG_NETXEN_NIC is not set | 759 | # CONFIG_NETXEN_NIC is not set |
661 | # CONFIG_NIU is not set | 760 | # CONFIG_NIU is not set |
@@ -665,14 +764,14 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
665 | # CONFIG_BNX2X is not set | 764 | # CONFIG_BNX2X is not set |
666 | # CONFIG_QLGE is not set | 765 | # CONFIG_QLGE is not set |
667 | # CONFIG_SFC is not set | 766 | # CONFIG_SFC is not set |
767 | # CONFIG_BE2NET is not set | ||
668 | # CONFIG_TR is not set | 768 | # CONFIG_TR is not set |
669 | 769 | CONFIG_WLAN=y | |
670 | # | 770 | # CONFIG_AIRO is not set |
671 | # Wireless LAN | 771 | # CONFIG_ATMEL is not set |
672 | # | 772 | # CONFIG_PRISM54 is not set |
673 | # CONFIG_WLAN_PRE80211 is not set | 773 | # CONFIG_USB_ZD1201 is not set |
674 | # CONFIG_WLAN_80211 is not set | 774 | # CONFIG_HOSTAP is not set |
675 | # CONFIG_IWLWIFI_LEDS is not set | ||
676 | 775 | ||
677 | # | 776 | # |
678 | # Enable WiMAX (Networking options) to see the WiMAX drivers | 777 | # Enable WiMAX (Networking options) to see the WiMAX drivers |
@@ -695,6 +794,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
695 | # CONFIG_NETCONSOLE is not set | 794 | # CONFIG_NETCONSOLE is not set |
696 | # CONFIG_NETPOLL is not set | 795 | # CONFIG_NETPOLL is not set |
697 | # CONFIG_NET_POLL_CONTROLLER is not set | 796 | # CONFIG_NET_POLL_CONTROLLER is not set |
797 | # CONFIG_VMXNET3 is not set | ||
698 | # CONFIG_ISDN is not set | 798 | # CONFIG_ISDN is not set |
699 | # CONFIG_PHONE is not set | 799 | # CONFIG_PHONE is not set |
700 | 800 | ||
@@ -713,6 +813,7 @@ CONFIG_SERIO=m | |||
713 | # CONFIG_SERIO_LIBPS2 is not set | 813 | # CONFIG_SERIO_LIBPS2 is not set |
714 | # CONFIG_SERIO_RAW is not set | 814 | # CONFIG_SERIO_RAW is not set |
715 | CONFIG_SERIO_XILINX_XPS_PS2=m | 815 | CONFIG_SERIO_XILINX_XPS_PS2=m |
816 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
716 | # CONFIG_GAMEPORT is not set | 817 | # CONFIG_GAMEPORT is not set |
717 | 818 | ||
718 | # | 819 | # |
@@ -747,6 +848,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y | |||
747 | # CONFIG_SERIAL_JSM is not set | 848 | # CONFIG_SERIAL_JSM is not set |
748 | CONFIG_SERIAL_OF_PLATFORM=y | 849 | CONFIG_SERIAL_OF_PLATFORM=y |
749 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set | 850 | # CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set |
851 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
750 | CONFIG_UNIX98_PTYS=y | 852 | CONFIG_UNIX98_PTYS=y |
751 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 853 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
752 | CONFIG_LEGACY_PTYS=y | 854 | CONFIG_LEGACY_PTYS=y |
@@ -764,6 +866,7 @@ CONFIG_XILINX_HWICAP=m | |||
764 | CONFIG_DEVPORT=y | 866 | CONFIG_DEVPORT=y |
765 | CONFIG_I2C=m | 867 | CONFIG_I2C=m |
766 | CONFIG_I2C_BOARDINFO=y | 868 | CONFIG_I2C_BOARDINFO=y |
869 | CONFIG_I2C_COMPAT=y | ||
767 | CONFIG_I2C_CHARDEV=m | 870 | CONFIG_I2C_CHARDEV=m |
768 | CONFIG_I2C_HELPER_AUTO=y | 871 | CONFIG_I2C_HELPER_AUTO=y |
769 | CONFIG_I2C_ALGOBIT=m | 872 | CONFIG_I2C_ALGOBIT=m |
@@ -807,11 +910,6 @@ CONFIG_I2C_IBM_IIC=m | |||
807 | # CONFIG_I2C_TINY_USB is not set | 910 | # CONFIG_I2C_TINY_USB is not set |
808 | 911 | ||
809 | # | 912 | # |
810 | # Graphics adapter I2C/DDC channel drivers | ||
811 | # | ||
812 | # CONFIG_I2C_VOODOO3 is not set | ||
813 | |||
814 | # | ||
815 | # Other I2C/SMBus bus drivers | 913 | # Other I2C/SMBus bus drivers |
816 | # | 914 | # |
817 | # CONFIG_I2C_PCA_PLATFORM is not set | 915 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -820,20 +918,17 @@ CONFIG_I2C_IBM_IIC=m | |||
820 | # | 918 | # |
821 | # Miscellaneous I2C Chip support | 919 | # Miscellaneous I2C Chip support |
822 | # | 920 | # |
823 | # CONFIG_DS1682 is not set | ||
824 | # CONFIG_EEPROM_AT24 is not set | ||
825 | # CONFIG_EEPROM_LEGACY is not set | ||
826 | # CONFIG_SENSORS_PCF8574 is not set | ||
827 | # CONFIG_PCF8575 is not set | ||
828 | # CONFIG_SENSORS_PCA9539 is not set | ||
829 | # CONFIG_SENSORS_PCF8591 is not set | ||
830 | # CONFIG_SENSORS_MAX6875 is not set | ||
831 | # CONFIG_SENSORS_TSL2550 is not set | 921 | # CONFIG_SENSORS_TSL2550 is not set |
832 | # CONFIG_I2C_DEBUG_CORE is not set | 922 | # CONFIG_I2C_DEBUG_CORE is not set |
833 | # CONFIG_I2C_DEBUG_ALGO is not set | 923 | # CONFIG_I2C_DEBUG_ALGO is not set |
834 | # CONFIG_I2C_DEBUG_BUS is not set | 924 | # CONFIG_I2C_DEBUG_BUS is not set |
835 | # CONFIG_I2C_DEBUG_CHIP is not set | 925 | # CONFIG_I2C_DEBUG_CHIP is not set |
836 | # CONFIG_SPI is not set | 926 | # CONFIG_SPI is not set |
927 | |||
928 | # | ||
929 | # PPS support | ||
930 | # | ||
931 | # CONFIG_PPS is not set | ||
837 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | 932 | CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y |
838 | CONFIG_ARCH_REQUIRE_GPIOLIB=y | 933 | CONFIG_ARCH_REQUIRE_GPIOLIB=y |
839 | CONFIG_GPIOLIB=y | 934 | CONFIG_GPIOLIB=y |
@@ -855,16 +950,21 @@ CONFIG_GPIO_XILINX=y | |||
855 | # | 950 | # |
856 | # PCI GPIO expanders: | 951 | # PCI GPIO expanders: |
857 | # | 952 | # |
953 | # CONFIG_GPIO_CS5535 is not set | ||
858 | # CONFIG_GPIO_BT8XX is not set | 954 | # CONFIG_GPIO_BT8XX is not set |
955 | # CONFIG_GPIO_LANGWELL is not set | ||
859 | 956 | ||
860 | # | 957 | # |
861 | # SPI GPIO expanders: | 958 | # SPI GPIO expanders: |
862 | # | 959 | # |
960 | |||
961 | # | ||
962 | # AC97 GPIO expanders: | ||
963 | # | ||
863 | # CONFIG_W1 is not set | 964 | # CONFIG_W1 is not set |
864 | # CONFIG_POWER_SUPPLY is not set | 965 | # CONFIG_POWER_SUPPLY is not set |
865 | # CONFIG_HWMON is not set | 966 | # CONFIG_HWMON is not set |
866 | # CONFIG_THERMAL is not set | 967 | # CONFIG_THERMAL is not set |
867 | # CONFIG_THERMAL_HWMON is not set | ||
868 | # CONFIG_WATCHDOG is not set | 968 | # CONFIG_WATCHDOG is not set |
869 | CONFIG_SSB_POSSIBLE=y | 969 | CONFIG_SSB_POSSIBLE=y |
870 | 970 | ||
@@ -884,28 +984,15 @@ CONFIG_SSB_POSSIBLE=y | |||
884 | # CONFIG_MFD_WM8400 is not set | 984 | # CONFIG_MFD_WM8400 is not set |
885 | # CONFIG_MFD_WM8350_I2C is not set | 985 | # CONFIG_MFD_WM8350_I2C is not set |
886 | # CONFIG_MFD_PCF50633 is not set | 986 | # CONFIG_MFD_PCF50633 is not set |
987 | # CONFIG_AB3100_CORE is not set | ||
887 | # CONFIG_REGULATOR is not set | 988 | # CONFIG_REGULATOR is not set |
888 | 989 | # CONFIG_MEDIA_SUPPORT is not set | |
889 | # | ||
890 | # Multimedia devices | ||
891 | # | ||
892 | |||
893 | # | ||
894 | # Multimedia core support | ||
895 | # | ||
896 | # CONFIG_VIDEO_DEV is not set | ||
897 | # CONFIG_DVB_CORE is not set | ||
898 | # CONFIG_VIDEO_MEDIA is not set | ||
899 | |||
900 | # | ||
901 | # Multimedia drivers | ||
902 | # | ||
903 | # CONFIG_DAB is not set | ||
904 | 990 | ||
905 | # | 991 | # |
906 | # Graphics support | 992 | # Graphics support |
907 | # | 993 | # |
908 | # CONFIG_AGP is not set | 994 | # CONFIG_AGP is not set |
995 | CONFIG_VGA_ARB=y | ||
909 | # CONFIG_DRM is not set | 996 | # CONFIG_DRM is not set |
910 | # CONFIG_VGASTATE is not set | 997 | # CONFIG_VGASTATE is not set |
911 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 998 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -961,6 +1048,7 @@ CONFIG_FB_XILINX=m | |||
961 | # CONFIG_FB_VIRTUAL is not set | 1048 | # CONFIG_FB_VIRTUAL is not set |
962 | # CONFIG_FB_METRONOME is not set | 1049 | # CONFIG_FB_METRONOME is not set |
963 | # CONFIG_FB_MB862XX is not set | 1050 | # CONFIG_FB_MB862XX is not set |
1051 | # CONFIG_FB_BROADSHEET is not set | ||
964 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set | 1052 | # CONFIG_BACKLIGHT_LCD_SUPPORT is not set |
965 | 1053 | ||
966 | # | 1054 | # |
@@ -994,19 +1082,22 @@ CONFIG_USB_DEVICE_CLASS=y | |||
994 | # USB Host Controller Drivers | 1082 | # USB Host Controller Drivers |
995 | # | 1083 | # |
996 | # CONFIG_USB_C67X00_HCD is not set | 1084 | # CONFIG_USB_C67X00_HCD is not set |
1085 | # CONFIG_USB_XHCI_HCD is not set | ||
997 | CONFIG_USB_EHCI_HCD=m | 1086 | CONFIG_USB_EHCI_HCD=m |
998 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1087 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
999 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1088 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1000 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | 1089 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y |
1001 | CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y | 1090 | CONFIG_USB_EHCI_BIG_ENDIAN_DESC=y |
1091 | # CONFIG_XPS_USB_HCD_XILINX is not set | ||
1002 | CONFIG_USB_EHCI_HCD_PPC_OF=y | 1092 | CONFIG_USB_EHCI_HCD_PPC_OF=y |
1003 | # CONFIG_USB_OXU210HP_HCD is not set | 1093 | # CONFIG_USB_OXU210HP_HCD is not set |
1004 | # CONFIG_USB_ISP116X_HCD is not set | 1094 | # CONFIG_USB_ISP116X_HCD is not set |
1005 | # CONFIG_USB_ISP1760_HCD is not set | 1095 | # CONFIG_USB_ISP1760_HCD is not set |
1096 | # CONFIG_USB_ISP1362_HCD is not set | ||
1006 | CONFIG_USB_OHCI_HCD=m | 1097 | CONFIG_USB_OHCI_HCD=m |
1007 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
1008 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y | 1098 | CONFIG_USB_OHCI_HCD_PPC_OF_BE=y |
1009 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set | 1099 | # CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set |
1100 | CONFIG_USB_OHCI_HCD_PPC_OF=y | ||
1010 | # CONFIG_USB_OHCI_HCD_PCI is not set | 1101 | # CONFIG_USB_OHCI_HCD_PCI is not set |
1011 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y | 1102 | CONFIG_USB_OHCI_BIG_ENDIAN_DESC=y |
1012 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y | 1103 | CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y |
@@ -1030,11 +1121,11 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y | |||
1030 | # CONFIG_USB_TMC is not set | 1121 | # CONFIG_USB_TMC is not set |
1031 | 1122 | ||
1032 | # | 1123 | # |
1033 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may also be needed; | 1124 | # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may |
1034 | # | 1125 | # |
1035 | 1126 | ||
1036 | # | 1127 | # |
1037 | # see USB_STORAGE Help for more information | 1128 | # also be needed; see USB_STORAGE Help for more info |
1038 | # | 1129 | # |
1039 | CONFIG_USB_STORAGE=m | 1130 | CONFIG_USB_STORAGE=m |
1040 | # CONFIG_USB_STORAGE_DEBUG is not set | 1131 | # CONFIG_USB_STORAGE_DEBUG is not set |
@@ -1075,7 +1166,6 @@ CONFIG_USB_STORAGE=m | |||
1075 | # CONFIG_USB_LED is not set | 1166 | # CONFIG_USB_LED is not set |
1076 | # CONFIG_USB_CYPRESS_CY7C63 is not set | 1167 | # CONFIG_USB_CYPRESS_CY7C63 is not set |
1077 | # CONFIG_USB_CYTHERM is not set | 1168 | # CONFIG_USB_CYTHERM is not set |
1078 | # CONFIG_USB_PHIDGET is not set | ||
1079 | # CONFIG_USB_IDMOUSE is not set | 1169 | # CONFIG_USB_IDMOUSE is not set |
1080 | # CONFIG_USB_FTDI_ELAN is not set | 1170 | # CONFIG_USB_FTDI_ELAN is not set |
1081 | # CONFIG_USB_APPLEDISPLAY is not set | 1171 | # CONFIG_USB_APPLEDISPLAY is not set |
@@ -1083,6 +1173,7 @@ CONFIG_USB_STORAGE=m | |||
1083 | # CONFIG_USB_LD is not set | 1173 | # CONFIG_USB_LD is not set |
1084 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1174 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1085 | # CONFIG_USB_IOWARRIOR is not set | 1175 | # CONFIG_USB_IOWARRIOR is not set |
1176 | # CONFIG_USB_TEST is not set | ||
1086 | # CONFIG_USB_ISIGHTFW is not set | 1177 | # CONFIG_USB_ISIGHTFW is not set |
1087 | # CONFIG_USB_VST is not set | 1178 | # CONFIG_USB_VST is not set |
1088 | # CONFIG_USB_GADGET is not set | 1179 | # CONFIG_USB_GADGET is not set |
@@ -1091,6 +1182,7 @@ CONFIG_USB_STORAGE=m | |||
1091 | # OTG and related infrastructure | 1182 | # OTG and related infrastructure |
1092 | # | 1183 | # |
1093 | # CONFIG_USB_GPIO_VBUS is not set | 1184 | # CONFIG_USB_GPIO_VBUS is not set |
1185 | # CONFIG_NOP_USB_XCEIV is not set | ||
1094 | # CONFIG_UWB is not set | 1186 | # CONFIG_UWB is not set |
1095 | # CONFIG_MMC is not set | 1187 | # CONFIG_MMC is not set |
1096 | # CONFIG_MEMSTICK is not set | 1188 | # CONFIG_MEMSTICK is not set |
@@ -1100,7 +1192,12 @@ CONFIG_USB_STORAGE=m | |||
1100 | # CONFIG_EDAC is not set | 1192 | # CONFIG_EDAC is not set |
1101 | # CONFIG_RTC_CLASS is not set | 1193 | # CONFIG_RTC_CLASS is not set |
1102 | # CONFIG_DMADEVICES is not set | 1194 | # CONFIG_DMADEVICES is not set |
1195 | # CONFIG_AUXDISPLAY is not set | ||
1103 | # CONFIG_UIO is not set | 1196 | # CONFIG_UIO is not set |
1197 | |||
1198 | # | ||
1199 | # TI VLYNQ | ||
1200 | # | ||
1104 | # CONFIG_STAGING is not set | 1201 | # CONFIG_STAGING is not set |
1105 | 1202 | ||
1106 | # | 1203 | # |
@@ -1110,6 +1207,7 @@ CONFIG_EXT2_FS=y | |||
1110 | # CONFIG_EXT2_FS_XATTR is not set | 1207 | # CONFIG_EXT2_FS_XATTR is not set |
1111 | # CONFIG_EXT2_FS_XIP is not set | 1208 | # CONFIG_EXT2_FS_XIP is not set |
1112 | CONFIG_EXT3_FS=m | 1209 | CONFIG_EXT3_FS=m |
1210 | # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set | ||
1113 | CONFIG_EXT3_FS_XATTR=y | 1211 | CONFIG_EXT3_FS_XATTR=y |
1114 | # CONFIG_EXT3_FS_POSIX_ACL is not set | 1212 | # CONFIG_EXT3_FS_POSIX_ACL is not set |
1115 | # CONFIG_EXT3_FS_SECURITY is not set | 1213 | # CONFIG_EXT3_FS_SECURITY is not set |
@@ -1119,11 +1217,13 @@ CONFIG_FS_MBCACHE=m | |||
1119 | # CONFIG_REISERFS_FS is not set | 1217 | # CONFIG_REISERFS_FS is not set |
1120 | # CONFIG_JFS_FS is not set | 1218 | # CONFIG_JFS_FS is not set |
1121 | # CONFIG_FS_POSIX_ACL is not set | 1219 | # CONFIG_FS_POSIX_ACL is not set |
1122 | CONFIG_FILE_LOCKING=y | ||
1123 | # CONFIG_XFS_FS is not set | 1220 | # CONFIG_XFS_FS is not set |
1124 | # CONFIG_GFS2_FS is not set | 1221 | # CONFIG_GFS2_FS is not set |
1125 | # CONFIG_OCFS2_FS is not set | 1222 | # CONFIG_OCFS2_FS is not set |
1126 | # CONFIG_BTRFS_FS is not set | 1223 | # CONFIG_BTRFS_FS is not set |
1224 | # CONFIG_NILFS2_FS is not set | ||
1225 | CONFIG_FILE_LOCKING=y | ||
1226 | CONFIG_FSNOTIFY=y | ||
1127 | CONFIG_DNOTIFY=y | 1227 | CONFIG_DNOTIFY=y |
1128 | CONFIG_INOTIFY=y | 1228 | CONFIG_INOTIFY=y |
1129 | CONFIG_INOTIFY_USER=y | 1229 | CONFIG_INOTIFY_USER=y |
@@ -1133,6 +1233,11 @@ CONFIG_INOTIFY_USER=y | |||
1133 | # CONFIG_FUSE_FS is not set | 1233 | # CONFIG_FUSE_FS is not set |
1134 | 1234 | ||
1135 | # | 1235 | # |
1236 | # Caches | ||
1237 | # | ||
1238 | # CONFIG_FSCACHE is not set | ||
1239 | |||
1240 | # | ||
1136 | # CD-ROM/DVD Filesystems | 1241 | # CD-ROM/DVD Filesystems |
1137 | # | 1242 | # |
1138 | # CONFIG_ISO9660_FS is not set | 1243 | # CONFIG_ISO9660_FS is not set |
@@ -1206,7 +1311,6 @@ CONFIG_LOCKD=y | |||
1206 | CONFIG_LOCKD_V4=y | 1311 | CONFIG_LOCKD_V4=y |
1207 | CONFIG_NFS_COMMON=y | 1312 | CONFIG_NFS_COMMON=y |
1208 | CONFIG_SUNRPC=y | 1313 | CONFIG_SUNRPC=y |
1209 | # CONFIG_SUNRPC_REGISTER_V4 is not set | ||
1210 | # CONFIG_RPCSEC_GSS_KRB5 is not set | 1314 | # CONFIG_RPCSEC_GSS_KRB5 is not set |
1211 | # CONFIG_RPCSEC_GSS_SPKM3 is not set | 1315 | # CONFIG_RPCSEC_GSS_SPKM3 is not set |
1212 | # CONFIG_SMB_FS is not set | 1316 | # CONFIG_SMB_FS is not set |
@@ -1261,6 +1365,7 @@ CONFIG_NLS_ISO8859_1=m | |||
1261 | # CONFIG_NLS_KOI8_U is not set | 1365 | # CONFIG_NLS_KOI8_U is not set |
1262 | # CONFIG_NLS_UTF8 is not set | 1366 | # CONFIG_NLS_UTF8 is not set |
1263 | # CONFIG_DLM is not set | 1367 | # CONFIG_DLM is not set |
1368 | # CONFIG_BINARY_PRINTF is not set | ||
1264 | 1369 | ||
1265 | # | 1370 | # |
1266 | # Library routines | 1371 | # Library routines |
@@ -1278,11 +1383,13 @@ CONFIG_ZLIB_INFLATE=y | |||
1278 | CONFIG_ZLIB_DEFLATE=y | 1383 | CONFIG_ZLIB_DEFLATE=y |
1279 | CONFIG_LZO_COMPRESS=m | 1384 | CONFIG_LZO_COMPRESS=m |
1280 | CONFIG_LZO_DECOMPRESS=m | 1385 | CONFIG_LZO_DECOMPRESS=m |
1281 | CONFIG_PLIST=y | 1386 | CONFIG_DECOMPRESS_GZIP=y |
1282 | CONFIG_HAS_IOMEM=y | 1387 | CONFIG_HAS_IOMEM=y |
1283 | CONFIG_HAS_IOPORT=y | 1388 | CONFIG_HAS_IOPORT=y |
1284 | CONFIG_HAS_DMA=y | 1389 | CONFIG_HAS_DMA=y |
1285 | CONFIG_HAVE_LMB=y | 1390 | CONFIG_HAVE_LMB=y |
1391 | CONFIG_NLATTR=y | ||
1392 | CONFIG_GENERIC_ATOMIC64=y | ||
1286 | 1393 | ||
1287 | # | 1394 | # |
1288 | # Kernel hacking | 1395 | # Kernel hacking |
@@ -1292,6 +1399,7 @@ CONFIG_ENABLE_WARN_DEPRECATED=y | |||
1292 | CONFIG_ENABLE_MUST_CHECK=y | 1399 | CONFIG_ENABLE_MUST_CHECK=y |
1293 | CONFIG_FRAME_WARN=1024 | 1400 | CONFIG_FRAME_WARN=1024 |
1294 | CONFIG_MAGIC_SYSRQ=y | 1401 | CONFIG_MAGIC_SYSRQ=y |
1402 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1295 | # CONFIG_UNUSED_SYMBOLS is not set | 1403 | # CONFIG_UNUSED_SYMBOLS is not set |
1296 | # CONFIG_DEBUG_FS is not set | 1404 | # CONFIG_DEBUG_FS is not set |
1297 | # CONFIG_HEADERS_CHECK is not set | 1405 | # CONFIG_HEADERS_CHECK is not set |
@@ -1300,16 +1408,23 @@ CONFIG_DEBUG_KERNEL=y | |||
1300 | CONFIG_DETECT_SOFTLOCKUP=y | 1408 | CONFIG_DETECT_SOFTLOCKUP=y |
1301 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set | 1409 | # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set |
1302 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 | 1410 | CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 |
1411 | CONFIG_DETECT_HUNG_TASK=y | ||
1412 | # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set | ||
1413 | CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 | ||
1303 | CONFIG_SCHED_DEBUG=y | 1414 | CONFIG_SCHED_DEBUG=y |
1304 | # CONFIG_SCHEDSTATS is not set | 1415 | # CONFIG_SCHEDSTATS is not set |
1305 | # CONFIG_TIMER_STATS is not set | 1416 | # CONFIG_TIMER_STATS is not set |
1306 | # CONFIG_DEBUG_OBJECTS is not set | 1417 | # CONFIG_DEBUG_OBJECTS is not set |
1307 | # CONFIG_SLUB_DEBUG_ON is not set | 1418 | # CONFIG_SLUB_DEBUG_ON is not set |
1308 | # CONFIG_SLUB_STATS is not set | 1419 | # CONFIG_SLUB_STATS is not set |
1420 | # CONFIG_DEBUG_KMEMLEAK is not set | ||
1309 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1421 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1310 | # CONFIG_RT_MUTEX_TESTER is not set | 1422 | # CONFIG_RT_MUTEX_TESTER is not set |
1311 | # CONFIG_DEBUG_SPINLOCK is not set | 1423 | # CONFIG_DEBUG_SPINLOCK is not set |
1312 | # CONFIG_DEBUG_MUTEXES is not set | 1424 | # CONFIG_DEBUG_MUTEXES is not set |
1425 | # CONFIG_DEBUG_LOCK_ALLOC is not set | ||
1426 | # CONFIG_PROVE_LOCKING is not set | ||
1427 | # CONFIG_LOCK_STAT is not set | ||
1313 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set | 1428 | # CONFIG_DEBUG_SPINLOCK_SLEEP is not set |
1314 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set | 1429 | # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
1315 | # CONFIG_DEBUG_KOBJECT is not set | 1430 | # CONFIG_DEBUG_KOBJECT is not set |
@@ -1321,35 +1436,43 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1321 | # CONFIG_DEBUG_LIST is not set | 1436 | # CONFIG_DEBUG_LIST is not set |
1322 | # CONFIG_DEBUG_SG is not set | 1437 | # CONFIG_DEBUG_SG is not set |
1323 | # CONFIG_DEBUG_NOTIFIERS is not set | 1438 | # CONFIG_DEBUG_NOTIFIERS is not set |
1324 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1439 | # CONFIG_DEBUG_CREDENTIALS is not set |
1325 | # CONFIG_RCU_TORTURE_TEST is not set | 1440 | # CONFIG_RCU_TORTURE_TEST is not set |
1326 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set | 1441 | # CONFIG_RCU_CPU_STALL_DETECTOR is not set |
1327 | # CONFIG_BACKTRACE_SELF_TEST is not set | 1442 | # CONFIG_BACKTRACE_SELF_TEST is not set |
1328 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set | 1443 | # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
1444 | # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set | ||
1329 | # CONFIG_FAULT_INJECTION is not set | 1445 | # CONFIG_FAULT_INJECTION is not set |
1330 | # CONFIG_LATENCYTOP is not set | 1446 | # CONFIG_LATENCYTOP is not set |
1331 | CONFIG_SYSCTL_SYSCALL_CHECK=y | 1447 | CONFIG_SYSCTL_SYSCALL_CHECK=y |
1448 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1332 | CONFIG_HAVE_FUNCTION_TRACER=y | 1449 | CONFIG_HAVE_FUNCTION_TRACER=y |
1450 | CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y | ||
1333 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1451 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1334 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1452 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1335 | 1453 | CONFIG_TRACING_SUPPORT=y | |
1336 | # | 1454 | CONFIG_FTRACE=y |
1337 | # Tracers | ||
1338 | # | ||
1339 | # CONFIG_FUNCTION_TRACER is not set | 1455 | # CONFIG_FUNCTION_TRACER is not set |
1456 | # CONFIG_IRQSOFF_TRACER is not set | ||
1340 | # CONFIG_SCHED_TRACER is not set | 1457 | # CONFIG_SCHED_TRACER is not set |
1341 | # CONFIG_CONTEXT_SWITCH_TRACER is not set | 1458 | # CONFIG_ENABLE_DEFAULT_TRACERS is not set |
1342 | # CONFIG_BOOT_TRACER is not set | 1459 | # CONFIG_BOOT_TRACER is not set |
1343 | # CONFIG_TRACE_BRANCH_PROFILING is not set | 1460 | CONFIG_BRANCH_PROFILE_NONE=y |
1461 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | ||
1462 | # CONFIG_PROFILE_ALL_BRANCHES is not set | ||
1344 | # CONFIG_STACK_TRACER is not set | 1463 | # CONFIG_STACK_TRACER is not set |
1345 | # CONFIG_DYNAMIC_PRINTK_DEBUG is not set | 1464 | # CONFIG_KMEMTRACE is not set |
1465 | # CONFIG_WORKQUEUE_TRACER is not set | ||
1466 | # CONFIG_BLK_DEV_IO_TRACE is not set | ||
1467 | # CONFIG_DMA_API_DEBUG is not set | ||
1346 | # CONFIG_SAMPLES is not set | 1468 | # CONFIG_SAMPLES is not set |
1347 | CONFIG_HAVE_ARCH_KGDB=y | 1469 | CONFIG_HAVE_ARCH_KGDB=y |
1348 | # CONFIG_KGDB is not set | 1470 | # CONFIG_KGDB is not set |
1471 | # CONFIG_PPC_DISABLE_WERROR is not set | ||
1472 | CONFIG_PPC_WERROR=y | ||
1349 | CONFIG_PRINT_STACK_DEPTH=64 | 1473 | CONFIG_PRINT_STACK_DEPTH=64 |
1350 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1474 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
1351 | # CONFIG_DEBUG_STACK_USAGE is not set | 1475 | # CONFIG_DEBUG_STACK_USAGE is not set |
1352 | # CONFIG_DEBUG_PAGEALLOC is not set | ||
1353 | # CONFIG_CODE_PATCHING_SELFTEST is not set | 1476 | # CONFIG_CODE_PATCHING_SELFTEST is not set |
1354 | # CONFIG_FTR_FIXUP_SELFTEST is not set | 1477 | # CONFIG_FTR_FIXUP_SELFTEST is not set |
1355 | # CONFIG_MSI_BITMAP_SELFTEST is not set | 1478 | # CONFIG_MSI_BITMAP_SELFTEST is not set |
@@ -1363,13 +1486,16 @@ CONFIG_PRINT_STACK_DEPTH=64 | |||
1363 | # CONFIG_KEYS is not set | 1486 | # CONFIG_KEYS is not set |
1364 | # CONFIG_SECURITY is not set | 1487 | # CONFIG_SECURITY is not set |
1365 | # CONFIG_SECURITYFS is not set | 1488 | # CONFIG_SECURITYFS is not set |
1366 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1489 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1490 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1491 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1492 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1493 | CONFIG_DEFAULT_SECURITY="" | ||
1367 | CONFIG_CRYPTO=y | 1494 | CONFIG_CRYPTO=y |
1368 | 1495 | ||
1369 | # | 1496 | # |
1370 | # Crypto core or helper | 1497 | # Crypto core or helper |
1371 | # | 1498 | # |
1372 | # CONFIG_CRYPTO_FIPS is not set | ||
1373 | CONFIG_CRYPTO_ALGAPI=y | 1499 | CONFIG_CRYPTO_ALGAPI=y |
1374 | CONFIG_CRYPTO_ALGAPI2=y | 1500 | CONFIG_CRYPTO_ALGAPI2=y |
1375 | CONFIG_CRYPTO_AEAD2=y | 1501 | CONFIG_CRYPTO_AEAD2=y |
@@ -1378,10 +1504,12 @@ CONFIG_CRYPTO_BLKCIPHER2=y | |||
1378 | CONFIG_CRYPTO_HASH=y | 1504 | CONFIG_CRYPTO_HASH=y |
1379 | CONFIG_CRYPTO_HASH2=y | 1505 | CONFIG_CRYPTO_HASH2=y |
1380 | CONFIG_CRYPTO_RNG2=y | 1506 | CONFIG_CRYPTO_RNG2=y |
1507 | CONFIG_CRYPTO_PCOMP=y | ||
1381 | CONFIG_CRYPTO_MANAGER=y | 1508 | CONFIG_CRYPTO_MANAGER=y |
1382 | CONFIG_CRYPTO_MANAGER2=y | 1509 | CONFIG_CRYPTO_MANAGER2=y |
1383 | # CONFIG_CRYPTO_GF128MUL is not set | 1510 | # CONFIG_CRYPTO_GF128MUL is not set |
1384 | # CONFIG_CRYPTO_NULL is not set | 1511 | # CONFIG_CRYPTO_NULL is not set |
1512 | CONFIG_CRYPTO_WORKQUEUE=y | ||
1385 | # CONFIG_CRYPTO_CRYPTD is not set | 1513 | # CONFIG_CRYPTO_CRYPTD is not set |
1386 | # CONFIG_CRYPTO_AUTHENC is not set | 1514 | # CONFIG_CRYPTO_AUTHENC is not set |
1387 | # CONFIG_CRYPTO_TEST is not set | 1515 | # CONFIG_CRYPTO_TEST is not set |
@@ -1409,11 +1537,13 @@ CONFIG_CRYPTO_PCBC=y | |||
1409 | # | 1537 | # |
1410 | # CONFIG_CRYPTO_HMAC is not set | 1538 | # CONFIG_CRYPTO_HMAC is not set |
1411 | # CONFIG_CRYPTO_XCBC is not set | 1539 | # CONFIG_CRYPTO_XCBC is not set |
1540 | # CONFIG_CRYPTO_VMAC is not set | ||
1412 | 1541 | ||
1413 | # | 1542 | # |
1414 | # Digest | 1543 | # Digest |
1415 | # | 1544 | # |
1416 | # CONFIG_CRYPTO_CRC32C is not set | 1545 | # CONFIG_CRYPTO_CRC32C is not set |
1546 | # CONFIG_CRYPTO_GHASH is not set | ||
1417 | # CONFIG_CRYPTO_MD4 is not set | 1547 | # CONFIG_CRYPTO_MD4 is not set |
1418 | CONFIG_CRYPTO_MD5=y | 1548 | CONFIG_CRYPTO_MD5=y |
1419 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1549 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
@@ -1450,6 +1580,7 @@ CONFIG_CRYPTO_DES=y | |||
1450 | # Compression | 1580 | # Compression |
1451 | # | 1581 | # |
1452 | CONFIG_CRYPTO_DEFLATE=m | 1582 | CONFIG_CRYPTO_DEFLATE=m |
1583 | # CONFIG_CRYPTO_ZLIB is not set | ||
1453 | CONFIG_CRYPTO_LZO=m | 1584 | CONFIG_CRYPTO_LZO=m |
1454 | 1585 | ||
1455 | # | 1586 | # |
diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h index 17828ad411eb..c376eda15313 100644 --- a/arch/powerpc/include/asm/elf.h +++ b/arch/powerpc/include/asm/elf.h | |||
@@ -235,14 +235,10 @@ typedef elf_vrregset_t elf_fpxregset_t; | |||
235 | #ifdef __powerpc64__ | 235 | #ifdef __powerpc64__ |
236 | # define SET_PERSONALITY(ex) \ | 236 | # define SET_PERSONALITY(ex) \ |
237 | do { \ | 237 | do { \ |
238 | unsigned long new_flags = 0; \ | ||
239 | if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ | 238 | if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ |
240 | new_flags = _TIF_32BIT; \ | 239 | set_thread_flag(TIF_32BIT); \ |
241 | if ((current_thread_info()->flags & _TIF_32BIT) \ | ||
242 | != new_flags) \ | ||
243 | set_thread_flag(TIF_ABI_PENDING); \ | ||
244 | else \ | 240 | else \ |
245 | clear_thread_flag(TIF_ABI_PENDING); \ | 241 | clear_thread_flag(TIF_32BIT); \ |
246 | if (personality(current->personality) != PER_LINUX32) \ | 242 | if (personality(current->personality) != PER_LINUX32) \ |
247 | set_personality(PER_LINUX | \ | 243 | set_personality(PER_LINUX | \ |
248 | (current->personality & (~PER_MASK))); \ | 244 | (current->personality & (~PER_MASK))); \ |
diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h index c8b329255678..aa9d383a1c09 100644 --- a/arch/powerpc/include/asm/thread_info.h +++ b/arch/powerpc/include/asm/thread_info.h | |||
@@ -111,7 +111,6 @@ static inline struct thread_info *current_thread_info(void) | |||
111 | #define TIF_NOTIFY_RESUME 13 /* callback before returning to user */ | 111 | #define TIF_NOTIFY_RESUME 13 /* callback before returning to user */ |
112 | #define TIF_FREEZE 14 /* Freezing for suspend */ | 112 | #define TIF_FREEZE 14 /* Freezing for suspend */ |
113 | #define TIF_RUNLATCH 15 /* Is the runlatch enabled? */ | 113 | #define TIF_RUNLATCH 15 /* Is the runlatch enabled? */ |
114 | #define TIF_ABI_PENDING 16 /* 32/64 bit switch needed */ | ||
115 | 114 | ||
116 | /* as above, but as bit values */ | 115 | /* as above, but as bit values */ |
117 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) | 116 | #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE) |
@@ -129,7 +128,6 @@ static inline struct thread_info *current_thread_info(void) | |||
129 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) | 128 | #define _TIF_NOTIFY_RESUME (1<<TIF_NOTIFY_RESUME) |
130 | #define _TIF_FREEZE (1<<TIF_FREEZE) | 129 | #define _TIF_FREEZE (1<<TIF_FREEZE) |
131 | #define _TIF_RUNLATCH (1<<TIF_RUNLATCH) | 130 | #define _TIF_RUNLATCH (1<<TIF_RUNLATCH) |
132 | #define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING) | ||
133 | #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP) | 131 | #define _TIF_SYSCALL_T_OR_A (_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP) |
134 | 132 | ||
135 | #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ | 133 | #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \ |
diff --git a/arch/powerpc/kernel/pci_of_scan.c b/arch/powerpc/kernel/pci_of_scan.c index 7311fdfb9bf8..4aa17401657b 100644 --- a/arch/powerpc/kernel/pci_of_scan.c +++ b/arch/powerpc/kernel/pci_of_scan.c | |||
@@ -123,6 +123,7 @@ struct pci_dev *of_create_pci_dev(struct device_node *node, | |||
123 | { | 123 | { |
124 | struct pci_dev *dev; | 124 | struct pci_dev *dev; |
125 | const char *type; | 125 | const char *type; |
126 | struct pci_slot *slot; | ||
126 | 127 | ||
127 | dev = alloc_pci_dev(); | 128 | dev = alloc_pci_dev(); |
128 | if (!dev) | 129 | if (!dev) |
@@ -140,6 +141,11 @@ struct pci_dev *of_create_pci_dev(struct device_node *node, | |||
140 | dev->devfn = devfn; | 141 | dev->devfn = devfn; |
141 | dev->multifunction = 0; /* maybe a lie? */ | 142 | dev->multifunction = 0; /* maybe a lie? */ |
142 | dev->needs_freset = 0; /* pcie fundamental reset required */ | 143 | dev->needs_freset = 0; /* pcie fundamental reset required */ |
144 | set_pcie_port_type(dev); | ||
145 | |||
146 | list_for_each_entry(slot, &dev->bus->slots, list) | ||
147 | if (PCI_SLOT(dev->devfn) == slot->number) | ||
148 | dev->slot = slot; | ||
143 | 149 | ||
144 | dev->vendor = get_int_prop(node, "vendor-id", 0xffff); | 150 | dev->vendor = get_int_prop(node, "vendor-id", 0xffff); |
145 | dev->device = get_int_prop(node, "device-id", 0xffff); | 151 | dev->device = get_int_prop(node, "device-id", 0xffff); |
@@ -160,10 +166,14 @@ struct pci_dev *of_create_pci_dev(struct device_node *node, | |||
160 | dev->error_state = pci_channel_io_normal; | 166 | dev->error_state = pci_channel_io_normal; |
161 | dev->dma_mask = 0xffffffff; | 167 | dev->dma_mask = 0xffffffff; |
162 | 168 | ||
169 | /* Early fixups, before probing the BARs */ | ||
170 | pci_fixup_device(pci_fixup_early, dev); | ||
171 | |||
163 | if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { | 172 | if (!strcmp(type, "pci") || !strcmp(type, "pciex")) { |
164 | /* a PCI-PCI bridge */ | 173 | /* a PCI-PCI bridge */ |
165 | dev->hdr_type = PCI_HEADER_TYPE_BRIDGE; | 174 | dev->hdr_type = PCI_HEADER_TYPE_BRIDGE; |
166 | dev->rom_base_reg = PCI_ROM_ADDRESS1; | 175 | dev->rom_base_reg = PCI_ROM_ADDRESS1; |
176 | set_pcie_hotplug_bridge(dev); | ||
167 | } else if (!strcmp(type, "cardbus")) { | 177 | } else if (!strcmp(type, "cardbus")) { |
168 | dev->hdr_type = PCI_HEADER_TYPE_CARDBUS; | 178 | dev->hdr_type = PCI_HEADER_TYPE_CARDBUS; |
169 | } else { | 179 | } else { |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index c930ac38e59f..7b816daf3eba 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -554,18 +554,6 @@ void exit_thread(void) | |||
554 | 554 | ||
555 | void flush_thread(void) | 555 | void flush_thread(void) |
556 | { | 556 | { |
557 | #ifdef CONFIG_PPC64 | ||
558 | struct thread_info *t = current_thread_info(); | ||
559 | |||
560 | if (test_ti_thread_flag(t, TIF_ABI_PENDING)) { | ||
561 | clear_ti_thread_flag(t, TIF_ABI_PENDING); | ||
562 | if (test_ti_thread_flag(t, TIF_32BIT)) | ||
563 | clear_ti_thread_flag(t, TIF_32BIT); | ||
564 | else | ||
565 | set_ti_thread_flag(t, TIF_32BIT); | ||
566 | } | ||
567 | #endif | ||
568 | |||
569 | discard_lazy_cpu_state(); | 557 | discard_lazy_cpu_state(); |
570 | 558 | ||
571 | if (current->thread.dabr) { | 559 | if (current->thread.dabr) { |
diff --git a/arch/powerpc/kvm/Kconfig b/arch/powerpc/kvm/Kconfig index e28841fbfb8d..fe037fdaf1b3 100644 --- a/arch/powerpc/kvm/Kconfig +++ b/arch/powerpc/kvm/Kconfig | |||
@@ -53,7 +53,7 @@ config KVM_440 | |||
53 | 53 | ||
54 | config KVM_EXIT_TIMING | 54 | config KVM_EXIT_TIMING |
55 | bool "Detailed exit timing" | 55 | bool "Detailed exit timing" |
56 | depends on KVM | 56 | depends on KVM_440 || KVM_E500 |
57 | ---help--- | 57 | ---help--- |
58 | Calculate elapsed time for every exit/enter cycle. A per-vcpu | 58 | Calculate elapsed time for every exit/enter cycle. A per-vcpu |
59 | report is available in debugfs kvm/vm#_vcpu#_timing. | 59 | report is available in debugfs kvm/vm#_vcpu#_timing. |
diff --git a/arch/powerpc/mm/tlb_hash64.c b/arch/powerpc/mm/tlb_hash64.c index 282d9306361f..1ec06576f619 100644 --- a/arch/powerpc/mm/tlb_hash64.c +++ b/arch/powerpc/mm/tlb_hash64.c | |||
@@ -63,15 +63,21 @@ void hpte_need_flush(struct mm_struct *mm, unsigned long addr, | |||
63 | if (huge) { | 63 | if (huge) { |
64 | #ifdef CONFIG_HUGETLB_PAGE | 64 | #ifdef CONFIG_HUGETLB_PAGE |
65 | psize = get_slice_psize(mm, addr); | 65 | psize = get_slice_psize(mm, addr); |
66 | /* Mask the address for the correct page size */ | ||
67 | addr &= ~((1UL << mmu_psize_defs[psize].shift) - 1); | ||
66 | #else | 68 | #else |
67 | BUG(); | 69 | BUG(); |
68 | psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */ | 70 | psize = pte_pagesize_index(mm, addr, pte); /* shutup gcc */ |
69 | #endif | 71 | #endif |
70 | } else | 72 | } else { |
71 | psize = pte_pagesize_index(mm, addr, pte); | 73 | psize = pte_pagesize_index(mm, addr, pte); |
74 | /* Mask the address for the standard page size. If we | ||
75 | * have a 64k page kernel, but the hardware does not | ||
76 | * support 64k pages, this might be different from the | ||
77 | * hardware page size encoded in the slice table. */ | ||
78 | addr &= PAGE_MASK; | ||
79 | } | ||
72 | 80 | ||
73 | /* Mask the address for the correct page size */ | ||
74 | addr &= ~((1UL << mmu_psize_defs[psize].shift) - 1); | ||
75 | 81 | ||
76 | /* Build full vaddr */ | 82 | /* Build full vaddr */ |
77 | if (!is_kernel_addr(addr)) { | 83 | if (!is_kernel_addr(addr)) { |
diff --git a/arch/powerpc/platforms/pseries/xics.c b/arch/powerpc/platforms/pseries/xics.c index d80f193cd871..f5f79196721c 100644 --- a/arch/powerpc/platforms/pseries/xics.c +++ b/arch/powerpc/platforms/pseries/xics.c | |||
@@ -191,11 +191,7 @@ static int get_irq_server(unsigned int virq, cpumask_t cpumask, | |||
191 | return default_server; | 191 | return default_server; |
192 | } | 192 | } |
193 | #else | 193 | #else |
194 | static int get_irq_server(unsigned int virq, cpumask_t cpumask, | 194 | #define get_irq_server(virq, cpumask, strict_check) (default_server) |
195 | unsigned int strict_check) | ||
196 | { | ||
197 | return default_server; | ||
198 | } | ||
199 | #endif | 195 | #endif |
200 | 196 | ||
201 | static void xics_unmask_irq(unsigned int virq) | 197 | static void xics_unmask_irq(unsigned int virq) |
@@ -788,9 +784,13 @@ static void xics_set_cpu_priority(unsigned char cppr) | |||
788 | { | 784 | { |
789 | struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr); | 785 | struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr); |
790 | 786 | ||
791 | BUG_ON(os_cppr->index != 0); | 787 | /* |
788 | * we only really want to set the priority when there's | ||
789 | * just one cppr value on the stack | ||
790 | */ | ||
791 | WARN_ON(os_cppr->index != 0); | ||
792 | 792 | ||
793 | os_cppr->stack[os_cppr->index] = cppr; | 793 | os_cppr->stack[0] = cppr; |
794 | 794 | ||
795 | if (firmware_has_feature(FW_FEATURE_LPAR)) | 795 | if (firmware_has_feature(FW_FEATURE_LPAR)) |
796 | lpar_cppr_info(cppr); | 796 | lpar_cppr_info(cppr); |
@@ -825,8 +825,14 @@ void xics_setup_cpu(void) | |||
825 | 825 | ||
826 | void xics_teardown_cpu(void) | 826 | void xics_teardown_cpu(void) |
827 | { | 827 | { |
828 | struct xics_cppr *os_cppr = &__get_cpu_var(xics_cppr); | ||
828 | int cpu = smp_processor_id(); | 829 | int cpu = smp_processor_id(); |
829 | 830 | ||
831 | /* | ||
832 | * we have to reset the cppr index to 0 because we're | ||
833 | * not going to return from the IPI | ||
834 | */ | ||
835 | os_cppr->index = 0; | ||
830 | xics_set_cpu_priority(0); | 836 | xics_set_cpu_priority(0); |
831 | 837 | ||
832 | /* Clear any pending IPI request */ | 838 | /* Clear any pending IPI request */ |
diff --git a/arch/powerpc/sysdev/ppc4xx_pci.c b/arch/powerpc/sysdev/ppc4xx_pci.c index 6ff9d71b4c0d..8aa33021e50b 100644 --- a/arch/powerpc/sysdev/ppc4xx_pci.c +++ b/arch/powerpc/sysdev/ppc4xx_pci.c | |||
@@ -569,7 +569,8 @@ static void __init ppc4xx_probe_pcix_bridge(struct device_node *np) | |||
569 | hose->last_busno = bus_range ? bus_range[1] : 0xff; | 569 | hose->last_busno = bus_range ? bus_range[1] : 0xff; |
570 | 570 | ||
571 | /* Setup config space */ | 571 | /* Setup config space */ |
572 | setup_indirect_pci(hose, rsrc_cfg.start, rsrc_cfg.start + 0x4, 0); | 572 | setup_indirect_pci(hose, rsrc_cfg.start, rsrc_cfg.start + 0x4, |
573 | PPC_INDIRECT_TYPE_SET_CFG_TYPE); | ||
573 | 574 | ||
574 | /* Disable all windows */ | 575 | /* Disable all windows */ |
575 | writel(0, reg + PCIX0_POM0SA); | 576 | writel(0, reg + PCIX0_POM0SA); |
diff --git a/arch/s390/include/asm/irqflags.h b/arch/s390/include/asm/irqflags.h index 3f26131120b7..c2fb432f576a 100644 --- a/arch/s390/include/asm/irqflags.h +++ b/arch/s390/include/asm/irqflags.h | |||
@@ -1,14 +1,12 @@ | |||
1 | /* | 1 | /* |
2 | * include/asm-s390/irqflags.h | 2 | * Copyright IBM Corp. 2006,2010 |
3 | * | 3 | * Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com> |
4 | * Copyright (C) IBM Corp. 2006 | ||
5 | * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> | ||
6 | */ | 4 | */ |
7 | 5 | ||
8 | #ifndef __ASM_IRQFLAGS_H | 6 | #ifndef __ASM_IRQFLAGS_H |
9 | #define __ASM_IRQFLAGS_H | 7 | #define __ASM_IRQFLAGS_H |
10 | 8 | ||
11 | #ifdef __KERNEL__ | 9 | #include <linux/types.h> |
12 | 10 | ||
13 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) | 11 | #if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 2) |
14 | 12 | ||
@@ -102,5 +100,4 @@ static inline int raw_irqs_disabled_flags(unsigned long flags) | |||
102 | /* For spinlocks etc */ | 100 | /* For spinlocks etc */ |
103 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) | 101 | #define raw_local_irq_save(x) ((x) = raw_local_irq_disable()) |
104 | 102 | ||
105 | #endif /* __KERNEL__ */ | ||
106 | #endif /* __ASM_IRQFLAGS_H */ | 103 | #endif /* __ASM_IRQFLAGS_H */ |
diff --git a/arch/s390/include/asm/lowcore.h b/arch/s390/include/asm/lowcore.h index f2ef4b619ce1..c25dfac7dd76 100644 --- a/arch/s390/include/asm/lowcore.h +++ b/arch/s390/include/asm/lowcore.h | |||
@@ -293,12 +293,12 @@ struct _lowcore | |||
293 | __u64 clock_comparator; /* 0x02d0 */ | 293 | __u64 clock_comparator; /* 0x02d0 */ |
294 | __u32 machine_flags; /* 0x02d8 */ | 294 | __u32 machine_flags; /* 0x02d8 */ |
295 | __u32 ftrace_func; /* 0x02dc */ | 295 | __u32 ftrace_func; /* 0x02dc */ |
296 | __u8 pad_0x02f0[0x0300-0x02f0]; /* 0x02f0 */ | 296 | __u8 pad_0x02e0[0x0300-0x02e0]; /* 0x02e0 */ |
297 | 297 | ||
298 | /* Interrupt response block */ | 298 | /* Interrupt response block */ |
299 | __u8 irb[64]; /* 0x0300 */ | 299 | __u8 irb[64]; /* 0x0300 */ |
300 | 300 | ||
301 | __u8 pad_0x0400[0x0e00-0x0400]; /* 0x0400 */ | 301 | __u8 pad_0x0340[0x0e00-0x0340]; /* 0x0340 */ |
302 | 302 | ||
303 | /* | 303 | /* |
304 | * 0xe00 contains the address of the IPL Parameter Information | 304 | * 0xe00 contains the address of the IPL Parameter Information |
diff --git a/arch/s390/kernel/entry.S b/arch/s390/kernel/entry.S index 48215d15762b..e8ef21c51bbe 100644 --- a/arch/s390/kernel/entry.S +++ b/arch/s390/kernel/entry.S | |||
@@ -571,6 +571,7 @@ pgm_svcper: | |||
571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 571 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 572 | oi __TI_flags+3(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
573 | TRACE_IRQS_ON | 573 | TRACE_IRQS_ON |
574 | lm %r2,%r6,SP_R2(%r15) # load svc arguments | ||
574 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 575 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
575 | b BASED(sysc_do_svc) | 576 | b BASED(sysc_do_svc) |
576 | 577 | ||
diff --git a/arch/s390/kernel/entry64.S b/arch/s390/kernel/entry64.S index 9aff1d449b6e..f33658f09dd7 100644 --- a/arch/s390/kernel/entry64.S +++ b/arch/s390/kernel/entry64.S | |||
@@ -549,6 +549,7 @@ pgm_svcper: | |||
549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID | 549 | mvc __THREAD_per+__PER_access_id(1,%r8),__LC_PER_ACCESS_ID |
550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP | 550 | oi __TI_flags+7(%r9),_TIF_SINGLE_STEP # set TIF_SINGLE_STEP |
551 | TRACE_IRQS_ON | 551 | TRACE_IRQS_ON |
552 | lmg %r2,%r6,SP_R2(%r15) # load svc arguments | ||
552 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts | 553 | stosm __SF_EMPTY(%r15),0x03 # reenable interrupts |
553 | j sysc_do_svc | 554 | j sysc_do_svc |
554 | 555 | ||
diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c index 1675c48b9145..6289945562b0 100644 --- a/arch/s390/kernel/signal.c +++ b/arch/s390/kernel/signal.c | |||
@@ -64,7 +64,7 @@ SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask) | |||
64 | recalc_sigpending(); | 64 | recalc_sigpending(); |
65 | spin_unlock_irq(¤t->sighand->siglock); | 65 | spin_unlock_irq(¤t->sighand->siglock); |
66 | 66 | ||
67 | current->state = TASK_INTERRUPTIBLE; | 67 | set_current_state(TASK_INTERRUPTIBLE); |
68 | schedule(); | 68 | schedule(); |
69 | set_thread_flag(TIF_RESTORE_SIGMASK); | 69 | set_thread_flag(TIF_RESTORE_SIGMASK); |
70 | 70 | ||
diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c index ba9d8a7bc1ac..b40096494e46 100644 --- a/arch/s390/kvm/intercept.c +++ b/arch/s390/kvm/intercept.c | |||
@@ -213,7 +213,7 @@ static int handle_instruction_and_prog(struct kvm_vcpu *vcpu) | |||
213 | return rc2; | 213 | return rc2; |
214 | } | 214 | } |
215 | 215 | ||
216 | static const intercept_handler_t intercept_funcs[0x48 >> 2] = { | 216 | static const intercept_handler_t intercept_funcs[] = { |
217 | [0x00 >> 2] = handle_noop, | 217 | [0x00 >> 2] = handle_noop, |
218 | [0x04 >> 2] = handle_instruction, | 218 | [0x04 >> 2] = handle_instruction, |
219 | [0x08 >> 2] = handle_prog, | 219 | [0x08 >> 2] = handle_prog, |
@@ -230,7 +230,7 @@ int kvm_handle_sie_intercept(struct kvm_vcpu *vcpu) | |||
230 | intercept_handler_t func; | 230 | intercept_handler_t func; |
231 | u8 code = vcpu->arch.sie_block->icptcode; | 231 | u8 code = vcpu->arch.sie_block->icptcode; |
232 | 232 | ||
233 | if (code & 3 || code > 0x48) | 233 | if (code & 3 || (code >> 2) >= ARRAY_SIZE(intercept_funcs)) |
234 | return -ENOTSUPP; | 234 | return -ENOTSUPP; |
235 | func = intercept_funcs[code >> 2]; | 235 | func = intercept_funcs[code >> 2]; |
236 | if (func) | 236 | if (func) |
diff --git a/arch/sh/kernel/cpu/clock.c b/arch/sh/kernel/cpu/clock.c index f3a46be2ae81..83da5debeedf 100644 --- a/arch/sh/kernel/cpu/clock.c +++ b/arch/sh/kernel/cpu/clock.c | |||
@@ -598,7 +598,7 @@ static struct dentry *clk_debugfs_root; | |||
598 | static int clk_debugfs_register_one(struct clk *c) | 598 | static int clk_debugfs_register_one(struct clk *c) |
599 | { | 599 | { |
600 | int err; | 600 | int err; |
601 | struct dentry *d, *child; | 601 | struct dentry *d, *child, *child_tmp; |
602 | struct clk *pa = c->parent; | 602 | struct clk *pa = c->parent; |
603 | char s[255]; | 603 | char s[255]; |
604 | char *p = s; | 604 | char *p = s; |
@@ -630,7 +630,7 @@ static int clk_debugfs_register_one(struct clk *c) | |||
630 | 630 | ||
631 | err_out: | 631 | err_out: |
632 | d = c->dentry; | 632 | d = c->dentry; |
633 | list_for_each_entry(child, &d->d_subdirs, d_u.d_child) | 633 | list_for_each_entry_safe(child, child_tmp, &d->d_subdirs, d_u.d_child) |
634 | debugfs_remove(child); | 634 | debugfs_remove(child); |
635 | debugfs_remove(c->dentry); | 635 | debugfs_remove(c->dentry); |
636 | return err; | 636 | return err; |
diff --git a/arch/sh/kernel/cpu/sh3/entry.S b/arch/sh/kernel/cpu/sh3/entry.S index 3f7e2a22c7c2..f6a389c996cb 100644 --- a/arch/sh/kernel/cpu/sh3/entry.S +++ b/arch/sh/kernel/cpu/sh3/entry.S | |||
@@ -132,7 +132,6 @@ ENTRY(tlb_protection_violation_store) | |||
132 | mov #1, r5 | 132 | mov #1, r5 |
133 | 133 | ||
134 | call_handle_tlbmiss: | 134 | call_handle_tlbmiss: |
135 | setup_frame_reg | ||
136 | mov.l 1f, r0 | 135 | mov.l 1f, r0 |
137 | mov r5, r8 | 136 | mov r5, r8 |
138 | mov.l @r0, r6 | 137 | mov.l @r0, r6 |
@@ -365,6 +364,8 @@ handle_exception: | |||
365 | mov.l @k2, k2 ! read out vector and keep in k2 | 364 | mov.l @k2, k2 ! read out vector and keep in k2 |
366 | 365 | ||
367 | handle_exception_special: | 366 | handle_exception_special: |
367 | setup_frame_reg | ||
368 | |||
368 | ! Setup return address and jump to exception handler | 369 | ! Setup return address and jump to exception handler |
369 | mov.l 7f, r9 ! fetch return address | 370 | mov.l 7f, r9 ! fetch return address |
370 | stc r2_bank, r0 ! k2 (vector) | 371 | stc r2_bank, r0 ! k2 (vector) |
diff --git a/arch/sh/kernel/dwarf.c b/arch/sh/kernel/dwarf.c index 3576b709f052..e51168064e56 100644 --- a/arch/sh/kernel/dwarf.c +++ b/arch/sh/kernel/dwarf.c | |||
@@ -540,6 +540,8 @@ void dwarf_free_frame(struct dwarf_frame *frame) | |||
540 | mempool_free(frame, dwarf_frame_pool); | 540 | mempool_free(frame, dwarf_frame_pool); |
541 | } | 541 | } |
542 | 542 | ||
543 | extern void ret_from_irq(void); | ||
544 | |||
543 | /** | 545 | /** |
544 | * dwarf_unwind_stack - unwind the stack | 546 | * dwarf_unwind_stack - unwind the stack |
545 | * | 547 | * |
@@ -678,6 +680,24 @@ struct dwarf_frame * dwarf_unwind_stack(unsigned long pc, | |||
678 | addr = frame->cfa + reg->addr; | 680 | addr = frame->cfa + reg->addr; |
679 | frame->return_addr = __raw_readl(addr); | 681 | frame->return_addr = __raw_readl(addr); |
680 | 682 | ||
683 | /* | ||
684 | * Ah, the joys of unwinding through interrupts. | ||
685 | * | ||
686 | * Interrupts are tricky - the DWARF info needs to be _really_ | ||
687 | * accurate and unfortunately I'm seeing a lot of bogus DWARF | ||
688 | * info. For example, I've seen interrupts occur in epilogues | ||
689 | * just after the frame pointer (r14) had been restored. The | ||
690 | * problem was that the DWARF info claimed that the CFA could be | ||
691 | * reached by using the value of the frame pointer before it was | ||
692 | * restored. | ||
693 | * | ||
694 | * So until the compiler can be trusted to produce reliable | ||
695 | * DWARF info when it really matters, let's stop unwinding once | ||
696 | * we've calculated the function that was interrupted. | ||
697 | */ | ||
698 | if (prev && prev->pc == (unsigned long)ret_from_irq) | ||
699 | frame->return_addr = 0; | ||
700 | |||
681 | return frame; | 701 | return frame; |
682 | 702 | ||
683 | bail: | 703 | bail: |
@@ -892,18 +912,18 @@ static struct unwinder dwarf_unwinder = { | |||
892 | 912 | ||
893 | static void dwarf_unwinder_cleanup(void) | 913 | static void dwarf_unwinder_cleanup(void) |
894 | { | 914 | { |
895 | struct dwarf_cie *cie; | 915 | struct dwarf_cie *cie, *cie_tmp; |
896 | struct dwarf_fde *fde; | 916 | struct dwarf_fde *fde, *fde_tmp; |
897 | 917 | ||
898 | /* | 918 | /* |
899 | * Deallocate all the memory allocated for the DWARF unwinder. | 919 | * Deallocate all the memory allocated for the DWARF unwinder. |
900 | * Traverse all the FDE/CIE lists and remove and free all the | 920 | * Traverse all the FDE/CIE lists and remove and free all the |
901 | * memory associated with those data structures. | 921 | * memory associated with those data structures. |
902 | */ | 922 | */ |
903 | list_for_each_entry(cie, &dwarf_cie_list, link) | 923 | list_for_each_entry_safe(cie, cie_tmp, &dwarf_cie_list, link) |
904 | kfree(cie); | 924 | kfree(cie); |
905 | 925 | ||
906 | list_for_each_entry(fde, &dwarf_fde_list, link) | 926 | list_for_each_entry_safe(fde, fde_tmp, &dwarf_fde_list, link) |
907 | kfree(fde); | 927 | kfree(fde); |
908 | 928 | ||
909 | kmem_cache_destroy(dwarf_reg_cachep); | 929 | kmem_cache_destroy(dwarf_reg_cachep); |
diff --git a/arch/sh/kernel/entry-common.S b/arch/sh/kernel/entry-common.S index f0abd58c3a69..2b15ae60c3a0 100644 --- a/arch/sh/kernel/entry-common.S +++ b/arch/sh/kernel/entry-common.S | |||
@@ -70,8 +70,14 @@ ret_from_exception: | |||
70 | CFI_STARTPROC simple | 70 | CFI_STARTPROC simple |
71 | CFI_DEF_CFA r14, 0 | 71 | CFI_DEF_CFA r14, 0 |
72 | CFI_REL_OFFSET 17, 64 | 72 | CFI_REL_OFFSET 17, 64 |
73 | CFI_REL_OFFSET 15, 0 | 73 | CFI_REL_OFFSET 15, 60 |
74 | CFI_REL_OFFSET 14, 56 | 74 | CFI_REL_OFFSET 14, 56 |
75 | CFI_REL_OFFSET 13, 52 | ||
76 | CFI_REL_OFFSET 12, 48 | ||
77 | CFI_REL_OFFSET 11, 44 | ||
78 | CFI_REL_OFFSET 10, 40 | ||
79 | CFI_REL_OFFSET 9, 36 | ||
80 | CFI_REL_OFFSET 8, 32 | ||
75 | preempt_stop() | 81 | preempt_stop() |
76 | ENTRY(ret_from_irq) | 82 | ENTRY(ret_from_irq) |
77 | ! | 83 | ! |
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c index 31f80c61b031..ec79faf6f021 100644 --- a/arch/sh/kernel/process_64.c +++ b/arch/sh/kernel/process_64.c | |||
@@ -368,7 +368,7 @@ void exit_thread(void) | |||
368 | void flush_thread(void) | 368 | void flush_thread(void) |
369 | { | 369 | { |
370 | 370 | ||
371 | /* Called by fs/exec.c (flush_old_exec) to remove traces of a | 371 | /* Called by fs/exec.c (setup_new_exec) to remove traces of a |
372 | * previously running executable. */ | 372 | * previously running executable. */ |
373 | #ifdef CONFIG_SH_FPU | 373 | #ifdef CONFIG_SH_FPU |
374 | if (last_task_used_math == current) { | 374 | if (last_task_used_math == current) { |
diff --git a/arch/sh/kernel/ptrace_64.c b/arch/sh/kernel/ptrace_64.c index 873ebdc4f98e..b063eb8b18e3 100644 --- a/arch/sh/kernel/ptrace_64.c +++ b/arch/sh/kernel/ptrace_64.c | |||
@@ -133,6 +133,8 @@ void user_enable_single_step(struct task_struct *child) | |||
133 | struct pt_regs *regs = child->thread.uregs; | 133 | struct pt_regs *regs = child->thread.uregs; |
134 | 134 | ||
135 | regs->sr |= SR_SSTEP; /* auto-resetting upon exception */ | 135 | regs->sr |= SR_SSTEP; /* auto-resetting upon exception */ |
136 | |||
137 | set_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
136 | } | 138 | } |
137 | 139 | ||
138 | void user_disable_single_step(struct task_struct *child) | 140 | void user_disable_single_step(struct task_struct *child) |
@@ -140,6 +142,8 @@ void user_disable_single_step(struct task_struct *child) | |||
140 | struct pt_regs *regs = child->thread.uregs; | 142 | struct pt_regs *regs = child->thread.uregs; |
141 | 143 | ||
142 | regs->sr &= ~SR_SSTEP; | 144 | regs->sr &= ~SR_SSTEP; |
145 | |||
146 | clear_tsk_thread_flag(child, TIF_SINGLESTEP); | ||
143 | } | 147 | } |
144 | 148 | ||
145 | static int genregs_get(struct task_struct *target, | 149 | static int genregs_get(struct task_struct *target, |
@@ -454,6 +458,8 @@ asmlinkage long long do_syscall_trace_enter(struct pt_regs *regs) | |||
454 | 458 | ||
455 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) | 459 | asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) |
456 | { | 460 | { |
461 | int step; | ||
462 | |||
457 | if (unlikely(current->audit_context)) | 463 | if (unlikely(current->audit_context)) |
458 | audit_syscall_exit(AUDITSC_RESULT(regs->regs[9]), | 464 | audit_syscall_exit(AUDITSC_RESULT(regs->regs[9]), |
459 | regs->regs[9]); | 465 | regs->regs[9]); |
@@ -461,8 +467,9 @@ asmlinkage void do_syscall_trace_leave(struct pt_regs *regs) | |||
461 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) | 467 | if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT))) |
462 | trace_sys_exit(regs, regs->regs[9]); | 468 | trace_sys_exit(regs, regs->regs[9]); |
463 | 469 | ||
464 | if (test_thread_flag(TIF_SYSCALL_TRACE)) | 470 | step = test_thread_flag(TIF_SINGLESTEP); |
465 | tracehook_report_syscall_exit(regs, 0); | 471 | if (step || test_thread_flag(TIF_SYSCALL_TRACE)) |
472 | tracehook_report_syscall_exit(regs, step); | ||
466 | } | 473 | } |
467 | 474 | ||
468 | /* Called with interrupts disabled */ | 475 | /* Called with interrupts disabled */ |
diff --git a/arch/sh/kernel/signal_64.c b/arch/sh/kernel/signal_64.c index ce76dbdef294..580e97d46ca5 100644 --- a/arch/sh/kernel/signal_64.c +++ b/arch/sh/kernel/signal_64.c | |||
@@ -118,7 +118,9 @@ static int do_signal(struct pt_regs *regs, sigset_t *oldset) | |||
118 | * clear the TS_RESTORE_SIGMASK flag. | 118 | * clear the TS_RESTORE_SIGMASK flag. |
119 | */ | 119 | */ |
120 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; | 120 | current_thread_info()->status &= ~TS_RESTORE_SIGMASK; |
121 | tracehook_signal_handler(signr, &info, &ka, regs, 0); | 121 | |
122 | tracehook_signal_handler(signr, &info, &ka, regs, | ||
123 | test_thread_flag(TIF_SINGLESTEP)); | ||
122 | return 1; | 124 | return 1; |
123 | } | 125 | } |
124 | } | 126 | } |
diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig index 108197ac0d56..4097f6a10860 100644 --- a/arch/sparc/Kconfig +++ b/arch/sparc/Kconfig | |||
@@ -64,8 +64,11 @@ config BITS | |||
64 | default 64 if SPARC64 | 64 | default 64 if SPARC64 |
65 | 65 | ||
66 | config GENERIC_TIME | 66 | config GENERIC_TIME |
67 | def_bool y | ||
68 | |||
69 | config ARCH_USES_GETTIMEOFFSET | ||
67 | bool | 70 | bool |
68 | default y if SPARC64 | 71 | default y if SPARC32 |
69 | 72 | ||
70 | config GENERIC_CMOS_UPDATE | 73 | config GENERIC_CMOS_UPDATE |
71 | bool | 74 | bool |
diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/sparc32_defconfig index 983d59824a28..99a1f191497b 100644 --- a/arch/sparc/configs/sparc32_defconfig +++ b/arch/sparc/configs/sparc32_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.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Wed Sep 16 00:03:43 2009 | 4 | # Mon Jan 11 23:20:31 2010 |
5 | # | 5 | # |
6 | # CONFIG_64BIT is not set | 6 | # CONFIG_64BIT is not set |
7 | CONFIG_SPARC=y | 7 | CONFIG_SPARC=y |
@@ -41,6 +41,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
41 | # | 41 | # |
42 | CONFIG_TREE_RCU=y | 42 | CONFIG_TREE_RCU=y |
43 | # CONFIG_TREE_PREEMPT_RCU is not set | 43 | # CONFIG_TREE_PREEMPT_RCU is not set |
44 | # CONFIG_TINY_RCU is not set | ||
44 | # CONFIG_RCU_TRACE is not set | 45 | # CONFIG_RCU_TRACE is not set |
45 | CONFIG_RCU_FANOUT=32 | 46 | CONFIG_RCU_FANOUT=32 |
46 | # CONFIG_RCU_FANOUT_EXACT is not set | 47 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -88,21 +89,21 @@ CONFIG_TIMERFD=y | |||
88 | CONFIG_EVENTFD=y | 89 | CONFIG_EVENTFD=y |
89 | CONFIG_SHMEM=y | 90 | CONFIG_SHMEM=y |
90 | CONFIG_AIO=y | 91 | CONFIG_AIO=y |
91 | CONFIG_HAVE_PERF_COUNTERS=y | 92 | CONFIG_HAVE_PERF_EVENTS=y |
93 | CONFIG_PERF_USE_VMALLOC=y | ||
92 | 94 | ||
93 | # | 95 | # |
94 | # Performance Counters | 96 | # Kernel Performance Events And Counters |
95 | # | 97 | # |
98 | # CONFIG_PERF_EVENTS is not set | ||
96 | # CONFIG_PERF_COUNTERS is not set | 99 | # CONFIG_PERF_COUNTERS is not set |
97 | CONFIG_VM_EVENT_COUNTERS=y | 100 | CONFIG_VM_EVENT_COUNTERS=y |
98 | CONFIG_PCI_QUIRKS=y | 101 | CONFIG_PCI_QUIRKS=y |
99 | # CONFIG_STRIP_ASM_SYMS is not set | ||
100 | CONFIG_COMPAT_BRK=y | 102 | CONFIG_COMPAT_BRK=y |
101 | CONFIG_SLAB=y | 103 | CONFIG_SLAB=y |
102 | # CONFIG_SLUB is not set | 104 | # CONFIG_SLUB is not set |
103 | # CONFIG_SLOB is not set | 105 | # CONFIG_SLOB is not set |
104 | # CONFIG_PROFILING is not set | 106 | # CONFIG_PROFILING is not set |
105 | # CONFIG_MARKERS is not set | ||
106 | CONFIG_HAVE_OPROFILE=y | 107 | CONFIG_HAVE_OPROFILE=y |
107 | CONFIG_HAVE_ARCH_TRACEHOOK=y | 108 | CONFIG_HAVE_ARCH_TRACEHOOK=y |
108 | CONFIG_HAVE_DMA_ATTRS=y | 109 | CONFIG_HAVE_DMA_ATTRS=y |
@@ -131,14 +132,41 @@ CONFIG_LBDAF=y | |||
131 | # IO Schedulers | 132 | # IO Schedulers |
132 | # | 133 | # |
133 | CONFIG_IOSCHED_NOOP=y | 134 | CONFIG_IOSCHED_NOOP=y |
134 | CONFIG_IOSCHED_AS=y | ||
135 | CONFIG_IOSCHED_DEADLINE=y | 135 | CONFIG_IOSCHED_DEADLINE=y |
136 | CONFIG_IOSCHED_CFQ=y | 136 | CONFIG_IOSCHED_CFQ=y |
137 | # CONFIG_DEFAULT_AS is not set | ||
138 | # CONFIG_DEFAULT_DEADLINE is not set | 137 | # CONFIG_DEFAULT_DEADLINE is not set |
139 | CONFIG_DEFAULT_CFQ=y | 138 | CONFIG_DEFAULT_CFQ=y |
140 | # CONFIG_DEFAULT_NOOP is not set | 139 | # CONFIG_DEFAULT_NOOP is not set |
141 | CONFIG_DEFAULT_IOSCHED="cfq" | 140 | CONFIG_DEFAULT_IOSCHED="cfq" |
141 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
142 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
143 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
144 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
145 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
146 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
147 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
148 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
149 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
150 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
151 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
152 | # CONFIG_INLINE_READ_LOCK is not set | ||
153 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
154 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
155 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
156 | CONFIG_INLINE_READ_UNLOCK=y | ||
157 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
158 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
159 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
160 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
161 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
162 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
163 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
164 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
165 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
166 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
167 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
168 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
169 | # CONFIG_MUTEX_SPIN_ON_OWNER is not set | ||
142 | # CONFIG_FREEZER is not set | 170 | # CONFIG_FREEZER is not set |
143 | 171 | ||
144 | # | 172 | # |
@@ -168,8 +196,7 @@ CONFIG_SPLIT_PTLOCK_CPUS=4 | |||
168 | # CONFIG_PHYS_ADDR_T_64BIT is not set | 196 | # CONFIG_PHYS_ADDR_T_64BIT is not set |
169 | CONFIG_ZONE_DMA_FLAG=1 | 197 | CONFIG_ZONE_DMA_FLAG=1 |
170 | CONFIG_BOUNCE=y | 198 | CONFIG_BOUNCE=y |
171 | CONFIG_HAVE_MLOCK=y | 199 | # CONFIG_KSM is not set |
172 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
173 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 | 200 | CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
174 | CONFIG_SUN_PM=y | 201 | CONFIG_SUN_PM=y |
175 | # CONFIG_SPARC_LED is not set | 202 | # CONFIG_SPARC_LED is not set |
@@ -257,6 +284,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
257 | CONFIG_INET6_XFRM_MODE_BEET=m | 284 | CONFIG_INET6_XFRM_MODE_BEET=m |
258 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 285 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
259 | CONFIG_IPV6_SIT=m | 286 | CONFIG_IPV6_SIT=m |
287 | # CONFIG_IPV6_SIT_6RD is not set | ||
260 | CONFIG_IPV6_NDISC_NODETYPE=y | 288 | CONFIG_IPV6_NDISC_NODETYPE=y |
261 | CONFIG_IPV6_TUNNEL=m | 289 | CONFIG_IPV6_TUNNEL=m |
262 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 290 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -295,9 +323,6 @@ CONFIG_NET_PKTGEN=m | |||
295 | # CONFIG_AF_RXRPC is not set | 323 | # CONFIG_AF_RXRPC is not set |
296 | CONFIG_WIRELESS=y | 324 | CONFIG_WIRELESS=y |
297 | # CONFIG_CFG80211 is not set | 325 | # CONFIG_CFG80211 is not set |
298 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
299 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
300 | # CONFIG_WIRELESS_EXT is not set | ||
301 | # CONFIG_LIB80211 is not set | 326 | # CONFIG_LIB80211 is not set |
302 | 327 | ||
303 | # | 328 | # |
@@ -335,6 +360,10 @@ CONFIG_BLK_DEV=y | |||
335 | # CONFIG_BLK_DEV_COW_COMMON is not set | 360 | # CONFIG_BLK_DEV_COW_COMMON is not set |
336 | CONFIG_BLK_DEV_LOOP=m | 361 | CONFIG_BLK_DEV_LOOP=m |
337 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 362 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
363 | |||
364 | # | ||
365 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
366 | # | ||
338 | # CONFIG_BLK_DEV_NBD is not set | 367 | # CONFIG_BLK_DEV_NBD is not set |
339 | # CONFIG_BLK_DEV_SX8 is not set | 368 | # CONFIG_BLK_DEV_SX8 is not set |
340 | CONFIG_BLK_DEV_RAM=y | 369 | CONFIG_BLK_DEV_RAM=y |
@@ -398,8 +427,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
398 | # CONFIG_ISCSI_TCP is not set | 427 | # CONFIG_ISCSI_TCP is not set |
399 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 428 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
400 | # CONFIG_SCSI_BNX2_ISCSI is not set | 429 | # CONFIG_SCSI_BNX2_ISCSI is not set |
430 | # CONFIG_BE2ISCSI is not set | ||
401 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 431 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
432 | # CONFIG_SCSI_HPSA is not set | ||
402 | # CONFIG_SCSI_3W_9XXX is not set | 433 | # CONFIG_SCSI_3W_9XXX is not set |
434 | # CONFIG_SCSI_3W_SAS is not set | ||
403 | # CONFIG_SCSI_ACARD is not set | 435 | # CONFIG_SCSI_ACARD is not set |
404 | # CONFIG_SCSI_AACRAID is not set | 436 | # CONFIG_SCSI_AACRAID is not set |
405 | # CONFIG_SCSI_AIC7XXX is not set | 437 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -434,7 +466,9 @@ CONFIG_SCSI_QLOGICPTI=m | |||
434 | # CONFIG_SCSI_DEBUG is not set | 466 | # CONFIG_SCSI_DEBUG is not set |
435 | CONFIG_SCSI_SUNESP=y | 467 | CONFIG_SCSI_SUNESP=y |
436 | # CONFIG_SCSI_PMCRAID is not set | 468 | # CONFIG_SCSI_PMCRAID is not set |
469 | # CONFIG_SCSI_PM8001 is not set | ||
437 | # CONFIG_SCSI_SRP is not set | 470 | # CONFIG_SCSI_SRP is not set |
471 | # CONFIG_SCSI_BFA_FC is not set | ||
438 | # CONFIG_SCSI_DH is not set | 472 | # CONFIG_SCSI_DH is not set |
439 | # CONFIG_SCSI_OSD_INITIATOR is not set | 473 | # CONFIG_SCSI_OSD_INITIATOR is not set |
440 | # CONFIG_ATA is not set | 474 | # CONFIG_ATA is not set |
@@ -450,7 +484,7 @@ CONFIG_SCSI_SUNESP=y | |||
450 | # | 484 | # |
451 | 485 | ||
452 | # | 486 | # |
453 | # See the help texts for more information. | 487 | # The newer stack is recommended. |
454 | # | 488 | # |
455 | # CONFIG_FIREWIRE is not set | 489 | # CONFIG_FIREWIRE is not set |
456 | # CONFIG_IEEE1394 is not set | 490 | # CONFIG_IEEE1394 is not set |
@@ -487,6 +521,7 @@ CONFIG_SUNQE=m | |||
487 | # CONFIG_NET_PCI is not set | 521 | # CONFIG_NET_PCI is not set |
488 | # CONFIG_B44 is not set | 522 | # CONFIG_B44 is not set |
489 | # CONFIG_KS8842 is not set | 523 | # CONFIG_KS8842 is not set |
524 | # CONFIG_KS8851_MLL is not set | ||
490 | # CONFIG_ATL2 is not set | 525 | # CONFIG_ATL2 is not set |
491 | CONFIG_NETDEV_1000=y | 526 | CONFIG_NETDEV_1000=y |
492 | # CONFIG_ACENIC is not set | 527 | # CONFIG_ACENIC is not set |
@@ -546,6 +581,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
546 | # CONFIG_NETCONSOLE is not set | 581 | # CONFIG_NETCONSOLE is not set |
547 | # CONFIG_NETPOLL is not set | 582 | # CONFIG_NETPOLL is not set |
548 | # CONFIG_NET_POLL_CONTROLLER is not set | 583 | # CONFIG_NET_POLL_CONTROLLER is not set |
584 | # CONFIG_VMXNET3 is not set | ||
549 | # CONFIG_ISDN is not set | 585 | # CONFIG_ISDN is not set |
550 | # CONFIG_PHONE is not set | 586 | # CONFIG_PHONE is not set |
551 | 587 | ||
@@ -555,6 +591,7 @@ CONFIG_CHELSIO_T3_DEPENDS=y | |||
555 | CONFIG_INPUT=y | 591 | CONFIG_INPUT=y |
556 | # CONFIG_INPUT_FF_MEMLESS is not set | 592 | # CONFIG_INPUT_FF_MEMLESS is not set |
557 | # CONFIG_INPUT_POLLDEV is not set | 593 | # CONFIG_INPUT_POLLDEV is not set |
594 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
558 | 595 | ||
559 | # | 596 | # |
560 | # Userland interfaces | 597 | # Userland interfaces |
@@ -574,6 +611,7 @@ CONFIG_INPUT_KEYBOARD=y | |||
574 | CONFIG_KEYBOARD_ATKBD=m | 611 | CONFIG_KEYBOARD_ATKBD=m |
575 | # CONFIG_KEYBOARD_LKKBD is not set | 612 | # CONFIG_KEYBOARD_LKKBD is not set |
576 | # CONFIG_KEYBOARD_NEWTON is not set | 613 | # CONFIG_KEYBOARD_NEWTON is not set |
614 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
577 | # CONFIG_KEYBOARD_STOWAWAY is not set | 615 | # CONFIG_KEYBOARD_STOWAWAY is not set |
578 | CONFIG_KEYBOARD_SUNKBD=m | 616 | CONFIG_KEYBOARD_SUNKBD=m |
579 | # CONFIG_KEYBOARD_XTKBD is not set | 617 | # CONFIG_KEYBOARD_XTKBD is not set |
@@ -604,6 +642,7 @@ CONFIG_SERIO_SERPORT=m | |||
604 | # CONFIG_SERIO_PCIPS2 is not set | 642 | # CONFIG_SERIO_PCIPS2 is not set |
605 | CONFIG_SERIO_LIBPS2=m | 643 | CONFIG_SERIO_LIBPS2=m |
606 | # CONFIG_SERIO_RAW is not set | 644 | # CONFIG_SERIO_RAW is not set |
645 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
607 | # CONFIG_GAMEPORT is not set | 646 | # CONFIG_GAMEPORT is not set |
608 | 647 | ||
609 | # | 648 | # |
@@ -636,6 +675,7 @@ CONFIG_SERIAL_CORE=y | |||
636 | CONFIG_SERIAL_CORE_CONSOLE=y | 675 | CONFIG_SERIAL_CORE_CONSOLE=y |
637 | CONFIG_CONSOLE_POLL=y | 676 | CONFIG_CONSOLE_POLL=y |
638 | # CONFIG_SERIAL_JSM is not set | 677 | # CONFIG_SERIAL_JSM is not set |
678 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
639 | CONFIG_UNIX98_PTYS=y | 679 | CONFIG_UNIX98_PTYS=y |
640 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 680 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
641 | CONFIG_LEGACY_PTYS=y | 681 | CONFIG_LEGACY_PTYS=y |
@@ -661,6 +701,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
661 | # CONFIG_POWER_SUPPLY is not set | 701 | # CONFIG_POWER_SUPPLY is not set |
662 | CONFIG_HWMON=y | 702 | CONFIG_HWMON=y |
663 | # CONFIG_HWMON_VID is not set | 703 | # CONFIG_HWMON_VID is not set |
704 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
705 | |||
706 | # | ||
707 | # Native drivers | ||
708 | # | ||
664 | # CONFIG_SENSORS_I5K_AMB is not set | 709 | # CONFIG_SENSORS_I5K_AMB is not set |
665 | # CONFIG_SENSORS_F71805F is not set | 710 | # CONFIG_SENSORS_F71805F is not set |
666 | # CONFIG_SENSORS_F71882FG is not set | 711 | # CONFIG_SENSORS_F71882FG is not set |
@@ -675,9 +720,7 @@ CONFIG_HWMON=y | |||
675 | # CONFIG_SENSORS_VT8231 is not set | 720 | # CONFIG_SENSORS_VT8231 is not set |
676 | # CONFIG_SENSORS_W83627HF is not set | 721 | # CONFIG_SENSORS_W83627HF is not set |
677 | # CONFIG_SENSORS_W83627EHF is not set | 722 | # CONFIG_SENSORS_W83627EHF is not set |
678 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
679 | # CONFIG_THERMAL is not set | 723 | # CONFIG_THERMAL is not set |
680 | # CONFIG_THERMAL_HWMON is not set | ||
681 | # CONFIG_WATCHDOG is not set | 724 | # CONFIG_WATCHDOG is not set |
682 | CONFIG_SSB_POSSIBLE=y | 725 | CONFIG_SSB_POSSIBLE=y |
683 | 726 | ||
@@ -699,6 +742,7 @@ CONFIG_SSB_POSSIBLE=y | |||
699 | # | 742 | # |
700 | # Graphics support | 743 | # Graphics support |
701 | # | 744 | # |
745 | CONFIG_VGA_ARB=y | ||
702 | # CONFIG_VGASTATE is not set | 746 | # CONFIG_VGASTATE is not set |
703 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 747 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
704 | # CONFIG_FB is not set | 748 | # CONFIG_FB is not set |
@@ -776,7 +820,9 @@ CONFIG_RTC_INTF_DEV=y | |||
776 | # CONFIG_RTC_DRV_M48T86 is not set | 820 | # CONFIG_RTC_DRV_M48T86 is not set |
777 | # CONFIG_RTC_DRV_M48T35 is not set | 821 | # CONFIG_RTC_DRV_M48T35 is not set |
778 | CONFIG_RTC_DRV_M48T59=y | 822 | CONFIG_RTC_DRV_M48T59=y |
823 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
779 | # CONFIG_RTC_DRV_BQ4802 is not set | 824 | # CONFIG_RTC_DRV_BQ4802 is not set |
825 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
780 | # CONFIG_RTC_DRV_V3020 is not set | 826 | # CONFIG_RTC_DRV_V3020 is not set |
781 | 827 | ||
782 | # | 828 | # |
@@ -955,6 +1001,7 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y | |||
955 | CONFIG_ENABLE_MUST_CHECK=y | 1001 | CONFIG_ENABLE_MUST_CHECK=y |
956 | CONFIG_FRAME_WARN=1024 | 1002 | CONFIG_FRAME_WARN=1024 |
957 | CONFIG_MAGIC_SYSRQ=y | 1003 | CONFIG_MAGIC_SYSRQ=y |
1004 | # CONFIG_STRIP_ASM_SYMS is not set | ||
958 | # CONFIG_UNUSED_SYMBOLS is not set | 1005 | # CONFIG_UNUSED_SYMBOLS is not set |
959 | # CONFIG_DEBUG_FS is not set | 1006 | # CONFIG_DEBUG_FS is not set |
960 | # CONFIG_HEADERS_CHECK is not set | 1007 | # CONFIG_HEADERS_CHECK is not set |
@@ -1003,9 +1050,9 @@ CONFIG_KGDB=y | |||
1003 | CONFIG_KGDB_SERIAL_CONSOLE=y | 1050 | CONFIG_KGDB_SERIAL_CONSOLE=y |
1004 | CONFIG_KGDB_TESTS=y | 1051 | CONFIG_KGDB_TESTS=y |
1005 | # CONFIG_KGDB_TESTS_ON_BOOT is not set | 1052 | # CONFIG_KGDB_TESTS_ON_BOOT is not set |
1006 | # CONFIG_KMEMCHECK is not set | ||
1007 | # CONFIG_DEBUG_STACK_USAGE is not set | 1053 | # CONFIG_DEBUG_STACK_USAGE is not set |
1008 | # CONFIG_STACK_DEBUG is not set | 1054 | # CONFIG_STACK_DEBUG is not set |
1055 | # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set | ||
1009 | 1056 | ||
1010 | # | 1057 | # |
1011 | # Security options | 1058 | # Security options |
@@ -1013,7 +1060,11 @@ CONFIG_KGDB_TESTS=y | |||
1013 | # CONFIG_KEYS is not set | 1060 | # CONFIG_KEYS is not set |
1014 | # CONFIG_SECURITY is not set | 1061 | # CONFIG_SECURITY is not set |
1015 | # CONFIG_SECURITYFS is not set | 1062 | # CONFIG_SECURITYFS is not set |
1016 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1063 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1064 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1065 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1066 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1067 | CONFIG_DEFAULT_SECURITY="" | ||
1017 | CONFIG_CRYPTO=y | 1068 | CONFIG_CRYPTO=y |
1018 | 1069 | ||
1019 | # | 1070 | # |
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig index f80b881dfea7..41c5a56aa6f2 100644 --- a/arch/sparc/configs/sparc64_defconfig +++ b/arch/sparc/configs/sparc64_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.31 | 3 | # Linux kernel version: 2.6.33-rc2 |
4 | # Tue Sep 15 17:06:03 2009 | 4 | # Wed Jan 20 16:31:47 2010 |
5 | # | 5 | # |
6 | CONFIG_64BIT=y | 6 | CONFIG_64BIT=y |
7 | CONFIG_SPARC=y | 7 | CONFIG_SPARC=y |
@@ -20,6 +20,7 @@ CONFIG_HAVE_LATENCYTOP_SUPPORT=y | |||
20 | CONFIG_AUDIT_ARCH=y | 20 | CONFIG_AUDIT_ARCH=y |
21 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | 21 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y |
22 | CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y | 22 | CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y |
23 | CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y | ||
23 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y | 24 | CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y |
24 | CONFIG_MMU=y | 25 | CONFIG_MMU=y |
25 | CONFIG_ARCH_NO_VIRT_TO_BUS=y | 26 | CONFIG_ARCH_NO_VIRT_TO_BUS=y |
@@ -50,6 +51,7 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y | |||
50 | # | 51 | # |
51 | CONFIG_TREE_RCU=y | 52 | CONFIG_TREE_RCU=y |
52 | # CONFIG_TREE_PREEMPT_RCU is not set | 53 | # CONFIG_TREE_PREEMPT_RCU is not set |
54 | # CONFIG_TINY_RCU is not set | ||
53 | # CONFIG_RCU_TRACE is not set | 55 | # CONFIG_RCU_TRACE is not set |
54 | CONFIG_RCU_FANOUT=64 | 56 | CONFIG_RCU_FANOUT=64 |
55 | # CONFIG_RCU_FANOUT_EXACT is not set | 57 | # CONFIG_RCU_FANOUT_EXACT is not set |
@@ -62,8 +64,7 @@ CONFIG_RT_GROUP_SCHED=y | |||
62 | CONFIG_USER_SCHED=y | 64 | CONFIG_USER_SCHED=y |
63 | # CONFIG_CGROUP_SCHED is not set | 65 | # CONFIG_CGROUP_SCHED is not set |
64 | # CONFIG_CGROUPS is not set | 66 | # CONFIG_CGROUPS is not set |
65 | CONFIG_SYSFS_DEPRECATED=y | 67 | # CONFIG_SYSFS_DEPRECATED_V2 is not set |
66 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
67 | CONFIG_RELAY=y | 68 | CONFIG_RELAY=y |
68 | CONFIG_NAMESPACES=y | 69 | CONFIG_NAMESPACES=y |
69 | # CONFIG_UTS_NS is not set | 70 | # CONFIG_UTS_NS is not set |
@@ -97,24 +98,25 @@ CONFIG_TIMERFD=y | |||
97 | CONFIG_EVENTFD=y | 98 | CONFIG_EVENTFD=y |
98 | CONFIG_SHMEM=y | 99 | CONFIG_SHMEM=y |
99 | CONFIG_AIO=y | 100 | CONFIG_AIO=y |
100 | CONFIG_HAVE_PERF_COUNTERS=y | 101 | CONFIG_HAVE_PERF_EVENTS=y |
102 | CONFIG_PERF_USE_VMALLOC=y | ||
101 | 103 | ||
102 | # | 104 | # |
103 | # Performance Counters | 105 | # Kernel Performance Events And Counters |
104 | # | 106 | # |
105 | CONFIG_PERF_COUNTERS=y | 107 | CONFIG_PERF_EVENTS=y |
106 | CONFIG_EVENT_PROFILE=y | 108 | CONFIG_EVENT_PROFILE=y |
109 | CONFIG_PERF_COUNTERS=y | ||
110 | # CONFIG_DEBUG_PERF_USE_VMALLOC is not set | ||
107 | CONFIG_VM_EVENT_COUNTERS=y | 111 | CONFIG_VM_EVENT_COUNTERS=y |
108 | CONFIG_PCI_QUIRKS=y | 112 | CONFIG_PCI_QUIRKS=y |
109 | CONFIG_SLUB_DEBUG=y | 113 | CONFIG_SLUB_DEBUG=y |
110 | # CONFIG_STRIP_ASM_SYMS is not set | ||
111 | # CONFIG_COMPAT_BRK is not set | 114 | # CONFIG_COMPAT_BRK is not set |
112 | # CONFIG_SLAB is not set | 115 | # CONFIG_SLAB is not set |
113 | CONFIG_SLUB=y | 116 | CONFIG_SLUB=y |
114 | # CONFIG_SLOB is not set | 117 | # CONFIG_SLOB is not set |
115 | CONFIG_PROFILING=y | 118 | CONFIG_PROFILING=y |
116 | CONFIG_TRACEPOINTS=y | 119 | CONFIG_TRACEPOINTS=y |
117 | CONFIG_MARKERS=y | ||
118 | CONFIG_OPROFILE=m | 120 | CONFIG_OPROFILE=m |
119 | CONFIG_HAVE_OPROFILE=y | 121 | CONFIG_HAVE_OPROFILE=y |
120 | CONFIG_KPROBES=y | 122 | CONFIG_KPROBES=y |
@@ -152,14 +154,41 @@ CONFIG_BLOCK_COMPAT=y | |||
152 | # IO Schedulers | 154 | # IO Schedulers |
153 | # | 155 | # |
154 | CONFIG_IOSCHED_NOOP=y | 156 | CONFIG_IOSCHED_NOOP=y |
155 | CONFIG_IOSCHED_AS=y | ||
156 | CONFIG_IOSCHED_DEADLINE=y | 157 | CONFIG_IOSCHED_DEADLINE=y |
157 | CONFIG_IOSCHED_CFQ=y | 158 | CONFIG_IOSCHED_CFQ=y |
158 | CONFIG_DEFAULT_AS=y | ||
159 | # CONFIG_DEFAULT_DEADLINE is not set | 159 | # CONFIG_DEFAULT_DEADLINE is not set |
160 | # CONFIG_DEFAULT_CFQ is not set | 160 | CONFIG_DEFAULT_CFQ=y |
161 | # CONFIG_DEFAULT_NOOP is not set | 161 | # CONFIG_DEFAULT_NOOP is not set |
162 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 162 | CONFIG_DEFAULT_IOSCHED="cfq" |
163 | # CONFIG_INLINE_SPIN_TRYLOCK is not set | ||
164 | # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set | ||
165 | # CONFIG_INLINE_SPIN_LOCK is not set | ||
166 | # CONFIG_INLINE_SPIN_LOCK_BH is not set | ||
167 | # CONFIG_INLINE_SPIN_LOCK_IRQ is not set | ||
168 | # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set | ||
169 | CONFIG_INLINE_SPIN_UNLOCK=y | ||
170 | # CONFIG_INLINE_SPIN_UNLOCK_BH is not set | ||
171 | CONFIG_INLINE_SPIN_UNLOCK_IRQ=y | ||
172 | # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set | ||
173 | # CONFIG_INLINE_READ_TRYLOCK is not set | ||
174 | # CONFIG_INLINE_READ_LOCK is not set | ||
175 | # CONFIG_INLINE_READ_LOCK_BH is not set | ||
176 | # CONFIG_INLINE_READ_LOCK_IRQ is not set | ||
177 | # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set | ||
178 | CONFIG_INLINE_READ_UNLOCK=y | ||
179 | # CONFIG_INLINE_READ_UNLOCK_BH is not set | ||
180 | CONFIG_INLINE_READ_UNLOCK_IRQ=y | ||
181 | # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set | ||
182 | # CONFIG_INLINE_WRITE_TRYLOCK is not set | ||
183 | # CONFIG_INLINE_WRITE_LOCK is not set | ||
184 | # CONFIG_INLINE_WRITE_LOCK_BH is not set | ||
185 | # CONFIG_INLINE_WRITE_LOCK_IRQ is not set | ||
186 | # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set | ||
187 | CONFIG_INLINE_WRITE_UNLOCK=y | ||
188 | # CONFIG_INLINE_WRITE_UNLOCK_BH is not set | ||
189 | CONFIG_INLINE_WRITE_UNLOCK_IRQ=y | ||
190 | # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set | ||
191 | CONFIG_MUTEX_SPIN_ON_OWNER=y | ||
163 | # CONFIG_FREEZER is not set | 192 | # CONFIG_FREEZER is not set |
164 | 193 | ||
165 | # | 194 | # |
@@ -179,6 +208,7 @@ CONFIG_GENERIC_HWEIGHT=y | |||
179 | CONFIG_GENERIC_CALIBRATE_DELAY=y | 208 | CONFIG_GENERIC_CALIBRATE_DELAY=y |
180 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y | 209 | CONFIG_ARCH_MAY_HAVE_PC_FDC=y |
181 | CONFIG_SPARC64_SMP=y | 210 | CONFIG_SPARC64_SMP=y |
211 | CONFIG_EARLYFB=y | ||
182 | CONFIG_SPARC64_PAGE_SIZE_8KB=y | 212 | CONFIG_SPARC64_PAGE_SIZE_8KB=y |
183 | # CONFIG_SPARC64_PAGE_SIZE_64KB is not set | 213 | # CONFIG_SPARC64_PAGE_SIZE_64KB is not set |
184 | CONFIG_SECCOMP=y | 214 | CONFIG_SECCOMP=y |
@@ -216,8 +246,7 @@ CONFIG_MIGRATION=y | |||
216 | CONFIG_PHYS_ADDR_T_64BIT=y | 246 | CONFIG_PHYS_ADDR_T_64BIT=y |
217 | CONFIG_ZONE_DMA_FLAG=0 | 247 | CONFIG_ZONE_DMA_FLAG=0 |
218 | CONFIG_NR_QUICK=1 | 248 | CONFIG_NR_QUICK=1 |
219 | CONFIG_HAVE_MLOCK=y | 249 | # CONFIG_KSM is not set |
220 | CONFIG_HAVE_MLOCKED_PAGE_BIT=y | ||
221 | CONFIG_DEFAULT_MMAP_MIN_ADDR=8192 | 250 | CONFIG_DEFAULT_MMAP_MIN_ADDR=8192 |
222 | CONFIG_SCHED_SMT=y | 251 | CONFIG_SCHED_SMT=y |
223 | CONFIG_SCHED_MC=y | 252 | CONFIG_SCHED_MC=y |
@@ -315,6 +344,7 @@ CONFIG_INET6_XFRM_MODE_TUNNEL=m | |||
315 | CONFIG_INET6_XFRM_MODE_BEET=m | 344 | CONFIG_INET6_XFRM_MODE_BEET=m |
316 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set | 345 | # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set |
317 | CONFIG_IPV6_SIT=m | 346 | CONFIG_IPV6_SIT=m |
347 | # CONFIG_IPV6_SIT_6RD is not set | ||
318 | CONFIG_IPV6_NDISC_NODETYPE=y | 348 | CONFIG_IPV6_NDISC_NODETYPE=y |
319 | CONFIG_IPV6_TUNNEL=m | 349 | CONFIG_IPV6_TUNNEL=m |
320 | # CONFIG_IPV6_MULTIPLE_TABLES is not set | 350 | # CONFIG_IPV6_MULTIPLE_TABLES is not set |
@@ -356,9 +386,6 @@ CONFIG_NET_TCPPROBE=m | |||
356 | # CONFIG_AF_RXRPC is not set | 386 | # CONFIG_AF_RXRPC is not set |
357 | CONFIG_WIRELESS=y | 387 | CONFIG_WIRELESS=y |
358 | # CONFIG_CFG80211 is not set | 388 | # CONFIG_CFG80211 is not set |
359 | CONFIG_CFG80211_DEFAULT_PS_VALUE=0 | ||
360 | CONFIG_WIRELESS_OLD_REGULATORY=y | ||
361 | # CONFIG_WIRELESS_EXT is not set | ||
362 | # CONFIG_LIB80211 is not set | 389 | # CONFIG_LIB80211 is not set |
363 | 390 | ||
364 | # | 391 | # |
@@ -376,6 +403,7 @@ CONFIG_WIRELESS_OLD_REGULATORY=y | |||
376 | # Generic Driver Options | 403 | # Generic Driver Options |
377 | # | 404 | # |
378 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" | 405 | CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" |
406 | # CONFIG_DEVTMPFS is not set | ||
379 | CONFIG_STANDALONE=y | 407 | CONFIG_STANDALONE=y |
380 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set | 408 | # CONFIG_PREVENT_FIRMWARE_BUILD is not set |
381 | CONFIG_FW_LOADER=y | 409 | CONFIG_FW_LOADER=y |
@@ -397,6 +425,11 @@ CONFIG_BLK_DEV=y | |||
397 | # CONFIG_BLK_DEV_COW_COMMON is not set | 425 | # CONFIG_BLK_DEV_COW_COMMON is not set |
398 | CONFIG_BLK_DEV_LOOP=m | 426 | CONFIG_BLK_DEV_LOOP=m |
399 | CONFIG_BLK_DEV_CRYPTOLOOP=m | 427 | CONFIG_BLK_DEV_CRYPTOLOOP=m |
428 | |||
429 | # | ||
430 | # DRBD disabled because PROC_FS, INET or CONNECTOR not selected | ||
431 | # | ||
432 | # CONFIG_BLK_DEV_DRBD is not set | ||
400 | CONFIG_BLK_DEV_NBD=m | 433 | CONFIG_BLK_DEV_NBD=m |
401 | # CONFIG_BLK_DEV_SX8 is not set | 434 | # CONFIG_BLK_DEV_SX8 is not set |
402 | # CONFIG_BLK_DEV_UB is not set | 435 | # CONFIG_BLK_DEV_UB is not set |
@@ -408,6 +441,7 @@ CONFIG_ATA_OVER_ETH=m | |||
408 | CONFIG_SUNVDC=m | 441 | CONFIG_SUNVDC=m |
409 | # CONFIG_BLK_DEV_HD is not set | 442 | # CONFIG_BLK_DEV_HD is not set |
410 | CONFIG_MISC_DEVICES=y | 443 | CONFIG_MISC_DEVICES=y |
444 | # CONFIG_AD525X_DPOT is not set | ||
411 | # CONFIG_PHANTOM is not set | 445 | # CONFIG_PHANTOM is not set |
412 | # CONFIG_SGI_IOC4 is not set | 446 | # CONFIG_SGI_IOC4 is not set |
413 | # CONFIG_TIFM_CORE is not set | 447 | # CONFIG_TIFM_CORE is not set |
@@ -415,6 +449,7 @@ CONFIG_MISC_DEVICES=y | |||
415 | # CONFIG_ENCLOSURE_SERVICES is not set | 449 | # CONFIG_ENCLOSURE_SERVICES is not set |
416 | # CONFIG_HP_ILO is not set | 450 | # CONFIG_HP_ILO is not set |
417 | # CONFIG_ISL29003 is not set | 451 | # CONFIG_ISL29003 is not set |
452 | # CONFIG_DS1682 is not set | ||
418 | # CONFIG_C2PORT is not set | 453 | # CONFIG_C2PORT is not set |
419 | 454 | ||
420 | # | 455 | # |
@@ -522,8 +557,11 @@ CONFIG_SCSI_LOWLEVEL=y | |||
522 | # CONFIG_ISCSI_TCP is not set | 557 | # CONFIG_ISCSI_TCP is not set |
523 | # CONFIG_SCSI_CXGB3_ISCSI is not set | 558 | # CONFIG_SCSI_CXGB3_ISCSI is not set |
524 | # CONFIG_SCSI_BNX2_ISCSI is not set | 559 | # CONFIG_SCSI_BNX2_ISCSI is not set |
560 | # CONFIG_BE2ISCSI is not set | ||
525 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set | 561 | # CONFIG_BLK_DEV_3W_XXXX_RAID is not set |
562 | # CONFIG_SCSI_HPSA is not set | ||
526 | # CONFIG_SCSI_3W_9XXX is not set | 563 | # CONFIG_SCSI_3W_9XXX is not set |
564 | # CONFIG_SCSI_3W_SAS is not set | ||
527 | # CONFIG_SCSI_ACARD is not set | 565 | # CONFIG_SCSI_ACARD is not set |
528 | # CONFIG_SCSI_AACRAID is not set | 566 | # CONFIG_SCSI_AACRAID is not set |
529 | # CONFIG_SCSI_AIC7XXX is not set | 567 | # CONFIG_SCSI_AIC7XXX is not set |
@@ -557,7 +595,9 @@ CONFIG_SCSI_LOWLEVEL=y | |||
557 | # CONFIG_SCSI_DEBUG is not set | 595 | # CONFIG_SCSI_DEBUG is not set |
558 | # CONFIG_SCSI_SUNESP is not set | 596 | # CONFIG_SCSI_SUNESP is not set |
559 | # CONFIG_SCSI_PMCRAID is not set | 597 | # CONFIG_SCSI_PMCRAID is not set |
598 | # CONFIG_SCSI_PM8001 is not set | ||
560 | # CONFIG_SCSI_SRP is not set | 599 | # CONFIG_SCSI_SRP is not set |
600 | # CONFIG_SCSI_BFA_FC is not set | ||
561 | # CONFIG_SCSI_DH is not set | 601 | # CONFIG_SCSI_DH is not set |
562 | # CONFIG_SCSI_OSD_INITIATOR is not set | 602 | # CONFIG_SCSI_OSD_INITIATOR is not set |
563 | # CONFIG_ATA is not set | 603 | # CONFIG_ATA is not set |
@@ -568,7 +608,9 @@ CONFIG_MD_RAID0=m | |||
568 | CONFIG_MD_RAID1=m | 608 | CONFIG_MD_RAID1=m |
569 | CONFIG_MD_RAID10=m | 609 | CONFIG_MD_RAID10=m |
570 | CONFIG_MD_RAID456=m | 610 | CONFIG_MD_RAID456=m |
611 | # CONFIG_MULTICORE_RAID456 is not set | ||
571 | CONFIG_MD_RAID6_PQ=m | 612 | CONFIG_MD_RAID6_PQ=m |
613 | # CONFIG_ASYNC_RAID6_TEST is not set | ||
572 | CONFIG_MD_MULTIPATH=m | 614 | CONFIG_MD_MULTIPATH=m |
573 | # CONFIG_MD_FAULTY is not set | 615 | # CONFIG_MD_FAULTY is not set |
574 | CONFIG_BLK_DEV_DM=m | 616 | CONFIG_BLK_DEV_DM=m |
@@ -592,7 +634,7 @@ CONFIG_DM_ZERO=m | |||
592 | # | 634 | # |
593 | 635 | ||
594 | # | 636 | # |
595 | # See the help texts for more information. | 637 | # The newer stack is recommended. |
596 | # | 638 | # |
597 | # CONFIG_FIREWIRE is not set | 639 | # CONFIG_FIREWIRE is not set |
598 | # CONFIG_IEEE1394 is not set | 640 | # CONFIG_IEEE1394 is not set |
@@ -664,6 +706,7 @@ CONFIG_NET_PCI=y | |||
664 | # CONFIG_SUNDANCE is not set | 706 | # CONFIG_SUNDANCE is not set |
665 | # CONFIG_TLAN is not set | 707 | # CONFIG_TLAN is not set |
666 | # CONFIG_KS8842 is not set | 708 | # CONFIG_KS8842 is not set |
709 | # CONFIG_KS8851_MLL is not set | ||
667 | # CONFIG_VIA_RHINE is not set | 710 | # CONFIG_VIA_RHINE is not set |
668 | # CONFIG_SC92031 is not set | 711 | # CONFIG_SC92031 is not set |
669 | # CONFIG_ATL2 is not set | 712 | # CONFIG_ATL2 is not set |
@@ -745,6 +788,7 @@ CONFIG_SLHC=m | |||
745 | # CONFIG_NETCONSOLE is not set | 788 | # CONFIG_NETCONSOLE is not set |
746 | # CONFIG_NETPOLL is not set | 789 | # CONFIG_NETPOLL is not set |
747 | # CONFIG_NET_POLL_CONTROLLER is not set | 790 | # CONFIG_NET_POLL_CONTROLLER is not set |
791 | # CONFIG_VMXNET3 is not set | ||
748 | # CONFIG_ISDN is not set | 792 | # CONFIG_ISDN is not set |
749 | # CONFIG_PHONE is not set | 793 | # CONFIG_PHONE is not set |
750 | 794 | ||
@@ -754,6 +798,7 @@ CONFIG_SLHC=m | |||
754 | CONFIG_INPUT=y | 798 | CONFIG_INPUT=y |
755 | # CONFIG_INPUT_FF_MEMLESS is not set | 799 | # CONFIG_INPUT_FF_MEMLESS is not set |
756 | # CONFIG_INPUT_POLLDEV is not set | 800 | # CONFIG_INPUT_POLLDEV is not set |
801 | # CONFIG_INPUT_SPARSEKMAP is not set | ||
757 | 802 | ||
758 | # | 803 | # |
759 | # Userland interfaces | 804 | # Userland interfaces |
@@ -770,9 +815,13 @@ CONFIG_INPUT_EVDEV=y | |||
770 | # Input Device Drivers | 815 | # Input Device Drivers |
771 | # | 816 | # |
772 | CONFIG_INPUT_KEYBOARD=y | 817 | CONFIG_INPUT_KEYBOARD=y |
818 | # CONFIG_KEYBOARD_ADP5588 is not set | ||
773 | CONFIG_KEYBOARD_ATKBD=y | 819 | CONFIG_KEYBOARD_ATKBD=y |
820 | # CONFIG_QT2160 is not set | ||
774 | CONFIG_KEYBOARD_LKKBD=m | 821 | CONFIG_KEYBOARD_LKKBD=m |
822 | # CONFIG_KEYBOARD_MAX7359 is not set | ||
775 | # CONFIG_KEYBOARD_NEWTON is not set | 823 | # CONFIG_KEYBOARD_NEWTON is not set |
824 | # CONFIG_KEYBOARD_OPENCORES is not set | ||
776 | # CONFIG_KEYBOARD_STOWAWAY is not set | 825 | # CONFIG_KEYBOARD_STOWAWAY is not set |
777 | CONFIG_KEYBOARD_SUNKBD=y | 826 | CONFIG_KEYBOARD_SUNKBD=y |
778 | # CONFIG_KEYBOARD_XTKBD is not set | 827 | # CONFIG_KEYBOARD_XTKBD is not set |
@@ -812,6 +861,7 @@ CONFIG_SERIO_I8042=y | |||
812 | CONFIG_SERIO_PCIPS2=m | 861 | CONFIG_SERIO_PCIPS2=m |
813 | CONFIG_SERIO_LIBPS2=y | 862 | CONFIG_SERIO_LIBPS2=y |
814 | CONFIG_SERIO_RAW=m | 863 | CONFIG_SERIO_RAW=m |
864 | # CONFIG_SERIO_ALTERA_PS2 is not set | ||
815 | # CONFIG_GAMEPORT is not set | 865 | # CONFIG_GAMEPORT is not set |
816 | 866 | ||
817 | # | 867 | # |
@@ -844,6 +894,7 @@ CONFIG_SERIAL_SUNHV=y | |||
844 | CONFIG_SERIAL_CORE=y | 894 | CONFIG_SERIAL_CORE=y |
845 | CONFIG_SERIAL_CORE_CONSOLE=y | 895 | CONFIG_SERIAL_CORE_CONSOLE=y |
846 | # CONFIG_SERIAL_JSM is not set | 896 | # CONFIG_SERIAL_JSM is not set |
897 | # CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set | ||
847 | CONFIG_UNIX98_PTYS=y | 898 | CONFIG_UNIX98_PTYS=y |
848 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set | 899 | # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set |
849 | # CONFIG_LEGACY_PTYS is not set | 900 | # CONFIG_LEGACY_PTYS is not set |
@@ -858,6 +909,7 @@ CONFIG_HW_RANDOM_N2RNG=m | |||
858 | CONFIG_DEVPORT=y | 909 | CONFIG_DEVPORT=y |
859 | CONFIG_I2C=y | 910 | CONFIG_I2C=y |
860 | CONFIG_I2C_BOARDINFO=y | 911 | CONFIG_I2C_BOARDINFO=y |
912 | CONFIG_I2C_COMPAT=y | ||
861 | # CONFIG_I2C_CHARDEV is not set | 913 | # CONFIG_I2C_CHARDEV is not set |
862 | CONFIG_I2C_HELPER_AUTO=y | 914 | CONFIG_I2C_HELPER_AUTO=y |
863 | CONFIG_I2C_ALGOBIT=y | 915 | CONFIG_I2C_ALGOBIT=y |
@@ -898,11 +950,6 @@ CONFIG_I2C_ALGOBIT=y | |||
898 | # CONFIG_I2C_TINY_USB is not set | 950 | # CONFIG_I2C_TINY_USB is not set |
899 | 951 | ||
900 | # | 952 | # |
901 | # Graphics adapter I2C/DDC channel drivers | ||
902 | # | ||
903 | # CONFIG_I2C_VOODOO3 is not set | ||
904 | |||
905 | # | ||
906 | # Other I2C/SMBus bus drivers | 953 | # Other I2C/SMBus bus drivers |
907 | # | 954 | # |
908 | # CONFIG_I2C_PCA_PLATFORM is not set | 955 | # CONFIG_I2C_PCA_PLATFORM is not set |
@@ -911,10 +958,6 @@ CONFIG_I2C_ALGOBIT=y | |||
911 | # | 958 | # |
912 | # Miscellaneous I2C Chip support | 959 | # Miscellaneous I2C Chip support |
913 | # | 960 | # |
914 | # CONFIG_DS1682 is not set | ||
915 | # CONFIG_SENSORS_PCF8574 is not set | ||
916 | # CONFIG_PCF8575 is not set | ||
917 | # CONFIG_SENSORS_PCA9539 is not set | ||
918 | # CONFIG_SENSORS_TSL2550 is not set | 961 | # CONFIG_SENSORS_TSL2550 is not set |
919 | # CONFIG_I2C_DEBUG_CORE is not set | 962 | # CONFIG_I2C_DEBUG_CORE is not set |
920 | # CONFIG_I2C_DEBUG_ALGO is not set | 963 | # CONFIG_I2C_DEBUG_ALGO is not set |
@@ -932,6 +975,11 @@ CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y | |||
932 | # CONFIG_POWER_SUPPLY is not set | 975 | # CONFIG_POWER_SUPPLY is not set |
933 | CONFIG_HWMON=y | 976 | CONFIG_HWMON=y |
934 | # CONFIG_HWMON_VID is not set | 977 | # CONFIG_HWMON_VID is not set |
978 | # CONFIG_HWMON_DEBUG_CHIP is not set | ||
979 | |||
980 | # | ||
981 | # Native drivers | ||
982 | # | ||
935 | # CONFIG_SENSORS_AD7414 is not set | 983 | # CONFIG_SENSORS_AD7414 is not set |
936 | # CONFIG_SENSORS_AD7418 is not set | 984 | # CONFIG_SENSORS_AD7418 is not set |
937 | # CONFIG_SENSORS_ADM1021 is not set | 985 | # CONFIG_SENSORS_ADM1021 is not set |
@@ -955,6 +1003,7 @@ CONFIG_HWMON=y | |||
955 | # CONFIG_SENSORS_GL520SM is not set | 1003 | # CONFIG_SENSORS_GL520SM is not set |
956 | # CONFIG_SENSORS_IT87 is not set | 1004 | # CONFIG_SENSORS_IT87 is not set |
957 | # CONFIG_SENSORS_LM63 is not set | 1005 | # CONFIG_SENSORS_LM63 is not set |
1006 | # CONFIG_SENSORS_LM73 is not set | ||
958 | # CONFIG_SENSORS_LM75 is not set | 1007 | # CONFIG_SENSORS_LM75 is not set |
959 | # CONFIG_SENSORS_LM77 is not set | 1008 | # CONFIG_SENSORS_LM77 is not set |
960 | # CONFIG_SENSORS_LM78 is not set | 1009 | # CONFIG_SENSORS_LM78 is not set |
@@ -981,6 +1030,7 @@ CONFIG_HWMON=y | |||
981 | # CONFIG_SENSORS_ADS7828 is not set | 1030 | # CONFIG_SENSORS_ADS7828 is not set |
982 | # CONFIG_SENSORS_THMC50 is not set | 1031 | # CONFIG_SENSORS_THMC50 is not set |
983 | # CONFIG_SENSORS_TMP401 is not set | 1032 | # CONFIG_SENSORS_TMP401 is not set |
1033 | # CONFIG_SENSORS_TMP421 is not set | ||
984 | # CONFIG_SENSORS_VIA686A is not set | 1034 | # CONFIG_SENSORS_VIA686A is not set |
985 | # CONFIG_SENSORS_VT1211 is not set | 1035 | # CONFIG_SENSORS_VT1211 is not set |
986 | # CONFIG_SENSORS_VT8231 is not set | 1036 | # CONFIG_SENSORS_VT8231 is not set |
@@ -993,9 +1043,8 @@ CONFIG_HWMON=y | |||
993 | # CONFIG_SENSORS_W83627HF is not set | 1043 | # CONFIG_SENSORS_W83627HF is not set |
994 | # CONFIG_SENSORS_W83627EHF is not set | 1044 | # CONFIG_SENSORS_W83627EHF is not set |
995 | # CONFIG_SENSORS_ULTRA45 is not set | 1045 | # CONFIG_SENSORS_ULTRA45 is not set |
996 | # CONFIG_HWMON_DEBUG_CHIP is not set | 1046 | # CONFIG_SENSORS_LIS3_I2C is not set |
997 | # CONFIG_THERMAL is not set | 1047 | # CONFIG_THERMAL is not set |
998 | # CONFIG_THERMAL_HWMON is not set | ||
999 | # CONFIG_WATCHDOG is not set | 1048 | # CONFIG_WATCHDOG is not set |
1000 | CONFIG_SSB_POSSIBLE=y | 1049 | CONFIG_SSB_POSSIBLE=y |
1001 | 1050 | ||
@@ -1013,16 +1062,20 @@ CONFIG_SSB_POSSIBLE=y | |||
1013 | # CONFIG_TWL4030_CORE is not set | 1062 | # CONFIG_TWL4030_CORE is not set |
1014 | # CONFIG_MFD_TMIO is not set | 1063 | # CONFIG_MFD_TMIO is not set |
1015 | # CONFIG_PMIC_DA903X is not set | 1064 | # CONFIG_PMIC_DA903X is not set |
1065 | # CONFIG_PMIC_ADP5520 is not set | ||
1016 | # CONFIG_MFD_WM8400 is not set | 1066 | # CONFIG_MFD_WM8400 is not set |
1067 | # CONFIG_MFD_WM831X is not set | ||
1017 | # CONFIG_MFD_WM8350_I2C is not set | 1068 | # CONFIG_MFD_WM8350_I2C is not set |
1018 | # CONFIG_MFD_PCF50633 is not set | 1069 | # CONFIG_MFD_PCF50633 is not set |
1019 | # CONFIG_AB3100_CORE is not set | 1070 | # CONFIG_AB3100_CORE is not set |
1071 | # CONFIG_MFD_88PM8607 is not set | ||
1020 | # CONFIG_REGULATOR is not set | 1072 | # CONFIG_REGULATOR is not set |
1021 | # CONFIG_MEDIA_SUPPORT is not set | 1073 | # CONFIG_MEDIA_SUPPORT is not set |
1022 | 1074 | ||
1023 | # | 1075 | # |
1024 | # Graphics support | 1076 | # Graphics support |
1025 | # | 1077 | # |
1078 | CONFIG_VGA_ARB=y | ||
1026 | # CONFIG_DRM is not set | 1079 | # CONFIG_DRM is not set |
1027 | # CONFIG_VGASTATE is not set | 1080 | # CONFIG_VGASTATE is not set |
1028 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set | 1081 | # CONFIG_VIDEO_OUTPUT_CONTROL is not set |
@@ -1176,6 +1229,7 @@ CONFIG_SND_ALI5451=m | |||
1176 | # CONFIG_SND_OXYGEN is not set | 1229 | # CONFIG_SND_OXYGEN is not set |
1177 | # CONFIG_SND_CS4281 is not set | 1230 | # CONFIG_SND_CS4281 is not set |
1178 | # CONFIG_SND_CS46XX is not set | 1231 | # CONFIG_SND_CS46XX is not set |
1232 | # CONFIG_SND_CS5535AUDIO is not set | ||
1179 | # CONFIG_SND_CTXFI is not set | 1233 | # CONFIG_SND_CTXFI is not set |
1180 | # CONFIG_SND_DARLA20 is not set | 1234 | # CONFIG_SND_DARLA20 is not set |
1181 | # CONFIG_SND_GINA20 is not set | 1235 | # CONFIG_SND_GINA20 is not set |
@@ -1311,6 +1365,7 @@ CONFIG_USB_EHCI_HCD=m | |||
1311 | # CONFIG_USB_OXU210HP_HCD is not set | 1365 | # CONFIG_USB_OXU210HP_HCD is not set |
1312 | # CONFIG_USB_ISP116X_HCD is not set | 1366 | # CONFIG_USB_ISP116X_HCD is not set |
1313 | # CONFIG_USB_ISP1760_HCD is not set | 1367 | # CONFIG_USB_ISP1760_HCD is not set |
1368 | # CONFIG_USB_ISP1362_HCD is not set | ||
1314 | CONFIG_USB_OHCI_HCD=y | 1369 | CONFIG_USB_OHCI_HCD=y |
1315 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set | 1370 | # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set |
1316 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set | 1371 | # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set |
@@ -1426,6 +1481,7 @@ CONFIG_RTC_INTF_DEV=y | |||
1426 | # CONFIG_RTC_DRV_PCF8563 is not set | 1481 | # CONFIG_RTC_DRV_PCF8563 is not set |
1427 | # CONFIG_RTC_DRV_PCF8583 is not set | 1482 | # CONFIG_RTC_DRV_PCF8583 is not set |
1428 | # CONFIG_RTC_DRV_M41T80 is not set | 1483 | # CONFIG_RTC_DRV_M41T80 is not set |
1484 | # CONFIG_RTC_DRV_BQ32K is not set | ||
1429 | # CONFIG_RTC_DRV_S35390A is not set | 1485 | # CONFIG_RTC_DRV_S35390A is not set |
1430 | # CONFIG_RTC_DRV_FM3130 is not set | 1486 | # CONFIG_RTC_DRV_FM3130 is not set |
1431 | # CONFIG_RTC_DRV_RX8581 is not set | 1487 | # CONFIG_RTC_DRV_RX8581 is not set |
@@ -1447,7 +1503,9 @@ CONFIG_RTC_DRV_CMOS=y | |||
1447 | # CONFIG_RTC_DRV_M48T86 is not set | 1503 | # CONFIG_RTC_DRV_M48T86 is not set |
1448 | # CONFIG_RTC_DRV_M48T35 is not set | 1504 | # CONFIG_RTC_DRV_M48T35 is not set |
1449 | CONFIG_RTC_DRV_M48T59=y | 1505 | CONFIG_RTC_DRV_M48T59=y |
1506 | # CONFIG_RTC_DRV_MSM6242 is not set | ||
1450 | CONFIG_RTC_DRV_BQ4802=y | 1507 | CONFIG_RTC_DRV_BQ4802=y |
1508 | # CONFIG_RTC_DRV_RP5C01 is not set | ||
1451 | # CONFIG_RTC_DRV_V3020 is not set | 1509 | # CONFIG_RTC_DRV_V3020 is not set |
1452 | 1510 | ||
1453 | # | 1511 | # |
@@ -1625,6 +1683,7 @@ CONFIG_PRINTK_TIME=y | |||
1625 | CONFIG_ENABLE_MUST_CHECK=y | 1683 | CONFIG_ENABLE_MUST_CHECK=y |
1626 | CONFIG_FRAME_WARN=2048 | 1684 | CONFIG_FRAME_WARN=2048 |
1627 | CONFIG_MAGIC_SYSRQ=y | 1685 | CONFIG_MAGIC_SYSRQ=y |
1686 | # CONFIG_STRIP_ASM_SYMS is not set | ||
1628 | # CONFIG_UNUSED_SYMBOLS is not set | 1687 | # CONFIG_UNUSED_SYMBOLS is not set |
1629 | CONFIG_DEBUG_FS=y | 1688 | CONFIG_DEBUG_FS=y |
1630 | # CONFIG_HEADERS_CHECK is not set | 1689 | # CONFIG_HEADERS_CHECK is not set |
@@ -1678,9 +1737,11 @@ CONFIG_NOP_TRACER=y | |||
1678 | CONFIG_HAVE_FUNCTION_TRACER=y | 1737 | CONFIG_HAVE_FUNCTION_TRACER=y |
1679 | CONFIG_HAVE_DYNAMIC_FTRACE=y | 1738 | CONFIG_HAVE_DYNAMIC_FTRACE=y |
1680 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y | 1739 | CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
1740 | CONFIG_HAVE_SYSCALL_TRACEPOINTS=y | ||
1681 | CONFIG_RING_BUFFER=y | 1741 | CONFIG_RING_BUFFER=y |
1682 | CONFIG_EVENT_TRACING=y | 1742 | CONFIG_EVENT_TRACING=y |
1683 | CONFIG_CONTEXT_SWITCH_TRACER=y | 1743 | CONFIG_CONTEXT_SWITCH_TRACER=y |
1744 | CONFIG_RING_BUFFER_ALLOW_SWAP=y | ||
1684 | CONFIG_TRACING=y | 1745 | CONFIG_TRACING=y |
1685 | CONFIG_GENERIC_TRACER=y | 1746 | CONFIG_GENERIC_TRACER=y |
1686 | CONFIG_TRACING_SUPPORT=y | 1747 | CONFIG_TRACING_SUPPORT=y |
@@ -1688,6 +1749,7 @@ CONFIG_FTRACE=y | |||
1688 | # CONFIG_FUNCTION_TRACER is not set | 1749 | # CONFIG_FUNCTION_TRACER is not set |
1689 | # CONFIG_IRQSOFF_TRACER is not set | 1750 | # CONFIG_IRQSOFF_TRACER is not set |
1690 | # CONFIG_SCHED_TRACER is not set | 1751 | # CONFIG_SCHED_TRACER is not set |
1752 | # CONFIG_FTRACE_SYSCALLS is not set | ||
1691 | # CONFIG_BOOT_TRACER is not set | 1753 | # CONFIG_BOOT_TRACER is not set |
1692 | CONFIG_BRANCH_PROFILE_NONE=y | 1754 | CONFIG_BRANCH_PROFILE_NONE=y |
1693 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set | 1755 | # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set |
@@ -1706,6 +1768,7 @@ CONFIG_HAVE_ARCH_KGDB=y | |||
1706 | # CONFIG_DEBUG_STACK_USAGE is not set | 1768 | # CONFIG_DEBUG_STACK_USAGE is not set |
1707 | # CONFIG_DEBUG_DCFLUSH is not set | 1769 | # CONFIG_DEBUG_DCFLUSH is not set |
1708 | # CONFIG_STACK_DEBUG is not set | 1770 | # CONFIG_STACK_DEBUG is not set |
1771 | # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set | ||
1709 | 1772 | ||
1710 | # | 1773 | # |
1711 | # Security options | 1774 | # Security options |
@@ -1714,11 +1777,17 @@ CONFIG_KEYS=y | |||
1714 | # CONFIG_KEYS_DEBUG_PROC_KEYS is not set | 1777 | # CONFIG_KEYS_DEBUG_PROC_KEYS is not set |
1715 | # CONFIG_SECURITY is not set | 1778 | # CONFIG_SECURITY is not set |
1716 | # CONFIG_SECURITYFS is not set | 1779 | # CONFIG_SECURITYFS is not set |
1717 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1780 | # CONFIG_DEFAULT_SECURITY_SELINUX is not set |
1781 | # CONFIG_DEFAULT_SECURITY_SMACK is not set | ||
1782 | # CONFIG_DEFAULT_SECURITY_TOMOYO is not set | ||
1783 | CONFIG_DEFAULT_SECURITY_DAC=y | ||
1784 | CONFIG_DEFAULT_SECURITY="" | ||
1718 | CONFIG_XOR_BLOCKS=m | 1785 | CONFIG_XOR_BLOCKS=m |
1719 | CONFIG_ASYNC_CORE=m | 1786 | CONFIG_ASYNC_CORE=m |
1720 | CONFIG_ASYNC_MEMCPY=m | 1787 | CONFIG_ASYNC_MEMCPY=m |
1721 | CONFIG_ASYNC_XOR=m | 1788 | CONFIG_ASYNC_XOR=m |
1789 | CONFIG_ASYNC_PQ=m | ||
1790 | CONFIG_ASYNC_RAID6_RECOV=m | ||
1722 | CONFIG_CRYPTO=y | 1791 | CONFIG_CRYPTO=y |
1723 | 1792 | ||
1724 | # | 1793 | # |
diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h index ff66bb88537b..e67880381b84 100644 --- a/arch/sparc/include/asm/elf_64.h +++ b/arch/sparc/include/asm/elf_64.h | |||
@@ -195,17 +195,10 @@ static inline unsigned int sparc64_elf_hwcap(void) | |||
195 | #define ELF_PLATFORM (NULL) | 195 | #define ELF_PLATFORM (NULL) |
196 | 196 | ||
197 | #define SET_PERSONALITY(ex) \ | 197 | #define SET_PERSONALITY(ex) \ |
198 | do { unsigned long new_flags = current_thread_info()->flags; \ | 198 | do { if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ |
199 | new_flags &= _TIF_32BIT; \ | 199 | set_thread_flag(TIF_32BIT); \ |
200 | if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \ | ||
201 | new_flags |= _TIF_32BIT; \ | ||
202 | else \ | 200 | else \ |
203 | new_flags &= ~_TIF_32BIT; \ | 201 | clear_thread_flag(TIF_32BIT); \ |
204 | if ((current_thread_info()->flags & _TIF_32BIT) \ | ||
205 | != new_flags) \ | ||
206 | set_thread_flag(TIF_ABI_PENDING); \ | ||
207 | else \ | ||
208 | clear_thread_flag(TIF_ABI_PENDING); \ | ||
209 | /* flush_thread will update pgd cache */ \ | 202 | /* flush_thread will update pgd cache */ \ |
210 | if (personality(current->personality) != PER_LINUX32) \ | 203 | if (personality(current->personality) != PER_LINUX32) \ |
211 | set_personality(PER_LINUX | \ | 204 | set_personality(PER_LINUX | \ |
diff --git a/arch/sparc/include/asm/io_32.h b/arch/sparc/include/asm/io_32.h index 93fe21e02c86..679c7504625a 100644 --- a/arch/sparc/include/asm/io_32.h +++ b/arch/sparc/include/asm/io_32.h | |||
@@ -8,7 +8,7 @@ | |||
8 | #include <asm/page.h> /* IO address mapping routines need this */ | 8 | #include <asm/page.h> /* IO address mapping routines need this */ |
9 | #include <asm/system.h> | 9 | #include <asm/system.h> |
10 | 10 | ||
11 | #define page_to_phys(page) (((page) - mem_map) << PAGE_SHIFT) | 11 | #define page_to_phys(page) (page_to_pfn(page) << PAGE_SHIFT) |
12 | 12 | ||
13 | static inline u32 flip_dword (u32 l) | 13 | static inline u32 flip_dword (u32 l) |
14 | { | 14 | { |
diff --git a/arch/sparc/include/asm/page_32.h b/arch/sparc/include/asm/page_32.h index f72080bdda94..156707b0f18d 100644 --- a/arch/sparc/include/asm/page_32.h +++ b/arch/sparc/include/asm/page_32.h | |||
@@ -143,7 +143,7 @@ extern unsigned long pfn_base; | |||
143 | #define phys_to_virt __va | 143 | #define phys_to_virt __va |
144 | 144 | ||
145 | #define ARCH_PFN_OFFSET (pfn_base) | 145 | #define ARCH_PFN_OFFSET (pfn_base) |
146 | #define virt_to_page(kaddr) (mem_map + ((((unsigned long)(kaddr)-PAGE_OFFSET)>>PAGE_SHIFT))) | 146 | #define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) |
147 | 147 | ||
148 | #define pfn_valid(pfn) (((pfn) >= (pfn_base)) && (((pfn)-(pfn_base)) < max_mapnr)) | 148 | #define pfn_valid(pfn) (((pfn) >= (pfn_base)) && (((pfn)-(pfn_base)) < max_mapnr)) |
149 | #define virt_addr_valid(kaddr) ((((unsigned long)(kaddr)-PAGE_OFFSET)>>PAGE_SHIFT) < max_mapnr) | 149 | #define virt_addr_valid(kaddr) ((((unsigned long)(kaddr)-PAGE_OFFSET)>>PAGE_SHIFT) < max_mapnr) |
diff --git a/arch/sparc/include/asm/param.h b/arch/sparc/include/asm/param.h index 9836d9a3cb9a..0bc356bf8c50 100644 --- a/arch/sparc/include/asm/param.h +++ b/arch/sparc/include/asm/param.h | |||
@@ -1,22 +1,7 @@ | |||
1 | #ifndef _ASMSPARC_PARAM_H | 1 | #ifndef _ASMSPARC_PARAM_H |
2 | #define _ASMSPARC_PARAM_H | 2 | #define _ASMSPARC_PARAM_H |
3 | 3 | ||
4 | #ifdef __KERNEL__ | ||
5 | # define HZ CONFIG_HZ /* Internal kernel timer frequency */ | ||
6 | # define USER_HZ 100 /* .. some user interfaces are in "ticks" */ | ||
7 | # define CLOCKS_PER_SEC (USER_HZ) | ||
8 | #endif | ||
9 | |||
10 | #ifndef HZ | ||
11 | #define HZ 100 | ||
12 | #endif | ||
13 | |||
14 | #define EXEC_PAGESIZE 8192 /* Thanks for sun4's we carry baggage... */ | 4 | #define EXEC_PAGESIZE 8192 /* Thanks for sun4's we carry baggage... */ |
5 | #include <asm-generic/param.h> | ||
15 | 6 | ||
16 | #ifndef NOGROUP | 7 | #endif /* _ASMSPARC_PARAM_H */ |
17 | #define NOGROUP (-1) | ||
18 | #endif | ||
19 | |||
20 | #define MAXHOSTNAMELEN 64 /* max length of hostname */ | ||
21 | |||
22 | #endif | ||
diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h index 7257ebb8f394..39be9f256e5a 100644 --- a/arch/sparc/include/asm/thread_info_64.h +++ b/arch/sparc/include/asm/thread_info_64.h | |||
@@ -228,12 +228,11 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
228 | #define TIF_SECCOMP 9 /* secure computing */ | 228 | #define TIF_SECCOMP 9 /* secure computing */ |
229 | #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */ | 229 | #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */ |
230 | #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */ | 230 | #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */ |
231 | /* flag bit 11 is available */ | ||
232 | /* NOTE: Thread flags >= 12 should be ones we have no interest | 231 | /* NOTE: Thread flags >= 12 should be ones we have no interest |
233 | * in using in assembly, else we can't use the mask as | 232 | * in using in assembly, else we can't use the mask as |
234 | * an immediate value in instructions such as andcc. | 233 | * an immediate value in instructions such as andcc. |
235 | */ | 234 | */ |
236 | #define TIF_ABI_PENDING 12 | 235 | /* flag bit 12 is available */ |
237 | #define TIF_MEMDIE 13 | 236 | #define TIF_MEMDIE 13 |
238 | #define TIF_POLLING_NRFLAG 14 | 237 | #define TIF_POLLING_NRFLAG 14 |
239 | #define TIF_FREEZE 15 /* is freezing for suspend */ | 238 | #define TIF_FREEZE 15 /* is freezing for suspend */ |
@@ -248,7 +247,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
248 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) | 247 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) |
249 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) | 248 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) |
250 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) | 249 | #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT) |
251 | #define _TIF_ABI_PENDING (1<<TIF_ABI_PENDING) | ||
252 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) | 250 | #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG) |
253 | #define _TIF_FREEZE (1<<TIF_FREEZE) | 251 | #define _TIF_FREEZE (1<<TIF_FREEZE) |
254 | 252 | ||
diff --git a/arch/sparc/include/asm/timex_32.h b/arch/sparc/include/asm/timex_32.h index b6ccdb0d6f7d..a254750e4c03 100644 --- a/arch/sparc/include/asm/timex_32.h +++ b/arch/sparc/include/asm/timex_32.h | |||
@@ -12,4 +12,5 @@ | |||
12 | typedef unsigned long cycles_t; | 12 | typedef unsigned long cycles_t; |
13 | #define get_cycles() (0) | 13 | #define get_cycles() (0) |
14 | 14 | ||
15 | extern u32 (*do_arch_gettimeoffset)(void); | ||
15 | #endif | 16 | #endif |
diff --git a/arch/sparc/include/asm/topology_64.h b/arch/sparc/include/asm/topology_64.h index 600a79035fa1..1c79f32734a0 100644 --- a/arch/sparc/include/asm/topology_64.h +++ b/arch/sparc/include/asm/topology_64.h | |||
@@ -12,7 +12,9 @@ static inline int cpu_to_node(int cpu) | |||
12 | 12 | ||
13 | #define parent_node(node) (node) | 13 | #define parent_node(node) (node) |
14 | 14 | ||
15 | #define cpumask_of_node(node) (&numa_cpumask_lookup_table[node]) | 15 | #define cpumask_of_node(node) ((node) == -1 ? \ |
16 | cpu_all_mask : \ | ||
17 | &numa_cpumask_lookup_table[node]) | ||
16 | 18 | ||
17 | struct pci_bus; | 19 | struct pci_bus; |
18 | #ifdef CONFIG_PCI | 20 | #ifdef CONFIG_PCI |
diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h index 489d2ba92bcb..25f1d10155e8 100644 --- a/arch/sparc/include/asm/uaccess_32.h +++ b/arch/sparc/include/asm/uaccess_32.h | |||
@@ -274,7 +274,7 @@ static inline unsigned long copy_from_user(void *to, const void __user *from, un | |||
274 | 274 | ||
275 | if (unlikely(sz != -1 && sz < n)) { | 275 | if (unlikely(sz != -1 && sz < n)) { |
276 | copy_from_user_overflow(); | 276 | copy_from_user_overflow(); |
277 | return -EFAULT; | 277 | return n; |
278 | } | 278 | } |
279 | 279 | ||
280 | if (n && __access_ok((unsigned long) from, n)) | 280 | if (n && __access_ok((unsigned long) from, n)) |
diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h index dbc141660994..2406788bfe5f 100644 --- a/arch/sparc/include/asm/uaccess_64.h +++ b/arch/sparc/include/asm/uaccess_64.h | |||
@@ -221,8 +221,8 @@ extern unsigned long copy_from_user_fixup(void *to, const void __user *from, | |||
221 | static inline unsigned long __must_check | 221 | static inline unsigned long __must_check |
222 | copy_from_user(void *to, const void __user *from, unsigned long size) | 222 | copy_from_user(void *to, const void __user *from, unsigned long size) |
223 | { | 223 | { |
224 | unsigned long ret = (unsigned long) -EFAULT; | ||
225 | int sz = __compiletime_object_size(to); | 224 | int sz = __compiletime_object_size(to); |
225 | unsigned long ret = size; | ||
226 | 226 | ||
227 | if (likely(sz == -1 || sz >= size)) { | 227 | if (likely(sz == -1 || sz >= size)) { |
228 | ret = ___copy_from_user(to, from, size); | 228 | ret = ___copy_from_user(to, from, size); |
diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c index f3b5466c389c..4589ca33220f 100644 --- a/arch/sparc/kernel/central.c +++ b/arch/sparc/kernel/central.c | |||
@@ -99,7 +99,7 @@ static int __devinit clock_board_probe(struct of_device *op, | |||
99 | 99 | ||
100 | p->leds_resource.start = (unsigned long) | 100 | p->leds_resource.start = (unsigned long) |
101 | (p->clock_regs + CLOCK_CTRL); | 101 | (p->clock_regs + CLOCK_CTRL); |
102 | p->leds_resource.end = p->leds_resource.end; | 102 | p->leds_resource.end = p->leds_resource.start; |
103 | p->leds_resource.name = "leds"; | 103 | p->leds_resource.name = "leds"; |
104 | 104 | ||
105 | p->leds_pdev.name = "sunfire-clockboard-leds"; | 105 | p->leds_pdev.name = "sunfire-clockboard-leds"; |
@@ -194,7 +194,7 @@ static int __devinit fhc_probe(struct of_device *op, | |||
194 | if (!p->central) { | 194 | if (!p->central) { |
195 | p->leds_resource.start = (unsigned long) | 195 | p->leds_resource.start = (unsigned long) |
196 | (p->pregs + FHC_PREGS_CTRL); | 196 | (p->pregs + FHC_PREGS_CTRL); |
197 | p->leds_resource.end = p->leds_resource.end; | 197 | p->leds_resource.end = p->leds_resource.start; |
198 | p->leds_resource.name = "leds"; | 198 | p->leds_resource.name = "leds"; |
199 | 199 | ||
200 | p->leds_pdev.name = "sunfire-fhc-leds"; | 200 | p->leds_pdev.name = "sunfire-fhc-leds"; |
diff --git a/arch/sparc/kernel/irq_64.c b/arch/sparc/kernel/irq_64.c index 8d6882bb480a..e1cbdb94d97b 100644 --- a/arch/sparc/kernel/irq_64.c +++ b/arch/sparc/kernel/irq_64.c | |||
@@ -250,12 +250,12 @@ struct irq_handler_data { | |||
250 | }; | 250 | }; |
251 | 251 | ||
252 | #ifdef CONFIG_SMP | 252 | #ifdef CONFIG_SMP |
253 | static int irq_choose_cpu(unsigned int virt_irq) | 253 | static int irq_choose_cpu(unsigned int virt_irq, const struct cpumask *affinity) |
254 | { | 254 | { |
255 | cpumask_t mask; | 255 | cpumask_t mask; |
256 | int cpuid; | 256 | int cpuid; |
257 | 257 | ||
258 | cpumask_copy(&mask, irq_desc[virt_irq].affinity); | 258 | cpumask_copy(&mask, affinity); |
259 | if (cpus_equal(mask, cpu_online_map)) { | 259 | if (cpus_equal(mask, cpu_online_map)) { |
260 | cpuid = map_to_cpu(virt_irq); | 260 | cpuid = map_to_cpu(virt_irq); |
261 | } else { | 261 | } else { |
@@ -268,10 +268,8 @@ static int irq_choose_cpu(unsigned int virt_irq) | |||
268 | return cpuid; | 268 | return cpuid; |
269 | } | 269 | } |
270 | #else | 270 | #else |
271 | static int irq_choose_cpu(unsigned int virt_irq) | 271 | #define irq_choose_cpu(virt_irq, affinity) \ |
272 | { | 272 | real_hard_smp_processor_id() |
273 | return real_hard_smp_processor_id(); | ||
274 | } | ||
275 | #endif | 273 | #endif |
276 | 274 | ||
277 | static void sun4u_irq_enable(unsigned int virt_irq) | 275 | static void sun4u_irq_enable(unsigned int virt_irq) |
@@ -282,7 +280,8 @@ static void sun4u_irq_enable(unsigned int virt_irq) | |||
282 | unsigned long cpuid, imap, val; | 280 | unsigned long cpuid, imap, val; |
283 | unsigned int tid; | 281 | unsigned int tid; |
284 | 282 | ||
285 | cpuid = irq_choose_cpu(virt_irq); | 283 | cpuid = irq_choose_cpu(virt_irq, |
284 | irq_desc[virt_irq].affinity); | ||
286 | imap = data->imap; | 285 | imap = data->imap; |
287 | 286 | ||
288 | tid = sun4u_compute_tid(imap, cpuid); | 287 | tid = sun4u_compute_tid(imap, cpuid); |
@@ -299,7 +298,24 @@ static void sun4u_irq_enable(unsigned int virt_irq) | |||
299 | static int sun4u_set_affinity(unsigned int virt_irq, | 298 | static int sun4u_set_affinity(unsigned int virt_irq, |
300 | const struct cpumask *mask) | 299 | const struct cpumask *mask) |
301 | { | 300 | { |
302 | sun4u_irq_enable(virt_irq); | 301 | struct irq_handler_data *data = get_irq_chip_data(virt_irq); |
302 | |||
303 | if (likely(data)) { | ||
304 | unsigned long cpuid, imap, val; | ||
305 | unsigned int tid; | ||
306 | |||
307 | cpuid = irq_choose_cpu(virt_irq, mask); | ||
308 | imap = data->imap; | ||
309 | |||
310 | tid = sun4u_compute_tid(imap, cpuid); | ||
311 | |||
312 | val = upa_readq(imap); | ||
313 | val &= ~(IMAP_TID_UPA | IMAP_TID_JBUS | | ||
314 | IMAP_AID_SAFARI | IMAP_NID_SAFARI); | ||
315 | val |= tid | IMAP_VALID; | ||
316 | upa_writeq(val, imap); | ||
317 | upa_writeq(ICLR_IDLE, data->iclr); | ||
318 | } | ||
303 | 319 | ||
304 | return 0; | 320 | return 0; |
305 | } | 321 | } |
@@ -340,7 +356,8 @@ static void sun4u_irq_eoi(unsigned int virt_irq) | |||
340 | static void sun4v_irq_enable(unsigned int virt_irq) | 356 | static void sun4v_irq_enable(unsigned int virt_irq) |
341 | { | 357 | { |
342 | unsigned int ino = virt_irq_table[virt_irq].dev_ino; | 358 | unsigned int ino = virt_irq_table[virt_irq].dev_ino; |
343 | unsigned long cpuid = irq_choose_cpu(virt_irq); | 359 | unsigned long cpuid = irq_choose_cpu(virt_irq, |
360 | irq_desc[virt_irq].affinity); | ||
344 | int err; | 361 | int err; |
345 | 362 | ||
346 | err = sun4v_intr_settarget(ino, cpuid); | 363 | err = sun4v_intr_settarget(ino, cpuid); |
@@ -361,7 +378,7 @@ static int sun4v_set_affinity(unsigned int virt_irq, | |||
361 | const struct cpumask *mask) | 378 | const struct cpumask *mask) |
362 | { | 379 | { |
363 | unsigned int ino = virt_irq_table[virt_irq].dev_ino; | 380 | unsigned int ino = virt_irq_table[virt_irq].dev_ino; |
364 | unsigned long cpuid = irq_choose_cpu(virt_irq); | 381 | unsigned long cpuid = irq_choose_cpu(virt_irq, mask); |
365 | int err; | 382 | int err; |
366 | 383 | ||
367 | err = sun4v_intr_settarget(ino, cpuid); | 384 | err = sun4v_intr_settarget(ino, cpuid); |
@@ -403,7 +420,7 @@ static void sun4v_virq_enable(unsigned int virt_irq) | |||
403 | unsigned long cpuid, dev_handle, dev_ino; | 420 | unsigned long cpuid, dev_handle, dev_ino; |
404 | int err; | 421 | int err; |
405 | 422 | ||
406 | cpuid = irq_choose_cpu(virt_irq); | 423 | cpuid = irq_choose_cpu(virt_irq, irq_desc[virt_irq].affinity); |
407 | 424 | ||
408 | dev_handle = virt_irq_table[virt_irq].dev_handle; | 425 | dev_handle = virt_irq_table[virt_irq].dev_handle; |
409 | dev_ino = virt_irq_table[virt_irq].dev_ino; | 426 | dev_ino = virt_irq_table[virt_irq].dev_ino; |
@@ -433,7 +450,7 @@ static int sun4v_virt_set_affinity(unsigned int virt_irq, | |||
433 | unsigned long cpuid, dev_handle, dev_ino; | 450 | unsigned long cpuid, dev_handle, dev_ino; |
434 | int err; | 451 | int err; |
435 | 452 | ||
436 | cpuid = irq_choose_cpu(virt_irq); | 453 | cpuid = irq_choose_cpu(virt_irq, mask); |
437 | 454 | ||
438 | dev_handle = virt_irq_table[virt_irq].dev_handle; | 455 | dev_handle = virt_irq_table[virt_irq].dev_handle; |
439 | dev_ino = virt_irq_table[virt_irq].dev_ino; | 456 | dev_ino = virt_irq_table[virt_irq].dev_ino; |
diff --git a/arch/sparc/kernel/pcic.c b/arch/sparc/kernel/pcic.c index 85e7037429b9..4e2724ec2bb6 100644 --- a/arch/sparc/kernel/pcic.c +++ b/arch/sparc/kernel/pcic.c | |||
@@ -30,6 +30,7 @@ | |||
30 | #include <asm/oplib.h> | 30 | #include <asm/oplib.h> |
31 | #include <asm/prom.h> | 31 | #include <asm/prom.h> |
32 | #include <asm/pcic.h> | 32 | #include <asm/pcic.h> |
33 | #include <asm/timex.h> | ||
33 | #include <asm/timer.h> | 34 | #include <asm/timer.h> |
34 | #include <asm/uaccess.h> | 35 | #include <asm/uaccess.h> |
35 | #include <asm/irq_regs.h> | 36 | #include <asm/irq_regs.h> |
@@ -163,8 +164,6 @@ void __iomem *pcic_regs; | |||
163 | volatile int pcic_speculative; | 164 | volatile int pcic_speculative; |
164 | volatile int pcic_trapped; | 165 | volatile int pcic_trapped; |
165 | 166 | ||
166 | static void pci_do_gettimeofday(struct timeval *tv); | ||
167 | static int pci_do_settimeofday(struct timespec *tv); | ||
168 | 167 | ||
169 | #define CONFIG_CMD(bus, device_fn, where) (0x80000000 | (((unsigned int)bus) << 16) | (((unsigned int)device_fn) << 8) | (where & ~3)) | 168 | #define CONFIG_CMD(bus, device_fn, where) (0x80000000 | (((unsigned int)bus) << 16) | (((unsigned int)device_fn) << 8) | (where & ~3)) |
170 | 169 | ||
@@ -716,19 +715,27 @@ static irqreturn_t pcic_timer_handler (int irq, void *h) | |||
716 | #define USECS_PER_JIFFY 10000 /* We have 100HZ "standard" timer for sparc */ | 715 | #define USECS_PER_JIFFY 10000 /* We have 100HZ "standard" timer for sparc */ |
717 | #define TICK_TIMER_LIMIT ((100*1000000/4)/100) | 716 | #define TICK_TIMER_LIMIT ((100*1000000/4)/100) |
718 | 717 | ||
718 | u32 pci_gettimeoffset(void) | ||
719 | { | ||
720 | /* | ||
721 | * We divide all by 100 | ||
722 | * to have microsecond resolution and to avoid overflow | ||
723 | */ | ||
724 | unsigned long count = | ||
725 | readl(pcic0.pcic_regs+PCI_SYS_COUNTER) & ~PCI_SYS_COUNTER_OVERFLOW; | ||
726 | count = ((count/100)*USECS_PER_JIFFY) / (TICK_TIMER_LIMIT/100); | ||
727 | return count * 1000; | ||
728 | } | ||
729 | |||
730 | |||
719 | void __init pci_time_init(void) | 731 | void __init pci_time_init(void) |
720 | { | 732 | { |
721 | struct linux_pcic *pcic = &pcic0; | 733 | struct linux_pcic *pcic = &pcic0; |
722 | unsigned long v; | 734 | unsigned long v; |
723 | int timer_irq, irq; | 735 | int timer_irq, irq; |
724 | 736 | ||
725 | /* A hack until do_gettimeofday prototype is moved to arch specific headers | 737 | do_arch_gettimeoffset = pci_gettimeoffset; |
726 | and btfixupped. Patch do_gettimeofday with ba pci_do_gettimeofday; nop */ | 738 | |
727 | ((unsigned int *)do_gettimeofday)[0] = | ||
728 | 0x10800000 | ((((unsigned long)pci_do_gettimeofday - | ||
729 | (unsigned long)do_gettimeofday) >> 2) & 0x003fffff); | ||
730 | ((unsigned int *)do_gettimeofday)[1] = 0x01000000; | ||
731 | BTFIXUPSET_CALL(bus_do_settimeofday, pci_do_settimeofday, BTFIXUPCALL_NORM); | ||
732 | btfixup(); | 739 | btfixup(); |
733 | 740 | ||
734 | writel (TICK_TIMER_LIMIT, pcic->pcic_regs+PCI_SYS_LIMIT); | 741 | writel (TICK_TIMER_LIMIT, pcic->pcic_regs+PCI_SYS_LIMIT); |
@@ -746,84 +753,6 @@ void __init pci_time_init(void) | |||
746 | local_irq_enable(); | 753 | local_irq_enable(); |
747 | } | 754 | } |
748 | 755 | ||
749 | static inline unsigned long do_gettimeoffset(void) | ||
750 | { | ||
751 | /* | ||
752 | * We divide all by 100 | ||
753 | * to have microsecond resolution and to avoid overflow | ||
754 | */ | ||
755 | unsigned long count = | ||
756 | readl(pcic0.pcic_regs+PCI_SYS_COUNTER) & ~PCI_SYS_COUNTER_OVERFLOW; | ||
757 | count = ((count/100)*USECS_PER_JIFFY) / (TICK_TIMER_LIMIT/100); | ||
758 | return count; | ||
759 | } | ||
760 | |||
761 | static void pci_do_gettimeofday(struct timeval *tv) | ||
762 | { | ||
763 | unsigned long flags; | ||
764 | unsigned long seq; | ||
765 | unsigned long usec, sec; | ||
766 | unsigned long max_ntp_tick = tick_usec - tickadj; | ||
767 | |||
768 | do { | ||
769 | seq = read_seqbegin_irqsave(&xtime_lock, flags); | ||
770 | usec = do_gettimeoffset(); | ||
771 | |||
772 | /* | ||
773 | * If time_adjust is negative then NTP is slowing the clock | ||
774 | * so make sure not to go into next possible interval. | ||
775 | * Better to lose some accuracy than have time go backwards.. | ||
776 | */ | ||
777 | if (unlikely(time_adjust < 0)) | ||
778 | usec = min(usec, max_ntp_tick); | ||
779 | |||
780 | sec = xtime.tv_sec; | ||
781 | usec += (xtime.tv_nsec / 1000); | ||
782 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | ||
783 | |||
784 | while (usec >= 1000000) { | ||
785 | usec -= 1000000; | ||
786 | sec++; | ||
787 | } | ||
788 | |||
789 | tv->tv_sec = sec; | ||
790 | tv->tv_usec = usec; | ||
791 | } | ||
792 | |||
793 | static int pci_do_settimeofday(struct timespec *tv) | ||
794 | { | ||
795 | if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) | ||
796 | return -EINVAL; | ||
797 | |||
798 | /* | ||
799 | * This is revolting. We need to set "xtime" correctly. However, the | ||
800 | * value in this location is the value at the most recent update of | ||
801 | * wall time. Discover what correction gettimeofday() would have | ||
802 | * made, and then undo it! | ||
803 | */ | ||
804 | tv->tv_nsec -= 1000 * do_gettimeoffset(); | ||
805 | while (tv->tv_nsec < 0) { | ||
806 | tv->tv_nsec += NSEC_PER_SEC; | ||
807 | tv->tv_sec--; | ||
808 | } | ||
809 | |||
810 | wall_to_monotonic.tv_sec += xtime.tv_sec - tv->tv_sec; | ||
811 | wall_to_monotonic.tv_nsec += xtime.tv_nsec - tv->tv_nsec; | ||
812 | |||
813 | if (wall_to_monotonic.tv_nsec > NSEC_PER_SEC) { | ||
814 | wall_to_monotonic.tv_nsec -= NSEC_PER_SEC; | ||
815 | wall_to_monotonic.tv_sec++; | ||
816 | } | ||
817 | if (wall_to_monotonic.tv_nsec < 0) { | ||
818 | wall_to_monotonic.tv_nsec += NSEC_PER_SEC; | ||
819 | wall_to_monotonic.tv_sec--; | ||
820 | } | ||
821 | |||
822 | xtime.tv_sec = tv->tv_sec; | ||
823 | xtime.tv_nsec = tv->tv_nsec; | ||
824 | ntp_clear(); | ||
825 | return 0; | ||
826 | } | ||
827 | 756 | ||
828 | #if 0 | 757 | #if 0 |
829 | static void watchdog_reset() { | 758 | static void watchdog_reset() { |
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c index 198fb4e79ba2..e856456ec02f 100644 --- a/arch/sparc/kernel/perf_event.c +++ b/arch/sparc/kernel/perf_event.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* Performance event support for sparc64. | 1 | /* Performance event support for sparc64. |
2 | * | 2 | * |
3 | * Copyright (C) 2009 David S. Miller <davem@davemloft.net> | 3 | * Copyright (C) 2009, 2010 David S. Miller <davem@davemloft.net> |
4 | * | 4 | * |
5 | * This code is based almost entirely upon the x86 perf event | 5 | * This code is based almost entirely upon the x86 perf event |
6 | * code, which is: | 6 | * code, which is: |
@@ -18,11 +18,15 @@ | |||
18 | #include <linux/kdebug.h> | 18 | #include <linux/kdebug.h> |
19 | #include <linux/mutex.h> | 19 | #include <linux/mutex.h> |
20 | 20 | ||
21 | #include <asm/stacktrace.h> | ||
21 | #include <asm/cpudata.h> | 22 | #include <asm/cpudata.h> |
23 | #include <asm/uaccess.h> | ||
22 | #include <asm/atomic.h> | 24 | #include <asm/atomic.h> |
23 | #include <asm/nmi.h> | 25 | #include <asm/nmi.h> |
24 | #include <asm/pcr.h> | 26 | #include <asm/pcr.h> |
25 | 27 | ||
28 | #include "kstack.h" | ||
29 | |||
26 | /* Sparc64 chips have two performance counters, 32-bits each, with | 30 | /* Sparc64 chips have two performance counters, 32-bits each, with |
27 | * overflow interrupts generated on transition from 0xffffffff to 0. | 31 | * overflow interrupts generated on transition from 0xffffffff to 0. |
28 | * The counters are accessed in one go using a 64-bit register. | 32 | * The counters are accessed in one go using a 64-bit register. |
@@ -51,16 +55,49 @@ | |||
51 | 55 | ||
52 | #define PIC_UPPER_INDEX 0 | 56 | #define PIC_UPPER_INDEX 0 |
53 | #define PIC_LOWER_INDEX 1 | 57 | #define PIC_LOWER_INDEX 1 |
58 | #define PIC_NO_INDEX -1 | ||
54 | 59 | ||
55 | struct cpu_hw_events { | 60 | struct cpu_hw_events { |
56 | struct perf_event *events[MAX_HWEVENTS]; | 61 | /* Number of events currently scheduled onto this cpu. |
57 | unsigned long used_mask[BITS_TO_LONGS(MAX_HWEVENTS)]; | 62 | * This tells how many entries in the arrays below |
58 | unsigned long active_mask[BITS_TO_LONGS(MAX_HWEVENTS)]; | 63 | * are valid. |
64 | */ | ||
65 | int n_events; | ||
66 | |||
67 | /* Number of new events added since the last hw_perf_disable(). | ||
68 | * This works because the perf event layer always adds new | ||
69 | * events inside of a perf_{disable,enable}() sequence. | ||
70 | */ | ||
71 | int n_added; | ||
72 | |||
73 | /* Array of events current scheduled on this cpu. */ | ||
74 | struct perf_event *event[MAX_HWEVENTS]; | ||
75 | |||
76 | /* Array of encoded longs, specifying the %pcr register | ||
77 | * encoding and the mask of PIC counters this even can | ||
78 | * be scheduled on. See perf_event_encode() et al. | ||
79 | */ | ||
80 | unsigned long events[MAX_HWEVENTS]; | ||
81 | |||
82 | /* The current counter index assigned to an event. When the | ||
83 | * event hasn't been programmed into the cpu yet, this will | ||
84 | * hold PIC_NO_INDEX. The event->hw.idx value tells us where | ||
85 | * we ought to schedule the event. | ||
86 | */ | ||
87 | int current_idx[MAX_HWEVENTS]; | ||
88 | |||
89 | /* Software copy of %pcr register on this cpu. */ | ||
59 | u64 pcr; | 90 | u64 pcr; |
91 | |||
92 | /* Enabled/disable state. */ | ||
60 | int enabled; | 93 | int enabled; |
61 | }; | 94 | }; |
62 | DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events) = { .enabled = 1, }; | 95 | DEFINE_PER_CPU(struct cpu_hw_events, cpu_hw_events) = { .enabled = 1, }; |
63 | 96 | ||
97 | /* An event map describes the characteristics of a performance | ||
98 | * counter event. In particular it gives the encoding as well as | ||
99 | * a mask telling which counters the event can be measured on. | ||
100 | */ | ||
64 | struct perf_event_map { | 101 | struct perf_event_map { |
65 | u16 encoding; | 102 | u16 encoding; |
66 | u8 pic_mask; | 103 | u8 pic_mask; |
@@ -69,15 +106,20 @@ struct perf_event_map { | |||
69 | #define PIC_LOWER 0x02 | 106 | #define PIC_LOWER 0x02 |
70 | }; | 107 | }; |
71 | 108 | ||
109 | /* Encode a perf_event_map entry into a long. */ | ||
72 | static unsigned long perf_event_encode(const struct perf_event_map *pmap) | 110 | static unsigned long perf_event_encode(const struct perf_event_map *pmap) |
73 | { | 111 | { |
74 | return ((unsigned long) pmap->encoding << 16) | pmap->pic_mask; | 112 | return ((unsigned long) pmap->encoding << 16) | pmap->pic_mask; |
75 | } | 113 | } |
76 | 114 | ||
77 | static void perf_event_decode(unsigned long val, u16 *enc, u8 *msk) | 115 | static u8 perf_event_get_msk(unsigned long val) |
78 | { | 116 | { |
79 | *msk = val & 0xff; | 117 | return val & 0xff; |
80 | *enc = val >> 16; | 118 | } |
119 | |||
120 | static u64 perf_event_get_enc(unsigned long val) | ||
121 | { | ||
122 | return val >> 16; | ||
81 | } | 123 | } |
82 | 124 | ||
83 | #define C(x) PERF_COUNT_HW_CACHE_##x | 125 | #define C(x) PERF_COUNT_HW_CACHE_##x |
@@ -491,53 +533,6 @@ static inline void sparc_pmu_disable_event(struct cpu_hw_events *cpuc, struct hw | |||
491 | pcr_ops->write(cpuc->pcr); | 533 | pcr_ops->write(cpuc->pcr); |
492 | } | 534 | } |
493 | 535 | ||
494 | void hw_perf_enable(void) | ||
495 | { | ||
496 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
497 | u64 val; | ||
498 | int i; | ||
499 | |||
500 | if (cpuc->enabled) | ||
501 | return; | ||
502 | |||
503 | cpuc->enabled = 1; | ||
504 | barrier(); | ||
505 | |||
506 | val = cpuc->pcr; | ||
507 | |||
508 | for (i = 0; i < MAX_HWEVENTS; i++) { | ||
509 | struct perf_event *cp = cpuc->events[i]; | ||
510 | struct hw_perf_event *hwc; | ||
511 | |||
512 | if (!cp) | ||
513 | continue; | ||
514 | hwc = &cp->hw; | ||
515 | val |= hwc->config_base; | ||
516 | } | ||
517 | |||
518 | cpuc->pcr = val; | ||
519 | |||
520 | pcr_ops->write(cpuc->pcr); | ||
521 | } | ||
522 | |||
523 | void hw_perf_disable(void) | ||
524 | { | ||
525 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
526 | u64 val; | ||
527 | |||
528 | if (!cpuc->enabled) | ||
529 | return; | ||
530 | |||
531 | cpuc->enabled = 0; | ||
532 | |||
533 | val = cpuc->pcr; | ||
534 | val &= ~(PCR_UTRACE | PCR_STRACE | | ||
535 | sparc_pmu->hv_bit | sparc_pmu->irq_bit); | ||
536 | cpuc->pcr = val; | ||
537 | |||
538 | pcr_ops->write(cpuc->pcr); | ||
539 | } | ||
540 | |||
541 | static u32 read_pmc(int idx) | 536 | static u32 read_pmc(int idx) |
542 | { | 537 | { |
543 | u64 val; | 538 | u64 val; |
@@ -566,6 +561,30 @@ static void write_pmc(int idx, u64 val) | |||
566 | write_pic(pic); | 561 | write_pic(pic); |
567 | } | 562 | } |
568 | 563 | ||
564 | static u64 sparc_perf_event_update(struct perf_event *event, | ||
565 | struct hw_perf_event *hwc, int idx) | ||
566 | { | ||
567 | int shift = 64 - 32; | ||
568 | u64 prev_raw_count, new_raw_count; | ||
569 | s64 delta; | ||
570 | |||
571 | again: | ||
572 | prev_raw_count = atomic64_read(&hwc->prev_count); | ||
573 | new_raw_count = read_pmc(idx); | ||
574 | |||
575 | if (atomic64_cmpxchg(&hwc->prev_count, prev_raw_count, | ||
576 | new_raw_count) != prev_raw_count) | ||
577 | goto again; | ||
578 | |||
579 | delta = (new_raw_count << shift) - (prev_raw_count << shift); | ||
580 | delta >>= shift; | ||
581 | |||
582 | atomic64_add(delta, &event->count); | ||
583 | atomic64_sub(delta, &hwc->period_left); | ||
584 | |||
585 | return new_raw_count; | ||
586 | } | ||
587 | |||
569 | static int sparc_perf_event_set_period(struct perf_event *event, | 588 | static int sparc_perf_event_set_period(struct perf_event *event, |
570 | struct hw_perf_event *hwc, int idx) | 589 | struct hw_perf_event *hwc, int idx) |
571 | { | 590 | { |
@@ -598,81 +617,166 @@ static int sparc_perf_event_set_period(struct perf_event *event, | |||
598 | return ret; | 617 | return ret; |
599 | } | 618 | } |
600 | 619 | ||
601 | static int sparc_pmu_enable(struct perf_event *event) | 620 | /* If performance event entries have been added, move existing |
621 | * events around (if necessary) and then assign new entries to | ||
622 | * counters. | ||
623 | */ | ||
624 | static u64 maybe_change_configuration(struct cpu_hw_events *cpuc, u64 pcr) | ||
602 | { | 625 | { |
603 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 626 | int i; |
604 | struct hw_perf_event *hwc = &event->hw; | ||
605 | int idx = hwc->idx; | ||
606 | 627 | ||
607 | if (test_and_set_bit(idx, cpuc->used_mask)) | 628 | if (!cpuc->n_added) |
608 | return -EAGAIN; | 629 | goto out; |
609 | 630 | ||
610 | sparc_pmu_disable_event(cpuc, hwc, idx); | 631 | /* Read in the counters which are moving. */ |
632 | for (i = 0; i < cpuc->n_events; i++) { | ||
633 | struct perf_event *cp = cpuc->event[i]; | ||
611 | 634 | ||
612 | cpuc->events[idx] = event; | 635 | if (cpuc->current_idx[i] != PIC_NO_INDEX && |
613 | set_bit(idx, cpuc->active_mask); | 636 | cpuc->current_idx[i] != cp->hw.idx) { |
637 | sparc_perf_event_update(cp, &cp->hw, | ||
638 | cpuc->current_idx[i]); | ||
639 | cpuc->current_idx[i] = PIC_NO_INDEX; | ||
640 | } | ||
641 | } | ||
614 | 642 | ||
615 | sparc_perf_event_set_period(event, hwc, idx); | 643 | /* Assign to counters all unassigned events. */ |
616 | sparc_pmu_enable_event(cpuc, hwc, idx); | 644 | for (i = 0; i < cpuc->n_events; i++) { |
617 | perf_event_update_userpage(event); | 645 | struct perf_event *cp = cpuc->event[i]; |
618 | return 0; | 646 | struct hw_perf_event *hwc = &cp->hw; |
647 | int idx = hwc->idx; | ||
648 | u64 enc; | ||
649 | |||
650 | if (cpuc->current_idx[i] != PIC_NO_INDEX) | ||
651 | continue; | ||
652 | |||
653 | sparc_perf_event_set_period(cp, hwc, idx); | ||
654 | cpuc->current_idx[i] = idx; | ||
655 | |||
656 | enc = perf_event_get_enc(cpuc->events[i]); | ||
657 | pcr |= event_encoding(enc, idx); | ||
658 | } | ||
659 | out: | ||
660 | return pcr; | ||
619 | } | 661 | } |
620 | 662 | ||
621 | static u64 sparc_perf_event_update(struct perf_event *event, | 663 | void hw_perf_enable(void) |
622 | struct hw_perf_event *hwc, int idx) | ||
623 | { | 664 | { |
624 | int shift = 64 - 32; | 665 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); |
625 | u64 prev_raw_count, new_raw_count; | 666 | u64 pcr; |
626 | s64 delta; | ||
627 | 667 | ||
628 | again: | 668 | if (cpuc->enabled) |
629 | prev_raw_count = atomic64_read(&hwc->prev_count); | 669 | return; |
630 | new_raw_count = read_pmc(idx); | ||
631 | 670 | ||
632 | if (atomic64_cmpxchg(&hwc->prev_count, prev_raw_count, | 671 | cpuc->enabled = 1; |
633 | new_raw_count) != prev_raw_count) | 672 | barrier(); |
634 | goto again; | ||
635 | 673 | ||
636 | delta = (new_raw_count << shift) - (prev_raw_count << shift); | 674 | pcr = cpuc->pcr; |
637 | delta >>= shift; | 675 | if (!cpuc->n_events) { |
676 | pcr = 0; | ||
677 | } else { | ||
678 | pcr = maybe_change_configuration(cpuc, pcr); | ||
638 | 679 | ||
639 | atomic64_add(delta, &event->count); | 680 | /* We require that all of the events have the same |
640 | atomic64_sub(delta, &hwc->period_left); | 681 | * configuration, so just fetch the settings from the |
682 | * first entry. | ||
683 | */ | ||
684 | cpuc->pcr = pcr | cpuc->event[0]->hw.config_base; | ||
685 | } | ||
641 | 686 | ||
642 | return new_raw_count; | 687 | pcr_ops->write(cpuc->pcr); |
688 | } | ||
689 | |||
690 | void hw_perf_disable(void) | ||
691 | { | ||
692 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
693 | u64 val; | ||
694 | |||
695 | if (!cpuc->enabled) | ||
696 | return; | ||
697 | |||
698 | cpuc->enabled = 0; | ||
699 | cpuc->n_added = 0; | ||
700 | |||
701 | val = cpuc->pcr; | ||
702 | val &= ~(PCR_UTRACE | PCR_STRACE | | ||
703 | sparc_pmu->hv_bit | sparc_pmu->irq_bit); | ||
704 | cpuc->pcr = val; | ||
705 | |||
706 | pcr_ops->write(cpuc->pcr); | ||
643 | } | 707 | } |
644 | 708 | ||
645 | static void sparc_pmu_disable(struct perf_event *event) | 709 | static void sparc_pmu_disable(struct perf_event *event) |
646 | { | 710 | { |
647 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 711 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); |
648 | struct hw_perf_event *hwc = &event->hw; | 712 | struct hw_perf_event *hwc = &event->hw; |
649 | int idx = hwc->idx; | 713 | unsigned long flags; |
714 | int i; | ||
650 | 715 | ||
651 | clear_bit(idx, cpuc->active_mask); | 716 | local_irq_save(flags); |
652 | sparc_pmu_disable_event(cpuc, hwc, idx); | 717 | perf_disable(); |
718 | |||
719 | for (i = 0; i < cpuc->n_events; i++) { | ||
720 | if (event == cpuc->event[i]) { | ||
721 | int idx = cpuc->current_idx[i]; | ||
722 | |||
723 | /* Shift remaining entries down into | ||
724 | * the existing slot. | ||
725 | */ | ||
726 | while (++i < cpuc->n_events) { | ||
727 | cpuc->event[i - 1] = cpuc->event[i]; | ||
728 | cpuc->events[i - 1] = cpuc->events[i]; | ||
729 | cpuc->current_idx[i - 1] = | ||
730 | cpuc->current_idx[i]; | ||
731 | } | ||
732 | |||
733 | /* Absorb the final count and turn off the | ||
734 | * event. | ||
735 | */ | ||
736 | sparc_pmu_disable_event(cpuc, hwc, idx); | ||
737 | barrier(); | ||
738 | sparc_perf_event_update(event, hwc, idx); | ||
653 | 739 | ||
654 | barrier(); | 740 | perf_event_update_userpage(event); |
655 | 741 | ||
656 | sparc_perf_event_update(event, hwc, idx); | 742 | cpuc->n_events--; |
657 | cpuc->events[idx] = NULL; | 743 | break; |
658 | clear_bit(idx, cpuc->used_mask); | 744 | } |
745 | } | ||
659 | 746 | ||
660 | perf_event_update_userpage(event); | 747 | perf_enable(); |
748 | local_irq_restore(flags); | ||
749 | } | ||
750 | |||
751 | static int active_event_index(struct cpu_hw_events *cpuc, | ||
752 | struct perf_event *event) | ||
753 | { | ||
754 | int i; | ||
755 | |||
756 | for (i = 0; i < cpuc->n_events; i++) { | ||
757 | if (cpuc->event[i] == event) | ||
758 | break; | ||
759 | } | ||
760 | BUG_ON(i == cpuc->n_events); | ||
761 | return cpuc->current_idx[i]; | ||
661 | } | 762 | } |
662 | 763 | ||
663 | static void sparc_pmu_read(struct perf_event *event) | 764 | static void sparc_pmu_read(struct perf_event *event) |
664 | { | 765 | { |
766 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
767 | int idx = active_event_index(cpuc, event); | ||
665 | struct hw_perf_event *hwc = &event->hw; | 768 | struct hw_perf_event *hwc = &event->hw; |
666 | 769 | ||
667 | sparc_perf_event_update(event, hwc, hwc->idx); | 770 | sparc_perf_event_update(event, hwc, idx); |
668 | } | 771 | } |
669 | 772 | ||
670 | static void sparc_pmu_unthrottle(struct perf_event *event) | 773 | static void sparc_pmu_unthrottle(struct perf_event *event) |
671 | { | 774 | { |
672 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | 775 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); |
776 | int idx = active_event_index(cpuc, event); | ||
673 | struct hw_perf_event *hwc = &event->hw; | 777 | struct hw_perf_event *hwc = &event->hw; |
674 | 778 | ||
675 | sparc_pmu_enable_event(cpuc, hwc, hwc->idx); | 779 | sparc_pmu_enable_event(cpuc, hwc, idx); |
676 | } | 780 | } |
677 | 781 | ||
678 | static atomic_t active_events = ATOMIC_INIT(0); | 782 | static atomic_t active_events = ATOMIC_INIT(0); |
@@ -750,43 +854,75 @@ static void hw_perf_event_destroy(struct perf_event *event) | |||
750 | /* Make sure all events can be scheduled into the hardware at | 854 | /* Make sure all events can be scheduled into the hardware at |
751 | * the same time. This is simplified by the fact that we only | 855 | * the same time. This is simplified by the fact that we only |
752 | * need to support 2 simultaneous HW events. | 856 | * need to support 2 simultaneous HW events. |
857 | * | ||
858 | * As a side effect, the evts[]->hw.idx values will be assigned | ||
859 | * on success. These are pending indexes. When the events are | ||
860 | * actually programmed into the chip, these values will propagate | ||
861 | * to the per-cpu cpuc->current_idx[] slots, see the code in | ||
862 | * maybe_change_configuration() for details. | ||
753 | */ | 863 | */ |
754 | static int sparc_check_constraints(unsigned long *events, int n_ev) | 864 | static int sparc_check_constraints(struct perf_event **evts, |
865 | unsigned long *events, int n_ev) | ||
755 | { | 866 | { |
756 | if (n_ev <= perf_max_events) { | 867 | u8 msk0 = 0, msk1 = 0; |
757 | u8 msk1, msk2; | 868 | int idx0 = 0; |
758 | u16 dummy; | 869 | |
759 | 870 | /* This case is possible when we are invoked from | |
760 | if (n_ev == 1) | 871 | * hw_perf_group_sched_in(). |
761 | return 0; | 872 | */ |
762 | BUG_ON(n_ev != 2); | 873 | if (!n_ev) |
763 | perf_event_decode(events[0], &dummy, &msk1); | 874 | return 0; |
764 | perf_event_decode(events[1], &dummy, &msk2); | 875 | |
765 | 876 | if (n_ev > perf_max_events) | |
766 | /* If both events can go on any counter, OK. */ | 877 | return -1; |
767 | if (msk1 == (PIC_UPPER | PIC_LOWER) && | 878 | |
768 | msk2 == (PIC_UPPER | PIC_LOWER)) | 879 | msk0 = perf_event_get_msk(events[0]); |
769 | return 0; | 880 | if (n_ev == 1) { |
770 | 881 | if (msk0 & PIC_LOWER) | |
771 | /* If one event is limited to a specific counter, | 882 | idx0 = 1; |
772 | * and the other can go on both, OK. | 883 | goto success; |
773 | */ | ||
774 | if ((msk1 == PIC_UPPER || msk1 == PIC_LOWER) && | ||
775 | msk2 == (PIC_UPPER | PIC_LOWER)) | ||
776 | return 0; | ||
777 | if ((msk2 == PIC_UPPER || msk2 == PIC_LOWER) && | ||
778 | msk1 == (PIC_UPPER | PIC_LOWER)) | ||
779 | return 0; | ||
780 | |||
781 | /* If the events are fixed to different counters, OK. */ | ||
782 | if ((msk1 == PIC_UPPER && msk2 == PIC_LOWER) || | ||
783 | (msk1 == PIC_LOWER && msk2 == PIC_UPPER)) | ||
784 | return 0; | ||
785 | |||
786 | /* Otherwise, there is a conflict. */ | ||
787 | } | 884 | } |
885 | BUG_ON(n_ev != 2); | ||
886 | msk1 = perf_event_get_msk(events[1]); | ||
887 | |||
888 | /* If both events can go on any counter, OK. */ | ||
889 | if (msk0 == (PIC_UPPER | PIC_LOWER) && | ||
890 | msk1 == (PIC_UPPER | PIC_LOWER)) | ||
891 | goto success; | ||
788 | 892 | ||
893 | /* If one event is limited to a specific counter, | ||
894 | * and the other can go on both, OK. | ||
895 | */ | ||
896 | if ((msk0 == PIC_UPPER || msk0 == PIC_LOWER) && | ||
897 | msk1 == (PIC_UPPER | PIC_LOWER)) { | ||
898 | if (msk0 & PIC_LOWER) | ||
899 | idx0 = 1; | ||
900 | goto success; | ||
901 | } | ||
902 | |||
903 | if ((msk1 == PIC_UPPER || msk1 == PIC_LOWER) && | ||
904 | msk0 == (PIC_UPPER | PIC_LOWER)) { | ||
905 | if (msk1 & PIC_UPPER) | ||
906 | idx0 = 1; | ||
907 | goto success; | ||
908 | } | ||
909 | |||
910 | /* If the events are fixed to different counters, OK. */ | ||
911 | if ((msk0 == PIC_UPPER && msk1 == PIC_LOWER) || | ||
912 | (msk0 == PIC_LOWER && msk1 == PIC_UPPER)) { | ||
913 | if (msk0 & PIC_LOWER) | ||
914 | idx0 = 1; | ||
915 | goto success; | ||
916 | } | ||
917 | |||
918 | /* Otherwise, there is a conflict. */ | ||
789 | return -1; | 919 | return -1; |
920 | |||
921 | success: | ||
922 | evts[0]->hw.idx = idx0; | ||
923 | if (n_ev == 2) | ||
924 | evts[1]->hw.idx = idx0 ^ 1; | ||
925 | return 0; | ||
790 | } | 926 | } |
791 | 927 | ||
792 | static int check_excludes(struct perf_event **evts, int n_prev, int n_new) | 928 | static int check_excludes(struct perf_event **evts, int n_prev, int n_new) |
@@ -818,7 +954,8 @@ static int check_excludes(struct perf_event **evts, int n_prev, int n_new) | |||
818 | } | 954 | } |
819 | 955 | ||
820 | static int collect_events(struct perf_event *group, int max_count, | 956 | static int collect_events(struct perf_event *group, int max_count, |
821 | struct perf_event *evts[], unsigned long *events) | 957 | struct perf_event *evts[], unsigned long *events, |
958 | int *current_idx) | ||
822 | { | 959 | { |
823 | struct perf_event *event; | 960 | struct perf_event *event; |
824 | int n = 0; | 961 | int n = 0; |
@@ -827,7 +964,8 @@ static int collect_events(struct perf_event *group, int max_count, | |||
827 | if (n >= max_count) | 964 | if (n >= max_count) |
828 | return -1; | 965 | return -1; |
829 | evts[n] = group; | 966 | evts[n] = group; |
830 | events[n++] = group->hw.event_base; | 967 | events[n] = group->hw.event_base; |
968 | current_idx[n++] = PIC_NO_INDEX; | ||
831 | } | 969 | } |
832 | list_for_each_entry(event, &group->sibling_list, group_entry) { | 970 | list_for_each_entry(event, &group->sibling_list, group_entry) { |
833 | if (!is_software_event(event) && | 971 | if (!is_software_event(event) && |
@@ -835,20 +973,100 @@ static int collect_events(struct perf_event *group, int max_count, | |||
835 | if (n >= max_count) | 973 | if (n >= max_count) |
836 | return -1; | 974 | return -1; |
837 | evts[n] = event; | 975 | evts[n] = event; |
838 | events[n++] = event->hw.event_base; | 976 | events[n] = event->hw.event_base; |
977 | current_idx[n++] = PIC_NO_INDEX; | ||
839 | } | 978 | } |
840 | } | 979 | } |
841 | return n; | 980 | return n; |
842 | } | 981 | } |
843 | 982 | ||
983 | static void event_sched_in(struct perf_event *event, int cpu) | ||
984 | { | ||
985 | event->state = PERF_EVENT_STATE_ACTIVE; | ||
986 | event->oncpu = cpu; | ||
987 | event->tstamp_running += event->ctx->time - event->tstamp_stopped; | ||
988 | if (is_software_event(event)) | ||
989 | event->pmu->enable(event); | ||
990 | } | ||
991 | |||
992 | int hw_perf_group_sched_in(struct perf_event *group_leader, | ||
993 | struct perf_cpu_context *cpuctx, | ||
994 | struct perf_event_context *ctx, int cpu) | ||
995 | { | ||
996 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
997 | struct perf_event *sub; | ||
998 | int n0, n; | ||
999 | |||
1000 | if (!sparc_pmu) | ||
1001 | return 0; | ||
1002 | |||
1003 | n0 = cpuc->n_events; | ||
1004 | n = collect_events(group_leader, perf_max_events - n0, | ||
1005 | &cpuc->event[n0], &cpuc->events[n0], | ||
1006 | &cpuc->current_idx[n0]); | ||
1007 | if (n < 0) | ||
1008 | return -EAGAIN; | ||
1009 | if (check_excludes(cpuc->event, n0, n)) | ||
1010 | return -EINVAL; | ||
1011 | if (sparc_check_constraints(cpuc->event, cpuc->events, n + n0)) | ||
1012 | return -EAGAIN; | ||
1013 | cpuc->n_events = n0 + n; | ||
1014 | cpuc->n_added += n; | ||
1015 | |||
1016 | cpuctx->active_oncpu += n; | ||
1017 | n = 1; | ||
1018 | event_sched_in(group_leader, cpu); | ||
1019 | list_for_each_entry(sub, &group_leader->sibling_list, group_entry) { | ||
1020 | if (sub->state != PERF_EVENT_STATE_OFF) { | ||
1021 | event_sched_in(sub, cpu); | ||
1022 | n++; | ||
1023 | } | ||
1024 | } | ||
1025 | ctx->nr_active += n; | ||
1026 | |||
1027 | return 1; | ||
1028 | } | ||
1029 | |||
1030 | static int sparc_pmu_enable(struct perf_event *event) | ||
1031 | { | ||
1032 | struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events); | ||
1033 | int n0, ret = -EAGAIN; | ||
1034 | unsigned long flags; | ||
1035 | |||
1036 | local_irq_save(flags); | ||
1037 | perf_disable(); | ||
1038 | |||
1039 | n0 = cpuc->n_events; | ||
1040 | if (n0 >= perf_max_events) | ||
1041 | goto out; | ||
1042 | |||
1043 | cpuc->event[n0] = event; | ||
1044 | cpuc->events[n0] = event->hw.event_base; | ||
1045 | cpuc->current_idx[n0] = PIC_NO_INDEX; | ||
1046 | |||
1047 | if (check_excludes(cpuc->event, n0, 1)) | ||
1048 | goto out; | ||
1049 | if (sparc_check_constraints(cpuc->event, cpuc->events, n0 + 1)) | ||
1050 | goto out; | ||
1051 | |||
1052 | cpuc->n_events++; | ||
1053 | cpuc->n_added++; | ||
1054 | |||
1055 | ret = 0; | ||
1056 | out: | ||
1057 | perf_enable(); | ||
1058 | local_irq_restore(flags); | ||
1059 | return ret; | ||
1060 | } | ||
1061 | |||
844 | static int __hw_perf_event_init(struct perf_event *event) | 1062 | static int __hw_perf_event_init(struct perf_event *event) |
845 | { | 1063 | { |
846 | struct perf_event_attr *attr = &event->attr; | 1064 | struct perf_event_attr *attr = &event->attr; |
847 | struct perf_event *evts[MAX_HWEVENTS]; | 1065 | struct perf_event *evts[MAX_HWEVENTS]; |
848 | struct hw_perf_event *hwc = &event->hw; | 1066 | struct hw_perf_event *hwc = &event->hw; |
849 | unsigned long events[MAX_HWEVENTS]; | 1067 | unsigned long events[MAX_HWEVENTS]; |
1068 | int current_idx_dmy[MAX_HWEVENTS]; | ||
850 | const struct perf_event_map *pmap; | 1069 | const struct perf_event_map *pmap; |
851 | u64 enc; | ||
852 | int n; | 1070 | int n; |
853 | 1071 | ||
854 | if (atomic_read(&nmi_active) < 0) | 1072 | if (atomic_read(&nmi_active) < 0) |
@@ -865,10 +1083,7 @@ static int __hw_perf_event_init(struct perf_event *event) | |||
865 | } else | 1083 | } else |
866 | return -EOPNOTSUPP; | 1084 | return -EOPNOTSUPP; |
867 | 1085 | ||
868 | /* We save the enable bits in the config_base. So to | 1086 | /* We save the enable bits in the config_base. */ |
869 | * turn off sampling just write 'config', and to enable | ||
870 | * things write 'config | config_base'. | ||
871 | */ | ||
872 | hwc->config_base = sparc_pmu->irq_bit; | 1087 | hwc->config_base = sparc_pmu->irq_bit; |
873 | if (!attr->exclude_user) | 1088 | if (!attr->exclude_user) |
874 | hwc->config_base |= PCR_UTRACE; | 1089 | hwc->config_base |= PCR_UTRACE; |
@@ -879,13 +1094,11 @@ static int __hw_perf_event_init(struct perf_event *event) | |||
879 | 1094 | ||
880 | hwc->event_base = perf_event_encode(pmap); | 1095 | hwc->event_base = perf_event_encode(pmap); |
881 | 1096 | ||
882 | enc = pmap->encoding; | ||
883 | |||
884 | n = 0; | 1097 | n = 0; |
885 | if (event->group_leader != event) { | 1098 | if (event->group_leader != event) { |
886 | n = collect_events(event->group_leader, | 1099 | n = collect_events(event->group_leader, |
887 | perf_max_events - 1, | 1100 | perf_max_events - 1, |
888 | evts, events); | 1101 | evts, events, current_idx_dmy); |
889 | if (n < 0) | 1102 | if (n < 0) |
890 | return -EINVAL; | 1103 | return -EINVAL; |
891 | } | 1104 | } |
@@ -895,9 +1108,11 @@ static int __hw_perf_event_init(struct perf_event *event) | |||
895 | if (check_excludes(evts, n, 1)) | 1108 | if (check_excludes(evts, n, 1)) |
896 | return -EINVAL; | 1109 | return -EINVAL; |
897 | 1110 | ||
898 | if (sparc_check_constraints(events, n + 1)) | 1111 | if (sparc_check_constraints(evts, events, n + 1)) |
899 | return -EINVAL; | 1112 | return -EINVAL; |
900 | 1113 | ||
1114 | hwc->idx = PIC_NO_INDEX; | ||
1115 | |||
901 | /* Try to do all error checking before this point, as unwinding | 1116 | /* Try to do all error checking before this point, as unwinding |
902 | * state after grabbing the PMC is difficult. | 1117 | * state after grabbing the PMC is difficult. |
903 | */ | 1118 | */ |
@@ -910,15 +1125,6 @@ static int __hw_perf_event_init(struct perf_event *event) | |||
910 | atomic64_set(&hwc->period_left, hwc->sample_period); | 1125 | atomic64_set(&hwc->period_left, hwc->sample_period); |
911 | } | 1126 | } |
912 | 1127 | ||
913 | if (pmap->pic_mask & PIC_UPPER) { | ||
914 | hwc->idx = PIC_UPPER_INDEX; | ||
915 | enc <<= sparc_pmu->upper_shift; | ||
916 | } else { | ||
917 | hwc->idx = PIC_LOWER_INDEX; | ||
918 | enc <<= sparc_pmu->lower_shift; | ||
919 | } | ||
920 | |||
921 | hwc->config |= enc; | ||
922 | return 0; | 1128 | return 0; |
923 | } | 1129 | } |
924 | 1130 | ||
@@ -968,7 +1174,7 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self, | |||
968 | struct perf_sample_data data; | 1174 | struct perf_sample_data data; |
969 | struct cpu_hw_events *cpuc; | 1175 | struct cpu_hw_events *cpuc; |
970 | struct pt_regs *regs; | 1176 | struct pt_regs *regs; |
971 | int idx; | 1177 | int i; |
972 | 1178 | ||
973 | if (!atomic_read(&active_events)) | 1179 | if (!atomic_read(&active_events)) |
974 | return NOTIFY_DONE; | 1180 | return NOTIFY_DONE; |
@@ -997,13 +1203,12 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self, | |||
997 | if (sparc_pmu->irq_bit) | 1203 | if (sparc_pmu->irq_bit) |
998 | pcr_ops->write(cpuc->pcr); | 1204 | pcr_ops->write(cpuc->pcr); |
999 | 1205 | ||
1000 | for (idx = 0; idx < MAX_HWEVENTS; idx++) { | 1206 | for (i = 0; i < cpuc->n_events; i++) { |
1001 | struct perf_event *event = cpuc->events[idx]; | 1207 | struct perf_event *event = cpuc->event[i]; |
1208 | int idx = cpuc->current_idx[i]; | ||
1002 | struct hw_perf_event *hwc; | 1209 | struct hw_perf_event *hwc; |
1003 | u64 val; | 1210 | u64 val; |
1004 | 1211 | ||
1005 | if (!test_bit(idx, cpuc->active_mask)) | ||
1006 | continue; | ||
1007 | hwc = &event->hw; | 1212 | hwc = &event->hw; |
1008 | val = sparc_perf_event_update(event, hwc, idx); | 1213 | val = sparc_perf_event_update(event, hwc, idx); |
1009 | if (val & (1ULL << 31)) | 1214 | if (val & (1ULL << 31)) |
@@ -1055,10 +1260,122 @@ void __init init_hw_perf_events(void) | |||
1055 | 1260 | ||
1056 | pr_cont("Supported PMU type is '%s'\n", sparc_pmu_type); | 1261 | pr_cont("Supported PMU type is '%s'\n", sparc_pmu_type); |
1057 | 1262 | ||
1058 | /* All sparc64 PMUs currently have 2 events. But this simple | 1263 | /* All sparc64 PMUs currently have 2 events. */ |
1059 | * driver only supports one active event at a time. | 1264 | perf_max_events = 2; |
1060 | */ | ||
1061 | perf_max_events = 1; | ||
1062 | 1265 | ||
1063 | register_die_notifier(&perf_event_nmi_notifier); | 1266 | register_die_notifier(&perf_event_nmi_notifier); |
1064 | } | 1267 | } |
1268 | |||
1269 | static inline void callchain_store(struct perf_callchain_entry *entry, u64 ip) | ||
1270 | { | ||
1271 | if (entry->nr < PERF_MAX_STACK_DEPTH) | ||
1272 | entry->ip[entry->nr++] = ip; | ||
1273 | } | ||
1274 | |||
1275 | static void perf_callchain_kernel(struct pt_regs *regs, | ||
1276 | struct perf_callchain_entry *entry) | ||
1277 | { | ||
1278 | unsigned long ksp, fp; | ||
1279 | |||
1280 | callchain_store(entry, PERF_CONTEXT_KERNEL); | ||
1281 | callchain_store(entry, regs->tpc); | ||
1282 | |||
1283 | ksp = regs->u_regs[UREG_I6]; | ||
1284 | fp = ksp + STACK_BIAS; | ||
1285 | do { | ||
1286 | struct sparc_stackf *sf; | ||
1287 | struct pt_regs *regs; | ||
1288 | unsigned long pc; | ||
1289 | |||
1290 | if (!kstack_valid(current_thread_info(), fp)) | ||
1291 | break; | ||
1292 | |||
1293 | sf = (struct sparc_stackf *) fp; | ||
1294 | regs = (struct pt_regs *) (sf + 1); | ||
1295 | |||
1296 | if (kstack_is_trap_frame(current_thread_info(), regs)) { | ||
1297 | if (user_mode(regs)) | ||
1298 | break; | ||
1299 | pc = regs->tpc; | ||
1300 | fp = regs->u_regs[UREG_I6] + STACK_BIAS; | ||
1301 | } else { | ||
1302 | pc = sf->callers_pc; | ||
1303 | fp = (unsigned long)sf->fp + STACK_BIAS; | ||
1304 | } | ||
1305 | callchain_store(entry, pc); | ||
1306 | } while (entry->nr < PERF_MAX_STACK_DEPTH); | ||
1307 | } | ||
1308 | |||
1309 | static void perf_callchain_user_64(struct pt_regs *regs, | ||
1310 | struct perf_callchain_entry *entry) | ||
1311 | { | ||
1312 | unsigned long ufp; | ||
1313 | |||
1314 | callchain_store(entry, PERF_CONTEXT_USER); | ||
1315 | callchain_store(entry, regs->tpc); | ||
1316 | |||
1317 | ufp = regs->u_regs[UREG_I6] + STACK_BIAS; | ||
1318 | do { | ||
1319 | struct sparc_stackf *usf, sf; | ||
1320 | unsigned long pc; | ||
1321 | |||
1322 | usf = (struct sparc_stackf *) ufp; | ||
1323 | if (__copy_from_user_inatomic(&sf, usf, sizeof(sf))) | ||
1324 | break; | ||
1325 | |||
1326 | pc = sf.callers_pc; | ||
1327 | ufp = (unsigned long)sf.fp + STACK_BIAS; | ||
1328 | callchain_store(entry, pc); | ||
1329 | } while (entry->nr < PERF_MAX_STACK_DEPTH); | ||
1330 | } | ||
1331 | |||
1332 | static void perf_callchain_user_32(struct pt_regs *regs, | ||
1333 | struct perf_callchain_entry *entry) | ||
1334 | { | ||
1335 | unsigned long ufp; | ||
1336 | |||
1337 | callchain_store(entry, PERF_CONTEXT_USER); | ||
1338 | callchain_store(entry, regs->tpc); | ||
1339 | |||
1340 | ufp = regs->u_regs[UREG_I6]; | ||
1341 | do { | ||
1342 | struct sparc_stackf32 *usf, sf; | ||
1343 | unsigned long pc; | ||
1344 | |||
1345 | usf = (struct sparc_stackf32 *) ufp; | ||
1346 | if (__copy_from_user_inatomic(&sf, usf, sizeof(sf))) | ||
1347 | break; | ||
1348 | |||
1349 | pc = sf.callers_pc; | ||
1350 | ufp = (unsigned long)sf.fp; | ||
1351 | callchain_store(entry, pc); | ||
1352 | } while (entry->nr < PERF_MAX_STACK_DEPTH); | ||
1353 | } | ||
1354 | |||
1355 | /* Like powerpc we can't get PMU interrupts within the PMU handler, | ||
1356 | * so no need for seperate NMI and IRQ chains as on x86. | ||
1357 | */ | ||
1358 | static DEFINE_PER_CPU(struct perf_callchain_entry, callchain); | ||
1359 | |||
1360 | struct perf_callchain_entry *perf_callchain(struct pt_regs *regs) | ||
1361 | { | ||
1362 | struct perf_callchain_entry *entry = &__get_cpu_var(callchain); | ||
1363 | |||
1364 | entry->nr = 0; | ||
1365 | if (!user_mode(regs)) { | ||
1366 | stack_trace_flush(); | ||
1367 | perf_callchain_kernel(regs, entry); | ||
1368 | if (current->mm) | ||
1369 | regs = task_pt_regs(current); | ||
1370 | else | ||
1371 | regs = NULL; | ||
1372 | } | ||
1373 | if (regs) { | ||
1374 | flushw_user(); | ||
1375 | if (test_thread_flag(TIF_32BIT)) | ||
1376 | perf_callchain_user_32(regs, entry); | ||
1377 | else | ||
1378 | perf_callchain_user_64(regs, entry); | ||
1379 | } | ||
1380 | return entry; | ||
1381 | } | ||
diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c index 2830b415e214..c49865b30719 100644 --- a/arch/sparc/kernel/process_32.c +++ b/arch/sparc/kernel/process_32.c | |||
@@ -526,7 +526,7 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, | |||
526 | * Set some valid stack frames to give to the child. | 526 | * Set some valid stack frames to give to the child. |
527 | */ | 527 | */ |
528 | childstack = (struct sparc_stackf __user *) | 528 | childstack = (struct sparc_stackf __user *) |
529 | (sp & ~0x7UL); | 529 | (sp & ~0xfUL); |
530 | parentstack = (struct sparc_stackf __user *) | 530 | parentstack = (struct sparc_stackf __user *) |
531 | regs->u_regs[UREG_FP]; | 531 | regs->u_regs[UREG_FP]; |
532 | 532 | ||
diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c index 18d67854a1b8..cb70476bd8f5 100644 --- a/arch/sparc/kernel/process_64.c +++ b/arch/sparc/kernel/process_64.c | |||
@@ -365,14 +365,6 @@ void flush_thread(void) | |||
365 | struct thread_info *t = current_thread_info(); | 365 | struct thread_info *t = current_thread_info(); |
366 | struct mm_struct *mm; | 366 | struct mm_struct *mm; |
367 | 367 | ||
368 | if (test_ti_thread_flag(t, TIF_ABI_PENDING)) { | ||
369 | clear_ti_thread_flag(t, TIF_ABI_PENDING); | ||
370 | if (test_ti_thread_flag(t, TIF_32BIT)) | ||
371 | clear_ti_thread_flag(t, TIF_32BIT); | ||
372 | else | ||
373 | set_ti_thread_flag(t, TIF_32BIT); | ||
374 | } | ||
375 | |||
376 | mm = t->task->mm; | 368 | mm = t->task->mm; |
377 | if (mm) | 369 | if (mm) |
378 | tsb_context_switch(mm); | 370 | tsb_context_switch(mm); |
@@ -406,11 +398,11 @@ static unsigned long clone_stackframe(unsigned long csp, unsigned long psp) | |||
406 | } else | 398 | } else |
407 | __get_user(fp, &(((struct reg_window32 __user *)psp)->ins[6])); | 399 | __get_user(fp, &(((struct reg_window32 __user *)psp)->ins[6])); |
408 | 400 | ||
409 | /* Now 8-byte align the stack as this is mandatory in the | 401 | /* Now align the stack as this is mandatory in the Sparc ABI |
410 | * Sparc ABI due to how register windows work. This hides | 402 | * due to how register windows work. This hides the |
411 | * the restriction from thread libraries etc. -DaveM | 403 | * restriction from thread libraries etc. |
412 | */ | 404 | */ |
413 | csp &= ~7UL; | 405 | csp &= ~15UL; |
414 | 406 | ||
415 | distance = fp - psp; | 407 | distance = fp - psp; |
416 | rval = (csp - distance); | 408 | rval = (csp - distance); |
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c index ba5b09ad6666..ea22cd373c64 100644 --- a/arch/sparc/kernel/signal32.c +++ b/arch/sparc/kernel/signal32.c | |||
@@ -120,8 +120,8 @@ struct rt_signal_frame32 { | |||
120 | }; | 120 | }; |
121 | 121 | ||
122 | /* Align macros */ | 122 | /* Align macros */ |
123 | #define SF_ALIGNEDSZ (((sizeof(struct signal_frame32) + 7) & (~7))) | 123 | #define SF_ALIGNEDSZ (((sizeof(struct signal_frame32) + 15) & (~15))) |
124 | #define RT_ALIGNEDSZ (((sizeof(struct rt_signal_frame32) + 7) & (~7))) | 124 | #define RT_ALIGNEDSZ (((sizeof(struct rt_signal_frame32) + 15) & (~15))) |
125 | 125 | ||
126 | int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from) | 126 | int copy_siginfo_to_user32(compat_siginfo_t __user *to, siginfo_t *from) |
127 | { | 127 | { |
@@ -420,15 +420,17 @@ static void __user *get_sigframe(struct sigaction *sa, struct pt_regs *regs, uns | |||
420 | sp = current->sas_ss_sp + current->sas_ss_size; | 420 | sp = current->sas_ss_sp + current->sas_ss_size; |
421 | } | 421 | } |
422 | 422 | ||
423 | sp -= framesize; | ||
424 | |||
423 | /* Always align the stack frame. This handles two cases. First, | 425 | /* Always align the stack frame. This handles two cases. First, |
424 | * sigaltstack need not be mindful of platform specific stack | 426 | * sigaltstack need not be mindful of platform specific stack |
425 | * alignment. Second, if we took this signal because the stack | 427 | * alignment. Second, if we took this signal because the stack |
426 | * is not aligned properly, we'd like to take the signal cleanly | 428 | * is not aligned properly, we'd like to take the signal cleanly |
427 | * and report that. | 429 | * and report that. |
428 | */ | 430 | */ |
429 | sp &= ~7UL; | 431 | sp &= ~15UL; |
430 | 432 | ||
431 | return (void __user *)(sp - framesize); | 433 | return (void __user *) sp; |
432 | } | 434 | } |
433 | 435 | ||
434 | static int save_fpu_state32(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) | 436 | static int save_fpu_state32(struct pt_regs *regs, __siginfo_fpu_t __user *fpu) |
diff --git a/arch/sparc/kernel/signal_32.c b/arch/sparc/kernel/signal_32.c index 7ce1a1005b1d..9882df92ba0a 100644 --- a/arch/sparc/kernel/signal_32.c +++ b/arch/sparc/kernel/signal_32.c | |||
@@ -267,15 +267,17 @@ static inline void __user *get_sigframe(struct sigaction *sa, struct pt_regs *re | |||
267 | sp = current->sas_ss_sp + current->sas_ss_size; | 267 | sp = current->sas_ss_sp + current->sas_ss_size; |
268 | } | 268 | } |
269 | 269 | ||
270 | sp -= framesize; | ||
271 | |||
270 | /* Always align the stack frame. This handles two cases. First, | 272 | /* Always align the stack frame. This handles two cases. First, |
271 | * sigaltstack need not be mindful of platform specific stack | 273 | * sigaltstack need not be mindful of platform specific stack |
272 | * alignment. Second, if we took this signal because the stack | 274 | * alignment. Second, if we took this signal because the stack |
273 | * is not aligned properly, we'd like to take the signal cleanly | 275 | * is not aligned properly, we'd like to take the signal cleanly |
274 | * and report that. | 276 | * and report that. |
275 | */ | 277 | */ |
276 | sp &= ~7UL; | 278 | sp &= ~15UL; |
277 | 279 | ||
278 | return (void __user *)(sp - framesize); | 280 | return (void __user *) sp; |
279 | } | 281 | } |
280 | 282 | ||
281 | static inline int | 283 | static inline int |
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c index 647afbda7ae1..9fa48c30037e 100644 --- a/arch/sparc/kernel/signal_64.c +++ b/arch/sparc/kernel/signal_64.c | |||
@@ -353,7 +353,7 @@ segv: | |||
353 | /* Checks if the fp is valid */ | 353 | /* Checks if the fp is valid */ |
354 | static int invalid_frame_pointer(void __user *fp, int fplen) | 354 | static int invalid_frame_pointer(void __user *fp, int fplen) |
355 | { | 355 | { |
356 | if (((unsigned long) fp) & 7) | 356 | if (((unsigned long) fp) & 15) |
357 | return 1; | 357 | return 1; |
358 | return 0; | 358 | return 0; |
359 | } | 359 | } |
@@ -396,15 +396,17 @@ static inline void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs * | |||
396 | sp = current->sas_ss_sp + current->sas_ss_size; | 396 | sp = current->sas_ss_sp + current->sas_ss_size; |
397 | } | 397 | } |
398 | 398 | ||
399 | sp -= framesize; | ||
400 | |||
399 | /* Always align the stack frame. This handles two cases. First, | 401 | /* Always align the stack frame. This handles two cases. First, |
400 | * sigaltstack need not be mindful of platform specific stack | 402 | * sigaltstack need not be mindful of platform specific stack |
401 | * alignment. Second, if we took this signal because the stack | 403 | * alignment. Second, if we took this signal because the stack |
402 | * is not aligned properly, we'd like to take the signal cleanly | 404 | * is not aligned properly, we'd like to take the signal cleanly |
403 | * and report that. | 405 | * and report that. |
404 | */ | 406 | */ |
405 | sp &= ~7UL; | 407 | sp &= ~15UL; |
406 | 408 | ||
407 | return (void __user *)(sp - framesize); | 409 | return (void __user *) sp; |
408 | } | 410 | } |
409 | 411 | ||
410 | static inline void | 412 | static inline void |
diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index cfa0e19abe3b..d77f54316948 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c | |||
@@ -365,6 +365,7 @@ EXPORT_SYMBOL(get_fb_unmapped_area); | |||
365 | void arch_pick_mmap_layout(struct mm_struct *mm) | 365 | void arch_pick_mmap_layout(struct mm_struct *mm) |
366 | { | 366 | { |
367 | unsigned long random_factor = 0UL; | 367 | unsigned long random_factor = 0UL; |
368 | unsigned long gap; | ||
368 | 369 | ||
369 | if (current->flags & PF_RANDOMIZE) { | 370 | if (current->flags & PF_RANDOMIZE) { |
370 | random_factor = get_random_int(); | 371 | random_factor = get_random_int(); |
@@ -379,9 +380,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
379 | * Fall back to the standard layout if the personality | 380 | * Fall back to the standard layout if the personality |
380 | * bit is set, or if the expected stack growth is unlimited: | 381 | * bit is set, or if the expected stack growth is unlimited: |
381 | */ | 382 | */ |
383 | gap = rlimit(RLIMIT_STACK); | ||
382 | if (!test_thread_flag(TIF_32BIT) || | 384 | if (!test_thread_flag(TIF_32BIT) || |
383 | (current->personality & ADDR_COMPAT_LAYOUT) || | 385 | (current->personality & ADDR_COMPAT_LAYOUT) || |
384 | current->signal->rlim[RLIMIT_STACK].rlim_cur == RLIM_INFINITY || | 386 | gap == RLIM_INFINITY || |
385 | sysctl_legacy_va_layout) { | 387 | sysctl_legacy_va_layout) { |
386 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; | 388 | mm->mmap_base = TASK_UNMAPPED_BASE + random_factor; |
387 | mm->get_unmapped_area = arch_get_unmapped_area; | 389 | mm->get_unmapped_area = arch_get_unmapped_area; |
@@ -389,9 +391,7 @@ void arch_pick_mmap_layout(struct mm_struct *mm) | |||
389 | } else { | 391 | } else { |
390 | /* We know it's 32-bit */ | 392 | /* We know it's 32-bit */ |
391 | unsigned long task_size = STACK_TOP32; | 393 | unsigned long task_size = STACK_TOP32; |
392 | unsigned long gap; | ||
393 | 394 | ||
394 | gap = current->signal->rlim[RLIMIT_STACK].rlim_cur; | ||
395 | if (gap < 128 * 1024 * 1024) | 395 | if (gap < 128 * 1024 * 1024) |
396 | gap = 128 * 1024 * 1024; | 396 | gap = 128 * 1024 * 1024; |
397 | if (gap > (task_size / 6 * 5)) | 397 | if (gap > (task_size / 6 * 5)) |
diff --git a/arch/sparc/kernel/time_32.c b/arch/sparc/kernel/time_32.c index 5b2f595fe65b..0d4c09b15efc 100644 --- a/arch/sparc/kernel/time_32.c +++ b/arch/sparc/kernel/time_32.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/platform_device.h> | 35 | #include <linux/platform_device.h> |
36 | 36 | ||
37 | #include <asm/oplib.h> | 37 | #include <asm/oplib.h> |
38 | #include <asm/timex.h> | ||
38 | #include <asm/timer.h> | 39 | #include <asm/timer.h> |
39 | #include <asm/system.h> | 40 | #include <asm/system.h> |
40 | #include <asm/irq.h> | 41 | #include <asm/irq.h> |
@@ -51,7 +52,6 @@ DEFINE_SPINLOCK(rtc_lock); | |||
51 | EXPORT_SYMBOL(rtc_lock); | 52 | EXPORT_SYMBOL(rtc_lock); |
52 | 53 | ||
53 | static int set_rtc_mmss(unsigned long); | 54 | static int set_rtc_mmss(unsigned long); |
54 | static int sbus_do_settimeofday(struct timespec *tv); | ||
55 | 55 | ||
56 | unsigned long profile_pc(struct pt_regs *regs) | 56 | unsigned long profile_pc(struct pt_regs *regs) |
57 | { | 57 | { |
@@ -76,6 +76,8 @@ EXPORT_SYMBOL(profile_pc); | |||
76 | 76 | ||
77 | __volatile__ unsigned int *master_l10_counter; | 77 | __volatile__ unsigned int *master_l10_counter; |
78 | 78 | ||
79 | u32 (*do_arch_gettimeoffset)(void); | ||
80 | |||
79 | /* | 81 | /* |
80 | * timer_interrupt() needs to keep up the real-time clock, | 82 | * timer_interrupt() needs to keep up the real-time clock, |
81 | * as well as call the "do_timer()" routine every clocktick | 83 | * as well as call the "do_timer()" routine every clocktick |
@@ -196,35 +198,14 @@ static int __init clock_init(void) | |||
196 | { | 198 | { |
197 | return of_register_driver(&clock_driver, &of_platform_bus_type); | 199 | return of_register_driver(&clock_driver, &of_platform_bus_type); |
198 | } | 200 | } |
199 | |||
200 | /* Must be after subsys_initcall() so that busses are probed. Must | 201 | /* Must be after subsys_initcall() so that busses are probed. Must |
201 | * be before device_initcall() because things like the RTC driver | 202 | * be before device_initcall() because things like the RTC driver |
202 | * need to see the clock registers. | 203 | * need to see the clock registers. |
203 | */ | 204 | */ |
204 | fs_initcall(clock_init); | 205 | fs_initcall(clock_init); |
205 | 206 | ||
206 | static void __init sbus_time_init(void) | ||
207 | { | ||
208 | |||
209 | BTFIXUPSET_CALL(bus_do_settimeofday, sbus_do_settimeofday, BTFIXUPCALL_NORM); | ||
210 | btfixup(); | ||
211 | |||
212 | sparc_init_timers(timer_interrupt); | ||
213 | } | ||
214 | |||
215 | void __init time_init(void) | ||
216 | { | ||
217 | #ifdef CONFIG_PCI | ||
218 | extern void pci_time_init(void); | ||
219 | if (pcic_present()) { | ||
220 | pci_time_init(); | ||
221 | return; | ||
222 | } | ||
223 | #endif | ||
224 | sbus_time_init(); | ||
225 | } | ||
226 | 207 | ||
227 | static inline unsigned long do_gettimeoffset(void) | 208 | u32 sbus_do_gettimeoffset(void) |
228 | { | 209 | { |
229 | unsigned long val = *master_l10_counter; | 210 | unsigned long val = *master_l10_counter; |
230 | unsigned long usec = (val >> 10) & 0x1fffff; | 211 | unsigned long usec = (val >> 10) & 0x1fffff; |
@@ -233,86 +214,39 @@ static inline unsigned long do_gettimeoffset(void) | |||
233 | if (val & 0x80000000) | 214 | if (val & 0x80000000) |
234 | usec += 1000000 / HZ; | 215 | usec += 1000000 / HZ; |
235 | 216 | ||
236 | return usec; | 217 | return usec * 1000; |
237 | } | 218 | } |
238 | 219 | ||
239 | /* Ok, my cute asm atomicity trick doesn't work anymore. | ||
240 | * There are just too many variables that need to be protected | ||
241 | * now (both members of xtime, et al.) | ||
242 | */ | ||
243 | void do_gettimeofday(struct timeval *tv) | ||
244 | { | ||
245 | unsigned long flags; | ||
246 | unsigned long seq; | ||
247 | unsigned long usec, sec; | ||
248 | unsigned long max_ntp_tick = tick_usec - tickadj; | ||
249 | |||
250 | do { | ||
251 | seq = read_seqbegin_irqsave(&xtime_lock, flags); | ||
252 | usec = do_gettimeoffset(); | ||
253 | |||
254 | /* | ||
255 | * If time_adjust is negative then NTP is slowing the clock | ||
256 | * so make sure not to go into next possible interval. | ||
257 | * Better to lose some accuracy than have time go backwards.. | ||
258 | */ | ||
259 | if (unlikely(time_adjust < 0)) | ||
260 | usec = min(usec, max_ntp_tick); | ||
261 | |||
262 | sec = xtime.tv_sec; | ||
263 | usec += (xtime.tv_nsec / 1000); | ||
264 | } while (read_seqretry_irqrestore(&xtime_lock, seq, flags)); | ||
265 | |||
266 | while (usec >= 1000000) { | ||
267 | usec -= 1000000; | ||
268 | sec++; | ||
269 | } | ||
270 | 220 | ||
271 | tv->tv_sec = sec; | 221 | u32 arch_gettimeoffset(void) |
272 | tv->tv_usec = usec; | ||
273 | } | ||
274 | |||
275 | EXPORT_SYMBOL(do_gettimeofday); | ||
276 | |||
277 | int do_settimeofday(struct timespec *tv) | ||
278 | { | 222 | { |
279 | int ret; | 223 | if (unlikely(!do_arch_gettimeoffset)) |
280 | 224 | return 0; | |
281 | write_seqlock_irq(&xtime_lock); | 225 | return do_arch_gettimeoffset(); |
282 | ret = bus_do_settimeofday(tv); | ||
283 | write_sequnlock_irq(&xtime_lock); | ||
284 | clock_was_set(); | ||
285 | return ret; | ||
286 | } | 226 | } |
287 | 227 | ||
288 | EXPORT_SYMBOL(do_settimeofday); | 228 | static void __init sbus_time_init(void) |
289 | |||
290 | static int sbus_do_settimeofday(struct timespec *tv) | ||
291 | { | 229 | { |
292 | time_t wtm_sec, sec = tv->tv_sec; | 230 | do_arch_gettimeoffset = sbus_do_gettimeoffset; |
293 | long wtm_nsec, nsec = tv->tv_nsec; | ||
294 | 231 | ||
295 | if ((unsigned long)tv->tv_nsec >= NSEC_PER_SEC) | 232 | btfixup(); |
296 | return -EINVAL; | ||
297 | |||
298 | /* | ||
299 | * This is revolting. We need to set "xtime" correctly. However, the | ||
300 | * value in this location is the value at the most recent update of | ||
301 | * wall time. Discover what correction gettimeofday() would have | ||
302 | * made, and then undo it! | ||
303 | */ | ||
304 | nsec -= 1000 * do_gettimeoffset(); | ||
305 | |||
306 | wtm_sec = wall_to_monotonic.tv_sec + (xtime.tv_sec - sec); | ||
307 | wtm_nsec = wall_to_monotonic.tv_nsec + (xtime.tv_nsec - nsec); | ||
308 | 233 | ||
309 | set_normalized_timespec(&xtime, sec, nsec); | 234 | sparc_init_timers(timer_interrupt); |
310 | set_normalized_timespec(&wall_to_monotonic, wtm_sec, wtm_nsec); | 235 | } |
311 | 236 | ||
312 | ntp_clear(); | 237 | void __init time_init(void) |
313 | return 0; | 238 | { |
239 | #ifdef CONFIG_PCI | ||
240 | extern void pci_time_init(void); | ||
241 | if (pcic_present()) { | ||
242 | pci_time_init(); | ||
243 | return; | ||
244 | } | ||
245 | #endif | ||
246 | sbus_time_init(); | ||
314 | } | 247 | } |
315 | 248 | ||
249 | |||
316 | static int set_rtc_mmss(unsigned long secs) | 250 | static int set_rtc_mmss(unsigned long secs) |
317 | { | 251 | { |
318 | struct rtc_device *rtc = rtc_class_open("rtc0"); | 252 | struct rtc_device *rtc = rtc_class_open("rtc0"); |
diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c index b99f81c4906f..a3413acb8f12 100644 --- a/arch/sparc/mm/fault_32.c +++ b/arch/sparc/mm/fault_32.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/signal.h> | 18 | #include <linux/signal.h> |
19 | #include <linux/mm.h> | 19 | #include <linux/mm.h> |
20 | #include <linux/smp.h> | 20 | #include <linux/smp.h> |
21 | #include <linux/perf_event.h> | ||
21 | #include <linux/interrupt.h> | 22 | #include <linux/interrupt.h> |
22 | #include <linux/module.h> | 23 | #include <linux/module.h> |
23 | #include <linux/kdebug.h> | 24 | #include <linux/kdebug.h> |
@@ -203,6 +204,8 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, | |||
203 | if (in_atomic() || !mm) | 204 | if (in_atomic() || !mm) |
204 | goto no_context; | 205 | goto no_context; |
205 | 206 | ||
207 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address); | ||
208 | |||
206 | down_read(&mm->mmap_sem); | 209 | down_read(&mm->mmap_sem); |
207 | 210 | ||
208 | /* | 211 | /* |
@@ -249,10 +252,15 @@ good_area: | |||
249 | goto do_sigbus; | 252 | goto do_sigbus; |
250 | BUG(); | 253 | BUG(); |
251 | } | 254 | } |
252 | if (fault & VM_FAULT_MAJOR) | 255 | if (fault & VM_FAULT_MAJOR) { |
253 | current->maj_flt++; | 256 | current->maj_flt++; |
254 | else | 257 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, 0, |
258 | regs, address); | ||
259 | } else { | ||
255 | current->min_flt++; | 260 | current->min_flt++; |
261 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, 0, | ||
262 | regs, address); | ||
263 | } | ||
256 | up_read(&mm->mmap_sem); | 264 | up_read(&mm->mmap_sem); |
257 | return; | 265 | return; |
258 | 266 | ||
diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c index 6081936bf03b..b9d4ff02b8fc 100644 --- a/arch/sparc/mm/fault_64.c +++ b/arch/sparc/mm/fault_64.c | |||
@@ -16,6 +16,7 @@ | |||
16 | #include <linux/mm.h> | 16 | #include <linux/mm.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/init.h> | 18 | #include <linux/init.h> |
19 | #include <linux/perf_event.h> | ||
19 | #include <linux/interrupt.h> | 20 | #include <linux/interrupt.h> |
20 | #include <linux/kprobes.h> | 21 | #include <linux/kprobes.h> |
21 | #include <linux/kdebug.h> | 22 | #include <linux/kdebug.h> |
@@ -296,6 +297,8 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) | |||
296 | if (in_atomic() || !mm) | 297 | if (in_atomic() || !mm) |
297 | goto intr_or_no_mm; | 298 | goto intr_or_no_mm; |
298 | 299 | ||
300 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address); | ||
301 | |||
299 | if (!down_read_trylock(&mm->mmap_sem)) { | 302 | if (!down_read_trylock(&mm->mmap_sem)) { |
300 | if ((regs->tstate & TSTATE_PRIV) && | 303 | if ((regs->tstate & TSTATE_PRIV) && |
301 | !search_exception_tables(regs->tpc)) { | 304 | !search_exception_tables(regs->tpc)) { |
@@ -400,11 +403,15 @@ good_area: | |||
400 | goto do_sigbus; | 403 | goto do_sigbus; |
401 | BUG(); | 404 | BUG(); |
402 | } | 405 | } |
403 | if (fault & VM_FAULT_MAJOR) | 406 | if (fault & VM_FAULT_MAJOR) { |
404 | current->maj_flt++; | 407 | current->maj_flt++; |
405 | else | 408 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MAJ, 1, 0, |
409 | regs, address); | ||
410 | } else { | ||
406 | current->min_flt++; | 411 | current->min_flt++; |
407 | 412 | perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS_MIN, 1, 0, | |
413 | regs, address); | ||
414 | } | ||
408 | up_read(&mm->mmap_sem); | 415 | up_read(&mm->mmap_sem); |
409 | 416 | ||
410 | mm_rss = get_mm_rss(mm); | 417 | mm_rss = get_mm_rss(mm); |
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index cbcbfdee3ee0..eb4092568f9e 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig | |||
@@ -989,12 +989,6 @@ config X86_CPUID | |||
989 | with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to | 989 | with major 203 and minors 0 to 31 for /dev/cpu/0/cpuid to |
990 | /dev/cpu/31/cpuid. | 990 | /dev/cpu/31/cpuid. |
991 | 991 | ||
992 | config X86_CPU_DEBUG | ||
993 | tristate "/sys/kernel/debug/x86/cpu/* - CPU Debug support" | ||
994 | ---help--- | ||
995 | If you select this option, this will provide various x86 CPUs | ||
996 | information through debugfs. | ||
997 | |||
998 | choice | 992 | choice |
999 | prompt "High Memory Support" | 993 | prompt "High Memory Support" |
1000 | default HIGHMEM4G if !X86_NUMAQ | 994 | default HIGHMEM4G if !X86_NUMAQ |
diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c index 2a4d073d2cf1..f9f472462753 100644 --- a/arch/x86/ia32/ia32_aout.c +++ b/arch/x86/ia32/ia32_aout.c | |||
@@ -308,14 +308,15 @@ static int load_aout_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
308 | if (retval) | 308 | if (retval) |
309 | return retval; | 309 | return retval; |
310 | 310 | ||
311 | regs->cs = __USER32_CS; | ||
312 | regs->r8 = regs->r9 = regs->r10 = regs->r11 = regs->r12 = | ||
313 | regs->r13 = regs->r14 = regs->r15 = 0; | ||
314 | |||
315 | /* OK, This is the point of no return */ | 311 | /* OK, This is the point of no return */ |
316 | set_personality(PER_LINUX); | 312 | set_personality(PER_LINUX); |
317 | set_thread_flag(TIF_IA32); | 313 | set_thread_flag(TIF_IA32); |
318 | clear_thread_flag(TIF_ABI_PENDING); | 314 | |
315 | setup_new_exec(bprm); | ||
316 | |||
317 | regs->cs = __USER32_CS; | ||
318 | regs->r8 = regs->r9 = regs->r10 = regs->r11 = regs->r12 = | ||
319 | regs->r13 = regs->r14 = regs->r15 = 0; | ||
319 | 320 | ||
320 | current->mm->end_code = ex.a_text + | 321 | current->mm->end_code = ex.a_text + |
321 | (current->mm->start_code = N_TXTADDR(ex)); | 322 | (current->mm->start_code = N_TXTADDR(ex)); |
diff --git a/arch/x86/include/asm/amd_iommu_proto.h b/arch/x86/include/asm/amd_iommu_proto.h index 4d817f9e6e77..d2544f1d705d 100644 --- a/arch/x86/include/asm/amd_iommu_proto.h +++ b/arch/x86/include/asm/amd_iommu_proto.h | |||
@@ -31,6 +31,7 @@ extern void amd_iommu_reset_cmd_buffer(struct amd_iommu *iommu); | |||
31 | extern int amd_iommu_init_devices(void); | 31 | extern int amd_iommu_init_devices(void); |
32 | extern void amd_iommu_uninit_devices(void); | 32 | extern void amd_iommu_uninit_devices(void); |
33 | extern void amd_iommu_init_notifier(void); | 33 | extern void amd_iommu_init_notifier(void); |
34 | extern void amd_iommu_init_api(void); | ||
34 | #ifndef CONFIG_AMD_IOMMU_STATS | 35 | #ifndef CONFIG_AMD_IOMMU_STATS |
35 | 36 | ||
36 | static inline void amd_iommu_stats_init(void) { } | 37 | static inline void amd_iommu_stats_init(void) { } |
diff --git a/arch/x86/include/asm/cpu_debug.h b/arch/x86/include/asm/cpu_debug.h deleted file mode 100644 index d96c1ee3a95c..000000000000 --- a/arch/x86/include/asm/cpu_debug.h +++ /dev/null | |||
@@ -1,127 +0,0 @@ | |||
1 | #ifndef _ASM_X86_CPU_DEBUG_H | ||
2 | #define _ASM_X86_CPU_DEBUG_H | ||
3 | |||
4 | /* | ||
5 | * CPU x86 architecture debug | ||
6 | * | ||
7 | * Copyright(C) 2009 Jaswinder Singh Rajput | ||
8 | */ | ||
9 | |||
10 | /* Register flags */ | ||
11 | enum cpu_debug_bit { | ||
12 | /* Model Specific Registers (MSRs) */ | ||
13 | CPU_MC_BIT, /* Machine Check */ | ||
14 | CPU_MONITOR_BIT, /* Monitor */ | ||
15 | CPU_TIME_BIT, /* Time */ | ||
16 | CPU_PMC_BIT, /* Performance Monitor */ | ||
17 | CPU_PLATFORM_BIT, /* Platform */ | ||
18 | CPU_APIC_BIT, /* APIC */ | ||
19 | CPU_POWERON_BIT, /* Power-on */ | ||
20 | CPU_CONTROL_BIT, /* Control */ | ||
21 | CPU_FEATURES_BIT, /* Features control */ | ||
22 | CPU_LBRANCH_BIT, /* Last Branch */ | ||
23 | CPU_BIOS_BIT, /* BIOS */ | ||
24 | CPU_FREQ_BIT, /* Frequency */ | ||
25 | CPU_MTTR_BIT, /* MTRR */ | ||
26 | CPU_PERF_BIT, /* Performance */ | ||
27 | CPU_CACHE_BIT, /* Cache */ | ||
28 | CPU_SYSENTER_BIT, /* Sysenter */ | ||
29 | CPU_THERM_BIT, /* Thermal */ | ||
30 | CPU_MISC_BIT, /* Miscellaneous */ | ||
31 | CPU_DEBUG_BIT, /* Debug */ | ||
32 | CPU_PAT_BIT, /* PAT */ | ||
33 | CPU_VMX_BIT, /* VMX */ | ||
34 | CPU_CALL_BIT, /* System Call */ | ||
35 | CPU_BASE_BIT, /* BASE Address */ | ||
36 | CPU_VER_BIT, /* Version ID */ | ||
37 | CPU_CONF_BIT, /* Configuration */ | ||
38 | CPU_SMM_BIT, /* System mgmt mode */ | ||
39 | CPU_SVM_BIT, /*Secure Virtual Machine*/ | ||
40 | CPU_OSVM_BIT, /* OS-Visible Workaround*/ | ||
41 | /* Standard Registers */ | ||
42 | CPU_TSS_BIT, /* Task Stack Segment */ | ||
43 | CPU_CR_BIT, /* Control Registers */ | ||
44 | CPU_DT_BIT, /* Descriptor Table */ | ||
45 | /* End of Registers flags */ | ||
46 | CPU_REG_ALL_BIT, /* Select all Registers */ | ||
47 | }; | ||
48 | |||
49 | #define CPU_REG_ALL (~0) /* Select all Registers */ | ||
50 | |||
51 | #define CPU_MC (1 << CPU_MC_BIT) | ||
52 | #define CPU_MONITOR (1 << CPU_MONITOR_BIT) | ||
53 | #define CPU_TIME (1 << CPU_TIME_BIT) | ||
54 | #define CPU_PMC (1 << CPU_PMC_BIT) | ||
55 | #define CPU_PLATFORM (1 << CPU_PLATFORM_BIT) | ||
56 | #define CPU_APIC (1 << CPU_APIC_BIT) | ||
57 | #define CPU_POWERON (1 << CPU_POWERON_BIT) | ||
58 | #define CPU_CONTROL (1 << CPU_CONTROL_BIT) | ||
59 | #define CPU_FEATURES (1 << CPU_FEATURES_BIT) | ||
60 | #define CPU_LBRANCH (1 << CPU_LBRANCH_BIT) | ||
61 | #define CPU_BIOS (1 << CPU_BIOS_BIT) | ||
62 | #define CPU_FREQ (1 << CPU_FREQ_BIT) | ||
63 | #define CPU_MTRR (1 << CPU_MTTR_BIT) | ||
64 | #define CPU_PERF (1 << CPU_PERF_BIT) | ||
65 | #define CPU_CACHE (1 << CPU_CACHE_BIT) | ||
66 | #define CPU_SYSENTER (1 << CPU_SYSENTER_BIT) | ||
67 | #define CPU_THERM (1 << CPU_THERM_BIT) | ||
68 | #define CPU_MISC (1 << CPU_MISC_BIT) | ||
69 | #define CPU_DEBUG (1 << CPU_DEBUG_BIT) | ||
70 | #define CPU_PAT (1 << CPU_PAT_BIT) | ||
71 | #define CPU_VMX (1 << CPU_VMX_BIT) | ||
72 | #define CPU_CALL (1 << CPU_CALL_BIT) | ||
73 | #define CPU_BASE (1 << CPU_BASE_BIT) | ||
74 | #define CPU_VER (1 << CPU_VER_BIT) | ||
75 | #define CPU_CONF (1 << CPU_CONF_BIT) | ||
76 | #define CPU_SMM (1 << CPU_SMM_BIT) | ||
77 | #define CPU_SVM (1 << CPU_SVM_BIT) | ||
78 | #define CPU_OSVM (1 << CPU_OSVM_BIT) | ||
79 | #define CPU_TSS (1 << CPU_TSS_BIT) | ||
80 | #define CPU_CR (1 << CPU_CR_BIT) | ||
81 | #define CPU_DT (1 << CPU_DT_BIT) | ||
82 | |||
83 | /* Register file flags */ | ||
84 | enum cpu_file_bit { | ||
85 | CPU_INDEX_BIT, /* index */ | ||
86 | CPU_VALUE_BIT, /* value */ | ||
87 | }; | ||
88 | |||
89 | #define CPU_FILE_VALUE (1 << CPU_VALUE_BIT) | ||
90 | |||
91 | #define MAX_CPU_FILES 512 | ||
92 | |||
93 | struct cpu_private { | ||
94 | unsigned cpu; | ||
95 | unsigned type; | ||
96 | unsigned reg; | ||
97 | unsigned file; | ||
98 | }; | ||
99 | |||
100 | struct cpu_debug_base { | ||
101 | char *name; /* Register name */ | ||
102 | unsigned flag; /* Register flag */ | ||
103 | unsigned write; /* Register write flag */ | ||
104 | }; | ||
105 | |||
106 | /* | ||
107 | * Currently it looks similar to cpu_debug_base but once we add more files | ||
108 | * cpu_file_base will go in different direction | ||
109 | */ | ||
110 | struct cpu_file_base { | ||
111 | char *name; /* Register file name */ | ||
112 | unsigned flag; /* Register file flag */ | ||
113 | unsigned write; /* Register write flag */ | ||
114 | }; | ||
115 | |||
116 | struct cpu_cpuX_base { | ||
117 | struct dentry *dentry; /* Register dentry */ | ||
118 | int init; /* Register index file */ | ||
119 | }; | ||
120 | |||
121 | struct cpu_debug_range { | ||
122 | unsigned min; /* Register range min */ | ||
123 | unsigned max; /* Register range max */ | ||
124 | unsigned flag; /* Supported flags */ | ||
125 | }; | ||
126 | |||
127 | #endif /* _ASM_X86_CPU_DEBUG_H */ | ||
diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h index b4501ee223ad..f2ad2163109d 100644 --- a/arch/x86/include/asm/elf.h +++ b/arch/x86/include/asm/elf.h | |||
@@ -170,10 +170,7 @@ static inline void elf_common_init(struct thread_struct *t, | |||
170 | } | 170 | } |
171 | 171 | ||
172 | #define ELF_PLAT_INIT(_r, load_addr) \ | 172 | #define ELF_PLAT_INIT(_r, load_addr) \ |
173 | do { \ | 173 | elf_common_init(¤t->thread, _r, 0) |
174 | elf_common_init(¤t->thread, _r, 0); \ | ||
175 | clear_thread_flag(TIF_IA32); \ | ||
176 | } while (0) | ||
177 | 174 | ||
178 | #define COMPAT_ELF_PLAT_INIT(regs, load_addr) \ | 175 | #define COMPAT_ELF_PLAT_INIT(regs, load_addr) \ |
179 | elf_common_init(¤t->thread, regs, __USER_DS) | 176 | elf_common_init(¤t->thread, regs, __USER_DS) |
@@ -181,14 +178,8 @@ do { \ | |||
181 | void start_thread_ia32(struct pt_regs *regs, u32 new_ip, u32 new_sp); | 178 | void start_thread_ia32(struct pt_regs *regs, u32 new_ip, u32 new_sp); |
182 | #define compat_start_thread start_thread_ia32 | 179 | #define compat_start_thread start_thread_ia32 |
183 | 180 | ||
184 | #define COMPAT_SET_PERSONALITY(ex) \ | 181 | void set_personality_ia32(void); |
185 | do { \ | 182 | #define COMPAT_SET_PERSONALITY(ex) set_personality_ia32() |
186 | if (test_thread_flag(TIF_IA32)) \ | ||
187 | clear_thread_flag(TIF_ABI_PENDING); \ | ||
188 | else \ | ||
189 | set_thread_flag(TIF_ABI_PENDING); \ | ||
190 | current->personality |= force_personality32; \ | ||
191 | } while (0) | ||
192 | 183 | ||
193 | #define COMPAT_ELF_PLATFORM ("i686") | 184 | #define COMPAT_ELF_PLATFORM ("i686") |
194 | 185 | ||
diff --git a/arch/x86/include/asm/hpet.h b/arch/x86/include/asm/hpet.h index 5d89fd2a3690..1d5c08a1bdfd 100644 --- a/arch/x86/include/asm/hpet.h +++ b/arch/x86/include/asm/hpet.h | |||
@@ -67,6 +67,7 @@ extern unsigned long hpet_address; | |||
67 | extern unsigned long force_hpet_address; | 67 | extern unsigned long force_hpet_address; |
68 | extern u8 hpet_blockid; | 68 | extern u8 hpet_blockid; |
69 | extern int hpet_force_user; | 69 | extern int hpet_force_user; |
70 | extern u8 hpet_msi_disable; | ||
70 | extern int is_hpet_enabled(void); | 71 | extern int is_hpet_enabled(void); |
71 | extern int hpet_enable(void); | 72 | extern int hpet_enable(void); |
72 | extern void hpet_disable(void); | 73 | extern void hpet_disable(void); |
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h index c24ca9a56458..ef51b501e22a 100644 --- a/arch/x86/include/asm/microcode.h +++ b/arch/x86/include/asm/microcode.h | |||
@@ -12,8 +12,6 @@ struct device; | |||
12 | enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND }; | 12 | enum ucode_state { UCODE_ERROR, UCODE_OK, UCODE_NFOUND }; |
13 | 13 | ||
14 | struct microcode_ops { | 14 | struct microcode_ops { |
15 | void (*init)(struct device *device); | ||
16 | void (*fini)(void); | ||
17 | enum ucode_state (*request_microcode_user) (int cpu, | 15 | enum ucode_state (*request_microcode_user) (int cpu, |
18 | const void __user *buf, size_t size); | 16 | const void __user *buf, size_t size); |
19 | 17 | ||
diff --git a/arch/x86/include/asm/system.h b/arch/x86/include/asm/system.h index ecb544e65382..e04740f7a0bb 100644 --- a/arch/x86/include/asm/system.h +++ b/arch/x86/include/asm/system.h | |||
@@ -11,9 +11,9 @@ | |||
11 | #include <linux/irqflags.h> | 11 | #include <linux/irqflags.h> |
12 | 12 | ||
13 | /* entries in ARCH_DLINFO: */ | 13 | /* entries in ARCH_DLINFO: */ |
14 | #ifdef CONFIG_IA32_EMULATION | 14 | #if defined(CONFIG_IA32_EMULATION) || !defined(CONFIG_X86_64) |
15 | # define AT_VECTOR_SIZE_ARCH 2 | 15 | # define AT_VECTOR_SIZE_ARCH 2 |
16 | #else | 16 | #else /* else it's non-compat x86-64 */ |
17 | # define AT_VECTOR_SIZE_ARCH 1 | 17 | # define AT_VECTOR_SIZE_ARCH 1 |
18 | #endif | 18 | #endif |
19 | 19 | ||
diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h index 375c917c37d2..e0d28901e969 100644 --- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h | |||
@@ -87,7 +87,6 @@ struct thread_info { | |||
87 | #define TIF_NOTSC 16 /* TSC is not accessible in userland */ | 87 | #define TIF_NOTSC 16 /* TSC is not accessible in userland */ |
88 | #define TIF_IA32 17 /* 32bit process */ | 88 | #define TIF_IA32 17 /* 32bit process */ |
89 | #define TIF_FORK 18 /* ret_from_fork */ | 89 | #define TIF_FORK 18 /* ret_from_fork */ |
90 | #define TIF_ABI_PENDING 19 | ||
91 | #define TIF_MEMDIE 20 | 90 | #define TIF_MEMDIE 20 |
92 | #define TIF_DEBUG 21 /* uses debug registers */ | 91 | #define TIF_DEBUG 21 /* uses debug registers */ |
93 | #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ | 92 | #define TIF_IO_BITMAP 22 /* uses I/O bitmap */ |
@@ -112,7 +111,6 @@ struct thread_info { | |||
112 | #define _TIF_NOTSC (1 << TIF_NOTSC) | 111 | #define _TIF_NOTSC (1 << TIF_NOTSC) |
113 | #define _TIF_IA32 (1 << TIF_IA32) | 112 | #define _TIF_IA32 (1 << TIF_IA32) |
114 | #define _TIF_FORK (1 << TIF_FORK) | 113 | #define _TIF_FORK (1 << TIF_FORK) |
115 | #define _TIF_ABI_PENDING (1 << TIF_ABI_PENDING) | ||
116 | #define _TIF_DEBUG (1 << TIF_DEBUG) | 114 | #define _TIF_DEBUG (1 << TIF_DEBUG) |
117 | #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP) | 115 | #define _TIF_IO_BITMAP (1 << TIF_IO_BITMAP) |
118 | #define _TIF_FREEZE (1 << TIF_FREEZE) | 116 | #define _TIF_FREEZE (1 << TIF_FREEZE) |
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 036d28adf59d..0acbcdfa5ca4 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
@@ -1185,9 +1185,6 @@ static void __init acpi_process_madt(void) | |||
1185 | if (!error) { | 1185 | if (!error) { |
1186 | acpi_lapic = 1; | 1186 | acpi_lapic = 1; |
1187 | 1187 | ||
1188 | #ifdef CONFIG_X86_BIGSMP | ||
1189 | generic_bigsmp_probe(); | ||
1190 | #endif | ||
1191 | /* | 1188 | /* |
1192 | * Parse MADT IO-APIC entries | 1189 | * Parse MADT IO-APIC entries |
1193 | */ | 1190 | */ |
@@ -1197,8 +1194,6 @@ static void __init acpi_process_madt(void) | |||
1197 | acpi_ioapic = 1; | 1194 | acpi_ioapic = 1; |
1198 | 1195 | ||
1199 | smp_found_config = 1; | 1196 | smp_found_config = 1; |
1200 | if (apic->setup_apic_routing) | ||
1201 | apic->setup_apic_routing(); | ||
1202 | } | 1197 | } |
1203 | } | 1198 | } |
1204 | if (error == -EINVAL) { | 1199 | if (error == -EINVAL) { |
diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c index 23824fef789c..adb0ba025702 100644 --- a/arch/x86/kernel/amd_iommu.c +++ b/arch/x86/kernel/amd_iommu.c | |||
@@ -980,7 +980,7 @@ static int alloc_new_range(struct dma_ops_domain *dma_dom, | |||
980 | { | 980 | { |
981 | int index = dma_dom->aperture_size >> APERTURE_RANGE_SHIFT; | 981 | int index = dma_dom->aperture_size >> APERTURE_RANGE_SHIFT; |
982 | struct amd_iommu *iommu; | 982 | struct amd_iommu *iommu; |
983 | int i; | 983 | unsigned long i; |
984 | 984 | ||
985 | #ifdef CONFIG_IOMMU_STRESS | 985 | #ifdef CONFIG_IOMMU_STRESS |
986 | populate = false; | 986 | populate = false; |
@@ -1489,11 +1489,14 @@ static void __detach_device(struct device *dev) | |||
1489 | { | 1489 | { |
1490 | struct iommu_dev_data *dev_data = get_dev_data(dev); | 1490 | struct iommu_dev_data *dev_data = get_dev_data(dev); |
1491 | struct iommu_dev_data *alias_data; | 1491 | struct iommu_dev_data *alias_data; |
1492 | struct protection_domain *domain; | ||
1492 | unsigned long flags; | 1493 | unsigned long flags; |
1493 | 1494 | ||
1494 | BUG_ON(!dev_data->domain); | 1495 | BUG_ON(!dev_data->domain); |
1495 | 1496 | ||
1496 | spin_lock_irqsave(&dev_data->domain->lock, flags); | 1497 | domain = dev_data->domain; |
1498 | |||
1499 | spin_lock_irqsave(&domain->lock, flags); | ||
1497 | 1500 | ||
1498 | if (dev_data->alias != dev) { | 1501 | if (dev_data->alias != dev) { |
1499 | alias_data = get_dev_data(dev_data->alias); | 1502 | alias_data = get_dev_data(dev_data->alias); |
@@ -1504,13 +1507,15 @@ static void __detach_device(struct device *dev) | |||
1504 | if (atomic_dec_and_test(&dev_data->bind)) | 1507 | if (atomic_dec_and_test(&dev_data->bind)) |
1505 | do_detach(dev); | 1508 | do_detach(dev); |
1506 | 1509 | ||
1507 | spin_unlock_irqrestore(&dev_data->domain->lock, flags); | 1510 | spin_unlock_irqrestore(&domain->lock, flags); |
1508 | 1511 | ||
1509 | /* | 1512 | /* |
1510 | * If we run in passthrough mode the device must be assigned to the | 1513 | * If we run in passthrough mode the device must be assigned to the |
1511 | * passthrough domain if it is detached from any other domain | 1514 | * passthrough domain if it is detached from any other domain. |
1515 | * Make sure we can deassign from the pt_domain itself. | ||
1512 | */ | 1516 | */ |
1513 | if (iommu_pass_through && dev_data->domain == NULL) | 1517 | if (iommu_pass_through && |
1518 | (dev_data->domain == NULL && domain != pt_domain)) | ||
1514 | __attach_device(dev, pt_domain); | 1519 | __attach_device(dev, pt_domain); |
1515 | } | 1520 | } |
1516 | 1521 | ||
@@ -2218,6 +2223,12 @@ static struct dma_map_ops amd_iommu_dma_ops = { | |||
2218 | /* | 2223 | /* |
2219 | * The function which clues the AMD IOMMU driver into dma_ops. | 2224 | * The function which clues the AMD IOMMU driver into dma_ops. |
2220 | */ | 2225 | */ |
2226 | |||
2227 | void __init amd_iommu_init_api(void) | ||
2228 | { | ||
2229 | register_iommu(&amd_iommu_ops); | ||
2230 | } | ||
2231 | |||
2221 | int __init amd_iommu_init_dma_ops(void) | 2232 | int __init amd_iommu_init_dma_ops(void) |
2222 | { | 2233 | { |
2223 | struct amd_iommu *iommu; | 2234 | struct amd_iommu *iommu; |
@@ -2253,8 +2264,6 @@ int __init amd_iommu_init_dma_ops(void) | |||
2253 | /* Make the driver finally visible to the drivers */ | 2264 | /* Make the driver finally visible to the drivers */ |
2254 | dma_ops = &amd_iommu_dma_ops; | 2265 | dma_ops = &amd_iommu_dma_ops; |
2255 | 2266 | ||
2256 | register_iommu(&amd_iommu_ops); | ||
2257 | |||
2258 | amd_iommu_stats_init(); | 2267 | amd_iommu_stats_init(); |
2259 | 2268 | ||
2260 | return 0; | 2269 | return 0; |
diff --git a/arch/x86/kernel/amd_iommu_init.c b/arch/x86/kernel/amd_iommu_init.c index fb490ce7dd55..9dc91b431470 100644 --- a/arch/x86/kernel/amd_iommu_init.c +++ b/arch/x86/kernel/amd_iommu_init.c | |||
@@ -1292,9 +1292,12 @@ static int __init amd_iommu_init(void) | |||
1292 | ret = amd_iommu_init_passthrough(); | 1292 | ret = amd_iommu_init_passthrough(); |
1293 | else | 1293 | else |
1294 | ret = amd_iommu_init_dma_ops(); | 1294 | ret = amd_iommu_init_dma_ops(); |
1295 | |||
1295 | if (ret) | 1296 | if (ret) |
1296 | goto free; | 1297 | goto free; |
1297 | 1298 | ||
1299 | amd_iommu_init_api(); | ||
1300 | |||
1298 | amd_iommu_init_notifier(); | 1301 | amd_iommu_init_notifier(); |
1299 | 1302 | ||
1300 | enable_iommus(); | 1303 | enable_iommus(); |
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 3987e4408f75..dfca210f6a10 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c | |||
@@ -1641,9 +1641,7 @@ int __init APIC_init_uniprocessor(void) | |||
1641 | #endif | 1641 | #endif |
1642 | 1642 | ||
1643 | enable_IR_x2apic(); | 1643 | enable_IR_x2apic(); |
1644 | #ifdef CONFIG_X86_64 | ||
1645 | default_setup_apic_routing(); | 1644 | default_setup_apic_routing(); |
1646 | #endif | ||
1647 | 1645 | ||
1648 | verify_local_APIC(); | 1646 | verify_local_APIC(); |
1649 | connect_bsp_APIC(); | 1647 | connect_bsp_APIC(); |
@@ -1891,21 +1889,6 @@ void __cpuinit generic_processor_info(int apicid, int version) | |||
1891 | if (apicid > max_physical_apicid) | 1889 | if (apicid > max_physical_apicid) |
1892 | max_physical_apicid = apicid; | 1890 | max_physical_apicid = apicid; |
1893 | 1891 | ||
1894 | #ifdef CONFIG_X86_32 | ||
1895 | if (num_processors > 8) { | ||
1896 | switch (boot_cpu_data.x86_vendor) { | ||
1897 | case X86_VENDOR_INTEL: | ||
1898 | if (!APIC_XAPIC(version)) { | ||
1899 | def_to_bigsmp = 0; | ||
1900 | break; | ||
1901 | } | ||
1902 | /* If P4 and above fall through */ | ||
1903 | case X86_VENDOR_AMD: | ||
1904 | def_to_bigsmp = 1; | ||
1905 | } | ||
1906 | } | ||
1907 | #endif | ||
1908 | |||
1909 | #if defined(CONFIG_SMP) || defined(CONFIG_X86_64) | 1892 | #if defined(CONFIG_SMP) || defined(CONFIG_X86_64) |
1910 | early_per_cpu(x86_cpu_to_apicid, cpu) = apicid; | 1893 | early_per_cpu(x86_cpu_to_apicid, cpu) = apicid; |
1911 | early_per_cpu(x86_bios_cpu_apicid, cpu) = apicid; | 1894 | early_per_cpu(x86_bios_cpu_apicid, cpu) = apicid; |
diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c index 1a6559f6768c..99d2fe016084 100644 --- a/arch/x86/kernel/apic/probe_32.c +++ b/arch/x86/kernel/apic/probe_32.c | |||
@@ -52,7 +52,32 @@ static int __init print_ipi_mode(void) | |||
52 | } | 52 | } |
53 | late_initcall(print_ipi_mode); | 53 | late_initcall(print_ipi_mode); |
54 | 54 | ||
55 | void default_setup_apic_routing(void) | 55 | void __init default_setup_apic_routing(void) |
56 | { | ||
57 | int version = apic_version[boot_cpu_physical_apicid]; | ||
58 | |||
59 | if (num_possible_cpus() > 8) { | ||
60 | switch (boot_cpu_data.x86_vendor) { | ||
61 | case X86_VENDOR_INTEL: | ||
62 | if (!APIC_XAPIC(version)) { | ||
63 | def_to_bigsmp = 0; | ||
64 | break; | ||
65 | } | ||
66 | /* If P4 and above fall through */ | ||
67 | case X86_VENDOR_AMD: | ||
68 | def_to_bigsmp = 1; | ||
69 | } | ||
70 | } | ||
71 | |||
72 | #ifdef CONFIG_X86_BIGSMP | ||
73 | generic_bigsmp_probe(); | ||
74 | #endif | ||
75 | |||
76 | if (apic->setup_apic_routing) | ||
77 | apic->setup_apic_routing(); | ||
78 | } | ||
79 | |||
80 | static void setup_apic_flat_routing(void) | ||
56 | { | 81 | { |
57 | #ifdef CONFIG_X86_IO_APIC | 82 | #ifdef CONFIG_X86_IO_APIC |
58 | printk(KERN_INFO | 83 | printk(KERN_INFO |
@@ -103,7 +128,7 @@ struct apic apic_default = { | |||
103 | .init_apic_ldr = default_init_apic_ldr, | 128 | .init_apic_ldr = default_init_apic_ldr, |
104 | 129 | ||
105 | .ioapic_phys_id_map = default_ioapic_phys_id_map, | 130 | .ioapic_phys_id_map = default_ioapic_phys_id_map, |
106 | .setup_apic_routing = default_setup_apic_routing, | 131 | .setup_apic_routing = setup_apic_flat_routing, |
107 | .multi_timer_check = NULL, | 132 | .multi_timer_check = NULL, |
108 | .apicid_to_node = default_apicid_to_node, | 133 | .apicid_to_node = default_apicid_to_node, |
109 | .cpu_to_logical_apicid = default_cpu_to_logical_apicid, | 134 | .cpu_to_logical_apicid = default_cpu_to_logical_apicid, |
diff --git a/arch/x86/kernel/apic/probe_64.c b/arch/x86/kernel/apic/probe_64.c index 450fe2064a14..83e9be4778e2 100644 --- a/arch/x86/kernel/apic/probe_64.c +++ b/arch/x86/kernel/apic/probe_64.c | |||
@@ -67,7 +67,7 @@ void __init default_setup_apic_routing(void) | |||
67 | } | 67 | } |
68 | #endif | 68 | #endif |
69 | 69 | ||
70 | if (apic == &apic_flat && num_processors > 8) | 70 | if (apic == &apic_flat && num_possible_cpus() > 8) |
71 | apic = &apic_physflat; | 71 | apic = &apic_physflat; |
72 | 72 | ||
73 | printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); | 73 | printk(KERN_INFO "Setting APIC routing to %s\n", apic->name); |
diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile index 1d2cb383410e..c202b62f3671 100644 --- a/arch/x86/kernel/cpu/Makefile +++ b/arch/x86/kernel/cpu/Makefile | |||
@@ -19,8 +19,6 @@ obj-y += vmware.o hypervisor.o sched.o | |||
19 | obj-$(CONFIG_X86_32) += bugs.o cmpxchg.o | 19 | obj-$(CONFIG_X86_32) += bugs.o cmpxchg.o |
20 | obj-$(CONFIG_X86_64) += bugs_64.o | 20 | obj-$(CONFIG_X86_64) += bugs_64.o |
21 | 21 | ||
22 | obj-$(CONFIG_X86_CPU_DEBUG) += cpu_debug.o | ||
23 | |||
24 | obj-$(CONFIG_CPU_SUP_INTEL) += intel.o | 22 | obj-$(CONFIG_CPU_SUP_INTEL) += intel.o |
25 | obj-$(CONFIG_CPU_SUP_AMD) += amd.o | 23 | obj-$(CONFIG_CPU_SUP_AMD) += amd.o |
26 | obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o | 24 | obj-$(CONFIG_CPU_SUP_CYRIX_32) += cyrix.o |
diff --git a/arch/x86/kernel/cpu/cpu_debug.c b/arch/x86/kernel/cpu/cpu_debug.c deleted file mode 100644 index b368cd862997..000000000000 --- a/arch/x86/kernel/cpu/cpu_debug.c +++ /dev/null | |||
@@ -1,688 +0,0 @@ | |||
1 | /* | ||
2 | * CPU x86 architecture debug code | ||
3 | * | ||
4 | * Copyright(C) 2009 Jaswinder Singh Rajput | ||
5 | * | ||
6 | * For licencing details see kernel-base/COPYING | ||
7 | */ | ||
8 | |||
9 | #include <linux/interrupt.h> | ||
10 | #include <linux/compiler.h> | ||
11 | #include <linux/seq_file.h> | ||
12 | #include <linux/debugfs.h> | ||
13 | #include <linux/kprobes.h> | ||
14 | #include <linux/uaccess.h> | ||
15 | #include <linux/kernel.h> | ||
16 | #include <linux/module.h> | ||
17 | #include <linux/percpu.h> | ||
18 | #include <linux/signal.h> | ||
19 | #include <linux/errno.h> | ||
20 | #include <linux/sched.h> | ||
21 | #include <linux/types.h> | ||
22 | #include <linux/init.h> | ||
23 | #include <linux/slab.h> | ||
24 | #include <linux/smp.h> | ||
25 | |||
26 | #include <asm/cpu_debug.h> | ||
27 | #include <asm/paravirt.h> | ||
28 | #include <asm/system.h> | ||
29 | #include <asm/traps.h> | ||
30 | #include <asm/apic.h> | ||
31 | #include <asm/desc.h> | ||
32 | |||
33 | static DEFINE_PER_CPU(struct cpu_cpuX_base [CPU_REG_ALL_BIT], cpud_arr); | ||
34 | static DEFINE_PER_CPU(struct cpu_private * [MAX_CPU_FILES], cpud_priv_arr); | ||
35 | static DEFINE_PER_CPU(int, cpud_priv_count); | ||
36 | |||
37 | static DEFINE_MUTEX(cpu_debug_lock); | ||
38 | |||
39 | static struct dentry *cpu_debugfs_dir; | ||
40 | |||
41 | static struct cpu_debug_base cpu_base[] = { | ||
42 | { "mc", CPU_MC, 0 }, | ||
43 | { "monitor", CPU_MONITOR, 0 }, | ||
44 | { "time", CPU_TIME, 0 }, | ||
45 | { "pmc", CPU_PMC, 1 }, | ||
46 | { "platform", CPU_PLATFORM, 0 }, | ||
47 | { "apic", CPU_APIC, 0 }, | ||
48 | { "poweron", CPU_POWERON, 0 }, | ||
49 | { "control", CPU_CONTROL, 0 }, | ||
50 | { "features", CPU_FEATURES, 0 }, | ||
51 | { "lastbranch", CPU_LBRANCH, 0 }, | ||
52 | { "bios", CPU_BIOS, 0 }, | ||
53 | { "freq", CPU_FREQ, 0 }, | ||
54 | { "mtrr", CPU_MTRR, 0 }, | ||
55 | { "perf", CPU_PERF, 0 }, | ||
56 | { "cache", CPU_CACHE, 0 }, | ||
57 | { "sysenter", CPU_SYSENTER, 0 }, | ||
58 | { "therm", CPU_THERM, 0 }, | ||
59 | { "misc", CPU_MISC, 0 }, | ||
60 | { "debug", CPU_DEBUG, 0 }, | ||
61 | { "pat", CPU_PAT, 0 }, | ||
62 | { "vmx", CPU_VMX, 0 }, | ||
63 | { "call", CPU_CALL, 0 }, | ||
64 | { "base", CPU_BASE, 0 }, | ||
65 | { "ver", CPU_VER, 0 }, | ||
66 | { "conf", CPU_CONF, 0 }, | ||
67 | { "smm", CPU_SMM, 0 }, | ||
68 | { "svm", CPU_SVM, 0 }, | ||
69 | { "osvm", CPU_OSVM, 0 }, | ||
70 | { "tss", CPU_TSS, 0 }, | ||
71 | { "cr", CPU_CR, 0 }, | ||
72 | { "dt", CPU_DT, 0 }, | ||
73 | { "registers", CPU_REG_ALL, 0 }, | ||
74 | }; | ||
75 | |||
76 | static struct cpu_file_base cpu_file[] = { | ||
77 | { "index", CPU_REG_ALL, 0 }, | ||
78 | { "value", CPU_REG_ALL, 1 }, | ||
79 | }; | ||
80 | |||
81 | /* CPU Registers Range */ | ||
82 | static struct cpu_debug_range cpu_reg_range[] = { | ||
83 | { 0x00000000, 0x00000001, CPU_MC, }, | ||
84 | { 0x00000006, 0x00000007, CPU_MONITOR, }, | ||
85 | { 0x00000010, 0x00000010, CPU_TIME, }, | ||
86 | { 0x00000011, 0x00000013, CPU_PMC, }, | ||
87 | { 0x00000017, 0x00000017, CPU_PLATFORM, }, | ||
88 | { 0x0000001B, 0x0000001B, CPU_APIC, }, | ||
89 | { 0x0000002A, 0x0000002B, CPU_POWERON, }, | ||
90 | { 0x0000002C, 0x0000002C, CPU_FREQ, }, | ||
91 | { 0x0000003A, 0x0000003A, CPU_CONTROL, }, | ||
92 | { 0x00000040, 0x00000047, CPU_LBRANCH, }, | ||
93 | { 0x00000060, 0x00000067, CPU_LBRANCH, }, | ||
94 | { 0x00000079, 0x00000079, CPU_BIOS, }, | ||
95 | { 0x00000088, 0x0000008A, CPU_CACHE, }, | ||
96 | { 0x0000008B, 0x0000008B, CPU_BIOS, }, | ||
97 | { 0x0000009B, 0x0000009B, CPU_MONITOR, }, | ||
98 | { 0x000000C1, 0x000000C4, CPU_PMC, }, | ||
99 | { 0x000000CD, 0x000000CD, CPU_FREQ, }, | ||
100 | { 0x000000E7, 0x000000E8, CPU_PERF, }, | ||
101 | { 0x000000FE, 0x000000FE, CPU_MTRR, }, | ||
102 | |||
103 | { 0x00000116, 0x0000011E, CPU_CACHE, }, | ||
104 | { 0x00000174, 0x00000176, CPU_SYSENTER, }, | ||
105 | { 0x00000179, 0x0000017B, CPU_MC, }, | ||
106 | { 0x00000186, 0x00000189, CPU_PMC, }, | ||
107 | { 0x00000198, 0x00000199, CPU_PERF, }, | ||
108 | { 0x0000019A, 0x0000019A, CPU_TIME, }, | ||
109 | { 0x0000019B, 0x0000019D, CPU_THERM, }, | ||
110 | { 0x000001A0, 0x000001A0, CPU_MISC, }, | ||
111 | { 0x000001C9, 0x000001C9, CPU_LBRANCH, }, | ||
112 | { 0x000001D7, 0x000001D8, CPU_LBRANCH, }, | ||
113 | { 0x000001D9, 0x000001D9, CPU_DEBUG, }, | ||
114 | { 0x000001DA, 0x000001E0, CPU_LBRANCH, }, | ||
115 | |||
116 | { 0x00000200, 0x0000020F, CPU_MTRR, }, | ||
117 | { 0x00000250, 0x00000250, CPU_MTRR, }, | ||
118 | { 0x00000258, 0x00000259, CPU_MTRR, }, | ||
119 | { 0x00000268, 0x0000026F, CPU_MTRR, }, | ||
120 | { 0x00000277, 0x00000277, CPU_PAT, }, | ||
121 | { 0x000002FF, 0x000002FF, CPU_MTRR, }, | ||
122 | |||
123 | { 0x00000300, 0x00000311, CPU_PMC, }, | ||
124 | { 0x00000345, 0x00000345, CPU_PMC, }, | ||
125 | { 0x00000360, 0x00000371, CPU_PMC, }, | ||
126 | { 0x0000038D, 0x00000390, CPU_PMC, }, | ||
127 | { 0x000003A0, 0x000003BE, CPU_PMC, }, | ||
128 | { 0x000003C0, 0x000003CD, CPU_PMC, }, | ||
129 | { 0x000003E0, 0x000003E1, CPU_PMC, }, | ||
130 | { 0x000003F0, 0x000003F2, CPU_PMC, }, | ||
131 | |||
132 | { 0x00000400, 0x00000417, CPU_MC, }, | ||
133 | { 0x00000480, 0x0000048B, CPU_VMX, }, | ||
134 | |||
135 | { 0x00000600, 0x00000600, CPU_DEBUG, }, | ||
136 | { 0x00000680, 0x0000068F, CPU_LBRANCH, }, | ||
137 | { 0x000006C0, 0x000006CF, CPU_LBRANCH, }, | ||
138 | |||
139 | { 0x000107CC, 0x000107D3, CPU_PMC, }, | ||
140 | |||
141 | { 0xC0000080, 0xC0000080, CPU_FEATURES, }, | ||
142 | { 0xC0000081, 0xC0000084, CPU_CALL, }, | ||
143 | { 0xC0000100, 0xC0000102, CPU_BASE, }, | ||
144 | { 0xC0000103, 0xC0000103, CPU_TIME, }, | ||
145 | |||
146 | { 0xC0010000, 0xC0010007, CPU_PMC, }, | ||
147 | { 0xC0010010, 0xC0010010, CPU_CONF, }, | ||
148 | { 0xC0010015, 0xC0010015, CPU_CONF, }, | ||
149 | { 0xC0010016, 0xC001001A, CPU_MTRR, }, | ||
150 | { 0xC001001D, 0xC001001D, CPU_MTRR, }, | ||
151 | { 0xC001001F, 0xC001001F, CPU_CONF, }, | ||
152 | { 0xC0010030, 0xC0010035, CPU_BIOS, }, | ||
153 | { 0xC0010044, 0xC0010048, CPU_MC, }, | ||
154 | { 0xC0010050, 0xC0010056, CPU_SMM, }, | ||
155 | { 0xC0010058, 0xC0010058, CPU_CONF, }, | ||
156 | { 0xC0010060, 0xC0010060, CPU_CACHE, }, | ||
157 | { 0xC0010061, 0xC0010068, CPU_SMM, }, | ||
158 | { 0xC0010069, 0xC001006B, CPU_SMM, }, | ||
159 | { 0xC0010070, 0xC0010071, CPU_SMM, }, | ||
160 | { 0xC0010111, 0xC0010113, CPU_SMM, }, | ||
161 | { 0xC0010114, 0xC0010118, CPU_SVM, }, | ||
162 | { 0xC0010140, 0xC0010141, CPU_OSVM, }, | ||
163 | { 0xC0011022, 0xC0011023, CPU_CONF, }, | ||
164 | }; | ||
165 | |||
166 | static int is_typeflag_valid(unsigned cpu, unsigned flag) | ||
167 | { | ||
168 | int i; | ||
169 | |||
170 | /* Standard Registers should be always valid */ | ||
171 | if (flag >= CPU_TSS) | ||
172 | return 1; | ||
173 | |||
174 | for (i = 0; i < ARRAY_SIZE(cpu_reg_range); i++) { | ||
175 | if (cpu_reg_range[i].flag == flag) | ||
176 | return 1; | ||
177 | } | ||
178 | |||
179 | /* Invalid */ | ||
180 | return 0; | ||
181 | } | ||
182 | |||
183 | static unsigned get_cpu_range(unsigned cpu, unsigned *min, unsigned *max, | ||
184 | int index, unsigned flag) | ||
185 | { | ||
186 | if (cpu_reg_range[index].flag == flag) { | ||
187 | *min = cpu_reg_range[index].min; | ||
188 | *max = cpu_reg_range[index].max; | ||
189 | } else | ||
190 | *max = 0; | ||
191 | |||
192 | return *max; | ||
193 | } | ||
194 | |||
195 | /* This function can also be called with seq = NULL for printk */ | ||
196 | static void print_cpu_data(struct seq_file *seq, unsigned type, | ||
197 | u32 low, u32 high) | ||
198 | { | ||
199 | struct cpu_private *priv; | ||
200 | u64 val = high; | ||
201 | |||
202 | if (seq) { | ||
203 | priv = seq->private; | ||
204 | if (priv->file) { | ||
205 | val = (val << 32) | low; | ||
206 | seq_printf(seq, "0x%llx\n", val); | ||
207 | } else | ||
208 | seq_printf(seq, " %08x: %08x_%08x\n", | ||
209 | type, high, low); | ||
210 | } else | ||
211 | printk(KERN_INFO " %08x: %08x_%08x\n", type, high, low); | ||
212 | } | ||
213 | |||
214 | /* This function can also be called with seq = NULL for printk */ | ||
215 | static void print_msr(struct seq_file *seq, unsigned cpu, unsigned flag) | ||
216 | { | ||
217 | unsigned msr, msr_min, msr_max; | ||
218 | struct cpu_private *priv; | ||
219 | u32 low, high; | ||
220 | int i; | ||
221 | |||
222 | if (seq) { | ||
223 | priv = seq->private; | ||
224 | if (priv->file) { | ||
225 | if (!rdmsr_safe_on_cpu(priv->cpu, priv->reg, | ||
226 | &low, &high)) | ||
227 | print_cpu_data(seq, priv->reg, low, high); | ||
228 | return; | ||
229 | } | ||
230 | } | ||
231 | |||
232 | for (i = 0; i < ARRAY_SIZE(cpu_reg_range); i++) { | ||
233 | if (!get_cpu_range(cpu, &msr_min, &msr_max, i, flag)) | ||
234 | continue; | ||
235 | |||
236 | for (msr = msr_min; msr <= msr_max; msr++) { | ||
237 | if (rdmsr_safe_on_cpu(cpu, msr, &low, &high)) | ||
238 | continue; | ||
239 | print_cpu_data(seq, msr, low, high); | ||
240 | } | ||
241 | } | ||
242 | } | ||
243 | |||
244 | static void print_tss(void *arg) | ||
245 | { | ||
246 | struct pt_regs *regs = task_pt_regs(current); | ||
247 | struct seq_file *seq = arg; | ||
248 | unsigned int seg; | ||
249 | |||
250 | seq_printf(seq, " RAX\t: %016lx\n", regs->ax); | ||
251 | seq_printf(seq, " RBX\t: %016lx\n", regs->bx); | ||
252 | seq_printf(seq, " RCX\t: %016lx\n", regs->cx); | ||
253 | seq_printf(seq, " RDX\t: %016lx\n", regs->dx); | ||
254 | |||
255 | seq_printf(seq, " RSI\t: %016lx\n", regs->si); | ||
256 | seq_printf(seq, " RDI\t: %016lx\n", regs->di); | ||
257 | seq_printf(seq, " RBP\t: %016lx\n", regs->bp); | ||
258 | seq_printf(seq, " ESP\t: %016lx\n", regs->sp); | ||
259 | |||
260 | #ifdef CONFIG_X86_64 | ||
261 | seq_printf(seq, " R08\t: %016lx\n", regs->r8); | ||
262 | seq_printf(seq, " R09\t: %016lx\n", regs->r9); | ||
263 | seq_printf(seq, " R10\t: %016lx\n", regs->r10); | ||
264 | seq_printf(seq, " R11\t: %016lx\n", regs->r11); | ||
265 | seq_printf(seq, " R12\t: %016lx\n", regs->r12); | ||
266 | seq_printf(seq, " R13\t: %016lx\n", regs->r13); | ||
267 | seq_printf(seq, " R14\t: %016lx\n", regs->r14); | ||
268 | seq_printf(seq, " R15\t: %016lx\n", regs->r15); | ||
269 | #endif | ||
270 | |||
271 | asm("movl %%cs,%0" : "=r" (seg)); | ||
272 | seq_printf(seq, " CS\t: %04x\n", seg); | ||
273 | asm("movl %%ds,%0" : "=r" (seg)); | ||
274 | seq_printf(seq, " DS\t: %04x\n", seg); | ||
275 | seq_printf(seq, " SS\t: %04lx\n", regs->ss & 0xffff); | ||
276 | asm("movl %%es,%0" : "=r" (seg)); | ||
277 | seq_printf(seq, " ES\t: %04x\n", seg); | ||
278 | asm("movl %%fs,%0" : "=r" (seg)); | ||
279 | seq_printf(seq, " FS\t: %04x\n", seg); | ||
280 | asm("movl %%gs,%0" : "=r" (seg)); | ||
281 | seq_printf(seq, " GS\t: %04x\n", seg); | ||
282 | |||
283 | seq_printf(seq, " EFLAGS\t: %016lx\n", regs->flags); | ||
284 | |||
285 | seq_printf(seq, " EIP\t: %016lx\n", regs->ip); | ||
286 | } | ||
287 | |||
288 | static void print_cr(void *arg) | ||
289 | { | ||
290 | struct seq_file *seq = arg; | ||
291 | |||
292 | seq_printf(seq, " cr0\t: %016lx\n", read_cr0()); | ||
293 | seq_printf(seq, " cr2\t: %016lx\n", read_cr2()); | ||
294 | seq_printf(seq, " cr3\t: %016lx\n", read_cr3()); | ||
295 | seq_printf(seq, " cr4\t: %016lx\n", read_cr4_safe()); | ||
296 | #ifdef CONFIG_X86_64 | ||
297 | seq_printf(seq, " cr8\t: %016lx\n", read_cr8()); | ||
298 | #endif | ||
299 | } | ||
300 | |||
301 | static void print_desc_ptr(char *str, struct seq_file *seq, struct desc_ptr dt) | ||
302 | { | ||
303 | seq_printf(seq, " %s\t: %016llx\n", str, (u64)(dt.address | dt.size)); | ||
304 | } | ||
305 | |||
306 | static void print_dt(void *seq) | ||
307 | { | ||
308 | struct desc_ptr dt; | ||
309 | unsigned long ldt; | ||
310 | |||
311 | /* IDT */ | ||
312 | store_idt((struct desc_ptr *)&dt); | ||
313 | print_desc_ptr("IDT", seq, dt); | ||
314 | |||
315 | /* GDT */ | ||
316 | store_gdt((struct desc_ptr *)&dt); | ||
317 | print_desc_ptr("GDT", seq, dt); | ||
318 | |||
319 | /* LDT */ | ||
320 | store_ldt(ldt); | ||
321 | seq_printf(seq, " LDT\t: %016lx\n", ldt); | ||
322 | |||
323 | /* TR */ | ||
324 | store_tr(ldt); | ||
325 | seq_printf(seq, " TR\t: %016lx\n", ldt); | ||
326 | } | ||
327 | |||
328 | static void print_dr(void *arg) | ||
329 | { | ||
330 | struct seq_file *seq = arg; | ||
331 | unsigned long dr; | ||
332 | int i; | ||
333 | |||
334 | for (i = 0; i < 8; i++) { | ||
335 | /* Ignore db4, db5 */ | ||
336 | if ((i == 4) || (i == 5)) | ||
337 | continue; | ||
338 | get_debugreg(dr, i); | ||
339 | seq_printf(seq, " dr%d\t: %016lx\n", i, dr); | ||
340 | } | ||
341 | |||
342 | seq_printf(seq, "\n MSR\t:\n"); | ||
343 | } | ||
344 | |||
345 | static void print_apic(void *arg) | ||
346 | { | ||
347 | struct seq_file *seq = arg; | ||
348 | |||
349 | #ifdef CONFIG_X86_LOCAL_APIC | ||
350 | seq_printf(seq, " LAPIC\t:\n"); | ||
351 | seq_printf(seq, " ID\t\t: %08x\n", apic_read(APIC_ID) >> 24); | ||
352 | seq_printf(seq, " LVR\t\t: %08x\n", apic_read(APIC_LVR)); | ||
353 | seq_printf(seq, " TASKPRI\t: %08x\n", apic_read(APIC_TASKPRI)); | ||
354 | seq_printf(seq, " ARBPRI\t\t: %08x\n", apic_read(APIC_ARBPRI)); | ||
355 | seq_printf(seq, " PROCPRI\t: %08x\n", apic_read(APIC_PROCPRI)); | ||
356 | seq_printf(seq, " LDR\t\t: %08x\n", apic_read(APIC_LDR)); | ||
357 | seq_printf(seq, " DFR\t\t: %08x\n", apic_read(APIC_DFR)); | ||
358 | seq_printf(seq, " SPIV\t\t: %08x\n", apic_read(APIC_SPIV)); | ||
359 | seq_printf(seq, " ISR\t\t: %08x\n", apic_read(APIC_ISR)); | ||
360 | seq_printf(seq, " ESR\t\t: %08x\n", apic_read(APIC_ESR)); | ||
361 | seq_printf(seq, " ICR\t\t: %08x\n", apic_read(APIC_ICR)); | ||
362 | seq_printf(seq, " ICR2\t\t: %08x\n", apic_read(APIC_ICR2)); | ||
363 | seq_printf(seq, " LVTT\t\t: %08x\n", apic_read(APIC_LVTT)); | ||
364 | seq_printf(seq, " LVTTHMR\t: %08x\n", apic_read(APIC_LVTTHMR)); | ||
365 | seq_printf(seq, " LVTPC\t\t: %08x\n", apic_read(APIC_LVTPC)); | ||
366 | seq_printf(seq, " LVT0\t\t: %08x\n", apic_read(APIC_LVT0)); | ||
367 | seq_printf(seq, " LVT1\t\t: %08x\n", apic_read(APIC_LVT1)); | ||
368 | seq_printf(seq, " LVTERR\t\t: %08x\n", apic_read(APIC_LVTERR)); | ||
369 | seq_printf(seq, " TMICT\t\t: %08x\n", apic_read(APIC_TMICT)); | ||
370 | seq_printf(seq, " TMCCT\t\t: %08x\n", apic_read(APIC_TMCCT)); | ||
371 | seq_printf(seq, " TDCR\t\t: %08x\n", apic_read(APIC_TDCR)); | ||
372 | if (boot_cpu_has(X86_FEATURE_EXTAPIC)) { | ||
373 | unsigned int i, v, maxeilvt; | ||
374 | |||
375 | v = apic_read(APIC_EFEAT); | ||
376 | maxeilvt = (v >> 16) & 0xff; | ||
377 | seq_printf(seq, " EFEAT\t\t: %08x\n", v); | ||
378 | seq_printf(seq, " ECTRL\t\t: %08x\n", apic_read(APIC_ECTRL)); | ||
379 | |||
380 | for (i = 0; i < maxeilvt; i++) { | ||
381 | v = apic_read(APIC_EILVTn(i)); | ||
382 | seq_printf(seq, " EILVT%d\t\t: %08x\n", i, v); | ||
383 | } | ||
384 | } | ||
385 | #endif /* CONFIG_X86_LOCAL_APIC */ | ||
386 | seq_printf(seq, "\n MSR\t:\n"); | ||
387 | } | ||
388 | |||
389 | static int cpu_seq_show(struct seq_file *seq, void *v) | ||
390 | { | ||
391 | struct cpu_private *priv = seq->private; | ||
392 | |||
393 | if (priv == NULL) | ||
394 | return -EINVAL; | ||
395 | |||
396 | switch (cpu_base[priv->type].flag) { | ||
397 | case CPU_TSS: | ||
398 | smp_call_function_single(priv->cpu, print_tss, seq, 1); | ||
399 | break; | ||
400 | case CPU_CR: | ||
401 | smp_call_function_single(priv->cpu, print_cr, seq, 1); | ||
402 | break; | ||
403 | case CPU_DT: | ||
404 | smp_call_function_single(priv->cpu, print_dt, seq, 1); | ||
405 | break; | ||
406 | case CPU_DEBUG: | ||
407 | if (priv->file == CPU_INDEX_BIT) | ||
408 | smp_call_function_single(priv->cpu, print_dr, seq, 1); | ||
409 | print_msr(seq, priv->cpu, cpu_base[priv->type].flag); | ||
410 | break; | ||
411 | case CPU_APIC: | ||
412 | if (priv->file == CPU_INDEX_BIT) | ||
413 | smp_call_function_single(priv->cpu, print_apic, seq, 1); | ||
414 | print_msr(seq, priv->cpu, cpu_base[priv->type].flag); | ||
415 | break; | ||
416 | |||
417 | default: | ||
418 | print_msr(seq, priv->cpu, cpu_base[priv->type].flag); | ||
419 | break; | ||
420 | } | ||
421 | seq_printf(seq, "\n"); | ||
422 | |||
423 | return 0; | ||
424 | } | ||
425 | |||
426 | static void *cpu_seq_start(struct seq_file *seq, loff_t *pos) | ||
427 | { | ||
428 | if (*pos == 0) /* One time is enough ;-) */ | ||
429 | return seq; | ||
430 | |||
431 | return NULL; | ||
432 | } | ||
433 | |||
434 | static void *cpu_seq_next(struct seq_file *seq, void *v, loff_t *pos) | ||
435 | { | ||
436 | (*pos)++; | ||
437 | |||
438 | return cpu_seq_start(seq, pos); | ||
439 | } | ||
440 | |||
441 | static void cpu_seq_stop(struct seq_file *seq, void *v) | ||
442 | { | ||
443 | } | ||
444 | |||
445 | static const struct seq_operations cpu_seq_ops = { | ||
446 | .start = cpu_seq_start, | ||
447 | .next = cpu_seq_next, | ||
448 | .stop = cpu_seq_stop, | ||
449 | .show = cpu_seq_show, | ||
450 | }; | ||
451 | |||
452 | static int cpu_seq_open(struct inode *inode, struct file *file) | ||
453 | { | ||
454 | struct cpu_private *priv = inode->i_private; | ||
455 | struct seq_file *seq; | ||
456 | int err; | ||
457 | |||
458 | err = seq_open(file, &cpu_seq_ops); | ||
459 | if (!err) { | ||
460 | seq = file->private_data; | ||
461 | seq->private = priv; | ||
462 | } | ||
463 | |||
464 | return err; | ||
465 | } | ||
466 | |||
467 | static int write_msr(struct cpu_private *priv, u64 val) | ||
468 | { | ||
469 | u32 low, high; | ||
470 | |||
471 | high = (val >> 32) & 0xffffffff; | ||
472 | low = val & 0xffffffff; | ||
473 | |||
474 | if (!wrmsr_safe_on_cpu(priv->cpu, priv->reg, low, high)) | ||
475 | return 0; | ||
476 | |||
477 | return -EPERM; | ||
478 | } | ||
479 | |||
480 | static int write_cpu_register(struct cpu_private *priv, const char *buf) | ||
481 | { | ||
482 | int ret = -EPERM; | ||
483 | u64 val; | ||
484 | |||
485 | ret = strict_strtoull(buf, 0, &val); | ||
486 | if (ret < 0) | ||
487 | return ret; | ||
488 | |||
489 | /* Supporting only MSRs */ | ||
490 | if (priv->type < CPU_TSS_BIT) | ||
491 | return write_msr(priv, val); | ||
492 | |||
493 | return ret; | ||
494 | } | ||
495 | |||
496 | static ssize_t cpu_write(struct file *file, const char __user *ubuf, | ||
497 | size_t count, loff_t *off) | ||
498 | { | ||
499 | struct seq_file *seq = file->private_data; | ||
500 | struct cpu_private *priv = seq->private; | ||
501 | char buf[19]; | ||
502 | |||
503 | if ((priv == NULL) || (count >= sizeof(buf))) | ||
504 | return -EINVAL; | ||
505 | |||
506 | if (copy_from_user(&buf, ubuf, count)) | ||
507 | return -EFAULT; | ||
508 | |||
509 | buf[count] = 0; | ||
510 | |||
511 | if ((cpu_base[priv->type].write) && (cpu_file[priv->file].write)) | ||
512 | if (!write_cpu_register(priv, buf)) | ||
513 | return count; | ||
514 | |||
515 | return -EACCES; | ||
516 | } | ||
517 | |||
518 | static const struct file_operations cpu_fops = { | ||
519 | .owner = THIS_MODULE, | ||
520 | .open = cpu_seq_open, | ||
521 | .read = seq_read, | ||
522 | .write = cpu_write, | ||
523 | .llseek = seq_lseek, | ||
524 | .release = seq_release, | ||
525 | }; | ||
526 | |||
527 | static int cpu_create_file(unsigned cpu, unsigned type, unsigned reg, | ||
528 | unsigned file, struct dentry *dentry) | ||
529 | { | ||
530 | struct cpu_private *priv = NULL; | ||
531 | |||
532 | /* Already intialized */ | ||
533 | if (file == CPU_INDEX_BIT) | ||
534 | if (per_cpu(cpud_arr[type].init, cpu)) | ||
535 | return 0; | ||
536 | |||
537 | priv = kzalloc(sizeof(*priv), GFP_KERNEL); | ||
538 | if (priv == NULL) | ||
539 | return -ENOMEM; | ||
540 | |||
541 | priv->cpu = cpu; | ||
542 | priv->type = type; | ||
543 | priv->reg = reg; | ||
544 | priv->file = file; | ||
545 | mutex_lock(&cpu_debug_lock); | ||
546 | per_cpu(cpud_priv_arr[type], cpu) = priv; | ||
547 | per_cpu(cpud_priv_count, cpu)++; | ||
548 | mutex_unlock(&cpu_debug_lock); | ||
549 | |||
550 | if (file) | ||
551 | debugfs_create_file(cpu_file[file].name, S_IRUGO, | ||
552 | dentry, (void *)priv, &cpu_fops); | ||
553 | else { | ||
554 | debugfs_create_file(cpu_base[type].name, S_IRUGO, | ||
555 | per_cpu(cpud_arr[type].dentry, cpu), | ||
556 | (void *)priv, &cpu_fops); | ||
557 | mutex_lock(&cpu_debug_lock); | ||
558 | per_cpu(cpud_arr[type].init, cpu) = 1; | ||
559 | mutex_unlock(&cpu_debug_lock); | ||
560 | } | ||
561 | |||
562 | return 0; | ||
563 | } | ||
564 | |||
565 | static int cpu_init_regfiles(unsigned cpu, unsigned int type, unsigned reg, | ||
566 | struct dentry *dentry) | ||
567 | { | ||
568 | unsigned file; | ||
569 | int err = 0; | ||
570 | |||
571 | for (file = 0; file < ARRAY_SIZE(cpu_file); file++) { | ||
572 | err = cpu_create_file(cpu, type, reg, file, dentry); | ||
573 | if (err) | ||
574 | return err; | ||
575 | } | ||
576 | |||
577 | return err; | ||
578 | } | ||
579 | |||
580 | static int cpu_init_msr(unsigned cpu, unsigned type, struct dentry *dentry) | ||
581 | { | ||
582 | struct dentry *cpu_dentry = NULL; | ||
583 | unsigned reg, reg_min, reg_max; | ||
584 | int i, err = 0; | ||
585 | char reg_dir[12]; | ||
586 | u32 low, high; | ||
587 | |||
588 | for (i = 0; i < ARRAY_SIZE(cpu_reg_range); i++) { | ||
589 | if (!get_cpu_range(cpu, ®_min, ®_max, i, | ||
590 | cpu_base[type].flag)) | ||
591 | continue; | ||
592 | |||
593 | for (reg = reg_min; reg <= reg_max; reg++) { | ||
594 | if (rdmsr_safe_on_cpu(cpu, reg, &low, &high)) | ||
595 | continue; | ||
596 | |||
597 | sprintf(reg_dir, "0x%x", reg); | ||
598 | cpu_dentry = debugfs_create_dir(reg_dir, dentry); | ||
599 | err = cpu_init_regfiles(cpu, type, reg, cpu_dentry); | ||
600 | if (err) | ||
601 | return err; | ||
602 | } | ||
603 | } | ||
604 | |||
605 | return err; | ||
606 | } | ||
607 | |||
608 | static int cpu_init_allreg(unsigned cpu, struct dentry *dentry) | ||
609 | { | ||
610 | struct dentry *cpu_dentry = NULL; | ||
611 | unsigned type; | ||
612 | int err = 0; | ||
613 | |||
614 | for (type = 0; type < ARRAY_SIZE(cpu_base) - 1; type++) { | ||
615 | if (!is_typeflag_valid(cpu, cpu_base[type].flag)) | ||
616 | continue; | ||
617 | cpu_dentry = debugfs_create_dir(cpu_base[type].name, dentry); | ||
618 | per_cpu(cpud_arr[type].dentry, cpu) = cpu_dentry; | ||
619 | |||
620 | if (type < CPU_TSS_BIT) | ||
621 | err = cpu_init_msr(cpu, type, cpu_dentry); | ||
622 | else | ||
623 | err = cpu_create_file(cpu, type, 0, CPU_INDEX_BIT, | ||
624 | cpu_dentry); | ||
625 | if (err) | ||
626 | return err; | ||
627 | } | ||
628 | |||
629 | return err; | ||
630 | } | ||
631 | |||
632 | static int cpu_init_cpu(void) | ||
633 | { | ||
634 | struct dentry *cpu_dentry = NULL; | ||
635 | struct cpuinfo_x86 *cpui; | ||
636 | char cpu_dir[12]; | ||
637 | unsigned cpu; | ||
638 | int err = 0; | ||
639 | |||
640 | for (cpu = 0; cpu < nr_cpu_ids; cpu++) { | ||
641 | cpui = &cpu_data(cpu); | ||
642 | if (!cpu_has(cpui, X86_FEATURE_MSR)) | ||
643 | continue; | ||
644 | |||
645 | sprintf(cpu_dir, "cpu%d", cpu); | ||
646 | cpu_dentry = debugfs_create_dir(cpu_dir, cpu_debugfs_dir); | ||
647 | err = cpu_init_allreg(cpu, cpu_dentry); | ||
648 | |||
649 | pr_info("cpu%d(%d) debug files %d\n", | ||
650 | cpu, nr_cpu_ids, per_cpu(cpud_priv_count, cpu)); | ||
651 | if (per_cpu(cpud_priv_count, cpu) > MAX_CPU_FILES) { | ||
652 | pr_err("Register files count %d exceeds limit %d\n", | ||
653 | per_cpu(cpud_priv_count, cpu), MAX_CPU_FILES); | ||
654 | per_cpu(cpud_priv_count, cpu) = MAX_CPU_FILES; | ||
655 | err = -ENFILE; | ||
656 | } | ||
657 | if (err) | ||
658 | return err; | ||
659 | } | ||
660 | |||
661 | return err; | ||
662 | } | ||
663 | |||
664 | static int __init cpu_debug_init(void) | ||
665 | { | ||
666 | cpu_debugfs_dir = debugfs_create_dir("cpu", arch_debugfs_dir); | ||
667 | |||
668 | return cpu_init_cpu(); | ||
669 | } | ||
670 | |||
671 | static void __exit cpu_debug_exit(void) | ||
672 | { | ||
673 | int i, cpu; | ||
674 | |||
675 | if (cpu_debugfs_dir) | ||
676 | debugfs_remove_recursive(cpu_debugfs_dir); | ||
677 | |||
678 | for (cpu = 0; cpu < nr_cpu_ids; cpu++) | ||
679 | for (i = 0; i < per_cpu(cpud_priv_count, cpu); i++) | ||
680 | kfree(per_cpu(cpud_priv_arr[i], cpu)); | ||
681 | } | ||
682 | |||
683 | module_init(cpu_debug_init); | ||
684 | module_exit(cpu_debug_exit); | ||
685 | |||
686 | MODULE_AUTHOR("Jaswinder Singh Rajput"); | ||
687 | MODULE_DESCRIPTION("CPU Debug module"); | ||
688 | MODULE_LICENSE("GPL"); | ||
diff --git a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c index f125e5c551c0..6e44519960c8 100644 --- a/arch/x86/kernel/cpu/cpufreq/powernow-k8.c +++ b/arch/x86/kernel/cpu/cpufreq/powernow-k8.c | |||
@@ -1356,6 +1356,7 @@ static int __devexit powernowk8_cpu_exit(struct cpufreq_policy *pol) | |||
1356 | 1356 | ||
1357 | kfree(data->powernow_table); | 1357 | kfree(data->powernow_table); |
1358 | kfree(data); | 1358 | kfree(data); |
1359 | per_cpu(powernow_data, pol->cpu) = NULL; | ||
1359 | 1360 | ||
1360 | return 0; | 1361 | return 0; |
1361 | } | 1362 | } |
@@ -1375,7 +1376,7 @@ static unsigned int powernowk8_get(unsigned int cpu) | |||
1375 | int err; | 1376 | int err; |
1376 | 1377 | ||
1377 | if (!data) | 1378 | if (!data) |
1378 | return -EINVAL; | 1379 | return 0; |
1379 | 1380 | ||
1380 | smp_call_function_single(cpu, query_values_on_cpu, &err, true); | 1381 | smp_call_function_single(cpu, query_values_on_cpu, &err, true); |
1381 | if (err) | 1382 | if (err) |
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c index cb27fd6136c9..83e5e628de73 100644 --- a/arch/x86/kernel/cpuid.c +++ b/arch/x86/kernel/cpuid.c | |||
@@ -229,7 +229,7 @@ static void __exit cpuid_exit(void) | |||
229 | for_each_online_cpu(cpu) | 229 | for_each_online_cpu(cpu) |
230 | cpuid_device_destroy(cpu); | 230 | cpuid_device_destroy(cpu); |
231 | class_destroy(cpuid_class); | 231 | class_destroy(cpuid_class); |
232 | unregister_chrdev(CPUID_MAJOR, "cpu/cpuid"); | 232 | __unregister_chrdev(CPUID_MAJOR, 0, NR_CPUS, "cpu/cpuid"); |
233 | unregister_hotcpu_notifier(&cpuid_class_cpu_notifier); | 233 | unregister_hotcpu_notifier(&cpuid_class_cpu_notifier); |
234 | } | 234 | } |
235 | 235 | ||
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index ba6e65884603..ad80a1c718c6 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
@@ -34,6 +34,8 @@ | |||
34 | */ | 34 | */ |
35 | unsigned long hpet_address; | 35 | unsigned long hpet_address; |
36 | u8 hpet_blockid; /* OS timer block num */ | 36 | u8 hpet_blockid; /* OS timer block num */ |
37 | u8 hpet_msi_disable; | ||
38 | |||
37 | #ifdef CONFIG_PCI_MSI | 39 | #ifdef CONFIG_PCI_MSI |
38 | static unsigned long hpet_num_timers; | 40 | static unsigned long hpet_num_timers; |
39 | #endif | 41 | #endif |
@@ -596,6 +598,9 @@ static void hpet_msi_capability_lookup(unsigned int start_timer) | |||
596 | unsigned int num_timers_used = 0; | 598 | unsigned int num_timers_used = 0; |
597 | int i; | 599 | int i; |
598 | 600 | ||
601 | if (hpet_msi_disable) | ||
602 | return; | ||
603 | |||
599 | if (boot_cpu_has(X86_FEATURE_ARAT)) | 604 | if (boot_cpu_has(X86_FEATURE_ARAT)) |
600 | return; | 605 | return; |
601 | id = hpet_readl(HPET_ID); | 606 | id = hpet_readl(HPET_ID); |
@@ -928,6 +933,9 @@ static __init int hpet_late_init(void) | |||
928 | hpet_reserve_platform_timers(hpet_readl(HPET_ID)); | 933 | hpet_reserve_platform_timers(hpet_readl(HPET_ID)); |
929 | hpet_print_config(); | 934 | hpet_print_config(); |
930 | 935 | ||
936 | if (hpet_msi_disable) | ||
937 | return 0; | ||
938 | |||
931 | if (boot_cpu_has(X86_FEATURE_ARAT)) | 939 | if (boot_cpu_has(X86_FEATURE_ARAT)) |
932 | return 0; | 940 | return 0; |
933 | 941 | ||
diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c index dd74fe7273b1..bfba6019d762 100644 --- a/arch/x86/kernel/kgdb.c +++ b/arch/x86/kernel/kgdb.c | |||
@@ -42,6 +42,7 @@ | |||
42 | #include <linux/init.h> | 42 | #include <linux/init.h> |
43 | #include <linux/smp.h> | 43 | #include <linux/smp.h> |
44 | #include <linux/nmi.h> | 44 | #include <linux/nmi.h> |
45 | #include <linux/hw_breakpoint.h> | ||
45 | 46 | ||
46 | #include <asm/debugreg.h> | 47 | #include <asm/debugreg.h> |
47 | #include <asm/apicdef.h> | 48 | #include <asm/apicdef.h> |
@@ -204,40 +205,81 @@ void gdb_regs_to_pt_regs(unsigned long *gdb_regs, struct pt_regs *regs) | |||
204 | 205 | ||
205 | static struct hw_breakpoint { | 206 | static struct hw_breakpoint { |
206 | unsigned enabled; | 207 | unsigned enabled; |
207 | unsigned type; | ||
208 | unsigned len; | ||
209 | unsigned long addr; | 208 | unsigned long addr; |
209 | int len; | ||
210 | int type; | ||
211 | struct perf_event **pev; | ||
210 | } breakinfo[4]; | 212 | } breakinfo[4]; |
211 | 213 | ||
212 | static void kgdb_correct_hw_break(void) | 214 | static void kgdb_correct_hw_break(void) |
213 | { | 215 | { |
214 | unsigned long dr7; | ||
215 | int correctit = 0; | ||
216 | int breakbit; | ||
217 | int breakno; | 216 | int breakno; |
218 | 217 | ||
219 | get_debugreg(dr7, 7); | ||
220 | for (breakno = 0; breakno < 4; breakno++) { | 218 | for (breakno = 0; breakno < 4; breakno++) { |
221 | breakbit = 2 << (breakno << 1); | 219 | struct perf_event *bp; |
222 | if (!(dr7 & breakbit) && breakinfo[breakno].enabled) { | 220 | struct arch_hw_breakpoint *info; |
223 | correctit = 1; | 221 | int val; |
224 | dr7 |= breakbit; | 222 | int cpu = raw_smp_processor_id(); |
225 | dr7 &= ~(0xf0000 << (breakno << 2)); | 223 | if (!breakinfo[breakno].enabled) |
226 | dr7 |= ((breakinfo[breakno].len << 2) | | 224 | continue; |
227 | breakinfo[breakno].type) << | 225 | bp = *per_cpu_ptr(breakinfo[breakno].pev, cpu); |
228 | ((breakno << 2) + 16); | 226 | info = counter_arch_bp(bp); |
229 | set_debugreg(breakinfo[breakno].addr, breakno); | 227 | if (bp->attr.disabled != 1) |
230 | 228 | continue; | |
231 | } else { | 229 | bp->attr.bp_addr = breakinfo[breakno].addr; |
232 | if ((dr7 & breakbit) && !breakinfo[breakno].enabled) { | 230 | bp->attr.bp_len = breakinfo[breakno].len; |
233 | correctit = 1; | 231 | bp->attr.bp_type = breakinfo[breakno].type; |
234 | dr7 &= ~breakbit; | 232 | info->address = breakinfo[breakno].addr; |
235 | dr7 &= ~(0xf0000 << (breakno << 2)); | 233 | info->len = breakinfo[breakno].len; |
236 | } | 234 | info->type = breakinfo[breakno].type; |
237 | } | 235 | val = arch_install_hw_breakpoint(bp); |
236 | if (!val) | ||
237 | bp->attr.disabled = 0; | ||
238 | } | ||
239 | hw_breakpoint_restore(); | ||
240 | } | ||
241 | |||
242 | static int hw_break_reserve_slot(int breakno) | ||
243 | { | ||
244 | int cpu; | ||
245 | int cnt = 0; | ||
246 | struct perf_event **pevent; | ||
247 | |||
248 | for_each_online_cpu(cpu) { | ||
249 | cnt++; | ||
250 | pevent = per_cpu_ptr(breakinfo[breakno].pev, cpu); | ||
251 | if (dbg_reserve_bp_slot(*pevent)) | ||
252 | goto fail; | ||
253 | } | ||
254 | |||
255 | return 0; | ||
256 | |||
257 | fail: | ||
258 | for_each_online_cpu(cpu) { | ||
259 | cnt--; | ||
260 | if (!cnt) | ||
261 | break; | ||
262 | pevent = per_cpu_ptr(breakinfo[breakno].pev, cpu); | ||
263 | dbg_release_bp_slot(*pevent); | ||
238 | } | 264 | } |
239 | if (correctit) | 265 | return -1; |
240 | set_debugreg(dr7, 7); | 266 | } |
267 | |||
268 | static int hw_break_release_slot(int breakno) | ||
269 | { | ||
270 | struct perf_event **pevent; | ||
271 | int cpu; | ||
272 | |||
273 | for_each_online_cpu(cpu) { | ||
274 | pevent = per_cpu_ptr(breakinfo[breakno].pev, cpu); | ||
275 | if (dbg_release_bp_slot(*pevent)) | ||
276 | /* | ||
277 | * The debugger is responisble for handing the retry on | ||
278 | * remove failure. | ||
279 | */ | ||
280 | return -1; | ||
281 | } | ||
282 | return 0; | ||
241 | } | 283 | } |
242 | 284 | ||
243 | static int | 285 | static int |
@@ -251,6 +293,10 @@ kgdb_remove_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) | |||
251 | if (i == 4) | 293 | if (i == 4) |
252 | return -1; | 294 | return -1; |
253 | 295 | ||
296 | if (hw_break_release_slot(i)) { | ||
297 | printk(KERN_ERR "Cannot remove hw breakpoint at %lx\n", addr); | ||
298 | return -1; | ||
299 | } | ||
254 | breakinfo[i].enabled = 0; | 300 | breakinfo[i].enabled = 0; |
255 | 301 | ||
256 | return 0; | 302 | return 0; |
@@ -259,15 +305,23 @@ kgdb_remove_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) | |||
259 | static void kgdb_remove_all_hw_break(void) | 305 | static void kgdb_remove_all_hw_break(void) |
260 | { | 306 | { |
261 | int i; | 307 | int i; |
308 | int cpu = raw_smp_processor_id(); | ||
309 | struct perf_event *bp; | ||
262 | 310 | ||
263 | for (i = 0; i < 4; i++) | 311 | for (i = 0; i < 4; i++) { |
264 | memset(&breakinfo[i], 0, sizeof(struct hw_breakpoint)); | 312 | if (!breakinfo[i].enabled) |
313 | continue; | ||
314 | bp = *per_cpu_ptr(breakinfo[i].pev, cpu); | ||
315 | if (bp->attr.disabled == 1) | ||
316 | continue; | ||
317 | arch_uninstall_hw_breakpoint(bp); | ||
318 | bp->attr.disabled = 1; | ||
319 | } | ||
265 | } | 320 | } |
266 | 321 | ||
267 | static int | 322 | static int |
268 | kgdb_set_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) | 323 | kgdb_set_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) |
269 | { | 324 | { |
270 | unsigned type; | ||
271 | int i; | 325 | int i; |
272 | 326 | ||
273 | for (i = 0; i < 4; i++) | 327 | for (i = 0; i < 4; i++) |
@@ -278,27 +332,42 @@ kgdb_set_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) | |||
278 | 332 | ||
279 | switch (bptype) { | 333 | switch (bptype) { |
280 | case BP_HARDWARE_BREAKPOINT: | 334 | case BP_HARDWARE_BREAKPOINT: |
281 | type = 0; | 335 | len = 1; |
282 | len = 1; | 336 | breakinfo[i].type = X86_BREAKPOINT_EXECUTE; |
283 | break; | 337 | break; |
284 | case BP_WRITE_WATCHPOINT: | 338 | case BP_WRITE_WATCHPOINT: |
285 | type = 1; | 339 | breakinfo[i].type = X86_BREAKPOINT_WRITE; |
286 | break; | 340 | break; |
287 | case BP_ACCESS_WATCHPOINT: | 341 | case BP_ACCESS_WATCHPOINT: |
288 | type = 3; | 342 | breakinfo[i].type = X86_BREAKPOINT_RW; |
289 | break; | 343 | break; |
290 | default: | 344 | default: |
291 | return -1; | 345 | return -1; |
292 | } | 346 | } |
293 | 347 | switch (len) { | |
294 | if (len == 1 || len == 2 || len == 4) | 348 | case 1: |
295 | breakinfo[i].len = len - 1; | 349 | breakinfo[i].len = X86_BREAKPOINT_LEN_1; |
296 | else | 350 | break; |
351 | case 2: | ||
352 | breakinfo[i].len = X86_BREAKPOINT_LEN_2; | ||
353 | break; | ||
354 | case 4: | ||
355 | breakinfo[i].len = X86_BREAKPOINT_LEN_4; | ||
356 | break; | ||
357 | #ifdef CONFIG_X86_64 | ||
358 | case 8: | ||
359 | breakinfo[i].len = X86_BREAKPOINT_LEN_8; | ||
360 | break; | ||
361 | #endif | ||
362 | default: | ||
297 | return -1; | 363 | return -1; |
298 | 364 | } | |
299 | breakinfo[i].enabled = 1; | ||
300 | breakinfo[i].addr = addr; | 365 | breakinfo[i].addr = addr; |
301 | breakinfo[i].type = type; | 366 | if (hw_break_reserve_slot(i)) { |
367 | breakinfo[i].addr = 0; | ||
368 | return -1; | ||
369 | } | ||
370 | breakinfo[i].enabled = 1; | ||
302 | 371 | ||
303 | return 0; | 372 | return 0; |
304 | } | 373 | } |
@@ -313,8 +382,21 @@ kgdb_set_hw_break(unsigned long addr, int len, enum kgdb_bptype bptype) | |||
313 | */ | 382 | */ |
314 | void kgdb_disable_hw_debug(struct pt_regs *regs) | 383 | void kgdb_disable_hw_debug(struct pt_regs *regs) |
315 | { | 384 | { |
385 | int i; | ||
386 | int cpu = raw_smp_processor_id(); | ||
387 | struct perf_event *bp; | ||
388 | |||
316 | /* Disable hardware debugging while we are in kgdb: */ | 389 | /* Disable hardware debugging while we are in kgdb: */ |
317 | set_debugreg(0UL, 7); | 390 | set_debugreg(0UL, 7); |
391 | for (i = 0; i < 4; i++) { | ||
392 | if (!breakinfo[i].enabled) | ||
393 | continue; | ||
394 | bp = *per_cpu_ptr(breakinfo[i].pev, cpu); | ||
395 | if (bp->attr.disabled == 1) | ||
396 | continue; | ||
397 | arch_uninstall_hw_breakpoint(bp); | ||
398 | bp->attr.disabled = 1; | ||
399 | } | ||
318 | } | 400 | } |
319 | 401 | ||
320 | /** | 402 | /** |
@@ -378,7 +460,6 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, | |||
378 | struct pt_regs *linux_regs) | 460 | struct pt_regs *linux_regs) |
379 | { | 461 | { |
380 | unsigned long addr; | 462 | unsigned long addr; |
381 | unsigned long dr6; | ||
382 | char *ptr; | 463 | char *ptr; |
383 | int newPC; | 464 | int newPC; |
384 | 465 | ||
@@ -404,20 +485,6 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code, | |||
404 | raw_smp_processor_id()); | 485 | raw_smp_processor_id()); |
405 | } | 486 | } |
406 | 487 | ||
407 | get_debugreg(dr6, 6); | ||
408 | if (!(dr6 & 0x4000)) { | ||
409 | int breakno; | ||
410 | |||
411 | for (breakno = 0; breakno < 4; breakno++) { | ||
412 | if (dr6 & (1 << breakno) && | ||
413 | breakinfo[breakno].type == 0) { | ||
414 | /* Set restore flag: */ | ||
415 | linux_regs->flags |= X86_EFLAGS_RF; | ||
416 | break; | ||
417 | } | ||
418 | } | ||
419 | } | ||
420 | set_debugreg(0UL, 6); | ||
421 | kgdb_correct_hw_break(); | 488 | kgdb_correct_hw_break(); |
422 | 489 | ||
423 | return 0; | 490 | return 0; |
@@ -485,8 +552,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd) | |||
485 | break; | 552 | break; |
486 | 553 | ||
487 | case DIE_DEBUG: | 554 | case DIE_DEBUG: |
488 | if (atomic_read(&kgdb_cpu_doing_single_step) == | 555 | if (atomic_read(&kgdb_cpu_doing_single_step) != -1) { |
489 | raw_smp_processor_id()) { | ||
490 | if (user_mode(regs)) | 556 | if (user_mode(regs)) |
491 | return single_step_cont(regs, args); | 557 | return single_step_cont(regs, args); |
492 | break; | 558 | break; |
@@ -539,7 +605,42 @@ static struct notifier_block kgdb_notifier = { | |||
539 | */ | 605 | */ |
540 | int kgdb_arch_init(void) | 606 | int kgdb_arch_init(void) |
541 | { | 607 | { |
542 | return register_die_notifier(&kgdb_notifier); | 608 | int i, cpu; |
609 | int ret; | ||
610 | struct perf_event_attr attr; | ||
611 | struct perf_event **pevent; | ||
612 | |||
613 | ret = register_die_notifier(&kgdb_notifier); | ||
614 | if (ret != 0) | ||
615 | return ret; | ||
616 | /* | ||
617 | * Pre-allocate the hw breakpoint structions in the non-atomic | ||
618 | * portion of kgdb because this operation requires mutexs to | ||
619 | * complete. | ||
620 | */ | ||
621 | attr.bp_addr = (unsigned long)kgdb_arch_init; | ||
622 | attr.type = PERF_TYPE_BREAKPOINT; | ||
623 | attr.bp_len = HW_BREAKPOINT_LEN_1; | ||
624 | attr.bp_type = HW_BREAKPOINT_W; | ||
625 | attr.disabled = 1; | ||
626 | for (i = 0; i < 4; i++) { | ||
627 | breakinfo[i].pev = register_wide_hw_breakpoint(&attr, NULL); | ||
628 | if (IS_ERR(breakinfo[i].pev)) { | ||
629 | printk(KERN_ERR "kgdb: Could not allocate hw breakpoints\n"); | ||
630 | breakinfo[i].pev = NULL; | ||
631 | kgdb_arch_exit(); | ||
632 | return -1; | ||
633 | } | ||
634 | for_each_online_cpu(cpu) { | ||
635 | pevent = per_cpu_ptr(breakinfo[i].pev, cpu); | ||
636 | pevent[0]->hw.sample_period = 1; | ||
637 | if (pevent[0]->destroy != NULL) { | ||
638 | pevent[0]->destroy = NULL; | ||
639 | release_bp_slot(*pevent); | ||
640 | } | ||
641 | } | ||
642 | } | ||
643 | return ret; | ||
543 | } | 644 | } |
544 | 645 | ||
545 | /** | 646 | /** |
@@ -550,6 +651,13 @@ int kgdb_arch_init(void) | |||
550 | */ | 651 | */ |
551 | void kgdb_arch_exit(void) | 652 | void kgdb_arch_exit(void) |
552 | { | 653 | { |
654 | int i; | ||
655 | for (i = 0; i < 4; i++) { | ||
656 | if (breakinfo[i].pev) { | ||
657 | unregister_wide_hw_breakpoint(breakinfo[i].pev); | ||
658 | breakinfo[i].pev = NULL; | ||
659 | } | ||
660 | } | ||
553 | unregister_die_notifier(&kgdb_notifier); | 661 | unregister_die_notifier(&kgdb_notifier); |
554 | } | 662 | } |
555 | 663 | ||
diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c index 37542b67c57e..e1af7c055c7d 100644 --- a/arch/x86/kernel/microcode_amd.c +++ b/arch/x86/kernel/microcode_amd.c | |||
@@ -36,9 +36,6 @@ MODULE_LICENSE("GPL v2"); | |||
36 | #define UCODE_EQUIV_CPU_TABLE_TYPE 0x00000000 | 36 | #define UCODE_EQUIV_CPU_TABLE_TYPE 0x00000000 |
37 | #define UCODE_UCODE_TYPE 0x00000001 | 37 | #define UCODE_UCODE_TYPE 0x00000001 |
38 | 38 | ||
39 | const struct firmware *firmware; | ||
40 | static int supported_cpu; | ||
41 | |||
42 | struct equiv_cpu_entry { | 39 | struct equiv_cpu_entry { |
43 | u32 installed_cpu; | 40 | u32 installed_cpu; |
44 | u32 fixed_errata_mask; | 41 | u32 fixed_errata_mask; |
@@ -77,12 +74,15 @@ static struct equiv_cpu_entry *equiv_cpu_table; | |||
77 | 74 | ||
78 | static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig) | 75 | static int collect_cpu_info_amd(int cpu, struct cpu_signature *csig) |
79 | { | 76 | { |
77 | struct cpuinfo_x86 *c = &cpu_data(cpu); | ||
80 | u32 dummy; | 78 | u32 dummy; |
81 | 79 | ||
82 | if (!supported_cpu) | ||
83 | return -1; | ||
84 | |||
85 | memset(csig, 0, sizeof(*csig)); | 80 | memset(csig, 0, sizeof(*csig)); |
81 | if (c->x86_vendor != X86_VENDOR_AMD || c->x86 < 0x10) { | ||
82 | pr_warning("microcode: CPU%d: AMD CPU family 0x%x not " | ||
83 | "supported\n", cpu, c->x86); | ||
84 | return -1; | ||
85 | } | ||
86 | rdmsr(MSR_AMD64_PATCH_LEVEL, csig->rev, dummy); | 86 | rdmsr(MSR_AMD64_PATCH_LEVEL, csig->rev, dummy); |
87 | pr_info("CPU%d: patch_level=0x%x\n", cpu, csig->rev); | 87 | pr_info("CPU%d: patch_level=0x%x\n", cpu, csig->rev); |
88 | return 0; | 88 | return 0; |
@@ -294,10 +294,14 @@ generic_load_microcode(int cpu, const u8 *data, size_t size) | |||
294 | 294 | ||
295 | static enum ucode_state request_microcode_fw(int cpu, struct device *device) | 295 | static enum ucode_state request_microcode_fw(int cpu, struct device *device) |
296 | { | 296 | { |
297 | const char *fw_name = "amd-ucode/microcode_amd.bin"; | ||
298 | const struct firmware *firmware; | ||
297 | enum ucode_state ret; | 299 | enum ucode_state ret; |
298 | 300 | ||
299 | if (firmware == NULL) | 301 | if (request_firmware(&firmware, fw_name, device)) { |
302 | printk(KERN_ERR "microcode: failed to load file %s\n", fw_name); | ||
300 | return UCODE_NFOUND; | 303 | return UCODE_NFOUND; |
304 | } | ||
301 | 305 | ||
302 | if (*(u32 *)firmware->data != UCODE_MAGIC) { | 306 | if (*(u32 *)firmware->data != UCODE_MAGIC) { |
303 | pr_err("invalid UCODE_MAGIC (0x%08x)\n", | 307 | pr_err("invalid UCODE_MAGIC (0x%08x)\n", |
@@ -307,6 +311,8 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device) | |||
307 | 311 | ||
308 | ret = generic_load_microcode(cpu, firmware->data, firmware->size); | 312 | ret = generic_load_microcode(cpu, firmware->data, firmware->size); |
309 | 313 | ||
314 | release_firmware(firmware); | ||
315 | |||
310 | return ret; | 316 | return ret; |
311 | } | 317 | } |
312 | 318 | ||
@@ -325,31 +331,7 @@ static void microcode_fini_cpu_amd(int cpu) | |||
325 | uci->mc = NULL; | 331 | uci->mc = NULL; |
326 | } | 332 | } |
327 | 333 | ||
328 | void init_microcode_amd(struct device *device) | ||
329 | { | ||
330 | const char *fw_name = "amd-ucode/microcode_amd.bin"; | ||
331 | struct cpuinfo_x86 *c = &boot_cpu_data; | ||
332 | |||
333 | WARN_ON(c->x86_vendor != X86_VENDOR_AMD); | ||
334 | |||
335 | if (c->x86 < 0x10) { | ||
336 | pr_warning("AMD CPU family 0x%x not supported\n", c->x86); | ||
337 | return; | ||
338 | } | ||
339 | supported_cpu = 1; | ||
340 | |||
341 | if (request_firmware(&firmware, fw_name, device)) | ||
342 | pr_err("failed to load file %s\n", fw_name); | ||
343 | } | ||
344 | |||
345 | void fini_microcode_amd(void) | ||
346 | { | ||
347 | release_firmware(firmware); | ||
348 | } | ||
349 | |||
350 | static struct microcode_ops microcode_amd_ops = { | 334 | static struct microcode_ops microcode_amd_ops = { |
351 | .init = init_microcode_amd, | ||
352 | .fini = fini_microcode_amd, | ||
353 | .request_microcode_user = request_microcode_user, | 335 | .request_microcode_user = request_microcode_user, |
354 | .request_microcode_fw = request_microcode_fw, | 336 | .request_microcode_fw = request_microcode_fw, |
355 | .collect_cpu_info = collect_cpu_info_amd, | 337 | .collect_cpu_info = collect_cpu_info_amd, |
diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c index 0c8632433090..cceb5bc3c3c2 100644 --- a/arch/x86/kernel/microcode_core.c +++ b/arch/x86/kernel/microcode_core.c | |||
@@ -521,9 +521,6 @@ static int __init microcode_init(void) | |||
521 | return PTR_ERR(microcode_pdev); | 521 | return PTR_ERR(microcode_pdev); |
522 | } | 522 | } |
523 | 523 | ||
524 | if (microcode_ops->init) | ||
525 | microcode_ops->init(µcode_pdev->dev); | ||
526 | |||
527 | get_online_cpus(); | 524 | get_online_cpus(); |
528 | mutex_lock(µcode_mutex); | 525 | mutex_lock(µcode_mutex); |
529 | 526 | ||
@@ -566,9 +563,6 @@ static void __exit microcode_exit(void) | |||
566 | 563 | ||
567 | platform_device_unregister(microcode_pdev); | 564 | platform_device_unregister(microcode_pdev); |
568 | 565 | ||
569 | if (microcode_ops->fini) | ||
570 | microcode_ops->fini(); | ||
571 | |||
572 | microcode_ops = NULL; | 566 | microcode_ops = NULL; |
573 | 567 | ||
574 | pr_info("Microcode Update Driver: v" MICROCODE_VERSION " removed.\n"); | 568 | pr_info("Microcode Update Driver: v" MICROCODE_VERSION " removed.\n"); |
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 40b54ceb68b5..a2c1edd2d3ac 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c | |||
@@ -359,13 +359,6 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) | |||
359 | x86_init.mpparse.mpc_record(1); | 359 | x86_init.mpparse.mpc_record(1); |
360 | } | 360 | } |
361 | 361 | ||
362 | #ifdef CONFIG_X86_BIGSMP | ||
363 | generic_bigsmp_probe(); | ||
364 | #endif | ||
365 | |||
366 | if (apic->setup_apic_routing) | ||
367 | apic->setup_apic_routing(); | ||
368 | |||
369 | if (!num_processors) | 362 | if (!num_processors) |
370 | printk(KERN_ERR "MPTABLE: no processors registered!\n"); | 363 | printk(KERN_ERR "MPTABLE: no processors registered!\n"); |
371 | return num_processors; | 364 | return num_processors; |
diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c index 4bd93c9b2b27..206735ac8cbd 100644 --- a/arch/x86/kernel/msr.c +++ b/arch/x86/kernel/msr.c | |||
@@ -285,7 +285,7 @@ static void __exit msr_exit(void) | |||
285 | for_each_online_cpu(cpu) | 285 | for_each_online_cpu(cpu) |
286 | msr_device_destroy(cpu); | 286 | msr_device_destroy(cpu); |
287 | class_destroy(msr_class); | 287 | class_destroy(msr_class); |
288 | unregister_chrdev(MSR_MAJOR, "cpu/msr"); | 288 | __unregister_chrdev(MSR_MAJOR, 0, NR_CPUS, "cpu/msr"); |
289 | unregister_hotcpu_notifier(&msr_class_cpu_notifier); | 289 | unregister_hotcpu_notifier(&msr_class_cpu_notifier); |
290 | } | 290 | } |
291 | 291 | ||
diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c index 02c3ee013ccd..c9b3522b6b46 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c | |||
@@ -115,18 +115,6 @@ void flush_thread(void) | |||
115 | { | 115 | { |
116 | struct task_struct *tsk = current; | 116 | struct task_struct *tsk = current; |
117 | 117 | ||
118 | #ifdef CONFIG_X86_64 | ||
119 | if (test_tsk_thread_flag(tsk, TIF_ABI_PENDING)) { | ||
120 | clear_tsk_thread_flag(tsk, TIF_ABI_PENDING); | ||
121 | if (test_tsk_thread_flag(tsk, TIF_IA32)) { | ||
122 | clear_tsk_thread_flag(tsk, TIF_IA32); | ||
123 | } else { | ||
124 | set_tsk_thread_flag(tsk, TIF_IA32); | ||
125 | current_thread_info()->status |= TS_COMPAT; | ||
126 | } | ||
127 | } | ||
128 | #endif | ||
129 | |||
130 | flush_ptrace_hw_breakpoint(tsk); | 118 | flush_ptrace_hw_breakpoint(tsk); |
131 | memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); | 119 | memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array)); |
132 | /* | 120 | /* |
diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c index f9e033150cdf..126f0b493d04 100644 --- a/arch/x86/kernel/process_64.c +++ b/arch/x86/kernel/process_64.c | |||
@@ -521,6 +521,18 @@ void set_personality_64bit(void) | |||
521 | current->personality &= ~READ_IMPLIES_EXEC; | 521 | current->personality &= ~READ_IMPLIES_EXEC; |
522 | } | 522 | } |
523 | 523 | ||
524 | void set_personality_ia32(void) | ||
525 | { | ||
526 | /* inherit personality from parent */ | ||
527 | |||
528 | /* Make sure to be in 32bit mode */ | ||
529 | set_thread_flag(TIF_IA32); | ||
530 | current->personality |= force_personality32; | ||
531 | |||
532 | /* Prepare the first "return" to user space */ | ||
533 | current_thread_info()->status |= TS_COMPAT; | ||
534 | } | ||
535 | |||
524 | unsigned long get_wchan(struct task_struct *p) | 536 | unsigned long get_wchan(struct task_struct *p) |
525 | { | 537 | { |
526 | unsigned long stack; | 538 | unsigned long stack; |
diff --git a/arch/x86/kernel/quirks.c b/arch/x86/kernel/quirks.c index 18093d7498f0..12e9feaa2f7a 100644 --- a/arch/x86/kernel/quirks.c +++ b/arch/x86/kernel/quirks.c | |||
@@ -491,6 +491,19 @@ void force_hpet_resume(void) | |||
491 | break; | 491 | break; |
492 | } | 492 | } |
493 | } | 493 | } |
494 | |||
495 | /* | ||
496 | * HPET MSI on some boards (ATI SB700/SB800) has side effect on | ||
497 | * floppy DMA. Disable HPET MSI on such platforms. | ||
498 | */ | ||
499 | static void force_disable_hpet_msi(struct pci_dev *unused) | ||
500 | { | ||
501 | hpet_msi_disable = 1; | ||
502 | } | ||
503 | |||
504 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_SBX00_SMBUS, | ||
505 | force_disable_hpet_msi); | ||
506 | |||
494 | #endif | 507 | #endif |
495 | 508 | ||
496 | #if defined(CONFIG_PCI) && defined(CONFIG_NUMA) | 509 | #if defined(CONFIG_PCI) && defined(CONFIG_NUMA) |
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c index 1545bc0c9845..704bddcdf64d 100644 --- a/arch/x86/kernel/reboot.c +++ b/arch/x86/kernel/reboot.c | |||
@@ -203,6 +203,15 @@ static struct dmi_system_id __initdata reboot_dmi_table[] = { | |||
203 | DMI_MATCH(DMI_BOARD_NAME, "0T656F"), | 203 | DMI_MATCH(DMI_BOARD_NAME, "0T656F"), |
204 | }, | 204 | }, |
205 | }, | 205 | }, |
206 | { /* Handle problems with rebooting on Dell OptiPlex 760 with 0G919G*/ | ||
207 | .callback = set_bios_reboot, | ||
208 | .ident = "Dell OptiPlex 760", | ||
209 | .matches = { | ||
210 | DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), | ||
211 | DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 760"), | ||
212 | DMI_MATCH(DMI_BOARD_NAME, "0G919G"), | ||
213 | }, | ||
214 | }, | ||
206 | { /* Handle problems with rebooting on Dell 2400's */ | 215 | { /* Handle problems with rebooting on Dell 2400's */ |
207 | .callback = set_bios_reboot, | 216 | .callback = set_bios_reboot, |
208 | .ident = "Dell PowerEdge 2400", | 217 | .ident = "Dell PowerEdge 2400", |
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index f7b8b9894b22..5d9e40c58628 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c | |||
@@ -642,19 +642,27 @@ static struct dmi_system_id __initdata bad_bios_dmi_table[] = { | |||
642 | DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix/MSC"), | 642 | DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix/MSC"), |
643 | }, | 643 | }, |
644 | }, | 644 | }, |
645 | { | ||
646 | /* | 645 | /* |
647 | * AMI BIOS with low memory corruption was found on Intel DG45ID board. | 646 | * AMI BIOS with low memory corruption was found on Intel DG45ID and |
648 | * It hase different DMI_BIOS_VENDOR = "Intel Corp.", for now we will | 647 | * DG45FC boards. |
648 | * It has a different DMI_BIOS_VENDOR = "Intel Corp.", for now we will | ||
649 | * match only DMI_BOARD_NAME and see if there is more bad products | 649 | * match only DMI_BOARD_NAME and see if there is more bad products |
650 | * with this vendor. | 650 | * with this vendor. |
651 | */ | 651 | */ |
652 | { | ||
652 | .callback = dmi_low_memory_corruption, | 653 | .callback = dmi_low_memory_corruption, |
653 | .ident = "AMI BIOS", | 654 | .ident = "AMI BIOS", |
654 | .matches = { | 655 | .matches = { |
655 | DMI_MATCH(DMI_BOARD_NAME, "DG45ID"), | 656 | DMI_MATCH(DMI_BOARD_NAME, "DG45ID"), |
656 | }, | 657 | }, |
657 | }, | 658 | }, |
659 | { | ||
660 | .callback = dmi_low_memory_corruption, | ||
661 | .ident = "AMI BIOS", | ||
662 | .matches = { | ||
663 | DMI_MATCH(DMI_BOARD_NAME, "DG45FC"), | ||
664 | }, | ||
665 | }, | ||
658 | #endif | 666 | #endif |
659 | {} | 667 | {} |
660 | }; | 668 | }; |
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index 678d0b8c26f3..b4e870cbdc60 100644 --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c | |||
@@ -1083,9 +1083,7 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) | |||
1083 | set_cpu_sibling_map(0); | 1083 | set_cpu_sibling_map(0); |
1084 | 1084 | ||
1085 | enable_IR_x2apic(); | 1085 | enable_IR_x2apic(); |
1086 | #ifdef CONFIG_X86_64 | ||
1087 | default_setup_apic_routing(); | 1086 | default_setup_apic_routing(); |
1088 | #endif | ||
1089 | 1087 | ||
1090 | if (smp_sanity_check(max_cpus) < 0) { | 1088 | if (smp_sanity_check(max_cpus) < 0) { |
1091 | printk(KERN_INFO "SMP disabled\n"); | 1089 | printk(KERN_INFO "SMP disabled\n"); |
diff --git a/arch/x86/kernel/uv_time.c b/arch/x86/kernel/uv_time.c index 3c84aa001c11..2b75ef638dbc 100644 --- a/arch/x86/kernel/uv_time.c +++ b/arch/x86/kernel/uv_time.c | |||
@@ -282,10 +282,21 @@ static int uv_rtc_unset_timer(int cpu, int force) | |||
282 | 282 | ||
283 | /* | 283 | /* |
284 | * Read the RTC. | 284 | * Read the RTC. |
285 | * | ||
286 | * Starting with HUB rev 2.0, the UV RTC register is replicated across all | ||
287 | * cachelines of it's own page. This allows faster simultaneous reads | ||
288 | * from a given socket. | ||
285 | */ | 289 | */ |
286 | static cycle_t uv_read_rtc(struct clocksource *cs) | 290 | static cycle_t uv_read_rtc(struct clocksource *cs) |
287 | { | 291 | { |
288 | return (cycle_t)uv_read_local_mmr(UVH_RTC); | 292 | unsigned long offset; |
293 | |||
294 | if (uv_get_min_hub_revision_id() == 1) | ||
295 | offset = 0; | ||
296 | else | ||
297 | offset = (uv_blade_processor_id() * L1_CACHE_BYTES) % PAGE_SIZE; | ||
298 | |||
299 | return (cycle_t)uv_read_local_mmr(UVH_RTC | offset); | ||
289 | } | 300 | } |
290 | 301 | ||
291 | /* | 302 | /* |
diff --git a/arch/x86/kvm/i8254.c b/arch/x86/kvm/i8254.c index 296aba49472a..15578f180e59 100644 --- a/arch/x86/kvm/i8254.c +++ b/arch/x86/kvm/i8254.c | |||
@@ -467,6 +467,9 @@ static int pit_ioport_read(struct kvm_io_device *this, | |||
467 | return -EOPNOTSUPP; | 467 | return -EOPNOTSUPP; |
468 | 468 | ||
469 | addr &= KVM_PIT_CHANNEL_MASK; | 469 | addr &= KVM_PIT_CHANNEL_MASK; |
470 | if (addr == 3) | ||
471 | return 0; | ||
472 | |||
470 | s = &pit_state->channels[addr]; | 473 | s = &pit_state->channels[addr]; |
471 | 474 | ||
472 | mutex_lock(&pit_state->lock); | 475 | mutex_lock(&pit_state->lock); |
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 3063a0c4858b..ba8c045da782 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c | |||
@@ -373,6 +373,12 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, | |||
373 | if (unlikely(!apic_enabled(apic))) | 373 | if (unlikely(!apic_enabled(apic))) |
374 | break; | 374 | break; |
375 | 375 | ||
376 | if (trig_mode) { | ||
377 | apic_debug("level trig mode for vector %d", vector); | ||
378 | apic_set_vector(vector, apic->regs + APIC_TMR); | ||
379 | } else | ||
380 | apic_clear_vector(vector, apic->regs + APIC_TMR); | ||
381 | |||
376 | result = !apic_test_and_set_irr(vector, apic); | 382 | result = !apic_test_and_set_irr(vector, apic); |
377 | trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode, | 383 | trace_kvm_apic_accept_irq(vcpu->vcpu_id, delivery_mode, |
378 | trig_mode, vector, !result); | 384 | trig_mode, vector, !result); |
@@ -383,11 +389,6 @@ static int __apic_accept_irq(struct kvm_lapic *apic, int delivery_mode, | |||
383 | break; | 389 | break; |
384 | } | 390 | } |
385 | 391 | ||
386 | if (trig_mode) { | ||
387 | apic_debug("level trig mode for vector %d", vector); | ||
388 | apic_set_vector(vector, apic->regs + APIC_TMR); | ||
389 | } else | ||
390 | apic_clear_vector(vector, apic->regs + APIC_TMR); | ||
391 | kvm_vcpu_kick(vcpu); | 392 | kvm_vcpu_kick(vcpu); |
392 | break; | 393 | break; |
393 | 394 | ||
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index 4c3e5b2314cb..89a49fb46a27 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
@@ -477,7 +477,7 @@ static int host_mapping_level(struct kvm *kvm, gfn_t gfn) | |||
477 | 477 | ||
478 | addr = gfn_to_hva(kvm, gfn); | 478 | addr = gfn_to_hva(kvm, gfn); |
479 | if (kvm_is_error_hva(addr)) | 479 | if (kvm_is_error_hva(addr)) |
480 | return page_size; | 480 | return PT_PAGE_TABLE_LEVEL; |
481 | 481 | ||
482 | down_read(¤t->mm->mmap_sem); | 482 | down_read(¤t->mm->mmap_sem); |
483 | vma = find_vma(current->mm, addr); | 483 | vma = find_vma(current->mm, addr); |
@@ -515,11 +515,9 @@ static int mapping_level(struct kvm_vcpu *vcpu, gfn_t large_gfn) | |||
515 | if (host_level == PT_PAGE_TABLE_LEVEL) | 515 | if (host_level == PT_PAGE_TABLE_LEVEL) |
516 | return host_level; | 516 | return host_level; |
517 | 517 | ||
518 | for (level = PT_DIRECTORY_LEVEL; level <= host_level; ++level) { | 518 | for (level = PT_DIRECTORY_LEVEL; level <= host_level; ++level) |
519 | |||
520 | if (has_wrprotected_page(vcpu->kvm, large_gfn, level)) | 519 | if (has_wrprotected_page(vcpu->kvm, large_gfn, level)) |
521 | break; | 520 | break; |
522 | } | ||
523 | 521 | ||
524 | return level - 1; | 522 | return level - 1; |
525 | } | 523 | } |
diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h index 58a0f1e88596..ede2131a9225 100644 --- a/arch/x86/kvm/paging_tmpl.h +++ b/arch/x86/kvm/paging_tmpl.h | |||
@@ -150,7 +150,9 @@ walk: | |||
150 | walker->table_gfn[walker->level - 1] = table_gfn; | 150 | walker->table_gfn[walker->level - 1] = table_gfn; |
151 | walker->pte_gpa[walker->level - 1] = pte_gpa; | 151 | walker->pte_gpa[walker->level - 1] = pte_gpa; |
152 | 152 | ||
153 | kvm_read_guest(vcpu->kvm, pte_gpa, &pte, sizeof(pte)); | 153 | if (kvm_read_guest(vcpu->kvm, pte_gpa, &pte, sizeof(pte))) |
154 | goto not_present; | ||
155 | |||
154 | trace_kvm_mmu_paging_element(pte, walker->level); | 156 | trace_kvm_mmu_paging_element(pte, walker->level); |
155 | 157 | ||
156 | if (!is_present_gpte(pte)) | 158 | if (!is_present_gpte(pte)) |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 6651dbf58675..a1e1bc9d412d 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
@@ -670,7 +670,7 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) | |||
670 | { | 670 | { |
671 | static int version; | 671 | static int version; |
672 | struct pvclock_wall_clock wc; | 672 | struct pvclock_wall_clock wc; |
673 | struct timespec now, sys, boot; | 673 | struct timespec boot; |
674 | 674 | ||
675 | if (!wall_clock) | 675 | if (!wall_clock) |
676 | return; | 676 | return; |
@@ -685,9 +685,7 @@ static void kvm_write_wall_clock(struct kvm *kvm, gpa_t wall_clock) | |||
685 | * wall clock specified here. guest system time equals host | 685 | * wall clock specified here. guest system time equals host |
686 | * system time for us, thus we must fill in host boot time here. | 686 | * system time for us, thus we must fill in host boot time here. |
687 | */ | 687 | */ |
688 | now = current_kernel_time(); | 688 | getboottime(&boot); |
689 | ktime_get_ts(&sys); | ||
690 | boot = ns_to_timespec(timespec_to_ns(&now) - timespec_to_ns(&sys)); | ||
691 | 689 | ||
692 | wc.sec = boot.tv_sec; | 690 | wc.sec = boot.tv_sec; |
693 | wc.nsec = boot.tv_nsec; | 691 | wc.nsec = boot.tv_nsec; |
@@ -762,6 +760,7 @@ static void kvm_write_guest_time(struct kvm_vcpu *v) | |||
762 | local_irq_save(flags); | 760 | local_irq_save(flags); |
763 | kvm_get_msr(v, MSR_IA32_TSC, &vcpu->hv_clock.tsc_timestamp); | 761 | kvm_get_msr(v, MSR_IA32_TSC, &vcpu->hv_clock.tsc_timestamp); |
764 | ktime_get_ts(&ts); | 762 | ktime_get_ts(&ts); |
763 | monotonic_to_bootbased(&ts); | ||
765 | local_irq_restore(flags); | 764 | local_irq_restore(flags); |
766 | 765 | ||
767 | /* With all the info we got, fill in the values */ | 766 | /* With all the info we got, fill in the values */ |
@@ -5072,12 +5071,13 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu) | |||
5072 | GFP_KERNEL); | 5071 | GFP_KERNEL); |
5073 | if (!vcpu->arch.mce_banks) { | 5072 | if (!vcpu->arch.mce_banks) { |
5074 | r = -ENOMEM; | 5073 | r = -ENOMEM; |
5075 | goto fail_mmu_destroy; | 5074 | goto fail_free_lapic; |
5076 | } | 5075 | } |
5077 | vcpu->arch.mcg_cap = KVM_MAX_MCE_BANKS; | 5076 | vcpu->arch.mcg_cap = KVM_MAX_MCE_BANKS; |
5078 | 5077 | ||
5079 | return 0; | 5078 | return 0; |
5080 | 5079 | fail_free_lapic: | |
5080 | kvm_free_lapic(vcpu); | ||
5081 | fail_mmu_destroy: | 5081 | fail_mmu_destroy: |
5082 | kvm_mmu_destroy(vcpu); | 5082 | kvm_mmu_destroy(vcpu); |
5083 | fail_free_pio_data: | 5083 | fail_free_pio_data: |
@@ -5088,6 +5088,7 @@ fail: | |||
5088 | 5088 | ||
5089 | void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) | 5089 | void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu) |
5090 | { | 5090 | { |
5091 | kfree(vcpu->arch.mce_banks); | ||
5091 | kvm_free_lapic(vcpu); | 5092 | kvm_free_lapic(vcpu); |
5092 | down_read(&vcpu->kvm->slots_lock); | 5093 | down_read(&vcpu->kvm->slots_lock); |
5093 | kvm_mmu_destroy(vcpu); | 5094 | kvm_mmu_destroy(vcpu); |
diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c index 71da1bca13cb..738e6593799d 100644 --- a/arch/x86/mm/gup.c +++ b/arch/x86/mm/gup.c | |||
@@ -18,7 +18,7 @@ static inline pte_t gup_get_pte(pte_t *ptep) | |||
18 | #else | 18 | #else |
19 | /* | 19 | /* |
20 | * With get_user_pages_fast, we walk down the pagetables without taking | 20 | * With get_user_pages_fast, we walk down the pagetables without taking |
21 | * any locks. For this we would like to load the pointers atoimcally, | 21 | * any locks. For this we would like to load the pointers atomically, |
22 | * but that is not possible (without expensive cmpxchg8b) on PAE. What | 22 | * but that is not possible (without expensive cmpxchg8b) on PAE. What |
23 | * we do have is the guarantee that a pte will only either go from not | 23 | * we do have is the guarantee that a pte will only either go from not |
24 | * present to present, or present to not present or both -- it will not | 24 | * present to present, or present to not present or both -- it will not |
diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c index 5198b9bb34ef..69ddfbd91135 100644 --- a/arch/x86/mm/init_64.c +++ b/arch/x86/mm/init_64.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <asm/numa.h> | 49 | #include <asm/numa.h> |
50 | #include <asm/cacheflush.h> | 50 | #include <asm/cacheflush.h> |
51 | #include <asm/init.h> | 51 | #include <asm/init.h> |
52 | #include <linux/bootmem.h> | ||
52 | 53 | ||
53 | static unsigned long dma_reserve __initdata; | 54 | static unsigned long dma_reserve __initdata; |
54 | 55 | ||
@@ -616,6 +617,21 @@ void __init paging_init(void) | |||
616 | */ | 617 | */ |
617 | #ifdef CONFIG_MEMORY_HOTPLUG | 618 | #ifdef CONFIG_MEMORY_HOTPLUG |
618 | /* | 619 | /* |
620 | * After memory hotplug the variables max_pfn, max_low_pfn and high_memory need | ||
621 | * updating. | ||
622 | */ | ||
623 | static void update_end_of_memory_vars(u64 start, u64 size) | ||
624 | { | ||
625 | unsigned long end_pfn = PFN_UP(start + size); | ||
626 | |||
627 | if (end_pfn > max_pfn) { | ||
628 | max_pfn = end_pfn; | ||
629 | max_low_pfn = end_pfn; | ||
630 | high_memory = (void *)__va(max_pfn * PAGE_SIZE - 1) + 1; | ||
631 | } | ||
632 | } | ||
633 | |||
634 | /* | ||
619 | * Memory is added always to NORMAL zone. This means you will never get | 635 | * Memory is added always to NORMAL zone. This means you will never get |
620 | * additional DMA/DMA32 memory. | 636 | * additional DMA/DMA32 memory. |
621 | */ | 637 | */ |
@@ -634,6 +650,9 @@ int arch_add_memory(int nid, u64 start, u64 size) | |||
634 | ret = __add_pages(nid, zone, start_pfn, nr_pages); | 650 | ret = __add_pages(nid, zone, start_pfn, nr_pages); |
635 | WARN_ON_ONCE(ret); | 651 | WARN_ON_ONCE(ret); |
636 | 652 | ||
653 | /* update max_pfn, max_low_pfn and high_memory */ | ||
654 | update_end_of_memory_vars(start, size); | ||
655 | |||
637 | return ret; | 656 | return ret; |
638 | } | 657 | } |
639 | EXPORT_SYMBOL_GPL(arch_add_memory); | 658 | EXPORT_SYMBOL_GPL(arch_add_memory); |
diff --git a/arch/x86/mm/srat_64.c b/arch/x86/mm/srat_64.c index a27124185fc1..28c68762648f 100644 --- a/arch/x86/mm/srat_64.c +++ b/arch/x86/mm/srat_64.c | |||
@@ -229,9 +229,11 @@ update_nodes_add(int node, unsigned long start, unsigned long end) | |||
229 | printk(KERN_ERR "SRAT: Hotplug zone not continuous. Partly ignored\n"); | 229 | printk(KERN_ERR "SRAT: Hotplug zone not continuous. Partly ignored\n"); |
230 | } | 230 | } |
231 | 231 | ||
232 | if (changed) | 232 | if (changed) { |
233 | node_set(node, cpu_nodes_parsed); | ||
233 | printk(KERN_INFO "SRAT: hot plug zone found %Lx - %Lx\n", | 234 | printk(KERN_INFO "SRAT: hot plug zone found %Lx - %Lx\n", |
234 | nd->start, nd->end); | 235 | nd->start, nd->end); |
236 | } | ||
235 | } | 237 | } |
236 | 238 | ||
237 | /* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ | 239 | /* Callback for parsing of the Proximity Domain <-> Memory Area mappings */ |
diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c index cb88b1a0bd5f..3347f696edc7 100644 --- a/arch/x86/oprofile/nmi_int.c +++ b/arch/x86/oprofile/nmi_int.c | |||
@@ -222,7 +222,7 @@ static void nmi_cpu_switch(void *dummy) | |||
222 | 222 | ||
223 | /* move to next set */ | 223 | /* move to next set */ |
224 | si += model->num_counters; | 224 | si += model->num_counters; |
225 | if ((si > model->num_virt_counters) || (counter_config[si].count == 0)) | 225 | if ((si >= model->num_virt_counters) || (counter_config[si].count == 0)) |
226 | per_cpu(switch_index, cpu) = 0; | 226 | per_cpu(switch_index, cpu) = 0; |
227 | else | 227 | else |
228 | per_cpu(switch_index, cpu) = si; | 228 | per_cpu(switch_index, cpu) = si; |
@@ -598,6 +598,7 @@ static int __init ppro_init(char **cpu_type) | |||
598 | case 15: case 23: | 598 | case 15: case 23: |
599 | *cpu_type = "i386/core_2"; | 599 | *cpu_type = "i386/core_2"; |
600 | break; | 600 | break; |
601 | case 0x2e: | ||
601 | case 26: | 602 | case 26: |
602 | spec = &op_arch_perfmon_spec; | 603 | spec = &op_arch_perfmon_spec; |
603 | *cpu_type = "i386/core_i7"; | 604 | *cpu_type = "i386/core_i7"; |
diff --git a/arch/x86/pci/Makefile b/arch/x86/pci/Makefile index 564b008a51c7..39fba37f702f 100644 --- a/arch/x86/pci/Makefile +++ b/arch/x86/pci/Makefile | |||
@@ -15,7 +15,7 @@ obj-$(CONFIG_X86_NUMAQ) += numaq_32.o | |||
15 | 15 | ||
16 | obj-y += common.o early.o | 16 | obj-y += common.o early.o |
17 | obj-y += amd_bus.o | 17 | obj-y += amd_bus.o |
18 | obj-$(CONFIG_X86_64) += bus_numa.o intel_bus.o | 18 | obj-$(CONFIG_X86_64) += bus_numa.o |
19 | 19 | ||
20 | ifeq ($(CONFIG_PCI_DEBUG),y) | 20 | ifeq ($(CONFIG_PCI_DEBUG),y) |
21 | EXTRA_CFLAGS += -DDEBUG | 21 | EXTRA_CFLAGS += -DDEBUG |
diff --git a/arch/x86/pci/intel_bus.c b/arch/x86/pci/intel_bus.c deleted file mode 100644 index f81a2fa8fe25..000000000000 --- a/arch/x86/pci/intel_bus.c +++ /dev/null | |||
@@ -1,94 +0,0 @@ | |||
1 | /* | ||
2 | * to read io range from IOH pci conf, need to do it after mmconfig is there | ||
3 | */ | ||
4 | |||
5 | #include <linux/delay.h> | ||
6 | #include <linux/dmi.h> | ||
7 | #include <linux/pci.h> | ||
8 | #include <linux/init.h> | ||
9 | #include <asm/pci_x86.h> | ||
10 | |||
11 | #include "bus_numa.h" | ||
12 | |||
13 | static inline void print_ioh_resources(struct pci_root_info *info) | ||
14 | { | ||
15 | int res_num; | ||
16 | int busnum; | ||
17 | int i; | ||
18 | |||
19 | printk(KERN_DEBUG "IOH bus: [%02x, %02x]\n", | ||
20 | info->bus_min, info->bus_max); | ||
21 | res_num = info->res_num; | ||
22 | busnum = info->bus_min; | ||
23 | for (i = 0; i < res_num; i++) { | ||
24 | struct resource *res; | ||
25 | |||
26 | res = &info->res[i]; | ||
27 | printk(KERN_DEBUG "IOH bus: %02x index %x %s: [%llx, %llx]\n", | ||
28 | busnum, i, | ||
29 | (res->flags & IORESOURCE_IO) ? "io port" : | ||
30 | "mmio", | ||
31 | res->start, res->end); | ||
32 | } | ||
33 | } | ||
34 | |||
35 | #define IOH_LIO 0x108 | ||
36 | #define IOH_LMMIOL 0x10c | ||
37 | #define IOH_LMMIOH 0x110 | ||
38 | #define IOH_LMMIOH_BASEU 0x114 | ||
39 | #define IOH_LMMIOH_LIMITU 0x118 | ||
40 | #define IOH_LCFGBUS 0x11c | ||
41 | |||
42 | static void __devinit pci_root_bus_res(struct pci_dev *dev) | ||
43 | { | ||
44 | u16 word; | ||
45 | u32 dword; | ||
46 | struct pci_root_info *info; | ||
47 | u16 io_base, io_end; | ||
48 | u32 mmiol_base, mmiol_end; | ||
49 | u64 mmioh_base, mmioh_end; | ||
50 | int bus_base, bus_end; | ||
51 | |||
52 | /* some sys doesn't get mmconf enabled */ | ||
53 | if (dev->cfg_size < 0x120) | ||
54 | return; | ||
55 | |||
56 | if (pci_root_num >= PCI_ROOT_NR) { | ||
57 | printk(KERN_DEBUG "intel_bus.c: PCI_ROOT_NR is too small\n"); | ||
58 | return; | ||
59 | } | ||
60 | |||
61 | info = &pci_root_info[pci_root_num]; | ||
62 | pci_root_num++; | ||
63 | |||
64 | pci_read_config_word(dev, IOH_LCFGBUS, &word); | ||
65 | bus_base = (word & 0xff); | ||
66 | bus_end = (word & 0xff00) >> 8; | ||
67 | sprintf(info->name, "PCI Bus #%02x", bus_base); | ||
68 | info->bus_min = bus_base; | ||
69 | info->bus_max = bus_end; | ||
70 | |||
71 | pci_read_config_word(dev, IOH_LIO, &word); | ||
72 | io_base = (word & 0xf0) << (12 - 4); | ||
73 | io_end = (word & 0xf000) | 0xfff; | ||
74 | update_res(info, io_base, io_end, IORESOURCE_IO, 0); | ||
75 | |||
76 | pci_read_config_dword(dev, IOH_LMMIOL, &dword); | ||
77 | mmiol_base = (dword & 0xff00) << (24 - 8); | ||
78 | mmiol_end = (dword & 0xff000000) | 0xffffff; | ||
79 | update_res(info, mmiol_base, mmiol_end, IORESOURCE_MEM, 0); | ||
80 | |||
81 | pci_read_config_dword(dev, IOH_LMMIOH, &dword); | ||
82 | mmioh_base = ((u64)(dword & 0xfc00)) << (26 - 10); | ||
83 | mmioh_end = ((u64)(dword & 0xfc000000) | 0x3ffffff); | ||
84 | pci_read_config_dword(dev, IOH_LMMIOH_BASEU, &dword); | ||
85 | mmioh_base |= ((u64)(dword & 0x7ffff)) << 32; | ||
86 | pci_read_config_dword(dev, IOH_LMMIOH_LIMITU, &dword); | ||
87 | mmioh_end |= ((u64)(dword & 0x7ffff)) << 32; | ||
88 | update_res(info, mmioh_base, mmioh_end, IORESOURCE_MEM, 0); | ||
89 | |||
90 | print_ioh_resources(info); | ||
91 | } | ||
92 | |||
93 | /* intel IOH */ | ||
94 | DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, 0x342e, pci_root_bus_res); | ||
diff --git a/block/blk-cgroup.c b/block/blk-cgroup.c index 1fa2654db0a6..e7dbbaf5fb3e 100644 --- a/block/blk-cgroup.c +++ b/block/blk-cgroup.c | |||
@@ -147,16 +147,16 @@ blkiocg_weight_write(struct cgroup *cgroup, struct cftype *cftype, u64 val) | |||
147 | return -EINVAL; | 147 | return -EINVAL; |
148 | 148 | ||
149 | blkcg = cgroup_to_blkio_cgroup(cgroup); | 149 | blkcg = cgroup_to_blkio_cgroup(cgroup); |
150 | spin_lock(&blkio_list_lock); | ||
150 | spin_lock_irq(&blkcg->lock); | 151 | spin_lock_irq(&blkcg->lock); |
151 | blkcg->weight = (unsigned int)val; | 152 | blkcg->weight = (unsigned int)val; |
152 | hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node) { | 153 | hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node) { |
153 | spin_lock(&blkio_list_lock); | ||
154 | list_for_each_entry(blkiop, &blkio_list, list) | 154 | list_for_each_entry(blkiop, &blkio_list, list) |
155 | blkiop->ops.blkio_update_group_weight_fn(blkg, | 155 | blkiop->ops.blkio_update_group_weight_fn(blkg, |
156 | blkcg->weight); | 156 | blkcg->weight); |
157 | spin_unlock(&blkio_list_lock); | ||
158 | } | 157 | } |
159 | spin_unlock_irq(&blkcg->lock); | 158 | spin_unlock_irq(&blkcg->lock); |
159 | spin_unlock(&blkio_list_lock); | ||
160 | return 0; | 160 | return 0; |
161 | } | 161 | } |
162 | 162 | ||
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c index ee130f14d1fc..023f4e69a337 100644 --- a/block/cfq-iosched.c +++ b/block/cfq-iosched.c | |||
@@ -42,16 +42,13 @@ static const int cfq_hist_divisor = 4; | |||
42 | */ | 42 | */ |
43 | #define CFQ_MIN_TT (2) | 43 | #define CFQ_MIN_TT (2) |
44 | 44 | ||
45 | /* | ||
46 | * Allow merged cfqqs to perform this amount of seeky I/O before | ||
47 | * deciding to break the queues up again. | ||
48 | */ | ||
49 | #define CFQQ_COOP_TOUT (HZ) | ||
50 | |||
51 | #define CFQ_SLICE_SCALE (5) | 45 | #define CFQ_SLICE_SCALE (5) |
52 | #define CFQ_HW_QUEUE_MIN (5) | 46 | #define CFQ_HW_QUEUE_MIN (5) |
53 | #define CFQ_SERVICE_SHIFT 12 | 47 | #define CFQ_SERVICE_SHIFT 12 |
54 | 48 | ||
49 | #define CFQQ_SEEK_THR 8 * 1024 | ||
50 | #define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR) | ||
51 | |||
55 | #define RQ_CIC(rq) \ | 52 | #define RQ_CIC(rq) \ |
56 | ((struct cfq_io_context *) (rq)->elevator_private) | 53 | ((struct cfq_io_context *) (rq)->elevator_private) |
57 | #define RQ_CFQQ(rq) (struct cfq_queue *) ((rq)->elevator_private2) | 54 | #define RQ_CFQQ(rq) (struct cfq_queue *) ((rq)->elevator_private2) |
@@ -137,7 +134,6 @@ struct cfq_queue { | |||
137 | u64 seek_total; | 134 | u64 seek_total; |
138 | sector_t seek_mean; | 135 | sector_t seek_mean; |
139 | sector_t last_request_pos; | 136 | sector_t last_request_pos; |
140 | unsigned long seeky_start; | ||
141 | 137 | ||
142 | pid_t pid; | 138 | pid_t pid; |
143 | 139 | ||
@@ -314,6 +310,7 @@ enum cfqq_state_flags { | |||
314 | CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */ | 310 | CFQ_CFQQ_FLAG_slice_new, /* no requests dispatched in slice */ |
315 | CFQ_CFQQ_FLAG_sync, /* synchronous queue */ | 311 | CFQ_CFQQ_FLAG_sync, /* synchronous queue */ |
316 | CFQ_CFQQ_FLAG_coop, /* cfqq is shared */ | 312 | CFQ_CFQQ_FLAG_coop, /* cfqq is shared */ |
313 | CFQ_CFQQ_FLAG_split_coop, /* shared cfqq will be splitted */ | ||
317 | CFQ_CFQQ_FLAG_deep, /* sync cfqq experienced large depth */ | 314 | CFQ_CFQQ_FLAG_deep, /* sync cfqq experienced large depth */ |
318 | CFQ_CFQQ_FLAG_wait_busy, /* Waiting for next request */ | 315 | CFQ_CFQQ_FLAG_wait_busy, /* Waiting for next request */ |
319 | }; | 316 | }; |
@@ -342,6 +339,7 @@ CFQ_CFQQ_FNS(prio_changed); | |||
342 | CFQ_CFQQ_FNS(slice_new); | 339 | CFQ_CFQQ_FNS(slice_new); |
343 | CFQ_CFQQ_FNS(sync); | 340 | CFQ_CFQQ_FNS(sync); |
344 | CFQ_CFQQ_FNS(coop); | 341 | CFQ_CFQQ_FNS(coop); |
342 | CFQ_CFQQ_FNS(split_coop); | ||
345 | CFQ_CFQQ_FNS(deep); | 343 | CFQ_CFQQ_FNS(deep); |
346 | CFQ_CFQQ_FNS(wait_busy); | 344 | CFQ_CFQQ_FNS(wait_busy); |
347 | #undef CFQ_CFQQ_FNS | 345 | #undef CFQ_CFQQ_FNS |
@@ -1566,6 +1564,15 @@ __cfq_slice_expired(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
1566 | cfq_clear_cfqq_wait_busy(cfqq); | 1564 | cfq_clear_cfqq_wait_busy(cfqq); |
1567 | 1565 | ||
1568 | /* | 1566 | /* |
1567 | * If this cfqq is shared between multiple processes, check to | ||
1568 | * make sure that those processes are still issuing I/Os within | ||
1569 | * the mean seek distance. If not, it may be time to break the | ||
1570 | * queues apart again. | ||
1571 | */ | ||
1572 | if (cfq_cfqq_coop(cfqq) && CFQQ_SEEKY(cfqq)) | ||
1573 | cfq_mark_cfqq_split_coop(cfqq); | ||
1574 | |||
1575 | /* | ||
1569 | * store what was left of this slice, if the queue idled/timed out | 1576 | * store what was left of this slice, if the queue idled/timed out |
1570 | */ | 1577 | */ |
1571 | if (timed_out && !cfq_cfqq_slice_new(cfqq)) { | 1578 | if (timed_out && !cfq_cfqq_slice_new(cfqq)) { |
@@ -1663,9 +1670,6 @@ static inline sector_t cfq_dist_from_last(struct cfq_data *cfqd, | |||
1663 | return cfqd->last_position - blk_rq_pos(rq); | 1670 | return cfqd->last_position - blk_rq_pos(rq); |
1664 | } | 1671 | } |
1665 | 1672 | ||
1666 | #define CFQQ_SEEK_THR 8 * 1024 | ||
1667 | #define CFQQ_SEEKY(cfqq) ((cfqq)->seek_mean > CFQQ_SEEK_THR) | ||
1668 | |||
1669 | static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq, | 1673 | static inline int cfq_rq_close(struct cfq_data *cfqd, struct cfq_queue *cfqq, |
1670 | struct request *rq, bool for_preempt) | 1674 | struct request *rq, bool for_preempt) |
1671 | { | 1675 | { |
@@ -1803,7 +1807,7 @@ static bool cfq_should_idle(struct cfq_data *cfqd, struct cfq_queue *cfqq) | |||
1803 | * Otherwise, we do only if they are the last ones | 1807 | * Otherwise, we do only if they are the last ones |
1804 | * in their service tree. | 1808 | * in their service tree. |
1805 | */ | 1809 | */ |
1806 | return service_tree->count == 1; | 1810 | return service_tree->count == 1 && cfq_cfqq_sync(cfqq); |
1807 | } | 1811 | } |
1808 | 1812 | ||
1809 | static void cfq_arm_slice_timer(struct cfq_data *cfqd) | 1813 | static void cfq_arm_slice_timer(struct cfq_data *cfqd) |
@@ -3000,19 +3004,6 @@ cfq_update_io_seektime(struct cfq_data *cfqd, struct cfq_queue *cfqq, | |||
3000 | total = cfqq->seek_total + (cfqq->seek_samples/2); | 3004 | total = cfqq->seek_total + (cfqq->seek_samples/2); |
3001 | do_div(total, cfqq->seek_samples); | 3005 | do_div(total, cfqq->seek_samples); |
3002 | cfqq->seek_mean = (sector_t)total; | 3006 | cfqq->seek_mean = (sector_t)total; |
3003 | |||
3004 | /* | ||
3005 | * If this cfqq is shared between multiple processes, check to | ||
3006 | * make sure that those processes are still issuing I/Os within | ||
3007 | * the mean seek distance. If not, it may be time to break the | ||
3008 | * queues apart again. | ||
3009 | */ | ||
3010 | if (cfq_cfqq_coop(cfqq)) { | ||
3011 | if (CFQQ_SEEKY(cfqq) && !cfqq->seeky_start) | ||
3012 | cfqq->seeky_start = jiffies; | ||
3013 | else if (!CFQQ_SEEKY(cfqq)) | ||
3014 | cfqq->seeky_start = 0; | ||
3015 | } | ||
3016 | } | 3007 | } |
3017 | 3008 | ||
3018 | /* | 3009 | /* |
@@ -3453,14 +3444,6 @@ cfq_merge_cfqqs(struct cfq_data *cfqd, struct cfq_io_context *cic, | |||
3453 | return cic_to_cfqq(cic, 1); | 3444 | return cic_to_cfqq(cic, 1); |
3454 | } | 3445 | } |
3455 | 3446 | ||
3456 | static int should_split_cfqq(struct cfq_queue *cfqq) | ||
3457 | { | ||
3458 | if (cfqq->seeky_start && | ||
3459 | time_after(jiffies, cfqq->seeky_start + CFQQ_COOP_TOUT)) | ||
3460 | return 1; | ||
3461 | return 0; | ||
3462 | } | ||
3463 | |||
3464 | /* | 3447 | /* |
3465 | * Returns NULL if a new cfqq should be allocated, or the old cfqq if this | 3448 | * Returns NULL if a new cfqq should be allocated, or the old cfqq if this |
3466 | * was the last process referring to said cfqq. | 3449 | * was the last process referring to said cfqq. |
@@ -3469,9 +3452,9 @@ static struct cfq_queue * | |||
3469 | split_cfqq(struct cfq_io_context *cic, struct cfq_queue *cfqq) | 3452 | split_cfqq(struct cfq_io_context *cic, struct cfq_queue *cfqq) |
3470 | { | 3453 | { |
3471 | if (cfqq_process_refs(cfqq) == 1) { | 3454 | if (cfqq_process_refs(cfqq) == 1) { |
3472 | cfqq->seeky_start = 0; | ||
3473 | cfqq->pid = current->pid; | 3455 | cfqq->pid = current->pid; |
3474 | cfq_clear_cfqq_coop(cfqq); | 3456 | cfq_clear_cfqq_coop(cfqq); |
3457 | cfq_clear_cfqq_split_coop(cfqq); | ||
3475 | return cfqq; | 3458 | return cfqq; |
3476 | } | 3459 | } |
3477 | 3460 | ||
@@ -3510,7 +3493,7 @@ new_queue: | |||
3510 | /* | 3493 | /* |
3511 | * If the queue was seeky for too long, break it apart. | 3494 | * If the queue was seeky for too long, break it apart. |
3512 | */ | 3495 | */ |
3513 | if (cfq_cfqq_coop(cfqq) && should_split_cfqq(cfqq)) { | 3496 | if (cfq_cfqq_coop(cfqq) && cfq_cfqq_split_coop(cfqq)) { |
3514 | cfq_log_cfqq(cfqd, cfqq, "breaking apart cfqq"); | 3497 | cfq_log_cfqq(cfqd, cfqq, "breaking apart cfqq"); |
3515 | cfqq = split_cfqq(cic, cfqq); | 3498 | cfqq = split_cfqq(cic, cfqq); |
3516 | if (!cfqq) | 3499 | if (!cfqq) |
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c index b8bea100a160..b34390347c16 100644 --- a/drivers/ata/ahci.c +++ b/drivers/ata/ahci.c | |||
@@ -2868,6 +2868,21 @@ static bool ahci_broken_suspend(struct pci_dev *pdev) | |||
2868 | }, | 2868 | }, |
2869 | .driver_data = "F.23", /* cutoff BIOS version */ | 2869 | .driver_data = "F.23", /* cutoff BIOS version */ |
2870 | }, | 2870 | }, |
2871 | /* | ||
2872 | * Acer eMachines G725 has the same problem. BIOS | ||
2873 | * V1.03 is known to be broken. V3.04 is known to | ||
2874 | * work. Inbetween, there are V1.06, V2.06 and V3.03 | ||
2875 | * that we don't have much idea about. For now, | ||
2876 | * blacklist anything older than V3.04. | ||
2877 | */ | ||
2878 | { | ||
2879 | .ident = "G725", | ||
2880 | .matches = { | ||
2881 | DMI_MATCH(DMI_SYS_VENDOR, "eMachines"), | ||
2882 | DMI_MATCH(DMI_PRODUCT_NAME, "eMachines G725"), | ||
2883 | }, | ||
2884 | .driver_data = "V3.04", /* cutoff BIOS version */ | ||
2885 | }, | ||
2871 | { } /* terminate list */ | 2886 | { } /* terminate list */ |
2872 | }; | 2887 | }; |
2873 | const struct dmi_system_id *dmi = dmi_first_match(sysids); | 2888 | const struct dmi_system_id *dmi = dmi_first_match(sysids); |
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c index f4ea5a8c325b..d096fbcbc771 100644 --- a/drivers/ata/libata-scsi.c +++ b/drivers/ata/libata-scsi.c | |||
@@ -2875,7 +2875,7 @@ static unsigned int ata_scsi_pass_thru(struct ata_queued_cmd *qc) | |||
2875 | * write indication (used for PIO/DMA setup), result TF is | 2875 | * write indication (used for PIO/DMA setup), result TF is |
2876 | * copied back and we don't whine too much about its failure. | 2876 | * copied back and we don't whine too much about its failure. |
2877 | */ | 2877 | */ |
2878 | tf->flags = ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; | 2878 | tf->flags |= ATA_TFLAG_ISADDR | ATA_TFLAG_DEVICE; |
2879 | if (scmd->sc_data_direction == DMA_TO_DEVICE) | 2879 | if (scmd->sc_data_direction == DMA_TO_DEVICE) |
2880 | tf->flags |= ATA_TFLAG_WRITE; | 2880 | tf->flags |= ATA_TFLAG_WRITE; |
2881 | 2881 | ||
diff --git a/drivers/ata/libata-sff.c b/drivers/ata/libata-sff.c index 741065c9da67..730ef3c384ca 100644 --- a/drivers/ata/libata-sff.c +++ b/drivers/ata/libata-sff.c | |||
@@ -893,6 +893,9 @@ static void ata_pio_sector(struct ata_queued_cmd *qc) | |||
893 | do_write); | 893 | do_write); |
894 | } | 894 | } |
895 | 895 | ||
896 | if (!do_write) | ||
897 | flush_dcache_page(page); | ||
898 | |||
896 | qc->curbytes += qc->sect_size; | 899 | qc->curbytes += qc->sect_size; |
897 | qc->cursg_ofs += qc->sect_size; | 900 | qc->cursg_ofs += qc->sect_size; |
898 | 901 | ||
diff --git a/drivers/base/class.c b/drivers/base/class.c index 161746deab4b..6e2c3b064f53 100644 --- a/drivers/base/class.c +++ b/drivers/base/class.c | |||
@@ -59,6 +59,8 @@ static void class_release(struct kobject *kobj) | |||
59 | else | 59 | else |
60 | pr_debug("class '%s' does not have a release() function, " | 60 | pr_debug("class '%s' does not have a release() function, " |
61 | "be careful\n", class->name); | 61 | "be careful\n", class->name); |
62 | |||
63 | kfree(cp); | ||
62 | } | 64 | } |
63 | 65 | ||
64 | static struct sysfs_ops class_sysfs_ops = { | 66 | static struct sysfs_ops class_sysfs_ops = { |
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c index 873e594860d3..9291614ac6b7 100644 --- a/drivers/block/cciss.c +++ b/drivers/block/cciss.c | |||
@@ -337,6 +337,9 @@ static int cciss_seq_show(struct seq_file *seq, void *v) | |||
337 | if (*pos > h->highest_lun) | 337 | if (*pos > h->highest_lun) |
338 | return 0; | 338 | return 0; |
339 | 339 | ||
340 | if (drv == NULL) /* it's possible for h->drv[] to have holes. */ | ||
341 | return 0; | ||
342 | |||
340 | if (drv->heads == 0) | 343 | if (drv->heads == 0) |
341 | return 0; | 344 | return 0; |
342 | 345 | ||
diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c index e898ad9eb1c3..ab871e00ffc5 100644 --- a/drivers/block/drbd/drbd_main.c +++ b/drivers/block/drbd/drbd_main.c | |||
@@ -2973,7 +2973,6 @@ struct drbd_conf *drbd_new_device(unsigned int minor) | |||
2973 | goto out_no_q; | 2973 | goto out_no_q; |
2974 | mdev->rq_queue = q; | 2974 | mdev->rq_queue = q; |
2975 | q->queuedata = mdev; | 2975 | q->queuedata = mdev; |
2976 | blk_queue_max_segment_size(q, DRBD_MAX_SEGMENT_SIZE); | ||
2977 | 2976 | ||
2978 | disk = alloc_disk(1); | 2977 | disk = alloc_disk(1); |
2979 | if (!disk) | 2978 | if (!disk) |
@@ -2997,6 +2996,7 @@ struct drbd_conf *drbd_new_device(unsigned int minor) | |||
2997 | q->backing_dev_info.congested_data = mdev; | 2996 | q->backing_dev_info.congested_data = mdev; |
2998 | 2997 | ||
2999 | blk_queue_make_request(q, drbd_make_request_26); | 2998 | blk_queue_make_request(q, drbd_make_request_26); |
2999 | blk_queue_max_segment_size(q, DRBD_MAX_SEGMENT_SIZE); | ||
3000 | blk_queue_bounce_limit(q, BLK_BOUNCE_ANY); | 3000 | blk_queue_bounce_limit(q, BLK_BOUNCE_ANY); |
3001 | blk_queue_merge_bvec(q, drbd_merge_bvec); | 3001 | blk_queue_merge_bvec(q, drbd_merge_bvec); |
3002 | q->queue_lock = &mdev->req_lock; /* needed since we use */ | 3002 | q->queue_lock = &mdev->req_lock; /* needed since we use */ |
diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c index f22a5283128a..d065c646b35a 100644 --- a/drivers/block/drbd/drbd_receiver.c +++ b/drivers/block/drbd/drbd_receiver.c | |||
@@ -1224,7 +1224,7 @@ static int receive_Barrier(struct drbd_conf *mdev, struct p_header *h) | |||
1224 | epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO); | 1224 | epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO); |
1225 | if (!epoch) { | 1225 | if (!epoch) { |
1226 | dev_warn(DEV, "Allocation of an epoch failed, slowing down\n"); | 1226 | dev_warn(DEV, "Allocation of an epoch failed, slowing down\n"); |
1227 | issue_flush = !test_and_set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &epoch->flags); | 1227 | issue_flush = !test_and_set_bit(DE_BARRIER_IN_NEXT_EPOCH_ISSUED, &mdev->current_epoch->flags); |
1228 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); | 1228 | drbd_wait_ee_list_empty(mdev, &mdev->active_ee); |
1229 | if (issue_flush) { | 1229 | if (issue_flush) { |
1230 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); | 1230 | rv = drbd_flush_after_epoch(mdev, mdev->current_epoch); |
diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c index 2ddf03ae034e..68b5957f107c 100644 --- a/drivers/block/pktcdvd.c +++ b/drivers/block/pktcdvd.c | |||
@@ -322,7 +322,7 @@ static void pkt_sysfs_dev_remove(struct pktcdvd_device *pd) | |||
322 | pkt_kobj_remove(pd->kobj_stat); | 322 | pkt_kobj_remove(pd->kobj_stat); |
323 | pkt_kobj_remove(pd->kobj_wqueue); | 323 | pkt_kobj_remove(pd->kobj_wqueue); |
324 | if (class_pktcdvd) | 324 | if (class_pktcdvd) |
325 | device_destroy(class_pktcdvd, pd->pkt_dev); | 325 | device_unregister(pd->dev); |
326 | } | 326 | } |
327 | 327 | ||
328 | 328 | ||
diff --git a/drivers/char/agp/amd64-agp.c b/drivers/char/agp/amd64-agp.c index 1afb8968a342..fd50ead59c79 100644 --- a/drivers/char/agp/amd64-agp.c +++ b/drivers/char/agp/amd64-agp.c | |||
@@ -729,9 +729,6 @@ int __init agp_amd64_init(void) | |||
729 | if (agp_off) | 729 | if (agp_off) |
730 | return -EINVAL; | 730 | return -EINVAL; |
731 | 731 | ||
732 | if (gart_iommu_aperture) | ||
733 | return agp_bridges_found ? 0 : -ENODEV; | ||
734 | |||
735 | err = pci_register_driver(&agp_amd64_pci_driver); | 732 | err = pci_register_driver(&agp_amd64_pci_driver); |
736 | if (err < 0) | 733 | if (err < 0) |
737 | return err; | 734 | return err; |
@@ -768,16 +765,27 @@ int __init agp_amd64_init(void) | |||
768 | return err; | 765 | return err; |
769 | } | 766 | } |
770 | 767 | ||
768 | static int __init agp_amd64_mod_init(void) | ||
769 | { | ||
770 | #ifndef MODULE | ||
771 | if (gart_iommu_aperture) | ||
772 | return agp_bridges_found ? 0 : -ENODEV; | ||
773 | #endif | ||
774 | return agp_amd64_init(); | ||
775 | } | ||
776 | |||
771 | static void __exit agp_amd64_cleanup(void) | 777 | static void __exit agp_amd64_cleanup(void) |
772 | { | 778 | { |
779 | #ifndef MODULE | ||
773 | if (gart_iommu_aperture) | 780 | if (gart_iommu_aperture) |
774 | return; | 781 | return; |
782 | #endif | ||
775 | if (aperture_resource) | 783 | if (aperture_resource) |
776 | release_resource(aperture_resource); | 784 | release_resource(aperture_resource); |
777 | pci_unregister_driver(&agp_amd64_pci_driver); | 785 | pci_unregister_driver(&agp_amd64_pci_driver); |
778 | } | 786 | } |
779 | 787 | ||
780 | module_init(agp_amd64_init); | 788 | module_init(agp_amd64_mod_init); |
781 | module_exit(agp_amd64_cleanup); | 789 | module_exit(agp_amd64_cleanup); |
782 | 790 | ||
783 | MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); | 791 | MODULE_AUTHOR("Dave Jones <davej@redhat.com>, Andi Kleen"); |
diff --git a/drivers/char/mem.c b/drivers/char/mem.c index be832b6f8279..48788db4e280 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c | |||
@@ -395,6 +395,7 @@ static ssize_t read_kmem(struct file *file, char __user *buf, | |||
395 | unsigned long p = *ppos; | 395 | unsigned long p = *ppos; |
396 | ssize_t low_count, read, sz; | 396 | ssize_t low_count, read, sz; |
397 | char * kbuf; /* k-addr because vread() takes vmlist_lock rwlock */ | 397 | char * kbuf; /* k-addr because vread() takes vmlist_lock rwlock */ |
398 | int err = 0; | ||
398 | 399 | ||
399 | read = 0; | 400 | read = 0; |
400 | if (p < (unsigned long) high_memory) { | 401 | if (p < (unsigned long) high_memory) { |
@@ -441,12 +442,16 @@ static ssize_t read_kmem(struct file *file, char __user *buf, | |||
441 | return -ENOMEM; | 442 | return -ENOMEM; |
442 | while (count > 0) { | 443 | while (count > 0) { |
443 | sz = size_inside_page(p, count); | 444 | sz = size_inside_page(p, count); |
445 | if (!is_vmalloc_or_module_addr((void *)p)) { | ||
446 | err = -ENXIO; | ||
447 | break; | ||
448 | } | ||
444 | sz = vread(kbuf, (char *)p, sz); | 449 | sz = vread(kbuf, (char *)p, sz); |
445 | if (!sz) | 450 | if (!sz) |
446 | break; | 451 | break; |
447 | if (copy_to_user(buf, kbuf, sz)) { | 452 | if (copy_to_user(buf, kbuf, sz)) { |
448 | free_page((unsigned long)kbuf); | 453 | err = -EFAULT; |
449 | return -EFAULT; | 454 | break; |
450 | } | 455 | } |
451 | count -= sz; | 456 | count -= sz; |
452 | buf += sz; | 457 | buf += sz; |
@@ -455,8 +460,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf, | |||
455 | } | 460 | } |
456 | free_page((unsigned long)kbuf); | 461 | free_page((unsigned long)kbuf); |
457 | } | 462 | } |
458 | *ppos = p; | 463 | *ppos = p; |
459 | return read; | 464 | return read ? read : err; |
460 | } | 465 | } |
461 | 466 | ||
462 | 467 | ||
@@ -520,6 +525,7 @@ static ssize_t write_kmem(struct file * file, const char __user * buf, | |||
520 | ssize_t wrote = 0; | 525 | ssize_t wrote = 0; |
521 | ssize_t virtr = 0; | 526 | ssize_t virtr = 0; |
522 | char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ | 527 | char * kbuf; /* k-addr because vwrite() takes vmlist_lock rwlock */ |
528 | int err = 0; | ||
523 | 529 | ||
524 | if (p < (unsigned long) high_memory) { | 530 | if (p < (unsigned long) high_memory) { |
525 | unsigned long to_write = min_t(unsigned long, count, | 531 | unsigned long to_write = min_t(unsigned long, count, |
@@ -540,14 +546,16 @@ static ssize_t write_kmem(struct file * file, const char __user * buf, | |||
540 | unsigned long sz = size_inside_page(p, count); | 546 | unsigned long sz = size_inside_page(p, count); |
541 | unsigned long n; | 547 | unsigned long n; |
542 | 548 | ||
549 | if (!is_vmalloc_or_module_addr((void *)p)) { | ||
550 | err = -ENXIO; | ||
551 | break; | ||
552 | } | ||
543 | n = copy_from_user(kbuf, buf, sz); | 553 | n = copy_from_user(kbuf, buf, sz); |
544 | if (n) { | 554 | if (n) { |
545 | if (wrote + virtr) | 555 | err = -EFAULT; |
546 | break; | 556 | break; |
547 | free_page((unsigned long)kbuf); | ||
548 | return -EFAULT; | ||
549 | } | 557 | } |
550 | sz = vwrite(kbuf, (char *)p, sz); | 558 | vwrite(kbuf, (char *)p, sz); |
551 | count -= sz; | 559 | count -= sz; |
552 | buf += sz; | 560 | buf += sz; |
553 | virtr += sz; | 561 | virtr += sz; |
@@ -556,8 +564,8 @@ static ssize_t write_kmem(struct file * file, const char __user * buf, | |||
556 | free_page((unsigned long)kbuf); | 564 | free_page((unsigned long)kbuf); |
557 | } | 565 | } |
558 | 566 | ||
559 | *ppos = p; | 567 | *ppos = p; |
560 | return virtr + wrote; | 568 | return virtr + wrote ? : err; |
561 | } | 569 | } |
562 | #endif | 570 | #endif |
563 | 571 | ||
diff --git a/drivers/char/random.c b/drivers/char/random.c index 8258982b49ec..2849713d2231 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c | |||
@@ -1051,12 +1051,6 @@ random_read(struct file *file, char __user *buf, size_t nbytes, loff_t *ppos) | |||
1051 | /* like a named pipe */ | 1051 | /* like a named pipe */ |
1052 | } | 1052 | } |
1053 | 1053 | ||
1054 | /* | ||
1055 | * If we gave the user some bytes, update the access time. | ||
1056 | */ | ||
1057 | if (count) | ||
1058 | file_accessed(file); | ||
1059 | |||
1060 | return (count ? count : retval); | 1054 | return (count ? count : retval); |
1061 | } | 1055 | } |
1062 | 1056 | ||
@@ -1107,7 +1101,6 @@ static ssize_t random_write(struct file *file, const char __user *buffer, | |||
1107 | size_t count, loff_t *ppos) | 1101 | size_t count, loff_t *ppos) |
1108 | { | 1102 | { |
1109 | size_t ret; | 1103 | size_t ret; |
1110 | struct inode *inode = file->f_path.dentry->d_inode; | ||
1111 | 1104 | ||
1112 | ret = write_pool(&blocking_pool, buffer, count); | 1105 | ret = write_pool(&blocking_pool, buffer, count); |
1113 | if (ret) | 1106 | if (ret) |
@@ -1116,8 +1109,6 @@ static ssize_t random_write(struct file *file, const char __user *buffer, | |||
1116 | if (ret) | 1109 | if (ret) |
1117 | return ret; | 1110 | return ret; |
1118 | 1111 | ||
1119 | inode->i_mtime = current_fs_time(inode->i_sb); | ||
1120 | mark_inode_dirty(inode); | ||
1121 | return (ssize_t)count; | 1112 | return (ssize_t)count; |
1122 | } | 1113 | } |
1123 | 1114 | ||
diff --git a/drivers/char/tpm/tpm_infineon.c b/drivers/char/tpm/tpm_infineon.c index ecba4942fc8e..f58440791e65 100644 --- a/drivers/char/tpm/tpm_infineon.c +++ b/drivers/char/tpm/tpm_infineon.c | |||
@@ -39,12 +39,12 @@ | |||
39 | struct tpm_inf_dev { | 39 | struct tpm_inf_dev { |
40 | int iotype; | 40 | int iotype; |
41 | 41 | ||
42 | void __iomem *mem_base; /* MMIO ioremap'd addr */ | 42 | void __iomem *mem_base; /* MMIO ioremap'd addr */ |
43 | unsigned long map_base; /* phys MMIO base */ | 43 | unsigned long map_base; /* phys MMIO base */ |
44 | unsigned long map_size; /* MMIO region size */ | 44 | unsigned long map_size; /* MMIO region size */ |
45 | unsigned int index_off; /* index register offset */ | 45 | unsigned int index_off; /* index register offset */ |
46 | 46 | ||
47 | unsigned int data_regs; /* Data registers */ | 47 | unsigned int data_regs; /* Data registers */ |
48 | unsigned int data_size; | 48 | unsigned int data_size; |
49 | 49 | ||
50 | unsigned int config_port; /* IO Port config index reg */ | 50 | unsigned int config_port; /* IO Port config index reg */ |
@@ -406,14 +406,14 @@ static const struct tpm_vendor_specific tpm_inf = { | |||
406 | .miscdev = {.fops = &inf_ops,}, | 406 | .miscdev = {.fops = &inf_ops,}, |
407 | }; | 407 | }; |
408 | 408 | ||
409 | static const struct pnp_device_id tpm_pnp_tbl[] = { | 409 | static const struct pnp_device_id tpm_inf_pnp_tbl[] = { |
410 | /* Infineon TPMs */ | 410 | /* Infineon TPMs */ |
411 | {"IFX0101", 0}, | 411 | {"IFX0101", 0}, |
412 | {"IFX0102", 0}, | 412 | {"IFX0102", 0}, |
413 | {"", 0} | 413 | {"", 0} |
414 | }; | 414 | }; |
415 | 415 | ||
416 | MODULE_DEVICE_TABLE(pnp, tpm_pnp_tbl); | 416 | MODULE_DEVICE_TABLE(pnp, tpm_inf_pnp_tbl); |
417 | 417 | ||
418 | static int __devinit tpm_inf_pnp_probe(struct pnp_dev *dev, | 418 | static int __devinit tpm_inf_pnp_probe(struct pnp_dev *dev, |
419 | const struct pnp_device_id *dev_id) | 419 | const struct pnp_device_id *dev_id) |
@@ -430,7 +430,7 @@ static int __devinit tpm_inf_pnp_probe(struct pnp_dev *dev, | |||
430 | if (pnp_port_valid(dev, 0) && pnp_port_valid(dev, 1) && | 430 | if (pnp_port_valid(dev, 0) && pnp_port_valid(dev, 1) && |
431 | !(pnp_port_flags(dev, 0) & IORESOURCE_DISABLED)) { | 431 | !(pnp_port_flags(dev, 0) & IORESOURCE_DISABLED)) { |
432 | 432 | ||
433 | tpm_dev.iotype = TPM_INF_IO_PORT; | 433 | tpm_dev.iotype = TPM_INF_IO_PORT; |
434 | 434 | ||
435 | tpm_dev.config_port = pnp_port_start(dev, 0); | 435 | tpm_dev.config_port = pnp_port_start(dev, 0); |
436 | tpm_dev.config_size = pnp_port_len(dev, 0); | 436 | tpm_dev.config_size = pnp_port_len(dev, 0); |
@@ -459,9 +459,9 @@ static int __devinit tpm_inf_pnp_probe(struct pnp_dev *dev, | |||
459 | goto err_last; | 459 | goto err_last; |
460 | } | 460 | } |
461 | } else if (pnp_mem_valid(dev, 0) && | 461 | } else if (pnp_mem_valid(dev, 0) && |
462 | !(pnp_mem_flags(dev, 0) & IORESOURCE_DISABLED)) { | 462 | !(pnp_mem_flags(dev, 0) & IORESOURCE_DISABLED)) { |
463 | 463 | ||
464 | tpm_dev.iotype = TPM_INF_IO_MEM; | 464 | tpm_dev.iotype = TPM_INF_IO_MEM; |
465 | 465 | ||
466 | tpm_dev.map_base = pnp_mem_start(dev, 0); | 466 | tpm_dev.map_base = pnp_mem_start(dev, 0); |
467 | tpm_dev.map_size = pnp_mem_len(dev, 0); | 467 | tpm_dev.map_size = pnp_mem_len(dev, 0); |
@@ -563,11 +563,11 @@ static int __devinit tpm_inf_pnp_probe(struct pnp_dev *dev, | |||
563 | "product id 0x%02x%02x" | 563 | "product id 0x%02x%02x" |
564 | "%s\n", | 564 | "%s\n", |
565 | tpm_dev.iotype == TPM_INF_IO_PORT ? | 565 | tpm_dev.iotype == TPM_INF_IO_PORT ? |
566 | tpm_dev.config_port : | 566 | tpm_dev.config_port : |
567 | tpm_dev.map_base + tpm_dev.index_off, | 567 | tpm_dev.map_base + tpm_dev.index_off, |
568 | tpm_dev.iotype == TPM_INF_IO_PORT ? | 568 | tpm_dev.iotype == TPM_INF_IO_PORT ? |
569 | tpm_dev.data_regs : | 569 | tpm_dev.data_regs : |
570 | tpm_dev.map_base + tpm_dev.data_regs, | 570 | tpm_dev.map_base + tpm_dev.data_regs, |
571 | version[0], version[1], | 571 | version[0], version[1], |
572 | vendorid[0], vendorid[1], | 572 | vendorid[0], vendorid[1], |
573 | productid[0], productid[1], chipname); | 573 | productid[0], productid[1], chipname); |
@@ -607,20 +607,55 @@ static __devexit void tpm_inf_pnp_remove(struct pnp_dev *dev) | |||
607 | iounmap(tpm_dev.mem_base); | 607 | iounmap(tpm_dev.mem_base); |
608 | release_mem_region(tpm_dev.map_base, tpm_dev.map_size); | 608 | release_mem_region(tpm_dev.map_base, tpm_dev.map_size); |
609 | } | 609 | } |
610 | tpm_dev_vendor_release(chip); | ||
610 | tpm_remove_hardware(chip->dev); | 611 | tpm_remove_hardware(chip->dev); |
611 | } | 612 | } |
612 | } | 613 | } |
613 | 614 | ||
615 | static int tpm_inf_pnp_suspend(struct pnp_dev *dev, pm_message_t pm_state) | ||
616 | { | ||
617 | struct tpm_chip *chip = pnp_get_drvdata(dev); | ||
618 | int rc; | ||
619 | if (chip) { | ||
620 | u8 savestate[] = { | ||
621 | 0, 193, /* TPM_TAG_RQU_COMMAND */ | ||
622 | 0, 0, 0, 10, /* blob length (in bytes) */ | ||
623 | 0, 0, 0, 152 /* TPM_ORD_SaveState */ | ||
624 | }; | ||
625 | dev_info(&dev->dev, "saving TPM state\n"); | ||
626 | rc = tpm_inf_send(chip, savestate, sizeof(savestate)); | ||
627 | if (rc < 0) { | ||
628 | dev_err(&dev->dev, "error while saving TPM state\n"); | ||
629 | return rc; | ||
630 | } | ||
631 | } | ||
632 | return 0; | ||
633 | } | ||
634 | |||
635 | static int tpm_inf_pnp_resume(struct pnp_dev *dev) | ||
636 | { | ||
637 | /* Re-configure TPM after suspending */ | ||
638 | tpm_config_out(ENABLE_REGISTER_PAIR, TPM_INF_ADDR); | ||
639 | tpm_config_out(IOLIMH, TPM_INF_ADDR); | ||
640 | tpm_config_out((tpm_dev.data_regs >> 8) & 0xff, TPM_INF_DATA); | ||
641 | tpm_config_out(IOLIML, TPM_INF_ADDR); | ||
642 | tpm_config_out((tpm_dev.data_regs & 0xff), TPM_INF_DATA); | ||
643 | /* activate register */ | ||
644 | tpm_config_out(TPM_DAR, TPM_INF_ADDR); | ||
645 | tpm_config_out(0x01, TPM_INF_DATA); | ||
646 | tpm_config_out(DISABLE_REGISTER_PAIR, TPM_INF_ADDR); | ||
647 | /* disable RESET, LP and IRQC */ | ||
648 | tpm_data_out(RESET_LP_IRQC_DISABLE, CMD); | ||
649 | return tpm_pm_resume(&dev->dev); | ||
650 | } | ||
651 | |||
614 | static struct pnp_driver tpm_inf_pnp_driver = { | 652 | static struct pnp_driver tpm_inf_pnp_driver = { |
615 | .name = "tpm_inf_pnp", | 653 | .name = "tpm_inf_pnp", |
616 | .driver = { | 654 | .id_table = tpm_inf_pnp_tbl, |
617 | .owner = THIS_MODULE, | ||
618 | .suspend = tpm_pm_suspend, | ||
619 | .resume = tpm_pm_resume, | ||
620 | }, | ||
621 | .id_table = tpm_pnp_tbl, | ||
622 | .probe = tpm_inf_pnp_probe, | 655 | .probe = tpm_inf_pnp_probe, |
623 | .remove = __devexit_p(tpm_inf_pnp_remove), | 656 | .suspend = tpm_inf_pnp_suspend, |
657 | .resume = tpm_inf_pnp_resume, | ||
658 | .remove = __devexit_p(tpm_inf_pnp_remove) | ||
624 | }; | 659 | }; |
625 | 660 | ||
626 | static int __init init_inf(void) | 661 | static int __init init_inf(void) |
@@ -638,5 +673,5 @@ module_exit(cleanup_inf); | |||
638 | 673 | ||
639 | MODULE_AUTHOR("Marcel Selhorst <m.selhorst@sirrix.com>"); | 674 | MODULE_AUTHOR("Marcel Selhorst <m.selhorst@sirrix.com>"); |
640 | MODULE_DESCRIPTION("Driver for Infineon TPM SLD 9630 TT 1.1 / SLB 9635 TT 1.2"); | 675 | MODULE_DESCRIPTION("Driver for Infineon TPM SLD 9630 TT 1.1 / SLB 9635 TT 1.2"); |
641 | MODULE_VERSION("1.9"); | 676 | MODULE_VERSION("1.9.2"); |
642 | MODULE_LICENSE("GPL"); | 677 | MODULE_LICENSE("GPL"); |
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c index c6f3b48be9dd..dcb9083ecde0 100644 --- a/drivers/char/tty_io.c +++ b/drivers/char/tty_io.c | |||
@@ -1951,8 +1951,10 @@ static int tty_fasync(int fd, struct file *filp, int on) | |||
1951 | pid = task_pid(current); | 1951 | pid = task_pid(current); |
1952 | type = PIDTYPE_PID; | 1952 | type = PIDTYPE_PID; |
1953 | } | 1953 | } |
1954 | retval = __f_setown(filp, pid, type, 0); | 1954 | get_pid(pid); |
1955 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); | 1955 | spin_unlock_irqrestore(&tty->ctrl_lock, flags); |
1956 | retval = __f_setown(filp, pid, type, 0); | ||
1957 | put_pid(pid); | ||
1956 | if (retval) | 1958 | if (retval) |
1957 | goto out; | 1959 | goto out; |
1958 | } else { | 1960 | } else { |
diff --git a/drivers/char/uv_mmtimer.c b/drivers/char/uv_mmtimer.c index 867b67be9f0a..c7072ba14f48 100644 --- a/drivers/char/uv_mmtimer.c +++ b/drivers/char/uv_mmtimer.c | |||
@@ -89,13 +89,17 @@ static long uv_mmtimer_ioctl(struct file *file, unsigned int cmd, | |||
89 | switch (cmd) { | 89 | switch (cmd) { |
90 | case MMTIMER_GETOFFSET: /* offset of the counter */ | 90 | case MMTIMER_GETOFFSET: /* offset of the counter */ |
91 | /* | 91 | /* |
92 | * UV RTC register is on its own page | 92 | * Starting with HUB rev 2.0, the UV RTC register is |
93 | * replicated across all cachelines of it's own page. | ||
94 | * This allows faster simultaneous reads from a given socket. | ||
95 | * | ||
96 | * The offset returned is in 64 bit units. | ||
93 | */ | 97 | */ |
94 | if (PAGE_SIZE <= (1 << 16)) | 98 | if (uv_get_min_hub_revision_id() == 1) |
95 | ret = ((UV_LOCAL_MMR_BASE | UVH_RTC) & (PAGE_SIZE-1)) | 99 | ret = 0; |
96 | / 8; | ||
97 | else | 100 | else |
98 | ret = -ENOSYS; | 101 | ret = ((uv_blade_processor_id() * L1_CACHE_BYTES) % |
102 | PAGE_SIZE) / 8; | ||
99 | break; | 103 | break; |
100 | 104 | ||
101 | case MMTIMER_GETRES: /* resolution of the clock in 10^-15 s */ | 105 | case MMTIMER_GETRES: /* resolution of the clock in 10^-15 s */ |
@@ -115,8 +119,8 @@ static long uv_mmtimer_ioctl(struct file *file, unsigned int cmd, | |||
115 | ret = hweight64(UVH_RTC_REAL_TIME_CLOCK_MASK); | 119 | ret = hweight64(UVH_RTC_REAL_TIME_CLOCK_MASK); |
116 | break; | 120 | break; |
117 | 121 | ||
118 | case MMTIMER_MMAPAVAIL: /* can we mmap the clock into userspace? */ | 122 | case MMTIMER_MMAPAVAIL: |
119 | ret = (PAGE_SIZE <= (1 << 16)) ? 1 : 0; | 123 | ret = 1; |
120 | break; | 124 | break; |
121 | 125 | ||
122 | case MMTIMER_GETCOUNTER: | 126 | case MMTIMER_GETCOUNTER: |
diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c index 4b34ade2332b..bd444dc93cf2 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c | |||
@@ -554,6 +554,9 @@ static void dbs_check_cpu(struct cpu_dbs_info_s *this_dbs_info) | |||
554 | (dbs_tuners_ins.up_threshold - | 554 | (dbs_tuners_ins.up_threshold - |
555 | dbs_tuners_ins.down_differential); | 555 | dbs_tuners_ins.down_differential); |
556 | 556 | ||
557 | if (freq_next < policy->min) | ||
558 | freq_next = policy->min; | ||
559 | |||
557 | if (!dbs_tuners_ins.powersave_bias) { | 560 | if (!dbs_tuners_ins.powersave_bias) { |
558 | __cpufreq_driver_target(policy, freq_next, | 561 | __cpufreq_driver_target(policy, freq_next, |
559 | CPUFREQ_RELATION_L); | 562 | CPUFREQ_RELATION_L); |
diff --git a/drivers/crypto/padlock-sha.c b/drivers/crypto/padlock-sha.c index 0af80577dc7b..d3a27e0119bc 100644 --- a/drivers/crypto/padlock-sha.c +++ b/drivers/crypto/padlock-sha.c | |||
@@ -57,6 +57,23 @@ static int padlock_sha_update(struct shash_desc *desc, | |||
57 | return crypto_shash_update(&dctx->fallback, data, length); | 57 | return crypto_shash_update(&dctx->fallback, data, length); |
58 | } | 58 | } |
59 | 59 | ||
60 | static int padlock_sha_export(struct shash_desc *desc, void *out) | ||
61 | { | ||
62 | struct padlock_sha_desc *dctx = shash_desc_ctx(desc); | ||
63 | |||
64 | return crypto_shash_export(&dctx->fallback, out); | ||
65 | } | ||
66 | |||
67 | static int padlock_sha_import(struct shash_desc *desc, const void *in) | ||
68 | { | ||
69 | struct padlock_sha_desc *dctx = shash_desc_ctx(desc); | ||
70 | struct padlock_sha_ctx *ctx = crypto_shash_ctx(desc->tfm); | ||
71 | |||
72 | dctx->fallback.tfm = ctx->fallback; | ||
73 | dctx->fallback.flags = desc->flags & CRYPTO_TFM_REQ_MAY_SLEEP; | ||
74 | return crypto_shash_import(&dctx->fallback, in); | ||
75 | } | ||
76 | |||
60 | static inline void padlock_output_block(uint32_t *src, | 77 | static inline void padlock_output_block(uint32_t *src, |
61 | uint32_t *dst, size_t count) | 78 | uint32_t *dst, size_t count) |
62 | { | 79 | { |
@@ -235,7 +252,10 @@ static struct shash_alg sha1_alg = { | |||
235 | .update = padlock_sha_update, | 252 | .update = padlock_sha_update, |
236 | .finup = padlock_sha1_finup, | 253 | .finup = padlock_sha1_finup, |
237 | .final = padlock_sha1_final, | 254 | .final = padlock_sha1_final, |
255 | .export = padlock_sha_export, | ||
256 | .import = padlock_sha_import, | ||
238 | .descsize = sizeof(struct padlock_sha_desc), | 257 | .descsize = sizeof(struct padlock_sha_desc), |
258 | .statesize = sizeof(struct sha1_state), | ||
239 | .base = { | 259 | .base = { |
240 | .cra_name = "sha1", | 260 | .cra_name = "sha1", |
241 | .cra_driver_name = "sha1-padlock", | 261 | .cra_driver_name = "sha1-padlock", |
@@ -256,7 +276,10 @@ static struct shash_alg sha256_alg = { | |||
256 | .update = padlock_sha_update, | 276 | .update = padlock_sha_update, |
257 | .finup = padlock_sha256_finup, | 277 | .finup = padlock_sha256_finup, |
258 | .final = padlock_sha256_final, | 278 | .final = padlock_sha256_final, |
279 | .export = padlock_sha_export, | ||
280 | .import = padlock_sha_import, | ||
259 | .descsize = sizeof(struct padlock_sha_desc), | 281 | .descsize = sizeof(struct padlock_sha_desc), |
282 | .statesize = sizeof(struct sha256_state), | ||
260 | .base = { | 283 | .base = { |
261 | .cra_name = "sha256", | 284 | .cra_name = "sha256", |
262 | .cra_driver_name = "sha256-padlock", | 285 | .cra_driver_name = "sha256-padlock", |
diff --git a/drivers/dma/coh901318.c b/drivers/dma/coh901318.c index b5f2ee0f8e2c..64a937262a40 100644 --- a/drivers/dma/coh901318.c +++ b/drivers/dma/coh901318.c | |||
@@ -613,8 +613,6 @@ static void dma_tasklet(unsigned long data) | |||
613 | cohd_fin->pending_irqs--; | 613 | cohd_fin->pending_irqs--; |
614 | cohc->completed = cohd_fin->desc.cookie; | 614 | cohc->completed = cohd_fin->desc.cookie; |
615 | 615 | ||
616 | BUG_ON(cohc->nbr_active_done && cohd_fin == NULL); | ||
617 | |||
618 | if (cohc->nbr_active_done == 0) | 616 | if (cohc->nbr_active_done == 0) |
619 | return; | 617 | return; |
620 | 618 | ||
diff --git a/drivers/dma/dmaengine.c b/drivers/dma/dmaengine.c index 6f51a0a7a8bb..e7a3230fb7d5 100644 --- a/drivers/dma/dmaengine.c +++ b/drivers/dma/dmaengine.c | |||
@@ -826,6 +826,7 @@ void dma_async_device_unregister(struct dma_device *device) | |||
826 | chan->dev->chan = NULL; | 826 | chan->dev->chan = NULL; |
827 | mutex_unlock(&dma_list_mutex); | 827 | mutex_unlock(&dma_list_mutex); |
828 | device_unregister(&chan->dev->device); | 828 | device_unregister(&chan->dev->device); |
829 | free_percpu(chan->local); | ||
829 | } | 830 | } |
830 | } | 831 | } |
831 | EXPORT_SYMBOL(dma_async_device_unregister); | 832 | EXPORT_SYMBOL(dma_async_device_unregister); |
diff --git a/drivers/dma/dmatest.c b/drivers/dma/dmatest.c index 8b905161fbf4..948d563941c9 100644 --- a/drivers/dma/dmatest.c +++ b/drivers/dma/dmatest.c | |||
@@ -467,7 +467,7 @@ err_srcs: | |||
467 | 467 | ||
468 | if (iterations > 0) | 468 | if (iterations > 0) |
469 | while (!kthread_should_stop()) { | 469 | while (!kthread_should_stop()) { |
470 | DECLARE_WAIT_QUEUE_HEAD(wait_dmatest_exit); | 470 | DECLARE_WAIT_QUEUE_HEAD_ONSTACK(wait_dmatest_exit); |
471 | interruptible_sleep_on(&wait_dmatest_exit); | 471 | interruptible_sleep_on(&wait_dmatest_exit); |
472 | } | 472 | } |
473 | 473 | ||
diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c index 5f7a500e18d0..5cc37afe2bc1 100644 --- a/drivers/dma/ioat/dma_v2.c +++ b/drivers/dma/ioat/dma_v2.c | |||
@@ -249,7 +249,7 @@ int ioat2_quiesce(struct ioat_chan_common *chan, unsigned long tmo) | |||
249 | if (is_ioat_active(status) || is_ioat_idle(status)) | 249 | if (is_ioat_active(status) || is_ioat_idle(status)) |
250 | ioat_suspend(chan); | 250 | ioat_suspend(chan); |
251 | while (is_ioat_active(status) || is_ioat_idle(status)) { | 251 | while (is_ioat_active(status) || is_ioat_idle(status)) { |
252 | if (end && time_after(jiffies, end)) { | 252 | if (tmo && time_after(jiffies, end)) { |
253 | err = -ETIMEDOUT; | 253 | err = -ETIMEDOUT; |
254 | break; | 254 | break; |
255 | } | 255 | } |
diff --git a/drivers/dma/ipu/ipu_idmac.c b/drivers/dma/ipu/ipu_idmac.c index 9a5bc1a7389e..e80bae1673fa 100644 --- a/drivers/dma/ipu/ipu_idmac.c +++ b/drivers/dma/ipu/ipu_idmac.c | |||
@@ -761,12 +761,10 @@ static void ipu_select_buffer(enum ipu_channel channel, int buffer_n) | |||
761 | * @buffer_n: buffer number to update. | 761 | * @buffer_n: buffer number to update. |
762 | * 0 or 1 are the only valid values. | 762 | * 0 or 1 are the only valid values. |
763 | * @phyaddr: buffer physical address. | 763 | * @phyaddr: buffer physical address. |
764 | * @return: Returns 0 on success or negative error code on failure. This | ||
765 | * function will fail if the buffer is set to ready. | ||
766 | */ | 764 | */ |
767 | /* Called under spin_lock(_irqsave)(&ichan->lock) */ | 765 | /* Called under spin_lock(_irqsave)(&ichan->lock) */ |
768 | static int ipu_update_channel_buffer(struct idmac_channel *ichan, | 766 | static void ipu_update_channel_buffer(struct idmac_channel *ichan, |
769 | int buffer_n, dma_addr_t phyaddr) | 767 | int buffer_n, dma_addr_t phyaddr) |
770 | { | 768 | { |
771 | enum ipu_channel channel = ichan->dma_chan.chan_id; | 769 | enum ipu_channel channel = ichan->dma_chan.chan_id; |
772 | uint32_t reg; | 770 | uint32_t reg; |
@@ -806,8 +804,6 @@ static int ipu_update_channel_buffer(struct idmac_channel *ichan, | |||
806 | } | 804 | } |
807 | 805 | ||
808 | spin_unlock_irqrestore(&ipu_data.lock, flags); | 806 | spin_unlock_irqrestore(&ipu_data.lock, flags); |
809 | |||
810 | return 0; | ||
811 | } | 807 | } |
812 | 808 | ||
813 | /* Called under spin_lock_irqsave(&ichan->lock) */ | 809 | /* Called under spin_lock_irqsave(&ichan->lock) */ |
@@ -816,7 +812,6 @@ static int ipu_submit_buffer(struct idmac_channel *ichan, | |||
816 | { | 812 | { |
817 | unsigned int chan_id = ichan->dma_chan.chan_id; | 813 | unsigned int chan_id = ichan->dma_chan.chan_id; |
818 | struct device *dev = &ichan->dma_chan.dev->device; | 814 | struct device *dev = &ichan->dma_chan.dev->device; |
819 | int ret; | ||
820 | 815 | ||
821 | if (async_tx_test_ack(&desc->txd)) | 816 | if (async_tx_test_ack(&desc->txd)) |
822 | return -EINTR; | 817 | return -EINTR; |
@@ -827,14 +822,7 @@ static int ipu_submit_buffer(struct idmac_channel *ichan, | |||
827 | * could make it conditional on status >= IPU_CHANNEL_ENABLED, but | 822 | * could make it conditional on status >= IPU_CHANNEL_ENABLED, but |
828 | * doing it again shouldn't hurt either. | 823 | * doing it again shouldn't hurt either. |
829 | */ | 824 | */ |
830 | ret = ipu_update_channel_buffer(ichan, buf_idx, | 825 | ipu_update_channel_buffer(ichan, buf_idx, sg_dma_address(sg)); |
831 | sg_dma_address(sg)); | ||
832 | |||
833 | if (ret < 0) { | ||
834 | dev_err(dev, "Updating sg %p on channel 0x%x buffer %d failed!\n", | ||
835 | sg, chan_id, buf_idx); | ||
836 | return ret; | ||
837 | } | ||
838 | 826 | ||
839 | ipu_select_buffer(chan_id, buf_idx); | 827 | ipu_select_buffer(chan_id, buf_idx); |
840 | dev_dbg(dev, "Updated sg %p on channel 0x%x buffer %d\n", | 828 | dev_dbg(dev, "Updated sg %p on channel 0x%x buffer %d\n", |
@@ -1379,10 +1367,11 @@ static irqreturn_t idmac_interrupt(int irq, void *dev_id) | |||
1379 | 1367 | ||
1380 | if (likely(sgnew) && | 1368 | if (likely(sgnew) && |
1381 | ipu_submit_buffer(ichan, descnew, sgnew, ichan->active_buffer) < 0) { | 1369 | ipu_submit_buffer(ichan, descnew, sgnew, ichan->active_buffer) < 0) { |
1382 | callback = desc->txd.callback; | 1370 | callback = descnew->txd.callback; |
1383 | callback_param = desc->txd.callback_param; | 1371 | callback_param = descnew->txd.callback_param; |
1384 | spin_unlock(&ichan->lock); | 1372 | spin_unlock(&ichan->lock); |
1385 | callback(callback_param); | 1373 | if (callback) |
1374 | callback(callback_param); | ||
1386 | spin_lock(&ichan->lock); | 1375 | spin_lock(&ichan->lock); |
1387 | } | 1376 | } |
1388 | 1377 | ||
diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index 000dc67b85b7..3391e6739d06 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c | |||
@@ -2658,10 +2658,11 @@ static void amd64_restore_ecc_error_reporting(struct amd64_pvt *pvt) | |||
2658 | * the memory system completely. A command line option allows to force-enable | 2658 | * the memory system completely. A command line option allows to force-enable |
2659 | * hardware ECC later in amd64_enable_ecc_error_reporting(). | 2659 | * hardware ECC later in amd64_enable_ecc_error_reporting(). |
2660 | */ | 2660 | */ |
2661 | static const char *ecc_warning = | 2661 | static const char *ecc_msg = |
2662 | "WARNING: ECC is disabled by BIOS. Module will NOT be loaded.\n" | 2662 | "ECC disabled in the BIOS or no ECC capability, module will not load.\n" |
2663 | " Either Enable ECC in the BIOS, or set 'ecc_enable_override'.\n" | 2663 | " Either enable ECC checking or force module loading by setting " |
2664 | " Also, use of the override can cause unknown side effects.\n"; | 2664 | "'ecc_enable_override'.\n" |
2665 | " (Note that use of the override may cause unknown side effects.)\n"; | ||
2665 | 2666 | ||
2666 | static int amd64_check_ecc_enabled(struct amd64_pvt *pvt) | 2667 | static int amd64_check_ecc_enabled(struct amd64_pvt *pvt) |
2667 | { | 2668 | { |
@@ -2673,7 +2674,7 @@ static int amd64_check_ecc_enabled(struct amd64_pvt *pvt) | |||
2673 | 2674 | ||
2674 | ecc_enabled = !!(value & K8_NBCFG_ECC_ENABLE); | 2675 | ecc_enabled = !!(value & K8_NBCFG_ECC_ENABLE); |
2675 | if (!ecc_enabled) | 2676 | if (!ecc_enabled) |
2676 | amd64_printk(KERN_WARNING, "This node reports that Memory ECC " | 2677 | amd64_printk(KERN_NOTICE, "This node reports that Memory ECC " |
2677 | "is currently disabled, set F3x%x[22] (%s).\n", | 2678 | "is currently disabled, set F3x%x[22] (%s).\n", |
2678 | K8_NBCFG, pci_name(pvt->misc_f3_ctl)); | 2679 | K8_NBCFG, pci_name(pvt->misc_f3_ctl)); |
2679 | else | 2680 | else |
@@ -2681,13 +2682,13 @@ static int amd64_check_ecc_enabled(struct amd64_pvt *pvt) | |||
2681 | 2682 | ||
2682 | nb_mce_en = amd64_nb_mce_bank_enabled_on_node(pvt->mc_node_id); | 2683 | nb_mce_en = amd64_nb_mce_bank_enabled_on_node(pvt->mc_node_id); |
2683 | if (!nb_mce_en) | 2684 | if (!nb_mce_en) |
2684 | amd64_printk(KERN_WARNING, "NB MCE bank disabled, set MSR " | 2685 | amd64_printk(KERN_NOTICE, "NB MCE bank disabled, set MSR " |
2685 | "0x%08x[4] on node %d to enable.\n", | 2686 | "0x%08x[4] on node %d to enable.\n", |
2686 | MSR_IA32_MCG_CTL, pvt->mc_node_id); | 2687 | MSR_IA32_MCG_CTL, pvt->mc_node_id); |
2687 | 2688 | ||
2688 | if (!ecc_enabled || !nb_mce_en) { | 2689 | if (!ecc_enabled || !nb_mce_en) { |
2689 | if (!ecc_enable_override) { | 2690 | if (!ecc_enable_override) { |
2690 | amd64_printk(KERN_WARNING, "%s", ecc_warning); | 2691 | amd64_printk(KERN_NOTICE, "%s", ecc_msg); |
2691 | return -ENODEV; | 2692 | return -ENODEV; |
2692 | } | 2693 | } |
2693 | ecc_enable_override = 0; | 2694 | ecc_enable_override = 0; |
diff --git a/drivers/edac/mpc85xx_edac.c b/drivers/edac/mpc85xx_edac.c index cf27402af97b..ecd5928d7110 100644 --- a/drivers/edac/mpc85xx_edac.c +++ b/drivers/edac/mpc85xx_edac.c | |||
@@ -804,8 +804,8 @@ static void __devinit mpc85xx_init_csrows(struct mem_ctl_info *mci) | |||
804 | end <<= (24 - PAGE_SHIFT); | 804 | end <<= (24 - PAGE_SHIFT); |
805 | end |= (1 << (24 - PAGE_SHIFT)) - 1; | 805 | end |= (1 << (24 - PAGE_SHIFT)) - 1; |
806 | 806 | ||
807 | csrow->first_page = start >> PAGE_SHIFT; | 807 | csrow->first_page = start; |
808 | csrow->last_page = end >> PAGE_SHIFT; | 808 | csrow->last_page = end; |
809 | csrow->nr_pages = end + 1 - start; | 809 | csrow->nr_pages = end + 1 - start; |
810 | csrow->grain = 8; | 810 | csrow->grain = 8; |
811 | csrow->mtype = mtype; | 811 | csrow->mtype = mtype; |
@@ -892,10 +892,6 @@ static int __devinit mpc85xx_mc_err_probe(struct of_device *op, | |||
892 | 892 | ||
893 | mpc85xx_init_csrows(mci); | 893 | mpc85xx_init_csrows(mci); |
894 | 894 | ||
895 | #ifdef CONFIG_EDAC_DEBUG | ||
896 | edac_mc_register_mcidev_debug((struct attribute **)debug_attr); | ||
897 | #endif | ||
898 | |||
899 | /* store the original error disable bits */ | 895 | /* store the original error disable bits */ |
900 | orig_ddr_err_disable = | 896 | orig_ddr_err_disable = |
901 | in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DISABLE); | 897 | in_be32(pdata->mc_vbase + MPC85XX_MC_ERR_DISABLE); |
diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c index 7083bcc1b9c7..5045156c5313 100644 --- a/drivers/firewire/core-card.c +++ b/drivers/firewire/core-card.c | |||
@@ -57,6 +57,8 @@ static LIST_HEAD(descriptor_list); | |||
57 | static int descriptor_count; | 57 | static int descriptor_count; |
58 | 58 | ||
59 | static __be32 tmp_config_rom[256]; | 59 | static __be32 tmp_config_rom[256]; |
60 | /* ROM header, bus info block, root dir header, capabilities = 7 quadlets */ | ||
61 | static size_t config_rom_length = 1 + 4 + 1 + 1; | ||
60 | 62 | ||
61 | #define BIB_CRC(v) ((v) << 0) | 63 | #define BIB_CRC(v) ((v) << 0) |
62 | #define BIB_CRC_LENGTH(v) ((v) << 16) | 64 | #define BIB_CRC_LENGTH(v) ((v) << 16) |
@@ -73,7 +75,7 @@ static __be32 tmp_config_rom[256]; | |||
73 | #define BIB_CMC ((1) << 30) | 75 | #define BIB_CMC ((1) << 30) |
74 | #define BIB_IMC ((1) << 31) | 76 | #define BIB_IMC ((1) << 31) |
75 | 77 | ||
76 | static size_t generate_config_rom(struct fw_card *card, __be32 *config_rom) | 78 | static void generate_config_rom(struct fw_card *card, __be32 *config_rom) |
77 | { | 79 | { |
78 | struct fw_descriptor *desc; | 80 | struct fw_descriptor *desc; |
79 | int i, j, k, length; | 81 | int i, j, k, length; |
@@ -130,23 +132,30 @@ static size_t generate_config_rom(struct fw_card *card, __be32 *config_rom) | |||
130 | for (i = 0; i < j; i += length + 1) | 132 | for (i = 0; i < j; i += length + 1) |
131 | length = fw_compute_block_crc(config_rom + i); | 133 | length = fw_compute_block_crc(config_rom + i); |
132 | 134 | ||
133 | return j; | 135 | WARN_ON(j != config_rom_length); |
134 | } | 136 | } |
135 | 137 | ||
136 | static void update_config_roms(void) | 138 | static void update_config_roms(void) |
137 | { | 139 | { |
138 | struct fw_card *card; | 140 | struct fw_card *card; |
139 | size_t length; | ||
140 | 141 | ||
141 | list_for_each_entry (card, &card_list, link) { | 142 | list_for_each_entry (card, &card_list, link) { |
142 | length = generate_config_rom(card, tmp_config_rom); | 143 | generate_config_rom(card, tmp_config_rom); |
143 | card->driver->set_config_rom(card, tmp_config_rom, length); | 144 | card->driver->set_config_rom(card, tmp_config_rom, |
145 | config_rom_length); | ||
144 | } | 146 | } |
145 | } | 147 | } |
146 | 148 | ||
149 | static size_t required_space(struct fw_descriptor *desc) | ||
150 | { | ||
151 | /* descriptor + entry into root dir + optional immediate entry */ | ||
152 | return desc->length + 1 + (desc->immediate > 0 ? 1 : 0); | ||
153 | } | ||
154 | |||
147 | int fw_core_add_descriptor(struct fw_descriptor *desc) | 155 | int fw_core_add_descriptor(struct fw_descriptor *desc) |
148 | { | 156 | { |
149 | size_t i; | 157 | size_t i; |
158 | int ret; | ||
150 | 159 | ||
151 | /* | 160 | /* |
152 | * Check descriptor is valid; the length of all blocks in the | 161 | * Check descriptor is valid; the length of all blocks in the |
@@ -162,15 +171,21 @@ int fw_core_add_descriptor(struct fw_descriptor *desc) | |||
162 | 171 | ||
163 | mutex_lock(&card_mutex); | 172 | mutex_lock(&card_mutex); |
164 | 173 | ||
165 | list_add_tail(&desc->link, &descriptor_list); | 174 | if (config_rom_length + required_space(desc) > 256) { |
166 | descriptor_count++; | 175 | ret = -EBUSY; |
167 | if (desc->immediate > 0) | 176 | } else { |
177 | list_add_tail(&desc->link, &descriptor_list); | ||
178 | config_rom_length += required_space(desc); | ||
168 | descriptor_count++; | 179 | descriptor_count++; |
169 | update_config_roms(); | 180 | if (desc->immediate > 0) |
181 | descriptor_count++; | ||
182 | update_config_roms(); | ||
183 | ret = 0; | ||
184 | } | ||
170 | 185 | ||
171 | mutex_unlock(&card_mutex); | 186 | mutex_unlock(&card_mutex); |
172 | 187 | ||
173 | return 0; | 188 | return ret; |
174 | } | 189 | } |
175 | EXPORT_SYMBOL(fw_core_add_descriptor); | 190 | EXPORT_SYMBOL(fw_core_add_descriptor); |
176 | 191 | ||
@@ -179,6 +194,7 @@ void fw_core_remove_descriptor(struct fw_descriptor *desc) | |||
179 | mutex_lock(&card_mutex); | 194 | mutex_lock(&card_mutex); |
180 | 195 | ||
181 | list_del(&desc->link); | 196 | list_del(&desc->link); |
197 | config_rom_length -= required_space(desc); | ||
182 | descriptor_count--; | 198 | descriptor_count--; |
183 | if (desc->immediate > 0) | 199 | if (desc->immediate > 0) |
184 | descriptor_count--; | 200 | descriptor_count--; |
@@ -428,7 +444,6 @@ EXPORT_SYMBOL(fw_card_initialize); | |||
428 | int fw_card_add(struct fw_card *card, | 444 | int fw_card_add(struct fw_card *card, |
429 | u32 max_receive, u32 link_speed, u64 guid) | 445 | u32 max_receive, u32 link_speed, u64 guid) |
430 | { | 446 | { |
431 | size_t length; | ||
432 | int ret; | 447 | int ret; |
433 | 448 | ||
434 | card->max_receive = max_receive; | 449 | card->max_receive = max_receive; |
@@ -437,8 +452,8 @@ int fw_card_add(struct fw_card *card, | |||
437 | 452 | ||
438 | mutex_lock(&card_mutex); | 453 | mutex_lock(&card_mutex); |
439 | 454 | ||
440 | length = generate_config_rom(card, tmp_config_rom); | 455 | generate_config_rom(card, tmp_config_rom); |
441 | ret = card->driver->enable(card, tmp_config_rom, length); | 456 | ret = card->driver->enable(card, tmp_config_rom, config_rom_length); |
442 | if (ret == 0) | 457 | if (ret == 0) |
443 | list_add_tail(&card->link, &card_list); | 458 | list_add_tail(&card->link, &card_list); |
444 | 459 | ||
diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index e6d63849e78e..4eeaed57e219 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include <linux/preempt.h> | 35 | #include <linux/preempt.h> |
36 | #include <linux/sched.h> | 36 | #include <linux/sched.h> |
37 | #include <linux/spinlock.h> | 37 | #include <linux/spinlock.h> |
38 | #include <linux/string.h> | ||
38 | #include <linux/time.h> | 39 | #include <linux/time.h> |
39 | #include <linux/uaccess.h> | 40 | #include <linux/uaccess.h> |
40 | #include <linux/vmalloc.h> | 41 | #include <linux/vmalloc.h> |
@@ -595,13 +596,20 @@ static int ioctl_send_request(struct client *client, void *buffer) | |||
595 | client->device->max_speed); | 596 | client->device->max_speed); |
596 | } | 597 | } |
597 | 598 | ||
599 | static inline bool is_fcp_request(struct fw_request *request) | ||
600 | { | ||
601 | return request == NULL; | ||
602 | } | ||
603 | |||
598 | static void release_request(struct client *client, | 604 | static void release_request(struct client *client, |
599 | struct client_resource *resource) | 605 | struct client_resource *resource) |
600 | { | 606 | { |
601 | struct inbound_transaction_resource *r = container_of(resource, | 607 | struct inbound_transaction_resource *r = container_of(resource, |
602 | struct inbound_transaction_resource, resource); | 608 | struct inbound_transaction_resource, resource); |
603 | 609 | ||
604 | if (r->request) | 610 | if (is_fcp_request(r->request)) |
611 | kfree(r->data); | ||
612 | else | ||
605 | fw_send_response(client->device->card, r->request, | 613 | fw_send_response(client->device->card, r->request, |
606 | RCODE_CONFLICT_ERROR); | 614 | RCODE_CONFLICT_ERROR); |
607 | kfree(r); | 615 | kfree(r); |
@@ -616,6 +624,7 @@ static void handle_request(struct fw_card *card, struct fw_request *request, | |||
616 | struct address_handler_resource *handler = callback_data; | 624 | struct address_handler_resource *handler = callback_data; |
617 | struct inbound_transaction_resource *r; | 625 | struct inbound_transaction_resource *r; |
618 | struct inbound_transaction_event *e; | 626 | struct inbound_transaction_event *e; |
627 | void *fcp_frame = NULL; | ||
619 | int ret; | 628 | int ret; |
620 | 629 | ||
621 | r = kmalloc(sizeof(*r), GFP_ATOMIC); | 630 | r = kmalloc(sizeof(*r), GFP_ATOMIC); |
@@ -627,6 +636,18 @@ static void handle_request(struct fw_card *card, struct fw_request *request, | |||
627 | r->data = payload; | 636 | r->data = payload; |
628 | r->length = length; | 637 | r->length = length; |
629 | 638 | ||
639 | if (is_fcp_request(request)) { | ||
640 | /* | ||
641 | * FIXME: Let core-transaction.c manage a | ||
642 | * single reference-counted copy? | ||
643 | */ | ||
644 | fcp_frame = kmemdup(payload, length, GFP_ATOMIC); | ||
645 | if (fcp_frame == NULL) | ||
646 | goto failed; | ||
647 | |||
648 | r->data = fcp_frame; | ||
649 | } | ||
650 | |||
630 | r->resource.release = release_request; | 651 | r->resource.release = release_request; |
631 | ret = add_client_resource(handler->client, &r->resource, GFP_ATOMIC); | 652 | ret = add_client_resource(handler->client, &r->resource, GFP_ATOMIC); |
632 | if (ret < 0) | 653 | if (ret < 0) |
@@ -640,13 +661,15 @@ static void handle_request(struct fw_card *card, struct fw_request *request, | |||
640 | e->request.closure = handler->closure; | 661 | e->request.closure = handler->closure; |
641 | 662 | ||
642 | queue_event(handler->client, &e->event, | 663 | queue_event(handler->client, &e->event, |
643 | &e->request, sizeof(e->request), payload, length); | 664 | &e->request, sizeof(e->request), r->data, length); |
644 | return; | 665 | return; |
645 | 666 | ||
646 | failed: | 667 | failed: |
647 | kfree(r); | 668 | kfree(r); |
648 | kfree(e); | 669 | kfree(e); |
649 | if (request) | 670 | kfree(fcp_frame); |
671 | |||
672 | if (!is_fcp_request(request)) | ||
650 | fw_send_response(card, request, RCODE_CONFLICT_ERROR); | 673 | fw_send_response(card, request, RCODE_CONFLICT_ERROR); |
651 | } | 674 | } |
652 | 675 | ||
@@ -717,18 +740,17 @@ static int ioctl_send_response(struct client *client, void *buffer) | |||
717 | 740 | ||
718 | r = container_of(resource, struct inbound_transaction_resource, | 741 | r = container_of(resource, struct inbound_transaction_resource, |
719 | resource); | 742 | resource); |
720 | if (r->request) { | 743 | if (is_fcp_request(r->request)) |
721 | if (request->length < r->length) | 744 | goto out; |
722 | r->length = request->length; | 745 | |
723 | if (copy_from_user(r->data, u64_to_uptr(request->data), | 746 | if (request->length < r->length) |
724 | r->length)) { | 747 | r->length = request->length; |
725 | ret = -EFAULT; | 748 | if (copy_from_user(r->data, u64_to_uptr(request->data), r->length)) { |
726 | kfree(r->request); | 749 | ret = -EFAULT; |
727 | goto out; | 750 | kfree(r->request); |
728 | } | 751 | goto out; |
729 | fw_send_response(client->device->card, r->request, | ||
730 | request->rcode); | ||
731 | } | 752 | } |
753 | fw_send_response(client->device->card, r->request, request->rcode); | ||
732 | out: | 754 | out: |
733 | kfree(r); | 755 | kfree(r); |
734 | 756 | ||
diff --git a/drivers/firewire/net.c b/drivers/firewire/net.c index cbaf420c36c5..2d3dc7ded0a9 100644 --- a/drivers/firewire/net.c +++ b/drivers/firewire/net.c | |||
@@ -893,20 +893,31 @@ static void fwnet_receive_broadcast(struct fw_iso_context *context, | |||
893 | 893 | ||
894 | static struct kmem_cache *fwnet_packet_task_cache; | 894 | static struct kmem_cache *fwnet_packet_task_cache; |
895 | 895 | ||
896 | static void fwnet_free_ptask(struct fwnet_packet_task *ptask) | ||
897 | { | ||
898 | dev_kfree_skb_any(ptask->skb); | ||
899 | kmem_cache_free(fwnet_packet_task_cache, ptask); | ||
900 | } | ||
901 | |||
896 | static int fwnet_send_packet(struct fwnet_packet_task *ptask); | 902 | static int fwnet_send_packet(struct fwnet_packet_task *ptask); |
897 | 903 | ||
898 | static void fwnet_transmit_packet_done(struct fwnet_packet_task *ptask) | 904 | static void fwnet_transmit_packet_done(struct fwnet_packet_task *ptask) |
899 | { | 905 | { |
900 | struct fwnet_device *dev; | 906 | struct fwnet_device *dev = ptask->dev; |
901 | unsigned long flags; | 907 | unsigned long flags; |
902 | 908 | bool free; | |
903 | dev = ptask->dev; | ||
904 | 909 | ||
905 | spin_lock_irqsave(&dev->lock, flags); | 910 | spin_lock_irqsave(&dev->lock, flags); |
906 | list_del(&ptask->pt_link); | ||
907 | spin_unlock_irqrestore(&dev->lock, flags); | ||
908 | 911 | ||
909 | ptask->outstanding_pkts--; /* FIXME access inside lock */ | 912 | ptask->outstanding_pkts--; |
913 | |||
914 | /* Check whether we or the networking TX soft-IRQ is last user. */ | ||
915 | free = (ptask->outstanding_pkts == 0 && !list_empty(&ptask->pt_link)); | ||
916 | |||
917 | if (ptask->outstanding_pkts == 0) | ||
918 | list_del(&ptask->pt_link); | ||
919 | |||
920 | spin_unlock_irqrestore(&dev->lock, flags); | ||
910 | 921 | ||
911 | if (ptask->outstanding_pkts > 0) { | 922 | if (ptask->outstanding_pkts > 0) { |
912 | u16 dg_size; | 923 | u16 dg_size; |
@@ -951,10 +962,10 @@ static void fwnet_transmit_packet_done(struct fwnet_packet_task *ptask) | |||
951 | ptask->max_payload = skb->len + RFC2374_FRAG_HDR_SIZE; | 962 | ptask->max_payload = skb->len + RFC2374_FRAG_HDR_SIZE; |
952 | } | 963 | } |
953 | fwnet_send_packet(ptask); | 964 | fwnet_send_packet(ptask); |
954 | } else { | ||
955 | dev_kfree_skb_any(ptask->skb); | ||
956 | kmem_cache_free(fwnet_packet_task_cache, ptask); | ||
957 | } | 965 | } |
966 | |||
967 | if (free) | ||
968 | fwnet_free_ptask(ptask); | ||
958 | } | 969 | } |
959 | 970 | ||
960 | static void fwnet_write_complete(struct fw_card *card, int rcode, | 971 | static void fwnet_write_complete(struct fw_card *card, int rcode, |
@@ -977,6 +988,7 @@ static int fwnet_send_packet(struct fwnet_packet_task *ptask) | |||
977 | unsigned tx_len; | 988 | unsigned tx_len; |
978 | struct rfc2734_header *bufhdr; | 989 | struct rfc2734_header *bufhdr; |
979 | unsigned long flags; | 990 | unsigned long flags; |
991 | bool free; | ||
980 | 992 | ||
981 | dev = ptask->dev; | 993 | dev = ptask->dev; |
982 | tx_len = ptask->max_payload; | 994 | tx_len = ptask->max_payload; |
@@ -1022,12 +1034,16 @@ static int fwnet_send_packet(struct fwnet_packet_task *ptask) | |||
1022 | generation, SCODE_100, 0ULL, ptask->skb->data, | 1034 | generation, SCODE_100, 0ULL, ptask->skb->data, |
1023 | tx_len + 8, fwnet_write_complete, ptask); | 1035 | tx_len + 8, fwnet_write_complete, ptask); |
1024 | 1036 | ||
1025 | /* FIXME race? */ | ||
1026 | spin_lock_irqsave(&dev->lock, flags); | 1037 | spin_lock_irqsave(&dev->lock, flags); |
1027 | list_add_tail(&ptask->pt_link, &dev->broadcasted_list); | 1038 | |
1039 | /* If the AT tasklet already ran, we may be last user. */ | ||
1040 | free = (ptask->outstanding_pkts == 0 && list_empty(&ptask->pt_link)); | ||
1041 | if (!free) | ||
1042 | list_add_tail(&ptask->pt_link, &dev->broadcasted_list); | ||
1043 | |||
1028 | spin_unlock_irqrestore(&dev->lock, flags); | 1044 | spin_unlock_irqrestore(&dev->lock, flags); |
1029 | 1045 | ||
1030 | return 0; | 1046 | goto out; |
1031 | } | 1047 | } |
1032 | 1048 | ||
1033 | fw_send_request(dev->card, &ptask->transaction, | 1049 | fw_send_request(dev->card, &ptask->transaction, |
@@ -1035,12 +1051,19 @@ static int fwnet_send_packet(struct fwnet_packet_task *ptask) | |||
1035 | ptask->generation, ptask->speed, ptask->fifo_addr, | 1051 | ptask->generation, ptask->speed, ptask->fifo_addr, |
1036 | ptask->skb->data, tx_len, fwnet_write_complete, ptask); | 1052 | ptask->skb->data, tx_len, fwnet_write_complete, ptask); |
1037 | 1053 | ||
1038 | /* FIXME race? */ | ||
1039 | spin_lock_irqsave(&dev->lock, flags); | 1054 | spin_lock_irqsave(&dev->lock, flags); |
1040 | list_add_tail(&ptask->pt_link, &dev->sent_list); | 1055 | |
1056 | /* If the AT tasklet already ran, we may be last user. */ | ||
1057 | free = (ptask->outstanding_pkts == 0 && list_empty(&ptask->pt_link)); | ||
1058 | if (!free) | ||
1059 | list_add_tail(&ptask->pt_link, &dev->sent_list); | ||
1060 | |||
1041 | spin_unlock_irqrestore(&dev->lock, flags); | 1061 | spin_unlock_irqrestore(&dev->lock, flags); |
1042 | 1062 | ||
1043 | dev->netdev->trans_start = jiffies; | 1063 | dev->netdev->trans_start = jiffies; |
1064 | out: | ||
1065 | if (free) | ||
1066 | fwnet_free_ptask(ptask); | ||
1044 | 1067 | ||
1045 | return 0; | 1068 | return 0; |
1046 | } | 1069 | } |
@@ -1298,6 +1321,8 @@ static netdev_tx_t fwnet_tx(struct sk_buff *skb, struct net_device *net) | |||
1298 | spin_unlock_irqrestore(&dev->lock, flags); | 1321 | spin_unlock_irqrestore(&dev->lock, flags); |
1299 | 1322 | ||
1300 | ptask->max_payload = max_payload; | 1323 | ptask->max_payload = max_payload; |
1324 | INIT_LIST_HEAD(&ptask->pt_link); | ||
1325 | |||
1301 | fwnet_send_packet(ptask); | 1326 | fwnet_send_packet(ptask); |
1302 | 1327 | ||
1303 | return NETDEV_TX_OK; | 1328 | return NETDEV_TX_OK; |
diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c index a61571c63c59..43ebf337b131 100644 --- a/drivers/firewire/ohci.c +++ b/drivers/firewire/ohci.c | |||
@@ -2101,11 +2101,6 @@ static int ohci_queue_iso_transmit(struct fw_iso_context *base, | |||
2101 | u32 payload_index, payload_end_index, next_page_index; | 2101 | u32 payload_index, payload_end_index, next_page_index; |
2102 | int page, end_page, i, length, offset; | 2102 | int page, end_page, i, length, offset; |
2103 | 2103 | ||
2104 | /* | ||
2105 | * FIXME: Cycle lost behavior should be configurable: lose | ||
2106 | * packet, retransmit or terminate.. | ||
2107 | */ | ||
2108 | |||
2109 | p = packet; | 2104 | p = packet; |
2110 | payload_index = payload; | 2105 | payload_index = payload; |
2111 | 2106 | ||
@@ -2135,6 +2130,14 @@ static int ohci_queue_iso_transmit(struct fw_iso_context *base, | |||
2135 | if (!p->skip) { | 2130 | if (!p->skip) { |
2136 | d[0].control = cpu_to_le16(DESCRIPTOR_KEY_IMMEDIATE); | 2131 | d[0].control = cpu_to_le16(DESCRIPTOR_KEY_IMMEDIATE); |
2137 | d[0].req_count = cpu_to_le16(8); | 2132 | d[0].req_count = cpu_to_le16(8); |
2133 | /* | ||
2134 | * Link the skip address to this descriptor itself. This causes | ||
2135 | * a context to skip a cycle whenever lost cycles or FIFO | ||
2136 | * overruns occur, without dropping the data. The application | ||
2137 | * should then decide whether this is an error condition or not. | ||
2138 | * FIXME: Make the context's cycle-lost behaviour configurable? | ||
2139 | */ | ||
2140 | d[0].branch_address = cpu_to_le32(d_bus | z); | ||
2138 | 2141 | ||
2139 | header = (__le32 *) &d[1]; | 2142 | header = (__le32 *) &d[1]; |
2140 | header[0] = cpu_to_le32(IT_HEADER_SY(p->sy) | | 2143 | header[0] = cpu_to_le32(IT_HEADER_SY(p->sy) | |
@@ -2420,6 +2423,7 @@ static void ohci_pmac_off(struct pci_dev *dev) | |||
2420 | 2423 | ||
2421 | #define PCI_VENDOR_ID_AGERE PCI_VENDOR_ID_ATT | 2424 | #define PCI_VENDOR_ID_AGERE PCI_VENDOR_ID_ATT |
2422 | #define PCI_DEVICE_ID_AGERE_FW643 0x5901 | 2425 | #define PCI_DEVICE_ID_AGERE_FW643 0x5901 |
2426 | #define PCI_DEVICE_ID_TI_TSB43AB23 0x8024 | ||
2423 | 2427 | ||
2424 | static int __devinit pci_probe(struct pci_dev *dev, | 2428 | static int __devinit pci_probe(struct pci_dev *dev, |
2425 | const struct pci_device_id *ent) | 2429 | const struct pci_device_id *ent) |
@@ -2488,7 +2492,8 @@ static int __devinit pci_probe(struct pci_dev *dev, | |||
2488 | #if !defined(CONFIG_X86_32) | 2492 | #if !defined(CONFIG_X86_32) |
2489 | /* dual-buffer mode is broken with descriptor addresses above 2G */ | 2493 | /* dual-buffer mode is broken with descriptor addresses above 2G */ |
2490 | if (dev->vendor == PCI_VENDOR_ID_TI && | 2494 | if (dev->vendor == PCI_VENDOR_ID_TI && |
2491 | dev->device == PCI_DEVICE_ID_TI_TSB43AB22) | 2495 | (dev->device == PCI_DEVICE_ID_TI_TSB43AB22 || |
2496 | dev->device == PCI_DEVICE_ID_TI_TSB43AB23)) | ||
2492 | ohci->use_dualbuffer = false; | 2497 | ohci->use_dualbuffer = false; |
2493 | #endif | 2498 | #endif |
2494 | 2499 | ||
diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig index 96eddd17e050..305c59003963 100644 --- a/drivers/gpu/drm/Kconfig +++ b/drivers/gpu/drm/Kconfig | |||
@@ -66,6 +66,8 @@ config DRM_RADEON | |||
66 | 66 | ||
67 | If M is selected, the module will be called radeon. | 67 | If M is selected, the module will be called radeon. |
68 | 68 | ||
69 | source "drivers/gpu/drm/radeon/Kconfig" | ||
70 | |||
69 | config DRM_I810 | 71 | config DRM_I810 |
70 | tristate "Intel I810" | 72 | tristate "Intel I810" |
71 | depends on DRM && AGP && AGP_INTEL | 73 | depends on DRM && AGP && AGP_INTEL |
diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c index a1fce68e3bbe..17be051b7aa3 100644 --- a/drivers/gpu/drm/ati_pcigart.c +++ b/drivers/gpu/drm/ati_pcigart.c | |||
@@ -113,7 +113,7 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga | |||
113 | 113 | ||
114 | if (pci_set_dma_mask(dev->pdev, gart_info->table_mask)) { | 114 | if (pci_set_dma_mask(dev->pdev, gart_info->table_mask)) { |
115 | DRM_ERROR("fail to set dma mask to 0x%Lx\n", | 115 | DRM_ERROR("fail to set dma mask to 0x%Lx\n", |
116 | gart_info->table_mask); | 116 | (unsigned long long)gart_info->table_mask); |
117 | ret = 1; | 117 | ret = 1; |
118 | goto done; | 118 | goto done; |
119 | } | 119 | } |
diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c index defcaf108460..f665b05592f3 100644 --- a/drivers/gpu/drm/drm_edid.c +++ b/drivers/gpu/drm/drm_edid.c | |||
@@ -633,8 +633,7 @@ static struct drm_display_mode *drm_mode_detailed(struct drm_device *dev, | |||
633 | return NULL; | 633 | return NULL; |
634 | } | 634 | } |
635 | if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) { | 635 | if (!(pt->misc & DRM_EDID_PT_SEPARATE_SYNC)) { |
636 | printk(KERN_WARNING "integrated sync not supported\n"); | 636 | printk(KERN_WARNING "composite sync not supported\n"); |
637 | return NULL; | ||
638 | } | 637 | } |
639 | 638 | ||
640 | /* it is incorrect if hsync/vsync width is zero */ | 639 | /* it is incorrect if hsync/vsync width is zero */ |
diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c index 1c2b7d44ec05..0f9e90552dc4 100644 --- a/drivers/gpu/drm/drm_fb_helper.c +++ b/drivers/gpu/drm/drm_fb_helper.c | |||
@@ -389,7 +389,7 @@ int drm_fb_helper_blank(int blank, struct fb_info *info) | |||
389 | break; | 389 | break; |
390 | /* Display: Off; HSync: On, VSync: On */ | 390 | /* Display: Off; HSync: On, VSync: On */ |
391 | case FB_BLANK_NORMAL: | 391 | case FB_BLANK_NORMAL: |
392 | drm_fb_helper_off(info, DRM_MODE_DPMS_ON); | 392 | drm_fb_helper_off(info, DRM_MODE_DPMS_STANDBY); |
393 | break; | 393 | break; |
394 | /* Display: Off; HSync: Off, VSync: On */ | 394 | /* Display: Off; HSync: Off, VSync: On */ |
395 | case FB_BLANK_HSYNC_SUSPEND: | 395 | case FB_BLANK_HSYNC_SUSPEND: |
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index e9dbb481c469..8bf3770f294e 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c | |||
@@ -142,19 +142,6 @@ drm_gem_object_alloc(struct drm_device *dev, size_t size) | |||
142 | if (IS_ERR(obj->filp)) | 142 | if (IS_ERR(obj->filp)) |
143 | goto free; | 143 | goto free; |
144 | 144 | ||
145 | /* Basically we want to disable the OOM killer and handle ENOMEM | ||
146 | * ourselves by sacrificing pages from cached buffers. | ||
147 | * XXX shmem_file_[gs]et_gfp_mask() | ||
148 | */ | ||
149 | mapping_set_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping, | ||
150 | GFP_HIGHUSER | | ||
151 | __GFP_COLD | | ||
152 | __GFP_FS | | ||
153 | __GFP_RECLAIMABLE | | ||
154 | __GFP_NORETRY | | ||
155 | __GFP_NOWARN | | ||
156 | __GFP_NOMEMALLOC); | ||
157 | |||
158 | kref_init(&obj->refcount); | 145 | kref_init(&obj->refcount); |
159 | kref_init(&obj->handlecount); | 146 | kref_init(&obj->handlecount); |
160 | obj->size = size; | 147 | obj->size = size; |
diff --git a/drivers/gpu/drm/drm_mm.c b/drivers/gpu/drm/drm_mm.c index cdec32977129..2ac074c8f5d2 100644 --- a/drivers/gpu/drm/drm_mm.c +++ b/drivers/gpu/drm/drm_mm.c | |||
@@ -405,7 +405,8 @@ struct drm_mm_node *drm_mm_search_free_in_range(const struct drm_mm *mm, | |||
405 | wasted += alignment - tmp; | 405 | wasted += alignment - tmp; |
406 | } | 406 | } |
407 | 407 | ||
408 | if (entry->size >= size + wasted) { | 408 | if (entry->size >= size + wasted && |
409 | (entry->start + wasted + size) <= end) { | ||
409 | if (!best_match) | 410 | if (!best_match) |
410 | return entry; | 411 | return entry; |
411 | if (entry->size < best_size) { | 412 | if (entry->size < best_size) { |
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c index 9c9998c4dceb..a894ade03093 100644 --- a/drivers/gpu/drm/i915/i915_debugfs.c +++ b/drivers/gpu/drm/i915/i915_debugfs.c | |||
@@ -290,7 +290,7 @@ static int i915_batchbuffer_info(struct seq_file *m, void *data) | |||
290 | list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) { | 290 | list_for_each_entry(obj_priv, &dev_priv->mm.active_list, list) { |
291 | obj = obj_priv->obj; | 291 | obj = obj_priv->obj; |
292 | if (obj->read_domains & I915_GEM_DOMAIN_COMMAND) { | 292 | if (obj->read_domains & I915_GEM_DOMAIN_COMMAND) { |
293 | ret = i915_gem_object_get_pages(obj); | 293 | ret = i915_gem_object_get_pages(obj, 0); |
294 | if (ret) { | 294 | if (ret) { |
295 | DRM_ERROR("Failed to get pages: %d\n", ret); | 295 | DRM_ERROR("Failed to get pages: %d\n", ret); |
296 | spin_unlock(&dev_priv->mm.active_list_lock); | 296 | spin_unlock(&dev_priv->mm.active_list_lock); |
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index e660ac07f3b2..2307f98349f7 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c | |||
@@ -735,8 +735,10 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data, | |||
735 | if (cmdbuf->num_cliprects) { | 735 | if (cmdbuf->num_cliprects) { |
736 | cliprects = kcalloc(cmdbuf->num_cliprects, | 736 | cliprects = kcalloc(cmdbuf->num_cliprects, |
737 | sizeof(struct drm_clip_rect), GFP_KERNEL); | 737 | sizeof(struct drm_clip_rect), GFP_KERNEL); |
738 | if (cliprects == NULL) | 738 | if (cliprects == NULL) { |
739 | ret = -ENOMEM; | ||
739 | goto fail_batch_free; | 740 | goto fail_batch_free; |
741 | } | ||
740 | 742 | ||
741 | ret = copy_from_user(cliprects, cmdbuf->cliprects, | 743 | ret = copy_from_user(cliprects, cmdbuf->cliprects, |
742 | cmdbuf->num_cliprects * | 744 | cmdbuf->num_cliprects * |
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 46d88965852a..79beffcf5936 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c | |||
@@ -120,7 +120,7 @@ const static struct intel_device_info intel_gm45_info = { | |||
120 | 120 | ||
121 | const static struct intel_device_info intel_pineview_info = { | 121 | const static struct intel_device_info intel_pineview_info = { |
122 | .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, | 122 | .is_g33 = 1, .is_pineview = 1, .is_mobile = 1, .is_i9xx = 1, |
123 | .has_pipe_cxsr = 1, | 123 | .need_gfx_hws = 1, |
124 | .has_hotplug = 1, | 124 | .has_hotplug = 1, |
125 | }; | 125 | }; |
126 | 126 | ||
@@ -174,78 +174,100 @@ const static struct pci_device_id pciidlist[] = { | |||
174 | MODULE_DEVICE_TABLE(pci, pciidlist); | 174 | MODULE_DEVICE_TABLE(pci, pciidlist); |
175 | #endif | 175 | #endif |
176 | 176 | ||
177 | static int i915_suspend(struct drm_device *dev, pm_message_t state) | 177 | static int i915_drm_freeze(struct drm_device *dev) |
178 | { | 178 | { |
179 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
180 | |||
181 | if (!dev || !dev_priv) { | ||
182 | DRM_ERROR("dev: %p, dev_priv: %p\n", dev, dev_priv); | ||
183 | DRM_ERROR("DRM not initialized, aborting suspend.\n"); | ||
184 | return -ENODEV; | ||
185 | } | ||
186 | |||
187 | if (state.event == PM_EVENT_PRETHAW) | ||
188 | return 0; | ||
189 | |||
190 | pci_save_state(dev->pdev); | 179 | pci_save_state(dev->pdev); |
191 | 180 | ||
192 | /* If KMS is active, we do the leavevt stuff here */ | 181 | /* If KMS is active, we do the leavevt stuff here */ |
193 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | 182 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
194 | if (i915_gem_idle(dev)) | 183 | int error = i915_gem_idle(dev); |
184 | if (error) { | ||
195 | dev_err(&dev->pdev->dev, | 185 | dev_err(&dev->pdev->dev, |
196 | "GEM idle failed, resume may fail\n"); | 186 | "GEM idle failed, resume might fail\n"); |
187 | return error; | ||
188 | } | ||
197 | drm_irq_uninstall(dev); | 189 | drm_irq_uninstall(dev); |
198 | } | 190 | } |
199 | 191 | ||
200 | i915_save_state(dev); | 192 | i915_save_state(dev); |
201 | 193 | ||
194 | return 0; | ||
195 | } | ||
196 | |||
197 | static void i915_drm_suspend(struct drm_device *dev) | ||
198 | { | ||
199 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
200 | |||
202 | intel_opregion_free(dev, 1); | 201 | intel_opregion_free(dev, 1); |
203 | 202 | ||
203 | /* Modeset on resume, not lid events */ | ||
204 | dev_priv->modeset_on_lid = 0; | ||
205 | } | ||
206 | |||
207 | static int i915_suspend(struct drm_device *dev, pm_message_t state) | ||
208 | { | ||
209 | int error; | ||
210 | |||
211 | if (!dev || !dev->dev_private) { | ||
212 | DRM_ERROR("dev: %p\n", dev); | ||
213 | DRM_ERROR("DRM not initialized, aborting suspend.\n"); | ||
214 | return -ENODEV; | ||
215 | } | ||
216 | |||
217 | if (state.event == PM_EVENT_PRETHAW) | ||
218 | return 0; | ||
219 | |||
220 | error = i915_drm_freeze(dev); | ||
221 | if (error) | ||
222 | return error; | ||
223 | |||
224 | i915_drm_suspend(dev); | ||
225 | |||
204 | if (state.event == PM_EVENT_SUSPEND) { | 226 | if (state.event == PM_EVENT_SUSPEND) { |
205 | /* Shut down the device */ | 227 | /* Shut down the device */ |
206 | pci_disable_device(dev->pdev); | 228 | pci_disable_device(dev->pdev); |
207 | pci_set_power_state(dev->pdev, PCI_D3hot); | 229 | pci_set_power_state(dev->pdev, PCI_D3hot); |
208 | } | 230 | } |
209 | 231 | ||
210 | /* Modeset on resume, not lid events */ | ||
211 | dev_priv->modeset_on_lid = 0; | ||
212 | |||
213 | return 0; | 232 | return 0; |
214 | } | 233 | } |
215 | 234 | ||
216 | static int i915_resume(struct drm_device *dev) | 235 | static int i915_drm_thaw(struct drm_device *dev) |
217 | { | 236 | { |
218 | struct drm_i915_private *dev_priv = dev->dev_private; | 237 | struct drm_i915_private *dev_priv = dev->dev_private; |
219 | int ret = 0; | 238 | int error = 0; |
220 | |||
221 | if (pci_enable_device(dev->pdev)) | ||
222 | return -1; | ||
223 | pci_set_master(dev->pdev); | ||
224 | |||
225 | i915_restore_state(dev); | ||
226 | |||
227 | intel_opregion_init(dev, 1); | ||
228 | 239 | ||
229 | /* KMS EnterVT equivalent */ | 240 | /* KMS EnterVT equivalent */ |
230 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | 241 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { |
231 | mutex_lock(&dev->struct_mutex); | 242 | mutex_lock(&dev->struct_mutex); |
232 | dev_priv->mm.suspended = 0; | 243 | dev_priv->mm.suspended = 0; |
233 | 244 | ||
234 | ret = i915_gem_init_ringbuffer(dev); | 245 | error = i915_gem_init_ringbuffer(dev); |
235 | if (ret != 0) | ||
236 | ret = -1; | ||
237 | mutex_unlock(&dev->struct_mutex); | 246 | mutex_unlock(&dev->struct_mutex); |
238 | 247 | ||
239 | drm_irq_install(dev); | 248 | drm_irq_install(dev); |
240 | } | 249 | |
241 | if (drm_core_check_feature(dev, DRIVER_MODESET)) { | ||
242 | /* Resume the modeset for every activated CRTC */ | 250 | /* Resume the modeset for every activated CRTC */ |
243 | drm_helper_resume_force_mode(dev); | 251 | drm_helper_resume_force_mode(dev); |
244 | } | 252 | } |
245 | 253 | ||
246 | dev_priv->modeset_on_lid = 0; | 254 | dev_priv->modeset_on_lid = 0; |
247 | 255 | ||
248 | return ret; | 256 | return error; |
257 | } | ||
258 | |||
259 | static int i915_resume(struct drm_device *dev) | ||
260 | { | ||
261 | if (pci_enable_device(dev->pdev)) | ||
262 | return -EIO; | ||
263 | |||
264 | pci_set_master(dev->pdev); | ||
265 | |||
266 | i915_restore_state(dev); | ||
267 | |||
268 | intel_opregion_init(dev, 1); | ||
269 | |||
270 | return i915_drm_thaw(dev); | ||
249 | } | 271 | } |
250 | 272 | ||
251 | /** | 273 | /** |
@@ -386,57 +408,69 @@ i915_pci_remove(struct pci_dev *pdev) | |||
386 | drm_put_dev(dev); | 408 | drm_put_dev(dev); |
387 | } | 409 | } |
388 | 410 | ||
389 | static int | 411 | static int i915_pm_suspend(struct device *dev) |
390 | i915_pci_suspend(struct pci_dev *pdev, pm_message_t state) | ||
391 | { | 412 | { |
392 | struct drm_device *dev = pci_get_drvdata(pdev); | 413 | struct pci_dev *pdev = to_pci_dev(dev); |
414 | struct drm_device *drm_dev = pci_get_drvdata(pdev); | ||
415 | int error; | ||
393 | 416 | ||
394 | return i915_suspend(dev, state); | 417 | if (!drm_dev || !drm_dev->dev_private) { |
395 | } | 418 | dev_err(dev, "DRM not initialized, aborting suspend.\n"); |
419 | return -ENODEV; | ||
420 | } | ||
396 | 421 | ||
397 | static int | 422 | error = i915_drm_freeze(drm_dev); |
398 | i915_pci_resume(struct pci_dev *pdev) | 423 | if (error) |
399 | { | 424 | return error; |
400 | struct drm_device *dev = pci_get_drvdata(pdev); | ||
401 | 425 | ||
402 | return i915_resume(dev); | 426 | i915_drm_suspend(drm_dev); |
403 | } | ||
404 | 427 | ||
405 | static int | 428 | pci_disable_device(pdev); |
406 | i915_pm_suspend(struct device *dev) | 429 | pci_set_power_state(pdev, PCI_D3hot); |
407 | { | ||
408 | return i915_pci_suspend(to_pci_dev(dev), PMSG_SUSPEND); | ||
409 | } | ||
410 | 430 | ||
411 | static int | 431 | return 0; |
412 | i915_pm_resume(struct device *dev) | ||
413 | { | ||
414 | return i915_pci_resume(to_pci_dev(dev)); | ||
415 | } | 432 | } |
416 | 433 | ||
417 | static int | 434 | static int i915_pm_resume(struct device *dev) |
418 | i915_pm_freeze(struct device *dev) | ||
419 | { | 435 | { |
420 | return i915_pci_suspend(to_pci_dev(dev), PMSG_FREEZE); | 436 | struct pci_dev *pdev = to_pci_dev(dev); |
437 | struct drm_device *drm_dev = pci_get_drvdata(pdev); | ||
438 | |||
439 | return i915_resume(drm_dev); | ||
421 | } | 440 | } |
422 | 441 | ||
423 | static int | 442 | static int i915_pm_freeze(struct device *dev) |
424 | i915_pm_thaw(struct device *dev) | ||
425 | { | 443 | { |
426 | /* thaw during hibernate, do nothing! */ | 444 | struct pci_dev *pdev = to_pci_dev(dev); |
427 | return 0; | 445 | struct drm_device *drm_dev = pci_get_drvdata(pdev); |
446 | |||
447 | if (!drm_dev || !drm_dev->dev_private) { | ||
448 | dev_err(dev, "DRM not initialized, aborting suspend.\n"); | ||
449 | return -ENODEV; | ||
450 | } | ||
451 | |||
452 | return i915_drm_freeze(drm_dev); | ||
428 | } | 453 | } |
429 | 454 | ||
430 | static int | 455 | static int i915_pm_thaw(struct device *dev) |
431 | i915_pm_poweroff(struct device *dev) | ||
432 | { | 456 | { |
433 | return i915_pci_suspend(to_pci_dev(dev), PMSG_HIBERNATE); | 457 | struct pci_dev *pdev = to_pci_dev(dev); |
458 | struct drm_device *drm_dev = pci_get_drvdata(pdev); | ||
459 | |||
460 | return i915_drm_thaw(drm_dev); | ||
434 | } | 461 | } |
435 | 462 | ||
436 | static int | 463 | static int i915_pm_poweroff(struct device *dev) |
437 | i915_pm_restore(struct device *dev) | ||
438 | { | 464 | { |
439 | return i915_pci_resume(to_pci_dev(dev)); | 465 | struct pci_dev *pdev = to_pci_dev(dev); |
466 | struct drm_device *drm_dev = pci_get_drvdata(pdev); | ||
467 | int error; | ||
468 | |||
469 | error = i915_drm_freeze(drm_dev); | ||
470 | if (!error) | ||
471 | i915_drm_suspend(drm_dev); | ||
472 | |||
473 | return error; | ||
440 | } | 474 | } |
441 | 475 | ||
442 | const struct dev_pm_ops i915_pm_ops = { | 476 | const struct dev_pm_ops i915_pm_ops = { |
@@ -445,7 +479,7 @@ const struct dev_pm_ops i915_pm_ops = { | |||
445 | .freeze = i915_pm_freeze, | 479 | .freeze = i915_pm_freeze, |
446 | .thaw = i915_pm_thaw, | 480 | .thaw = i915_pm_thaw, |
447 | .poweroff = i915_pm_poweroff, | 481 | .poweroff = i915_pm_poweroff, |
448 | .restore = i915_pm_restore, | 482 | .restore = i915_pm_resume, |
449 | }; | 483 | }; |
450 | 484 | ||
451 | static struct vm_operations_struct i915_gem_vm_ops = { | 485 | static struct vm_operations_struct i915_gem_vm_ops = { |
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 2c1669488b5a..b99b6a841d95 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h | |||
@@ -493,6 +493,15 @@ typedef struct drm_i915_private { | |||
493 | struct list_head flushing_list; | 493 | struct list_head flushing_list; |
494 | 494 | ||
495 | /** | 495 | /** |
496 | * List of objects currently pending a GPU write flush. | ||
497 | * | ||
498 | * All elements on this list will belong to either the | ||
499 | * active_list or flushing_list, last_rendering_seqno can | ||
500 | * be used to differentiate between the two elements. | ||
501 | */ | ||
502 | struct list_head gpu_write_list; | ||
503 | |||
504 | /** | ||
496 | * LRU list of objects which are not in the ringbuffer and | 505 | * LRU list of objects which are not in the ringbuffer and |
497 | * are ready to unbind, but are still in the GTT. | 506 | * are ready to unbind, but are still in the GTT. |
498 | * | 507 | * |
@@ -592,6 +601,8 @@ struct drm_i915_gem_object { | |||
592 | 601 | ||
593 | /** This object's place on the active/flushing/inactive lists */ | 602 | /** This object's place on the active/flushing/inactive lists */ |
594 | struct list_head list; | 603 | struct list_head list; |
604 | /** This object's place on GPU write list */ | ||
605 | struct list_head gpu_write_list; | ||
595 | 606 | ||
596 | /** This object's place on the fenced object LRU */ | 607 | /** This object's place on the fenced object LRU */ |
597 | struct list_head fence_list; | 608 | struct list_head fence_list; |
@@ -872,7 +883,7 @@ int i915_gem_attach_phys_object(struct drm_device *dev, | |||
872 | void i915_gem_detach_phys_object(struct drm_device *dev, | 883 | void i915_gem_detach_phys_object(struct drm_device *dev, |
873 | struct drm_gem_object *obj); | 884 | struct drm_gem_object *obj); |
874 | void i915_gem_free_all_phys_object(struct drm_device *dev); | 885 | void i915_gem_free_all_phys_object(struct drm_device *dev); |
875 | int i915_gem_object_get_pages(struct drm_gem_object *obj); | 886 | int i915_gem_object_get_pages(struct drm_gem_object *obj, gfp_t gfpmask); |
876 | void i915_gem_object_put_pages(struct drm_gem_object *obj); | 887 | void i915_gem_object_put_pages(struct drm_gem_object *obj); |
877 | void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv); | 888 | void i915_gem_release(struct drm_device * dev, struct drm_file *file_priv); |
878 | void i915_gem_object_flush_write_domain(struct drm_gem_object *obj); | 889 | void i915_gem_object_flush_write_domain(struct drm_gem_object *obj); |
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 0c67924ca80c..ec8a0d7ffa39 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c | |||
@@ -277,7 +277,7 @@ i915_gem_shmem_pread_fast(struct drm_device *dev, struct drm_gem_object *obj, | |||
277 | 277 | ||
278 | mutex_lock(&dev->struct_mutex); | 278 | mutex_lock(&dev->struct_mutex); |
279 | 279 | ||
280 | ret = i915_gem_object_get_pages(obj); | 280 | ret = i915_gem_object_get_pages(obj, 0); |
281 | if (ret != 0) | 281 | if (ret != 0) |
282 | goto fail_unlock; | 282 | goto fail_unlock; |
283 | 283 | ||
@@ -321,40 +321,24 @@ fail_unlock: | |||
321 | return ret; | 321 | return ret; |
322 | } | 322 | } |
323 | 323 | ||
324 | static inline gfp_t | ||
325 | i915_gem_object_get_page_gfp_mask (struct drm_gem_object *obj) | ||
326 | { | ||
327 | return mapping_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping); | ||
328 | } | ||
329 | |||
330 | static inline void | ||
331 | i915_gem_object_set_page_gfp_mask (struct drm_gem_object *obj, gfp_t gfp) | ||
332 | { | ||
333 | mapping_set_gfp_mask(obj->filp->f_path.dentry->d_inode->i_mapping, gfp); | ||
334 | } | ||
335 | |||
336 | static int | 324 | static int |
337 | i915_gem_object_get_pages_or_evict(struct drm_gem_object *obj) | 325 | i915_gem_object_get_pages_or_evict(struct drm_gem_object *obj) |
338 | { | 326 | { |
339 | int ret; | 327 | int ret; |
340 | 328 | ||
341 | ret = i915_gem_object_get_pages(obj); | 329 | ret = i915_gem_object_get_pages(obj, __GFP_NORETRY | __GFP_NOWARN); |
342 | 330 | ||
343 | /* If we've insufficient memory to map in the pages, attempt | 331 | /* If we've insufficient memory to map in the pages, attempt |
344 | * to make some space by throwing out some old buffers. | 332 | * to make some space by throwing out some old buffers. |
345 | */ | 333 | */ |
346 | if (ret == -ENOMEM) { | 334 | if (ret == -ENOMEM) { |
347 | struct drm_device *dev = obj->dev; | 335 | struct drm_device *dev = obj->dev; |
348 | gfp_t gfp; | ||
349 | 336 | ||
350 | ret = i915_gem_evict_something(dev, obj->size); | 337 | ret = i915_gem_evict_something(dev, obj->size); |
351 | if (ret) | 338 | if (ret) |
352 | return ret; | 339 | return ret; |
353 | 340 | ||
354 | gfp = i915_gem_object_get_page_gfp_mask(obj); | 341 | ret = i915_gem_object_get_pages(obj, 0); |
355 | i915_gem_object_set_page_gfp_mask(obj, gfp & ~__GFP_NORETRY); | ||
356 | ret = i915_gem_object_get_pages(obj); | ||
357 | i915_gem_object_set_page_gfp_mask (obj, gfp); | ||
358 | } | 342 | } |
359 | 343 | ||
360 | return ret; | 344 | return ret; |
@@ -790,7 +774,7 @@ i915_gem_shmem_pwrite_fast(struct drm_device *dev, struct drm_gem_object *obj, | |||
790 | 774 | ||
791 | mutex_lock(&dev->struct_mutex); | 775 | mutex_lock(&dev->struct_mutex); |
792 | 776 | ||
793 | ret = i915_gem_object_get_pages(obj); | 777 | ret = i915_gem_object_get_pages(obj, 0); |
794 | if (ret != 0) | 778 | if (ret != 0) |
795 | goto fail_unlock; | 779 | goto fail_unlock; |
796 | 780 | ||
@@ -1568,6 +1552,8 @@ i915_gem_object_move_to_inactive(struct drm_gem_object *obj) | |||
1568 | else | 1552 | else |
1569 | list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list); | 1553 | list_move_tail(&obj_priv->list, &dev_priv->mm.inactive_list); |
1570 | 1554 | ||
1555 | BUG_ON(!list_empty(&obj_priv->gpu_write_list)); | ||
1556 | |||
1571 | obj_priv->last_rendering_seqno = 0; | 1557 | obj_priv->last_rendering_seqno = 0; |
1572 | if (obj_priv->active) { | 1558 | if (obj_priv->active) { |
1573 | obj_priv->active = 0; | 1559 | obj_priv->active = 0; |
@@ -1638,7 +1624,8 @@ i915_add_request(struct drm_device *dev, struct drm_file *file_priv, | |||
1638 | struct drm_i915_gem_object *obj_priv, *next; | 1624 | struct drm_i915_gem_object *obj_priv, *next; |
1639 | 1625 | ||
1640 | list_for_each_entry_safe(obj_priv, next, | 1626 | list_for_each_entry_safe(obj_priv, next, |
1641 | &dev_priv->mm.flushing_list, list) { | 1627 | &dev_priv->mm.gpu_write_list, |
1628 | gpu_write_list) { | ||
1642 | struct drm_gem_object *obj = obj_priv->obj; | 1629 | struct drm_gem_object *obj = obj_priv->obj; |
1643 | 1630 | ||
1644 | if ((obj->write_domain & flush_domains) == | 1631 | if ((obj->write_domain & flush_domains) == |
@@ -1646,6 +1633,7 @@ i915_add_request(struct drm_device *dev, struct drm_file *file_priv, | |||
1646 | uint32_t old_write_domain = obj->write_domain; | 1633 | uint32_t old_write_domain = obj->write_domain; |
1647 | 1634 | ||
1648 | obj->write_domain = 0; | 1635 | obj->write_domain = 0; |
1636 | list_del_init(&obj_priv->gpu_write_list); | ||
1649 | i915_gem_object_move_to_active(obj, seqno); | 1637 | i915_gem_object_move_to_active(obj, seqno); |
1650 | 1638 | ||
1651 | trace_i915_gem_object_change_domain(obj, | 1639 | trace_i915_gem_object_change_domain(obj, |
@@ -2100,8 +2088,8 @@ static int | |||
2100 | i915_gem_evict_everything(struct drm_device *dev) | 2088 | i915_gem_evict_everything(struct drm_device *dev) |
2101 | { | 2089 | { |
2102 | drm_i915_private_t *dev_priv = dev->dev_private; | 2090 | drm_i915_private_t *dev_priv = dev->dev_private; |
2103 | uint32_t seqno; | ||
2104 | int ret; | 2091 | int ret; |
2092 | uint32_t seqno; | ||
2105 | bool lists_empty; | 2093 | bool lists_empty; |
2106 | 2094 | ||
2107 | spin_lock(&dev_priv->mm.active_list_lock); | 2095 | spin_lock(&dev_priv->mm.active_list_lock); |
@@ -2123,6 +2111,8 @@ i915_gem_evict_everything(struct drm_device *dev) | |||
2123 | if (ret) | 2111 | if (ret) |
2124 | return ret; | 2112 | return ret; |
2125 | 2113 | ||
2114 | BUG_ON(!list_empty(&dev_priv->mm.flushing_list)); | ||
2115 | |||
2126 | ret = i915_gem_evict_from_inactive_list(dev); | 2116 | ret = i915_gem_evict_from_inactive_list(dev); |
2127 | if (ret) | 2117 | if (ret) |
2128 | return ret; | 2118 | return ret; |
@@ -2230,7 +2220,8 @@ i915_gem_evict_something(struct drm_device *dev, int min_size) | |||
2230 | } | 2220 | } |
2231 | 2221 | ||
2232 | int | 2222 | int |
2233 | i915_gem_object_get_pages(struct drm_gem_object *obj) | 2223 | i915_gem_object_get_pages(struct drm_gem_object *obj, |
2224 | gfp_t gfpmask) | ||
2234 | { | 2225 | { |
2235 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | 2226 | struct drm_i915_gem_object *obj_priv = obj->driver_private; |
2236 | int page_count, i; | 2227 | int page_count, i; |
@@ -2256,7 +2247,10 @@ i915_gem_object_get_pages(struct drm_gem_object *obj) | |||
2256 | inode = obj->filp->f_path.dentry->d_inode; | 2247 | inode = obj->filp->f_path.dentry->d_inode; |
2257 | mapping = inode->i_mapping; | 2248 | mapping = inode->i_mapping; |
2258 | for (i = 0; i < page_count; i++) { | 2249 | for (i = 0; i < page_count; i++) { |
2259 | page = read_mapping_page(mapping, i, NULL); | 2250 | page = read_cache_page_gfp(mapping, i, |
2251 | mapping_gfp_mask (mapping) | | ||
2252 | __GFP_COLD | | ||
2253 | gfpmask); | ||
2260 | if (IS_ERR(page)) { | 2254 | if (IS_ERR(page)) { |
2261 | ret = PTR_ERR(page); | 2255 | ret = PTR_ERR(page); |
2262 | i915_gem_object_put_pages(obj); | 2256 | i915_gem_object_put_pages(obj); |
@@ -2579,7 +2573,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment) | |||
2579 | drm_i915_private_t *dev_priv = dev->dev_private; | 2573 | drm_i915_private_t *dev_priv = dev->dev_private; |
2580 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | 2574 | struct drm_i915_gem_object *obj_priv = obj->driver_private; |
2581 | struct drm_mm_node *free_space; | 2575 | struct drm_mm_node *free_space; |
2582 | bool retry_alloc = false; | 2576 | gfp_t gfpmask = __GFP_NORETRY | __GFP_NOWARN; |
2583 | int ret; | 2577 | int ret; |
2584 | 2578 | ||
2585 | if (obj_priv->madv != I915_MADV_WILLNEED) { | 2579 | if (obj_priv->madv != I915_MADV_WILLNEED) { |
@@ -2623,15 +2617,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment) | |||
2623 | DRM_INFO("Binding object of size %zd at 0x%08x\n", | 2617 | DRM_INFO("Binding object of size %zd at 0x%08x\n", |
2624 | obj->size, obj_priv->gtt_offset); | 2618 | obj->size, obj_priv->gtt_offset); |
2625 | #endif | 2619 | #endif |
2626 | if (retry_alloc) { | 2620 | ret = i915_gem_object_get_pages(obj, gfpmask); |
2627 | i915_gem_object_set_page_gfp_mask (obj, | ||
2628 | i915_gem_object_get_page_gfp_mask (obj) & ~__GFP_NORETRY); | ||
2629 | } | ||
2630 | ret = i915_gem_object_get_pages(obj); | ||
2631 | if (retry_alloc) { | ||
2632 | i915_gem_object_set_page_gfp_mask (obj, | ||
2633 | i915_gem_object_get_page_gfp_mask (obj) | __GFP_NORETRY); | ||
2634 | } | ||
2635 | if (ret) { | 2621 | if (ret) { |
2636 | drm_mm_put_block(obj_priv->gtt_space); | 2622 | drm_mm_put_block(obj_priv->gtt_space); |
2637 | obj_priv->gtt_space = NULL; | 2623 | obj_priv->gtt_space = NULL; |
@@ -2641,9 +2627,9 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment) | |||
2641 | ret = i915_gem_evict_something(dev, obj->size); | 2627 | ret = i915_gem_evict_something(dev, obj->size); |
2642 | if (ret) { | 2628 | if (ret) { |
2643 | /* now try to shrink everyone else */ | 2629 | /* now try to shrink everyone else */ |
2644 | if (! retry_alloc) { | 2630 | if (gfpmask) { |
2645 | retry_alloc = true; | 2631 | gfpmask = 0; |
2646 | goto search_free; | 2632 | goto search_free; |
2647 | } | 2633 | } |
2648 | 2634 | ||
2649 | return ret; | 2635 | return ret; |
@@ -2721,7 +2707,7 @@ i915_gem_object_flush_gpu_write_domain(struct drm_gem_object *obj) | |||
2721 | old_write_domain = obj->write_domain; | 2707 | old_write_domain = obj->write_domain; |
2722 | i915_gem_flush(dev, 0, obj->write_domain); | 2708 | i915_gem_flush(dev, 0, obj->write_domain); |
2723 | seqno = i915_add_request(dev, NULL, obj->write_domain); | 2709 | seqno = i915_add_request(dev, NULL, obj->write_domain); |
2724 | obj->write_domain = 0; | 2710 | BUG_ON(obj->write_domain); |
2725 | i915_gem_object_move_to_active(obj, seqno); | 2711 | i915_gem_object_move_to_active(obj, seqno); |
2726 | 2712 | ||
2727 | trace_i915_gem_object_change_domain(obj, | 2713 | trace_i915_gem_object_change_domain(obj, |
@@ -3584,6 +3570,9 @@ i915_gem_put_relocs_to_user(struct drm_i915_gem_exec_object2 *exec_list, | |||
3584 | uint32_t reloc_count = 0, i; | 3570 | uint32_t reloc_count = 0, i; |
3585 | int ret = 0; | 3571 | int ret = 0; |
3586 | 3572 | ||
3573 | if (relocs == NULL) | ||
3574 | return 0; | ||
3575 | |||
3587 | for (i = 0; i < buffer_count; i++) { | 3576 | for (i = 0; i < buffer_count; i++) { |
3588 | struct drm_i915_gem_relocation_entry __user *user_relocs; | 3577 | struct drm_i915_gem_relocation_entry __user *user_relocs; |
3589 | int unwritten; | 3578 | int unwritten; |
@@ -3673,7 +3662,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, | |||
3673 | struct drm_gem_object *batch_obj; | 3662 | struct drm_gem_object *batch_obj; |
3674 | struct drm_i915_gem_object *obj_priv; | 3663 | struct drm_i915_gem_object *obj_priv; |
3675 | struct drm_clip_rect *cliprects = NULL; | 3664 | struct drm_clip_rect *cliprects = NULL; |
3676 | struct drm_i915_gem_relocation_entry *relocs; | 3665 | struct drm_i915_gem_relocation_entry *relocs = NULL; |
3677 | int ret = 0, ret2, i, pinned = 0; | 3666 | int ret = 0, ret2, i, pinned = 0; |
3678 | uint64_t exec_offset; | 3667 | uint64_t exec_offset; |
3679 | uint32_t seqno, flush_domains, reloc_index; | 3668 | uint32_t seqno, flush_domains, reloc_index; |
@@ -3699,8 +3688,10 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, | |||
3699 | if (args->num_cliprects != 0) { | 3688 | if (args->num_cliprects != 0) { |
3700 | cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects), | 3689 | cliprects = kcalloc(args->num_cliprects, sizeof(*cliprects), |
3701 | GFP_KERNEL); | 3690 | GFP_KERNEL); |
3702 | if (cliprects == NULL) | 3691 | if (cliprects == NULL) { |
3692 | ret = -ENOMEM; | ||
3703 | goto pre_mutex_err; | 3693 | goto pre_mutex_err; |
3694 | } | ||
3704 | 3695 | ||
3705 | ret = copy_from_user(cliprects, | 3696 | ret = copy_from_user(cliprects, |
3706 | (struct drm_clip_rect __user *) | 3697 | (struct drm_clip_rect __user *) |
@@ -3742,6 +3733,8 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, | |||
3742 | if (object_list[i] == NULL) { | 3733 | if (object_list[i] == NULL) { |
3743 | DRM_ERROR("Invalid object handle %d at index %d\n", | 3734 | DRM_ERROR("Invalid object handle %d at index %d\n", |
3744 | exec_list[i].handle, i); | 3735 | exec_list[i].handle, i); |
3736 | /* prevent error path from reading uninitialized data */ | ||
3737 | args->buffer_count = i + 1; | ||
3745 | ret = -EBADF; | 3738 | ret = -EBADF; |
3746 | goto err; | 3739 | goto err; |
3747 | } | 3740 | } |
@@ -3750,6 +3743,8 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, | |||
3750 | if (obj_priv->in_execbuffer) { | 3743 | if (obj_priv->in_execbuffer) { |
3751 | DRM_ERROR("Object %p appears more than once in object list\n", | 3744 | DRM_ERROR("Object %p appears more than once in object list\n", |
3752 | object_list[i]); | 3745 | object_list[i]); |
3746 | /* prevent error path from reading uninitialized data */ | ||
3747 | args->buffer_count = i + 1; | ||
3753 | ret = -EBADF; | 3748 | ret = -EBADF; |
3754 | goto err; | 3749 | goto err; |
3755 | } | 3750 | } |
@@ -3863,16 +3858,23 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data, | |||
3863 | i915_gem_flush(dev, | 3858 | i915_gem_flush(dev, |
3864 | dev->invalidate_domains, | 3859 | dev->invalidate_domains, |
3865 | dev->flush_domains); | 3860 | dev->flush_domains); |
3866 | if (dev->flush_domains) | 3861 | if (dev->flush_domains & I915_GEM_GPU_DOMAINS) |
3867 | (void)i915_add_request(dev, file_priv, | 3862 | (void)i915_add_request(dev, file_priv, |
3868 | dev->flush_domains); | 3863 | dev->flush_domains); |
3869 | } | 3864 | } |
3870 | 3865 | ||
3871 | for (i = 0; i < args->buffer_count; i++) { | 3866 | for (i = 0; i < args->buffer_count; i++) { |
3872 | struct drm_gem_object *obj = object_list[i]; | 3867 | struct drm_gem_object *obj = object_list[i]; |
3868 | struct drm_i915_gem_object *obj_priv = obj->driver_private; | ||
3873 | uint32_t old_write_domain = obj->write_domain; | 3869 | uint32_t old_write_domain = obj->write_domain; |
3874 | 3870 | ||
3875 | obj->write_domain = obj->pending_write_domain; | 3871 | obj->write_domain = obj->pending_write_domain; |
3872 | if (obj->write_domain) | ||
3873 | list_move_tail(&obj_priv->gpu_write_list, | ||
3874 | &dev_priv->mm.gpu_write_list); | ||
3875 | else | ||
3876 | list_del_init(&obj_priv->gpu_write_list); | ||
3877 | |||
3876 | trace_i915_gem_object_change_domain(obj, | 3878 | trace_i915_gem_object_change_domain(obj, |
3877 | obj->read_domains, | 3879 | obj->read_domains, |
3878 | old_write_domain); | 3880 | old_write_domain); |
@@ -3946,6 +3948,7 @@ err: | |||
3946 | 3948 | ||
3947 | mutex_unlock(&dev->struct_mutex); | 3949 | mutex_unlock(&dev->struct_mutex); |
3948 | 3950 | ||
3951 | pre_mutex_err: | ||
3949 | /* Copy the updated relocations out regardless of current error | 3952 | /* Copy the updated relocations out regardless of current error |
3950 | * state. Failure to update the relocs would mean that the next | 3953 | * state. Failure to update the relocs would mean that the next |
3951 | * time userland calls execbuf, it would do so with presumed offset | 3954 | * time userland calls execbuf, it would do so with presumed offset |
@@ -3960,7 +3963,6 @@ err: | |||
3960 | ret = ret2; | 3963 | ret = ret2; |
3961 | } | 3964 | } |
3962 | 3965 | ||
3963 | pre_mutex_err: | ||
3964 | drm_free_large(object_list); | 3966 | drm_free_large(object_list); |
3965 | kfree(cliprects); | 3967 | kfree(cliprects); |
3966 | 3968 | ||
@@ -4383,6 +4385,7 @@ int i915_gem_init_object(struct drm_gem_object *obj) | |||
4383 | obj_priv->obj = obj; | 4385 | obj_priv->obj = obj; |
4384 | obj_priv->fence_reg = I915_FENCE_REG_NONE; | 4386 | obj_priv->fence_reg = I915_FENCE_REG_NONE; |
4385 | INIT_LIST_HEAD(&obj_priv->list); | 4387 | INIT_LIST_HEAD(&obj_priv->list); |
4388 | INIT_LIST_HEAD(&obj_priv->gpu_write_list); | ||
4386 | INIT_LIST_HEAD(&obj_priv->fence_list); | 4389 | INIT_LIST_HEAD(&obj_priv->fence_list); |
4387 | obj_priv->madv = I915_MADV_WILLNEED; | 4390 | obj_priv->madv = I915_MADV_WILLNEED; |
4388 | 4391 | ||
@@ -4834,6 +4837,7 @@ i915_gem_load(struct drm_device *dev) | |||
4834 | spin_lock_init(&dev_priv->mm.active_list_lock); | 4837 | spin_lock_init(&dev_priv->mm.active_list_lock); |
4835 | INIT_LIST_HEAD(&dev_priv->mm.active_list); | 4838 | INIT_LIST_HEAD(&dev_priv->mm.active_list); |
4836 | INIT_LIST_HEAD(&dev_priv->mm.flushing_list); | 4839 | INIT_LIST_HEAD(&dev_priv->mm.flushing_list); |
4840 | INIT_LIST_HEAD(&dev_priv->mm.gpu_write_list); | ||
4837 | INIT_LIST_HEAD(&dev_priv->mm.inactive_list); | 4841 | INIT_LIST_HEAD(&dev_priv->mm.inactive_list); |
4838 | INIT_LIST_HEAD(&dev_priv->mm.request_list); | 4842 | INIT_LIST_HEAD(&dev_priv->mm.request_list); |
4839 | INIT_LIST_HEAD(&dev_priv->mm.fence_list); | 4843 | INIT_LIST_HEAD(&dev_priv->mm.fence_list); |
@@ -4946,7 +4950,7 @@ void i915_gem_detach_phys_object(struct drm_device *dev, | |||
4946 | if (!obj_priv->phys_obj) | 4950 | if (!obj_priv->phys_obj) |
4947 | return; | 4951 | return; |
4948 | 4952 | ||
4949 | ret = i915_gem_object_get_pages(obj); | 4953 | ret = i915_gem_object_get_pages(obj, 0); |
4950 | if (ret) | 4954 | if (ret) |
4951 | goto out; | 4955 | goto out; |
4952 | 4956 | ||
@@ -5004,7 +5008,7 @@ i915_gem_attach_phys_object(struct drm_device *dev, | |||
5004 | obj_priv->phys_obj = dev_priv->mm.phys_objs[id - 1]; | 5008 | obj_priv->phys_obj = dev_priv->mm.phys_objs[id - 1]; |
5005 | obj_priv->phys_obj->cur_obj = obj; | 5009 | obj_priv->phys_obj->cur_obj = obj; |
5006 | 5010 | ||
5007 | ret = i915_gem_object_get_pages(obj); | 5011 | ret = i915_gem_object_get_pages(obj, 0); |
5008 | if (ret) { | 5012 | if (ret) { |
5009 | DRM_ERROR("failed to get page list\n"); | 5013 | DRM_ERROR("failed to get page list\n"); |
5010 | goto out; | 5014 | goto out; |
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c index 89a071a3e6fb..a17d6bdfe63e 100644 --- a/drivers/gpu/drm/i915/i915_irq.c +++ b/drivers/gpu/drm/i915/i915_irq.c | |||
@@ -309,6 +309,22 @@ irqreturn_t ironlake_irq_handler(struct drm_device *dev) | |||
309 | if (de_iir & DE_GSE) | 309 | if (de_iir & DE_GSE) |
310 | ironlake_opregion_gse_intr(dev); | 310 | ironlake_opregion_gse_intr(dev); |
311 | 311 | ||
312 | if (de_iir & DE_PLANEA_FLIP_DONE) { | ||
313 | intel_prepare_page_flip(dev, 0); | ||
314 | intel_finish_page_flip(dev, 0); | ||
315 | } | ||
316 | |||
317 | if (de_iir & DE_PLANEB_FLIP_DONE) { | ||
318 | intel_prepare_page_flip(dev, 1); | ||
319 | intel_finish_page_flip(dev, 1); | ||
320 | } | ||
321 | |||
322 | if (de_iir & DE_PIPEA_VBLANK) | ||
323 | drm_handle_vblank(dev, 0); | ||
324 | |||
325 | if (de_iir & DE_PIPEB_VBLANK) | ||
326 | drm_handle_vblank(dev, 1); | ||
327 | |||
312 | /* check event from PCH */ | 328 | /* check event from PCH */ |
313 | if ((de_iir & DE_PCH_EVENT) && | 329 | if ((de_iir & DE_PCH_EVENT) && |
314 | (pch_iir & SDE_HOTPLUG_MASK)) { | 330 | (pch_iir & SDE_HOTPLUG_MASK)) { |
@@ -844,11 +860,11 @@ int i915_enable_vblank(struct drm_device *dev, int pipe) | |||
844 | if (!(pipeconf & PIPEACONF_ENABLE)) | 860 | if (!(pipeconf & PIPEACONF_ENABLE)) |
845 | return -EINVAL; | 861 | return -EINVAL; |
846 | 862 | ||
847 | if (IS_IRONLAKE(dev)) | ||
848 | return 0; | ||
849 | |||
850 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | 863 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); |
851 | if (IS_I965G(dev)) | 864 | if (IS_IRONLAKE(dev)) |
865 | ironlake_enable_display_irq(dev_priv, (pipe == 0) ? | ||
866 | DE_PIPEA_VBLANK: DE_PIPEB_VBLANK); | ||
867 | else if (IS_I965G(dev)) | ||
852 | i915_enable_pipestat(dev_priv, pipe, | 868 | i915_enable_pipestat(dev_priv, pipe, |
853 | PIPE_START_VBLANK_INTERRUPT_ENABLE); | 869 | PIPE_START_VBLANK_INTERRUPT_ENABLE); |
854 | else | 870 | else |
@@ -866,13 +882,14 @@ void i915_disable_vblank(struct drm_device *dev, int pipe) | |||
866 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 882 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
867 | unsigned long irqflags; | 883 | unsigned long irqflags; |
868 | 884 | ||
869 | if (IS_IRONLAKE(dev)) | ||
870 | return; | ||
871 | |||
872 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); | 885 | spin_lock_irqsave(&dev_priv->user_irq_lock, irqflags); |
873 | i915_disable_pipestat(dev_priv, pipe, | 886 | if (IS_IRONLAKE(dev)) |
874 | PIPE_VBLANK_INTERRUPT_ENABLE | | 887 | ironlake_disable_display_irq(dev_priv, (pipe == 0) ? |
875 | PIPE_START_VBLANK_INTERRUPT_ENABLE); | 888 | DE_PIPEA_VBLANK: DE_PIPEB_VBLANK); |
889 | else | ||
890 | i915_disable_pipestat(dev_priv, pipe, | ||
891 | PIPE_VBLANK_INTERRUPT_ENABLE | | ||
892 | PIPE_START_VBLANK_INTERRUPT_ENABLE); | ||
876 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); | 893 | spin_unlock_irqrestore(&dev_priv->user_irq_lock, irqflags); |
877 | } | 894 | } |
878 | 895 | ||
@@ -1015,13 +1032,14 @@ static int ironlake_irq_postinstall(struct drm_device *dev) | |||
1015 | { | 1032 | { |
1016 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; | 1033 | drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; |
1017 | /* enable kind of interrupts always enabled */ | 1034 | /* enable kind of interrupts always enabled */ |
1018 | u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT; | 1035 | u32 display_mask = DE_MASTER_IRQ_CONTROL | DE_GSE | DE_PCH_EVENT | |
1036 | DE_PLANEA_FLIP_DONE | DE_PLANEB_FLIP_DONE; | ||
1019 | u32 render_mask = GT_USER_INTERRUPT; | 1037 | u32 render_mask = GT_USER_INTERRUPT; |
1020 | u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG | | 1038 | u32 hotplug_mask = SDE_CRT_HOTPLUG | SDE_PORTB_HOTPLUG | |
1021 | SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG; | 1039 | SDE_PORTC_HOTPLUG | SDE_PORTD_HOTPLUG; |
1022 | 1040 | ||
1023 | dev_priv->irq_mask_reg = ~display_mask; | 1041 | dev_priv->irq_mask_reg = ~display_mask; |
1024 | dev_priv->de_irq_enable_reg = display_mask; | 1042 | dev_priv->de_irq_enable_reg = display_mask | DE_PIPEA_VBLANK | DE_PIPEB_VBLANK; |
1025 | 1043 | ||
1026 | /* should always can generate irq */ | 1044 | /* should always can generate irq */ |
1027 | I915_WRITE(DEIIR, I915_READ(DEIIR)); | 1045 | I915_WRITE(DEIIR, I915_READ(DEIIR)); |
diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h index 847006c5218e..ab1bd2d3d3b6 100644 --- a/drivers/gpu/drm/i915/i915_reg.h +++ b/drivers/gpu/drm/i915/i915_reg.h | |||
@@ -338,6 +338,7 @@ | |||
338 | #define FBC_CTL_PERIODIC (1<<30) | 338 | #define FBC_CTL_PERIODIC (1<<30) |
339 | #define FBC_CTL_INTERVAL_SHIFT (16) | 339 | #define FBC_CTL_INTERVAL_SHIFT (16) |
340 | #define FBC_CTL_UNCOMPRESSIBLE (1<<14) | 340 | #define FBC_CTL_UNCOMPRESSIBLE (1<<14) |
341 | #define FBC_C3_IDLE (1<<13) | ||
341 | #define FBC_CTL_STRIDE_SHIFT (5) | 342 | #define FBC_CTL_STRIDE_SHIFT (5) |
342 | #define FBC_CTL_FENCENO (1<<0) | 343 | #define FBC_CTL_FENCENO (1<<0) |
343 | #define FBC_COMMAND 0x0320c | 344 | #define FBC_COMMAND 0x0320c |
diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c index ddefc871edfe..79dd4026586f 100644 --- a/drivers/gpu/drm/i915/intel_crt.c +++ b/drivers/gpu/drm/i915/intel_crt.c | |||
@@ -157,6 +157,9 @@ static bool intel_ironlake_crt_detect_hotplug(struct drm_connector *connector) | |||
157 | adpa = I915_READ(PCH_ADPA); | 157 | adpa = I915_READ(PCH_ADPA); |
158 | 158 | ||
159 | adpa &= ~ADPA_CRT_HOTPLUG_MASK; | 159 | adpa &= ~ADPA_CRT_HOTPLUG_MASK; |
160 | /* disable HPD first */ | ||
161 | I915_WRITE(PCH_ADPA, adpa); | ||
162 | (void)I915_READ(PCH_ADPA); | ||
160 | 163 | ||
161 | adpa |= (ADPA_CRT_HOTPLUG_PERIOD_128 | | 164 | adpa |= (ADPA_CRT_HOTPLUG_PERIOD_128 | |
162 | ADPA_CRT_HOTPLUG_WARMUP_10MS | | 165 | ADPA_CRT_HOTPLUG_WARMUP_10MS | |
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c index 45da78ef4a92..b27202d23ebc 100644 --- a/drivers/gpu/drm/i915/intel_display.c +++ b/drivers/gpu/drm/i915/intel_display.c | |||
@@ -240,33 +240,86 @@ struct intel_limit { | |||
240 | #define IRONLAKE_DOT_MAX 350000 | 240 | #define IRONLAKE_DOT_MAX 350000 |
241 | #define IRONLAKE_VCO_MIN 1760000 | 241 | #define IRONLAKE_VCO_MIN 1760000 |
242 | #define IRONLAKE_VCO_MAX 3510000 | 242 | #define IRONLAKE_VCO_MAX 3510000 |
243 | #define IRONLAKE_N_MIN 1 | ||
244 | #define IRONLAKE_N_MAX 6 | ||
245 | #define IRONLAKE_M_MIN 79 | ||
246 | #define IRONLAKE_M_MAX 127 | ||
247 | #define IRONLAKE_M1_MIN 12 | 243 | #define IRONLAKE_M1_MIN 12 |
248 | #define IRONLAKE_M1_MAX 22 | 244 | #define IRONLAKE_M1_MAX 22 |
249 | #define IRONLAKE_M2_MIN 5 | 245 | #define IRONLAKE_M2_MIN 5 |
250 | #define IRONLAKE_M2_MAX 9 | 246 | #define IRONLAKE_M2_MAX 9 |
251 | #define IRONLAKE_P_SDVO_DAC_MIN 5 | ||
252 | #define IRONLAKE_P_SDVO_DAC_MAX 80 | ||
253 | #define IRONLAKE_P_LVDS_MIN 28 | ||
254 | #define IRONLAKE_P_LVDS_MAX 112 | ||
255 | #define IRONLAKE_P1_MIN 1 | ||
256 | #define IRONLAKE_P1_MAX 8 | ||
257 | #define IRONLAKE_P2_SDVO_DAC_SLOW 10 | ||
258 | #define IRONLAKE_P2_SDVO_DAC_FAST 5 | ||
259 | #define IRONLAKE_P2_LVDS_SLOW 14 /* single channel */ | ||
260 | #define IRONLAKE_P2_LVDS_FAST 7 /* double channel */ | ||
261 | #define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */ | 247 | #define IRONLAKE_P2_DOT_LIMIT 225000 /* 225Mhz */ |
262 | 248 | ||
263 | #define IRONLAKE_P_DISPLAY_PORT_MIN 10 | 249 | /* We have parameter ranges for different type of outputs. */ |
264 | #define IRONLAKE_P_DISPLAY_PORT_MAX 20 | 250 | |
265 | #define IRONLAKE_P2_DISPLAY_PORT_FAST 10 | 251 | /* DAC & HDMI Refclk 120Mhz */ |
266 | #define IRONLAKE_P2_DISPLAY_PORT_SLOW 10 | 252 | #define IRONLAKE_DAC_N_MIN 1 |
267 | #define IRONLAKE_P2_DISPLAY_PORT_LIMIT 0 | 253 | #define IRONLAKE_DAC_N_MAX 5 |
268 | #define IRONLAKE_P1_DISPLAY_PORT_MIN 1 | 254 | #define IRONLAKE_DAC_M_MIN 79 |
269 | #define IRONLAKE_P1_DISPLAY_PORT_MAX 2 | 255 | #define IRONLAKE_DAC_M_MAX 127 |
256 | #define IRONLAKE_DAC_P_MIN 5 | ||
257 | #define IRONLAKE_DAC_P_MAX 80 | ||
258 | #define IRONLAKE_DAC_P1_MIN 1 | ||
259 | #define IRONLAKE_DAC_P1_MAX 8 | ||
260 | #define IRONLAKE_DAC_P2_SLOW 10 | ||
261 | #define IRONLAKE_DAC_P2_FAST 5 | ||
262 | |||
263 | /* LVDS single-channel 120Mhz refclk */ | ||
264 | #define IRONLAKE_LVDS_S_N_MIN 1 | ||
265 | #define IRONLAKE_LVDS_S_N_MAX 3 | ||
266 | #define IRONLAKE_LVDS_S_M_MIN 79 | ||
267 | #define IRONLAKE_LVDS_S_M_MAX 118 | ||
268 | #define IRONLAKE_LVDS_S_P_MIN 28 | ||
269 | #define IRONLAKE_LVDS_S_P_MAX 112 | ||
270 | #define IRONLAKE_LVDS_S_P1_MIN 2 | ||
271 | #define IRONLAKE_LVDS_S_P1_MAX 8 | ||
272 | #define IRONLAKE_LVDS_S_P2_SLOW 14 | ||
273 | #define IRONLAKE_LVDS_S_P2_FAST 14 | ||
274 | |||
275 | /* LVDS dual-channel 120Mhz refclk */ | ||
276 | #define IRONLAKE_LVDS_D_N_MIN 1 | ||
277 | #define IRONLAKE_LVDS_D_N_MAX 3 | ||
278 | #define IRONLAKE_LVDS_D_M_MIN 79 | ||
279 | #define IRONLAKE_LVDS_D_M_MAX 127 | ||
280 | #define IRONLAKE_LVDS_D_P_MIN 14 | ||
281 | #define IRONLAKE_LVDS_D_P_MAX 56 | ||
282 | #define IRONLAKE_LVDS_D_P1_MIN 2 | ||
283 | #define IRONLAKE_LVDS_D_P1_MAX 8 | ||
284 | #define IRONLAKE_LVDS_D_P2_SLOW 7 | ||
285 | #define IRONLAKE_LVDS_D_P2_FAST 7 | ||
286 | |||
287 | /* LVDS single-channel 100Mhz refclk */ | ||
288 | #define IRONLAKE_LVDS_S_SSC_N_MIN 1 | ||
289 | #define IRONLAKE_LVDS_S_SSC_N_MAX 2 | ||
290 | #define IRONLAKE_LVDS_S_SSC_M_MIN 79 | ||
291 | #define IRONLAKE_LVDS_S_SSC_M_MAX 126 | ||
292 | #define IRONLAKE_LVDS_S_SSC_P_MIN 28 | ||
293 | #define IRONLAKE_LVDS_S_SSC_P_MAX 112 | ||
294 | #define IRONLAKE_LVDS_S_SSC_P1_MIN 2 | ||
295 | #define IRONLAKE_LVDS_S_SSC_P1_MAX 8 | ||
296 | #define IRONLAKE_LVDS_S_SSC_P2_SLOW 14 | ||
297 | #define IRONLAKE_LVDS_S_SSC_P2_FAST 14 | ||
298 | |||
299 | /* LVDS dual-channel 100Mhz refclk */ | ||
300 | #define IRONLAKE_LVDS_D_SSC_N_MIN 1 | ||
301 | #define IRONLAKE_LVDS_D_SSC_N_MAX 3 | ||
302 | #define IRONLAKE_LVDS_D_SSC_M_MIN 79 | ||
303 | #define IRONLAKE_LVDS_D_SSC_M_MAX 126 | ||
304 | #define IRONLAKE_LVDS_D_SSC_P_MIN 14 | ||
305 | #define IRONLAKE_LVDS_D_SSC_P_MAX 42 | ||
306 | #define IRONLAKE_LVDS_D_SSC_P1_MIN 2 | ||
307 | #define IRONLAKE_LVDS_D_SSC_P1_MAX 6 | ||
308 | #define IRONLAKE_LVDS_D_SSC_P2_SLOW 7 | ||
309 | #define IRONLAKE_LVDS_D_SSC_P2_FAST 7 | ||
310 | |||
311 | /* DisplayPort */ | ||
312 | #define IRONLAKE_DP_N_MIN 1 | ||
313 | #define IRONLAKE_DP_N_MAX 2 | ||
314 | #define IRONLAKE_DP_M_MIN 81 | ||
315 | #define IRONLAKE_DP_M_MAX 90 | ||
316 | #define IRONLAKE_DP_P_MIN 10 | ||
317 | #define IRONLAKE_DP_P_MAX 20 | ||
318 | #define IRONLAKE_DP_P2_FAST 10 | ||
319 | #define IRONLAKE_DP_P2_SLOW 10 | ||
320 | #define IRONLAKE_DP_P2_LIMIT 0 | ||
321 | #define IRONLAKE_DP_P1_MIN 1 | ||
322 | #define IRONLAKE_DP_P1_MAX 2 | ||
270 | 323 | ||
271 | static bool | 324 | static bool |
272 | intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, | 325 | intel_find_best_PLL(const intel_limit_t *limit, struct drm_crtc *crtc, |
@@ -474,33 +527,78 @@ static const intel_limit_t intel_limits_pineview_lvds = { | |||
474 | .find_pll = intel_find_best_PLL, | 527 | .find_pll = intel_find_best_PLL, |
475 | }; | 528 | }; |
476 | 529 | ||
477 | static const intel_limit_t intel_limits_ironlake_sdvo = { | 530 | static const intel_limit_t intel_limits_ironlake_dac = { |
478 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, | 531 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, |
479 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, | 532 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, |
480 | .n = { .min = IRONLAKE_N_MIN, .max = IRONLAKE_N_MAX }, | 533 | .n = { .min = IRONLAKE_DAC_N_MIN, .max = IRONLAKE_DAC_N_MAX }, |
481 | .m = { .min = IRONLAKE_M_MIN, .max = IRONLAKE_M_MAX }, | 534 | .m = { .min = IRONLAKE_DAC_M_MIN, .max = IRONLAKE_DAC_M_MAX }, |
482 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, | 535 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, |
483 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, | 536 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, |
484 | .p = { .min = IRONLAKE_P_SDVO_DAC_MIN, .max = IRONLAKE_P_SDVO_DAC_MAX }, | 537 | .p = { .min = IRONLAKE_DAC_P_MIN, .max = IRONLAKE_DAC_P_MAX }, |
485 | .p1 = { .min = IRONLAKE_P1_MIN, .max = IRONLAKE_P1_MAX }, | 538 | .p1 = { .min = IRONLAKE_DAC_P1_MIN, .max = IRONLAKE_DAC_P1_MAX }, |
486 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | 539 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, |
487 | .p2_slow = IRONLAKE_P2_SDVO_DAC_SLOW, | 540 | .p2_slow = IRONLAKE_DAC_P2_SLOW, |
488 | .p2_fast = IRONLAKE_P2_SDVO_DAC_FAST }, | 541 | .p2_fast = IRONLAKE_DAC_P2_FAST }, |
489 | .find_pll = intel_g4x_find_best_PLL, | 542 | .find_pll = intel_g4x_find_best_PLL, |
490 | }; | 543 | }; |
491 | 544 | ||
492 | static const intel_limit_t intel_limits_ironlake_lvds = { | 545 | static const intel_limit_t intel_limits_ironlake_single_lvds = { |
493 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, | 546 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, |
494 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, | 547 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, |
495 | .n = { .min = IRONLAKE_N_MIN, .max = IRONLAKE_N_MAX }, | 548 | .n = { .min = IRONLAKE_LVDS_S_N_MIN, .max = IRONLAKE_LVDS_S_N_MAX }, |
496 | .m = { .min = IRONLAKE_M_MIN, .max = IRONLAKE_M_MAX }, | 549 | .m = { .min = IRONLAKE_LVDS_S_M_MIN, .max = IRONLAKE_LVDS_S_M_MAX }, |
497 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, | 550 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, |
498 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, | 551 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, |
499 | .p = { .min = IRONLAKE_P_LVDS_MIN, .max = IRONLAKE_P_LVDS_MAX }, | 552 | .p = { .min = IRONLAKE_LVDS_S_P_MIN, .max = IRONLAKE_LVDS_S_P_MAX }, |
500 | .p1 = { .min = IRONLAKE_P1_MIN, .max = IRONLAKE_P1_MAX }, | 553 | .p1 = { .min = IRONLAKE_LVDS_S_P1_MIN, .max = IRONLAKE_LVDS_S_P1_MAX }, |
501 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | 554 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, |
502 | .p2_slow = IRONLAKE_P2_LVDS_SLOW, | 555 | .p2_slow = IRONLAKE_LVDS_S_P2_SLOW, |
503 | .p2_fast = IRONLAKE_P2_LVDS_FAST }, | 556 | .p2_fast = IRONLAKE_LVDS_S_P2_FAST }, |
557 | .find_pll = intel_g4x_find_best_PLL, | ||
558 | }; | ||
559 | |||
560 | static const intel_limit_t intel_limits_ironlake_dual_lvds = { | ||
561 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, | ||
562 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, | ||
563 | .n = { .min = IRONLAKE_LVDS_D_N_MIN, .max = IRONLAKE_LVDS_D_N_MAX }, | ||
564 | .m = { .min = IRONLAKE_LVDS_D_M_MIN, .max = IRONLAKE_LVDS_D_M_MAX }, | ||
565 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, | ||
566 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, | ||
567 | .p = { .min = IRONLAKE_LVDS_D_P_MIN, .max = IRONLAKE_LVDS_D_P_MAX }, | ||
568 | .p1 = { .min = IRONLAKE_LVDS_D_P1_MIN, .max = IRONLAKE_LVDS_D_P1_MAX }, | ||
569 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | ||
570 | .p2_slow = IRONLAKE_LVDS_D_P2_SLOW, | ||
571 | .p2_fast = IRONLAKE_LVDS_D_P2_FAST }, | ||
572 | .find_pll = intel_g4x_find_best_PLL, | ||
573 | }; | ||
574 | |||
575 | static const intel_limit_t intel_limits_ironlake_single_lvds_100m = { | ||
576 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, | ||
577 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, | ||
578 | .n = { .min = IRONLAKE_LVDS_S_SSC_N_MIN, .max = IRONLAKE_LVDS_S_SSC_N_MAX }, | ||
579 | .m = { .min = IRONLAKE_LVDS_S_SSC_M_MIN, .max = IRONLAKE_LVDS_S_SSC_M_MAX }, | ||
580 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, | ||
581 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, | ||
582 | .p = { .min = IRONLAKE_LVDS_S_SSC_P_MIN, .max = IRONLAKE_LVDS_S_SSC_P_MAX }, | ||
583 | .p1 = { .min = IRONLAKE_LVDS_S_SSC_P1_MIN,.max = IRONLAKE_LVDS_S_SSC_P1_MAX }, | ||
584 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | ||
585 | .p2_slow = IRONLAKE_LVDS_S_SSC_P2_SLOW, | ||
586 | .p2_fast = IRONLAKE_LVDS_S_SSC_P2_FAST }, | ||
587 | .find_pll = intel_g4x_find_best_PLL, | ||
588 | }; | ||
589 | |||
590 | static const intel_limit_t intel_limits_ironlake_dual_lvds_100m = { | ||
591 | .dot = { .min = IRONLAKE_DOT_MIN, .max = IRONLAKE_DOT_MAX }, | ||
592 | .vco = { .min = IRONLAKE_VCO_MIN, .max = IRONLAKE_VCO_MAX }, | ||
593 | .n = { .min = IRONLAKE_LVDS_D_SSC_N_MIN, .max = IRONLAKE_LVDS_D_SSC_N_MAX }, | ||
594 | .m = { .min = IRONLAKE_LVDS_D_SSC_M_MIN, .max = IRONLAKE_LVDS_D_SSC_M_MAX }, | ||
595 | .m1 = { .min = IRONLAKE_M1_MIN, .max = IRONLAKE_M1_MAX }, | ||
596 | .m2 = { .min = IRONLAKE_M2_MIN, .max = IRONLAKE_M2_MAX }, | ||
597 | .p = { .min = IRONLAKE_LVDS_D_SSC_P_MIN, .max = IRONLAKE_LVDS_D_SSC_P_MAX }, | ||
598 | .p1 = { .min = IRONLAKE_LVDS_D_SSC_P1_MIN,.max = IRONLAKE_LVDS_D_SSC_P1_MAX }, | ||
599 | .p2 = { .dot_limit = IRONLAKE_P2_DOT_LIMIT, | ||
600 | .p2_slow = IRONLAKE_LVDS_D_SSC_P2_SLOW, | ||
601 | .p2_fast = IRONLAKE_LVDS_D_SSC_P2_FAST }, | ||
504 | .find_pll = intel_g4x_find_best_PLL, | 602 | .find_pll = intel_g4x_find_best_PLL, |
505 | }; | 603 | }; |
506 | 604 | ||
@@ -509,34 +607,53 @@ static const intel_limit_t intel_limits_ironlake_display_port = { | |||
509 | .max = IRONLAKE_DOT_MAX }, | 607 | .max = IRONLAKE_DOT_MAX }, |
510 | .vco = { .min = IRONLAKE_VCO_MIN, | 608 | .vco = { .min = IRONLAKE_VCO_MIN, |
511 | .max = IRONLAKE_VCO_MAX}, | 609 | .max = IRONLAKE_VCO_MAX}, |
512 | .n = { .min = IRONLAKE_N_MIN, | 610 | .n = { .min = IRONLAKE_DP_N_MIN, |
513 | .max = IRONLAKE_N_MAX }, | 611 | .max = IRONLAKE_DP_N_MAX }, |
514 | .m = { .min = IRONLAKE_M_MIN, | 612 | .m = { .min = IRONLAKE_DP_M_MIN, |
515 | .max = IRONLAKE_M_MAX }, | 613 | .max = IRONLAKE_DP_M_MAX }, |
516 | .m1 = { .min = IRONLAKE_M1_MIN, | 614 | .m1 = { .min = IRONLAKE_M1_MIN, |
517 | .max = IRONLAKE_M1_MAX }, | 615 | .max = IRONLAKE_M1_MAX }, |
518 | .m2 = { .min = IRONLAKE_M2_MIN, | 616 | .m2 = { .min = IRONLAKE_M2_MIN, |
519 | .max = IRONLAKE_M2_MAX }, | 617 | .max = IRONLAKE_M2_MAX }, |
520 | .p = { .min = IRONLAKE_P_DISPLAY_PORT_MIN, | 618 | .p = { .min = IRONLAKE_DP_P_MIN, |
521 | .max = IRONLAKE_P_DISPLAY_PORT_MAX }, | 619 | .max = IRONLAKE_DP_P_MAX }, |
522 | .p1 = { .min = IRONLAKE_P1_DISPLAY_PORT_MIN, | 620 | .p1 = { .min = IRONLAKE_DP_P1_MIN, |
523 | .max = IRONLAKE_P1_DISPLAY_PORT_MAX}, | 621 | .max = IRONLAKE_DP_P1_MAX}, |
524 | .p2 = { .dot_limit = IRONLAKE_P2_DISPLAY_PORT_LIMIT, | 622 | .p2 = { .dot_limit = IRONLAKE_DP_P2_LIMIT, |
525 | .p2_slow = IRONLAKE_P2_DISPLAY_PORT_SLOW, | 623 | .p2_slow = IRONLAKE_DP_P2_SLOW, |
526 | .p2_fast = IRONLAKE_P2_DISPLAY_PORT_FAST }, | 624 | .p2_fast = IRONLAKE_DP_P2_FAST }, |
527 | .find_pll = intel_find_pll_ironlake_dp, | 625 | .find_pll = intel_find_pll_ironlake_dp, |
528 | }; | 626 | }; |
529 | 627 | ||
530 | static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) | 628 | static const intel_limit_t *intel_ironlake_limit(struct drm_crtc *crtc) |
531 | { | 629 | { |
630 | struct drm_device *dev = crtc->dev; | ||
631 | struct drm_i915_private *dev_priv = dev->dev_private; | ||
532 | const intel_limit_t *limit; | 632 | const intel_limit_t *limit; |
533 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) | 633 | int refclk = 120; |
534 | limit = &intel_limits_ironlake_lvds; | 634 | |
535 | else if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) || | 635 | if (intel_pipe_has_type(crtc, INTEL_OUTPUT_LVDS)) { |
636 | if (dev_priv->lvds_use_ssc && dev_priv->lvds_ssc_freq == 100) | ||
637 | refclk = 100; | ||
638 | |||
639 | if ((I915_READ(PCH_LVDS) & LVDS_CLKB_POWER_MASK) == | ||
640 | LVDS_CLKB_POWER_UP) { | ||
641 | /* LVDS dual channel */ | ||
642 | if (refclk == 100) | ||
643 | limit = &intel_limits_ironlake_dual_lvds_100m; | ||
644 | else | ||
645 | limit = &intel_limits_ironlake_dual_lvds; | ||
646 | } else { | ||
647 | if (refclk == 100) | ||
648 | limit = &intel_limits_ironlake_single_lvds_100m; | ||
649 | else | ||
650 | limit = &intel_limits_ironlake_single_lvds; | ||
651 | } | ||
652 | } else if (intel_pipe_has_type(crtc, INTEL_OUTPUT_DISPLAYPORT) || | ||
536 | HAS_eDP) | 653 | HAS_eDP) |
537 | limit = &intel_limits_ironlake_display_port; | 654 | limit = &intel_limits_ironlake_display_port; |
538 | else | 655 | else |
539 | limit = &intel_limits_ironlake_sdvo; | 656 | limit = &intel_limits_ironlake_dac; |
540 | 657 | ||
541 | return limit; | 658 | return limit; |
542 | } | 659 | } |
@@ -914,6 +1031,8 @@ static void i8xx_enable_fbc(struct drm_crtc *crtc, unsigned long interval) | |||
914 | 1031 | ||
915 | /* enable it... */ | 1032 | /* enable it... */ |
916 | fbc_ctl = FBC_CTL_EN | FBC_CTL_PERIODIC; | 1033 | fbc_ctl = FBC_CTL_EN | FBC_CTL_PERIODIC; |
1034 | if (IS_I945GM(dev)) | ||
1035 | fbc_ctl |= FBC_C3_IDLE; /* 945 needs special SR handling */ | ||
917 | fbc_ctl |= (dev_priv->cfb_pitch & 0xff) << FBC_CTL_STRIDE_SHIFT; | 1036 | fbc_ctl |= (dev_priv->cfb_pitch & 0xff) << FBC_CTL_STRIDE_SHIFT; |
918 | fbc_ctl |= (interval & 0x2fff) << FBC_CTL_INTERVAL_SHIFT; | 1037 | fbc_ctl |= (interval & 0x2fff) << FBC_CTL_INTERVAL_SHIFT; |
919 | if (obj_priv->tiling_mode != I915_TILING_NONE) | 1038 | if (obj_priv->tiling_mode != I915_TILING_NONE) |
@@ -1638,6 +1757,7 @@ static void ironlake_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
1638 | case DRM_MODE_DPMS_OFF: | 1757 | case DRM_MODE_DPMS_OFF: |
1639 | DRM_DEBUG_KMS("crtc %d dpms off\n", pipe); | 1758 | DRM_DEBUG_KMS("crtc %d dpms off\n", pipe); |
1640 | 1759 | ||
1760 | drm_vblank_off(dev, pipe); | ||
1641 | /* Disable display plane */ | 1761 | /* Disable display plane */ |
1642 | temp = I915_READ(dspcntr_reg); | 1762 | temp = I915_READ(dspcntr_reg); |
1643 | if ((temp & DISPLAY_PLANE_ENABLE) != 0) { | 1763 | if ((temp & DISPLAY_PLANE_ENABLE) != 0) { |
@@ -2519,6 +2639,10 @@ static void g4x_update_wm(struct drm_device *dev, int planea_clock, | |||
2519 | sr_entries = roundup(sr_entries / cacheline_size, 1); | 2639 | sr_entries = roundup(sr_entries / cacheline_size, 1); |
2520 | DRM_DEBUG("self-refresh entries: %d\n", sr_entries); | 2640 | DRM_DEBUG("self-refresh entries: %d\n", sr_entries); |
2521 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN); | 2641 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN); |
2642 | } else { | ||
2643 | /* Turn off self refresh if both pipes are enabled */ | ||
2644 | I915_WRITE(FW_BLC_SELF, I915_READ(FW_BLC_SELF) | ||
2645 | & ~FW_BLC_SELF_EN); | ||
2522 | } | 2646 | } |
2523 | 2647 | ||
2524 | DRM_DEBUG("Setting FIFO watermarks - A: %d, B: %d, SR %d\n", | 2648 | DRM_DEBUG("Setting FIFO watermarks - A: %d, B: %d, SR %d\n", |
@@ -2562,6 +2686,10 @@ static void i965_update_wm(struct drm_device *dev, int planea_clock, | |||
2562 | srwm = 1; | 2686 | srwm = 1; |
2563 | srwm &= 0x3f; | 2687 | srwm &= 0x3f; |
2564 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN); | 2688 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN); |
2689 | } else { | ||
2690 | /* Turn off self refresh if both pipes are enabled */ | ||
2691 | I915_WRITE(FW_BLC_SELF, I915_READ(FW_BLC_SELF) | ||
2692 | & ~FW_BLC_SELF_EN); | ||
2565 | } | 2693 | } |
2566 | 2694 | ||
2567 | DRM_DEBUG_KMS("Setting FIFO watermarks - A: 8, B: 8, C: 8, SR %d\n", | 2695 | DRM_DEBUG_KMS("Setting FIFO watermarks - A: 8, B: 8, C: 8, SR %d\n", |
@@ -2630,6 +2758,10 @@ static void i9xx_update_wm(struct drm_device *dev, int planea_clock, | |||
2630 | if (srwm < 0) | 2758 | if (srwm < 0) |
2631 | srwm = 1; | 2759 | srwm = 1; |
2632 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN | (srwm & 0x3f)); | 2760 | I915_WRITE(FW_BLC_SELF, FW_BLC_SELF_EN | (srwm & 0x3f)); |
2761 | } else { | ||
2762 | /* Turn off self refresh if both pipes are enabled */ | ||
2763 | I915_WRITE(FW_BLC_SELF, I915_READ(FW_BLC_SELF) | ||
2764 | & ~FW_BLC_SELF_EN); | ||
2633 | } | 2765 | } |
2634 | 2766 | ||
2635 | DRM_DEBUG_KMS("Setting FIFO watermarks - A: %d, B: %d, C: %d, SR %d\n", | 2767 | DRM_DEBUG_KMS("Setting FIFO watermarks - A: %d, B: %d, C: %d, SR %d\n", |
@@ -3949,7 +4081,8 @@ static void intel_crtc_destroy(struct drm_crtc *crtc) | |||
3949 | struct intel_unpin_work { | 4081 | struct intel_unpin_work { |
3950 | struct work_struct work; | 4082 | struct work_struct work; |
3951 | struct drm_device *dev; | 4083 | struct drm_device *dev; |
3952 | struct drm_gem_object *obj; | 4084 | struct drm_gem_object *old_fb_obj; |
4085 | struct drm_gem_object *pending_flip_obj; | ||
3953 | struct drm_pending_vblank_event *event; | 4086 | struct drm_pending_vblank_event *event; |
3954 | int pending; | 4087 | int pending; |
3955 | }; | 4088 | }; |
@@ -3960,8 +4093,9 @@ static void intel_unpin_work_fn(struct work_struct *__work) | |||
3960 | container_of(__work, struct intel_unpin_work, work); | 4093 | container_of(__work, struct intel_unpin_work, work); |
3961 | 4094 | ||
3962 | mutex_lock(&work->dev->struct_mutex); | 4095 | mutex_lock(&work->dev->struct_mutex); |
3963 | i915_gem_object_unpin(work->obj); | 4096 | i915_gem_object_unpin(work->old_fb_obj); |
3964 | drm_gem_object_unreference(work->obj); | 4097 | drm_gem_object_unreference(work->pending_flip_obj); |
4098 | drm_gem_object_unreference(work->old_fb_obj); | ||
3965 | mutex_unlock(&work->dev->struct_mutex); | 4099 | mutex_unlock(&work->dev->struct_mutex); |
3966 | kfree(work); | 4100 | kfree(work); |
3967 | } | 4101 | } |
@@ -3984,6 +4118,12 @@ void intel_finish_page_flip(struct drm_device *dev, int pipe) | |||
3984 | spin_lock_irqsave(&dev->event_lock, flags); | 4118 | spin_lock_irqsave(&dev->event_lock, flags); |
3985 | work = intel_crtc->unpin_work; | 4119 | work = intel_crtc->unpin_work; |
3986 | if (work == NULL || !work->pending) { | 4120 | if (work == NULL || !work->pending) { |
4121 | if (work && !work->pending) { | ||
4122 | obj_priv = work->pending_flip_obj->driver_private; | ||
4123 | DRM_DEBUG_DRIVER("flip finish: %p (%d) not pending?\n", | ||
4124 | obj_priv, | ||
4125 | atomic_read(&obj_priv->pending_flip)); | ||
4126 | } | ||
3987 | spin_unlock_irqrestore(&dev->event_lock, flags); | 4127 | spin_unlock_irqrestore(&dev->event_lock, flags); |
3988 | return; | 4128 | return; |
3989 | } | 4129 | } |
@@ -4004,8 +4144,11 @@ void intel_finish_page_flip(struct drm_device *dev, int pipe) | |||
4004 | 4144 | ||
4005 | spin_unlock_irqrestore(&dev->event_lock, flags); | 4145 | spin_unlock_irqrestore(&dev->event_lock, flags); |
4006 | 4146 | ||
4007 | obj_priv = work->obj->driver_private; | 4147 | obj_priv = work->pending_flip_obj->driver_private; |
4008 | if (atomic_dec_and_test(&obj_priv->pending_flip)) | 4148 | |
4149 | /* Initial scanout buffer will have a 0 pending flip count */ | ||
4150 | if ((atomic_read(&obj_priv->pending_flip) == 0) || | ||
4151 | atomic_dec_and_test(&obj_priv->pending_flip)) | ||
4009 | DRM_WAKEUP(&dev_priv->pending_flip_queue); | 4152 | DRM_WAKEUP(&dev_priv->pending_flip_queue); |
4010 | schedule_work(&work->work); | 4153 | schedule_work(&work->work); |
4011 | } | 4154 | } |
@@ -4018,8 +4161,11 @@ void intel_prepare_page_flip(struct drm_device *dev, int plane) | |||
4018 | unsigned long flags; | 4161 | unsigned long flags; |
4019 | 4162 | ||
4020 | spin_lock_irqsave(&dev->event_lock, flags); | 4163 | spin_lock_irqsave(&dev->event_lock, flags); |
4021 | if (intel_crtc->unpin_work) | 4164 | if (intel_crtc->unpin_work) { |
4022 | intel_crtc->unpin_work->pending = 1; | 4165 | intel_crtc->unpin_work->pending = 1; |
4166 | } else { | ||
4167 | DRM_DEBUG_DRIVER("preparing flip with no unpin work?\n"); | ||
4168 | } | ||
4023 | spin_unlock_irqrestore(&dev->event_lock, flags); | 4169 | spin_unlock_irqrestore(&dev->event_lock, flags); |
4024 | } | 4170 | } |
4025 | 4171 | ||
@@ -4035,7 +4181,8 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, | |||
4035 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); | 4181 | struct intel_crtc *intel_crtc = to_intel_crtc(crtc); |
4036 | struct intel_unpin_work *work; | 4182 | struct intel_unpin_work *work; |
4037 | unsigned long flags; | 4183 | unsigned long flags; |
4038 | int ret; | 4184 | int pipesrc_reg = (intel_crtc->pipe == 0) ? PIPEASRC : PIPEBSRC; |
4185 | int ret, pipesrc; | ||
4039 | RING_LOCALS; | 4186 | RING_LOCALS; |
4040 | 4187 | ||
4041 | work = kzalloc(sizeof *work, GFP_KERNEL); | 4188 | work = kzalloc(sizeof *work, GFP_KERNEL); |
@@ -4047,12 +4194,13 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, | |||
4047 | work->event = event; | 4194 | work->event = event; |
4048 | work->dev = crtc->dev; | 4195 | work->dev = crtc->dev; |
4049 | intel_fb = to_intel_framebuffer(crtc->fb); | 4196 | intel_fb = to_intel_framebuffer(crtc->fb); |
4050 | work->obj = intel_fb->obj; | 4197 | work->old_fb_obj = intel_fb->obj; |
4051 | INIT_WORK(&work->work, intel_unpin_work_fn); | 4198 | INIT_WORK(&work->work, intel_unpin_work_fn); |
4052 | 4199 | ||
4053 | /* We borrow the event spin lock for protecting unpin_work */ | 4200 | /* We borrow the event spin lock for protecting unpin_work */ |
4054 | spin_lock_irqsave(&dev->event_lock, flags); | 4201 | spin_lock_irqsave(&dev->event_lock, flags); |
4055 | if (intel_crtc->unpin_work) { | 4202 | if (intel_crtc->unpin_work) { |
4203 | DRM_DEBUG_DRIVER("flip queue: crtc already busy\n"); | ||
4056 | spin_unlock_irqrestore(&dev->event_lock, flags); | 4204 | spin_unlock_irqrestore(&dev->event_lock, flags); |
4057 | kfree(work); | 4205 | kfree(work); |
4058 | mutex_unlock(&dev->struct_mutex); | 4206 | mutex_unlock(&dev->struct_mutex); |
@@ -4066,19 +4214,24 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, | |||
4066 | 4214 | ||
4067 | ret = intel_pin_and_fence_fb_obj(dev, obj); | 4215 | ret = intel_pin_and_fence_fb_obj(dev, obj); |
4068 | if (ret != 0) { | 4216 | if (ret != 0) { |
4217 | DRM_DEBUG_DRIVER("flip queue: %p pin & fence failed\n", | ||
4218 | obj->driver_private); | ||
4069 | kfree(work); | 4219 | kfree(work); |
4220 | intel_crtc->unpin_work = NULL; | ||
4070 | mutex_unlock(&dev->struct_mutex); | 4221 | mutex_unlock(&dev->struct_mutex); |
4071 | return ret; | 4222 | return ret; |
4072 | } | 4223 | } |
4073 | 4224 | ||
4074 | /* Reference the old fb object for the scheduled work. */ | 4225 | /* Reference the objects for the scheduled work. */ |
4075 | drm_gem_object_reference(work->obj); | 4226 | drm_gem_object_reference(work->old_fb_obj); |
4227 | drm_gem_object_reference(obj); | ||
4076 | 4228 | ||
4077 | crtc->fb = fb; | 4229 | crtc->fb = fb; |
4078 | i915_gem_object_flush_write_domain(obj); | 4230 | i915_gem_object_flush_write_domain(obj); |
4079 | drm_vblank_get(dev, intel_crtc->pipe); | 4231 | drm_vblank_get(dev, intel_crtc->pipe); |
4080 | obj_priv = obj->driver_private; | 4232 | obj_priv = obj->driver_private; |
4081 | atomic_inc(&obj_priv->pending_flip); | 4233 | atomic_inc(&obj_priv->pending_flip); |
4234 | work->pending_flip_obj = obj; | ||
4082 | 4235 | ||
4083 | BEGIN_LP_RING(4); | 4236 | BEGIN_LP_RING(4); |
4084 | OUT_RING(MI_DISPLAY_FLIP | | 4237 | OUT_RING(MI_DISPLAY_FLIP | |
@@ -4086,7 +4239,8 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc, | |||
4086 | OUT_RING(fb->pitch); | 4239 | OUT_RING(fb->pitch); |
4087 | if (IS_I965G(dev)) { | 4240 | if (IS_I965G(dev)) { |
4088 | OUT_RING(obj_priv->gtt_offset | obj_priv->tiling_mode); | 4241 | OUT_RING(obj_priv->gtt_offset | obj_priv->tiling_mode); |
4089 | OUT_RING((fb->width << 16) | fb->height); | 4242 | pipesrc = I915_READ(pipesrc_reg); |
4243 | OUT_RING(pipesrc & 0x0fff0fff); | ||
4090 | } else { | 4244 | } else { |
4091 | OUT_RING(obj_priv->gtt_offset); | 4245 | OUT_RING(obj_priv->gtt_offset); |
4092 | OUT_RING(MI_NOOP); | 4246 | OUT_RING(MI_NOOP); |
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c index 371d753e362b..aaabbcbe5905 100644 --- a/drivers/gpu/drm/i915/intel_fb.c +++ b/drivers/gpu/drm/i915/intel_fb.c | |||
@@ -148,7 +148,7 @@ static int intelfb_create(struct drm_device *dev, uint32_t fb_width, | |||
148 | 148 | ||
149 | mutex_lock(&dev->struct_mutex); | 149 | mutex_lock(&dev->struct_mutex); |
150 | 150 | ||
151 | ret = i915_gem_object_pin(fbo, PAGE_SIZE); | 151 | ret = i915_gem_object_pin(fbo, 64*1024); |
152 | if (ret) { | 152 | if (ret) { |
153 | DRM_ERROR("failed to pin fb: %d\n", ret); | 153 | DRM_ERROR("failed to pin fb: %d\n", ret); |
154 | goto out_unref; | 154 | goto out_unref; |
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c index aa74e59bec61..b1d0acbae4e4 100644 --- a/drivers/gpu/drm/i915/intel_lvds.c +++ b/drivers/gpu/drm/i915/intel_lvds.c | |||
@@ -611,7 +611,7 @@ static const struct dmi_system_id bad_lid_status[] = { | |||
611 | { | 611 | { |
612 | .ident = "Samsung SX20S", | 612 | .ident = "Samsung SX20S", |
613 | .matches = { | 613 | .matches = { |
614 | DMI_MATCH(DMI_SYS_VENDOR, "Phoenix Technologies LTD"), | 614 | DMI_MATCH(DMI_SYS_VENDOR, "Samsung Electronics"), |
615 | DMI_MATCH(DMI_BOARD_NAME, "SX20S"), | 615 | DMI_MATCH(DMI_BOARD_NAME, "SX20S"), |
616 | }, | 616 | }, |
617 | }, | 617 | }, |
@@ -623,6 +623,13 @@ static const struct dmi_system_id bad_lid_status[] = { | |||
623 | }, | 623 | }, |
624 | }, | 624 | }, |
625 | { | 625 | { |
626 | .ident = "Aspire 1810T", | ||
627 | .matches = { | ||
628 | DMI_MATCH(DMI_SYS_VENDOR, "Acer"), | ||
629 | DMI_MATCH(DMI_PRODUCT_NAME, "Aspire 1810T"), | ||
630 | }, | ||
631 | }, | ||
632 | { | ||
626 | .ident = "PC-81005", | 633 | .ident = "PC-81005", |
627 | .matches = { | 634 | .matches = { |
628 | DMI_MATCH(DMI_SYS_VENDOR, "MALATA"), | 635 | DMI_MATCH(DMI_SYS_VENDOR, "MALATA"), |
@@ -643,7 +650,7 @@ static enum drm_connector_status intel_lvds_detect(struct drm_connector *connect | |||
643 | { | 650 | { |
644 | enum drm_connector_status status = connector_status_connected; | 651 | enum drm_connector_status status = connector_status_connected; |
645 | 652 | ||
646 | if (!acpi_lid_open() && !dmi_check_system(bad_lid_status)) | 653 | if (!dmi_check_system(bad_lid_status) && !acpi_lid_open()) |
647 | status = connector_status_disconnected; | 654 | status = connector_status_disconnected; |
648 | 655 | ||
649 | return status; | 656 | return status; |
diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c index eaacfd0920df..82678d30ab06 100644 --- a/drivers/gpu/drm/i915/intel_sdvo.c +++ b/drivers/gpu/drm/i915/intel_sdvo.c | |||
@@ -2345,6 +2345,14 @@ intel_sdvo_output_setup(struct intel_output *intel_output, uint16_t flags) | |||
2345 | connector->connector_type = DRM_MODE_CONNECTOR_VGA; | 2345 | connector->connector_type = DRM_MODE_CONNECTOR_VGA; |
2346 | intel_output->clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT) | | 2346 | intel_output->clone_mask = (1 << INTEL_SDVO_NON_TV_CLONE_BIT) | |
2347 | (1 << INTEL_ANALOG_CLONE_BIT); | 2347 | (1 << INTEL_ANALOG_CLONE_BIT); |
2348 | } else if (flags & SDVO_OUTPUT_CVBS0) { | ||
2349 | |||
2350 | sdvo_priv->controlled_output = SDVO_OUTPUT_CVBS0; | ||
2351 | encoder->encoder_type = DRM_MODE_ENCODER_TVDAC; | ||
2352 | connector->connector_type = DRM_MODE_CONNECTOR_SVIDEO; | ||
2353 | sdvo_priv->is_tv = true; | ||
2354 | intel_output->needs_tv_clock = true; | ||
2355 | intel_output->clone_mask = 1 << INTEL_SDVO_TV_CLONE_BIT; | ||
2348 | } else if (flags & SDVO_OUTPUT_LVDS0) { | 2356 | } else if (flags & SDVO_OUTPUT_LVDS0) { |
2349 | 2357 | ||
2350 | sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS0; | 2358 | sdvo_priv->controlled_output = SDVO_OUTPUT_LVDS0; |
diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c index 1cf488247a16..48227e744753 100644 --- a/drivers/gpu/drm/nouveau/nouveau_acpi.c +++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c | |||
@@ -90,21 +90,21 @@ int nouveau_hybrid_setup(struct drm_device *dev) | |||
90 | { | 90 | { |
91 | int result; | 91 | int result; |
92 | 92 | ||
93 | if (nouveau_dsm(dev, NOUVEAU_DSM_ACTIVE, NOUVEAU_DSM_ACTIVE_QUERY, | 93 | if (nouveau_dsm(dev, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_STATE, |
94 | &result)) | 94 | &result)) |
95 | return -ENODEV; | 95 | return -ENODEV; |
96 | 96 | ||
97 | NV_INFO(dev, "_DSM hardware status gave 0x%x\n", result); | 97 | NV_INFO(dev, "_DSM hardware status gave 0x%x\n", result); |
98 | 98 | ||
99 | if (result & 0x1) { /* Stamina mode - disable the external GPU */ | 99 | if (result) { /* Ensure that the external GPU is enabled */ |
100 | nouveau_dsm(dev, NOUVEAU_DSM_LED, NOUVEAU_DSM_LED_SPEED, NULL); | ||
101 | nouveau_dsm(dev, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_SPEED, | ||
102 | NULL); | ||
103 | } else { /* Stamina mode - disable the external GPU */ | ||
100 | nouveau_dsm(dev, NOUVEAU_DSM_LED, NOUVEAU_DSM_LED_STAMINA, | 104 | nouveau_dsm(dev, NOUVEAU_DSM_LED, NOUVEAU_DSM_LED_STAMINA, |
101 | NULL); | 105 | NULL); |
102 | nouveau_dsm(dev, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_STAMINA, | 106 | nouveau_dsm(dev, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_STAMINA, |
103 | NULL); | 107 | NULL); |
104 | } else { /* Ensure that the external GPU is enabled */ | ||
105 | nouveau_dsm(dev, NOUVEAU_DSM_LED, NOUVEAU_DSM_LED_SPEED, NULL); | ||
106 | nouveau_dsm(dev, NOUVEAU_DSM_POWER, NOUVEAU_DSM_POWER_SPEED, | ||
107 | NULL); | ||
108 | } | 108 | } |
109 | 109 | ||
110 | return 0; | 110 | return 0; |
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c index ba143972769f..2cd0fad17dac 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c | |||
@@ -310,63 +310,22 @@ valid_reg(struct nvbios *bios, uint32_t reg) | |||
310 | struct drm_device *dev = bios->dev; | 310 | struct drm_device *dev = bios->dev; |
311 | 311 | ||
312 | /* C51 has misaligned regs on purpose. Marvellous */ | 312 | /* C51 has misaligned regs on purpose. Marvellous */ |
313 | if (reg & 0x2 || (reg & 0x1 && dev_priv->VBIOS.pub.chip_version != 0x51)) { | 313 | if (reg & 0x2 || |
314 | NV_ERROR(dev, "========== misaligned reg 0x%08X ==========\n", | 314 | (reg & 0x1 && dev_priv->VBIOS.pub.chip_version != 0x51)) |
315 | reg); | 315 | NV_ERROR(dev, "======= misaligned reg 0x%08X =======\n", reg); |
316 | return 0; | 316 | |
317 | } | 317 | /* warn on C51 regs that haven't been verified accessible in tracing */ |
318 | /* | ||
319 | * Warn on C51 regs that have not been verified accessible in | ||
320 | * mmiotracing | ||
321 | */ | ||
322 | if (reg & 0x1 && dev_priv->VBIOS.pub.chip_version == 0x51 && | 318 | if (reg & 0x1 && dev_priv->VBIOS.pub.chip_version == 0x51 && |
323 | reg != 0x130d && reg != 0x1311 && reg != 0x60081d) | 319 | reg != 0x130d && reg != 0x1311 && reg != 0x60081d) |
324 | NV_WARN(dev, "=== C51 misaligned reg 0x%08X not verified ===\n", | 320 | NV_WARN(dev, "=== C51 misaligned reg 0x%08X not verified ===\n", |
325 | reg); | 321 | reg); |
326 | 322 | ||
327 | /* Trust the init scripts on G80 */ | 323 | if (reg >= (8*1024*1024)) { |
328 | if (dev_priv->card_type >= NV_50) | 324 | NV_ERROR(dev, "=== reg 0x%08x out of mapped bounds ===\n", reg); |
329 | return 1; | 325 | return 0; |
330 | |||
331 | #define WITHIN(x, y, z) ((x >= y) && (x < y + z)) | ||
332 | if (WITHIN(reg, NV_PMC_OFFSET, NV_PMC_SIZE)) | ||
333 | return 1; | ||
334 | if (WITHIN(reg, NV_PBUS_OFFSET, NV_PBUS_SIZE)) | ||
335 | return 1; | ||
336 | if (WITHIN(reg, NV_PFIFO_OFFSET, NV_PFIFO_SIZE)) | ||
337 | return 1; | ||
338 | if (dev_priv->VBIOS.pub.chip_version >= 0x30 && | ||
339 | (WITHIN(reg, 0x4000, 0x600) || reg == 0x00004600)) | ||
340 | return 1; | ||
341 | if (dev_priv->VBIOS.pub.chip_version >= 0x40 && | ||
342 | WITHIN(reg, 0xc000, 0x48)) | ||
343 | return 1; | ||
344 | if (dev_priv->VBIOS.pub.chip_version >= 0x17 && reg == 0x0000d204) | ||
345 | return 1; | ||
346 | if (dev_priv->VBIOS.pub.chip_version >= 0x40) { | ||
347 | if (reg == 0x00011014 || reg == 0x00020328) | ||
348 | return 1; | ||
349 | if (WITHIN(reg, 0x88000, NV_PBUS_SIZE)) /* new PBUS */ | ||
350 | return 1; | ||
351 | } | 326 | } |
352 | if (WITHIN(reg, NV_PFB_OFFSET, NV_PFB_SIZE)) | ||
353 | return 1; | ||
354 | if (WITHIN(reg, NV_PEXTDEV_OFFSET, NV_PEXTDEV_SIZE)) | ||
355 | return 1; | ||
356 | if (WITHIN(reg, NV_PCRTC0_OFFSET, NV_PCRTC0_SIZE * 2)) | ||
357 | return 1; | ||
358 | if (WITHIN(reg, NV_PRAMDAC0_OFFSET, NV_PRAMDAC0_SIZE * 2)) | ||
359 | return 1; | ||
360 | if (dev_priv->VBIOS.pub.chip_version >= 0x17 && reg == 0x0070fff0) | ||
361 | return 1; | ||
362 | if (dev_priv->VBIOS.pub.chip_version == 0x51 && | ||
363 | WITHIN(reg, NV_PRAMIN_OFFSET, NV_PRAMIN_SIZE)) | ||
364 | return 1; | ||
365 | #undef WITHIN | ||
366 | |||
367 | NV_ERROR(dev, "========== unknown reg 0x%08X ==========\n", reg); | ||
368 | 327 | ||
369 | return 0; | 328 | return 1; |
370 | } | 329 | } |
371 | 330 | ||
372 | static bool | 331 | static bool |
@@ -1906,7 +1865,7 @@ init_compute_mem(struct nvbios *bios, uint16_t offset, struct init_exec *iexec) | |||
1906 | 1865 | ||
1907 | struct drm_nouveau_private *dev_priv = bios->dev->dev_private; | 1866 | struct drm_nouveau_private *dev_priv = bios->dev->dev_private; |
1908 | 1867 | ||
1909 | if (dev_priv->card_type >= NV_50) | 1868 | if (dev_priv->card_type >= NV_40) |
1910 | return 1; | 1869 | return 1; |
1911 | 1870 | ||
1912 | /* | 1871 | /* |
@@ -3196,16 +3155,25 @@ static int call_lvds_manufacturer_script(struct drm_device *dev, struct dcb_entr | |||
3196 | } | 3155 | } |
3197 | #ifdef __powerpc__ | 3156 | #ifdef __powerpc__ |
3198 | /* Powerbook specific quirks */ | 3157 | /* Powerbook specific quirks */ |
3199 | if (script == LVDS_RESET && ((dev->pci_device & 0xffff) == 0x0179 || (dev->pci_device & 0xffff) == 0x0329)) | 3158 | if ((dev->pci_device & 0xffff) == 0x0179 || |
3200 | nv_write_tmds(dev, dcbent->or, 0, 0x02, 0x72); | 3159 | (dev->pci_device & 0xffff) == 0x0189 || |
3201 | if ((dev->pci_device & 0xffff) == 0x0179 || (dev->pci_device & 0xffff) == 0x0189 || (dev->pci_device & 0xffff) == 0x0329) { | 3160 | (dev->pci_device & 0xffff) == 0x0329) { |
3202 | if (script == LVDS_PANEL_ON) { | 3161 | if (script == LVDS_RESET) { |
3203 | bios_wr32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL, bios_rd32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL) | (1 << 31)); | 3162 | nv_write_tmds(dev, dcbent->or, 0, 0x02, 0x72); |
3204 | bios_wr32(bios, NV_PCRTC_GPIO_EXT, bios_rd32(bios, NV_PCRTC_GPIO_EXT) | 1); | 3163 | |
3205 | } | 3164 | } else if (script == LVDS_PANEL_ON) { |
3206 | if (script == LVDS_PANEL_OFF) { | 3165 | bios_wr32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL, |
3207 | bios_wr32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL, bios_rd32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL) & ~(1 << 31)); | 3166 | bios_rd32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL) |
3208 | bios_wr32(bios, NV_PCRTC_GPIO_EXT, bios_rd32(bios, NV_PCRTC_GPIO_EXT) & ~3); | 3167 | | (1 << 31)); |
3168 | bios_wr32(bios, NV_PCRTC_GPIO_EXT, | ||
3169 | bios_rd32(bios, NV_PCRTC_GPIO_EXT) | 1); | ||
3170 | |||
3171 | } else if (script == LVDS_PANEL_OFF) { | ||
3172 | bios_wr32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL, | ||
3173 | bios_rd32(bios, NV_PBUS_DEBUG_DUALHEAD_CTL) | ||
3174 | & ~(1 << 31)); | ||
3175 | bios_wr32(bios, NV_PCRTC_GPIO_EXT, | ||
3176 | bios_rd32(bios, NV_PCRTC_GPIO_EXT) & ~3); | ||
3209 | } | 3177 | } |
3210 | } | 3178 | } |
3211 | #endif | 3179 | #endif |
@@ -3797,7 +3765,6 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3797 | */ | 3765 | */ |
3798 | 3766 | ||
3799 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 3767 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
3800 | struct init_exec iexec = {true, false}; | ||
3801 | struct nvbios *bios = &dev_priv->VBIOS; | 3768 | struct nvbios *bios = &dev_priv->VBIOS; |
3802 | uint8_t *table = &bios->data[bios->display.script_table_ptr]; | 3769 | uint8_t *table = &bios->data[bios->display.script_table_ptr]; |
3803 | uint8_t *otable = NULL; | 3770 | uint8_t *otable = NULL; |
@@ -3877,8 +3844,6 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3877 | } | 3844 | } |
3878 | } | 3845 | } |
3879 | 3846 | ||
3880 | bios->display.output = dcbent; | ||
3881 | |||
3882 | if (pxclk == 0) { | 3847 | if (pxclk == 0) { |
3883 | script = ROM16(otable[6]); | 3848 | script = ROM16(otable[6]); |
3884 | if (!script) { | 3849 | if (!script) { |
@@ -3887,7 +3852,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3887 | } | 3852 | } |
3888 | 3853 | ||
3889 | NV_TRACE(dev, "0x%04X: parsing output script 0\n", script); | 3854 | NV_TRACE(dev, "0x%04X: parsing output script 0\n", script); |
3890 | parse_init_table(bios, script, &iexec); | 3855 | nouveau_bios_run_init_table(dev, script, dcbent); |
3891 | } else | 3856 | } else |
3892 | if (pxclk == -1) { | 3857 | if (pxclk == -1) { |
3893 | script = ROM16(otable[8]); | 3858 | script = ROM16(otable[8]); |
@@ -3897,7 +3862,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3897 | } | 3862 | } |
3898 | 3863 | ||
3899 | NV_TRACE(dev, "0x%04X: parsing output script 1\n", script); | 3864 | NV_TRACE(dev, "0x%04X: parsing output script 1\n", script); |
3900 | parse_init_table(bios, script, &iexec); | 3865 | nouveau_bios_run_init_table(dev, script, dcbent); |
3901 | } else | 3866 | } else |
3902 | if (pxclk == -2) { | 3867 | if (pxclk == -2) { |
3903 | if (table[4] >= 12) | 3868 | if (table[4] >= 12) |
@@ -3910,7 +3875,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3910 | } | 3875 | } |
3911 | 3876 | ||
3912 | NV_TRACE(dev, "0x%04X: parsing output script 2\n", script); | 3877 | NV_TRACE(dev, "0x%04X: parsing output script 2\n", script); |
3913 | parse_init_table(bios, script, &iexec); | 3878 | nouveau_bios_run_init_table(dev, script, dcbent); |
3914 | } else | 3879 | } else |
3915 | if (pxclk > 0) { | 3880 | if (pxclk > 0) { |
3916 | script = ROM16(otable[table[4] + i*6 + 2]); | 3881 | script = ROM16(otable[table[4] + i*6 + 2]); |
@@ -3922,7 +3887,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3922 | } | 3887 | } |
3923 | 3888 | ||
3924 | NV_TRACE(dev, "0x%04X: parsing clock script 0\n", script); | 3889 | NV_TRACE(dev, "0x%04X: parsing clock script 0\n", script); |
3925 | parse_init_table(bios, script, &iexec); | 3890 | nouveau_bios_run_init_table(dev, script, dcbent); |
3926 | } else | 3891 | } else |
3927 | if (pxclk < 0) { | 3892 | if (pxclk < 0) { |
3928 | script = ROM16(otable[table[4] + i*6 + 4]); | 3893 | script = ROM16(otable[table[4] + i*6 + 4]); |
@@ -3934,7 +3899,7 @@ nouveau_bios_run_display_table(struct drm_device *dev, struct dcb_entry *dcbent, | |||
3934 | } | 3899 | } |
3935 | 3900 | ||
3936 | NV_TRACE(dev, "0x%04X: parsing clock script 1\n", script); | 3901 | NV_TRACE(dev, "0x%04X: parsing clock script 1\n", script); |
3937 | parse_init_table(bios, script, &iexec); | 3902 | nouveau_bios_run_init_table(dev, script, dcbent); |
3938 | } | 3903 | } |
3939 | 3904 | ||
3940 | return 0; | 3905 | return 0; |
@@ -5434,52 +5399,49 @@ static bool | |||
5434 | parse_dcb15_entry(struct drm_device *dev, struct parsed_dcb *dcb, | 5399 | parse_dcb15_entry(struct drm_device *dev, struct parsed_dcb *dcb, |
5435 | uint32_t conn, uint32_t conf, struct dcb_entry *entry) | 5400 | uint32_t conn, uint32_t conf, struct dcb_entry *entry) |
5436 | { | 5401 | { |
5437 | if (conn != 0xf0003f00 && conn != 0xf2247f10 && conn != 0xf2204001 && | 5402 | switch (conn & 0x0000000f) { |
5438 | conn != 0xf2204301 && conn != 0xf2204311 && conn != 0xf2208001 && | 5403 | case 0: |
5439 | conn != 0xf2244001 && conn != 0xf2244301 && conn != 0xf2244311 && | 5404 | entry->type = OUTPUT_ANALOG; |
5440 | conn != 0xf4204011 && conn != 0xf4208011 && conn != 0xf4248011 && | 5405 | break; |
5441 | conn != 0xf2045ff2 && conn != 0xf2045f14 && conn != 0xf207df14 && | 5406 | case 1: |
5442 | conn != 0xf2205004 && conn != 0xf2209004) { | 5407 | entry->type = OUTPUT_TV; |
5443 | NV_ERROR(dev, "Unknown DCB 1.5 entry, please report\n"); | 5408 | break; |
5444 | 5409 | case 2: | |
5445 | /* cause output setting to fail for !TV, so message is seen */ | 5410 | case 3: |
5446 | if ((conn & 0xf) != 0x1) | ||
5447 | dcb->entries = 0; | ||
5448 | |||
5449 | return false; | ||
5450 | } | ||
5451 | /* most of the below is a "best guess" atm */ | ||
5452 | entry->type = conn & 0xf; | ||
5453 | if (entry->type == 2) | ||
5454 | /* another way of specifying straps based lvds... */ | ||
5455 | entry->type = OUTPUT_LVDS; | 5411 | entry->type = OUTPUT_LVDS; |
5456 | if (entry->type == 4) { /* digital */ | 5412 | break; |
5457 | if (conn & 0x10) | 5413 | case 4: |
5458 | entry->type = OUTPUT_LVDS; | 5414 | switch ((conn & 0x000000f0) >> 4) { |
5459 | else | 5415 | case 0: |
5460 | entry->type = OUTPUT_TMDS; | 5416 | entry->type = OUTPUT_TMDS; |
5417 | break; | ||
5418 | case 1: | ||
5419 | entry->type = OUTPUT_LVDS; | ||
5420 | break; | ||
5421 | default: | ||
5422 | NV_ERROR(dev, "Unknown DCB subtype 4/%d\n", | ||
5423 | (conn & 0x000000f0) >> 4); | ||
5424 | return false; | ||
5425 | } | ||
5426 | break; | ||
5427 | default: | ||
5428 | NV_ERROR(dev, "Unknown DCB type %d\n", conn & 0x0000000f); | ||
5429 | return false; | ||
5461 | } | 5430 | } |
5462 | /* what's in bits 5-13? could be some encoder maker thing, in tv case */ | 5431 | |
5463 | entry->i2c_index = (conn >> 14) & 0xf; | 5432 | entry->i2c_index = (conn & 0x0003c000) >> 14; |
5464 | /* raw heads field is in range 0-1, so move to 1-2 */ | 5433 | entry->heads = ((conn & 0x001c0000) >> 18) + 1; |
5465 | entry->heads = ((conn >> 18) & 0x7) + 1; | 5434 | entry->or = entry->heads; /* same as heads, hopefully safe enough */ |
5466 | entry->location = (conn >> 21) & 0xf; | 5435 | entry->location = (conn & 0x01e00000) >> 21; |
5467 | /* unused: entry->bus = (conn >> 25) & 0x7; */ | 5436 | entry->bus = (conn & 0x0e000000) >> 25; |
5468 | /* set or to be same as heads -- hopefully safe enough */ | ||
5469 | entry->or = entry->heads; | ||
5470 | entry->duallink_possible = false; | 5437 | entry->duallink_possible = false; |
5471 | 5438 | ||
5472 | switch (entry->type) { | 5439 | switch (entry->type) { |
5473 | case OUTPUT_ANALOG: | 5440 | case OUTPUT_ANALOG: |
5474 | entry->crtconf.maxfreq = (conf & 0xffff) * 10; | 5441 | entry->crtconf.maxfreq = (conf & 0xffff) * 10; |
5475 | break; | 5442 | break; |
5476 | case OUTPUT_LVDS: | 5443 | case OUTPUT_TV: |
5477 | /* | 5444 | entry->tvconf.has_component_output = false; |
5478 | * This is probably buried in conn's unknown bits. | ||
5479 | * This will upset EDID-ful models, if they exist | ||
5480 | */ | ||
5481 | entry->lvdsconf.use_straps_for_mode = true; | ||
5482 | entry->lvdsconf.use_power_scripts = true; | ||
5483 | break; | 5445 | break; |
5484 | case OUTPUT_TMDS: | 5446 | case OUTPUT_TMDS: |
5485 | /* | 5447 | /* |
@@ -5488,8 +5450,12 @@ parse_dcb15_entry(struct drm_device *dev, struct parsed_dcb *dcb, | |||
5488 | */ | 5450 | */ |
5489 | fabricate_vga_output(dcb, entry->i2c_index, entry->heads); | 5451 | fabricate_vga_output(dcb, entry->i2c_index, entry->heads); |
5490 | break; | 5452 | break; |
5491 | case OUTPUT_TV: | 5453 | case OUTPUT_LVDS: |
5492 | entry->tvconf.has_component_output = false; | 5454 | if ((conn & 0x00003f00) != 0x10) |
5455 | entry->lvdsconf.use_straps_for_mode = true; | ||
5456 | entry->lvdsconf.use_power_scripts = true; | ||
5457 | break; | ||
5458 | default: | ||
5493 | break; | 5459 | break; |
5494 | } | 5460 | } |
5495 | 5461 | ||
@@ -5564,11 +5530,13 @@ void merge_like_dcb_entries(struct drm_device *dev, struct parsed_dcb *dcb) | |||
5564 | dcb->entries = newentries; | 5530 | dcb->entries = newentries; |
5565 | } | 5531 | } |
5566 | 5532 | ||
5567 | static int parse_dcb_table(struct drm_device *dev, struct nvbios *bios, bool twoHeads) | 5533 | static int |
5534 | parse_dcb_table(struct drm_device *dev, struct nvbios *bios, bool twoHeads) | ||
5568 | { | 5535 | { |
5536 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
5569 | struct bios_parsed_dcb *bdcb = &bios->bdcb; | 5537 | struct bios_parsed_dcb *bdcb = &bios->bdcb; |
5570 | struct parsed_dcb *dcb; | 5538 | struct parsed_dcb *dcb; |
5571 | uint16_t dcbptr, i2ctabptr = 0; | 5539 | uint16_t dcbptr = 0, i2ctabptr = 0; |
5572 | uint8_t *dcbtable; | 5540 | uint8_t *dcbtable; |
5573 | uint8_t headerlen = 0x4, entries = DCB_MAX_NUM_ENTRIES; | 5541 | uint8_t headerlen = 0x4, entries = DCB_MAX_NUM_ENTRIES; |
5574 | bool configblock = true; | 5542 | bool configblock = true; |
@@ -5579,16 +5547,18 @@ static int parse_dcb_table(struct drm_device *dev, struct nvbios *bios, bool two | |||
5579 | dcb->entries = 0; | 5547 | dcb->entries = 0; |
5580 | 5548 | ||
5581 | /* get the offset from 0x36 */ | 5549 | /* get the offset from 0x36 */ |
5582 | dcbptr = ROM16(bios->data[0x36]); | 5550 | if (dev_priv->card_type > NV_04) { |
5551 | dcbptr = ROM16(bios->data[0x36]); | ||
5552 | if (dcbptr == 0x0000) | ||
5553 | NV_WARN(dev, "No output data (DCB) found in BIOS\n"); | ||
5554 | } | ||
5583 | 5555 | ||
5556 | /* this situation likely means a really old card, pre DCB */ | ||
5584 | if (dcbptr == 0x0) { | 5557 | if (dcbptr == 0x0) { |
5585 | NV_WARN(dev, "No output data (DCB) found in BIOS, " | 5558 | NV_INFO(dev, "Assuming a CRT output exists\n"); |
5586 | "assuming a CRT output exists\n"); | ||
5587 | /* this situation likely means a really old card, pre DCB */ | ||
5588 | fabricate_vga_output(dcb, LEGACY_I2C_CRT, 1); | 5559 | fabricate_vga_output(dcb, LEGACY_I2C_CRT, 1); |
5589 | 5560 | ||
5590 | if (nv04_tv_identify(dev, | 5561 | if (nv04_tv_identify(dev, bios->legacy.i2c_indices.tv) >= 0) |
5591 | bios->legacy.i2c_indices.tv) >= 0) | ||
5592 | fabricate_tv_output(dcb, twoHeads); | 5562 | fabricate_tv_output(dcb, twoHeads); |
5593 | 5563 | ||
5594 | return 0; | 5564 | return 0; |
@@ -5891,10 +5861,13 @@ nouveau_bios_run_init_table(struct drm_device *dev, uint16_t table, | |||
5891 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 5861 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
5892 | struct nvbios *bios = &dev_priv->VBIOS; | 5862 | struct nvbios *bios = &dev_priv->VBIOS; |
5893 | struct init_exec iexec = { true, false }; | 5863 | struct init_exec iexec = { true, false }; |
5864 | unsigned long flags; | ||
5894 | 5865 | ||
5866 | spin_lock_irqsave(&bios->lock, flags); | ||
5895 | bios->display.output = dcbent; | 5867 | bios->display.output = dcbent; |
5896 | parse_init_table(bios, table, &iexec); | 5868 | parse_init_table(bios, table, &iexec); |
5897 | bios->display.output = NULL; | 5869 | bios->display.output = NULL; |
5870 | spin_unlock_irqrestore(&bios->lock, flags); | ||
5898 | } | 5871 | } |
5899 | 5872 | ||
5900 | static bool NVInitVBIOS(struct drm_device *dev) | 5873 | static bool NVInitVBIOS(struct drm_device *dev) |
@@ -5903,6 +5876,7 @@ static bool NVInitVBIOS(struct drm_device *dev) | |||
5903 | struct nvbios *bios = &dev_priv->VBIOS; | 5876 | struct nvbios *bios = &dev_priv->VBIOS; |
5904 | 5877 | ||
5905 | memset(bios, 0, sizeof(struct nvbios)); | 5878 | memset(bios, 0, sizeof(struct nvbios)); |
5879 | spin_lock_init(&bios->lock); | ||
5906 | bios->dev = dev; | 5880 | bios->dev = dev; |
5907 | 5881 | ||
5908 | if (!NVShadowVBIOS(dev, bios->data)) | 5882 | if (!NVShadowVBIOS(dev, bios->data)) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.h b/drivers/gpu/drm/nouveau/nouveau_bios.h index 058e98c76d89..68446fd4146b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bios.h +++ b/drivers/gpu/drm/nouveau/nouveau_bios.h | |||
@@ -205,6 +205,8 @@ struct nvbios { | |||
205 | struct drm_device *dev; | 205 | struct drm_device *dev; |
206 | struct nouveau_bios_info pub; | 206 | struct nouveau_bios_info pub; |
207 | 207 | ||
208 | spinlock_t lock; | ||
209 | |||
208 | uint8_t data[NV_PROM_SIZE]; | 210 | uint8_t data[NV_PROM_SIZE]; |
209 | unsigned int length; | 211 | unsigned int length; |
210 | bool execute; | 212 | bool execute; |
diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c index e342a418d434..028719fddf76 100644 --- a/drivers/gpu/drm/nouveau/nouveau_bo.c +++ b/drivers/gpu/drm/nouveau/nouveau_bo.c | |||
@@ -65,8 +65,10 @@ nouveau_bo_fixup_align(struct drm_device *dev, | |||
65 | 65 | ||
66 | /* | 66 | /* |
67 | * Some of the tile_flags have a periodic structure of N*4096 bytes, | 67 | * Some of the tile_flags have a periodic structure of N*4096 bytes, |
68 | * align to to that as well as the page size. Overallocate memory to | 68 | * align to to that as well as the page size. Align the size to the |
69 | * avoid corruption of other buffer objects. | 69 | * appropriate boundaries. This does imply that sizes are rounded up |
70 | * 3-7 pages, so be aware of this and do not waste memory by allocating | ||
71 | * many small buffers. | ||
70 | */ | 72 | */ |
71 | if (dev_priv->card_type == NV_50) { | 73 | if (dev_priv->card_type == NV_50) { |
72 | uint32_t block_size = nouveau_mem_fb_amount(dev) >> 15; | 74 | uint32_t block_size = nouveau_mem_fb_amount(dev) >> 15; |
@@ -77,22 +79,20 @@ nouveau_bo_fixup_align(struct drm_device *dev, | |||
77 | case 0x2800: | 79 | case 0x2800: |
78 | case 0x4800: | 80 | case 0x4800: |
79 | case 0x7a00: | 81 | case 0x7a00: |
80 | *size = roundup(*size, block_size); | ||
81 | if (is_power_of_2(block_size)) { | 82 | if (is_power_of_2(block_size)) { |
82 | *size += 3 * block_size; | ||
83 | for (i = 1; i < 10; i++) { | 83 | for (i = 1; i < 10; i++) { |
84 | *align = 12 * i * block_size; | 84 | *align = 12 * i * block_size; |
85 | if (!(*align % 65536)) | 85 | if (!(*align % 65536)) |
86 | break; | 86 | break; |
87 | } | 87 | } |
88 | } else { | 88 | } else { |
89 | *size += 6 * block_size; | ||
90 | for (i = 1; i < 10; i++) { | 89 | for (i = 1; i < 10; i++) { |
91 | *align = 8 * i * block_size; | 90 | *align = 8 * i * block_size; |
92 | if (!(*align % 65536)) | 91 | if (!(*align % 65536)) |
93 | break; | 92 | break; |
94 | } | 93 | } |
95 | } | 94 | } |
95 | *size = roundup(*size, *align); | ||
96 | break; | 96 | break; |
97 | default: | 97 | default: |
98 | break; | 98 | break; |
@@ -469,6 +469,8 @@ nouveau_bo_move_accel_cleanup(struct nouveau_channel *chan, | |||
469 | 469 | ||
470 | ret = ttm_bo_move_accel_cleanup(&nvbo->bo, fence, NULL, | 470 | ret = ttm_bo_move_accel_cleanup(&nvbo->bo, fence, NULL, |
471 | evict, no_wait, new_mem); | 471 | evict, no_wait, new_mem); |
472 | if (nvbo->channel && nvbo->channel != chan) | ||
473 | ret = nouveau_fence_wait(fence, NULL, false, false); | ||
472 | nouveau_fence_unref((void *)&fence); | 474 | nouveau_fence_unref((void *)&fence); |
473 | return ret; | 475 | return ret; |
474 | } | 476 | } |
diff --git a/drivers/gpu/drm/nouveau/nouveau_channel.c b/drivers/gpu/drm/nouveau/nouveau_channel.c index 343d718a9667..2281f99da7fc 100644 --- a/drivers/gpu/drm/nouveau/nouveau_channel.c +++ b/drivers/gpu/drm/nouveau/nouveau_channel.c | |||
@@ -278,12 +278,11 @@ nouveau_channel_free(struct nouveau_channel *chan) | |||
278 | /* Ensure the channel is no longer active on the GPU */ | 278 | /* Ensure the channel is no longer active on the GPU */ |
279 | pfifo->reassign(dev, false); | 279 | pfifo->reassign(dev, false); |
280 | 280 | ||
281 | if (pgraph->channel(dev) == chan) { | 281 | pgraph->fifo_access(dev, false); |
282 | pgraph->fifo_access(dev, false); | 282 | if (pgraph->channel(dev) == chan) |
283 | pgraph->unload_context(dev); | 283 | pgraph->unload_context(dev); |
284 | pgraph->fifo_access(dev, true); | ||
285 | } | ||
286 | pgraph->destroy_context(chan); | 284 | pgraph->destroy_context(chan); |
285 | pgraph->fifo_access(dev, true); | ||
287 | 286 | ||
288 | if (pfifo->channel_id(dev) == chan->id) { | 287 | if (pfifo->channel_id(dev) == chan->id) { |
289 | pfifo->disable(dev); | 288 | pfifo->disable(dev); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c index 5a10deb8bdbd..d2f63353ea97 100644 --- a/drivers/gpu/drm/nouveau/nouveau_connector.c +++ b/drivers/gpu/drm/nouveau/nouveau_connector.c | |||
@@ -24,9 +24,12 @@ | |||
24 | * | 24 | * |
25 | */ | 25 | */ |
26 | 26 | ||
27 | #include <acpi/button.h> | ||
28 | |||
27 | #include "drmP.h" | 29 | #include "drmP.h" |
28 | #include "drm_edid.h" | 30 | #include "drm_edid.h" |
29 | #include "drm_crtc_helper.h" | 31 | #include "drm_crtc_helper.h" |
32 | |||
30 | #include "nouveau_reg.h" | 33 | #include "nouveau_reg.h" |
31 | #include "nouveau_drv.h" | 34 | #include "nouveau_drv.h" |
32 | #include "nouveau_encoder.h" | 35 | #include "nouveau_encoder.h" |
@@ -83,14 +86,17 @@ nouveau_encoder_connector_get(struct nouveau_encoder *encoder) | |||
83 | static void | 86 | static void |
84 | nouveau_connector_destroy(struct drm_connector *drm_connector) | 87 | nouveau_connector_destroy(struct drm_connector *drm_connector) |
85 | { | 88 | { |
86 | struct nouveau_connector *connector = nouveau_connector(drm_connector); | 89 | struct nouveau_connector *nv_connector = |
87 | struct drm_device *dev = connector->base.dev; | 90 | nouveau_connector(drm_connector); |
91 | struct drm_device *dev; | ||
88 | 92 | ||
89 | NV_DEBUG_KMS(dev, "\n"); | 93 | if (!nv_connector) |
90 | |||
91 | if (!connector) | ||
92 | return; | 94 | return; |
93 | 95 | ||
96 | dev = nv_connector->base.dev; | ||
97 | NV_DEBUG_KMS(dev, "\n"); | ||
98 | |||
99 | kfree(nv_connector->edid); | ||
94 | drm_sysfs_connector_remove(drm_connector); | 100 | drm_sysfs_connector_remove(drm_connector); |
95 | drm_connector_cleanup(drm_connector); | 101 | drm_connector_cleanup(drm_connector); |
96 | kfree(drm_connector); | 102 | kfree(drm_connector); |
@@ -233,10 +239,21 @@ nouveau_connector_detect(struct drm_connector *connector) | |||
233 | if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) | 239 | if (connector->connector_type == DRM_MODE_CONNECTOR_LVDS) |
234 | nv_encoder = find_encoder_by_type(connector, OUTPUT_LVDS); | 240 | nv_encoder = find_encoder_by_type(connector, OUTPUT_LVDS); |
235 | if (nv_encoder && nv_connector->native_mode) { | 241 | if (nv_encoder && nv_connector->native_mode) { |
242 | #ifdef CONFIG_ACPI | ||
243 | if (!nouveau_ignorelid && !acpi_lid_open()) | ||
244 | return connector_status_disconnected; | ||
245 | #endif | ||
236 | nouveau_connector_set_encoder(connector, nv_encoder); | 246 | nouveau_connector_set_encoder(connector, nv_encoder); |
237 | return connector_status_connected; | 247 | return connector_status_connected; |
238 | } | 248 | } |
239 | 249 | ||
250 | /* Cleanup the previous EDID block. */ | ||
251 | if (nv_connector->edid) { | ||
252 | drm_mode_connector_update_edid_property(connector, NULL); | ||
253 | kfree(nv_connector->edid); | ||
254 | nv_connector->edid = NULL; | ||
255 | } | ||
256 | |||
240 | i2c = nouveau_connector_ddc_detect(connector, &nv_encoder); | 257 | i2c = nouveau_connector_ddc_detect(connector, &nv_encoder); |
241 | if (i2c) { | 258 | if (i2c) { |
242 | nouveau_connector_ddc_prepare(connector, &flags); | 259 | nouveau_connector_ddc_prepare(connector, &flags); |
@@ -247,7 +264,7 @@ nouveau_connector_detect(struct drm_connector *connector) | |||
247 | if (!nv_connector->edid) { | 264 | if (!nv_connector->edid) { |
248 | NV_ERROR(dev, "DDC responded, but no EDID for %s\n", | 265 | NV_ERROR(dev, "DDC responded, but no EDID for %s\n", |
249 | drm_get_connector_name(connector)); | 266 | drm_get_connector_name(connector)); |
250 | return connector_status_disconnected; | 267 | goto detect_analog; |
251 | } | 268 | } |
252 | 269 | ||
253 | if (nv_encoder->dcb->type == OUTPUT_DP && | 270 | if (nv_encoder->dcb->type == OUTPUT_DP && |
@@ -281,6 +298,7 @@ nouveau_connector_detect(struct drm_connector *connector) | |||
281 | return connector_status_connected; | 298 | return connector_status_connected; |
282 | } | 299 | } |
283 | 300 | ||
301 | detect_analog: | ||
284 | nv_encoder = find_encoder_by_type(connector, OUTPUT_ANALOG); | 302 | nv_encoder = find_encoder_by_type(connector, OUTPUT_ANALOG); |
285 | if (!nv_encoder) | 303 | if (!nv_encoder) |
286 | nv_encoder = find_encoder_by_type(connector, OUTPUT_TV); | 304 | nv_encoder = find_encoder_by_type(connector, OUTPUT_TV); |
@@ -687,8 +705,12 @@ nouveau_connector_create_lvds(struct drm_device *dev, | |||
687 | */ | 705 | */ |
688 | if (!nv_connector->edid && !nv_connector->native_mode && | 706 | if (!nv_connector->edid && !nv_connector->native_mode && |
689 | !dev_priv->VBIOS.pub.fp_no_ddc) { | 707 | !dev_priv->VBIOS.pub.fp_no_ddc) { |
690 | nv_connector->edid = | 708 | struct edid *edid = |
691 | (struct edid *)nouveau_bios_embedded_edid(dev); | 709 | (struct edid *)nouveau_bios_embedded_edid(dev); |
710 | if (edid) { | ||
711 | nv_connector->edid = kmalloc(EDID_LENGTH, GFP_KERNEL); | ||
712 | *(nv_connector->edid) = *edid; | ||
713 | } | ||
692 | } | 714 | } |
693 | 715 | ||
694 | if (!nv_connector->edid) | 716 | if (!nv_connector->edid) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_dma.c b/drivers/gpu/drm/nouveau/nouveau_dma.c index 7afbe8b40d51..50d9e67745af 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dma.c +++ b/drivers/gpu/drm/nouveau/nouveau_dma.c | |||
@@ -126,47 +126,52 @@ OUT_RINGp(struct nouveau_channel *chan, const void *data, unsigned nr_dwords) | |||
126 | chan->dma.cur += nr_dwords; | 126 | chan->dma.cur += nr_dwords; |
127 | } | 127 | } |
128 | 128 | ||
129 | static inline bool | 129 | /* Fetch and adjust GPU GET pointer |
130 | READ_GET(struct nouveau_channel *chan, uint32_t *get) | 130 | * |
131 | * Returns: | ||
132 | * value >= 0, the adjusted GET pointer | ||
133 | * -EINVAL if GET pointer currently outside main push buffer | ||
134 | * -EBUSY if timeout exceeded | ||
135 | */ | ||
136 | static inline int | ||
137 | READ_GET(struct nouveau_channel *chan, uint32_t *prev_get, uint32_t *timeout) | ||
131 | { | 138 | { |
132 | uint32_t val; | 139 | uint32_t val; |
133 | 140 | ||
134 | val = nvchan_rd32(chan, chan->user_get); | 141 | val = nvchan_rd32(chan, chan->user_get); |
135 | if (val < chan->pushbuf_base || | 142 | |
136 | val > chan->pushbuf_base + (chan->dma.max << 2)) { | 143 | /* reset counter as long as GET is still advancing, this is |
137 | /* meaningless to dma_wait() except to know whether the | 144 | * to avoid misdetecting a GPU lockup if the GPU happens to |
138 | * GPU has stalled or not | 145 | * just be processing an operation that takes a long time |
139 | */ | 146 | */ |
140 | *get = val; | 147 | if (val != *prev_get) { |
141 | return false; | 148 | *prev_get = val; |
149 | *timeout = 0; | ||
150 | } | ||
151 | |||
152 | if ((++*timeout & 0xff) == 0) { | ||
153 | DRM_UDELAY(1); | ||
154 | if (*timeout > 100000) | ||
155 | return -EBUSY; | ||
142 | } | 156 | } |
143 | 157 | ||
144 | *get = (val - chan->pushbuf_base) >> 2; | 158 | if (val < chan->pushbuf_base || |
145 | return true; | 159 | val > chan->pushbuf_base + (chan->dma.max << 2)) |
160 | return -EINVAL; | ||
161 | |||
162 | return (val - chan->pushbuf_base) >> 2; | ||
146 | } | 163 | } |
147 | 164 | ||
148 | int | 165 | int |
149 | nouveau_dma_wait(struct nouveau_channel *chan, int size) | 166 | nouveau_dma_wait(struct nouveau_channel *chan, int size) |
150 | { | 167 | { |
151 | uint32_t get, prev_get = 0, cnt = 0; | 168 | uint32_t prev_get = 0, cnt = 0; |
152 | bool get_valid; | 169 | int get; |
153 | 170 | ||
154 | while (chan->dma.free < size) { | 171 | while (chan->dma.free < size) { |
155 | /* reset counter as long as GET is still advancing, this is | 172 | get = READ_GET(chan, &prev_get, &cnt); |
156 | * to avoid misdetecting a GPU lockup if the GPU happens to | 173 | if (unlikely(get == -EBUSY)) |
157 | * just be processing an operation that takes a long time | 174 | return -EBUSY; |
158 | */ | ||
159 | get_valid = READ_GET(chan, &get); | ||
160 | if (get != prev_get) { | ||
161 | prev_get = get; | ||
162 | cnt = 0; | ||
163 | } | ||
164 | |||
165 | if ((++cnt & 0xff) == 0) { | ||
166 | DRM_UDELAY(1); | ||
167 | if (cnt > 100000) | ||
168 | return -EBUSY; | ||
169 | } | ||
170 | 175 | ||
171 | /* loop until we have a usable GET pointer. the value | 176 | /* loop until we have a usable GET pointer. the value |
172 | * we read from the GPU may be outside the main ring if | 177 | * we read from the GPU may be outside the main ring if |
@@ -177,7 +182,7 @@ nouveau_dma_wait(struct nouveau_channel *chan, int size) | |||
177 | * from the SKIPS area, so the code below doesn't have to deal | 182 | * from the SKIPS area, so the code below doesn't have to deal |
178 | * with some fun corner cases. | 183 | * with some fun corner cases. |
179 | */ | 184 | */ |
180 | if (!get_valid || get < NOUVEAU_DMA_SKIPS) | 185 | if (unlikely(get == -EINVAL) || get < NOUVEAU_DMA_SKIPS) |
181 | continue; | 186 | continue; |
182 | 187 | ||
183 | if (get <= chan->dma.cur) { | 188 | if (get <= chan->dma.cur) { |
@@ -203,6 +208,19 @@ nouveau_dma_wait(struct nouveau_channel *chan, int size) | |||
203 | * after processing the currently pending commands. | 208 | * after processing the currently pending commands. |
204 | */ | 209 | */ |
205 | OUT_RING(chan, chan->pushbuf_base | 0x20000000); | 210 | OUT_RING(chan, chan->pushbuf_base | 0x20000000); |
211 | |||
212 | /* wait for GET to depart from the skips area. | ||
213 | * prevents writing GET==PUT and causing a race | ||
214 | * condition that causes us to think the GPU is | ||
215 | * idle when it's not. | ||
216 | */ | ||
217 | do { | ||
218 | get = READ_GET(chan, &prev_get, &cnt); | ||
219 | if (unlikely(get == -EBUSY)) | ||
220 | return -EBUSY; | ||
221 | if (unlikely(get == -EINVAL)) | ||
222 | continue; | ||
223 | } while (get <= NOUVEAU_DMA_SKIPS); | ||
206 | WRITE_PUT(NOUVEAU_DMA_SKIPS); | 224 | WRITE_PUT(NOUVEAU_DMA_SKIPS); |
207 | 225 | ||
208 | /* we're now submitting commands at the start of | 226 | /* we're now submitting commands at the start of |
diff --git a/drivers/gpu/drm/nouveau/nouveau_dp.c b/drivers/gpu/drm/nouveau/nouveau_dp.c index 9e2926c48579..f954ad93e81f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dp.c +++ b/drivers/gpu/drm/nouveau/nouveau_dp.c | |||
@@ -490,7 +490,8 @@ nouveau_dp_auxch(struct nouveau_i2c_chan *auxch, int cmd, int addr, | |||
490 | if (!nv_wait(NV50_AUXCH_CTRL(index), 0x00010000, 0x00000000)) { | 490 | if (!nv_wait(NV50_AUXCH_CTRL(index), 0x00010000, 0x00000000)) { |
491 | NV_ERROR(dev, "expected bit 16 == 0, got 0x%08x\n", | 491 | NV_ERROR(dev, "expected bit 16 == 0, got 0x%08x\n", |
492 | nv_rd32(dev, NV50_AUXCH_CTRL(index))); | 492 | nv_rd32(dev, NV50_AUXCH_CTRL(index))); |
493 | return -EBUSY; | 493 | ret = -EBUSY; |
494 | goto out; | ||
494 | } | 495 | } |
495 | 496 | ||
496 | udelay(400); | 497 | udelay(400); |
@@ -502,6 +503,11 @@ nouveau_dp_auxch(struct nouveau_i2c_chan *auxch, int cmd, int addr, | |||
502 | } | 503 | } |
503 | 504 | ||
504 | if (cmd & 1) { | 505 | if (cmd & 1) { |
506 | if ((stat & NV50_AUXCH_STAT_COUNT) != data_nr) { | ||
507 | ret = -EREMOTEIO; | ||
508 | goto out; | ||
509 | } | ||
510 | |||
505 | for (i = 0; i < 4; i++) { | 511 | for (i = 0; i < 4; i++) { |
506 | data32[i] = nv_rd32(dev, NV50_AUXCH_DATA_IN(index, i)); | 512 | data32[i] = nv_rd32(dev, NV50_AUXCH_DATA_IN(index, i)); |
507 | NV_DEBUG_KMS(dev, "rd %d: 0x%08x\n", i, data32[i]); | 513 | NV_DEBUG_KMS(dev, "rd %d: 0x%08x\n", i, data32[i]); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.c b/drivers/gpu/drm/nouveau/nouveau_drv.c index 06eb993e0883..da3b93b84502 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.c +++ b/drivers/gpu/drm/nouveau/nouveau_drv.c | |||
@@ -56,7 +56,7 @@ int nouveau_vram_pushbuf; | |||
56 | module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0400); | 56 | module_param_named(vram_pushbuf, nouveau_vram_pushbuf, int, 0400); |
57 | 57 | ||
58 | MODULE_PARM_DESC(vram_notify, "Force DMA notifiers to be in VRAM"); | 58 | MODULE_PARM_DESC(vram_notify, "Force DMA notifiers to be in VRAM"); |
59 | int nouveau_vram_notify; | 59 | int nouveau_vram_notify = 1; |
60 | module_param_named(vram_notify, nouveau_vram_notify, int, 0400); | 60 | module_param_named(vram_notify, nouveau_vram_notify, int, 0400); |
61 | 61 | ||
62 | MODULE_PARM_DESC(duallink, "Allow dual-link TMDS (>=GeForce 8)"); | 62 | MODULE_PARM_DESC(duallink, "Allow dual-link TMDS (>=GeForce 8)"); |
@@ -71,6 +71,18 @@ MODULE_PARM_DESC(uscript_tmds, "TMDS output script table ID (>=GeForce 8)"); | |||
71 | int nouveau_uscript_tmds = -1; | 71 | int nouveau_uscript_tmds = -1; |
72 | module_param_named(uscript_tmds, nouveau_uscript_tmds, int, 0400); | 72 | module_param_named(uscript_tmds, nouveau_uscript_tmds, int, 0400); |
73 | 73 | ||
74 | MODULE_PARM_DESC(ignorelid, "Ignore ACPI lid status"); | ||
75 | int nouveau_ignorelid = 0; | ||
76 | module_param_named(ignorelid, nouveau_ignorelid, int, 0400); | ||
77 | |||
78 | MODULE_PARM_DESC(noagp, "Disable all acceleration"); | ||
79 | int nouveau_noaccel = 0; | ||
80 | module_param_named(noaccel, nouveau_noaccel, int, 0400); | ||
81 | |||
82 | MODULE_PARM_DESC(noagp, "Disable fbcon acceleration"); | ||
83 | int nouveau_nofbaccel = 0; | ||
84 | module_param_named(nofbaccel, nouveau_nofbaccel, int, 0400); | ||
85 | |||
74 | MODULE_PARM_DESC(tv_norm, "Default TV norm.\n" | 86 | MODULE_PARM_DESC(tv_norm, "Default TV norm.\n" |
75 | "\t\tSupported: PAL, PAL-M, PAL-N, PAL-Nc, NTSC-M, NTSC-J,\n" | 87 | "\t\tSupported: PAL, PAL-M, PAL-N, PAL-Nc, NTSC-M, NTSC-J,\n" |
76 | "\t\t\thd480i, hd480p, hd576i, hd576p, hd720p, hd1080i.\n" | 88 | "\t\t\thd480i, hd480p, hd576i, hd576p, hd720p, hd1080i.\n" |
diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index 026419fe8791..5445cefdd03e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drv.h +++ b/drivers/gpu/drm/nouveau/nouveau_drv.h | |||
@@ -509,6 +509,8 @@ struct drm_nouveau_private { | |||
509 | void __iomem *ramin; | 509 | void __iomem *ramin; |
510 | uint32_t ramin_size; | 510 | uint32_t ramin_size; |
511 | 511 | ||
512 | struct nouveau_bo *vga_ram; | ||
513 | |||
512 | struct workqueue_struct *wq; | 514 | struct workqueue_struct *wq; |
513 | struct work_struct irq_work; | 515 | struct work_struct irq_work; |
514 | 516 | ||
@@ -675,6 +677,9 @@ extern char *nouveau_tv_norm; | |||
675 | extern int nouveau_reg_debug; | 677 | extern int nouveau_reg_debug; |
676 | extern char *nouveau_vbios; | 678 | extern char *nouveau_vbios; |
677 | extern int nouveau_ctxfw; | 679 | extern int nouveau_ctxfw; |
680 | extern int nouveau_ignorelid; | ||
681 | extern int nouveau_nofbaccel; | ||
682 | extern int nouveau_noaccel; | ||
678 | 683 | ||
679 | /* nouveau_state.c */ | 684 | /* nouveau_state.c */ |
680 | extern void nouveau_preclose(struct drm_device *dev, struct drm_file *); | 685 | extern void nouveau_preclose(struct drm_device *dev, struct drm_file *); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c index 0b05c869e0e7..ea879a2efef3 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c | |||
@@ -107,6 +107,34 @@ static struct fb_ops nouveau_fbcon_ops = { | |||
107 | .fb_setcmap = drm_fb_helper_setcmap, | 107 | .fb_setcmap = drm_fb_helper_setcmap, |
108 | }; | 108 | }; |
109 | 109 | ||
110 | static struct fb_ops nv04_fbcon_ops = { | ||
111 | .owner = THIS_MODULE, | ||
112 | .fb_check_var = drm_fb_helper_check_var, | ||
113 | .fb_set_par = drm_fb_helper_set_par, | ||
114 | .fb_setcolreg = drm_fb_helper_setcolreg, | ||
115 | .fb_fillrect = nv04_fbcon_fillrect, | ||
116 | .fb_copyarea = nv04_fbcon_copyarea, | ||
117 | .fb_imageblit = nv04_fbcon_imageblit, | ||
118 | .fb_sync = nouveau_fbcon_sync, | ||
119 | .fb_pan_display = drm_fb_helper_pan_display, | ||
120 | .fb_blank = drm_fb_helper_blank, | ||
121 | .fb_setcmap = drm_fb_helper_setcmap, | ||
122 | }; | ||
123 | |||
124 | static struct fb_ops nv50_fbcon_ops = { | ||
125 | .owner = THIS_MODULE, | ||
126 | .fb_check_var = drm_fb_helper_check_var, | ||
127 | .fb_set_par = drm_fb_helper_set_par, | ||
128 | .fb_setcolreg = drm_fb_helper_setcolreg, | ||
129 | .fb_fillrect = nv50_fbcon_fillrect, | ||
130 | .fb_copyarea = nv50_fbcon_copyarea, | ||
131 | .fb_imageblit = nv50_fbcon_imageblit, | ||
132 | .fb_sync = nouveau_fbcon_sync, | ||
133 | .fb_pan_display = drm_fb_helper_pan_display, | ||
134 | .fb_blank = drm_fb_helper_blank, | ||
135 | .fb_setcmap = drm_fb_helper_setcmap, | ||
136 | }; | ||
137 | |||
110 | static void nouveau_fbcon_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, | 138 | static void nouveau_fbcon_gamma_set(struct drm_crtc *crtc, u16 red, u16 green, |
111 | u16 blue, int regno) | 139 | u16 blue, int regno) |
112 | { | 140 | { |
@@ -267,8 +295,12 @@ nouveau_fbcon_create(struct drm_device *dev, uint32_t fb_width, | |||
267 | dev_priv->fbdev_info = info; | 295 | dev_priv->fbdev_info = info; |
268 | 296 | ||
269 | strcpy(info->fix.id, "nouveaufb"); | 297 | strcpy(info->fix.id, "nouveaufb"); |
270 | info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | | 298 | if (nouveau_nofbaccel) |
271 | FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_IMAGEBLIT; | 299 | info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_DISABLED; |
300 | else | ||
301 | info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_COPYAREA | | ||
302 | FBINFO_HWACCEL_FILLRECT | | ||
303 | FBINFO_HWACCEL_IMAGEBLIT; | ||
272 | info->fbops = &nouveau_fbcon_ops; | 304 | info->fbops = &nouveau_fbcon_ops; |
273 | info->fix.smem_start = dev->mode_config.fb_base + nvbo->bo.offset - | 305 | info->fix.smem_start = dev->mode_config.fb_base + nvbo->bo.offset - |
274 | dev_priv->vm_vram_base; | 306 | dev_priv->vm_vram_base; |
@@ -316,13 +348,15 @@ nouveau_fbcon_create(struct drm_device *dev, uint32_t fb_width, | |||
316 | par->nouveau_fb = nouveau_fb; | 348 | par->nouveau_fb = nouveau_fb; |
317 | par->dev = dev; | 349 | par->dev = dev; |
318 | 350 | ||
319 | if (dev_priv->channel) { | 351 | if (dev_priv->channel && !nouveau_nofbaccel) { |
320 | switch (dev_priv->card_type) { | 352 | switch (dev_priv->card_type) { |
321 | case NV_50: | 353 | case NV_50: |
322 | nv50_fbcon_accel_init(info); | 354 | nv50_fbcon_accel_init(info); |
355 | info->fbops = &nv50_fbcon_ops; | ||
323 | break; | 356 | break; |
324 | default: | 357 | default: |
325 | nv04_fbcon_accel_init(info); | 358 | nv04_fbcon_accel_init(info); |
359 | info->fbops = &nv04_fbcon_ops; | ||
326 | break; | 360 | break; |
327 | }; | 361 | }; |
328 | } | 362 | } |
diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.h b/drivers/gpu/drm/nouveau/nouveau_fbcon.h index 462e0b87b4bd..f9c34e1a8c11 100644 --- a/drivers/gpu/drm/nouveau/nouveau_fbcon.h +++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.h | |||
@@ -40,7 +40,13 @@ int nouveau_fbcon_remove(struct drm_device *dev, struct drm_framebuffer *fb); | |||
40 | void nouveau_fbcon_restore(void); | 40 | void nouveau_fbcon_restore(void); |
41 | void nouveau_fbcon_zfill(struct drm_device *dev); | 41 | void nouveau_fbcon_zfill(struct drm_device *dev); |
42 | 42 | ||
43 | void nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region); | ||
44 | void nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect); | ||
45 | void nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image); | ||
43 | int nv04_fbcon_accel_init(struct fb_info *info); | 46 | int nv04_fbcon_accel_init(struct fb_info *info); |
47 | void nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect); | ||
48 | void nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region); | ||
49 | void nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image); | ||
44 | int nv50_fbcon_accel_init(struct fb_info *info); | 50 | int nv50_fbcon_accel_init(struct fb_info *info); |
45 | 51 | ||
46 | void nouveau_fbcon_gpu_lockup(struct fb_info *info); | 52 | void nouveau_fbcon_gpu_lockup(struct fb_info *info); |
diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 2009db2426c3..70cc30803e3b 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c | |||
@@ -321,6 +321,7 @@ retry: | |||
321 | else { | 321 | else { |
322 | NV_ERROR(dev, "invalid valid domains: 0x%08x\n", | 322 | NV_ERROR(dev, "invalid valid domains: 0x%08x\n", |
323 | b->valid_domains); | 323 | b->valid_domains); |
324 | list_add_tail(&nvbo->entry, &op->both_list); | ||
324 | validate_fini(op, NULL); | 325 | validate_fini(op, NULL); |
325 | return -EINVAL; | 326 | return -EINVAL; |
326 | } | 327 | } |
@@ -466,13 +467,14 @@ u_memcpya(uint64_t user, unsigned nmemb, unsigned size) | |||
466 | static int | 467 | static int |
467 | nouveau_gem_pushbuf_reloc_apply(struct nouveau_channel *chan, int nr_bo, | 468 | nouveau_gem_pushbuf_reloc_apply(struct nouveau_channel *chan, int nr_bo, |
468 | struct drm_nouveau_gem_pushbuf_bo *bo, | 469 | struct drm_nouveau_gem_pushbuf_bo *bo, |
469 | int nr_relocs, uint64_t ptr_relocs, | 470 | unsigned nr_relocs, uint64_t ptr_relocs, |
470 | int nr_dwords, int first_dword, | 471 | unsigned nr_dwords, unsigned first_dword, |
471 | uint32_t *pushbuf, bool is_iomem) | 472 | uint32_t *pushbuf, bool is_iomem) |
472 | { | 473 | { |
473 | struct drm_nouveau_gem_pushbuf_reloc *reloc = NULL; | 474 | struct drm_nouveau_gem_pushbuf_reloc *reloc = NULL; |
474 | struct drm_device *dev = chan->dev; | 475 | struct drm_device *dev = chan->dev; |
475 | int ret = 0, i; | 476 | int ret = 0; |
477 | unsigned i; | ||
476 | 478 | ||
477 | reloc = u_memcpya(ptr_relocs, nr_relocs, sizeof(*reloc)); | 479 | reloc = u_memcpya(ptr_relocs, nr_relocs, sizeof(*reloc)); |
478 | if (IS_ERR(reloc)) | 480 | if (IS_ERR(reloc)) |
@@ -667,6 +669,18 @@ nouveau_gem_ioctl_pushbuf_call(struct drm_device *dev, void *data, | |||
667 | } | 669 | } |
668 | pbbo = nouveau_gem_object(gem); | 670 | pbbo = nouveau_gem_object(gem); |
669 | 671 | ||
672 | if ((req->offset & 3) || req->nr_dwords < 2 || | ||
673 | (unsigned long)req->offset > (unsigned long)pbbo->bo.mem.size || | ||
674 | (unsigned long)req->nr_dwords > | ||
675 | ((unsigned long)(pbbo->bo.mem.size - req->offset ) >> 2)) { | ||
676 | NV_ERROR(dev, "pb call misaligned or out of bounds: " | ||
677 | "%d + %d * 4 > %ld\n", | ||
678 | req->offset, req->nr_dwords, pbbo->bo.mem.size); | ||
679 | ret = -EINVAL; | ||
680 | drm_gem_object_unreference(gem); | ||
681 | goto out; | ||
682 | } | ||
683 | |||
670 | ret = ttm_bo_reserve(&pbbo->bo, false, false, true, | 684 | ret = ttm_bo_reserve(&pbbo->bo, false, false, true, |
671 | chan->fence.sequence); | 685 | chan->fence.sequence); |
672 | if (ret) { | 686 | if (ret) { |
@@ -911,7 +925,9 @@ nouveau_gem_ioctl_cpu_prep(struct drm_device *dev, void *data, | |||
911 | } | 925 | } |
912 | 926 | ||
913 | if (req->flags & NOUVEAU_GEM_CPU_PREP_NOBLOCK) { | 927 | if (req->flags & NOUVEAU_GEM_CPU_PREP_NOBLOCK) { |
928 | spin_lock(&nvbo->bo.lock); | ||
914 | ret = ttm_bo_wait(&nvbo->bo, false, false, no_wait); | 929 | ret = ttm_bo_wait(&nvbo->bo, false, false, no_wait); |
930 | spin_unlock(&nvbo->bo.lock); | ||
915 | } else { | 931 | } else { |
916 | ret = ttm_bo_synccpu_write_grab(&nvbo->bo, no_wait); | 932 | ret = ttm_bo_synccpu_write_grab(&nvbo->bo, no_wait); |
917 | if (ret == 0) | 933 | if (ret == 0) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_grctx.c b/drivers/gpu/drm/nouveau/nouveau_grctx.c index 419f4c2b3b89..c7ebec696747 100644 --- a/drivers/gpu/drm/nouveau/nouveau_grctx.c +++ b/drivers/gpu/drm/nouveau/nouveau_grctx.c | |||
@@ -97,8 +97,8 @@ nouveau_grctx_prog_load(struct drm_device *dev) | |||
97 | } | 97 | } |
98 | 98 | ||
99 | pgraph->ctxvals = kmalloc(fw->size, GFP_KERNEL); | 99 | pgraph->ctxvals = kmalloc(fw->size, GFP_KERNEL); |
100 | if (!pgraph->ctxprog) { | 100 | if (!pgraph->ctxvals) { |
101 | NV_ERROR(dev, "OOM copying ctxprog\n"); | 101 | NV_ERROR(dev, "OOM copying ctxvals\n"); |
102 | release_firmware(fw); | 102 | release_firmware(fw); |
103 | nouveau_grctx_fini(dev); | 103 | nouveau_grctx_fini(dev); |
104 | return -ENOMEM; | 104 | return -ENOMEM; |
diff --git a/drivers/gpu/drm/nouveau/nouveau_irq.c b/drivers/gpu/drm/nouveau/nouveau_irq.c index 919a619ca7fa..447f9f69d6b1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_irq.c +++ b/drivers/gpu/drm/nouveau/nouveau_irq.c | |||
@@ -211,6 +211,20 @@ nouveau_fifo_irq_handler(struct drm_device *dev) | |||
211 | get + 4); | 211 | get + 4); |
212 | } | 212 | } |
213 | 213 | ||
214 | if (status & NV_PFIFO_INTR_SEMAPHORE) { | ||
215 | uint32_t sem; | ||
216 | |||
217 | status &= ~NV_PFIFO_INTR_SEMAPHORE; | ||
218 | nv_wr32(dev, NV03_PFIFO_INTR_0, | ||
219 | NV_PFIFO_INTR_SEMAPHORE); | ||
220 | |||
221 | sem = nv_rd32(dev, NV10_PFIFO_CACHE1_SEMAPHORE); | ||
222 | nv_wr32(dev, NV10_PFIFO_CACHE1_SEMAPHORE, sem | 0x1); | ||
223 | |||
224 | nv_wr32(dev, NV03_PFIFO_CACHE1_GET, get + 4); | ||
225 | nv_wr32(dev, NV04_PFIFO_CACHE1_PULL0, 1); | ||
226 | } | ||
227 | |||
214 | if (status) { | 228 | if (status) { |
215 | NV_INFO(dev, "PFIFO_INTR 0x%08x - Ch %d\n", | 229 | NV_INFO(dev, "PFIFO_INTR 0x%08x - Ch %d\n", |
216 | status, chid); | 230 | status, chid); |
@@ -483,6 +497,13 @@ nouveau_pgraph_intr_error(struct drm_device *dev, uint32_t nsource) | |||
483 | if (nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD) { | 497 | if (nsource & NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD) { |
484 | if (nouveau_pgraph_intr_swmthd(dev, &trap)) | 498 | if (nouveau_pgraph_intr_swmthd(dev, &trap)) |
485 | unhandled = 1; | 499 | unhandled = 1; |
500 | } else if (nsource & NV03_PGRAPH_NSOURCE_DMA_VTX_PROTECTION) { | ||
501 | uint32_t v = nv_rd32(dev, 0x402000); | ||
502 | nv_wr32(dev, 0x402000, v); | ||
503 | |||
504 | /* dump the error anyway for now: it's useful for | ||
505 | Gallium development */ | ||
506 | unhandled = 1; | ||
486 | } else { | 507 | } else { |
487 | unhandled = 1; | 508 | unhandled = 1; |
488 | } | 509 | } |
@@ -559,86 +580,99 @@ nouveau_pgraph_irq_handler(struct drm_device *dev) | |||
559 | static void | 580 | static void |
560 | nv50_pgraph_irq_handler(struct drm_device *dev) | 581 | nv50_pgraph_irq_handler(struct drm_device *dev) |
561 | { | 582 | { |
562 | uint32_t status, nsource; | 583 | uint32_t status; |
563 | 584 | ||
564 | status = nv_rd32(dev, NV03_PGRAPH_INTR); | 585 | while ((status = nv_rd32(dev, NV03_PGRAPH_INTR))) { |
565 | nsource = nv_rd32(dev, NV03_PGRAPH_NSOURCE); | 586 | uint32_t nsource = nv_rd32(dev, NV03_PGRAPH_NSOURCE); |
566 | 587 | ||
567 | if (status & 0x00000001) { | 588 | if (status & 0x00000001) { |
568 | nouveau_pgraph_intr_notify(dev, nsource); | 589 | nouveau_pgraph_intr_notify(dev, nsource); |
569 | status &= ~0x00000001; | 590 | status &= ~0x00000001; |
570 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00000001); | 591 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00000001); |
571 | } | 592 | } |
572 | 593 | ||
573 | if (status & 0x00000010) { | 594 | if (status & 0x00000010) { |
574 | nouveau_pgraph_intr_error(dev, nsource | | 595 | nouveau_pgraph_intr_error(dev, nsource | |
575 | NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD); | 596 | NV03_PGRAPH_NSOURCE_ILLEGAL_MTHD); |
576 | 597 | ||
577 | status &= ~0x00000010; | 598 | status &= ~0x00000010; |
578 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00000010); | 599 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00000010); |
579 | } | 600 | } |
580 | 601 | ||
581 | if (status & 0x00001000) { | 602 | if (status & 0x00001000) { |
582 | nv_wr32(dev, 0x400500, 0x00000000); | 603 | nv_wr32(dev, 0x400500, 0x00000000); |
583 | nv_wr32(dev, NV03_PGRAPH_INTR, NV_PGRAPH_INTR_CONTEXT_SWITCH); | 604 | nv_wr32(dev, NV03_PGRAPH_INTR, |
584 | nv_wr32(dev, NV40_PGRAPH_INTR_EN, nv_rd32(dev, | 605 | NV_PGRAPH_INTR_CONTEXT_SWITCH); |
585 | NV40_PGRAPH_INTR_EN) & ~NV_PGRAPH_INTR_CONTEXT_SWITCH); | 606 | nv_wr32(dev, NV40_PGRAPH_INTR_EN, nv_rd32(dev, |
586 | nv_wr32(dev, 0x400500, 0x00010001); | 607 | NV40_PGRAPH_INTR_EN) & |
608 | ~NV_PGRAPH_INTR_CONTEXT_SWITCH); | ||
609 | nv_wr32(dev, 0x400500, 0x00010001); | ||
587 | 610 | ||
588 | nv50_graph_context_switch(dev); | 611 | nv50_graph_context_switch(dev); |
589 | 612 | ||
590 | status &= ~NV_PGRAPH_INTR_CONTEXT_SWITCH; | 613 | status &= ~NV_PGRAPH_INTR_CONTEXT_SWITCH; |
591 | } | 614 | } |
592 | 615 | ||
593 | if (status & 0x00100000) { | 616 | if (status & 0x00100000) { |
594 | nouveau_pgraph_intr_error(dev, nsource | | 617 | nouveau_pgraph_intr_error(dev, nsource | |
595 | NV03_PGRAPH_NSOURCE_DATA_ERROR); | 618 | NV03_PGRAPH_NSOURCE_DATA_ERROR); |
596 | 619 | ||
597 | status &= ~0x00100000; | 620 | status &= ~0x00100000; |
598 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00100000); | 621 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00100000); |
599 | } | 622 | } |
600 | 623 | ||
601 | if (status & 0x00200000) { | 624 | if (status & 0x00200000) { |
602 | int r; | 625 | int r; |
603 | 626 | ||
604 | nouveau_pgraph_intr_error(dev, nsource | | 627 | nouveau_pgraph_intr_error(dev, nsource | |
605 | NV03_PGRAPH_NSOURCE_PROTECTION_ERROR); | 628 | NV03_PGRAPH_NSOURCE_PROTECTION_ERROR); |
606 | 629 | ||
607 | NV_ERROR(dev, "magic set 1:\n"); | 630 | NV_ERROR(dev, "magic set 1:\n"); |
608 | for (r = 0x408900; r <= 0x408910; r += 4) | 631 | for (r = 0x408900; r <= 0x408910; r += 4) |
609 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, nv_rd32(dev, r)); | 632 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, |
610 | nv_wr32(dev, 0x408900, nv_rd32(dev, 0x408904) | 0xc0000000); | 633 | nv_rd32(dev, r)); |
611 | for (r = 0x408e08; r <= 0x408e24; r += 4) | 634 | nv_wr32(dev, 0x408900, |
612 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, nv_rd32(dev, r)); | 635 | nv_rd32(dev, 0x408904) | 0xc0000000); |
613 | nv_wr32(dev, 0x408e08, nv_rd32(dev, 0x408e08) | 0xc0000000); | 636 | for (r = 0x408e08; r <= 0x408e24; r += 4) |
614 | 637 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, | |
615 | NV_ERROR(dev, "magic set 2:\n"); | 638 | nv_rd32(dev, r)); |
616 | for (r = 0x409900; r <= 0x409910; r += 4) | 639 | nv_wr32(dev, 0x408e08, |
617 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, nv_rd32(dev, r)); | 640 | nv_rd32(dev, 0x408e08) | 0xc0000000); |
618 | nv_wr32(dev, 0x409900, nv_rd32(dev, 0x409904) | 0xc0000000); | 641 | |
619 | for (r = 0x409e08; r <= 0x409e24; r += 4) | 642 | NV_ERROR(dev, "magic set 2:\n"); |
620 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, nv_rd32(dev, r)); | 643 | for (r = 0x409900; r <= 0x409910; r += 4) |
621 | nv_wr32(dev, 0x409e08, nv_rd32(dev, 0x409e08) | 0xc0000000); | 644 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, |
622 | 645 | nv_rd32(dev, r)); | |
623 | status &= ~0x00200000; | 646 | nv_wr32(dev, 0x409900, |
624 | nv_wr32(dev, NV03_PGRAPH_NSOURCE, nsource); | 647 | nv_rd32(dev, 0x409904) | 0xc0000000); |
625 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00200000); | 648 | for (r = 0x409e08; r <= 0x409e24; r += 4) |
626 | } | 649 | NV_ERROR(dev, "\t0x%08x: 0x%08x\n", r, |
650 | nv_rd32(dev, r)); | ||
651 | nv_wr32(dev, 0x409e08, | ||
652 | nv_rd32(dev, 0x409e08) | 0xc0000000); | ||
653 | |||
654 | status &= ~0x00200000; | ||
655 | nv_wr32(dev, NV03_PGRAPH_NSOURCE, nsource); | ||
656 | nv_wr32(dev, NV03_PGRAPH_INTR, 0x00200000); | ||
657 | } | ||
627 | 658 | ||
628 | if (status) { | 659 | if (status) { |
629 | NV_INFO(dev, "Unhandled PGRAPH_INTR - 0x%08x\n", status); | 660 | NV_INFO(dev, "Unhandled PGRAPH_INTR - 0x%08x\n", |
630 | nv_wr32(dev, NV03_PGRAPH_INTR, status); | 661 | status); |
631 | } | 662 | nv_wr32(dev, NV03_PGRAPH_INTR, status); |
663 | } | ||
632 | 664 | ||
633 | { | 665 | { |
634 | const int isb = (1 << 16) | (1 << 0); | 666 | const int isb = (1 << 16) | (1 << 0); |
635 | 667 | ||
636 | if ((nv_rd32(dev, 0x400500) & isb) != isb) | 668 | if ((nv_rd32(dev, 0x400500) & isb) != isb) |
637 | nv_wr32(dev, 0x400500, nv_rd32(dev, 0x400500) | isb); | 669 | nv_wr32(dev, 0x400500, |
638 | nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) & ~(1 << 31)); | 670 | nv_rd32(dev, 0x400500) | isb); |
671 | } | ||
639 | } | 672 | } |
640 | 673 | ||
641 | nv_wr32(dev, NV03_PMC_INTR_0, NV_PMC_INTR_0_PGRAPH_PENDING); | 674 | nv_wr32(dev, NV03_PMC_INTR_0, NV_PMC_INTR_0_PGRAPH_PENDING); |
675 | nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) & ~(1 << 31)); | ||
642 | } | 676 | } |
643 | 677 | ||
644 | static void | 678 | static void |
diff --git a/drivers/gpu/drm/nouveau/nouveau_mem.c b/drivers/gpu/drm/nouveau/nouveau_mem.c index fb9bdd6edf1f..8f3a12f614ed 100644 --- a/drivers/gpu/drm/nouveau/nouveau_mem.c +++ b/drivers/gpu/drm/nouveau/nouveau_mem.c | |||
@@ -383,9 +383,8 @@ void nouveau_mem_close(struct drm_device *dev) | |||
383 | { | 383 | { |
384 | struct drm_nouveau_private *dev_priv = dev->dev_private; | 384 | struct drm_nouveau_private *dev_priv = dev->dev_private; |
385 | 385 | ||
386 | if (dev_priv->ttm.bdev.man[TTM_PL_PRIV0].has_type) | 386 | nouveau_bo_unpin(dev_priv->vga_ram); |
387 | ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_PRIV0); | 387 | nouveau_bo_ref(NULL, &dev_priv->vga_ram); |
388 | ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM); | ||
389 | 388 | ||
390 | ttm_bo_device_release(&dev_priv->ttm.bdev); | 389 | ttm_bo_device_release(&dev_priv->ttm.bdev); |
391 | 390 | ||
@@ -622,6 +621,15 @@ nouveau_mem_init(struct drm_device *dev) | |||
622 | return ret; | 621 | return ret; |
623 | } | 622 | } |
624 | 623 | ||
624 | ret = nouveau_bo_new(dev, NULL, 256*1024, 0, TTM_PL_FLAG_VRAM, | ||
625 | 0, 0, true, true, &dev_priv->vga_ram); | ||
626 | if (ret == 0) | ||
627 | ret = nouveau_bo_pin(dev_priv->vga_ram, TTM_PL_FLAG_VRAM); | ||
628 | if (ret) { | ||
629 | NV_WARN(dev, "failed to reserve VGA memory\n"); | ||
630 | nouveau_bo_ref(NULL, &dev_priv->vga_ram); | ||
631 | } | ||
632 | |||
625 | /* GART */ | 633 | /* GART */ |
626 | #if !defined(__powerpc__) && !defined(__ia64__) | 634 | #if !defined(__powerpc__) && !defined(__ia64__) |
627 | if (drm_device_is_agp(dev) && dev->agp) { | 635 | if (drm_device_is_agp(dev) && dev->agp) { |
@@ -653,6 +661,7 @@ nouveau_mem_init(struct drm_device *dev) | |||
653 | dev_priv->fb_mtrr = drm_mtrr_add(drm_get_resource_start(dev, 1), | 661 | dev_priv->fb_mtrr = drm_mtrr_add(drm_get_resource_start(dev, 1), |
654 | drm_get_resource_len(dev, 1), | 662 | drm_get_resource_len(dev, 1), |
655 | DRM_MTRR_WC); | 663 | DRM_MTRR_WC); |
664 | |||
656 | return 0; | 665 | return 0; |
657 | } | 666 | } |
658 | 667 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_notifier.c b/drivers/gpu/drm/nouveau/nouveau_notifier.c index 6c66a34b6345..d99dc087f9b1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_notifier.c +++ b/drivers/gpu/drm/nouveau/nouveau_notifier.c | |||
@@ -34,15 +34,20 @@ nouveau_notifier_init_channel(struct nouveau_channel *chan) | |||
34 | { | 34 | { |
35 | struct drm_device *dev = chan->dev; | 35 | struct drm_device *dev = chan->dev; |
36 | struct nouveau_bo *ntfy = NULL; | 36 | struct nouveau_bo *ntfy = NULL; |
37 | uint32_t flags; | ||
37 | int ret; | 38 | int ret; |
38 | 39 | ||
39 | ret = nouveau_gem_new(dev, NULL, PAGE_SIZE, 0, nouveau_vram_notify ? | 40 | if (nouveau_vram_notify) |
40 | TTM_PL_FLAG_VRAM : TTM_PL_FLAG_TT, | 41 | flags = TTM_PL_FLAG_VRAM; |
42 | else | ||
43 | flags = TTM_PL_FLAG_TT; | ||
44 | |||
45 | ret = nouveau_gem_new(dev, NULL, PAGE_SIZE, 0, flags, | ||
41 | 0, 0x0000, false, true, &ntfy); | 46 | 0, 0x0000, false, true, &ntfy); |
42 | if (ret) | 47 | if (ret) |
43 | return ret; | 48 | return ret; |
44 | 49 | ||
45 | ret = nouveau_bo_pin(ntfy, TTM_PL_FLAG_VRAM); | 50 | ret = nouveau_bo_pin(ntfy, flags); |
46 | if (ret) | 51 | if (ret) |
47 | goto out_err; | 52 | goto out_err; |
48 | 53 | ||
@@ -128,6 +133,8 @@ nouveau_notifier_alloc(struct nouveau_channel *chan, uint32_t handle, | |||
128 | target = NV_DMA_TARGET_PCI; | 133 | target = NV_DMA_TARGET_PCI; |
129 | } else { | 134 | } else { |
130 | target = NV_DMA_TARGET_AGP; | 135 | target = NV_DMA_TARGET_AGP; |
136 | if (dev_priv->card_type >= NV_50) | ||
137 | offset += dev_priv->vm_gart_base; | ||
131 | } | 138 | } |
132 | } else { | 139 | } else { |
133 | NV_ERROR(dev, "Bad DMA target, mem_type %d!\n", | 140 | NV_ERROR(dev, "Bad DMA target, mem_type %d!\n", |
diff --git a/drivers/gpu/drm/nouveau/nouveau_object.c b/drivers/gpu/drm/nouveau/nouveau_object.c index 6c2cf81716df..e7c100ba63a1 100644 --- a/drivers/gpu/drm/nouveau/nouveau_object.c +++ b/drivers/gpu/drm/nouveau/nouveau_object.c | |||
@@ -885,11 +885,12 @@ int | |||
885 | nouveau_gpuobj_sw_new(struct nouveau_channel *chan, int class, | 885 | nouveau_gpuobj_sw_new(struct nouveau_channel *chan, int class, |
886 | struct nouveau_gpuobj **gpuobj_ret) | 886 | struct nouveau_gpuobj **gpuobj_ret) |
887 | { | 887 | { |
888 | struct drm_nouveau_private *dev_priv = chan->dev->dev_private; | 888 | struct drm_nouveau_private *dev_priv; |
889 | struct nouveau_gpuobj *gpuobj; | 889 | struct nouveau_gpuobj *gpuobj; |
890 | 890 | ||
891 | if (!chan || !gpuobj_ret || *gpuobj_ret != NULL) | 891 | if (!chan || !gpuobj_ret || *gpuobj_ret != NULL) |
892 | return -EINVAL; | 892 | return -EINVAL; |
893 | dev_priv = chan->dev->dev_private; | ||
893 | 894 | ||
894 | gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL); | 895 | gpuobj = kzalloc(sizeof(*gpuobj), GFP_KERNEL); |
895 | if (!gpuobj) | 896 | if (!gpuobj) |
diff --git a/drivers/gpu/drm/nouveau/nouveau_reg.h b/drivers/gpu/drm/nouveau/nouveau_reg.h index 251f1b3b38b9..aa9b310e41be 100644 --- a/drivers/gpu/drm/nouveau/nouveau_reg.h +++ b/drivers/gpu/drm/nouveau/nouveau_reg.h | |||
@@ -99,6 +99,7 @@ | |||
99 | * the card will hang early on in the X init process. | 99 | * the card will hang early on in the X init process. |
100 | */ | 100 | */ |
101 | # define NV_PMC_ENABLE_UNK13 (1<<13) | 101 | # define NV_PMC_ENABLE_UNK13 (1<<13) |
102 | #define NV40_PMC_GRAPH_UNITS 0x00001540 | ||
102 | #define NV40_PMC_BACKLIGHT 0x000015f0 | 103 | #define NV40_PMC_BACKLIGHT 0x000015f0 |
103 | # define NV40_PMC_BACKLIGHT_MASK 0x001f0000 | 104 | # define NV40_PMC_BACKLIGHT_MASK 0x001f0000 |
104 | #define NV40_PMC_1700 0x00001700 | 105 | #define NV40_PMC_1700 0x00001700 |
diff --git a/drivers/gpu/drm/nouveau/nouveau_sgdma.c b/drivers/gpu/drm/nouveau/nouveau_sgdma.c index 4c7f1e403e80..ed1590577b6c 100644 --- a/drivers/gpu/drm/nouveau/nouveau_sgdma.c +++ b/drivers/gpu/drm/nouveau/nouveau_sgdma.c | |||
@@ -54,11 +54,12 @@ static void | |||
54 | nouveau_sgdma_clear(struct ttm_backend *be) | 54 | nouveau_sgdma_clear(struct ttm_backend *be) |
55 | { | 55 | { |
56 | struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be; | 56 | struct nouveau_sgdma_be *nvbe = (struct nouveau_sgdma_be *)be; |
57 | struct drm_device *dev = nvbe->dev; | 57 | struct drm_device *dev; |
58 | |||
59 | NV_DEBUG(nvbe->dev, "\n"); | ||
60 | 58 | ||
61 | if (nvbe && nvbe->pages) { | 59 | if (nvbe && nvbe->pages) { |
60 | dev = nvbe->dev; | ||
61 | NV_DEBUG(dev, "\n"); | ||
62 | |||
62 | if (nvbe->bound) | 63 | if (nvbe->bound) |
63 | be->func->unbind(be); | 64 | be->func->unbind(be); |
64 | 65 | ||
diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index 09b9a46dfc0e..a4851af5b05e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c +++ b/drivers/gpu/drm/nouveau/nouveau_state.c | |||
@@ -310,6 +310,14 @@ static int nouveau_init_engine_ptrs(struct drm_device *dev) | |||
310 | static unsigned int | 310 | static unsigned int |
311 | nouveau_vga_set_decode(void *priv, bool state) | 311 | nouveau_vga_set_decode(void *priv, bool state) |
312 | { | 312 | { |
313 | struct drm_device *dev = priv; | ||
314 | struct drm_nouveau_private *dev_priv = dev->dev_private; | ||
315 | |||
316 | if (dev_priv->chipset >= 0x40) | ||
317 | nv_wr32(dev, 0x88054, state); | ||
318 | else | ||
319 | nv_wr32(dev, 0x1854, state); | ||
320 | |||
313 | if (state) | 321 | if (state) |
314 | return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | | 322 | return VGA_RSRC_LEGACY_IO | VGA_RSRC_LEGACY_MEM | |
315 | VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; | 323 | VGA_RSRC_NORMAL_IO | VGA_RSRC_NORMAL_MEM; |
@@ -427,15 +435,19 @@ nouveau_card_init(struct drm_device *dev) | |||
427 | if (ret) | 435 | if (ret) |
428 | goto out_timer; | 436 | goto out_timer; |
429 | 437 | ||
430 | /* PGRAPH */ | 438 | if (nouveau_noaccel) |
431 | ret = engine->graph.init(dev); | 439 | engine->graph.accel_blocked = true; |
432 | if (ret) | 440 | else { |
433 | goto out_fb; | 441 | /* PGRAPH */ |
442 | ret = engine->graph.init(dev); | ||
443 | if (ret) | ||
444 | goto out_fb; | ||
434 | 445 | ||
435 | /* PFIFO */ | 446 | /* PFIFO */ |
436 | ret = engine->fifo.init(dev); | 447 | ret = engine->fifo.init(dev); |
437 | if (ret) | 448 | if (ret) |
438 | goto out_graph; | 449 | goto out_graph; |
450 | } | ||
439 | 451 | ||
440 | /* this call irq_preinstall, register irq handler and | 452 | /* this call irq_preinstall, register irq handler and |
441 | * call irq_postinstall | 453 | * call irq_postinstall |
@@ -479,9 +491,11 @@ nouveau_card_init(struct drm_device *dev) | |||
479 | out_irq: | 491 | out_irq: |
480 | drm_irq_uninstall(dev); | 492 | drm_irq_uninstall(dev); |
481 | out_fifo: | 493 | out_fifo: |
482 | engine->fifo.takedown(dev); | 494 | if (!nouveau_noaccel) |
495 | engine->fifo.takedown(dev); | ||
483 | out_graph: | 496 | out_graph: |
484 | engine->graph.takedown(dev); | 497 | if (!nouveau_noaccel) |
498 | engine->graph.takedown(dev); | ||
485 | out_fb: | 499 | out_fb: |
486 | engine->fb.takedown(dev); | 500 | engine->fb.takedown(dev); |
487 | out_timer: | 501 | out_timer: |
@@ -518,13 +532,16 @@ static void nouveau_card_takedown(struct drm_device *dev) | |||
518 | dev_priv->channel = NULL; | 532 | dev_priv->channel = NULL; |
519 | } | 533 | } |
520 | 534 | ||
521 | engine->fifo.takedown(dev); | 535 | if (!nouveau_noaccel) { |
522 | engine->graph.takedown(dev); | 536 | engine->fifo.takedown(dev); |
537 | engine->graph.takedown(dev); | ||
538 | } | ||
523 | engine->fb.takedown(dev); | 539 | engine->fb.takedown(dev); |
524 | engine->timer.takedown(dev); | 540 | engine->timer.takedown(dev); |
525 | engine->mc.takedown(dev); | 541 | engine->mc.takedown(dev); |
526 | 542 | ||
527 | mutex_lock(&dev->struct_mutex); | 543 | mutex_lock(&dev->struct_mutex); |
544 | ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_VRAM); | ||
528 | ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT); | 545 | ttm_bo_clean_mm(&dev_priv->ttm.bdev, TTM_PL_TT); |
529 | mutex_unlock(&dev->struct_mutex); | 546 | mutex_unlock(&dev->struct_mutex); |
530 | nouveau_sgdma_takedown(dev); | 547 | nouveau_sgdma_takedown(dev); |
@@ -816,6 +833,15 @@ int nouveau_ioctl_getparam(struct drm_device *dev, void *data, | |||
816 | case NOUVEAU_GETPARAM_VM_VRAM_BASE: | 833 | case NOUVEAU_GETPARAM_VM_VRAM_BASE: |
817 | getparam->value = dev_priv->vm_vram_base; | 834 | getparam->value = dev_priv->vm_vram_base; |
818 | break; | 835 | break; |
836 | case NOUVEAU_GETPARAM_GRAPH_UNITS: | ||
837 | /* NV40 and NV50 versions are quite different, but register | ||
838 | * address is the same. User is supposed to know the card | ||
839 | * family anyway... */ | ||
840 | if (dev_priv->chipset >= 0x40) { | ||
841 | getparam->value = nv_rd32(dev, NV40_PMC_GRAPH_UNITS); | ||
842 | break; | ||
843 | } | ||
844 | /* FALLTHRU */ | ||
819 | default: | 845 | default: |
820 | NV_ERROR(dev, "unknown parameter %lld\n", getparam->param); | 846 | NV_ERROR(dev, "unknown parameter %lld\n", getparam->param); |
821 | return -EINVAL; | 847 | return -EINVAL; |
diff --git a/drivers/gpu/drm/nouveau/nv04_fbcon.c b/drivers/gpu/drm/nouveau/nv04_fbcon.c index d910873c1368..fd01caabd5c3 100644 --- a/drivers/gpu/drm/nouveau/nv04_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv04_fbcon.c | |||
@@ -27,7 +27,7 @@ | |||
27 | #include "nouveau_dma.h" | 27 | #include "nouveau_dma.h" |
28 | #include "nouveau_fbcon.h" | 28 | #include "nouveau_fbcon.h" |
29 | 29 | ||
30 | static void | 30 | void |
31 | nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | 31 | nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) |
32 | { | 32 | { |
33 | struct nouveau_fbcon_par *par = info->par; | 33 | struct nouveau_fbcon_par *par = info->par; |
@@ -54,7 +54,7 @@ nv04_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | |||
54 | FIRE_RING(chan); | 54 | FIRE_RING(chan); |
55 | } | 55 | } |
56 | 56 | ||
57 | static void | 57 | void |
58 | nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | 58 | nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) |
59 | { | 59 | { |
60 | struct nouveau_fbcon_par *par = info->par; | 60 | struct nouveau_fbcon_par *par = info->par; |
@@ -88,7 +88,7 @@ nv04_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
88 | FIRE_RING(chan); | 88 | FIRE_RING(chan); |
89 | } | 89 | } |
90 | 90 | ||
91 | static void | 91 | void |
92 | nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | 92 | nv04_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) |
93 | { | 93 | { |
94 | struct nouveau_fbcon_par *par = info->par; | 94 | struct nouveau_fbcon_par *par = info->par; |
@@ -307,9 +307,6 @@ nv04_fbcon_accel_init(struct fb_info *info) | |||
307 | 307 | ||
308 | FIRE_RING(chan); | 308 | FIRE_RING(chan); |
309 | 309 | ||
310 | info->fbops->fb_fillrect = nv04_fbcon_fillrect; | ||
311 | info->fbops->fb_copyarea = nv04_fbcon_copyarea; | ||
312 | info->fbops->fb_imageblit = nv04_fbcon_imageblit; | ||
313 | return 0; | 310 | return 0; |
314 | } | 311 | } |
315 | 312 | ||
diff --git a/drivers/gpu/drm/nouveau/nv04_instmem.c b/drivers/gpu/drm/nouveau/nv04_instmem.c index a20c206625a2..a3b9563a6f60 100644 --- a/drivers/gpu/drm/nouveau/nv04_instmem.c +++ b/drivers/gpu/drm/nouveau/nv04_instmem.c | |||
@@ -30,7 +30,7 @@ nv04_instmem_determine_amount(struct drm_device *dev) | |||
30 | * of vram. For now, only reserve a small piece until we know | 30 | * of vram. For now, only reserve a small piece until we know |
31 | * more about what each chipset requires. | 31 | * more about what each chipset requires. |
32 | */ | 32 | */ |
33 | switch (dev_priv->chipset & 0xf0) { | 33 | switch (dev_priv->chipset) { |
34 | case 0x40: | 34 | case 0x40: |
35 | case 0x47: | 35 | case 0x47: |
36 | case 0x49: | 36 | case 0x49: |
diff --git a/drivers/gpu/drm/nouveau/nv50_crtc.c b/drivers/gpu/drm/nouveau/nv50_crtc.c index 118d3285fd8c..d1a651e3400c 100644 --- a/drivers/gpu/drm/nouveau/nv50_crtc.c +++ b/drivers/gpu/drm/nouveau/nv50_crtc.c | |||
@@ -298,14 +298,17 @@ nv50_crtc_set_clock(struct drm_device *dev, int head, int pclk) | |||
298 | static void | 298 | static void |
299 | nv50_crtc_destroy(struct drm_crtc *crtc) | 299 | nv50_crtc_destroy(struct drm_crtc *crtc) |
300 | { | 300 | { |
301 | struct drm_device *dev = crtc->dev; | 301 | struct drm_device *dev; |
302 | struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); | 302 | struct nouveau_crtc *nv_crtc; |
303 | |||
304 | NV_DEBUG_KMS(dev, "\n"); | ||
305 | 303 | ||
306 | if (!crtc) | 304 | if (!crtc) |
307 | return; | 305 | return; |
308 | 306 | ||
307 | dev = crtc->dev; | ||
308 | nv_crtc = nouveau_crtc(crtc); | ||
309 | |||
310 | NV_DEBUG_KMS(dev, "\n"); | ||
311 | |||
309 | drm_crtc_cleanup(&nv_crtc->base); | 312 | drm_crtc_cleanup(&nv_crtc->base); |
310 | 313 | ||
311 | nv50_cursor_fini(nv_crtc); | 314 | nv50_cursor_fini(nv_crtc); |
@@ -432,6 +435,7 @@ nv50_crtc_prepare(struct drm_crtc *crtc) | |||
432 | struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); | 435 | struct nouveau_crtc *nv_crtc = nouveau_crtc(crtc); |
433 | struct drm_device *dev = crtc->dev; | 436 | struct drm_device *dev = crtc->dev; |
434 | struct drm_encoder *encoder; | 437 | struct drm_encoder *encoder; |
438 | uint32_t dac = 0, sor = 0; | ||
435 | 439 | ||
436 | NV_DEBUG_KMS(dev, "index %d\n", nv_crtc->index); | 440 | NV_DEBUG_KMS(dev, "index %d\n", nv_crtc->index); |
437 | 441 | ||
@@ -439,9 +443,28 @@ nv50_crtc_prepare(struct drm_crtc *crtc) | |||
439 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 443 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
440 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); | 444 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); |
441 | 445 | ||
442 | if (drm_helper_encoder_in_use(encoder)) | 446 | if (!drm_helper_encoder_in_use(encoder)) |
443 | continue; | 447 | continue; |
444 | 448 | ||
449 | if (nv_encoder->dcb->type == OUTPUT_ANALOG || | ||
450 | nv_encoder->dcb->type == OUTPUT_TV) | ||
451 | dac |= (1 << nv_encoder->or); | ||
452 | else | ||
453 | sor |= (1 << nv_encoder->or); | ||
454 | } | ||
455 | |||
456 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | ||
457 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); | ||
458 | |||
459 | if (nv_encoder->dcb->type == OUTPUT_ANALOG || | ||
460 | nv_encoder->dcb->type == OUTPUT_TV) { | ||
461 | if (dac & (1 << nv_encoder->or)) | ||
462 | continue; | ||
463 | } else { | ||
464 | if (sor & (1 << nv_encoder->or)) | ||
465 | continue; | ||
466 | } | ||
467 | |||
445 | nv_encoder->disconnect(nv_encoder); | 468 | nv_encoder->disconnect(nv_encoder); |
446 | } | 469 | } |
447 | 470 | ||
diff --git a/drivers/gpu/drm/nouveau/nv50_fbcon.c b/drivers/gpu/drm/nouveau/nv50_fbcon.c index e4f279ee61cf..0f57cdf7ccb2 100644 --- a/drivers/gpu/drm/nouveau/nv50_fbcon.c +++ b/drivers/gpu/drm/nouveau/nv50_fbcon.c | |||
@@ -3,7 +3,7 @@ | |||
3 | #include "nouveau_dma.h" | 3 | #include "nouveau_dma.h" |
4 | #include "nouveau_fbcon.h" | 4 | #include "nouveau_fbcon.h" |
5 | 5 | ||
6 | static void | 6 | void |
7 | nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | 7 | nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) |
8 | { | 8 | { |
9 | struct nouveau_fbcon_par *par = info->par; | 9 | struct nouveau_fbcon_par *par = info->par; |
@@ -46,7 +46,7 @@ nv50_fbcon_fillrect(struct fb_info *info, const struct fb_fillrect *rect) | |||
46 | FIRE_RING(chan); | 46 | FIRE_RING(chan); |
47 | } | 47 | } |
48 | 48 | ||
49 | static void | 49 | void |
50 | nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | 50 | nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) |
51 | { | 51 | { |
52 | struct nouveau_fbcon_par *par = info->par; | 52 | struct nouveau_fbcon_par *par = info->par; |
@@ -81,7 +81,7 @@ nv50_fbcon_copyarea(struct fb_info *info, const struct fb_copyarea *region) | |||
81 | FIRE_RING(chan); | 81 | FIRE_RING(chan); |
82 | } | 82 | } |
83 | 83 | ||
84 | static void | 84 | void |
85 | nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) | 85 | nv50_fbcon_imageblit(struct fb_info *info, const struct fb_image *image) |
86 | { | 86 | { |
87 | struct nouveau_fbcon_par *par = info->par; | 87 | struct nouveau_fbcon_par *par = info->par; |
@@ -262,9 +262,6 @@ nv50_fbcon_accel_init(struct fb_info *info) | |||
262 | OUT_RING(chan, info->fix.smem_start - dev_priv->fb_phys + | 262 | OUT_RING(chan, info->fix.smem_start - dev_priv->fb_phys + |
263 | dev_priv->vm_vram_base); | 263 | dev_priv->vm_vram_base); |
264 | 264 | ||
265 | info->fbops->fb_fillrect = nv50_fbcon_fillrect; | ||
266 | info->fbops->fb_copyarea = nv50_fbcon_copyarea; | ||
267 | info->fbops->fb_imageblit = nv50_fbcon_imageblit; | ||
268 | return 0; | 265 | return 0; |
269 | } | 266 | } |
270 | 267 | ||
diff --git a/drivers/gpu/drm/nouveau/nv50_fifo.c b/drivers/gpu/drm/nouveau/nv50_fifo.c index 39caf167587d..204a79ff10f4 100644 --- a/drivers/gpu/drm/nouveau/nv50_fifo.c +++ b/drivers/gpu/drm/nouveau/nv50_fifo.c | |||
@@ -272,7 +272,7 @@ nv50_fifo_create_context(struct nouveau_channel *chan) | |||
272 | return ret; | 272 | return ret; |
273 | ramfc = chan->ramfc->gpuobj; | 273 | ramfc = chan->ramfc->gpuobj; |
274 | 274 | ||
275 | ret = nouveau_gpuobj_new_ref(dev, chan, NULL, 0, 4096, 256, | 275 | ret = nouveau_gpuobj_new_ref(dev, chan, NULL, 0, 4096, 1024, |
276 | 0, &chan->cache); | 276 | 0, &chan->cache); |
277 | if (ret) | 277 | if (ret) |
278 | return ret; | 278 | return ret; |
@@ -317,17 +317,20 @@ void | |||
317 | nv50_fifo_destroy_context(struct nouveau_channel *chan) | 317 | nv50_fifo_destroy_context(struct nouveau_channel *chan) |
318 | { | 318 | { |
319 | struct drm_device *dev = chan->dev; | 319 | struct drm_device *dev = chan->dev; |
320 | struct nouveau_gpuobj_ref *ramfc = chan->ramfc; | ||
320 | 321 | ||
321 | NV_DEBUG(dev, "ch%d\n", chan->id); | 322 | NV_DEBUG(dev, "ch%d\n", chan->id); |
322 | 323 | ||
323 | nouveau_gpuobj_ref_del(dev, &chan->ramfc); | 324 | /* This will ensure the channel is seen as disabled. */ |
324 | nouveau_gpuobj_ref_del(dev, &chan->cache); | 325 | chan->ramfc = NULL; |
325 | |||
326 | nv50_fifo_channel_disable(dev, chan->id, false); | 326 | nv50_fifo_channel_disable(dev, chan->id, false); |
327 | 327 | ||
328 | /* Dummy channel, also used on ch 127 */ | 328 | /* Dummy channel, also used on ch 127 */ |
329 | if (chan->id == 0) | 329 | if (chan->id == 0) |
330 | nv50_fifo_channel_disable(dev, 127, false); | 330 | nv50_fifo_channel_disable(dev, 127, false); |
331 | |||
332 | nouveau_gpuobj_ref_del(dev, &ramfc); | ||
333 | nouveau_gpuobj_ref_del(dev, &chan->cache); | ||
331 | } | 334 | } |
332 | 335 | ||
333 | int | 336 | int |
diff --git a/drivers/gpu/drm/nouveau/nv50_graph.c b/drivers/gpu/drm/nouveau/nv50_graph.c index ca79f32be44c..6d504801b514 100644 --- a/drivers/gpu/drm/nouveau/nv50_graph.c +++ b/drivers/gpu/drm/nouveau/nv50_graph.c | |||
@@ -84,7 +84,7 @@ nv50_graph_init_regs__nv(struct drm_device *dev) | |||
84 | nv_wr32(dev, 0x400804, 0xc0000000); | 84 | nv_wr32(dev, 0x400804, 0xc0000000); |
85 | nv_wr32(dev, 0x406800, 0xc0000000); | 85 | nv_wr32(dev, 0x406800, 0xc0000000); |
86 | nv_wr32(dev, 0x400c04, 0xc0000000); | 86 | nv_wr32(dev, 0x400c04, 0xc0000000); |
87 | nv_wr32(dev, 0x401804, 0xc0000000); | 87 | nv_wr32(dev, 0x401800, 0xc0000000); |
88 | nv_wr32(dev, 0x405018, 0xc0000000); | 88 | nv_wr32(dev, 0x405018, 0xc0000000); |
89 | nv_wr32(dev, 0x402000, 0xc0000000); | 89 | nv_wr32(dev, 0x402000, 0xc0000000); |
90 | 90 | ||
@@ -165,6 +165,12 @@ nv50_graph_channel(struct drm_device *dev) | |||
165 | uint32_t inst; | 165 | uint32_t inst; |
166 | int i; | 166 | int i; |
167 | 167 | ||
168 | /* Be sure we're not in the middle of a context switch or bad things | ||
169 | * will happen, such as unloading the wrong pgraph context. | ||
170 | */ | ||
171 | if (!nv_wait(0x400300, 0x00000001, 0x00000000)) | ||
172 | NV_ERROR(dev, "Ctxprog is still running\n"); | ||
173 | |||
168 | inst = nv_rd32(dev, NV50_PGRAPH_CTXCTL_CUR); | 174 | inst = nv_rd32(dev, NV50_PGRAPH_CTXCTL_CUR); |
169 | if (!(inst & NV50_PGRAPH_CTXCTL_CUR_LOADED)) | 175 | if (!(inst & NV50_PGRAPH_CTXCTL_CUR_LOADED)) |
170 | return NULL; | 176 | return NULL; |
@@ -275,19 +281,18 @@ nv50_graph_load_context(struct nouveau_channel *chan) | |||
275 | int | 281 | int |
276 | nv50_graph_unload_context(struct drm_device *dev) | 282 | nv50_graph_unload_context(struct drm_device *dev) |
277 | { | 283 | { |
278 | uint32_t inst, fifo = nv_rd32(dev, 0x400500); | 284 | uint32_t inst; |
279 | 285 | ||
280 | inst = nv_rd32(dev, NV50_PGRAPH_CTXCTL_CUR); | 286 | inst = nv_rd32(dev, NV50_PGRAPH_CTXCTL_CUR); |
281 | if (!(inst & NV50_PGRAPH_CTXCTL_CUR_LOADED)) | 287 | if (!(inst & NV50_PGRAPH_CTXCTL_CUR_LOADED)) |
282 | return 0; | 288 | return 0; |
283 | inst &= NV50_PGRAPH_CTXCTL_CUR_INSTANCE; | 289 | inst &= NV50_PGRAPH_CTXCTL_CUR_INSTANCE; |
284 | 290 | ||
285 | nv_wr32(dev, 0x400500, fifo & ~1); | 291 | nouveau_wait_for_idle(dev); |
286 | nv_wr32(dev, 0x400784, inst); | 292 | nv_wr32(dev, 0x400784, inst); |
287 | nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) | 0x20); | 293 | nv_wr32(dev, 0x400824, nv_rd32(dev, 0x400824) | 0x20); |
288 | nv_wr32(dev, 0x400304, nv_rd32(dev, 0x400304) | 0x01); | 294 | nv_wr32(dev, 0x400304, nv_rd32(dev, 0x400304) | 0x01); |
289 | nouveau_wait_for_idle(dev); | 295 | nouveau_wait_for_idle(dev); |
290 | nv_wr32(dev, 0x400500, fifo); | ||
291 | 296 | ||
292 | nv_wr32(dev, NV50_PGRAPH_CTXCTL_CUR, inst); | 297 | nv_wr32(dev, NV50_PGRAPH_CTXCTL_CUR, inst); |
293 | return 0; | 298 | return 0; |
diff --git a/drivers/gpu/drm/nouveau/nv50_sor.c b/drivers/gpu/drm/nouveau/nv50_sor.c index e395c16d30f5..c2fff543b06f 100644 --- a/drivers/gpu/drm/nouveau/nv50_sor.c +++ b/drivers/gpu/drm/nouveau/nv50_sor.c | |||
@@ -90,11 +90,25 @@ nv50_sor_dpms(struct drm_encoder *encoder, int mode) | |||
90 | { | 90 | { |
91 | struct drm_device *dev = encoder->dev; | 91 | struct drm_device *dev = encoder->dev; |
92 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); | 92 | struct nouveau_encoder *nv_encoder = nouveau_encoder(encoder); |
93 | struct drm_encoder *enc; | ||
93 | uint32_t val; | 94 | uint32_t val; |
94 | int or = nv_encoder->or; | 95 | int or = nv_encoder->or; |
95 | 96 | ||
96 | NV_DEBUG_KMS(dev, "or %d mode %d\n", or, mode); | 97 | NV_DEBUG_KMS(dev, "or %d mode %d\n", or, mode); |
97 | 98 | ||
99 | nv_encoder->last_dpms = mode; | ||
100 | list_for_each_entry(enc, &dev->mode_config.encoder_list, head) { | ||
101 | struct nouveau_encoder *nvenc = nouveau_encoder(enc); | ||
102 | |||
103 | if (nvenc == nv_encoder || | ||
104 | nvenc->disconnect != nv50_sor_disconnect || | ||
105 | nvenc->dcb->or != nv_encoder->dcb->or) | ||
106 | continue; | ||
107 | |||
108 | if (nvenc->last_dpms == DRM_MODE_DPMS_ON) | ||
109 | return; | ||
110 | } | ||
111 | |||
98 | /* wait for it to be done */ | 112 | /* wait for it to be done */ |
99 | if (!nv_wait(NV50_PDISPLAY_SOR_DPMS_CTRL(or), | 113 | if (!nv_wait(NV50_PDISPLAY_SOR_DPMS_CTRL(or), |
100 | NV50_PDISPLAY_SOR_DPMS_CTRL_PENDING, 0)) { | 114 | NV50_PDISPLAY_SOR_DPMS_CTRL_PENDING, 0)) { |
diff --git a/drivers/gpu/drm/radeon/Kconfig b/drivers/gpu/drm/radeon/Kconfig index 5982321be4d5..1c02d23f6fcc 100644 --- a/drivers/gpu/drm/radeon/Kconfig +++ b/drivers/gpu/drm/radeon/Kconfig | |||
@@ -1,10 +1,14 @@ | |||
1 | config DRM_RADEON_KMS | 1 | config DRM_RADEON_KMS |
2 | bool "Enable modesetting on radeon by default" | 2 | bool "Enable modesetting on radeon by default - NEW DRIVER" |
3 | depends on DRM_RADEON | 3 | depends on DRM_RADEON |
4 | help | 4 | help |
5 | Choose this option if you want kernel modesetting enabled by default, | 5 | Choose this option if you want kernel modesetting enabled by default. |
6 | and you have a new enough userspace to support this. Running old | 6 | |
7 | userspaces with this enabled will cause pain. | 7 | This is a completely new driver. It's only part of the existing drm |
8 | for compatibility reasons. It requires an entirely different graphics | ||
9 | stack above it and works very differently from the old drm stack. | ||
10 | i.e. don't enable this unless you know what you are doing it may | ||
11 | cause issues or bugs compared to the previous userspace driver stack. | ||
8 | 12 | ||
9 | When kernel modesetting is enabled the IOCTL of radeon/drm | 13 | When kernel modesetting is enabled the IOCTL of radeon/drm |
10 | driver are considered as invalid and an error message is printed | 14 | driver are considered as invalid and an error message is printed |
diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c index 388140a7e651..2a3df5599ab4 100644 --- a/drivers/gpu/drm/radeon/atom.c +++ b/drivers/gpu/drm/radeon/atom.c | |||
@@ -24,6 +24,7 @@ | |||
24 | 24 | ||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/sched.h> | 26 | #include <linux/sched.h> |
27 | #include <asm/unaligned.h> | ||
27 | 28 | ||
28 | #define ATOM_DEBUG | 29 | #define ATOM_DEBUG |
29 | 30 | ||
@@ -212,7 +213,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr, | |||
212 | case ATOM_ARG_PS: | 213 | case ATOM_ARG_PS: |
213 | idx = U8(*ptr); | 214 | idx = U8(*ptr); |
214 | (*ptr)++; | 215 | (*ptr)++; |
215 | val = le32_to_cpu(ctx->ps[idx]); | 216 | /* get_unaligned_le32 avoids unaligned accesses from atombios |
217 | * tables, noticed on a DEC Alpha. */ | ||
218 | val = get_unaligned_le32((u32 *)&ctx->ps[idx]); | ||
216 | if (print) | 219 | if (print) |
217 | DEBUG("PS[0x%02X,0x%04X]", idx, val); | 220 | DEBUG("PS[0x%02X,0x%04X]", idx, val); |
218 | break; | 221 | break; |
@@ -246,6 +249,9 @@ static uint32_t atom_get_src_int(atom_exec_context *ctx, uint8_t attr, | |||
246 | case ATOM_WS_ATTRIBUTES: | 249 | case ATOM_WS_ATTRIBUTES: |
247 | val = gctx->io_attr; | 250 | val = gctx->io_attr; |
248 | break; | 251 | break; |
252 | case ATOM_WS_REGPTR: | ||
253 | val = gctx->reg_block; | ||
254 | break; | ||
249 | default: | 255 | default: |
250 | val = ctx->ws[idx]; | 256 | val = ctx->ws[idx]; |
251 | } | 257 | } |
@@ -385,6 +391,32 @@ static uint32_t atom_get_src(atom_exec_context *ctx, uint8_t attr, int *ptr) | |||
385 | return atom_get_src_int(ctx, attr, ptr, NULL, 1); | 391 | return atom_get_src_int(ctx, attr, ptr, NULL, 1); |
386 | } | 392 | } |
387 | 393 | ||
394 | static uint32_t atom_get_src_direct(atom_exec_context *ctx, uint8_t align, int *ptr) | ||
395 | { | ||
396 | uint32_t val = 0xCDCDCDCD; | ||
397 | |||
398 | switch (align) { | ||
399 | case ATOM_SRC_DWORD: | ||
400 | val = U32(*ptr); | ||
401 | (*ptr) += 4; | ||
402 | break; | ||
403 | case ATOM_SRC_WORD0: | ||
404 | case ATOM_SRC_WORD8: | ||
405 | case ATOM_SRC_WORD16: | ||
406 | val = U16(*ptr); | ||
407 | (*ptr) += 2; | ||
408 | break; | ||
409 | case ATOM_SRC_BYTE0: | ||
410 | case ATOM_SRC_BYTE8: | ||
411 | case ATOM_SRC_BYTE16: | ||
412 | case ATOM_SRC_BYTE24: | ||
413 | val = U8(*ptr); | ||
414 | (*ptr)++; | ||
415 | break; | ||
416 | } | ||
417 | return val; | ||
418 | } | ||
419 | |||
388 | static uint32_t atom_get_dst(atom_exec_context *ctx, int arg, uint8_t attr, | 420 | static uint32_t atom_get_dst(atom_exec_context *ctx, int arg, uint8_t attr, |
389 | int *ptr, uint32_t *saved, int print) | 421 | int *ptr, uint32_t *saved, int print) |
390 | { | 422 | { |
@@ -482,6 +514,9 @@ static void atom_put_dst(atom_exec_context *ctx, int arg, uint8_t attr, | |||
482 | case ATOM_WS_ATTRIBUTES: | 514 | case ATOM_WS_ATTRIBUTES: |
483 | gctx->io_attr = val; | 515 | gctx->io_attr = val; |
484 | break; | 516 | break; |
517 | case ATOM_WS_REGPTR: | ||
518 | gctx->reg_block = val; | ||
519 | break; | ||
485 | default: | 520 | default: |
486 | ctx->ws[idx] = val; | 521 | ctx->ws[idx] = val; |
487 | } | 522 | } |
@@ -677,7 +712,7 @@ static void atom_op_mask(atom_exec_context *ctx, int *ptr, int arg) | |||
677 | SDEBUG(" dst: "); | 712 | SDEBUG(" dst: "); |
678 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | 713 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); |
679 | SDEBUG(" src1: "); | 714 | SDEBUG(" src1: "); |
680 | src1 = atom_get_src(ctx, attr, ptr); | 715 | src1 = atom_get_src_direct(ctx, ((attr >> 3) & 7), ptr); |
681 | SDEBUG(" src2: "); | 716 | SDEBUG(" src2: "); |
682 | src2 = atom_get_src(ctx, attr, ptr); | 717 | src2 = atom_get_src(ctx, attr, ptr); |
683 | dst &= src1; | 718 | dst &= src1; |
@@ -809,6 +844,38 @@ static void atom_op_setregblock(atom_exec_context *ctx, int *ptr, int arg) | |||
809 | SDEBUG(" base: 0x%04X\n", ctx->ctx->reg_block); | 844 | SDEBUG(" base: 0x%04X\n", ctx->ctx->reg_block); |
810 | } | 845 | } |
811 | 846 | ||
847 | static void atom_op_shift_left(atom_exec_context *ctx, int *ptr, int arg) | ||
848 | { | ||
849 | uint8_t attr = U8((*ptr)++), shift; | ||
850 | uint32_t saved, dst; | ||
851 | int dptr = *ptr; | ||
852 | attr &= 0x38; | ||
853 | attr |= atom_def_dst[attr >> 3] << 6; | ||
854 | SDEBUG(" dst: "); | ||
855 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | ||
856 | shift = atom_get_src_direct(ctx, ATOM_SRC_BYTE0, ptr); | ||
857 | SDEBUG(" shift: %d\n", shift); | ||
858 | dst <<= shift; | ||
859 | SDEBUG(" dst: "); | ||
860 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); | ||
861 | } | ||
862 | |||
863 | static void atom_op_shift_right(atom_exec_context *ctx, int *ptr, int arg) | ||
864 | { | ||
865 | uint8_t attr = U8((*ptr)++), shift; | ||
866 | uint32_t saved, dst; | ||
867 | int dptr = *ptr; | ||
868 | attr &= 0x38; | ||
869 | attr |= atom_def_dst[attr >> 3] << 6; | ||
870 | SDEBUG(" dst: "); | ||
871 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | ||
872 | shift = atom_get_src_direct(ctx, ATOM_SRC_BYTE0, ptr); | ||
873 | SDEBUG(" shift: %d\n", shift); | ||
874 | dst >>= shift; | ||
875 | SDEBUG(" dst: "); | ||
876 | atom_put_dst(ctx, arg, attr, &dptr, dst, saved); | ||
877 | } | ||
878 | |||
812 | static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) | 879 | static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) |
813 | { | 880 | { |
814 | uint8_t attr = U8((*ptr)++), shift; | 881 | uint8_t attr = U8((*ptr)++), shift; |
@@ -818,7 +885,7 @@ static void atom_op_shl(atom_exec_context *ctx, int *ptr, int arg) | |||
818 | attr |= atom_def_dst[attr >> 3] << 6; | 885 | attr |= atom_def_dst[attr >> 3] << 6; |
819 | SDEBUG(" dst: "); | 886 | SDEBUG(" dst: "); |
820 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | 887 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); |
821 | shift = U8((*ptr)++); | 888 | shift = atom_get_src(ctx, attr, ptr); |
822 | SDEBUG(" shift: %d\n", shift); | 889 | SDEBUG(" shift: %d\n", shift); |
823 | dst <<= shift; | 890 | dst <<= shift; |
824 | SDEBUG(" dst: "); | 891 | SDEBUG(" dst: "); |
@@ -834,7 +901,7 @@ static void atom_op_shr(atom_exec_context *ctx, int *ptr, int arg) | |||
834 | attr |= atom_def_dst[attr >> 3] << 6; | 901 | attr |= atom_def_dst[attr >> 3] << 6; |
835 | SDEBUG(" dst: "); | 902 | SDEBUG(" dst: "); |
836 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); | 903 | dst = atom_get_dst(ctx, arg, attr, ptr, &saved, 1); |
837 | shift = U8((*ptr)++); | 904 | shift = atom_get_src(ctx, attr, ptr); |
838 | SDEBUG(" shift: %d\n", shift); | 905 | SDEBUG(" shift: %d\n", shift); |
839 | dst >>= shift; | 906 | dst >>= shift; |
840 | SDEBUG(" dst: "); | 907 | SDEBUG(" dst: "); |
@@ -937,18 +1004,18 @@ static struct { | |||
937 | atom_op_or, ATOM_ARG_FB}, { | 1004 | atom_op_or, ATOM_ARG_FB}, { |
938 | atom_op_or, ATOM_ARG_PLL}, { | 1005 | atom_op_or, ATOM_ARG_PLL}, { |
939 | atom_op_or, ATOM_ARG_MC}, { | 1006 | atom_op_or, ATOM_ARG_MC}, { |
940 | atom_op_shl, ATOM_ARG_REG}, { | 1007 | atom_op_shift_left, ATOM_ARG_REG}, { |
941 | atom_op_shl, ATOM_ARG_PS}, { | 1008 | atom_op_shift_left, ATOM_ARG_PS}, { |
942 | atom_op_shl, ATOM_ARG_WS}, { | 1009 | atom_op_shift_left, ATOM_ARG_WS}, { |
943 | atom_op_shl, ATOM_ARG_FB}, { | 1010 | atom_op_shift_left, ATOM_ARG_FB}, { |
944 | atom_op_shl, ATOM_ARG_PLL}, { | 1011 | atom_op_shift_left, ATOM_ARG_PLL}, { |
945 | atom_op_shl, ATOM_ARG_MC}, { | 1012 | atom_op_shift_left, ATOM_ARG_MC}, { |
946 | atom_op_shr, ATOM_ARG_REG}, { | 1013 | atom_op_shift_right, ATOM_ARG_REG}, { |
947 | atom_op_shr, ATOM_ARG_PS}, { | 1014 | atom_op_shift_right, ATOM_ARG_PS}, { |
948 | atom_op_shr, ATOM_ARG_WS}, { | 1015 | atom_op_shift_right, ATOM_ARG_WS}, { |
949 | atom_op_shr, ATOM_ARG_FB}, { | 1016 | atom_op_shift_right, ATOM_ARG_FB}, { |
950 | atom_op_shr, ATOM_ARG_PLL}, { | 1017 | atom_op_shift_right, ATOM_ARG_PLL}, { |
951 | atom_op_shr, ATOM_ARG_MC}, { | 1018 | atom_op_shift_right, ATOM_ARG_MC}, { |
952 | atom_op_mul, ATOM_ARG_REG}, { | 1019 | atom_op_mul, ATOM_ARG_REG}, { |
953 | atom_op_mul, ATOM_ARG_PS}, { | 1020 | atom_op_mul, ATOM_ARG_PS}, { |
954 | atom_op_mul, ATOM_ARG_WS}, { | 1021 | atom_op_mul, ATOM_ARG_WS}, { |
@@ -1058,8 +1125,6 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3 | |||
1058 | 1125 | ||
1059 | SDEBUG(">> execute %04X (len %d, WS %d, PS %d)\n", base, len, ws, ps); | 1126 | SDEBUG(">> execute %04X (len %d, WS %d, PS %d)\n", base, len, ws, ps); |
1060 | 1127 | ||
1061 | /* reset reg block */ | ||
1062 | ctx->reg_block = 0; | ||
1063 | ectx.ctx = ctx; | 1128 | ectx.ctx = ctx; |
1064 | ectx.ps_shift = ps / 4; | 1129 | ectx.ps_shift = ps / 4; |
1065 | ectx.start = base; | 1130 | ectx.start = base; |
@@ -1096,6 +1161,12 @@ static void atom_execute_table_locked(struct atom_context *ctx, int index, uint3 | |||
1096 | void atom_execute_table(struct atom_context *ctx, int index, uint32_t * params) | 1161 | void atom_execute_table(struct atom_context *ctx, int index, uint32_t * params) |
1097 | { | 1162 | { |
1098 | mutex_lock(&ctx->mutex); | 1163 | mutex_lock(&ctx->mutex); |
1164 | /* reset reg block */ | ||
1165 | ctx->reg_block = 0; | ||
1166 | /* reset fb window */ | ||
1167 | ctx->fb_base = 0; | ||
1168 | /* reset io mode */ | ||
1169 | ctx->io_mode = ATOM_IO_MM; | ||
1099 | atom_execute_table_locked(ctx, index, params); | 1170 | atom_execute_table_locked(ctx, index, params); |
1100 | mutex_unlock(&ctx->mutex); | 1171 | mutex_unlock(&ctx->mutex); |
1101 | } | 1172 | } |
diff --git a/drivers/gpu/drm/radeon/atom.h b/drivers/gpu/drm/radeon/atom.h index 47fd943f6d14..bc73781423a1 100644 --- a/drivers/gpu/drm/radeon/atom.h +++ b/drivers/gpu/drm/radeon/atom.h | |||
@@ -91,6 +91,7 @@ | |||
91 | #define ATOM_WS_AND_MASK 0x45 | 91 | #define ATOM_WS_AND_MASK 0x45 |
92 | #define ATOM_WS_FB_WINDOW 0x46 | 92 | #define ATOM_WS_FB_WINDOW 0x46 |
93 | #define ATOM_WS_ATTRIBUTES 0x47 | 93 | #define ATOM_WS_ATTRIBUTES 0x47 |
94 | #define ATOM_WS_REGPTR 0x48 | ||
94 | 95 | ||
95 | #define ATOM_IIO_NOP 0 | 96 | #define ATOM_IIO_NOP 0 |
96 | #define ATOM_IIO_START 1 | 97 | #define ATOM_IIO_START 1 |
diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c index 260fcf59f00c..af464e351fbd 100644 --- a/drivers/gpu/drm/radeon/atombios_crtc.c +++ b/drivers/gpu/drm/radeon/atombios_crtc.c | |||
@@ -307,7 +307,6 @@ atombios_set_crtc_dtd_timing(struct drm_crtc *crtc, | |||
307 | args.susModeMiscInfo.usAccess = cpu_to_le16(misc); | 307 | args.susModeMiscInfo.usAccess = cpu_to_le16(misc); |
308 | args.ucCRTC = radeon_crtc->crtc_id; | 308 | args.ucCRTC = radeon_crtc->crtc_id; |
309 | 309 | ||
310 | printk("executing set crtc dtd timing\n"); | ||
311 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | 310 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); |
312 | } | 311 | } |
313 | 312 | ||
@@ -347,7 +346,6 @@ static void atombios_crtc_set_timing(struct drm_crtc *crtc, | |||
347 | args.susModeMiscInfo.usAccess = cpu_to_le16(misc); | 346 | args.susModeMiscInfo.usAccess = cpu_to_le16(misc); |
348 | args.ucCRTC = radeon_crtc->crtc_id; | 347 | args.ucCRTC = radeon_crtc->crtc_id; |
349 | 348 | ||
350 | printk("executing set crtc timing\n"); | ||
351 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | 349 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); |
352 | } | 350 | } |
353 | 351 | ||
@@ -409,59 +407,57 @@ static void atombios_set_ss(struct drm_crtc *crtc, int enable) | |||
409 | } | 407 | } |
410 | } | 408 | } |
411 | 409 | ||
412 | void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | 410 | union adjust_pixel_clock { |
411 | ADJUST_DISPLAY_PLL_PS_ALLOCATION v1; | ||
412 | }; | ||
413 | |||
414 | static u32 atombios_adjust_pll(struct drm_crtc *crtc, | ||
415 | struct drm_display_mode *mode, | ||
416 | struct radeon_pll *pll) | ||
413 | { | 417 | { |
414 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | ||
415 | struct drm_device *dev = crtc->dev; | 418 | struct drm_device *dev = crtc->dev; |
416 | struct radeon_device *rdev = dev->dev_private; | 419 | struct radeon_device *rdev = dev->dev_private; |
417 | struct drm_encoder *encoder = NULL; | 420 | struct drm_encoder *encoder = NULL; |
418 | struct radeon_encoder *radeon_encoder = NULL; | 421 | struct radeon_encoder *radeon_encoder = NULL; |
419 | uint8_t frev, crev; | 422 | u32 adjusted_clock = mode->clock; |
420 | int index; | ||
421 | SET_PIXEL_CLOCK_PS_ALLOCATION args; | ||
422 | PIXEL_CLOCK_PARAMETERS *spc1_ptr; | ||
423 | PIXEL_CLOCK_PARAMETERS_V2 *spc2_ptr; | ||
424 | PIXEL_CLOCK_PARAMETERS_V3 *spc3_ptr; | ||
425 | uint32_t pll_clock = mode->clock; | ||
426 | uint32_t adjusted_clock; | ||
427 | uint32_t ref_div = 0, fb_div = 0, frac_fb_div = 0, post_div = 0; | ||
428 | struct radeon_pll *pll; | ||
429 | int pll_flags = 0; | ||
430 | 423 | ||
431 | memset(&args, 0, sizeof(args)); | 424 | /* reset the pll flags */ |
425 | pll->flags = 0; | ||
432 | 426 | ||
433 | if (ASIC_IS_AVIVO(rdev)) { | 427 | if (ASIC_IS_AVIVO(rdev)) { |
434 | if ((rdev->family == CHIP_RS600) || | 428 | if ((rdev->family == CHIP_RS600) || |
435 | (rdev->family == CHIP_RS690) || | 429 | (rdev->family == CHIP_RS690) || |
436 | (rdev->family == CHIP_RS740)) | 430 | (rdev->family == CHIP_RS740)) |
437 | pll_flags |= (RADEON_PLL_USE_FRAC_FB_DIV | | 431 | pll->flags |= (RADEON_PLL_USE_FRAC_FB_DIV | |
438 | RADEON_PLL_PREFER_CLOSEST_LOWER); | 432 | RADEON_PLL_PREFER_CLOSEST_LOWER); |
439 | 433 | ||
440 | if (ASIC_IS_DCE32(rdev) && mode->clock > 200000) /* range limits??? */ | 434 | if (ASIC_IS_DCE32(rdev) && mode->clock > 200000) /* range limits??? */ |
441 | pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; | 435 | pll->flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; |
442 | else | 436 | else |
443 | pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; | 437 | pll->flags |= RADEON_PLL_PREFER_LOW_REF_DIV; |
444 | } else { | 438 | } else { |
445 | pll_flags |= RADEON_PLL_LEGACY; | 439 | pll->flags |= RADEON_PLL_LEGACY; |
446 | 440 | ||
447 | if (mode->clock > 200000) /* range limits??? */ | 441 | if (mode->clock > 200000) /* range limits??? */ |
448 | pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; | 442 | pll->flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; |
449 | else | 443 | else |
450 | pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; | 444 | pll->flags |= RADEON_PLL_PREFER_LOW_REF_DIV; |
451 | 445 | ||
452 | } | 446 | } |
453 | 447 | ||
454 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 448 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
455 | if (encoder->crtc == crtc) { | 449 | if (encoder->crtc == crtc) { |
456 | if (!ASIC_IS_AVIVO(rdev)) { | ||
457 | if (encoder->encoder_type != | ||
458 | DRM_MODE_ENCODER_DAC) | ||
459 | pll_flags |= RADEON_PLL_NO_ODD_POST_DIV; | ||
460 | if (encoder->encoder_type == | ||
461 | DRM_MODE_ENCODER_LVDS) | ||
462 | pll_flags |= RADEON_PLL_USE_REF_DIV; | ||
463 | } | ||
464 | radeon_encoder = to_radeon_encoder(encoder); | 450 | radeon_encoder = to_radeon_encoder(encoder); |
451 | if (ASIC_IS_AVIVO(rdev)) { | ||
452 | /* DVO wants 2x pixel clock if the DVO chip is in 12 bit mode */ | ||
453 | if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1) | ||
454 | adjusted_clock = mode->clock * 2; | ||
455 | } else { | ||
456 | if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) | ||
457 | pll->flags |= RADEON_PLL_NO_ODD_POST_DIV; | ||
458 | if (encoder->encoder_type == DRM_MODE_ENCODER_LVDS) | ||
459 | pll->flags |= RADEON_PLL_USE_REF_DIV; | ||
460 | } | ||
465 | break; | 461 | break; |
466 | } | 462 | } |
467 | } | 463 | } |
@@ -471,46 +467,101 @@ void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
471 | * special hw requirements. | 467 | * special hw requirements. |
472 | */ | 468 | */ |
473 | if (ASIC_IS_DCE3(rdev)) { | 469 | if (ASIC_IS_DCE3(rdev)) { |
474 | ADJUST_DISPLAY_PLL_PS_ALLOCATION adjust_pll_args; | 470 | union adjust_pixel_clock args; |
471 | struct radeon_encoder_atom_dig *dig; | ||
472 | u8 frev, crev; | ||
473 | int index; | ||
475 | 474 | ||
476 | if (!encoder) | 475 | if (!radeon_encoder->enc_priv) |
477 | return; | 476 | return adjusted_clock; |
478 | 477 | dig = radeon_encoder->enc_priv; | |
479 | memset(&adjust_pll_args, 0, sizeof(adjust_pll_args)); | ||
480 | adjust_pll_args.usPixelClock = cpu_to_le16(mode->clock / 10); | ||
481 | adjust_pll_args.ucTransmitterID = radeon_encoder->encoder_id; | ||
482 | adjust_pll_args.ucEncodeMode = atombios_get_encoder_mode(encoder); | ||
483 | 478 | ||
484 | index = GetIndexIntoMasterTable(COMMAND, AdjustDisplayPll); | 479 | index = GetIndexIntoMasterTable(COMMAND, AdjustDisplayPll); |
485 | atom_execute_table(rdev->mode_info.atom_context, | 480 | atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, |
486 | index, (uint32_t *)&adjust_pll_args); | 481 | &crev); |
487 | adjusted_clock = le16_to_cpu(adjust_pll_args.usPixelClock) * 10; | 482 | |
488 | } else { | 483 | memset(&args, 0, sizeof(args)); |
489 | /* DVO wants 2x pixel clock if the DVO chip is in 12 bit mode */ | 484 | |
490 | if (ASIC_IS_AVIVO(rdev) && | 485 | switch (frev) { |
491 | (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1)) | 486 | case 1: |
492 | adjusted_clock = mode->clock * 2; | 487 | switch (crev) { |
493 | else | 488 | case 1: |
494 | adjusted_clock = mode->clock; | 489 | case 2: |
490 | args.v1.usPixelClock = cpu_to_le16(mode->clock / 10); | ||
491 | args.v1.ucTransmitterID = radeon_encoder->encoder_id; | ||
492 | args.v1.ucEncodeMode = atombios_get_encoder_mode(encoder); | ||
493 | |||
494 | atom_execute_table(rdev->mode_info.atom_context, | ||
495 | index, (uint32_t *)&args); | ||
496 | adjusted_clock = le16_to_cpu(args.v1.usPixelClock) * 10; | ||
497 | break; | ||
498 | default: | ||
499 | DRM_ERROR("Unknown table version %d %d\n", frev, crev); | ||
500 | return adjusted_clock; | ||
501 | } | ||
502 | break; | ||
503 | default: | ||
504 | DRM_ERROR("Unknown table version %d %d\n", frev, crev); | ||
505 | return adjusted_clock; | ||
506 | } | ||
495 | } | 507 | } |
508 | return adjusted_clock; | ||
509 | } | ||
510 | |||
511 | union set_pixel_clock { | ||
512 | SET_PIXEL_CLOCK_PS_ALLOCATION base; | ||
513 | PIXEL_CLOCK_PARAMETERS v1; | ||
514 | PIXEL_CLOCK_PARAMETERS_V2 v2; | ||
515 | PIXEL_CLOCK_PARAMETERS_V3 v3; | ||
516 | }; | ||
517 | |||
518 | void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | ||
519 | { | ||
520 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | ||
521 | struct drm_device *dev = crtc->dev; | ||
522 | struct radeon_device *rdev = dev->dev_private; | ||
523 | struct drm_encoder *encoder = NULL; | ||
524 | struct radeon_encoder *radeon_encoder = NULL; | ||
525 | u8 frev, crev; | ||
526 | int index; | ||
527 | union set_pixel_clock args; | ||
528 | u32 pll_clock = mode->clock; | ||
529 | u32 ref_div = 0, fb_div = 0, frac_fb_div = 0, post_div = 0; | ||
530 | struct radeon_pll *pll; | ||
531 | u32 adjusted_clock; | ||
532 | |||
533 | memset(&args, 0, sizeof(args)); | ||
534 | |||
535 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | ||
536 | if (encoder->crtc == crtc) { | ||
537 | radeon_encoder = to_radeon_encoder(encoder); | ||
538 | break; | ||
539 | } | ||
540 | } | ||
541 | |||
542 | if (!radeon_encoder) | ||
543 | return; | ||
496 | 544 | ||
497 | if (radeon_crtc->crtc_id == 0) | 545 | if (radeon_crtc->crtc_id == 0) |
498 | pll = &rdev->clock.p1pll; | 546 | pll = &rdev->clock.p1pll; |
499 | else | 547 | else |
500 | pll = &rdev->clock.p2pll; | 548 | pll = &rdev->clock.p2pll; |
501 | 549 | ||
550 | /* adjust pixel clock as needed */ | ||
551 | adjusted_clock = atombios_adjust_pll(crtc, mode, pll); | ||
552 | |||
502 | if (ASIC_IS_AVIVO(rdev)) { | 553 | if (ASIC_IS_AVIVO(rdev)) { |
503 | if (radeon_new_pll) | 554 | if (radeon_new_pll) |
504 | radeon_compute_pll_avivo(pll, adjusted_clock, &pll_clock, | 555 | radeon_compute_pll_avivo(pll, adjusted_clock, &pll_clock, |
505 | &fb_div, &frac_fb_div, | 556 | &fb_div, &frac_fb_div, |
506 | &ref_div, &post_div, pll_flags); | 557 | &ref_div, &post_div); |
507 | else | 558 | else |
508 | radeon_compute_pll(pll, adjusted_clock, &pll_clock, | 559 | radeon_compute_pll(pll, adjusted_clock, &pll_clock, |
509 | &fb_div, &frac_fb_div, | 560 | &fb_div, &frac_fb_div, |
510 | &ref_div, &post_div, pll_flags); | 561 | &ref_div, &post_div); |
511 | } else | 562 | } else |
512 | radeon_compute_pll(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, | 563 | radeon_compute_pll(pll, adjusted_clock, &pll_clock, &fb_div, &frac_fb_div, |
513 | &ref_div, &post_div, pll_flags); | 564 | &ref_div, &post_div); |
514 | 565 | ||
515 | index = GetIndexIntoMasterTable(COMMAND, SetPixelClock); | 566 | index = GetIndexIntoMasterTable(COMMAND, SetPixelClock); |
516 | atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, | 567 | atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, |
@@ -520,45 +571,38 @@ void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
520 | case 1: | 571 | case 1: |
521 | switch (crev) { | 572 | switch (crev) { |
522 | case 1: | 573 | case 1: |
523 | spc1_ptr = (PIXEL_CLOCK_PARAMETERS *) & args.sPCLKInput; | 574 | args.v1.usPixelClock = cpu_to_le16(mode->clock / 10); |
524 | spc1_ptr->usPixelClock = cpu_to_le16(mode->clock / 10); | 575 | args.v1.usRefDiv = cpu_to_le16(ref_div); |
525 | spc1_ptr->usRefDiv = cpu_to_le16(ref_div); | 576 | args.v1.usFbDiv = cpu_to_le16(fb_div); |
526 | spc1_ptr->usFbDiv = cpu_to_le16(fb_div); | 577 | args.v1.ucFracFbDiv = frac_fb_div; |
527 | spc1_ptr->ucFracFbDiv = frac_fb_div; | 578 | args.v1.ucPostDiv = post_div; |
528 | spc1_ptr->ucPostDiv = post_div; | 579 | args.v1.ucPpll = |
529 | spc1_ptr->ucPpll = | ||
530 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; | 580 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; |
531 | spc1_ptr->ucCRTC = radeon_crtc->crtc_id; | 581 | args.v1.ucCRTC = radeon_crtc->crtc_id; |
532 | spc1_ptr->ucRefDivSrc = 1; | 582 | args.v1.ucRefDivSrc = 1; |
533 | break; | 583 | break; |
534 | case 2: | 584 | case 2: |
535 | spc2_ptr = | 585 | args.v2.usPixelClock = cpu_to_le16(mode->clock / 10); |
536 | (PIXEL_CLOCK_PARAMETERS_V2 *) & args.sPCLKInput; | 586 | args.v2.usRefDiv = cpu_to_le16(ref_div); |
537 | spc2_ptr->usPixelClock = cpu_to_le16(mode->clock / 10); | 587 | args.v2.usFbDiv = cpu_to_le16(fb_div); |
538 | spc2_ptr->usRefDiv = cpu_to_le16(ref_div); | 588 | args.v2.ucFracFbDiv = frac_fb_div; |
539 | spc2_ptr->usFbDiv = cpu_to_le16(fb_div); | 589 | args.v2.ucPostDiv = post_div; |
540 | spc2_ptr->ucFracFbDiv = frac_fb_div; | 590 | args.v2.ucPpll = |
541 | spc2_ptr->ucPostDiv = post_div; | ||
542 | spc2_ptr->ucPpll = | ||
543 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; | 591 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; |
544 | spc2_ptr->ucCRTC = radeon_crtc->crtc_id; | 592 | args.v2.ucCRTC = radeon_crtc->crtc_id; |
545 | spc2_ptr->ucRefDivSrc = 1; | 593 | args.v2.ucRefDivSrc = 1; |
546 | break; | 594 | break; |
547 | case 3: | 595 | case 3: |
548 | if (!encoder) | 596 | args.v3.usPixelClock = cpu_to_le16(mode->clock / 10); |
549 | return; | 597 | args.v3.usRefDiv = cpu_to_le16(ref_div); |
550 | spc3_ptr = | 598 | args.v3.usFbDiv = cpu_to_le16(fb_div); |
551 | (PIXEL_CLOCK_PARAMETERS_V3 *) & args.sPCLKInput; | 599 | args.v3.ucFracFbDiv = frac_fb_div; |
552 | spc3_ptr->usPixelClock = cpu_to_le16(mode->clock / 10); | 600 | args.v3.ucPostDiv = post_div; |
553 | spc3_ptr->usRefDiv = cpu_to_le16(ref_div); | 601 | args.v3.ucPpll = |
554 | spc3_ptr->usFbDiv = cpu_to_le16(fb_div); | ||
555 | spc3_ptr->ucFracFbDiv = frac_fb_div; | ||
556 | spc3_ptr->ucPostDiv = post_div; | ||
557 | spc3_ptr->ucPpll = | ||
558 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; | 602 | radeon_crtc->crtc_id ? ATOM_PPLL2 : ATOM_PPLL1; |
559 | spc3_ptr->ucMiscInfo = (radeon_crtc->crtc_id << 2); | 603 | args.v3.ucMiscInfo = (radeon_crtc->crtc_id << 2); |
560 | spc3_ptr->ucTransmitterId = radeon_encoder->encoder_id; | 604 | args.v3.ucTransmitterId = radeon_encoder->encoder_id; |
561 | spc3_ptr->ucEncoderMode = | 605 | args.v3.ucEncoderMode = |
562 | atombios_get_encoder_mode(encoder); | 606 | atombios_get_encoder_mode(encoder); |
563 | break; | 607 | break; |
564 | default: | 608 | default: |
@@ -571,12 +615,11 @@ void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
571 | return; | 615 | return; |
572 | } | 616 | } |
573 | 617 | ||
574 | printk("executing set pll\n"); | ||
575 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | 618 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); |
576 | } | 619 | } |
577 | 620 | ||
578 | int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, | 621 | static int avivo_crtc_set_base(struct drm_crtc *crtc, int x, int y, |
579 | struct drm_framebuffer *old_fb) | 622 | struct drm_framebuffer *old_fb) |
580 | { | 623 | { |
581 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | 624 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); |
582 | struct drm_device *dev = crtc->dev; | 625 | struct drm_device *dev = crtc->dev; |
@@ -706,6 +749,42 @@ int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, | |||
706 | return 0; | 749 | return 0; |
707 | } | 750 | } |
708 | 751 | ||
752 | int atombios_crtc_set_base(struct drm_crtc *crtc, int x, int y, | ||
753 | struct drm_framebuffer *old_fb) | ||
754 | { | ||
755 | struct drm_device *dev = crtc->dev; | ||
756 | struct radeon_device *rdev = dev->dev_private; | ||
757 | |||
758 | if (ASIC_IS_AVIVO(rdev)) | ||
759 | return avivo_crtc_set_base(crtc, x, y, old_fb); | ||
760 | else | ||
761 | return radeon_crtc_set_base(crtc, x, y, old_fb); | ||
762 | } | ||
763 | |||
764 | /* properly set additional regs when using atombios */ | ||
765 | static void radeon_legacy_atom_fixup(struct drm_crtc *crtc) | ||
766 | { | ||
767 | struct drm_device *dev = crtc->dev; | ||
768 | struct radeon_device *rdev = dev->dev_private; | ||
769 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | ||
770 | u32 disp_merge_cntl; | ||
771 | |||
772 | switch (radeon_crtc->crtc_id) { | ||
773 | case 0: | ||
774 | disp_merge_cntl = RREG32(RADEON_DISP_MERGE_CNTL); | ||
775 | disp_merge_cntl &= ~RADEON_DISP_RGB_OFFSET_EN; | ||
776 | WREG32(RADEON_DISP_MERGE_CNTL, disp_merge_cntl); | ||
777 | break; | ||
778 | case 1: | ||
779 | disp_merge_cntl = RREG32(RADEON_DISP2_MERGE_CNTL); | ||
780 | disp_merge_cntl &= ~RADEON_DISP2_RGB_OFFSET_EN; | ||
781 | WREG32(RADEON_DISP2_MERGE_CNTL, disp_merge_cntl); | ||
782 | WREG32(RADEON_FP_H2_SYNC_STRT_WID, RREG32(RADEON_CRTC2_H_SYNC_STRT_WID)); | ||
783 | WREG32(RADEON_FP_V2_SYNC_STRT_WID, RREG32(RADEON_CRTC2_V_SYNC_STRT_WID)); | ||
784 | break; | ||
785 | } | ||
786 | } | ||
787 | |||
709 | int atombios_crtc_mode_set(struct drm_crtc *crtc, | 788 | int atombios_crtc_mode_set(struct drm_crtc *crtc, |
710 | struct drm_display_mode *mode, | 789 | struct drm_display_mode *mode, |
711 | struct drm_display_mode *adjusted_mode, | 790 | struct drm_display_mode *adjusted_mode, |
@@ -727,8 +806,8 @@ int atombios_crtc_mode_set(struct drm_crtc *crtc, | |||
727 | else { | 806 | else { |
728 | if (radeon_crtc->crtc_id == 0) | 807 | if (radeon_crtc->crtc_id == 0) |
729 | atombios_set_crtc_dtd_timing(crtc, adjusted_mode); | 808 | atombios_set_crtc_dtd_timing(crtc, adjusted_mode); |
730 | radeon_crtc_set_base(crtc, x, y, old_fb); | 809 | atombios_crtc_set_base(crtc, x, y, old_fb); |
731 | radeon_legacy_atom_set_surface(crtc); | 810 | radeon_legacy_atom_fixup(crtc); |
732 | } | 811 | } |
733 | atombios_overscan_setup(crtc, mode, adjusted_mode); | 812 | atombios_overscan_setup(crtc, mode, adjusted_mode); |
734 | atombios_scaler_setup(crtc); | 813 | atombios_scaler_setup(crtc); |
@@ -746,8 +825,8 @@ static bool atombios_crtc_mode_fixup(struct drm_crtc *crtc, | |||
746 | 825 | ||
747 | static void atombios_crtc_prepare(struct drm_crtc *crtc) | 826 | static void atombios_crtc_prepare(struct drm_crtc *crtc) |
748 | { | 827 | { |
749 | atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); | ||
750 | atombios_lock_crtc(crtc, 1); | 828 | atombios_lock_crtc(crtc, 1); |
829 | atombios_crtc_dpms(crtc, DRM_MODE_DPMS_OFF); | ||
751 | } | 830 | } |
752 | 831 | ||
753 | static void atombios_crtc_commit(struct drm_crtc *crtc) | 832 | static void atombios_crtc_commit(struct drm_crtc *crtc) |
diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c index 3eb0ca5b3d73..99915a682d59 100644 --- a/drivers/gpu/drm/radeon/atombios_dp.c +++ b/drivers/gpu/drm/radeon/atombios_dp.c | |||
@@ -332,11 +332,13 @@ bool radeon_process_aux_ch(struct radeon_i2c_chan *chan, u8 *req_bytes, | |||
332 | PROCESS_AUX_CHANNEL_TRANSACTION_PS_ALLOCATION args; | 332 | PROCESS_AUX_CHANNEL_TRANSACTION_PS_ALLOCATION args; |
333 | int index = GetIndexIntoMasterTable(COMMAND, ProcessAuxChannelTransaction); | 333 | int index = GetIndexIntoMasterTable(COMMAND, ProcessAuxChannelTransaction); |
334 | unsigned char *base; | 334 | unsigned char *base; |
335 | int retry_count = 0; | ||
335 | 336 | ||
336 | memset(&args, 0, sizeof(args)); | 337 | memset(&args, 0, sizeof(args)); |
337 | 338 | ||
338 | base = (unsigned char *)rdev->mode_info.atom_context->scratch; | 339 | base = (unsigned char *)rdev->mode_info.atom_context->scratch; |
339 | 340 | ||
341 | retry: | ||
340 | memcpy(base, req_bytes, num_bytes); | 342 | memcpy(base, req_bytes, num_bytes); |
341 | 343 | ||
342 | args.lpAuxRequest = 0; | 344 | args.lpAuxRequest = 0; |
@@ -347,10 +349,12 @@ bool radeon_process_aux_ch(struct radeon_i2c_chan *chan, u8 *req_bytes, | |||
347 | 349 | ||
348 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); | 350 | atom_execute_table(rdev->mode_info.atom_context, index, (uint32_t *)&args); |
349 | 351 | ||
350 | if (args.ucReplyStatus) { | 352 | if (args.ucReplyStatus && !args.ucDataOutLen) { |
351 | DRM_DEBUG("failed to get auxch %02x%02x %02x %02x 0x%02x %02x\n", | 353 | if (args.ucReplyStatus == 0x20 && retry_count++ < 10) |
354 | goto retry; | ||
355 | DRM_DEBUG("failed to get auxch %02x%02x %02x %02x 0x%02x %02x after %d retries\n", | ||
352 | req_bytes[1], req_bytes[0], req_bytes[2], req_bytes[3], | 356 | req_bytes[1], req_bytes[0], req_bytes[2], req_bytes[3], |
353 | chan->rec.i2c_id, args.ucReplyStatus); | 357 | chan->rec.i2c_id, args.ucReplyStatus, retry_count); |
354 | return false; | 358 | return false; |
355 | } | 359 | } |
356 | 360 | ||
@@ -468,7 +472,7 @@ void radeon_dp_set_link_config(struct drm_connector *connector, | |||
468 | struct radeon_connector *radeon_connector; | 472 | struct radeon_connector *radeon_connector; |
469 | struct radeon_connector_atom_dig *dig_connector; | 473 | struct radeon_connector_atom_dig *dig_connector; |
470 | 474 | ||
471 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) || | 475 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) && |
472 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) | 476 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) |
473 | return; | 477 | return; |
474 | 478 | ||
@@ -583,7 +587,7 @@ void dp_link_train(struct drm_encoder *encoder, | |||
583 | u8 train_set[4]; | 587 | u8 train_set[4]; |
584 | int i; | 588 | int i; |
585 | 589 | ||
586 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) || | 590 | if ((connector->connector_type != DRM_MODE_CONNECTOR_DisplayPort) && |
587 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) | 591 | (connector->connector_type != DRM_MODE_CONNECTOR_eDP)) |
588 | return; | 592 | return; |
589 | 593 | ||
@@ -596,21 +600,14 @@ void dp_link_train(struct drm_encoder *encoder, | |||
596 | return; | 600 | return; |
597 | dig_connector = radeon_connector->con_priv; | 601 | dig_connector = radeon_connector->con_priv; |
598 | 602 | ||
599 | if (ASIC_IS_DCE32(rdev)) { | 603 | if (dig->dig_encoder) |
600 | if (dig->dig_block) | 604 | enc_id |= ATOM_DP_CONFIG_DIG2_ENCODER; |
601 | enc_id |= ATOM_DP_CONFIG_DIG2_ENCODER; | 605 | else |
602 | else | 606 | enc_id |= ATOM_DP_CONFIG_DIG1_ENCODER; |
603 | enc_id |= ATOM_DP_CONFIG_DIG1_ENCODER; | 607 | if (dig_connector->linkb) |
604 | if (dig_connector->linkb) | 608 | enc_id |= ATOM_DP_CONFIG_LINK_B; |
605 | enc_id |= ATOM_DP_CONFIG_LINK_B; | 609 | else |
606 | else | 610 | enc_id |= ATOM_DP_CONFIG_LINK_A; |
607 | enc_id |= ATOM_DP_CONFIG_LINK_A; | ||
608 | } else { | ||
609 | if (dig_connector->linkb) | ||
610 | enc_id |= ATOM_DP_CONFIG_DIG2_ENCODER | ATOM_DP_CONFIG_LINK_B; | ||
611 | else | ||
612 | enc_id |= ATOM_DP_CONFIG_DIG1_ENCODER | ATOM_DP_CONFIG_LINK_A; | ||
613 | } | ||
614 | 611 | ||
615 | memset(link_configuration, 0, DP_LINK_CONFIGURATION_SIZE); | 612 | memset(link_configuration, 0, DP_LINK_CONFIGURATION_SIZE); |
616 | if (dig_connector->dp_clock == 270000) | 613 | if (dig_connector->dp_clock == 270000) |
diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c index 8760d66e058a..c0d4650cdb79 100644 --- a/drivers/gpu/drm/radeon/r100.c +++ b/drivers/gpu/drm/radeon/r100.c | |||
@@ -354,11 +354,17 @@ u32 r100_get_vblank_counter(struct radeon_device *rdev, int crtc) | |||
354 | return RREG32(RADEON_CRTC2_CRNT_FRAME); | 354 | return RREG32(RADEON_CRTC2_CRNT_FRAME); |
355 | } | 355 | } |
356 | 356 | ||
357 | /* Who ever call radeon_fence_emit should call ring_lock and ask | ||
358 | * for enough space (today caller are ib schedule and buffer move) */ | ||
357 | void r100_fence_ring_emit(struct radeon_device *rdev, | 359 | void r100_fence_ring_emit(struct radeon_device *rdev, |
358 | struct radeon_fence *fence) | 360 | struct radeon_fence *fence) |
359 | { | 361 | { |
360 | /* Who ever call radeon_fence_emit should call ring_lock and ask | 362 | /* We have to make sure that caches are flushed before |
361 | * for enough space (today caller are ib schedule and buffer move) */ | 363 | * CPU might read something from VRAM. */ |
364 | radeon_ring_write(rdev, PACKET0(RADEON_RB3D_DSTCACHE_CTLSTAT, 0)); | ||
365 | radeon_ring_write(rdev, RADEON_RB3D_DC_FLUSH_ALL); | ||
366 | radeon_ring_write(rdev, PACKET0(RADEON_RB3D_ZCACHE_CTLSTAT, 0)); | ||
367 | radeon_ring_write(rdev, RADEON_RB3D_ZC_FLUSH_ALL); | ||
362 | /* Wait until IDLE & CLEAN */ | 368 | /* Wait until IDLE & CLEAN */ |
363 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); | 369 | radeon_ring_write(rdev, PACKET0(0x1720, 0)); |
364 | radeon_ring_write(rdev, (1 << 16) | (1 << 17)); | 370 | radeon_ring_write(rdev, (1 << 16) | (1 << 17)); |
@@ -1504,6 +1510,7 @@ static int r100_packet3_check(struct radeon_cs_parser *p, | |||
1504 | DRM_ERROR("PRIM_WALK must be 3 for IMMD draw\n"); | 1510 | DRM_ERROR("PRIM_WALK must be 3 for IMMD draw\n"); |
1505 | return -EINVAL; | 1511 | return -EINVAL; |
1506 | } | 1512 | } |
1513 | track->vtx_size = r100_get_vtx_size(radeon_get_ib_value(p, idx + 0)); | ||
1507 | track->vap_vf_cntl = radeon_get_ib_value(p, idx + 1); | 1514 | track->vap_vf_cntl = radeon_get_ib_value(p, idx + 1); |
1508 | track->immd_dwords = pkt->count - 1; | 1515 | track->immd_dwords = pkt->count - 1; |
1509 | r = r100_cs_track_check(p->rdev, track); | 1516 | r = r100_cs_track_check(p->rdev, track); |
@@ -3368,7 +3375,6 @@ int r100_suspend(struct radeon_device *rdev) | |||
3368 | 3375 | ||
3369 | void r100_fini(struct radeon_device *rdev) | 3376 | void r100_fini(struct radeon_device *rdev) |
3370 | { | 3377 | { |
3371 | r100_suspend(rdev); | ||
3372 | r100_cp_fini(rdev); | 3378 | r100_cp_fini(rdev); |
3373 | r100_wb_fini(rdev); | 3379 | r100_wb_fini(rdev); |
3374 | r100_ib_fini(rdev); | 3380 | r100_ib_fini(rdev); |
@@ -3399,9 +3405,7 @@ int r100_mc_init(struct radeon_device *rdev) | |||
3399 | if (rdev->flags & RADEON_IS_AGP) { | 3405 | if (rdev->flags & RADEON_IS_AGP) { |
3400 | r = radeon_agp_init(rdev); | 3406 | r = radeon_agp_init(rdev); |
3401 | if (r) { | 3407 | if (r) { |
3402 | printk(KERN_WARNING "[drm] Disabling AGP\n"); | 3408 | radeon_agp_disable(rdev); |
3403 | rdev->flags &= ~RADEON_IS_AGP; | ||
3404 | rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024; | ||
3405 | } else { | 3409 | } else { |
3406 | rdev->mc.gtt_location = rdev->mc.agp_base; | 3410 | rdev->mc.gtt_location = rdev->mc.agp_base; |
3407 | } | 3411 | } |
@@ -3482,13 +3486,12 @@ int r100_init(struct radeon_device *rdev) | |||
3482 | if (r) { | 3486 | if (r) { |
3483 | /* Somethings want wront with the accel init stop accel */ | 3487 | /* Somethings want wront with the accel init stop accel */ |
3484 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 3488 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
3485 | r100_suspend(rdev); | ||
3486 | r100_cp_fini(rdev); | 3489 | r100_cp_fini(rdev); |
3487 | r100_wb_fini(rdev); | 3490 | r100_wb_fini(rdev); |
3488 | r100_ib_fini(rdev); | 3491 | r100_ib_fini(rdev); |
3492 | radeon_irq_kms_fini(rdev); | ||
3489 | if (rdev->flags & RADEON_IS_PCI) | 3493 | if (rdev->flags & RADEON_IS_PCI) |
3490 | r100_pci_gart_fini(rdev); | 3494 | r100_pci_gart_fini(rdev); |
3491 | radeon_irq_kms_fini(rdev); | ||
3492 | rdev->accel_working = false; | 3495 | rdev->accel_working = false; |
3493 | } | 3496 | } |
3494 | return 0; | 3497 | return 0; |
diff --git a/drivers/gpu/drm/radeon/r200.c b/drivers/gpu/drm/radeon/r200.c index 20942127c46b..ff1e0cd608bf 100644 --- a/drivers/gpu/drm/radeon/r200.c +++ b/drivers/gpu/drm/radeon/r200.c | |||
@@ -371,13 +371,16 @@ int r200_packet0_check(struct radeon_cs_parser *p, | |||
371 | case 5: | 371 | case 5: |
372 | case 6: | 372 | case 6: |
373 | case 7: | 373 | case 7: |
374 | /* 1D/2D */ | ||
374 | track->textures[i].tex_coord_type = 0; | 375 | track->textures[i].tex_coord_type = 0; |
375 | break; | 376 | break; |
376 | case 1: | 377 | case 1: |
377 | track->textures[i].tex_coord_type = 1; | 378 | /* CUBE */ |
379 | track->textures[i].tex_coord_type = 2; | ||
378 | break; | 380 | break; |
379 | case 2: | 381 | case 2: |
380 | track->textures[i].tex_coord_type = 2; | 382 | /* 3D */ |
383 | track->textures[i].tex_coord_type = 1; | ||
381 | break; | 384 | break; |
382 | } | 385 | } |
383 | break; | 386 | break; |
diff --git a/drivers/gpu/drm/radeon/r300.c b/drivers/gpu/drm/radeon/r300.c index 0051d11b907c..43b55a030b4d 100644 --- a/drivers/gpu/drm/radeon/r300.c +++ b/drivers/gpu/drm/radeon/r300.c | |||
@@ -506,11 +506,14 @@ void r300_vram_info(struct radeon_device *rdev) | |||
506 | 506 | ||
507 | /* DDR for all card after R300 & IGP */ | 507 | /* DDR for all card after R300 & IGP */ |
508 | rdev->mc.vram_is_ddr = true; | 508 | rdev->mc.vram_is_ddr = true; |
509 | |||
509 | tmp = RREG32(RADEON_MEM_CNTL); | 510 | tmp = RREG32(RADEON_MEM_CNTL); |
510 | if (tmp & R300_MEM_NUM_CHANNELS_MASK) { | 511 | tmp &= R300_MEM_NUM_CHANNELS_MASK; |
511 | rdev->mc.vram_width = 128; | 512 | switch (tmp) { |
512 | } else { | 513 | case 0: rdev->mc.vram_width = 64; break; |
513 | rdev->mc.vram_width = 64; | 514 | case 1: rdev->mc.vram_width = 128; break; |
515 | case 2: rdev->mc.vram_width = 256; break; | ||
516 | default: rdev->mc.vram_width = 128; break; | ||
514 | } | 517 | } |
515 | 518 | ||
516 | r100_vram_init_sizes(rdev); | 519 | r100_vram_init_sizes(rdev); |
@@ -1327,7 +1330,6 @@ int r300_suspend(struct radeon_device *rdev) | |||
1327 | 1330 | ||
1328 | void r300_fini(struct radeon_device *rdev) | 1331 | void r300_fini(struct radeon_device *rdev) |
1329 | { | 1332 | { |
1330 | r300_suspend(rdev); | ||
1331 | r100_cp_fini(rdev); | 1333 | r100_cp_fini(rdev); |
1332 | r100_wb_fini(rdev); | 1334 | r100_wb_fini(rdev); |
1333 | r100_ib_fini(rdev); | 1335 | r100_ib_fini(rdev); |
@@ -1418,15 +1420,15 @@ int r300_init(struct radeon_device *rdev) | |||
1418 | if (r) { | 1420 | if (r) { |
1419 | /* Somethings want wront with the accel init stop accel */ | 1421 | /* Somethings want wront with the accel init stop accel */ |
1420 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 1422 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
1421 | r300_suspend(rdev); | ||
1422 | r100_cp_fini(rdev); | 1423 | r100_cp_fini(rdev); |
1423 | r100_wb_fini(rdev); | 1424 | r100_wb_fini(rdev); |
1424 | r100_ib_fini(rdev); | 1425 | r100_ib_fini(rdev); |
1426 | radeon_irq_kms_fini(rdev); | ||
1425 | if (rdev->flags & RADEON_IS_PCIE) | 1427 | if (rdev->flags & RADEON_IS_PCIE) |
1426 | rv370_pcie_gart_fini(rdev); | 1428 | rv370_pcie_gart_fini(rdev); |
1427 | if (rdev->flags & RADEON_IS_PCI) | 1429 | if (rdev->flags & RADEON_IS_PCI) |
1428 | r100_pci_gart_fini(rdev); | 1430 | r100_pci_gart_fini(rdev); |
1429 | radeon_irq_kms_fini(rdev); | 1431 | radeon_agp_fini(rdev); |
1430 | rdev->accel_working = false; | 1432 | rdev->accel_working = false; |
1431 | } | 1433 | } |
1432 | return 0; | 1434 | return 0; |
diff --git a/drivers/gpu/drm/radeon/r420.c b/drivers/gpu/drm/radeon/r420.c index 053404e71a9d..d9373246c97f 100644 --- a/drivers/gpu/drm/radeon/r420.c +++ b/drivers/gpu/drm/radeon/r420.c | |||
@@ -50,9 +50,7 @@ int r420_mc_init(struct radeon_device *rdev) | |||
50 | if (rdev->flags & RADEON_IS_AGP) { | 50 | if (rdev->flags & RADEON_IS_AGP) { |
51 | r = radeon_agp_init(rdev); | 51 | r = radeon_agp_init(rdev); |
52 | if (r) { | 52 | if (r) { |
53 | printk(KERN_WARNING "[drm] Disabling AGP\n"); | 53 | radeon_agp_disable(rdev); |
54 | rdev->flags &= ~RADEON_IS_AGP; | ||
55 | rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024; | ||
56 | } else { | 54 | } else { |
57 | rdev->mc.gtt_location = rdev->mc.agp_base; | 55 | rdev->mc.gtt_location = rdev->mc.agp_base; |
58 | } | 56 | } |
@@ -391,16 +389,15 @@ int r420_init(struct radeon_device *rdev) | |||
391 | if (r) { | 389 | if (r) { |
392 | /* Somethings want wront with the accel init stop accel */ | 390 | /* Somethings want wront with the accel init stop accel */ |
393 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 391 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
394 | r420_suspend(rdev); | ||
395 | r100_cp_fini(rdev); | 392 | r100_cp_fini(rdev); |
396 | r100_wb_fini(rdev); | 393 | r100_wb_fini(rdev); |
397 | r100_ib_fini(rdev); | 394 | r100_ib_fini(rdev); |
395 | radeon_irq_kms_fini(rdev); | ||
398 | if (rdev->flags & RADEON_IS_PCIE) | 396 | if (rdev->flags & RADEON_IS_PCIE) |
399 | rv370_pcie_gart_fini(rdev); | 397 | rv370_pcie_gart_fini(rdev); |
400 | if (rdev->flags & RADEON_IS_PCI) | 398 | if (rdev->flags & RADEON_IS_PCI) |
401 | r100_pci_gart_fini(rdev); | 399 | r100_pci_gart_fini(rdev); |
402 | radeon_agp_fini(rdev); | 400 | radeon_agp_fini(rdev); |
403 | radeon_irq_kms_fini(rdev); | ||
404 | rdev->accel_working = false; | 401 | rdev->accel_working = false; |
405 | } | 402 | } |
406 | return 0; | 403 | return 0; |
diff --git a/drivers/gpu/drm/radeon/r520.c b/drivers/gpu/drm/radeon/r520.c index 9a189072f2b9..ddf5731eba0d 100644 --- a/drivers/gpu/drm/radeon/r520.c +++ b/drivers/gpu/drm/radeon/r520.c | |||
@@ -294,13 +294,12 @@ int r520_init(struct radeon_device *rdev) | |||
294 | if (r) { | 294 | if (r) { |
295 | /* Somethings want wront with the accel init stop accel */ | 295 | /* Somethings want wront with the accel init stop accel */ |
296 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 296 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
297 | rv515_suspend(rdev); | ||
298 | r100_cp_fini(rdev); | 297 | r100_cp_fini(rdev); |
299 | r100_wb_fini(rdev); | 298 | r100_wb_fini(rdev); |
300 | r100_ib_fini(rdev); | 299 | r100_ib_fini(rdev); |
300 | radeon_irq_kms_fini(rdev); | ||
301 | rv370_pcie_gart_fini(rdev); | 301 | rv370_pcie_gart_fini(rdev); |
302 | radeon_agp_fini(rdev); | 302 | radeon_agp_fini(rdev); |
303 | radeon_irq_kms_fini(rdev); | ||
304 | rdev->accel_working = false; | 303 | rdev->accel_working = false; |
305 | } | 304 | } |
306 | return 0; | 305 | return 0; |
diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c index f5ff3490929f..2ffcf5a03551 100644 --- a/drivers/gpu/drm/radeon/r600.c +++ b/drivers/gpu/drm/radeon/r600.c | |||
@@ -624,7 +624,6 @@ int r600_mc_init(struct radeon_device *rdev) | |||
624 | fixed20_12 a; | 624 | fixed20_12 a; |
625 | u32 tmp; | 625 | u32 tmp; |
626 | int chansize, numchan; | 626 | int chansize, numchan; |
627 | int r; | ||
628 | 627 | ||
629 | /* Get VRAM informations */ | 628 | /* Get VRAM informations */ |
630 | rdev->mc.vram_is_ddr = true; | 629 | rdev->mc.vram_is_ddr = true; |
@@ -667,9 +666,6 @@ int r600_mc_init(struct radeon_device *rdev) | |||
667 | rdev->mc.real_vram_size = rdev->mc.aper_size; | 666 | rdev->mc.real_vram_size = rdev->mc.aper_size; |
668 | 667 | ||
669 | if (rdev->flags & RADEON_IS_AGP) { | 668 | if (rdev->flags & RADEON_IS_AGP) { |
670 | r = radeon_agp_init(rdev); | ||
671 | if (r) | ||
672 | return r; | ||
673 | /* gtt_size is setup by radeon_agp_init */ | 669 | /* gtt_size is setup by radeon_agp_init */ |
674 | rdev->mc.gtt_location = rdev->mc.agp_base; | 670 | rdev->mc.gtt_location = rdev->mc.agp_base; |
675 | tmp = 0xFFFFFFFFUL - rdev->mc.agp_base - rdev->mc.gtt_size; | 671 | tmp = 0xFFFFFFFFUL - rdev->mc.agp_base - rdev->mc.gtt_size; |
@@ -1658,6 +1654,12 @@ void r600_ring_init(struct radeon_device *rdev, unsigned ring_size) | |||
1658 | rdev->cp.align_mask = 16 - 1; | 1654 | rdev->cp.align_mask = 16 - 1; |
1659 | } | 1655 | } |
1660 | 1656 | ||
1657 | void r600_cp_fini(struct radeon_device *rdev) | ||
1658 | { | ||
1659 | r600_cp_stop(rdev); | ||
1660 | radeon_ring_fini(rdev); | ||
1661 | } | ||
1662 | |||
1661 | 1663 | ||
1662 | /* | 1664 | /* |
1663 | * GPU scratch registers helpers function. | 1665 | * GPU scratch registers helpers function. |
@@ -1792,23 +1794,24 @@ void r600_fence_ring_emit(struct radeon_device *rdev, | |||
1792 | radeon_ring_write(rdev, RB_INT_STAT); | 1794 | radeon_ring_write(rdev, RB_INT_STAT); |
1793 | } | 1795 | } |
1794 | 1796 | ||
1795 | int r600_copy_dma(struct radeon_device *rdev, | ||
1796 | uint64_t src_offset, | ||
1797 | uint64_t dst_offset, | ||
1798 | unsigned num_pages, | ||
1799 | struct radeon_fence *fence) | ||
1800 | { | ||
1801 | /* FIXME: implement */ | ||
1802 | return 0; | ||
1803 | } | ||
1804 | |||
1805 | int r600_copy_blit(struct radeon_device *rdev, | 1797 | int r600_copy_blit(struct radeon_device *rdev, |
1806 | uint64_t src_offset, uint64_t dst_offset, | 1798 | uint64_t src_offset, uint64_t dst_offset, |
1807 | unsigned num_pages, struct radeon_fence *fence) | 1799 | unsigned num_pages, struct radeon_fence *fence) |
1808 | { | 1800 | { |
1809 | r600_blit_prepare_copy(rdev, num_pages * RADEON_GPU_PAGE_SIZE); | 1801 | int r; |
1802 | |||
1803 | mutex_lock(&rdev->r600_blit.mutex); | ||
1804 | rdev->r600_blit.vb_ib = NULL; | ||
1805 | r = r600_blit_prepare_copy(rdev, num_pages * RADEON_GPU_PAGE_SIZE); | ||
1806 | if (r) { | ||
1807 | if (rdev->r600_blit.vb_ib) | ||
1808 | radeon_ib_free(rdev, &rdev->r600_blit.vb_ib); | ||
1809 | mutex_unlock(&rdev->r600_blit.mutex); | ||
1810 | return r; | ||
1811 | } | ||
1810 | r600_kms_blit_copy(rdev, src_offset, dst_offset, num_pages * RADEON_GPU_PAGE_SIZE); | 1812 | r600_kms_blit_copy(rdev, src_offset, dst_offset, num_pages * RADEON_GPU_PAGE_SIZE); |
1811 | r600_blit_done_copy(rdev, fence); | 1813 | r600_blit_done_copy(rdev, fence); |
1814 | mutex_unlock(&rdev->r600_blit.mutex); | ||
1812 | return 0; | 1815 | return 0; |
1813 | } | 1816 | } |
1814 | 1817 | ||
@@ -1864,26 +1867,25 @@ int r600_startup(struct radeon_device *rdev) | |||
1864 | return r; | 1867 | return r; |
1865 | } | 1868 | } |
1866 | r600_gpu_init(rdev); | 1869 | r600_gpu_init(rdev); |
1867 | 1870 | r = r600_blit_init(rdev); | |
1868 | if (!rdev->r600_blit.shader_obj) { | 1871 | if (r) { |
1869 | r = r600_blit_init(rdev); | 1872 | r600_blit_fini(rdev); |
1873 | rdev->asic->copy = NULL; | ||
1874 | dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); | ||
1875 | } | ||
1876 | /* pin copy shader into vram */ | ||
1877 | if (rdev->r600_blit.shader_obj) { | ||
1878 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | ||
1879 | if (unlikely(r != 0)) | ||
1880 | return r; | ||
1881 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
1882 | &rdev->r600_blit.shader_gpu_addr); | ||
1883 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
1870 | if (r) { | 1884 | if (r) { |
1871 | DRM_ERROR("radeon: failed blitter (%d).\n", r); | 1885 | dev_err(rdev->dev, "(%d) pin blit object failed\n", r); |
1872 | return r; | 1886 | return r; |
1873 | } | 1887 | } |
1874 | } | 1888 | } |
1875 | |||
1876 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | ||
1877 | if (unlikely(r != 0)) | ||
1878 | return r; | ||
1879 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
1880 | &rdev->r600_blit.shader_gpu_addr); | ||
1881 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
1882 | if (r) { | ||
1883 | dev_err(rdev->dev, "(%d) pin blit object failed\n", r); | ||
1884 | return r; | ||
1885 | } | ||
1886 | |||
1887 | /* Enable IRQ */ | 1889 | /* Enable IRQ */ |
1888 | r = r600_irq_init(rdev); | 1890 | r = r600_irq_init(rdev); |
1889 | if (r) { | 1891 | if (r) { |
@@ -1948,6 +1950,13 @@ int r600_resume(struct radeon_device *rdev) | |||
1948 | DRM_ERROR("radeon: failled testing IB (%d).\n", r); | 1950 | DRM_ERROR("radeon: failled testing IB (%d).\n", r); |
1949 | return r; | 1951 | return r; |
1950 | } | 1952 | } |
1953 | |||
1954 | r = r600_audio_init(rdev); | ||
1955 | if (r) { | ||
1956 | DRM_ERROR("radeon: audio resume failed\n"); | ||
1957 | return r; | ||
1958 | } | ||
1959 | |||
1951 | return r; | 1960 | return r; |
1952 | } | 1961 | } |
1953 | 1962 | ||
@@ -1955,17 +1964,21 @@ int r600_suspend(struct radeon_device *rdev) | |||
1955 | { | 1964 | { |
1956 | int r; | 1965 | int r; |
1957 | 1966 | ||
1967 | r600_audio_fini(rdev); | ||
1958 | /* FIXME: we should wait for ring to be empty */ | 1968 | /* FIXME: we should wait for ring to be empty */ |
1959 | r600_cp_stop(rdev); | 1969 | r600_cp_stop(rdev); |
1960 | rdev->cp.ready = false; | 1970 | rdev->cp.ready = false; |
1971 | r600_irq_suspend(rdev); | ||
1961 | r600_wb_disable(rdev); | 1972 | r600_wb_disable(rdev); |
1962 | r600_pcie_gart_disable(rdev); | 1973 | r600_pcie_gart_disable(rdev); |
1963 | /* unpin shaders bo */ | 1974 | /* unpin shaders bo */ |
1964 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | 1975 | if (rdev->r600_blit.shader_obj) { |
1965 | if (unlikely(r != 0)) | 1976 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); |
1966 | return r; | 1977 | if (!r) { |
1967 | radeon_bo_unpin(rdev->r600_blit.shader_obj); | 1978 | radeon_bo_unpin(rdev->r600_blit.shader_obj); |
1968 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | 1979 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); |
1980 | } | ||
1981 | } | ||
1969 | return 0; | 1982 | return 0; |
1970 | } | 1983 | } |
1971 | 1984 | ||
@@ -2026,6 +2039,11 @@ int r600_init(struct radeon_device *rdev) | |||
2026 | r = radeon_fence_driver_init(rdev); | 2039 | r = radeon_fence_driver_init(rdev); |
2027 | if (r) | 2040 | if (r) |
2028 | return r; | 2041 | return r; |
2042 | if (rdev->flags & RADEON_IS_AGP) { | ||
2043 | r = radeon_agp_init(rdev); | ||
2044 | if (r) | ||
2045 | radeon_agp_disable(rdev); | ||
2046 | } | ||
2029 | r = r600_mc_init(rdev); | 2047 | r = r600_mc_init(rdev); |
2030 | if (r) | 2048 | if (r) |
2031 | return r; | 2049 | return r; |
@@ -2051,22 +2069,25 @@ int r600_init(struct radeon_device *rdev) | |||
2051 | rdev->accel_working = true; | 2069 | rdev->accel_working = true; |
2052 | r = r600_startup(rdev); | 2070 | r = r600_startup(rdev); |
2053 | if (r) { | 2071 | if (r) { |
2054 | r600_suspend(rdev); | 2072 | dev_err(rdev->dev, "disabling GPU acceleration\n"); |
2073 | r600_cp_fini(rdev); | ||
2055 | r600_wb_fini(rdev); | 2074 | r600_wb_fini(rdev); |
2056 | radeon_ring_fini(rdev); | 2075 | r600_irq_fini(rdev); |
2076 | radeon_irq_kms_fini(rdev); | ||
2057 | r600_pcie_gart_fini(rdev); | 2077 | r600_pcie_gart_fini(rdev); |
2058 | rdev->accel_working = false; | 2078 | rdev->accel_working = false; |
2059 | } | 2079 | } |
2060 | if (rdev->accel_working) { | 2080 | if (rdev->accel_working) { |
2061 | r = radeon_ib_pool_init(rdev); | 2081 | r = radeon_ib_pool_init(rdev); |
2062 | if (r) { | 2082 | if (r) { |
2063 | DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r); | 2083 | dev_err(rdev->dev, "IB initialization failed (%d).\n", r); |
2064 | rdev->accel_working = false; | ||
2065 | } | ||
2066 | r = r600_ib_test(rdev); | ||
2067 | if (r) { | ||
2068 | DRM_ERROR("radeon: failed testing IB (%d).\n", r); | ||
2069 | rdev->accel_working = false; | 2084 | rdev->accel_working = false; |
2085 | } else { | ||
2086 | r = r600_ib_test(rdev); | ||
2087 | if (r) { | ||
2088 | dev_err(rdev->dev, "IB test failed (%d).\n", r); | ||
2089 | rdev->accel_working = false; | ||
2090 | } | ||
2070 | } | 2091 | } |
2071 | } | 2092 | } |
2072 | 2093 | ||
@@ -2078,20 +2099,17 @@ int r600_init(struct radeon_device *rdev) | |||
2078 | 2099 | ||
2079 | void r600_fini(struct radeon_device *rdev) | 2100 | void r600_fini(struct radeon_device *rdev) |
2080 | { | 2101 | { |
2081 | /* Suspend operations */ | ||
2082 | r600_suspend(rdev); | ||
2083 | |||
2084 | r600_audio_fini(rdev); | 2102 | r600_audio_fini(rdev); |
2085 | r600_blit_fini(rdev); | 2103 | r600_blit_fini(rdev); |
2104 | r600_cp_fini(rdev); | ||
2105 | r600_wb_fini(rdev); | ||
2086 | r600_irq_fini(rdev); | 2106 | r600_irq_fini(rdev); |
2087 | radeon_irq_kms_fini(rdev); | 2107 | radeon_irq_kms_fini(rdev); |
2088 | radeon_ring_fini(rdev); | ||
2089 | r600_wb_fini(rdev); | ||
2090 | r600_pcie_gart_fini(rdev); | 2108 | r600_pcie_gart_fini(rdev); |
2109 | radeon_agp_fini(rdev); | ||
2091 | radeon_gem_fini(rdev); | 2110 | radeon_gem_fini(rdev); |
2092 | radeon_fence_driver_fini(rdev); | 2111 | radeon_fence_driver_fini(rdev); |
2093 | radeon_clocks_fini(rdev); | 2112 | radeon_clocks_fini(rdev); |
2094 | radeon_agp_fini(rdev); | ||
2095 | radeon_bo_fini(rdev); | 2113 | radeon_bo_fini(rdev); |
2096 | radeon_atombios_fini(rdev); | 2114 | radeon_atombios_fini(rdev); |
2097 | kfree(rdev->bios); | 2115 | kfree(rdev->bios); |
@@ -2197,14 +2215,14 @@ void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size) | |||
2197 | rb_bufsz = drm_order(ring_size / 4); | 2215 | rb_bufsz = drm_order(ring_size / 4); |
2198 | ring_size = (1 << rb_bufsz) * 4; | 2216 | ring_size = (1 << rb_bufsz) * 4; |
2199 | rdev->ih.ring_size = ring_size; | 2217 | rdev->ih.ring_size = ring_size; |
2200 | rdev->ih.align_mask = 4 - 1; | 2218 | rdev->ih.ptr_mask = rdev->ih.ring_size - 1; |
2219 | rdev->ih.rptr = 0; | ||
2201 | } | 2220 | } |
2202 | 2221 | ||
2203 | static int r600_ih_ring_alloc(struct radeon_device *rdev, unsigned ring_size) | 2222 | static int r600_ih_ring_alloc(struct radeon_device *rdev) |
2204 | { | 2223 | { |
2205 | int r; | 2224 | int r; |
2206 | 2225 | ||
2207 | rdev->ih.ring_size = ring_size; | ||
2208 | /* Allocate ring buffer */ | 2226 | /* Allocate ring buffer */ |
2209 | if (rdev->ih.ring_obj == NULL) { | 2227 | if (rdev->ih.ring_obj == NULL) { |
2210 | r = radeon_bo_create(rdev, NULL, rdev->ih.ring_size, | 2228 | r = radeon_bo_create(rdev, NULL, rdev->ih.ring_size, |
@@ -2234,9 +2252,6 @@ static int r600_ih_ring_alloc(struct radeon_device *rdev, unsigned ring_size) | |||
2234 | return r; | 2252 | return r; |
2235 | } | 2253 | } |
2236 | } | 2254 | } |
2237 | rdev->ih.ptr_mask = (rdev->cp.ring_size / 4) - 1; | ||
2238 | rdev->ih.rptr = 0; | ||
2239 | |||
2240 | return 0; | 2255 | return 0; |
2241 | } | 2256 | } |
2242 | 2257 | ||
@@ -2386,7 +2401,7 @@ int r600_irq_init(struct radeon_device *rdev) | |||
2386 | u32 interrupt_cntl, ih_cntl, ih_rb_cntl; | 2401 | u32 interrupt_cntl, ih_cntl, ih_rb_cntl; |
2387 | 2402 | ||
2388 | /* allocate ring */ | 2403 | /* allocate ring */ |
2389 | ret = r600_ih_ring_alloc(rdev, rdev->ih.ring_size); | 2404 | ret = r600_ih_ring_alloc(rdev); |
2390 | if (ret) | 2405 | if (ret) |
2391 | return ret; | 2406 | return ret; |
2392 | 2407 | ||
@@ -2449,10 +2464,15 @@ int r600_irq_init(struct radeon_device *rdev) | |||
2449 | return ret; | 2464 | return ret; |
2450 | } | 2465 | } |
2451 | 2466 | ||
2452 | void r600_irq_fini(struct radeon_device *rdev) | 2467 | void r600_irq_suspend(struct radeon_device *rdev) |
2453 | { | 2468 | { |
2454 | r600_disable_interrupts(rdev); | 2469 | r600_disable_interrupts(rdev); |
2455 | r600_rlc_stop(rdev); | 2470 | r600_rlc_stop(rdev); |
2471 | } | ||
2472 | |||
2473 | void r600_irq_fini(struct radeon_device *rdev) | ||
2474 | { | ||
2475 | r600_irq_suspend(rdev); | ||
2456 | r600_ih_ring_fini(rdev); | 2476 | r600_ih_ring_fini(rdev); |
2457 | } | 2477 | } |
2458 | 2478 | ||
@@ -2467,8 +2487,12 @@ int r600_irq_set(struct radeon_device *rdev) | |||
2467 | return -EINVAL; | 2487 | return -EINVAL; |
2468 | } | 2488 | } |
2469 | /* don't enable anything if the ih is disabled */ | 2489 | /* don't enable anything if the ih is disabled */ |
2470 | if (!rdev->ih.enabled) | 2490 | if (!rdev->ih.enabled) { |
2491 | r600_disable_interrupts(rdev); | ||
2492 | /* force the active interrupt state to all disabled */ | ||
2493 | r600_disable_interrupt_state(rdev); | ||
2471 | return 0; | 2494 | return 0; |
2495 | } | ||
2472 | 2496 | ||
2473 | if (ASIC_IS_DCE3(rdev)) { | 2497 | if (ASIC_IS_DCE3(rdev)) { |
2474 | hpd1 = RREG32(DC_HPD1_INT_CONTROL) & ~DC_HPDx_INT_EN; | 2498 | hpd1 = RREG32(DC_HPD1_INT_CONTROL) & ~DC_HPDx_INT_EN; |
@@ -2638,16 +2662,18 @@ static inline u32 r600_get_ih_wptr(struct radeon_device *rdev) | |||
2638 | wptr = RREG32(IH_RB_WPTR); | 2662 | wptr = RREG32(IH_RB_WPTR); |
2639 | 2663 | ||
2640 | if (wptr & RB_OVERFLOW) { | 2664 | if (wptr & RB_OVERFLOW) { |
2641 | WARN_ON(1); | 2665 | /* When a ring buffer overflow happen start parsing interrupt |
2642 | /* XXX deal with overflow */ | 2666 | * from the last not overwritten vector (wptr + 16). Hopefully |
2643 | DRM_ERROR("IH RB overflow\n"); | 2667 | * this should allow us to catchup. |
2668 | */ | ||
2669 | dev_warn(rdev->dev, "IH ring buffer overflow (0x%08X, %d, %d)\n", | ||
2670 | wptr, rdev->ih.rptr, (wptr + 16) + rdev->ih.ptr_mask); | ||
2671 | rdev->ih.rptr = (wptr + 16) & rdev->ih.ptr_mask; | ||
2644 | tmp = RREG32(IH_RB_CNTL); | 2672 | tmp = RREG32(IH_RB_CNTL); |
2645 | tmp |= IH_WPTR_OVERFLOW_CLEAR; | 2673 | tmp |= IH_WPTR_OVERFLOW_CLEAR; |
2646 | WREG32(IH_RB_CNTL, tmp); | 2674 | WREG32(IH_RB_CNTL, tmp); |
2647 | } | 2675 | } |
2648 | wptr = wptr & WPTR_OFFSET_MASK; | 2676 | return (wptr & rdev->ih.ptr_mask); |
2649 | |||
2650 | return wptr; | ||
2651 | } | 2677 | } |
2652 | 2678 | ||
2653 | /* r600 IV Ring | 2679 | /* r600 IV Ring |
@@ -2683,12 +2709,13 @@ int r600_irq_process(struct radeon_device *rdev) | |||
2683 | u32 wptr = r600_get_ih_wptr(rdev); | 2709 | u32 wptr = r600_get_ih_wptr(rdev); |
2684 | u32 rptr = rdev->ih.rptr; | 2710 | u32 rptr = rdev->ih.rptr; |
2685 | u32 src_id, src_data; | 2711 | u32 src_id, src_data; |
2686 | u32 last_entry = rdev->ih.ring_size - 16; | ||
2687 | u32 ring_index, disp_int, disp_int_cont, disp_int_cont2; | 2712 | u32 ring_index, disp_int, disp_int_cont, disp_int_cont2; |
2688 | unsigned long flags; | 2713 | unsigned long flags; |
2689 | bool queue_hotplug = false; | 2714 | bool queue_hotplug = false; |
2690 | 2715 | ||
2691 | DRM_DEBUG("r600_irq_process start: rptr %d, wptr %d\n", rptr, wptr); | 2716 | DRM_DEBUG("r600_irq_process start: rptr %d, wptr %d\n", rptr, wptr); |
2717 | if (!rdev->ih.enabled) | ||
2718 | return IRQ_NONE; | ||
2692 | 2719 | ||
2693 | spin_lock_irqsave(&rdev->ih.lock, flags); | 2720 | spin_lock_irqsave(&rdev->ih.lock, flags); |
2694 | 2721 | ||
@@ -2817,10 +2844,8 @@ restart_ih: | |||
2817 | } | 2844 | } |
2818 | 2845 | ||
2819 | /* wptr/rptr are in bytes! */ | 2846 | /* wptr/rptr are in bytes! */ |
2820 | if (rptr == last_entry) | 2847 | rptr += 16; |
2821 | rptr = 0; | 2848 | rptr &= rdev->ih.ptr_mask; |
2822 | else | ||
2823 | rptr += 16; | ||
2824 | } | 2849 | } |
2825 | /* make sure wptr hasn't changed while processing */ | 2850 | /* make sure wptr hasn't changed while processing */ |
2826 | wptr = r600_get_ih_wptr(rdev); | 2851 | wptr = r600_get_ih_wptr(rdev); |
@@ -2888,3 +2913,18 @@ int r600_debugfs_mc_info_init(struct radeon_device *rdev) | |||
2888 | return 0; | 2913 | return 0; |
2889 | #endif | 2914 | #endif |
2890 | } | 2915 | } |
2916 | |||
2917 | /** | ||
2918 | * r600_ioctl_wait_idle - flush host path cache on wait idle ioctl | ||
2919 | * rdev: radeon device structure | ||
2920 | * bo: buffer object struct which userspace is waiting for idle | ||
2921 | * | ||
2922 | * Some R6XX/R7XX doesn't seems to take into account HDP flush performed | ||
2923 | * through ring buffer, this leads to corruption in rendering, see | ||
2924 | * http://bugzilla.kernel.org/show_bug.cgi?id=15186 to avoid this we | ||
2925 | * directly perform HDP flush by writing register through MMIO. | ||
2926 | */ | ||
2927 | void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo) | ||
2928 | { | ||
2929 | WREG32(R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL, 0x1); | ||
2930 | } | ||
diff --git a/drivers/gpu/drm/radeon/r600_audio.c b/drivers/gpu/drm/radeon/r600_audio.c index 99e2c3891a7d..0dcb6904c4ff 100644 --- a/drivers/gpu/drm/radeon/r600_audio.c +++ b/drivers/gpu/drm/radeon/r600_audio.c | |||
@@ -35,7 +35,7 @@ | |||
35 | */ | 35 | */ |
36 | static int r600_audio_chipset_supported(struct radeon_device *rdev) | 36 | static int r600_audio_chipset_supported(struct radeon_device *rdev) |
37 | { | 37 | { |
38 | return rdev->family >= CHIP_R600 | 38 | return (rdev->family >= CHIP_R600 && rdev->family < CHIP_RV710) |
39 | || rdev->family == CHIP_RS600 | 39 | || rdev->family == CHIP_RS600 |
40 | || rdev->family == CHIP_RS690 | 40 | || rdev->family == CHIP_RS690 |
41 | || rdev->family == CHIP_RS740; | 41 | || rdev->family == CHIP_RS740; |
@@ -261,7 +261,6 @@ void r600_audio_fini(struct radeon_device *rdev) | |||
261 | if (!r600_audio_chipset_supported(rdev)) | 261 | if (!r600_audio_chipset_supported(rdev)) |
262 | return; | 262 | return; |
263 | 263 | ||
264 | WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x81000000); | ||
265 | |||
266 | del_timer(&rdev->audio_timer); | 264 | del_timer(&rdev->audio_timer); |
265 | WREG32_P(R600_AUDIO_ENABLE, 0x0, ~0x81000000); | ||
267 | } | 266 | } |
diff --git a/drivers/gpu/drm/radeon/r600_blit_kms.c b/drivers/gpu/drm/radeon/r600_blit_kms.c index 8787ea89dc6e..af1c3ca8a4cb 100644 --- a/drivers/gpu/drm/radeon/r600_blit_kms.c +++ b/drivers/gpu/drm/radeon/r600_blit_kms.c | |||
@@ -449,6 +449,7 @@ int r600_blit_init(struct radeon_device *rdev) | |||
449 | u32 packet2s[16]; | 449 | u32 packet2s[16]; |
450 | int num_packet2s = 0; | 450 | int num_packet2s = 0; |
451 | 451 | ||
452 | mutex_init(&rdev->r600_blit.mutex); | ||
452 | rdev->r600_blit.state_offset = 0; | 453 | rdev->r600_blit.state_offset = 0; |
453 | 454 | ||
454 | if (rdev->family >= CHIP_RV770) | 455 | if (rdev->family >= CHIP_RV770) |
@@ -512,14 +513,16 @@ void r600_blit_fini(struct radeon_device *rdev) | |||
512 | { | 513 | { |
513 | int r; | 514 | int r; |
514 | 515 | ||
516 | if (rdev->r600_blit.shader_obj == NULL) | ||
517 | return; | ||
518 | /* If we can't reserve the bo, unref should be enough to destroy | ||
519 | * it when it becomes idle. | ||
520 | */ | ||
515 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | 521 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); |
516 | if (unlikely(r != 0)) { | 522 | if (!r) { |
517 | dev_err(rdev->dev, "(%d) can't finish r600 blit\n", r); | 523 | radeon_bo_unpin(rdev->r600_blit.shader_obj); |
518 | goto out_unref; | 524 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); |
519 | } | 525 | } |
520 | radeon_bo_unpin(rdev->r600_blit.shader_obj); | ||
521 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
522 | out_unref: | ||
523 | radeon_bo_unref(&rdev->r600_blit.shader_obj); | 526 | radeon_bo_unref(&rdev->r600_blit.shader_obj); |
524 | } | 527 | } |
525 | 528 | ||
@@ -555,7 +558,8 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes) | |||
555 | int dwords_per_loop = 76, num_loops; | 558 | int dwords_per_loop = 76, num_loops; |
556 | 559 | ||
557 | r = r600_vb_ib_get(rdev); | 560 | r = r600_vb_ib_get(rdev); |
558 | WARN_ON(r); | 561 | if (r) |
562 | return r; | ||
559 | 563 | ||
560 | /* set_render_target emits 2 extra dwords on rv6xx */ | 564 | /* set_render_target emits 2 extra dwords on rv6xx */ |
561 | if (rdev->family > CHIP_R600 && rdev->family < CHIP_RV770) | 565 | if (rdev->family > CHIP_R600 && rdev->family < CHIP_RV770) |
@@ -581,7 +585,8 @@ int r600_blit_prepare_copy(struct radeon_device *rdev, int size_bytes) | |||
581 | ring_size += 5; /* done copy */ | 585 | ring_size += 5; /* done copy */ |
582 | ring_size += 7; /* fence emit for done copy */ | 586 | ring_size += 7; /* fence emit for done copy */ |
583 | r = radeon_ring_lock(rdev, ring_size); | 587 | r = radeon_ring_lock(rdev, ring_size); |
584 | WARN_ON(r); | 588 | if (r) |
589 | return r; | ||
585 | 590 | ||
586 | set_default_state(rdev); /* 14 */ | 591 | set_default_state(rdev); /* 14 */ |
587 | set_shaders(rdev); /* 26 */ | 592 | set_shaders(rdev); /* 26 */ |
diff --git a/drivers/gpu/drm/radeon/r600_cs.c b/drivers/gpu/drm/radeon/r600_cs.c index 44060b92d9e6..e4c45ec16507 100644 --- a/drivers/gpu/drm/radeon/r600_cs.c +++ b/drivers/gpu/drm/radeon/r600_cs.c | |||
@@ -36,6 +36,10 @@ static int r600_cs_packet_next_reloc_nomm(struct radeon_cs_parser *p, | |||
36 | typedef int (*next_reloc_t)(struct radeon_cs_parser*, struct radeon_cs_reloc**); | 36 | typedef int (*next_reloc_t)(struct radeon_cs_parser*, struct radeon_cs_reloc**); |
37 | static next_reloc_t r600_cs_packet_next_reloc = &r600_cs_packet_next_reloc_mm; | 37 | static next_reloc_t r600_cs_packet_next_reloc = &r600_cs_packet_next_reloc_mm; |
38 | 38 | ||
39 | struct r600_cs_track { | ||
40 | u32 cb_color0_base_last; | ||
41 | }; | ||
42 | |||
39 | /** | 43 | /** |
40 | * r600_cs_packet_parse() - parse cp packet and point ib index to next packet | 44 | * r600_cs_packet_parse() - parse cp packet and point ib index to next packet |
41 | * @parser: parser structure holding parsing context. | 45 | * @parser: parser structure holding parsing context. |
@@ -177,6 +181,28 @@ static int r600_cs_packet_next_reloc_nomm(struct radeon_cs_parser *p, | |||
177 | } | 181 | } |
178 | 182 | ||
179 | /** | 183 | /** |
184 | * r600_cs_packet_next_is_pkt3_nop() - test if next packet is packet3 nop for reloc | ||
185 | * @parser: parser structure holding parsing context. | ||
186 | * | ||
187 | * Check next packet is relocation packet3, do bo validation and compute | ||
188 | * GPU offset using the provided start. | ||
189 | **/ | ||
190 | static inline int r600_cs_packet_next_is_pkt3_nop(struct radeon_cs_parser *p) | ||
191 | { | ||
192 | struct radeon_cs_packet p3reloc; | ||
193 | int r; | ||
194 | |||
195 | r = r600_cs_packet_parse(p, &p3reloc, p->idx); | ||
196 | if (r) { | ||
197 | return 0; | ||
198 | } | ||
199 | if (p3reloc.type != PACKET_TYPE3 || p3reloc.opcode != PACKET3_NOP) { | ||
200 | return 0; | ||
201 | } | ||
202 | return 1; | ||
203 | } | ||
204 | |||
205 | /** | ||
180 | * r600_cs_packet_next_vline() - parse userspace VLINE packet | 206 | * r600_cs_packet_next_vline() - parse userspace VLINE packet |
181 | * @parser: parser structure holding parsing context. | 207 | * @parser: parser structure holding parsing context. |
182 | * | 208 | * |
@@ -337,6 +363,7 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
337 | struct radeon_cs_packet *pkt) | 363 | struct radeon_cs_packet *pkt) |
338 | { | 364 | { |
339 | struct radeon_cs_reloc *reloc; | 365 | struct radeon_cs_reloc *reloc; |
366 | struct r600_cs_track *track; | ||
340 | volatile u32 *ib; | 367 | volatile u32 *ib; |
341 | unsigned idx; | 368 | unsigned idx; |
342 | unsigned i; | 369 | unsigned i; |
@@ -344,6 +371,7 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
344 | int r; | 371 | int r; |
345 | u32 idx_value; | 372 | u32 idx_value; |
346 | 373 | ||
374 | track = (struct r600_cs_track *)p->track; | ||
347 | ib = p->ib->ptr; | 375 | ib = p->ib->ptr; |
348 | idx = pkt->idx + 1; | 376 | idx = pkt->idx + 1; |
349 | idx_value = radeon_get_ib_value(p, idx); | 377 | idx_value = radeon_get_ib_value(p, idx); |
@@ -503,9 +531,60 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
503 | for (i = 0; i < pkt->count; i++) { | 531 | for (i = 0; i < pkt->count; i++) { |
504 | reg = start_reg + (4 * i); | 532 | reg = start_reg + (4 * i); |
505 | switch (reg) { | 533 | switch (reg) { |
534 | /* This register were added late, there is userspace | ||
535 | * which does provide relocation for those but set | ||
536 | * 0 offset. In order to avoid breaking old userspace | ||
537 | * we detect this and set address to point to last | ||
538 | * CB_COLOR0_BASE, note that if userspace doesn't set | ||
539 | * CB_COLOR0_BASE before this register we will report | ||
540 | * error. Old userspace always set CB_COLOR0_BASE | ||
541 | * before any of this. | ||
542 | */ | ||
543 | case R_0280E0_CB_COLOR0_FRAG: | ||
544 | case R_0280E4_CB_COLOR1_FRAG: | ||
545 | case R_0280E8_CB_COLOR2_FRAG: | ||
546 | case R_0280EC_CB_COLOR3_FRAG: | ||
547 | case R_0280F0_CB_COLOR4_FRAG: | ||
548 | case R_0280F4_CB_COLOR5_FRAG: | ||
549 | case R_0280F8_CB_COLOR6_FRAG: | ||
550 | case R_0280FC_CB_COLOR7_FRAG: | ||
551 | case R_0280C0_CB_COLOR0_TILE: | ||
552 | case R_0280C4_CB_COLOR1_TILE: | ||
553 | case R_0280C8_CB_COLOR2_TILE: | ||
554 | case R_0280CC_CB_COLOR3_TILE: | ||
555 | case R_0280D0_CB_COLOR4_TILE: | ||
556 | case R_0280D4_CB_COLOR5_TILE: | ||
557 | case R_0280D8_CB_COLOR6_TILE: | ||
558 | case R_0280DC_CB_COLOR7_TILE: | ||
559 | if (!r600_cs_packet_next_is_pkt3_nop(p)) { | ||
560 | if (!track->cb_color0_base_last) { | ||
561 | dev_err(p->dev, "Broken old userspace ? no cb_color0_base supplied before trying to write 0x%08X\n", reg); | ||
562 | return -EINVAL; | ||
563 | } | ||
564 | ib[idx+1+i] = track->cb_color0_base_last; | ||
565 | printk_once(KERN_WARNING "radeon: You have old & broken userspace " | ||
566 | "please consider updating mesa & xf86-video-ati\n"); | ||
567 | } else { | ||
568 | r = r600_cs_packet_next_reloc(p, &reloc); | ||
569 | if (r) { | ||
570 | dev_err(p->dev, "bad SET_CONTEXT_REG 0x%04X\n", reg); | ||
571 | return -EINVAL; | ||
572 | } | ||
573 | ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff); | ||
574 | } | ||
575 | break; | ||
506 | case DB_DEPTH_BASE: | 576 | case DB_DEPTH_BASE: |
507 | case DB_HTILE_DATA_BASE: | 577 | case DB_HTILE_DATA_BASE: |
508 | case CB_COLOR0_BASE: | 578 | case CB_COLOR0_BASE: |
579 | r = r600_cs_packet_next_reloc(p, &reloc); | ||
580 | if (r) { | ||
581 | DRM_ERROR("bad SET_CONTEXT_REG " | ||
582 | "0x%04X\n", reg); | ||
583 | return -EINVAL; | ||
584 | } | ||
585 | ib[idx+1+i] += (u32)((reloc->lobj.gpu_offset >> 8) & 0xffffffff); | ||
586 | track->cb_color0_base_last = ib[idx+1+i]; | ||
587 | break; | ||
509 | case CB_COLOR1_BASE: | 588 | case CB_COLOR1_BASE: |
510 | case CB_COLOR2_BASE: | 589 | case CB_COLOR2_BASE: |
511 | case CB_COLOR3_BASE: | 590 | case CB_COLOR3_BASE: |
@@ -678,8 +757,11 @@ static int r600_packet3_check(struct radeon_cs_parser *p, | |||
678 | int r600_cs_parse(struct radeon_cs_parser *p) | 757 | int r600_cs_parse(struct radeon_cs_parser *p) |
679 | { | 758 | { |
680 | struct radeon_cs_packet pkt; | 759 | struct radeon_cs_packet pkt; |
760 | struct r600_cs_track *track; | ||
681 | int r; | 761 | int r; |
682 | 762 | ||
763 | track = kzalloc(sizeof(*track), GFP_KERNEL); | ||
764 | p->track = track; | ||
683 | do { | 765 | do { |
684 | r = r600_cs_packet_parse(p, &pkt, p->idx); | 766 | r = r600_cs_packet_parse(p, &pkt, p->idx); |
685 | if (r) { | 767 | if (r) { |
@@ -757,6 +839,7 @@ int r600_cs_legacy(struct drm_device *dev, void *data, struct drm_file *filp, | |||
757 | /* initialize parser */ | 839 | /* initialize parser */ |
758 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); | 840 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); |
759 | parser.filp = filp; | 841 | parser.filp = filp; |
842 | parser.dev = &dev->pdev->dev; | ||
760 | parser.rdev = NULL; | 843 | parser.rdev = NULL; |
761 | parser.family = family; | 844 | parser.family = family; |
762 | parser.ib = &fake_ib; | 845 | parser.ib = &fake_ib; |
diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h index 05894edadab4..30480881aed1 100644 --- a/drivers/gpu/drm/radeon/r600d.h +++ b/drivers/gpu/drm/radeon/r600d.h | |||
@@ -882,4 +882,29 @@ | |||
882 | #define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17) | 882 | #define S_000E60_SOFT_RESET_VMC(x) (((x) & 1) << 17) |
883 | 883 | ||
884 | #define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480 | 884 | #define R_005480_HDP_MEM_COHERENCY_FLUSH_CNTL 0x5480 |
885 | |||
886 | #define R_0280E0_CB_COLOR0_FRAG 0x0280E0 | ||
887 | #define S_0280E0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) | ||
888 | #define G_0280E0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) | ||
889 | #define C_0280E0_BASE_256B 0x00000000 | ||
890 | #define R_0280E4_CB_COLOR1_FRAG 0x0280E4 | ||
891 | #define R_0280E8_CB_COLOR2_FRAG 0x0280E8 | ||
892 | #define R_0280EC_CB_COLOR3_FRAG 0x0280EC | ||
893 | #define R_0280F0_CB_COLOR4_FRAG 0x0280F0 | ||
894 | #define R_0280F4_CB_COLOR5_FRAG 0x0280F4 | ||
895 | #define R_0280F8_CB_COLOR6_FRAG 0x0280F8 | ||
896 | #define R_0280FC_CB_COLOR7_FRAG 0x0280FC | ||
897 | #define R_0280C0_CB_COLOR0_TILE 0x0280C0 | ||
898 | #define S_0280C0_BASE_256B(x) (((x) & 0xFFFFFFFF) << 0) | ||
899 | #define G_0280C0_BASE_256B(x) (((x) >> 0) & 0xFFFFFFFF) | ||
900 | #define C_0280C0_BASE_256B 0x00000000 | ||
901 | #define R_0280C4_CB_COLOR1_TILE 0x0280C4 | ||
902 | #define R_0280C8_CB_COLOR2_TILE 0x0280C8 | ||
903 | #define R_0280CC_CB_COLOR3_TILE 0x0280CC | ||
904 | #define R_0280D0_CB_COLOR4_TILE 0x0280D0 | ||
905 | #define R_0280D4_CB_COLOR5_TILE 0x0280D4 | ||
906 | #define R_0280D8_CB_COLOR6_TILE 0x0280D8 | ||
907 | #define R_0280DC_CB_COLOR7_TILE 0x0280DC | ||
908 | |||
909 | |||
885 | #endif | 910 | #endif |
diff --git a/drivers/gpu/drm/radeon/radeon.h b/drivers/gpu/drm/radeon/radeon.h index eb5f99b9469d..f57480ba1355 100644 --- a/drivers/gpu/drm/radeon/radeon.h +++ b/drivers/gpu/drm/radeon/radeon.h | |||
@@ -410,13 +410,13 @@ struct r600_ih { | |||
410 | unsigned wptr_old; | 410 | unsigned wptr_old; |
411 | unsigned ring_size; | 411 | unsigned ring_size; |
412 | uint64_t gpu_addr; | 412 | uint64_t gpu_addr; |
413 | uint32_t align_mask; | ||
414 | uint32_t ptr_mask; | 413 | uint32_t ptr_mask; |
415 | spinlock_t lock; | 414 | spinlock_t lock; |
416 | bool enabled; | 415 | bool enabled; |
417 | }; | 416 | }; |
418 | 417 | ||
419 | struct r600_blit { | 418 | struct r600_blit { |
419 | struct mutex mutex; | ||
420 | struct radeon_bo *shader_obj; | 420 | struct radeon_bo *shader_obj; |
421 | u64 shader_gpu_addr; | 421 | u64 shader_gpu_addr; |
422 | u32 vs_offset, ps_offset; | 422 | u32 vs_offset, ps_offset; |
@@ -465,6 +465,7 @@ struct radeon_cs_chunk { | |||
465 | }; | 465 | }; |
466 | 466 | ||
467 | struct radeon_cs_parser { | 467 | struct radeon_cs_parser { |
468 | struct device *dev; | ||
468 | struct radeon_device *rdev; | 469 | struct radeon_device *rdev; |
469 | struct drm_file *filp; | 470 | struct drm_file *filp; |
470 | /* chunks */ | 471 | /* chunks */ |
@@ -660,6 +661,13 @@ struct radeon_asic { | |||
660 | void (*hpd_fini)(struct radeon_device *rdev); | 661 | void (*hpd_fini)(struct radeon_device *rdev); |
661 | bool (*hpd_sense)(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 662 | bool (*hpd_sense)(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
662 | void (*hpd_set_polarity)(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 663 | void (*hpd_set_polarity)(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
664 | /* ioctl hw specific callback. Some hw might want to perform special | ||
665 | * operation on specific ioctl. For instance on wait idle some hw | ||
666 | * might want to perform and HDP flush through MMIO as it seems that | ||
667 | * some R6XX/R7XX hw doesn't take HDP flush into account if programmed | ||
668 | * through ring. | ||
669 | */ | ||
670 | void (*ioctl_wait_idle)(struct radeon_device *rdev, struct radeon_bo *bo); | ||
663 | }; | 671 | }; |
664 | 672 | ||
665 | /* | 673 | /* |
@@ -847,7 +855,7 @@ void r600_kms_blit_copy(struct radeon_device *rdev, | |||
847 | 855 | ||
848 | static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) | 856 | static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) |
849 | { | 857 | { |
850 | if (reg < 0x10000) | 858 | if (reg < rdev->rmmio_size) |
851 | return readl(((void __iomem *)rdev->rmmio) + reg); | 859 | return readl(((void __iomem *)rdev->rmmio) + reg); |
852 | else { | 860 | else { |
853 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); | 861 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); |
@@ -857,7 +865,7 @@ static inline uint32_t r100_mm_rreg(struct radeon_device *rdev, uint32_t reg) | |||
857 | 865 | ||
858 | static inline void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v) | 866 | static inline void r100_mm_wreg(struct radeon_device *rdev, uint32_t reg, uint32_t v) |
859 | { | 867 | { |
860 | if (reg < 0x10000) | 868 | if (reg < rdev->rmmio_size) |
861 | writel(v, ((void __iomem *)rdev->rmmio) + reg); | 869 | writel(v, ((void __iomem *)rdev->rmmio) + reg); |
862 | else { | 870 | else { |
863 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); | 871 | writel(reg, ((void __iomem *)rdev->rmmio) + RADEON_MM_INDEX); |
@@ -1017,6 +1025,8 @@ static inline void radeon_ring_write(struct radeon_device *rdev, uint32_t v) | |||
1017 | #define radeon_hpd_set_polarity(rdev, hpd) (rdev)->asic->hpd_set_polarity((rdev), (hpd)) | 1025 | #define radeon_hpd_set_polarity(rdev, hpd) (rdev)->asic->hpd_set_polarity((rdev), (hpd)) |
1018 | 1026 | ||
1019 | /* Common functions */ | 1027 | /* Common functions */ |
1028 | /* AGP */ | ||
1029 | extern void radeon_agp_disable(struct radeon_device *rdev); | ||
1020 | extern int radeon_gart_table_vram_pin(struct radeon_device *rdev); | 1030 | extern int radeon_gart_table_vram_pin(struct radeon_device *rdev); |
1021 | extern int radeon_modeset_init(struct radeon_device *rdev); | 1031 | extern int radeon_modeset_init(struct radeon_device *rdev); |
1022 | extern void radeon_modeset_fini(struct radeon_device *rdev); | 1032 | extern void radeon_modeset_fini(struct radeon_device *rdev); |
@@ -1140,6 +1150,7 @@ extern bool r600_card_posted(struct radeon_device *rdev); | |||
1140 | extern void r600_cp_stop(struct radeon_device *rdev); | 1150 | extern void r600_cp_stop(struct radeon_device *rdev); |
1141 | extern void r600_ring_init(struct radeon_device *rdev, unsigned ring_size); | 1151 | extern void r600_ring_init(struct radeon_device *rdev, unsigned ring_size); |
1142 | extern int r600_cp_resume(struct radeon_device *rdev); | 1152 | extern int r600_cp_resume(struct radeon_device *rdev); |
1153 | extern void r600_cp_fini(struct radeon_device *rdev); | ||
1143 | extern int r600_count_pipe_bits(uint32_t val); | 1154 | extern int r600_count_pipe_bits(uint32_t val); |
1144 | extern int r600_gart_clear_page(struct radeon_device *rdev, int i); | 1155 | extern int r600_gart_clear_page(struct radeon_device *rdev, int i); |
1145 | extern int r600_mc_wait_for_idle(struct radeon_device *rdev); | 1156 | extern int r600_mc_wait_for_idle(struct radeon_device *rdev); |
@@ -1160,7 +1171,8 @@ extern int r600_irq_init(struct radeon_device *rdev); | |||
1160 | extern void r600_irq_fini(struct radeon_device *rdev); | 1171 | extern void r600_irq_fini(struct radeon_device *rdev); |
1161 | extern void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size); | 1172 | extern void r600_ih_ring_init(struct radeon_device *rdev, unsigned ring_size); |
1162 | extern int r600_irq_set(struct radeon_device *rdev); | 1173 | extern int r600_irq_set(struct radeon_device *rdev); |
1163 | 1174 | extern void r600_irq_suspend(struct radeon_device *rdev); | |
1175 | /* r600 audio */ | ||
1164 | extern int r600_audio_init(struct radeon_device *rdev); | 1176 | extern int r600_audio_init(struct radeon_device *rdev); |
1165 | extern int r600_audio_tmds_index(struct drm_encoder *encoder); | 1177 | extern int r600_audio_tmds_index(struct drm_encoder *encoder); |
1166 | extern void r600_audio_set_clock(struct drm_encoder *encoder, int clock); | 1178 | extern void r600_audio_set_clock(struct drm_encoder *encoder, int clock); |
diff --git a/drivers/gpu/drm/radeon/radeon_agp.c b/drivers/gpu/drm/radeon/radeon_agp.c index 220f454ea9fa..c0681a5556dc 100644 --- a/drivers/gpu/drm/radeon/radeon_agp.c +++ b/drivers/gpu/drm/radeon/radeon_agp.c | |||
@@ -144,9 +144,19 @@ int radeon_agp_init(struct radeon_device *rdev) | |||
144 | 144 | ||
145 | ret = drm_agp_info(rdev->ddev, &info); | 145 | ret = drm_agp_info(rdev->ddev, &info); |
146 | if (ret) { | 146 | if (ret) { |
147 | drm_agp_release(rdev->ddev); | ||
147 | DRM_ERROR("Unable to get AGP info: %d\n", ret); | 148 | DRM_ERROR("Unable to get AGP info: %d\n", ret); |
148 | return ret; | 149 | return ret; |
149 | } | 150 | } |
151 | |||
152 | if (rdev->ddev->agp->agp_info.aper_size < 32) { | ||
153 | drm_agp_release(rdev->ddev); | ||
154 | dev_warn(rdev->dev, "AGP aperture too small (%zuM) " | ||
155 | "need at least 32M, disabling AGP\n", | ||
156 | rdev->ddev->agp->agp_info.aper_size); | ||
157 | return -EINVAL; | ||
158 | } | ||
159 | |||
150 | mode.mode = info.mode; | 160 | mode.mode = info.mode; |
151 | agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode; | 161 | agp_status = (RREG32(RADEON_AGP_STATUS) | RADEON_AGPv3_MODE) & mode.mode; |
152 | is_v3 = !!(agp_status & RADEON_AGPv3_MODE); | 162 | is_v3 = !!(agp_status & RADEON_AGPv3_MODE); |
@@ -221,6 +231,7 @@ int radeon_agp_init(struct radeon_device *rdev) | |||
221 | ret = drm_agp_enable(rdev->ddev, mode); | 231 | ret = drm_agp_enable(rdev->ddev, mode); |
222 | if (ret) { | 232 | if (ret) { |
223 | DRM_ERROR("Unable to enable AGP (mode = 0x%lx)\n", mode.mode); | 233 | DRM_ERROR("Unable to enable AGP (mode = 0x%lx)\n", mode.mode); |
234 | drm_agp_release(rdev->ddev); | ||
224 | return ret; | 235 | return ret; |
225 | } | 236 | } |
226 | 237 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h index f2fbd2e4e9df..05ee1aeac3fd 100644 --- a/drivers/gpu/drm/radeon/radeon_asic.h +++ b/drivers/gpu/drm/radeon/radeon_asic.h | |||
@@ -117,6 +117,7 @@ static struct radeon_asic r100_asic = { | |||
117 | .hpd_fini = &r100_hpd_fini, | 117 | .hpd_fini = &r100_hpd_fini, |
118 | .hpd_sense = &r100_hpd_sense, | 118 | .hpd_sense = &r100_hpd_sense, |
119 | .hpd_set_polarity = &r100_hpd_set_polarity, | 119 | .hpd_set_polarity = &r100_hpd_set_polarity, |
120 | .ioctl_wait_idle = NULL, | ||
120 | }; | 121 | }; |
121 | 122 | ||
122 | 123 | ||
@@ -176,6 +177,7 @@ static struct radeon_asic r300_asic = { | |||
176 | .hpd_fini = &r100_hpd_fini, | 177 | .hpd_fini = &r100_hpd_fini, |
177 | .hpd_sense = &r100_hpd_sense, | 178 | .hpd_sense = &r100_hpd_sense, |
178 | .hpd_set_polarity = &r100_hpd_set_polarity, | 179 | .hpd_set_polarity = &r100_hpd_set_polarity, |
180 | .ioctl_wait_idle = NULL, | ||
179 | }; | 181 | }; |
180 | 182 | ||
181 | /* | 183 | /* |
@@ -219,6 +221,7 @@ static struct radeon_asic r420_asic = { | |||
219 | .hpd_fini = &r100_hpd_fini, | 221 | .hpd_fini = &r100_hpd_fini, |
220 | .hpd_sense = &r100_hpd_sense, | 222 | .hpd_sense = &r100_hpd_sense, |
221 | .hpd_set_polarity = &r100_hpd_set_polarity, | 223 | .hpd_set_polarity = &r100_hpd_set_polarity, |
224 | .ioctl_wait_idle = NULL, | ||
222 | }; | 225 | }; |
223 | 226 | ||
224 | 227 | ||
@@ -267,6 +270,7 @@ static struct radeon_asic rs400_asic = { | |||
267 | .hpd_fini = &r100_hpd_fini, | 270 | .hpd_fini = &r100_hpd_fini, |
268 | .hpd_sense = &r100_hpd_sense, | 271 | .hpd_sense = &r100_hpd_sense, |
269 | .hpd_set_polarity = &r100_hpd_set_polarity, | 272 | .hpd_set_polarity = &r100_hpd_set_polarity, |
273 | .ioctl_wait_idle = NULL, | ||
270 | }; | 274 | }; |
271 | 275 | ||
272 | 276 | ||
@@ -323,6 +327,7 @@ static struct radeon_asic rs600_asic = { | |||
323 | .hpd_fini = &rs600_hpd_fini, | 327 | .hpd_fini = &rs600_hpd_fini, |
324 | .hpd_sense = &rs600_hpd_sense, | 328 | .hpd_sense = &rs600_hpd_sense, |
325 | .hpd_set_polarity = &rs600_hpd_set_polarity, | 329 | .hpd_set_polarity = &rs600_hpd_set_polarity, |
330 | .ioctl_wait_idle = NULL, | ||
326 | }; | 331 | }; |
327 | 332 | ||
328 | 333 | ||
@@ -370,6 +375,7 @@ static struct radeon_asic rs690_asic = { | |||
370 | .hpd_fini = &rs600_hpd_fini, | 375 | .hpd_fini = &rs600_hpd_fini, |
371 | .hpd_sense = &rs600_hpd_sense, | 376 | .hpd_sense = &rs600_hpd_sense, |
372 | .hpd_set_polarity = &rs600_hpd_set_polarity, | 377 | .hpd_set_polarity = &rs600_hpd_set_polarity, |
378 | .ioctl_wait_idle = NULL, | ||
373 | }; | 379 | }; |
374 | 380 | ||
375 | 381 | ||
@@ -421,6 +427,7 @@ static struct radeon_asic rv515_asic = { | |||
421 | .hpd_fini = &rs600_hpd_fini, | 427 | .hpd_fini = &rs600_hpd_fini, |
422 | .hpd_sense = &rs600_hpd_sense, | 428 | .hpd_sense = &rs600_hpd_sense, |
423 | .hpd_set_polarity = &rs600_hpd_set_polarity, | 429 | .hpd_set_polarity = &rs600_hpd_set_polarity, |
430 | .ioctl_wait_idle = NULL, | ||
424 | }; | 431 | }; |
425 | 432 | ||
426 | 433 | ||
@@ -463,6 +470,7 @@ static struct radeon_asic r520_asic = { | |||
463 | .hpd_fini = &rs600_hpd_fini, | 470 | .hpd_fini = &rs600_hpd_fini, |
464 | .hpd_sense = &rs600_hpd_sense, | 471 | .hpd_sense = &rs600_hpd_sense, |
465 | .hpd_set_polarity = &rs600_hpd_set_polarity, | 472 | .hpd_set_polarity = &rs600_hpd_set_polarity, |
473 | .ioctl_wait_idle = NULL, | ||
466 | }; | 474 | }; |
467 | 475 | ||
468 | /* | 476 | /* |
@@ -504,6 +512,7 @@ void r600_hpd_fini(struct radeon_device *rdev); | |||
504 | bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); | 512 | bool r600_hpd_sense(struct radeon_device *rdev, enum radeon_hpd_id hpd); |
505 | void r600_hpd_set_polarity(struct radeon_device *rdev, | 513 | void r600_hpd_set_polarity(struct radeon_device *rdev, |
506 | enum radeon_hpd_id hpd); | 514 | enum radeon_hpd_id hpd); |
515 | extern void r600_ioctl_wait_idle(struct radeon_device *rdev, struct radeon_bo *bo); | ||
507 | 516 | ||
508 | static struct radeon_asic r600_asic = { | 517 | static struct radeon_asic r600_asic = { |
509 | .init = &r600_init, | 518 | .init = &r600_init, |
@@ -538,6 +547,7 @@ static struct radeon_asic r600_asic = { | |||
538 | .hpd_fini = &r600_hpd_fini, | 547 | .hpd_fini = &r600_hpd_fini, |
539 | .hpd_sense = &r600_hpd_sense, | 548 | .hpd_sense = &r600_hpd_sense, |
540 | .hpd_set_polarity = &r600_hpd_set_polarity, | 549 | .hpd_set_polarity = &r600_hpd_set_polarity, |
550 | .ioctl_wait_idle = r600_ioctl_wait_idle, | ||
541 | }; | 551 | }; |
542 | 552 | ||
543 | /* | 553 | /* |
@@ -582,6 +592,7 @@ static struct radeon_asic rv770_asic = { | |||
582 | .hpd_fini = &r600_hpd_fini, | 592 | .hpd_fini = &r600_hpd_fini, |
583 | .hpd_sense = &r600_hpd_sense, | 593 | .hpd_sense = &r600_hpd_sense, |
584 | .hpd_set_polarity = &r600_hpd_set_polarity, | 594 | .hpd_set_polarity = &r600_hpd_set_polarity, |
595 | .ioctl_wait_idle = r600_ioctl_wait_idle, | ||
585 | }; | 596 | }; |
586 | 597 | ||
587 | #endif | 598 | #endif |
diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c index fa82ca74324e..2dcda6115874 100644 --- a/drivers/gpu/drm/radeon/radeon_atombios.c +++ b/drivers/gpu/drm/radeon/radeon_atombios.c | |||
@@ -287,6 +287,15 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev, | |||
287 | *connector_type = DRM_MODE_CONNECTOR_DVID; | 287 | *connector_type = DRM_MODE_CONNECTOR_DVID; |
288 | } | 288 | } |
289 | 289 | ||
290 | /* XFX Pine Group device rv730 reports no VGA DDC lines | ||
291 | * even though they are wired up to record 0x93 | ||
292 | */ | ||
293 | if ((dev->pdev->device == 0x9498) && | ||
294 | (dev->pdev->subsystem_vendor == 0x1682) && | ||
295 | (dev->pdev->subsystem_device == 0x2452)) { | ||
296 | struct radeon_device *rdev = dev->dev_private; | ||
297 | *i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93); | ||
298 | } | ||
290 | return true; | 299 | return true; |
291 | } | 300 | } |
292 | 301 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_benchmark.c b/drivers/gpu/drm/radeon/radeon_benchmark.c index 4ddfd4b5bc51..7932dc4d6b90 100644 --- a/drivers/gpu/drm/radeon/radeon_benchmark.c +++ b/drivers/gpu/drm/radeon/radeon_benchmark.c | |||
@@ -65,31 +65,42 @@ void radeon_benchmark_move(struct radeon_device *rdev, unsigned bsize, | |||
65 | if (r) { | 65 | if (r) { |
66 | goto out_cleanup; | 66 | goto out_cleanup; |
67 | } | 67 | } |
68 | start_jiffies = jiffies; | 68 | |
69 | for (i = 0; i < n; i++) { | 69 | /* r100 doesn't have dma engine so skip the test */ |
70 | r = radeon_fence_create(rdev, &fence); | 70 | if (rdev->asic->copy_dma) { |
71 | if (r) { | 71 | |
72 | goto out_cleanup; | 72 | start_jiffies = jiffies; |
73 | for (i = 0; i < n; i++) { | ||
74 | r = radeon_fence_create(rdev, &fence); | ||
75 | if (r) { | ||
76 | goto out_cleanup; | ||
77 | } | ||
78 | |||
79 | r = radeon_copy_dma(rdev, saddr, daddr, | ||
80 | size / RADEON_GPU_PAGE_SIZE, fence); | ||
81 | |||
82 | if (r) { | ||
83 | goto out_cleanup; | ||
84 | } | ||
85 | r = radeon_fence_wait(fence, false); | ||
86 | if (r) { | ||
87 | goto out_cleanup; | ||
88 | } | ||
89 | radeon_fence_unref(&fence); | ||
73 | } | 90 | } |
74 | r = radeon_copy_dma(rdev, saddr, daddr, size / RADEON_GPU_PAGE_SIZE, fence); | 91 | end_jiffies = jiffies; |
75 | if (r) { | 92 | time = end_jiffies - start_jiffies; |
76 | goto out_cleanup; | 93 | time = jiffies_to_msecs(time); |
94 | if (time > 0) { | ||
95 | i = ((n * size) >> 10) / time; | ||
96 | printk(KERN_INFO "radeon: dma %u bo moves of %ukb from" | ||
97 | " %d to %d in %lums (%ukb/ms %ukb/s %uM/s)\n", | ||
98 | n, size >> 10, | ||
99 | sdomain, ddomain, time, | ||
100 | i, i * 1000, (i * 1000) / 1024); | ||
77 | } | 101 | } |
78 | r = radeon_fence_wait(fence, false); | ||
79 | if (r) { | ||
80 | goto out_cleanup; | ||
81 | } | ||
82 | radeon_fence_unref(&fence); | ||
83 | } | ||
84 | end_jiffies = jiffies; | ||
85 | time = end_jiffies - start_jiffies; | ||
86 | time = jiffies_to_msecs(time); | ||
87 | if (time > 0) { | ||
88 | i = ((n * size) >> 10) / time; | ||
89 | printk(KERN_INFO "radeon: dma %u bo moves of %ukb from %d to %d" | ||
90 | " in %lums (%ukb/ms %ukb/s %uM/s)\n", n, size >> 10, | ||
91 | sdomain, ddomain, time, i, i * 1000, (i * 1000) / 1024); | ||
92 | } | 102 | } |
103 | |||
93 | start_jiffies = jiffies; | 104 | start_jiffies = jiffies; |
94 | for (i = 0; i < n; i++) { | 105 | for (i = 0; i < n; i++) { |
95 | r = radeon_fence_create(rdev, &fence); | 106 | r = radeon_fence_create(rdev, &fence); |
diff --git a/drivers/gpu/drm/radeon/radeon_clocks.c b/drivers/gpu/drm/radeon/radeon_clocks.c index 812f24dbc2a8..73c4405bf42f 100644 --- a/drivers/gpu/drm/radeon/radeon_clocks.c +++ b/drivers/gpu/drm/radeon/radeon_clocks.c | |||
@@ -56,7 +56,7 @@ uint32_t radeon_legacy_get_engine_clock(struct radeon_device *rdev) | |||
56 | else if (post_div == 3) | 56 | else if (post_div == 3) |
57 | sclk >>= 2; | 57 | sclk >>= 2; |
58 | else if (post_div == 4) | 58 | else if (post_div == 4) |
59 | sclk >>= 4; | 59 | sclk >>= 3; |
60 | 60 | ||
61 | return sclk; | 61 | return sclk; |
62 | } | 62 | } |
@@ -86,7 +86,7 @@ uint32_t radeon_legacy_get_memory_clock(struct radeon_device *rdev) | |||
86 | else if (post_div == 3) | 86 | else if (post_div == 3) |
87 | mclk >>= 2; | 87 | mclk >>= 2; |
88 | else if (post_div == 4) | 88 | else if (post_div == 4) |
89 | mclk >>= 4; | 89 | mclk >>= 3; |
90 | 90 | ||
91 | return mclk; | 91 | return mclk; |
92 | } | 92 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_combios.c b/drivers/gpu/drm/radeon/radeon_combios.c index 579c8920e081..e7b19440102e 100644 --- a/drivers/gpu/drm/radeon/radeon_combios.c +++ b/drivers/gpu/drm/radeon/radeon_combios.c | |||
@@ -971,8 +971,7 @@ struct radeon_encoder_lvds *radeon_combios_get_lvds_info(struct radeon_encoder | |||
971 | lvds->native_mode.vdisplay); | 971 | lvds->native_mode.vdisplay); |
972 | 972 | ||
973 | lvds->panel_vcc_delay = RBIOS16(lcd_info + 0x2c); | 973 | lvds->panel_vcc_delay = RBIOS16(lcd_info + 0x2c); |
974 | if (lvds->panel_vcc_delay > 2000 || lvds->panel_vcc_delay < 0) | 974 | lvds->panel_vcc_delay = min_t(u16, lvds->panel_vcc_delay, 2000); |
975 | lvds->panel_vcc_delay = 2000; | ||
976 | 975 | ||
977 | lvds->panel_pwr_delay = RBIOS8(lcd_info + 0x24); | 976 | lvds->panel_pwr_delay = RBIOS8(lcd_info + 0x24); |
978 | lvds->panel_digon_delay = RBIOS16(lcd_info + 0x38) & 0xf; | 977 | lvds->panel_digon_delay = RBIOS16(lcd_info + 0x38) & 0xf; |
diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c index 55266416fa47..238188540017 100644 --- a/drivers/gpu/drm/radeon/radeon_connectors.c +++ b/drivers/gpu/drm/radeon/radeon_connectors.c | |||
@@ -580,16 +580,18 @@ static enum drm_connector_status radeon_vga_detect(struct drm_connector *connect | |||
580 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); | 580 | struct radeon_connector *radeon_connector = to_radeon_connector(connector); |
581 | struct drm_encoder *encoder; | 581 | struct drm_encoder *encoder; |
582 | struct drm_encoder_helper_funcs *encoder_funcs; | 582 | struct drm_encoder_helper_funcs *encoder_funcs; |
583 | bool dret; | 583 | bool dret = false; |
584 | enum drm_connector_status ret = connector_status_disconnected; | 584 | enum drm_connector_status ret = connector_status_disconnected; |
585 | 585 | ||
586 | encoder = radeon_best_single_encoder(connector); | 586 | encoder = radeon_best_single_encoder(connector); |
587 | if (!encoder) | 587 | if (!encoder) |
588 | ret = connector_status_disconnected; | 588 | ret = connector_status_disconnected; |
589 | 589 | ||
590 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | 590 | if (radeon_connector->ddc_bus) { |
591 | dret = radeon_ddc_probe(radeon_connector); | 591 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); |
592 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | 592 | dret = radeon_ddc_probe(radeon_connector); |
593 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
594 | } | ||
593 | if (dret) { | 595 | if (dret) { |
594 | if (radeon_connector->edid) { | 596 | if (radeon_connector->edid) { |
595 | kfree(radeon_connector->edid); | 597 | kfree(radeon_connector->edid); |
@@ -740,11 +742,13 @@ static enum drm_connector_status radeon_dvi_detect(struct drm_connector *connect | |||
740 | struct drm_mode_object *obj; | 742 | struct drm_mode_object *obj; |
741 | int i; | 743 | int i; |
742 | enum drm_connector_status ret = connector_status_disconnected; | 744 | enum drm_connector_status ret = connector_status_disconnected; |
743 | bool dret; | 745 | bool dret = false; |
744 | 746 | ||
745 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); | 747 | if (radeon_connector->ddc_bus) { |
746 | dret = radeon_ddc_probe(radeon_connector); | 748 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 1); |
747 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | 749 | dret = radeon_ddc_probe(radeon_connector); |
750 | radeon_i2c_do_lock(radeon_connector->ddc_bus, 0); | ||
751 | } | ||
748 | if (dret) { | 752 | if (dret) { |
749 | if (radeon_connector->edid) { | 753 | if (radeon_connector->edid) { |
750 | kfree(radeon_connector->edid); | 754 | kfree(radeon_connector->edid); |
@@ -1343,7 +1347,7 @@ radeon_add_legacy_connector(struct drm_device *dev, | |||
1343 | radeon_connector->dac_load_detect = false; | 1347 | radeon_connector->dac_load_detect = false; |
1344 | drm_connector_attach_property(&radeon_connector->base, | 1348 | drm_connector_attach_property(&radeon_connector->base, |
1345 | rdev->mode_info.load_detect_property, | 1349 | rdev->mode_info.load_detect_property, |
1346 | 1); | 1350 | radeon_connector->dac_load_detect); |
1347 | drm_connector_attach_property(&radeon_connector->base, | 1351 | drm_connector_attach_property(&radeon_connector->base, |
1348 | rdev->mode_info.tv_std_property, | 1352 | rdev->mode_info.tv_std_property, |
1349 | radeon_combios_get_tv_info(rdev)); | 1353 | radeon_combios_get_tv_info(rdev)); |
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c index 65590a0f1d93..1190148cf5e6 100644 --- a/drivers/gpu/drm/radeon/radeon_cs.c +++ b/drivers/gpu/drm/radeon/radeon_cs.c | |||
@@ -189,7 +189,7 @@ static void radeon_cs_parser_fini(struct radeon_cs_parser *parser, int error) | |||
189 | { | 189 | { |
190 | unsigned i; | 190 | unsigned i; |
191 | 191 | ||
192 | if (error) { | 192 | if (error && parser->ib) { |
193 | radeon_bo_list_unvalidate(&parser->validated, | 193 | radeon_bo_list_unvalidate(&parser->validated, |
194 | parser->ib->fence); | 194 | parser->ib->fence); |
195 | } else { | 195 | } else { |
@@ -231,6 +231,7 @@ int radeon_cs_ioctl(struct drm_device *dev, void *data, struct drm_file *filp) | |||
231 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); | 231 | memset(&parser, 0, sizeof(struct radeon_cs_parser)); |
232 | parser.filp = filp; | 232 | parser.filp = filp; |
233 | parser.rdev = rdev; | 233 | parser.rdev = rdev; |
234 | parser.dev = rdev->dev; | ||
234 | r = radeon_cs_parser_init(&parser, data); | 235 | r = radeon_cs_parser_init(&parser, data); |
235 | if (r) { | 236 | if (r) { |
236 | DRM_ERROR("Failed to initialize parser !\n"); | 237 | DRM_ERROR("Failed to initialize parser !\n"); |
diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c index 0c51f8e46613..768b1509fa03 100644 --- a/drivers/gpu/drm/radeon/radeon_device.c +++ b/drivers/gpu/drm/radeon/radeon_device.c | |||
@@ -544,6 +544,7 @@ void radeon_agp_disable(struct radeon_device *rdev) | |||
544 | rdev->asic->gart_tlb_flush = &r100_pci_gart_tlb_flush; | 544 | rdev->asic->gart_tlb_flush = &r100_pci_gart_tlb_flush; |
545 | rdev->asic->gart_set_page = &r100_pci_gart_set_page; | 545 | rdev->asic->gart_set_page = &r100_pci_gart_set_page; |
546 | } | 546 | } |
547 | rdev->mc.gtt_size = radeon_gart_size * 1024 * 1024; | ||
547 | } | 548 | } |
548 | 549 | ||
549 | void radeon_check_arguments(struct radeon_device *rdev) | 550 | void radeon_check_arguments(struct radeon_device *rdev) |
diff --git a/drivers/gpu/drm/radeon/radeon_display.c b/drivers/gpu/drm/radeon/radeon_display.c index 0ec491ead2ff..7e17a362b54b 100644 --- a/drivers/gpu/drm/radeon/radeon_display.c +++ b/drivers/gpu/drm/radeon/radeon_display.c | |||
@@ -278,7 +278,7 @@ static void radeon_print_display_setup(struct drm_device *dev) | |||
278 | DRM_INFO(" %s\n", connector_names[connector->connector_type]); | 278 | DRM_INFO(" %s\n", connector_names[connector->connector_type]); |
279 | if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) | 279 | if (radeon_connector->hpd.hpd != RADEON_HPD_NONE) |
280 | DRM_INFO(" %s\n", hpd_names[radeon_connector->hpd.hpd]); | 280 | DRM_INFO(" %s\n", hpd_names[radeon_connector->hpd.hpd]); |
281 | if (radeon_connector->ddc_bus) | 281 | if (radeon_connector->ddc_bus) { |
282 | DRM_INFO(" DDC: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", | 282 | DRM_INFO(" DDC: 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x 0x%x\n", |
283 | radeon_connector->ddc_bus->rec.mask_clk_reg, | 283 | radeon_connector->ddc_bus->rec.mask_clk_reg, |
284 | radeon_connector->ddc_bus->rec.mask_data_reg, | 284 | radeon_connector->ddc_bus->rec.mask_data_reg, |
@@ -288,6 +288,15 @@ static void radeon_print_display_setup(struct drm_device *dev) | |||
288 | radeon_connector->ddc_bus->rec.en_data_reg, | 288 | radeon_connector->ddc_bus->rec.en_data_reg, |
289 | radeon_connector->ddc_bus->rec.y_clk_reg, | 289 | radeon_connector->ddc_bus->rec.y_clk_reg, |
290 | radeon_connector->ddc_bus->rec.y_data_reg); | 290 | radeon_connector->ddc_bus->rec.y_data_reg); |
291 | } else { | ||
292 | if (connector->connector_type == DRM_MODE_CONNECTOR_VGA || | ||
293 | connector->connector_type == DRM_MODE_CONNECTOR_DVII || | ||
294 | connector->connector_type == DRM_MODE_CONNECTOR_DVID || | ||
295 | connector->connector_type == DRM_MODE_CONNECTOR_DVIA || | ||
296 | connector->connector_type == DRM_MODE_CONNECTOR_HDMIA || | ||
297 | connector->connector_type == DRM_MODE_CONNECTOR_HDMIB) | ||
298 | DRM_INFO(" DDC: no ddc bus - possible BIOS bug - please report to xorg-driver-ati@lists.x.org\n"); | ||
299 | } | ||
291 | DRM_INFO(" Encoders:\n"); | 300 | DRM_INFO(" Encoders:\n"); |
292 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 301 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
293 | radeon_encoder = to_radeon_encoder(encoder); | 302 | radeon_encoder = to_radeon_encoder(encoder); |
@@ -357,7 +366,8 @@ int radeon_ddc_get_modes(struct radeon_connector *radeon_connector) | |||
357 | if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || | 366 | if ((radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_DisplayPort) || |
358 | (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) { | 367 | (radeon_connector->base.connector_type == DRM_MODE_CONNECTOR_eDP)) { |
359 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; | 368 | struct radeon_connector_atom_dig *dig = radeon_connector->con_priv; |
360 | if (dig->dp_i2c_bus) | 369 | if ((dig->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT || |
370 | dig->dp_sink_type == CONNECTOR_OBJECT_ID_eDP) && dig->dp_i2c_bus) | ||
361 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &dig->dp_i2c_bus->adapter); | 371 | radeon_connector->edid = drm_get_edid(&radeon_connector->base, &dig->dp_i2c_bus->adapter); |
362 | } | 372 | } |
363 | if (!radeon_connector->ddc_bus) | 373 | if (!radeon_connector->ddc_bus) |
@@ -410,11 +420,12 @@ void radeon_compute_pll(struct radeon_pll *pll, | |||
410 | uint32_t *fb_div_p, | 420 | uint32_t *fb_div_p, |
411 | uint32_t *frac_fb_div_p, | 421 | uint32_t *frac_fb_div_p, |
412 | uint32_t *ref_div_p, | 422 | uint32_t *ref_div_p, |
413 | uint32_t *post_div_p, | 423 | uint32_t *post_div_p) |
414 | int flags) | ||
415 | { | 424 | { |
416 | uint32_t min_ref_div = pll->min_ref_div; | 425 | uint32_t min_ref_div = pll->min_ref_div; |
417 | uint32_t max_ref_div = pll->max_ref_div; | 426 | uint32_t max_ref_div = pll->max_ref_div; |
427 | uint32_t min_post_div = pll->min_post_div; | ||
428 | uint32_t max_post_div = pll->max_post_div; | ||
418 | uint32_t min_fractional_feed_div = 0; | 429 | uint32_t min_fractional_feed_div = 0; |
419 | uint32_t max_fractional_feed_div = 0; | 430 | uint32_t max_fractional_feed_div = 0; |
420 | uint32_t best_vco = pll->best_vco; | 431 | uint32_t best_vco = pll->best_vco; |
@@ -430,7 +441,7 @@ void radeon_compute_pll(struct radeon_pll *pll, | |||
430 | DRM_DEBUG("PLL freq %llu %u %u\n", freq, pll->min_ref_div, pll->max_ref_div); | 441 | DRM_DEBUG("PLL freq %llu %u %u\n", freq, pll->min_ref_div, pll->max_ref_div); |
431 | freq = freq * 1000; | 442 | freq = freq * 1000; |
432 | 443 | ||
433 | if (flags & RADEON_PLL_USE_REF_DIV) | 444 | if (pll->flags & RADEON_PLL_USE_REF_DIV) |
434 | min_ref_div = max_ref_div = pll->reference_div; | 445 | min_ref_div = max_ref_div = pll->reference_div; |
435 | else { | 446 | else { |
436 | while (min_ref_div < max_ref_div-1) { | 447 | while (min_ref_div < max_ref_div-1) { |
@@ -445,19 +456,22 @@ void radeon_compute_pll(struct radeon_pll *pll, | |||
445 | } | 456 | } |
446 | } | 457 | } |
447 | 458 | ||
448 | if (flags & RADEON_PLL_USE_FRAC_FB_DIV) { | 459 | if (pll->flags & RADEON_PLL_USE_POST_DIV) |
460 | min_post_div = max_post_div = pll->post_div; | ||
461 | |||
462 | if (pll->flags & RADEON_PLL_USE_FRAC_FB_DIV) { | ||
449 | min_fractional_feed_div = pll->min_frac_feedback_div; | 463 | min_fractional_feed_div = pll->min_frac_feedback_div; |
450 | max_fractional_feed_div = pll->max_frac_feedback_div; | 464 | max_fractional_feed_div = pll->max_frac_feedback_div; |
451 | } | 465 | } |
452 | 466 | ||
453 | for (post_div = pll->min_post_div; post_div <= pll->max_post_div; ++post_div) { | 467 | for (post_div = min_post_div; post_div <= max_post_div; ++post_div) { |
454 | uint32_t ref_div; | 468 | uint32_t ref_div; |
455 | 469 | ||
456 | if ((flags & RADEON_PLL_NO_ODD_POST_DIV) && (post_div & 1)) | 470 | if ((pll->flags & RADEON_PLL_NO_ODD_POST_DIV) && (post_div & 1)) |
457 | continue; | 471 | continue; |
458 | 472 | ||
459 | /* legacy radeons only have a few post_divs */ | 473 | /* legacy radeons only have a few post_divs */ |
460 | if (flags & RADEON_PLL_LEGACY) { | 474 | if (pll->flags & RADEON_PLL_LEGACY) { |
461 | if ((post_div == 5) || | 475 | if ((post_div == 5) || |
462 | (post_div == 7) || | 476 | (post_div == 7) || |
463 | (post_div == 9) || | 477 | (post_div == 9) || |
@@ -504,7 +518,7 @@ void radeon_compute_pll(struct radeon_pll *pll, | |||
504 | tmp += (uint64_t)pll->reference_freq * 1000 * frac_feedback_div; | 518 | tmp += (uint64_t)pll->reference_freq * 1000 * frac_feedback_div; |
505 | current_freq = radeon_div(tmp, ref_div * post_div); | 519 | current_freq = radeon_div(tmp, ref_div * post_div); |
506 | 520 | ||
507 | if (flags & RADEON_PLL_PREFER_CLOSEST_LOWER) { | 521 | if (pll->flags & RADEON_PLL_PREFER_CLOSEST_LOWER) { |
508 | error = freq - current_freq; | 522 | error = freq - current_freq; |
509 | error = error < 0 ? 0xffffffff : error; | 523 | error = error < 0 ? 0xffffffff : error; |
510 | } else | 524 | } else |
@@ -531,12 +545,12 @@ void radeon_compute_pll(struct radeon_pll *pll, | |||
531 | best_freq = current_freq; | 545 | best_freq = current_freq; |
532 | best_error = error; | 546 | best_error = error; |
533 | best_vco_diff = vco_diff; | 547 | best_vco_diff = vco_diff; |
534 | } else if (((flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) || | 548 | } else if (((pll->flags & RADEON_PLL_PREFER_LOW_REF_DIV) && (ref_div < best_ref_div)) || |
535 | ((flags & RADEON_PLL_PREFER_HIGH_REF_DIV) && (ref_div > best_ref_div)) || | 549 | ((pll->flags & RADEON_PLL_PREFER_HIGH_REF_DIV) && (ref_div > best_ref_div)) || |
536 | ((flags & RADEON_PLL_PREFER_LOW_FB_DIV) && (feedback_div < best_feedback_div)) || | 550 | ((pll->flags & RADEON_PLL_PREFER_LOW_FB_DIV) && (feedback_div < best_feedback_div)) || |
537 | ((flags & RADEON_PLL_PREFER_HIGH_FB_DIV) && (feedback_div > best_feedback_div)) || | 551 | ((pll->flags & RADEON_PLL_PREFER_HIGH_FB_DIV) && (feedback_div > best_feedback_div)) || |
538 | ((flags & RADEON_PLL_PREFER_LOW_POST_DIV) && (post_div < best_post_div)) || | 552 | ((pll->flags & RADEON_PLL_PREFER_LOW_POST_DIV) && (post_div < best_post_div)) || |
539 | ((flags & RADEON_PLL_PREFER_HIGH_POST_DIV) && (post_div > best_post_div))) { | 553 | ((pll->flags & RADEON_PLL_PREFER_HIGH_POST_DIV) && (post_div > best_post_div))) { |
540 | best_post_div = post_div; | 554 | best_post_div = post_div; |
541 | best_ref_div = ref_div; | 555 | best_ref_div = ref_div; |
542 | best_feedback_div = feedback_div; | 556 | best_feedback_div = feedback_div; |
@@ -572,8 +586,7 @@ void radeon_compute_pll_avivo(struct radeon_pll *pll, | |||
572 | uint32_t *fb_div_p, | 586 | uint32_t *fb_div_p, |
573 | uint32_t *frac_fb_div_p, | 587 | uint32_t *frac_fb_div_p, |
574 | uint32_t *ref_div_p, | 588 | uint32_t *ref_div_p, |
575 | uint32_t *post_div_p, | 589 | uint32_t *post_div_p) |
576 | int flags) | ||
577 | { | 590 | { |
578 | fixed20_12 m, n, frac_n, p, f_vco, f_pclk, best_freq; | 591 | fixed20_12 m, n, frac_n, p, f_vco, f_pclk, best_freq; |
579 | fixed20_12 pll_out_max, pll_out_min; | 592 | fixed20_12 pll_out_max, pll_out_min; |
@@ -667,7 +680,6 @@ static void radeon_user_framebuffer_destroy(struct drm_framebuffer *fb) | |||
667 | radeonfb_remove(dev, fb); | 680 | radeonfb_remove(dev, fb); |
668 | 681 | ||
669 | if (radeon_fb->obj) { | 682 | if (radeon_fb->obj) { |
670 | radeon_gem_object_unpin(radeon_fb->obj); | ||
671 | mutex_lock(&dev->struct_mutex); | 683 | mutex_lock(&dev->struct_mutex); |
672 | drm_gem_object_unreference(radeon_fb->obj); | 684 | drm_gem_object_unreference(radeon_fb->obj); |
673 | mutex_unlock(&dev->struct_mutex); | 685 | mutex_unlock(&dev->struct_mutex); |
@@ -715,7 +727,11 @@ radeon_user_framebuffer_create(struct drm_device *dev, | |||
715 | struct drm_gem_object *obj; | 727 | struct drm_gem_object *obj; |
716 | 728 | ||
717 | obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handle); | 729 | obj = drm_gem_object_lookup(dev, file_priv, mode_cmd->handle); |
718 | 730 | if (obj == NULL) { | |
731 | dev_err(&dev->pdev->dev, "No GEM object associated to handle 0x%08X, " | ||
732 | "can't create framebuffer\n", mode_cmd->handle); | ||
733 | return NULL; | ||
734 | } | ||
719 | return radeon_framebuffer_create(dev, mode_cmd, obj); | 735 | return radeon_framebuffer_create(dev, mode_cmd, obj); |
720 | } | 736 | } |
721 | 737 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_encoders.c b/drivers/gpu/drm/radeon/radeon_encoders.c index 82eb551970b9..3c91724457ca 100644 --- a/drivers/gpu/drm/radeon/radeon_encoders.c +++ b/drivers/gpu/drm/radeon/radeon_encoders.c | |||
@@ -156,6 +156,26 @@ radeon_get_encoder_id(struct drm_device *dev, uint32_t supported_device, uint8_t | |||
156 | return ret; | 156 | return ret; |
157 | } | 157 | } |
158 | 158 | ||
159 | static inline bool radeon_encoder_is_digital(struct drm_encoder *encoder) | ||
160 | { | ||
161 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | ||
162 | switch (radeon_encoder->encoder_id) { | ||
163 | case ENCODER_OBJECT_ID_INTERNAL_LVDS: | ||
164 | case ENCODER_OBJECT_ID_INTERNAL_TMDS1: | ||
165 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_TMDS1: | ||
166 | case ENCODER_OBJECT_ID_INTERNAL_LVTM1: | ||
167 | case ENCODER_OBJECT_ID_INTERNAL_DVO1: | ||
168 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: | ||
169 | case ENCODER_OBJECT_ID_INTERNAL_DDI: | ||
170 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | ||
171 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
172 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | ||
173 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | ||
174 | return true; | ||
175 | default: | ||
176 | return false; | ||
177 | } | ||
178 | } | ||
159 | void | 179 | void |
160 | radeon_link_encoder_connector(struct drm_device *dev) | 180 | radeon_link_encoder_connector(struct drm_device *dev) |
161 | { | 181 | { |
@@ -202,7 +222,7 @@ radeon_get_connector_for_encoder(struct drm_encoder *encoder) | |||
202 | 222 | ||
203 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { | 223 | list_for_each_entry(connector, &dev->mode_config.connector_list, head) { |
204 | radeon_connector = to_radeon_connector(connector); | 224 | radeon_connector = to_radeon_connector(connector); |
205 | if (radeon_encoder->devices & radeon_connector->devices) | 225 | if (radeon_encoder->active_device & radeon_connector->devices) |
206 | return connector; | 226 | return connector; |
207 | } | 227 | } |
208 | return NULL; | 228 | return NULL; |
@@ -676,31 +696,11 @@ atombios_dig_encoder_setup(struct drm_encoder *encoder, int action) | |||
676 | 696 | ||
677 | memset(&args, 0, sizeof(args)); | 697 | memset(&args, 0, sizeof(args)); |
678 | 698 | ||
679 | if (ASIC_IS_DCE32(rdev)) { | 699 | if (dig->dig_encoder) |
680 | if (dig->dig_block) | 700 | index = GetIndexIntoMasterTable(COMMAND, DIG2EncoderControl); |
681 | index = GetIndexIntoMasterTable(COMMAND, DIG2EncoderControl); | 701 | else |
682 | else | 702 | index = GetIndexIntoMasterTable(COMMAND, DIG1EncoderControl); |
683 | index = GetIndexIntoMasterTable(COMMAND, DIG1EncoderControl); | 703 | num = dig->dig_encoder + 1; |
684 | num = dig->dig_block + 1; | ||
685 | } else { | ||
686 | switch (radeon_encoder->encoder_id) { | ||
687 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | ||
688 | /* XXX doesn't really matter which dig encoder we pick as long as it's | ||
689 | * not already in use | ||
690 | */ | ||
691 | if (dig_connector->linkb) | ||
692 | index = GetIndexIntoMasterTable(COMMAND, DIG2EncoderControl); | ||
693 | else | ||
694 | index = GetIndexIntoMasterTable(COMMAND, DIG1EncoderControl); | ||
695 | num = 1; | ||
696 | break; | ||
697 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
698 | /* Only dig2 encoder can drive LVTMA */ | ||
699 | index = GetIndexIntoMasterTable(COMMAND, DIG2EncoderControl); | ||
700 | num = 2; | ||
701 | break; | ||
702 | } | ||
703 | } | ||
704 | 704 | ||
705 | atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev); | 705 | atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev); |
706 | 706 | ||
@@ -822,7 +822,7 @@ atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t | |||
822 | args.v1.usPixelClock = cpu_to_le16(radeon_encoder->pixel_clock / 10); | 822 | args.v1.usPixelClock = cpu_to_le16(radeon_encoder->pixel_clock / 10); |
823 | } | 823 | } |
824 | if (ASIC_IS_DCE32(rdev)) { | 824 | if (ASIC_IS_DCE32(rdev)) { |
825 | if (dig->dig_block) | 825 | if (dig->dig_encoder == 1) |
826 | args.v2.acConfig.ucEncoderSel = 1; | 826 | args.v2.acConfig.ucEncoderSel = 1; |
827 | if (dig_connector->linkb) | 827 | if (dig_connector->linkb) |
828 | args.v2.acConfig.ucLinkSel = 1; | 828 | args.v2.acConfig.ucLinkSel = 1; |
@@ -849,17 +849,16 @@ atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t | |||
849 | args.v2.acConfig.fCoherentMode = 1; | 849 | args.v2.acConfig.fCoherentMode = 1; |
850 | } | 850 | } |
851 | } else { | 851 | } else { |
852 | |||
852 | args.v1.ucConfig = ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL; | 853 | args.v1.ucConfig = ATOM_TRANSMITTER_CONFIG_CLKSRC_PPLL; |
853 | 854 | ||
855 | if (dig->dig_encoder) | ||
856 | args.v1.ucConfig |= ATOM_TRANSMITTER_CONFIG_DIG2_ENCODER; | ||
857 | else | ||
858 | args.v1.ucConfig |= ATOM_TRANSMITTER_CONFIG_DIG1_ENCODER; | ||
859 | |||
854 | switch (radeon_encoder->encoder_id) { | 860 | switch (radeon_encoder->encoder_id) { |
855 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | 861 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: |
856 | /* XXX doesn't really matter which dig encoder we pick as long as it's | ||
857 | * not already in use | ||
858 | */ | ||
859 | if (dig_connector->linkb) | ||
860 | args.v1.ucConfig |= ATOM_TRANSMITTER_CONFIG_DIG2_ENCODER; | ||
861 | else | ||
862 | args.v1.ucConfig |= ATOM_TRANSMITTER_CONFIG_DIG1_ENCODER; | ||
863 | if (rdev->flags & RADEON_IS_IGP) { | 862 | if (rdev->flags & RADEON_IS_IGP) { |
864 | if (radeon_encoder->pixel_clock > 165000) { | 863 | if (radeon_encoder->pixel_clock > 165000) { |
865 | if (dig_connector->igp_lane_info & 0x3) | 864 | if (dig_connector->igp_lane_info & 0x3) |
@@ -878,10 +877,6 @@ atombios_dig_transmitter_setup(struct drm_encoder *encoder, int action, uint8_t | |||
878 | } | 877 | } |
879 | } | 878 | } |
880 | break; | 879 | break; |
881 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
882 | /* Only dig2 encoder can drive LVTMA */ | ||
883 | args.v1.ucConfig |= ATOM_TRANSMITTER_CONFIG_DIG2_ENCODER; | ||
884 | break; | ||
885 | } | 880 | } |
886 | 881 | ||
887 | if (radeon_encoder->pixel_clock > 165000) | 882 | if (radeon_encoder->pixel_clock > 165000) |
@@ -1046,6 +1041,7 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder) | |||
1046 | union crtc_sourc_param args; | 1041 | union crtc_sourc_param args; |
1047 | int index = GetIndexIntoMasterTable(COMMAND, SelectCRTC_Source); | 1042 | int index = GetIndexIntoMasterTable(COMMAND, SelectCRTC_Source); |
1048 | uint8_t frev, crev; | 1043 | uint8_t frev, crev; |
1044 | struct radeon_encoder_atom_dig *dig; | ||
1049 | 1045 | ||
1050 | memset(&args, 0, sizeof(args)); | 1046 | memset(&args, 0, sizeof(args)); |
1051 | 1047 | ||
@@ -1109,40 +1105,16 @@ atombios_set_encoder_crtc_source(struct drm_encoder *encoder) | |||
1109 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: | 1105 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY: |
1110 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: | 1106 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1: |
1111 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: | 1107 | case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2: |
1112 | if (ASIC_IS_DCE32(rdev)) { | 1108 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: |
1113 | if (radeon_crtc->crtc_id) | 1109 | dig = radeon_encoder->enc_priv; |
1114 | args.v2.ucEncoderID = ASIC_INT_DIG2_ENCODER_ID; | 1110 | if (dig->dig_encoder) |
1115 | else | 1111 | args.v2.ucEncoderID = ASIC_INT_DIG2_ENCODER_ID; |
1116 | args.v2.ucEncoderID = ASIC_INT_DIG1_ENCODER_ID; | 1112 | else |
1117 | } else { | 1113 | args.v2.ucEncoderID = ASIC_INT_DIG1_ENCODER_ID; |
1118 | struct drm_connector *connector; | ||
1119 | struct radeon_connector *radeon_connector; | ||
1120 | struct radeon_connector_atom_dig *dig_connector; | ||
1121 | |||
1122 | connector = radeon_get_connector_for_encoder(encoder); | ||
1123 | if (!connector) | ||
1124 | return; | ||
1125 | radeon_connector = to_radeon_connector(connector); | ||
1126 | if (!radeon_connector->con_priv) | ||
1127 | return; | ||
1128 | dig_connector = radeon_connector->con_priv; | ||
1129 | |||
1130 | /* XXX doesn't really matter which dig encoder we pick as long as it's | ||
1131 | * not already in use | ||
1132 | */ | ||
1133 | if (dig_connector->linkb) | ||
1134 | args.v2.ucEncoderID = ASIC_INT_DIG2_ENCODER_ID; | ||
1135 | else | ||
1136 | args.v2.ucEncoderID = ASIC_INT_DIG1_ENCODER_ID; | ||
1137 | } | ||
1138 | break; | 1114 | break; |
1139 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: | 1115 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DVO1: |
1140 | args.v2.ucEncoderID = ASIC_INT_DVO_ENCODER_ID; | 1116 | args.v2.ucEncoderID = ASIC_INT_DVO_ENCODER_ID; |
1141 | break; | 1117 | break; |
1142 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA: | ||
1143 | /* Only dig2 encoder can drive LVTMA */ | ||
1144 | args.v2.ucEncoderID = ASIC_INT_DIG2_ENCODER_ID; | ||
1145 | break; | ||
1146 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: | 1118 | case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_DAC1: |
1147 | if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) | 1119 | if (radeon_encoder->active_device & (ATOM_DEVICE_TV_SUPPORT)) |
1148 | args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; | 1120 | args.v2.ucEncoderID = ASIC_INT_TV_ENCODER_ID; |
@@ -1202,6 +1174,47 @@ atombios_apply_encoder_quirks(struct drm_encoder *encoder, | |||
1202 | } | 1174 | } |
1203 | } | 1175 | } |
1204 | 1176 | ||
1177 | static int radeon_atom_pick_dig_encoder(struct drm_encoder *encoder) | ||
1178 | { | ||
1179 | struct drm_device *dev = encoder->dev; | ||
1180 | struct radeon_device *rdev = dev->dev_private; | ||
1181 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(encoder->crtc); | ||
1182 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | ||
1183 | struct drm_encoder *test_encoder; | ||
1184 | struct radeon_encoder_atom_dig *dig; | ||
1185 | uint32_t dig_enc_in_use = 0; | ||
1186 | /* on DCE32 and encoder can driver any block so just crtc id */ | ||
1187 | if (ASIC_IS_DCE32(rdev)) { | ||
1188 | return radeon_crtc->crtc_id; | ||
1189 | } | ||
1190 | |||
1191 | /* on DCE3 - LVTMA can only be driven by DIGB */ | ||
1192 | list_for_each_entry(test_encoder, &dev->mode_config.encoder_list, head) { | ||
1193 | struct radeon_encoder *radeon_test_encoder; | ||
1194 | |||
1195 | if (encoder == test_encoder) | ||
1196 | continue; | ||
1197 | |||
1198 | if (!radeon_encoder_is_digital(test_encoder)) | ||
1199 | continue; | ||
1200 | |||
1201 | radeon_test_encoder = to_radeon_encoder(test_encoder); | ||
1202 | dig = radeon_test_encoder->enc_priv; | ||
1203 | |||
1204 | if (dig->dig_encoder >= 0) | ||
1205 | dig_enc_in_use |= (1 << dig->dig_encoder); | ||
1206 | } | ||
1207 | |||
1208 | if (radeon_encoder->encoder_id == ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA) { | ||
1209 | if (dig_enc_in_use & 0x2) | ||
1210 | DRM_ERROR("LVDS required digital encoder 2 but it was in use - stealing\n"); | ||
1211 | return 1; | ||
1212 | } | ||
1213 | if (!(dig_enc_in_use & 1)) | ||
1214 | return 0; | ||
1215 | return 1; | ||
1216 | } | ||
1217 | |||
1205 | static void | 1218 | static void |
1206 | radeon_atom_encoder_mode_set(struct drm_encoder *encoder, | 1219 | radeon_atom_encoder_mode_set(struct drm_encoder *encoder, |
1207 | struct drm_display_mode *mode, | 1220 | struct drm_display_mode *mode, |
@@ -1214,12 +1227,9 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder, | |||
1214 | 1227 | ||
1215 | if (radeon_encoder->active_device & | 1228 | if (radeon_encoder->active_device & |
1216 | (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) { | 1229 | (ATOM_DEVICE_DFP_SUPPORT | ATOM_DEVICE_LCD_SUPPORT)) { |
1217 | if (radeon_encoder->enc_priv) { | 1230 | struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv; |
1218 | struct radeon_encoder_atom_dig *dig; | 1231 | if (dig) |
1219 | 1232 | dig->dig_encoder = radeon_atom_pick_dig_encoder(encoder); | |
1220 | dig = radeon_encoder->enc_priv; | ||
1221 | dig->dig_block = radeon_crtc->crtc_id; | ||
1222 | } | ||
1223 | } | 1233 | } |
1224 | radeon_encoder->pixel_clock = adjusted_mode->clock; | 1234 | radeon_encoder->pixel_clock = adjusted_mode->clock; |
1225 | 1235 | ||
@@ -1379,7 +1389,13 @@ static void radeon_atom_encoder_commit(struct drm_encoder *encoder) | |||
1379 | static void radeon_atom_encoder_disable(struct drm_encoder *encoder) | 1389 | static void radeon_atom_encoder_disable(struct drm_encoder *encoder) |
1380 | { | 1390 | { |
1381 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 1391 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
1392 | struct radeon_encoder_atom_dig *dig; | ||
1382 | radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); | 1393 | radeon_atom_encoder_dpms(encoder, DRM_MODE_DPMS_OFF); |
1394 | |||
1395 | if (radeon_encoder_is_digital(encoder)) { | ||
1396 | dig = radeon_encoder->enc_priv; | ||
1397 | dig->dig_encoder = -1; | ||
1398 | } | ||
1383 | radeon_encoder->active_device = 0; | 1399 | radeon_encoder->active_device = 0; |
1384 | } | 1400 | } |
1385 | 1401 | ||
@@ -1436,6 +1452,7 @@ radeon_atombios_set_dig_info(struct radeon_encoder *radeon_encoder) | |||
1436 | 1452 | ||
1437 | /* coherent mode by default */ | 1453 | /* coherent mode by default */ |
1438 | dig->coherent_mode = true; | 1454 | dig->coherent_mode = true; |
1455 | dig->dig_encoder = -1; | ||
1439 | 1456 | ||
1440 | return dig; | 1457 | return dig; |
1441 | } | 1458 | } |
diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index 3ba213d1b06c..d71e346e9ab5 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c | |||
@@ -248,7 +248,7 @@ int radeonfb_create(struct drm_device *dev, | |||
248 | if (ret) | 248 | if (ret) |
249 | goto out_unref; | 249 | goto out_unref; |
250 | 250 | ||
251 | memset_io(fbptr, 0xff, aligned_size); | 251 | memset_io(fbptr, 0x0, aligned_size); |
252 | 252 | ||
253 | strcpy(info->fix.id, "radeondrmfb"); | 253 | strcpy(info->fix.id, "radeondrmfb"); |
254 | 254 | ||
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 0e1325e18534..db8e9a355a01 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c | |||
@@ -308,6 +308,9 @@ int radeon_gem_wait_idle_ioctl(struct drm_device *dev, void *data, | |||
308 | } | 308 | } |
309 | robj = gobj->driver_private; | 309 | robj = gobj->driver_private; |
310 | r = radeon_bo_wait(robj, NULL, false); | 310 | r = radeon_bo_wait(robj, NULL, false); |
311 | /* callback hw specific functions if any */ | ||
312 | if (robj->rdev->asic->ioctl_wait_idle) | ||
313 | robj->rdev->asic->ioctl_wait_idle(robj->rdev, robj); | ||
311 | mutex_lock(&dev->struct_mutex); | 314 | mutex_lock(&dev->struct_mutex); |
312 | drm_gem_object_unreference(gobj); | 315 | drm_gem_object_unreference(gobj); |
313 | mutex_unlock(&dev->struct_mutex); | 316 | mutex_unlock(&dev->struct_mutex); |
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c index cc27485a07ad..b6d8081e1246 100644 --- a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c +++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c | |||
@@ -339,69 +339,6 @@ void radeon_crtc_dpms(struct drm_crtc *crtc, int mode) | |||
339 | } | 339 | } |
340 | } | 340 | } |
341 | 341 | ||
342 | /* properly set crtc bpp when using atombios */ | ||
343 | void radeon_legacy_atom_set_surface(struct drm_crtc *crtc) | ||
344 | { | ||
345 | struct drm_device *dev = crtc->dev; | ||
346 | struct radeon_device *rdev = dev->dev_private; | ||
347 | struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc); | ||
348 | int format; | ||
349 | uint32_t crtc_gen_cntl; | ||
350 | uint32_t disp_merge_cntl; | ||
351 | uint32_t crtc_pitch; | ||
352 | |||
353 | switch (crtc->fb->bits_per_pixel) { | ||
354 | case 8: | ||
355 | format = 2; | ||
356 | break; | ||
357 | case 15: /* 555 */ | ||
358 | format = 3; | ||
359 | break; | ||
360 | case 16: /* 565 */ | ||
361 | format = 4; | ||
362 | break; | ||
363 | case 24: /* RGB */ | ||
364 | format = 5; | ||
365 | break; | ||
366 | case 32: /* xRGB */ | ||
367 | format = 6; | ||
368 | break; | ||
369 | default: | ||
370 | return; | ||
371 | } | ||
372 | |||
373 | crtc_pitch = ((((crtc->fb->pitch / (crtc->fb->bits_per_pixel / 8)) * crtc->fb->bits_per_pixel) + | ||
374 | ((crtc->fb->bits_per_pixel * 8) - 1)) / | ||
375 | (crtc->fb->bits_per_pixel * 8)); | ||
376 | crtc_pitch |= crtc_pitch << 16; | ||
377 | |||
378 | WREG32(RADEON_CRTC_PITCH + radeon_crtc->crtc_offset, crtc_pitch); | ||
379 | |||
380 | switch (radeon_crtc->crtc_id) { | ||
381 | case 0: | ||
382 | disp_merge_cntl = RREG32(RADEON_DISP_MERGE_CNTL); | ||
383 | disp_merge_cntl &= ~RADEON_DISP_RGB_OFFSET_EN; | ||
384 | WREG32(RADEON_DISP_MERGE_CNTL, disp_merge_cntl); | ||
385 | |||
386 | crtc_gen_cntl = RREG32(RADEON_CRTC_GEN_CNTL) & 0xfffff0ff; | ||
387 | crtc_gen_cntl |= (format << 8); | ||
388 | crtc_gen_cntl |= RADEON_CRTC_EXT_DISP_EN; | ||
389 | WREG32(RADEON_CRTC_GEN_CNTL, crtc_gen_cntl); | ||
390 | break; | ||
391 | case 1: | ||
392 | disp_merge_cntl = RREG32(RADEON_DISP2_MERGE_CNTL); | ||
393 | disp_merge_cntl &= ~RADEON_DISP2_RGB_OFFSET_EN; | ||
394 | WREG32(RADEON_DISP2_MERGE_CNTL, disp_merge_cntl); | ||
395 | |||
396 | crtc_gen_cntl = RREG32(RADEON_CRTC2_GEN_CNTL) & 0xfffff0ff; | ||
397 | crtc_gen_cntl |= (format << 8); | ||
398 | WREG32(RADEON_CRTC2_GEN_CNTL, crtc_gen_cntl); | ||
399 | WREG32(RADEON_FP_H2_SYNC_STRT_WID, RREG32(RADEON_CRTC2_H_SYNC_STRT_WID)); | ||
400 | WREG32(RADEON_FP_V2_SYNC_STRT_WID, RREG32(RADEON_CRTC2_V_SYNC_STRT_WID)); | ||
401 | break; | ||
402 | } | ||
403 | } | ||
404 | |||
405 | int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, | 342 | int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, |
406 | struct drm_framebuffer *old_fb) | 343 | struct drm_framebuffer *old_fb) |
407 | { | 344 | { |
@@ -755,7 +692,6 @@ static void radeon_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
755 | uint32_t post_divider = 0; | 692 | uint32_t post_divider = 0; |
756 | uint32_t freq = 0; | 693 | uint32_t freq = 0; |
757 | uint8_t pll_gain; | 694 | uint8_t pll_gain; |
758 | int pll_flags = RADEON_PLL_LEGACY; | ||
759 | bool use_bios_divs = false; | 695 | bool use_bios_divs = false; |
760 | /* PLL registers */ | 696 | /* PLL registers */ |
761 | uint32_t pll_ref_div = 0; | 697 | uint32_t pll_ref_div = 0; |
@@ -789,10 +725,12 @@ static void radeon_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
789 | else | 725 | else |
790 | pll = &rdev->clock.p1pll; | 726 | pll = &rdev->clock.p1pll; |
791 | 727 | ||
728 | pll->flags = RADEON_PLL_LEGACY; | ||
729 | |||
792 | if (mode->clock > 200000) /* range limits??? */ | 730 | if (mode->clock > 200000) /* range limits??? */ |
793 | pll_flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; | 731 | pll->flags |= RADEON_PLL_PREFER_HIGH_FB_DIV; |
794 | else | 732 | else |
795 | pll_flags |= RADEON_PLL_PREFER_LOW_REF_DIV; | 733 | pll->flags |= RADEON_PLL_PREFER_LOW_REF_DIV; |
796 | 734 | ||
797 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { | 735 | list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) { |
798 | if (encoder->crtc == crtc) { | 736 | if (encoder->crtc == crtc) { |
@@ -804,7 +742,7 @@ static void radeon_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
804 | } | 742 | } |
805 | 743 | ||
806 | if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) | 744 | if (encoder->encoder_type != DRM_MODE_ENCODER_DAC) |
807 | pll_flags |= RADEON_PLL_NO_ODD_POST_DIV; | 745 | pll->flags |= RADEON_PLL_NO_ODD_POST_DIV; |
808 | if (encoder->encoder_type == DRM_MODE_ENCODER_LVDS) { | 746 | if (encoder->encoder_type == DRM_MODE_ENCODER_LVDS) { |
809 | if (!rdev->is_atom_bios) { | 747 | if (!rdev->is_atom_bios) { |
810 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); | 748 | struct radeon_encoder *radeon_encoder = to_radeon_encoder(encoder); |
@@ -819,7 +757,7 @@ static void radeon_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
819 | } | 757 | } |
820 | } | 758 | } |
821 | } | 759 | } |
822 | pll_flags |= RADEON_PLL_USE_REF_DIV; | 760 | pll->flags |= RADEON_PLL_USE_REF_DIV; |
823 | } | 761 | } |
824 | } | 762 | } |
825 | } | 763 | } |
@@ -829,8 +767,7 @@ static void radeon_set_pll(struct drm_crtc *crtc, struct drm_display_mode *mode) | |||
829 | if (!use_bios_divs) { | 767 | if (!use_bios_divs) { |
830 | radeon_compute_pll(pll, mode->clock, | 768 | radeon_compute_pll(pll, mode->clock, |
831 | &freq, &feedback_div, &frac_fb_div, | 769 | &freq, &feedback_div, &frac_fb_div, |
832 | &reference_div, &post_divider, | 770 | &reference_div, &post_divider); |
833 | pll_flags); | ||
834 | 771 | ||
835 | for (post_div = &post_divs[0]; post_div->divider; ++post_div) { | 772 | for (post_div = &post_divs[0]; post_div->divider; ++post_div) { |
836 | if (post_div->divider == post_divider) | 773 | if (post_div->divider == post_divider) |
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h index 91cb041cb40d..e81b2aeb6a8f 100644 --- a/drivers/gpu/drm/radeon/radeon_mode.h +++ b/drivers/gpu/drm/radeon/radeon_mode.h | |||
@@ -125,16 +125,24 @@ struct radeon_tmds_pll { | |||
125 | #define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9) | 125 | #define RADEON_PLL_PREFER_HIGH_POST_DIV (1 << 9) |
126 | #define RADEON_PLL_USE_FRAC_FB_DIV (1 << 10) | 126 | #define RADEON_PLL_USE_FRAC_FB_DIV (1 << 10) |
127 | #define RADEON_PLL_PREFER_CLOSEST_LOWER (1 << 11) | 127 | #define RADEON_PLL_PREFER_CLOSEST_LOWER (1 << 11) |
128 | #define RADEON_PLL_USE_POST_DIV (1 << 12) | ||
128 | 129 | ||
129 | struct radeon_pll { | 130 | struct radeon_pll { |
130 | uint16_t reference_freq; | 131 | /* reference frequency */ |
131 | uint16_t reference_div; | 132 | uint32_t reference_freq; |
133 | |||
134 | /* fixed dividers */ | ||
135 | uint32_t reference_div; | ||
136 | uint32_t post_div; | ||
137 | |||
138 | /* pll in/out limits */ | ||
132 | uint32_t pll_in_min; | 139 | uint32_t pll_in_min; |
133 | uint32_t pll_in_max; | 140 | uint32_t pll_in_max; |
134 | uint32_t pll_out_min; | 141 | uint32_t pll_out_min; |
135 | uint32_t pll_out_max; | 142 | uint32_t pll_out_max; |
136 | uint16_t xclk; | 143 | uint32_t best_vco; |
137 | 144 | ||
145 | /* divider limits */ | ||
138 | uint32_t min_ref_div; | 146 | uint32_t min_ref_div; |
139 | uint32_t max_ref_div; | 147 | uint32_t max_ref_div; |
140 | uint32_t min_post_div; | 148 | uint32_t min_post_div; |
@@ -143,7 +151,12 @@ struct radeon_pll { | |||
143 | uint32_t max_feedback_div; | 151 | uint32_t max_feedback_div; |
144 | uint32_t min_frac_feedback_div; | 152 | uint32_t min_frac_feedback_div; |
145 | uint32_t max_frac_feedback_div; | 153 | uint32_t max_frac_feedback_div; |
146 | uint32_t best_vco; | 154 | |
155 | /* flags for the current clock */ | ||
156 | uint32_t flags; | ||
157 | |||
158 | /* pll id */ | ||
159 | uint32_t id; | ||
147 | }; | 160 | }; |
148 | 161 | ||
149 | struct radeon_i2c_chan { | 162 | struct radeon_i2c_chan { |
@@ -286,7 +299,7 @@ struct radeon_atom_ss { | |||
286 | struct radeon_encoder_atom_dig { | 299 | struct radeon_encoder_atom_dig { |
287 | /* atom dig */ | 300 | /* atom dig */ |
288 | bool coherent_mode; | 301 | bool coherent_mode; |
289 | int dig_block; | 302 | int dig_encoder; /* -1 disabled, 0 DIGA, 1 DIGB */ |
290 | /* atom lvds */ | 303 | /* atom lvds */ |
291 | uint32_t lvds_misc; | 304 | uint32_t lvds_misc; |
292 | uint16_t panel_pwr_delay; | 305 | uint16_t panel_pwr_delay; |
@@ -417,8 +430,7 @@ extern void radeon_compute_pll(struct radeon_pll *pll, | |||
417 | uint32_t *fb_div_p, | 430 | uint32_t *fb_div_p, |
418 | uint32_t *frac_fb_div_p, | 431 | uint32_t *frac_fb_div_p, |
419 | uint32_t *ref_div_p, | 432 | uint32_t *ref_div_p, |
420 | uint32_t *post_div_p, | 433 | uint32_t *post_div_p); |
421 | int flags); | ||
422 | 434 | ||
423 | extern void radeon_compute_pll_avivo(struct radeon_pll *pll, | 435 | extern void radeon_compute_pll_avivo(struct radeon_pll *pll, |
424 | uint64_t freq, | 436 | uint64_t freq, |
@@ -426,8 +438,7 @@ extern void radeon_compute_pll_avivo(struct radeon_pll *pll, | |||
426 | uint32_t *fb_div_p, | 438 | uint32_t *fb_div_p, |
427 | uint32_t *frac_fb_div_p, | 439 | uint32_t *frac_fb_div_p, |
428 | uint32_t *ref_div_p, | 440 | uint32_t *ref_div_p, |
429 | uint32_t *post_div_p, | 441 | uint32_t *post_div_p); |
430 | int flags); | ||
431 | 442 | ||
432 | extern void radeon_setup_encoder_clones(struct drm_device *dev); | 443 | extern void radeon_setup_encoder_clones(struct drm_device *dev); |
433 | 444 | ||
@@ -453,7 +464,6 @@ extern void atombios_crtc_dpms(struct drm_crtc *crtc, int mode); | |||
453 | 464 | ||
454 | extern int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, | 465 | extern int radeon_crtc_set_base(struct drm_crtc *crtc, int x, int y, |
455 | struct drm_framebuffer *old_fb); | 466 | struct drm_framebuffer *old_fb); |
456 | extern void radeon_legacy_atom_set_surface(struct drm_crtc *crtc); | ||
457 | 467 | ||
458 | extern int radeon_crtc_cursor_set(struct drm_crtc *crtc, | 468 | extern int radeon_crtc_cursor_set(struct drm_crtc *crtc, |
459 | struct drm_file *file_priv, | 469 | struct drm_file *file_priv, |
diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c index 4e636de877b2..d72a71bff218 100644 --- a/drivers/gpu/drm/radeon/radeon_object.c +++ b/drivers/gpu/drm/radeon/radeon_object.c | |||
@@ -220,7 +220,8 @@ int radeon_bo_unpin(struct radeon_bo *bo) | |||
220 | 220 | ||
221 | int radeon_bo_evict_vram(struct radeon_device *rdev) | 221 | int radeon_bo_evict_vram(struct radeon_device *rdev) |
222 | { | 222 | { |
223 | if (rdev->flags & RADEON_IS_IGP) { | 223 | /* late 2.6.33 fix IGP hibernate - we need pm ops to do this correct */ |
224 | if (0 && (rdev->flags & RADEON_IS_IGP)) { | ||
224 | if (rdev->mc.igp_sideport_enabled == false) | 225 | if (rdev->mc.igp_sideport_enabled == false) |
225 | /* Useless to evict on IGP chips */ | 226 | /* Useless to evict on IGP chips */ |
226 | return 0; | 227 | return 0; |
diff --git a/drivers/gpu/drm/radeon/reg_srcs/r200 b/drivers/gpu/drm/radeon/reg_srcs/r200 index 6021c8849a16..c29ac434ac9c 100644 --- a/drivers/gpu/drm/radeon/reg_srcs/r200 +++ b/drivers/gpu/drm/radeon/reg_srcs/r200 | |||
@@ -91,6 +91,8 @@ r200 0x3294 | |||
91 | 0x22b8 SE_TCL_TEX_CYL_WRAP_CTL | 91 | 0x22b8 SE_TCL_TEX_CYL_WRAP_CTL |
92 | 0x22c0 SE_TCL_UCP_VERT_BLEND_CNTL | 92 | 0x22c0 SE_TCL_UCP_VERT_BLEND_CNTL |
93 | 0x22c4 SE_TCL_POINT_SPRITE_CNTL | 93 | 0x22c4 SE_TCL_POINT_SPRITE_CNTL |
94 | 0x22d0 SE_PVS_CNTL | ||
95 | 0x22d4 SE_PVS_CONST_CNTL | ||
94 | 0x2648 RE_POINTSIZE | 96 | 0x2648 RE_POINTSIZE |
95 | 0x26c0 RE_TOP_LEFT | 97 | 0x26c0 RE_TOP_LEFT |
96 | 0x26c4 RE_MISC | 98 | 0x26c4 RE_MISC |
diff --git a/drivers/gpu/drm/radeon/rs400.c b/drivers/gpu/drm/radeon/rs400.c index 9f5418983e2a..287fcebfb4e6 100644 --- a/drivers/gpu/drm/radeon/rs400.c +++ b/drivers/gpu/drm/radeon/rs400.c | |||
@@ -223,15 +223,31 @@ int rs400_gart_set_page(struct radeon_device *rdev, int i, uint64_t addr) | |||
223 | return 0; | 223 | return 0; |
224 | } | 224 | } |
225 | 225 | ||
226 | int rs400_mc_wait_for_idle(struct radeon_device *rdev) | ||
227 | { | ||
228 | unsigned i; | ||
229 | uint32_t tmp; | ||
230 | |||
231 | for (i = 0; i < rdev->usec_timeout; i++) { | ||
232 | /* read MC_STATUS */ | ||
233 | tmp = RREG32(0x0150); | ||
234 | if (tmp & (1 << 2)) { | ||
235 | return 0; | ||
236 | } | ||
237 | DRM_UDELAY(1); | ||
238 | } | ||
239 | return -1; | ||
240 | } | ||
241 | |||
226 | void rs400_gpu_init(struct radeon_device *rdev) | 242 | void rs400_gpu_init(struct radeon_device *rdev) |
227 | { | 243 | { |
228 | /* FIXME: HDP same place on rs400 ? */ | 244 | /* FIXME: HDP same place on rs400 ? */ |
229 | r100_hdp_reset(rdev); | 245 | r100_hdp_reset(rdev); |
230 | /* FIXME: is this correct ? */ | 246 | /* FIXME: is this correct ? */ |
231 | r420_pipes_init(rdev); | 247 | r420_pipes_init(rdev); |
232 | if (r300_mc_wait_for_idle(rdev)) { | 248 | if (rs400_mc_wait_for_idle(rdev)) { |
233 | printk(KERN_WARNING "Failed to wait MC idle while " | 249 | printk(KERN_WARNING "rs400: Failed to wait MC idle while " |
234 | "programming pipes. Bad things might happen.\n"); | 250 | "programming pipes. Bad things might happen. %08x\n", RREG32(0x150)); |
235 | } | 251 | } |
236 | } | 252 | } |
237 | 253 | ||
@@ -370,8 +386,8 @@ void rs400_mc_program(struct radeon_device *rdev) | |||
370 | r100_mc_stop(rdev, &save); | 386 | r100_mc_stop(rdev, &save); |
371 | 387 | ||
372 | /* Wait for mc idle */ | 388 | /* Wait for mc idle */ |
373 | if (r300_mc_wait_for_idle(rdev)) | 389 | if (rs400_mc_wait_for_idle(rdev)) |
374 | dev_warn(rdev->dev, "Wait MC idle timeout before updating MC.\n"); | 390 | dev_warn(rdev->dev, "rs400: Wait MC idle timeout before updating MC.\n"); |
375 | WREG32(R_000148_MC_FB_LOCATION, | 391 | WREG32(R_000148_MC_FB_LOCATION, |
376 | S_000148_MC_FB_START(rdev->mc.vram_start >> 16) | | 392 | S_000148_MC_FB_START(rdev->mc.vram_start >> 16) | |
377 | S_000148_MC_FB_TOP(rdev->mc.vram_end >> 16)); | 393 | S_000148_MC_FB_TOP(rdev->mc.vram_end >> 16)); |
@@ -448,7 +464,6 @@ int rs400_suspend(struct radeon_device *rdev) | |||
448 | 464 | ||
449 | void rs400_fini(struct radeon_device *rdev) | 465 | void rs400_fini(struct radeon_device *rdev) |
450 | { | 466 | { |
451 | rs400_suspend(rdev); | ||
452 | r100_cp_fini(rdev); | 467 | r100_cp_fini(rdev); |
453 | r100_wb_fini(rdev); | 468 | r100_wb_fini(rdev); |
454 | r100_ib_fini(rdev); | 469 | r100_ib_fini(rdev); |
@@ -527,7 +542,6 @@ int rs400_init(struct radeon_device *rdev) | |||
527 | if (r) { | 542 | if (r) { |
528 | /* Somethings want wront with the accel init stop accel */ | 543 | /* Somethings want wront with the accel init stop accel */ |
529 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 544 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
530 | rs400_suspend(rdev); | ||
531 | r100_cp_fini(rdev); | 545 | r100_cp_fini(rdev); |
532 | r100_wb_fini(rdev); | 546 | r100_wb_fini(rdev); |
533 | r100_ib_fini(rdev); | 547 | r100_ib_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c index d5255751e7b3..c3818562a13e 100644 --- a/drivers/gpu/drm/radeon/rs600.c +++ b/drivers/gpu/drm/radeon/rs600.c | |||
@@ -610,7 +610,6 @@ int rs600_suspend(struct radeon_device *rdev) | |||
610 | 610 | ||
611 | void rs600_fini(struct radeon_device *rdev) | 611 | void rs600_fini(struct radeon_device *rdev) |
612 | { | 612 | { |
613 | rs600_suspend(rdev); | ||
614 | r100_cp_fini(rdev); | 613 | r100_cp_fini(rdev); |
615 | r100_wb_fini(rdev); | 614 | r100_wb_fini(rdev); |
616 | r100_ib_fini(rdev); | 615 | r100_ib_fini(rdev); |
@@ -689,7 +688,6 @@ int rs600_init(struct radeon_device *rdev) | |||
689 | if (r) { | 688 | if (r) { |
690 | /* Somethings want wront with the accel init stop accel */ | 689 | /* Somethings want wront with the accel init stop accel */ |
691 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 690 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
692 | rs600_suspend(rdev); | ||
693 | r100_cp_fini(rdev); | 691 | r100_cp_fini(rdev); |
694 | r100_wb_fini(rdev); | 692 | r100_wb_fini(rdev); |
695 | r100_ib_fini(rdev); | 693 | r100_ib_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/rs690.c b/drivers/gpu/drm/radeon/rs690.c index cd31da913771..06e2771aee5a 100644 --- a/drivers/gpu/drm/radeon/rs690.c +++ b/drivers/gpu/drm/radeon/rs690.c | |||
@@ -676,7 +676,6 @@ int rs690_suspend(struct radeon_device *rdev) | |||
676 | 676 | ||
677 | void rs690_fini(struct radeon_device *rdev) | 677 | void rs690_fini(struct radeon_device *rdev) |
678 | { | 678 | { |
679 | rs690_suspend(rdev); | ||
680 | r100_cp_fini(rdev); | 679 | r100_cp_fini(rdev); |
681 | r100_wb_fini(rdev); | 680 | r100_wb_fini(rdev); |
682 | r100_ib_fini(rdev); | 681 | r100_ib_fini(rdev); |
@@ -756,7 +755,6 @@ int rs690_init(struct radeon_device *rdev) | |||
756 | if (r) { | 755 | if (r) { |
757 | /* Somethings want wront with the accel init stop accel */ | 756 | /* Somethings want wront with the accel init stop accel */ |
758 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 757 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
759 | rs690_suspend(rdev); | ||
760 | r100_cp_fini(rdev); | 758 | r100_cp_fini(rdev); |
761 | r100_wb_fini(rdev); | 759 | r100_wb_fini(rdev); |
762 | r100_ib_fini(rdev); | 760 | r100_ib_fini(rdev); |
diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c index 62756717b044..0e1e6b8632b8 100644 --- a/drivers/gpu/drm/radeon/rv515.c +++ b/drivers/gpu/drm/radeon/rv515.c | |||
@@ -537,7 +537,6 @@ void rv515_set_safe_registers(struct radeon_device *rdev) | |||
537 | 537 | ||
538 | void rv515_fini(struct radeon_device *rdev) | 538 | void rv515_fini(struct radeon_device *rdev) |
539 | { | 539 | { |
540 | rv515_suspend(rdev); | ||
541 | r100_cp_fini(rdev); | 540 | r100_cp_fini(rdev); |
542 | r100_wb_fini(rdev); | 541 | r100_wb_fini(rdev); |
543 | r100_ib_fini(rdev); | 542 | r100_ib_fini(rdev); |
@@ -615,13 +614,12 @@ int rv515_init(struct radeon_device *rdev) | |||
615 | if (r) { | 614 | if (r) { |
616 | /* Somethings want wront with the accel init stop accel */ | 615 | /* Somethings want wront with the accel init stop accel */ |
617 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); | 616 | dev_err(rdev->dev, "Disabling GPU acceleration\n"); |
618 | rv515_suspend(rdev); | ||
619 | r100_cp_fini(rdev); | 617 | r100_cp_fini(rdev); |
620 | r100_wb_fini(rdev); | 618 | r100_wb_fini(rdev); |
621 | r100_ib_fini(rdev); | 619 | r100_ib_fini(rdev); |
620 | radeon_irq_kms_fini(rdev); | ||
622 | rv370_pcie_gart_fini(rdev); | 621 | rv370_pcie_gart_fini(rdev); |
623 | radeon_agp_fini(rdev); | 622 | radeon_agp_fini(rdev); |
624 | radeon_irq_kms_fini(rdev); | ||
625 | rdev->accel_working = false; | 623 | rdev->accel_working = false; |
626 | } | 624 | } |
627 | return 0; | 625 | return 0; |
diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c index 59c71245fb91..5943d561fd1e 100644 --- a/drivers/gpu/drm/radeon/rv770.c +++ b/drivers/gpu/drm/radeon/rv770.c | |||
@@ -779,7 +779,6 @@ int rv770_mc_init(struct radeon_device *rdev) | |||
779 | fixed20_12 a; | 779 | fixed20_12 a; |
780 | u32 tmp; | 780 | u32 tmp; |
781 | int chansize, numchan; | 781 | int chansize, numchan; |
782 | int r; | ||
783 | 782 | ||
784 | /* Get VRAM informations */ | 783 | /* Get VRAM informations */ |
785 | rdev->mc.vram_is_ddr = true; | 784 | rdev->mc.vram_is_ddr = true; |
@@ -822,9 +821,6 @@ int rv770_mc_init(struct radeon_device *rdev) | |||
822 | rdev->mc.real_vram_size = rdev->mc.aper_size; | 821 | rdev->mc.real_vram_size = rdev->mc.aper_size; |
823 | 822 | ||
824 | if (rdev->flags & RADEON_IS_AGP) { | 823 | if (rdev->flags & RADEON_IS_AGP) { |
825 | r = radeon_agp_init(rdev); | ||
826 | if (r) | ||
827 | return r; | ||
828 | /* gtt_size is setup by radeon_agp_init */ | 824 | /* gtt_size is setup by radeon_agp_init */ |
829 | rdev->mc.gtt_location = rdev->mc.agp_base; | 825 | rdev->mc.gtt_location = rdev->mc.agp_base; |
830 | tmp = 0xFFFFFFFFUL - rdev->mc.agp_base - rdev->mc.gtt_size; | 826 | tmp = 0xFFFFFFFFUL - rdev->mc.agp_base - rdev->mc.gtt_size; |
@@ -891,26 +887,25 @@ static int rv770_startup(struct radeon_device *rdev) | |||
891 | return r; | 887 | return r; |
892 | } | 888 | } |
893 | rv770_gpu_init(rdev); | 889 | rv770_gpu_init(rdev); |
894 | 890 | r = r600_blit_init(rdev); | |
895 | if (!rdev->r600_blit.shader_obj) { | 891 | if (r) { |
896 | r = r600_blit_init(rdev); | 892 | r600_blit_fini(rdev); |
893 | rdev->asic->copy = NULL; | ||
894 | dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r); | ||
895 | } | ||
896 | /* pin copy shader into vram */ | ||
897 | if (rdev->r600_blit.shader_obj) { | ||
898 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | ||
899 | if (unlikely(r != 0)) | ||
900 | return r; | ||
901 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
902 | &rdev->r600_blit.shader_gpu_addr); | ||
903 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
897 | if (r) { | 904 | if (r) { |
898 | DRM_ERROR("radeon: failed blitter (%d).\n", r); | 905 | DRM_ERROR("failed to pin blit object %d\n", r); |
899 | return r; | 906 | return r; |
900 | } | 907 | } |
901 | } | 908 | } |
902 | |||
903 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | ||
904 | if (unlikely(r != 0)) | ||
905 | return r; | ||
906 | r = radeon_bo_pin(rdev->r600_blit.shader_obj, RADEON_GEM_DOMAIN_VRAM, | ||
907 | &rdev->r600_blit.shader_gpu_addr); | ||
908 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
909 | if (r) { | ||
910 | DRM_ERROR("failed to pin blit object %d\n", r); | ||
911 | return r; | ||
912 | } | ||
913 | |||
914 | /* Enable IRQ */ | 909 | /* Enable IRQ */ |
915 | r = r600_irq_init(rdev); | 910 | r = r600_irq_init(rdev); |
916 | if (r) { | 911 | if (r) { |
@@ -972,13 +967,16 @@ int rv770_suspend(struct radeon_device *rdev) | |||
972 | /* FIXME: we should wait for ring to be empty */ | 967 | /* FIXME: we should wait for ring to be empty */ |
973 | r700_cp_stop(rdev); | 968 | r700_cp_stop(rdev); |
974 | rdev->cp.ready = false; | 969 | rdev->cp.ready = false; |
970 | r600_irq_suspend(rdev); | ||
975 | r600_wb_disable(rdev); | 971 | r600_wb_disable(rdev); |
976 | rv770_pcie_gart_disable(rdev); | 972 | rv770_pcie_gart_disable(rdev); |
977 | /* unpin shaders bo */ | 973 | /* unpin shaders bo */ |
978 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); | 974 | if (rdev->r600_blit.shader_obj) { |
979 | if (likely(r == 0)) { | 975 | r = radeon_bo_reserve(rdev->r600_blit.shader_obj, false); |
980 | radeon_bo_unpin(rdev->r600_blit.shader_obj); | 976 | if (likely(r == 0)) { |
981 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | 977 | radeon_bo_unpin(rdev->r600_blit.shader_obj); |
978 | radeon_bo_unreserve(rdev->r600_blit.shader_obj); | ||
979 | } | ||
982 | } | 980 | } |
983 | return 0; | 981 | return 0; |
984 | } | 982 | } |
@@ -1037,6 +1035,11 @@ int rv770_init(struct radeon_device *rdev) | |||
1037 | r = radeon_fence_driver_init(rdev); | 1035 | r = radeon_fence_driver_init(rdev); |
1038 | if (r) | 1036 | if (r) |
1039 | return r; | 1037 | return r; |
1038 | if (rdev->flags & RADEON_IS_AGP) { | ||
1039 | r = radeon_agp_init(rdev); | ||
1040 | if (r) | ||
1041 | radeon_agp_disable(rdev); | ||
1042 | } | ||
1040 | r = rv770_mc_init(rdev); | 1043 | r = rv770_mc_init(rdev); |
1041 | if (r) | 1044 | if (r) |
1042 | return r; | 1045 | return r; |
@@ -1062,22 +1065,25 @@ int rv770_init(struct radeon_device *rdev) | |||
1062 | rdev->accel_working = true; | 1065 | rdev->accel_working = true; |
1063 | r = rv770_startup(rdev); | 1066 | r = rv770_startup(rdev); |
1064 | if (r) { | 1067 | if (r) { |
1065 | rv770_suspend(rdev); | 1068 | dev_err(rdev->dev, "disabling GPU acceleration\n"); |
1069 | r600_cp_fini(rdev); | ||
1066 | r600_wb_fini(rdev); | 1070 | r600_wb_fini(rdev); |
1067 | radeon_ring_fini(rdev); | 1071 | r600_irq_fini(rdev); |
1072 | radeon_irq_kms_fini(rdev); | ||
1068 | rv770_pcie_gart_fini(rdev); | 1073 | rv770_pcie_gart_fini(rdev); |
1069 | rdev->accel_working = false; | 1074 | rdev->accel_working = false; |
1070 | } | 1075 | } |
1071 | if (rdev->accel_working) { | 1076 | if (rdev->accel_working) { |
1072 | r = radeon_ib_pool_init(rdev); | 1077 | r = radeon_ib_pool_init(rdev); |
1073 | if (r) { | 1078 | if (r) { |
1074 | DRM_ERROR("radeon: failed initializing IB pool (%d).\n", r); | 1079 | dev_err(rdev->dev, "IB initialization failed (%d).\n", r); |
1075 | rdev->accel_working = false; | ||
1076 | } | ||
1077 | r = r600_ib_test(rdev); | ||
1078 | if (r) { | ||
1079 | DRM_ERROR("radeon: failed testing IB (%d).\n", r); | ||
1080 | rdev->accel_working = false; | 1080 | rdev->accel_working = false; |
1081 | } else { | ||
1082 | r = r600_ib_test(rdev); | ||
1083 | if (r) { | ||
1084 | dev_err(rdev->dev, "IB test failed (%d).\n", r); | ||
1085 | rdev->accel_working = false; | ||
1086 | } | ||
1081 | } | 1087 | } |
1082 | } | 1088 | } |
1083 | return 0; | 1089 | return 0; |
@@ -1085,13 +1091,11 @@ int rv770_init(struct radeon_device *rdev) | |||
1085 | 1091 | ||
1086 | void rv770_fini(struct radeon_device *rdev) | 1092 | void rv770_fini(struct radeon_device *rdev) |
1087 | { | 1093 | { |
1088 | rv770_suspend(rdev); | ||
1089 | |||
1090 | r600_blit_fini(rdev); | 1094 | r600_blit_fini(rdev); |
1095 | r600_cp_fini(rdev); | ||
1096 | r600_wb_fini(rdev); | ||
1091 | r600_irq_fini(rdev); | 1097 | r600_irq_fini(rdev); |
1092 | radeon_irq_kms_fini(rdev); | 1098 | radeon_irq_kms_fini(rdev); |
1093 | radeon_ring_fini(rdev); | ||
1094 | r600_wb_fini(rdev); | ||
1095 | rv770_pcie_gart_fini(rdev); | 1099 | rv770_pcie_gart_fini(rdev); |
1096 | radeon_gem_fini(rdev); | 1100 | radeon_gem_fini(rdev); |
1097 | radeon_fence_driver_fini(rdev); | 1101 | radeon_fence_driver_fini(rdev); |
diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c index 2920f9a279e1..c7320ce4567d 100644 --- a/drivers/gpu/drm/ttm/ttm_bo.c +++ b/drivers/gpu/drm/ttm/ttm_bo.c | |||
@@ -426,7 +426,8 @@ moved: | |||
426 | bdev->man[bo->mem.mem_type].gpu_offset; | 426 | bdev->man[bo->mem.mem_type].gpu_offset; |
427 | bo->cur_placement = bo->mem.placement; | 427 | bo->cur_placement = bo->mem.placement; |
428 | spin_unlock(&bo->lock); | 428 | spin_unlock(&bo->lock); |
429 | } | 429 | } else |
430 | bo->offset = 0; | ||
430 | 431 | ||
431 | return 0; | 432 | return 0; |
432 | 433 | ||
@@ -523,52 +524,44 @@ static int ttm_bo_cleanup_refs(struct ttm_buffer_object *bo, bool remove_all) | |||
523 | static int ttm_bo_delayed_delete(struct ttm_bo_device *bdev, bool remove_all) | 524 | static int ttm_bo_delayed_delete(struct ttm_bo_device *bdev, bool remove_all) |
524 | { | 525 | { |
525 | struct ttm_bo_global *glob = bdev->glob; | 526 | struct ttm_bo_global *glob = bdev->glob; |
526 | struct ttm_buffer_object *entry, *nentry; | 527 | struct ttm_buffer_object *entry = NULL; |
527 | struct list_head *list, *next; | 528 | int ret = 0; |
528 | int ret; | ||
529 | 529 | ||
530 | spin_lock(&glob->lru_lock); | 530 | spin_lock(&glob->lru_lock); |
531 | list_for_each_safe(list, next, &bdev->ddestroy) { | 531 | if (list_empty(&bdev->ddestroy)) |
532 | entry = list_entry(list, struct ttm_buffer_object, ddestroy); | 532 | goto out_unlock; |
533 | nentry = NULL; | ||
534 | 533 | ||
535 | /* | 534 | entry = list_first_entry(&bdev->ddestroy, |
536 | * Protect the next list entry from destruction while we | 535 | struct ttm_buffer_object, ddestroy); |
537 | * unlock the lru_lock. | 536 | kref_get(&entry->list_kref); |
538 | */ | ||
539 | 537 | ||
540 | if (next != &bdev->ddestroy) { | 538 | for (;;) { |
541 | nentry = list_entry(next, struct ttm_buffer_object, | 539 | struct ttm_buffer_object *nentry = NULL; |
542 | ddestroy); | 540 | |
541 | if (entry->ddestroy.next != &bdev->ddestroy) { | ||
542 | nentry = list_first_entry(&entry->ddestroy, | ||
543 | struct ttm_buffer_object, ddestroy); | ||
543 | kref_get(&nentry->list_kref); | 544 | kref_get(&nentry->list_kref); |
544 | } | 545 | } |
545 | kref_get(&entry->list_kref); | ||
546 | 546 | ||
547 | spin_unlock(&glob->lru_lock); | 547 | spin_unlock(&glob->lru_lock); |
548 | ret = ttm_bo_cleanup_refs(entry, remove_all); | 548 | ret = ttm_bo_cleanup_refs(entry, remove_all); |
549 | kref_put(&entry->list_kref, ttm_bo_release_list); | 549 | kref_put(&entry->list_kref, ttm_bo_release_list); |
550 | entry = nentry; | ||
551 | |||
552 | if (ret || !entry) | ||
553 | goto out; | ||
550 | 554 | ||
551 | spin_lock(&glob->lru_lock); | 555 | spin_lock(&glob->lru_lock); |
552 | if (nentry) { | 556 | if (list_empty(&entry->ddestroy)) |
553 | bool next_onlist = !list_empty(next); | ||
554 | spin_unlock(&glob->lru_lock); | ||
555 | kref_put(&nentry->list_kref, ttm_bo_release_list); | ||
556 | spin_lock(&glob->lru_lock); | ||
557 | /* | ||
558 | * Someone might have raced us and removed the | ||
559 | * next entry from the list. We don't bother restarting | ||
560 | * list traversal. | ||
561 | */ | ||
562 | |||
563 | if (!next_onlist) | ||
564 | break; | ||
565 | } | ||
566 | if (ret) | ||
567 | break; | 557 | break; |
568 | } | 558 | } |
569 | ret = !list_empty(&bdev->ddestroy); | ||
570 | spin_unlock(&glob->lru_lock); | ||
571 | 559 | ||
560 | out_unlock: | ||
561 | spin_unlock(&glob->lru_lock); | ||
562 | out: | ||
563 | if (entry) | ||
564 | kref_put(&entry->list_kref, ttm_bo_release_list); | ||
572 | return ret; | 565 | return ret; |
573 | } | 566 | } |
574 | 567 | ||
@@ -950,6 +943,14 @@ int ttm_bo_mem_space(struct ttm_buffer_object *bo, | |||
950 | ttm_flag_masked(&cur_flags, placement->busy_placement[i], | 943 | ttm_flag_masked(&cur_flags, placement->busy_placement[i], |
951 | ~TTM_PL_MASK_MEMTYPE); | 944 | ~TTM_PL_MASK_MEMTYPE); |
952 | 945 | ||
946 | |||
947 | if (mem_type == TTM_PL_SYSTEM) { | ||
948 | mem->mem_type = mem_type; | ||
949 | mem->placement = cur_flags; | ||
950 | mem->mm_node = NULL; | ||
951 | return 0; | ||
952 | } | ||
953 | |||
953 | ret = ttm_bo_mem_force_space(bo, mem_type, placement, mem, | 954 | ret = ttm_bo_mem_force_space(bo, mem_type, placement, mem, |
954 | interruptible, no_wait); | 955 | interruptible, no_wait); |
955 | if (ret == 0 && mem->mm_node) { | 956 | if (ret == 0 && mem->mm_node) { |
@@ -1019,6 +1020,12 @@ static int ttm_bo_mem_compat(struct ttm_placement *placement, | |||
1019 | struct ttm_mem_reg *mem) | 1020 | struct ttm_mem_reg *mem) |
1020 | { | 1021 | { |
1021 | int i; | 1022 | int i; |
1023 | struct drm_mm_node *node = mem->mm_node; | ||
1024 | |||
1025 | if (node && placement->lpfn != 0 && | ||
1026 | (node->start < placement->fpfn || | ||
1027 | node->start + node->size > placement->lpfn)) | ||
1028 | return -1; | ||
1022 | 1029 | ||
1023 | for (i = 0; i < placement->num_placement; i++) { | 1030 | for (i = 0; i < placement->num_placement; i++) { |
1024 | if ((placement->placement[i] & mem->placement & | 1031 | if ((placement->placement[i] & mem->placement & |
@@ -1844,6 +1851,9 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink) | |||
1844 | * anyone tries to access a ttm page. | 1851 | * anyone tries to access a ttm page. |
1845 | */ | 1852 | */ |
1846 | 1853 | ||
1854 | if (bo->bdev->driver->swap_notify) | ||
1855 | bo->bdev->driver->swap_notify(bo); | ||
1856 | |||
1847 | ret = ttm_tt_swapout(bo->ttm, bo->persistant_swap_storage); | 1857 | ret = ttm_tt_swapout(bo->ttm, bo->persistant_swap_storage); |
1848 | out: | 1858 | out: |
1849 | 1859 | ||
@@ -1864,3 +1874,4 @@ void ttm_bo_swapout_all(struct ttm_bo_device *bdev) | |||
1864 | while (ttm_bo_swapout(&bdev->glob->shrink) == 0) | 1874 | while (ttm_bo_swapout(&bdev->glob->shrink) == 0) |
1865 | ; | 1875 | ; |
1866 | } | 1876 | } |
1877 | EXPORT_SYMBOL(ttm_bo_swapout_all); | ||
diff --git a/drivers/gpu/drm/ttm/ttm_bo_util.c b/drivers/gpu/drm/ttm/ttm_bo_util.c index 2ecf7d0c64f6..5ca37a58a98c 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_util.c +++ b/drivers/gpu/drm/ttm/ttm_bo_util.c | |||
@@ -53,7 +53,6 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo, | |||
53 | { | 53 | { |
54 | struct ttm_tt *ttm = bo->ttm; | 54 | struct ttm_tt *ttm = bo->ttm; |
55 | struct ttm_mem_reg *old_mem = &bo->mem; | 55 | struct ttm_mem_reg *old_mem = &bo->mem; |
56 | uint32_t save_flags = old_mem->placement; | ||
57 | int ret; | 56 | int ret; |
58 | 57 | ||
59 | if (old_mem->mem_type != TTM_PL_SYSTEM) { | 58 | if (old_mem->mem_type != TTM_PL_SYSTEM) { |
@@ -62,7 +61,6 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo, | |||
62 | ttm_flag_masked(&old_mem->placement, TTM_PL_FLAG_SYSTEM, | 61 | ttm_flag_masked(&old_mem->placement, TTM_PL_FLAG_SYSTEM, |
63 | TTM_PL_MASK_MEM); | 62 | TTM_PL_MASK_MEM); |
64 | old_mem->mem_type = TTM_PL_SYSTEM; | 63 | old_mem->mem_type = TTM_PL_SYSTEM; |
65 | save_flags = old_mem->placement; | ||
66 | } | 64 | } |
67 | 65 | ||
68 | ret = ttm_tt_set_placement_caching(ttm, new_mem->placement); | 66 | ret = ttm_tt_set_placement_caching(ttm, new_mem->placement); |
@@ -77,7 +75,7 @@ int ttm_bo_move_ttm(struct ttm_buffer_object *bo, | |||
77 | 75 | ||
78 | *old_mem = *new_mem; | 76 | *old_mem = *new_mem; |
79 | new_mem->mm_node = NULL; | 77 | new_mem->mm_node = NULL; |
80 | ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE); | 78 | |
81 | return 0; | 79 | return 0; |
82 | } | 80 | } |
83 | EXPORT_SYMBOL(ttm_bo_move_ttm); | 81 | EXPORT_SYMBOL(ttm_bo_move_ttm); |
@@ -219,7 +217,6 @@ int ttm_bo_move_memcpy(struct ttm_buffer_object *bo, | |||
219 | void *old_iomap; | 217 | void *old_iomap; |
220 | void *new_iomap; | 218 | void *new_iomap; |
221 | int ret; | 219 | int ret; |
222 | uint32_t save_flags = old_mem->placement; | ||
223 | unsigned long i; | 220 | unsigned long i; |
224 | unsigned long page; | 221 | unsigned long page; |
225 | unsigned long add = 0; | 222 | unsigned long add = 0; |
@@ -270,7 +267,6 @@ out2: | |||
270 | 267 | ||
271 | *old_mem = *new_mem; | 268 | *old_mem = *new_mem; |
272 | new_mem->mm_node = NULL; | 269 | new_mem->mm_node = NULL; |
273 | ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE); | ||
274 | 270 | ||
275 | if ((man->flags & TTM_MEMTYPE_FLAG_FIXED) && (ttm != NULL)) { | 271 | if ((man->flags & TTM_MEMTYPE_FLAG_FIXED) && (ttm != NULL)) { |
276 | ttm_tt_unbind(ttm); | 272 | ttm_tt_unbind(ttm); |
@@ -537,7 +533,6 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, | |||
537 | struct ttm_mem_type_manager *man = &bdev->man[new_mem->mem_type]; | 533 | struct ttm_mem_type_manager *man = &bdev->man[new_mem->mem_type]; |
538 | struct ttm_mem_reg *old_mem = &bo->mem; | 534 | struct ttm_mem_reg *old_mem = &bo->mem; |
539 | int ret; | 535 | int ret; |
540 | uint32_t save_flags = old_mem->placement; | ||
541 | struct ttm_buffer_object *ghost_obj; | 536 | struct ttm_buffer_object *ghost_obj; |
542 | void *tmp_obj = NULL; | 537 | void *tmp_obj = NULL; |
543 | 538 | ||
@@ -598,7 +593,7 @@ int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo, | |||
598 | 593 | ||
599 | *old_mem = *new_mem; | 594 | *old_mem = *new_mem; |
600 | new_mem->mm_node = NULL; | 595 | new_mem->mm_node = NULL; |
601 | ttm_flag_masked(&save_flags, new_mem->placement, TTM_PL_MASK_MEMTYPE); | 596 | |
602 | return 0; | 597 | return 0; |
603 | } | 598 | } |
604 | EXPORT_SYMBOL(ttm_bo_move_accel_cleanup); | 599 | EXPORT_SYMBOL(ttm_bo_move_accel_cleanup); |
diff --git a/drivers/gpu/drm/ttm/ttm_lock.c b/drivers/gpu/drm/ttm/ttm_lock.c index f619ebcaa4ec..3d172ef04ee1 100644 --- a/drivers/gpu/drm/ttm/ttm_lock.c +++ b/drivers/gpu/drm/ttm/ttm_lock.c | |||
@@ -288,6 +288,7 @@ void ttm_suspend_unlock(struct ttm_lock *lock) | |||
288 | wake_up_all(&lock->queue); | 288 | wake_up_all(&lock->queue); |
289 | spin_unlock(&lock->lock); | 289 | spin_unlock(&lock->lock); |
290 | } | 290 | } |
291 | EXPORT_SYMBOL(ttm_suspend_unlock); | ||
291 | 292 | ||
292 | static bool __ttm_suspend_lock(struct ttm_lock *lock) | 293 | static bool __ttm_suspend_lock(struct ttm_lock *lock) |
293 | { | 294 | { |
@@ -309,3 +310,4 @@ void ttm_suspend_lock(struct ttm_lock *lock) | |||
309 | { | 310 | { |
310 | wait_event(lock->queue, __ttm_suspend_lock(lock)); | 311 | wait_event(lock->queue, __ttm_suspend_lock(lock)); |
311 | } | 312 | } |
313 | EXPORT_SYMBOL(ttm_suspend_lock); | ||
diff --git a/drivers/gpu/drm/ttm/ttm_object.c b/drivers/gpu/drm/ttm/ttm_object.c index 1099abac824b..75e9d6f86ba4 100644 --- a/drivers/gpu/drm/ttm/ttm_object.c +++ b/drivers/gpu/drm/ttm/ttm_object.c | |||
@@ -109,8 +109,8 @@ struct ttm_ref_object { | |||
109 | struct drm_hash_item hash; | 109 | struct drm_hash_item hash; |
110 | struct list_head head; | 110 | struct list_head head; |
111 | struct kref kref; | 111 | struct kref kref; |
112 | struct ttm_base_object *obj; | ||
113 | enum ttm_ref_type ref_type; | 112 | enum ttm_ref_type ref_type; |
113 | struct ttm_base_object *obj; | ||
114 | struct ttm_object_file *tfile; | 114 | struct ttm_object_file *tfile; |
115 | }; | 115 | }; |
116 | 116 | ||
diff --git a/drivers/gpu/drm/ttm/ttm_tt.c b/drivers/gpu/drm/ttm/ttm_tt.c index 9c2b1cc5dba5..e2123af7775a 100644 --- a/drivers/gpu/drm/ttm/ttm_tt.c +++ b/drivers/gpu/drm/ttm/ttm_tt.c | |||
@@ -198,17 +198,26 @@ EXPORT_SYMBOL(ttm_tt_populate); | |||
198 | static inline int ttm_tt_set_page_caching(struct page *p, | 198 | static inline int ttm_tt_set_page_caching(struct page *p, |
199 | enum ttm_caching_state c_state) | 199 | enum ttm_caching_state c_state) |
200 | { | 200 | { |
201 | int ret = 0; | ||
202 | |||
201 | if (PageHighMem(p)) | 203 | if (PageHighMem(p)) |
202 | return 0; | 204 | return 0; |
203 | 205 | ||
204 | switch (c_state) { | 206 | if (get_page_memtype(p) != -1) { |
205 | case tt_cached: | 207 | /* p isn't in the default caching state, set it to |
206 | return set_pages_wb(p, 1); | 208 | * writeback first to free its current memtype. */ |
207 | case tt_wc: | 209 | |
208 | return set_memory_wc((unsigned long) page_address(p), 1); | 210 | ret = set_pages_wb(p, 1); |
209 | default: | 211 | if (ret) |
210 | return set_pages_uc(p, 1); | 212 | return ret; |
211 | } | 213 | } |
214 | |||
215 | if (c_state == tt_wc) | ||
216 | ret = set_memory_wc((unsigned long) page_address(p), 1); | ||
217 | else if (c_state == tt_uncached) | ||
218 | ret = set_pages_uc(p, 1); | ||
219 | |||
220 | return ret; | ||
212 | } | 221 | } |
213 | #else /* CONFIG_X86 */ | 222 | #else /* CONFIG_X86 */ |
214 | static inline int ttm_tt_set_page_caching(struct page *p, | 223 | static inline int ttm_tt_set_page_caching(struct page *p, |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c index d6f2d2b882e9..825ebe3d89d5 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c | |||
@@ -48,6 +48,15 @@ struct ttm_placement vmw_vram_placement = { | |||
48 | .busy_placement = &vram_placement_flags | 48 | .busy_placement = &vram_placement_flags |
49 | }; | 49 | }; |
50 | 50 | ||
51 | struct ttm_placement vmw_vram_sys_placement = { | ||
52 | .fpfn = 0, | ||
53 | .lpfn = 0, | ||
54 | .num_placement = 1, | ||
55 | .placement = &vram_placement_flags, | ||
56 | .num_busy_placement = 1, | ||
57 | .busy_placement = &sys_placement_flags | ||
58 | }; | ||
59 | |||
51 | struct ttm_placement vmw_vram_ne_placement = { | 60 | struct ttm_placement vmw_vram_ne_placement = { |
52 | .fpfn = 0, | 61 | .fpfn = 0, |
53 | .lpfn = 0, | 62 | .lpfn = 0, |
@@ -172,6 +181,18 @@ static int vmw_verify_access(struct ttm_buffer_object *bo, struct file *filp) | |||
172 | return 0; | 181 | return 0; |
173 | } | 182 | } |
174 | 183 | ||
184 | static void vmw_move_notify(struct ttm_buffer_object *bo, | ||
185 | struct ttm_mem_reg *new_mem) | ||
186 | { | ||
187 | if (new_mem->mem_type != TTM_PL_SYSTEM) | ||
188 | vmw_dmabuf_gmr_unbind(bo); | ||
189 | } | ||
190 | |||
191 | static void vmw_swap_notify(struct ttm_buffer_object *bo) | ||
192 | { | ||
193 | vmw_dmabuf_gmr_unbind(bo); | ||
194 | } | ||
195 | |||
175 | /** | 196 | /** |
176 | * FIXME: We're using the old vmware polling method to sync. | 197 | * FIXME: We're using the old vmware polling method to sync. |
177 | * Do this with fences instead. | 198 | * Do this with fences instead. |
@@ -225,5 +246,7 @@ struct ttm_bo_driver vmw_bo_driver = { | |||
225 | .sync_obj_wait = vmw_sync_obj_wait, | 246 | .sync_obj_wait = vmw_sync_obj_wait, |
226 | .sync_obj_flush = vmw_sync_obj_flush, | 247 | .sync_obj_flush = vmw_sync_obj_flush, |
227 | .sync_obj_unref = vmw_sync_obj_unref, | 248 | .sync_obj_unref = vmw_sync_obj_unref, |
228 | .sync_obj_ref = vmw_sync_obj_ref | 249 | .sync_obj_ref = vmw_sync_obj_ref, |
250 | .move_notify = vmw_move_notify, | ||
251 | .swap_notify = vmw_swap_notify | ||
229 | }; | 252 | }; |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c index 1db1ef30be2b..a6e8f687fa64 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c | |||
@@ -147,6 +147,8 @@ static char *vmw_devname = "vmwgfx"; | |||
147 | 147 | ||
148 | static int vmw_probe(struct pci_dev *, const struct pci_device_id *); | 148 | static int vmw_probe(struct pci_dev *, const struct pci_device_id *); |
149 | static void vmw_master_init(struct vmw_master *); | 149 | static void vmw_master_init(struct vmw_master *); |
150 | static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, | ||
151 | void *ptr); | ||
150 | 152 | ||
151 | static void vmw_print_capabilities(uint32_t capabilities) | 153 | static void vmw_print_capabilities(uint32_t capabilities) |
152 | { | 154 | { |
@@ -207,6 +209,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
207 | { | 209 | { |
208 | struct vmw_private *dev_priv; | 210 | struct vmw_private *dev_priv; |
209 | int ret; | 211 | int ret; |
212 | uint32_t svga_id; | ||
210 | 213 | ||
211 | dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); | 214 | dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); |
212 | if (unlikely(dev_priv == NULL)) { | 215 | if (unlikely(dev_priv == NULL)) { |
@@ -217,6 +220,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
217 | 220 | ||
218 | dev_priv->dev = dev; | 221 | dev_priv->dev = dev; |
219 | dev_priv->vmw_chipset = chipset; | 222 | dev_priv->vmw_chipset = chipset; |
223 | dev_priv->last_read_sequence = (uint32_t) -100; | ||
220 | mutex_init(&dev_priv->hw_mutex); | 224 | mutex_init(&dev_priv->hw_mutex); |
221 | mutex_init(&dev_priv->cmdbuf_mutex); | 225 | mutex_init(&dev_priv->cmdbuf_mutex); |
222 | rwlock_init(&dev_priv->resource_lock); | 226 | rwlock_init(&dev_priv->resource_lock); |
@@ -236,6 +240,16 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
236 | dev_priv->mmio_start = pci_resource_start(dev->pdev, 2); | 240 | dev_priv->mmio_start = pci_resource_start(dev->pdev, 2); |
237 | 241 | ||
238 | mutex_lock(&dev_priv->hw_mutex); | 242 | mutex_lock(&dev_priv->hw_mutex); |
243 | |||
244 | vmw_write(dev_priv, SVGA_REG_ID, SVGA_ID_2); | ||
245 | svga_id = vmw_read(dev_priv, SVGA_REG_ID); | ||
246 | if (svga_id != SVGA_ID_2) { | ||
247 | ret = -ENOSYS; | ||
248 | DRM_ERROR("Unsuported SVGA ID 0x%x\n", svga_id); | ||
249 | mutex_unlock(&dev_priv->hw_mutex); | ||
250 | goto out_err0; | ||
251 | } | ||
252 | |||
239 | dev_priv->capabilities = vmw_read(dev_priv, SVGA_REG_CAPABILITIES); | 253 | dev_priv->capabilities = vmw_read(dev_priv, SVGA_REG_CAPABILITIES); |
240 | 254 | ||
241 | if (dev_priv->capabilities & SVGA_CAP_GMR) { | 255 | if (dev_priv->capabilities & SVGA_CAP_GMR) { |
@@ -351,6 +365,11 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset) | |||
351 | vmw_fb_init(dev_priv); | 365 | vmw_fb_init(dev_priv); |
352 | } | 366 | } |
353 | 367 | ||
368 | dev_priv->pm_nb.notifier_call = vmwgfx_pm_notifier; | ||
369 | register_pm_notifier(&dev_priv->pm_nb); | ||
370 | |||
371 | DRM_INFO("%s", vmw_fifo_have_3d(dev_priv) ? "Have 3D\n" : "No 3D\n"); | ||
372 | |||
354 | return 0; | 373 | return 0; |
355 | 374 | ||
356 | out_no_device: | 375 | out_no_device: |
@@ -385,6 +404,8 @@ static int vmw_driver_unload(struct drm_device *dev) | |||
385 | 404 | ||
386 | DRM_INFO(VMWGFX_DRIVER_NAME " unload.\n"); | 405 | DRM_INFO(VMWGFX_DRIVER_NAME " unload.\n"); |
387 | 406 | ||
407 | unregister_pm_notifier(&dev_priv->pm_nb); | ||
408 | |||
388 | if (!dev_priv->stealth) { | 409 | if (!dev_priv->stealth) { |
389 | vmw_fb_close(dev_priv); | 410 | vmw_fb_close(dev_priv); |
390 | vmw_kms_close(dev_priv); | 411 | vmw_kms_close(dev_priv); |
@@ -650,6 +671,57 @@ static void vmw_remove(struct pci_dev *pdev) | |||
650 | drm_put_dev(dev); | 671 | drm_put_dev(dev); |
651 | } | 672 | } |
652 | 673 | ||
674 | static int vmwgfx_pm_notifier(struct notifier_block *nb, unsigned long val, | ||
675 | void *ptr) | ||
676 | { | ||
677 | struct vmw_private *dev_priv = | ||
678 | container_of(nb, struct vmw_private, pm_nb); | ||
679 | struct vmw_master *vmaster = dev_priv->active_master; | ||
680 | |||
681 | switch (val) { | ||
682 | case PM_HIBERNATION_PREPARE: | ||
683 | case PM_SUSPEND_PREPARE: | ||
684 | ttm_suspend_lock(&vmaster->lock); | ||
685 | |||
686 | /** | ||
687 | * This empties VRAM and unbinds all GMR bindings. | ||
688 | * Buffer contents is moved to swappable memory. | ||
689 | */ | ||
690 | ttm_bo_swapout_all(&dev_priv->bdev); | ||
691 | break; | ||
692 | case PM_POST_HIBERNATION: | ||
693 | case PM_POST_SUSPEND: | ||
694 | ttm_suspend_unlock(&vmaster->lock); | ||
695 | break; | ||
696 | case PM_RESTORE_PREPARE: | ||
697 | break; | ||
698 | case PM_POST_RESTORE: | ||
699 | break; | ||
700 | default: | ||
701 | break; | ||
702 | } | ||
703 | return 0; | ||
704 | } | ||
705 | |||
706 | /** | ||
707 | * These might not be needed with the virtual SVGA device. | ||
708 | */ | ||
709 | |||
710 | int vmw_pci_suspend(struct pci_dev *pdev, pm_message_t state) | ||
711 | { | ||
712 | pci_save_state(pdev); | ||
713 | pci_disable_device(pdev); | ||
714 | pci_set_power_state(pdev, PCI_D3hot); | ||
715 | return 0; | ||
716 | } | ||
717 | |||
718 | int vmw_pci_resume(struct pci_dev *pdev) | ||
719 | { | ||
720 | pci_set_power_state(pdev, PCI_D0); | ||
721 | pci_restore_state(pdev); | ||
722 | return pci_enable_device(pdev); | ||
723 | } | ||
724 | |||
653 | static struct drm_driver driver = { | 725 | static struct drm_driver driver = { |
654 | .driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | | 726 | .driver_features = DRIVER_HAVE_IRQ | DRIVER_IRQ_SHARED | |
655 | DRIVER_MODESET, | 727 | DRIVER_MODESET, |
@@ -689,7 +761,9 @@ static struct drm_driver driver = { | |||
689 | .name = VMWGFX_DRIVER_NAME, | 761 | .name = VMWGFX_DRIVER_NAME, |
690 | .id_table = vmw_pci_id_list, | 762 | .id_table = vmw_pci_id_list, |
691 | .probe = vmw_probe, | 763 | .probe = vmw_probe, |
692 | .remove = vmw_remove | 764 | .remove = vmw_remove, |
765 | .suspend = vmw_pci_suspend, | ||
766 | .resume = vmw_pci_resume | ||
693 | }, | 767 | }, |
694 | .name = VMWGFX_DRIVER_NAME, | 768 | .name = VMWGFX_DRIVER_NAME, |
695 | .desc = VMWGFX_DRIVER_DESC, | 769 | .desc = VMWGFX_DRIVER_DESC, |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h index e61bd85b6975..356dc935ec13 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | |||
@@ -32,16 +32,17 @@ | |||
32 | #include "drmP.h" | 32 | #include "drmP.h" |
33 | #include "vmwgfx_drm.h" | 33 | #include "vmwgfx_drm.h" |
34 | #include "drm_hashtab.h" | 34 | #include "drm_hashtab.h" |
35 | #include "linux/suspend.h" | ||
35 | #include "ttm/ttm_bo_driver.h" | 36 | #include "ttm/ttm_bo_driver.h" |
36 | #include "ttm/ttm_object.h" | 37 | #include "ttm/ttm_object.h" |
37 | #include "ttm/ttm_lock.h" | 38 | #include "ttm/ttm_lock.h" |
38 | #include "ttm/ttm_execbuf_util.h" | 39 | #include "ttm/ttm_execbuf_util.h" |
39 | #include "ttm/ttm_module.h" | 40 | #include "ttm/ttm_module.h" |
40 | 41 | ||
41 | #define VMWGFX_DRIVER_DATE "20090724" | 42 | #define VMWGFX_DRIVER_DATE "20100209" |
42 | #define VMWGFX_DRIVER_MAJOR 0 | 43 | #define VMWGFX_DRIVER_MAJOR 1 |
43 | #define VMWGFX_DRIVER_MINOR 1 | 44 | #define VMWGFX_DRIVER_MINOR 0 |
44 | #define VMWGFX_DRIVER_PATCHLEVEL 2 | 45 | #define VMWGFX_DRIVER_PATCHLEVEL 0 |
45 | #define VMWGFX_FILE_PAGE_OFFSET 0x00100000 | 46 | #define VMWGFX_FILE_PAGE_OFFSET 0x00100000 |
46 | #define VMWGFX_FIFO_STATIC_SIZE (1024*1024) | 47 | #define VMWGFX_FIFO_STATIC_SIZE (1024*1024) |
47 | #define VMWGFX_MAX_RELOCATIONS 2048 | 48 | #define VMWGFX_MAX_RELOCATIONS 2048 |
@@ -95,6 +96,8 @@ struct vmw_surface { | |||
95 | struct drm_vmw_size *sizes; | 96 | struct drm_vmw_size *sizes; |
96 | uint32_t num_sizes; | 97 | uint32_t num_sizes; |
97 | 98 | ||
99 | bool scanout; | ||
100 | |||
98 | /* TODO so far just a extra pointer */ | 101 | /* TODO so far just a extra pointer */ |
99 | struct vmw_cursor_snooper snooper; | 102 | struct vmw_cursor_snooper snooper; |
100 | }; | 103 | }; |
@@ -110,6 +113,7 @@ struct vmw_fifo_state { | |||
110 | unsigned long static_buffer_size; | 113 | unsigned long static_buffer_size; |
111 | bool using_bounce_buffer; | 114 | bool using_bounce_buffer; |
112 | uint32_t capabilities; | 115 | uint32_t capabilities; |
116 | struct mutex fifo_mutex; | ||
113 | struct rw_semaphore rwsem; | 117 | struct rw_semaphore rwsem; |
114 | }; | 118 | }; |
115 | 119 | ||
@@ -210,7 +214,7 @@ struct vmw_private { | |||
210 | * Fencing and IRQs. | 214 | * Fencing and IRQs. |
211 | */ | 215 | */ |
212 | 216 | ||
213 | uint32_t fence_seq; | 217 | atomic_t fence_seq; |
214 | wait_queue_head_t fence_queue; | 218 | wait_queue_head_t fence_queue; |
215 | wait_queue_head_t fifo_queue; | 219 | wait_queue_head_t fifo_queue; |
216 | atomic_t fence_queue_waiters; | 220 | atomic_t fence_queue_waiters; |
@@ -258,6 +262,7 @@ struct vmw_private { | |||
258 | 262 | ||
259 | struct vmw_master *active_master; | 263 | struct vmw_master *active_master; |
260 | struct vmw_master fbdev_master; | 264 | struct vmw_master fbdev_master; |
265 | struct notifier_block pm_nb; | ||
261 | }; | 266 | }; |
262 | 267 | ||
263 | static inline struct vmw_private *vmw_priv(struct drm_device *dev) | 268 | static inline struct vmw_private *vmw_priv(struct drm_device *dev) |
@@ -353,6 +358,7 @@ extern int vmw_dmabuf_to_start_of_vram(struct vmw_private *vmw_priv, | |||
353 | struct vmw_dma_buffer *bo); | 358 | struct vmw_dma_buffer *bo); |
354 | extern int vmw_dmabuf_from_vram(struct vmw_private *vmw_priv, | 359 | extern int vmw_dmabuf_from_vram(struct vmw_private *vmw_priv, |
355 | struct vmw_dma_buffer *bo); | 360 | struct vmw_dma_buffer *bo); |
361 | extern void vmw_dmabuf_gmr_unbind(struct ttm_buffer_object *bo); | ||
356 | extern int vmw_stream_claim_ioctl(struct drm_device *dev, void *data, | 362 | extern int vmw_stream_claim_ioctl(struct drm_device *dev, void *data, |
357 | struct drm_file *file_priv); | 363 | struct drm_file *file_priv); |
358 | extern int vmw_stream_unref_ioctl(struct drm_device *dev, void *data, | 364 | extern int vmw_stream_unref_ioctl(struct drm_device *dev, void *data, |
@@ -386,6 +392,7 @@ extern int vmw_fifo_send_fence(struct vmw_private *dev_priv, | |||
386 | uint32_t *sequence); | 392 | uint32_t *sequence); |
387 | extern void vmw_fifo_ping_host(struct vmw_private *dev_priv, uint32_t reason); | 393 | extern void vmw_fifo_ping_host(struct vmw_private *dev_priv, uint32_t reason); |
388 | extern int vmw_fifo_mmap(struct file *filp, struct vm_area_struct *vma); | 394 | extern int vmw_fifo_mmap(struct file *filp, struct vm_area_struct *vma); |
395 | extern bool vmw_fifo_have_3d(struct vmw_private *dev_priv); | ||
389 | 396 | ||
390 | /** | 397 | /** |
391 | * TTM glue - vmwgfx_ttm_glue.c | 398 | * TTM glue - vmwgfx_ttm_glue.c |
@@ -401,6 +408,7 @@ extern int vmw_mmap(struct file *filp, struct vm_area_struct *vma); | |||
401 | 408 | ||
402 | extern struct ttm_placement vmw_vram_placement; | 409 | extern struct ttm_placement vmw_vram_placement; |
403 | extern struct ttm_placement vmw_vram_ne_placement; | 410 | extern struct ttm_placement vmw_vram_ne_placement; |
411 | extern struct ttm_placement vmw_vram_sys_placement; | ||
404 | extern struct ttm_placement vmw_sys_placement; | 412 | extern struct ttm_placement vmw_sys_placement; |
405 | extern struct ttm_bo_driver vmw_bo_driver; | 413 | extern struct ttm_bo_driver vmw_bo_driver; |
406 | extern int vmw_dma_quiescent(struct drm_device *dev); | 414 | extern int vmw_dma_quiescent(struct drm_device *dev); |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c index 2e92da567403..d69caf92ffe7 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c | |||
@@ -490,10 +490,29 @@ static int vmw_validate_single_buffer(struct vmw_private *dev_priv, | |||
490 | if (vmw_dmabuf_gmr(bo) != SVGA_GMR_NULL) | 490 | if (vmw_dmabuf_gmr(bo) != SVGA_GMR_NULL) |
491 | return 0; | 491 | return 0; |
492 | 492 | ||
493 | /** | ||
494 | * Put BO in VRAM, only if there is space. | ||
495 | */ | ||
496 | |||
497 | ret = ttm_bo_validate(bo, &vmw_vram_sys_placement, true, false); | ||
498 | if (unlikely(ret == -ERESTARTSYS)) | ||
499 | return ret; | ||
500 | |||
501 | /** | ||
502 | * Otherwise, set it up as GMR. | ||
503 | */ | ||
504 | |||
505 | if (vmw_dmabuf_gmr(bo) != SVGA_GMR_NULL) | ||
506 | return 0; | ||
507 | |||
493 | ret = vmw_gmr_bind(dev_priv, bo); | 508 | ret = vmw_gmr_bind(dev_priv, bo); |
494 | if (likely(ret == 0 || ret == -ERESTARTSYS)) | 509 | if (likely(ret == 0 || ret == -ERESTARTSYS)) |
495 | return ret; | 510 | return ret; |
496 | 511 | ||
512 | /** | ||
513 | * If that failed, try VRAM again, this time evicting | ||
514 | * previous contents. | ||
515 | */ | ||
497 | 516 | ||
498 | ret = ttm_bo_validate(bo, &vmw_vram_placement, true, false); | 517 | ret = ttm_bo_validate(bo, &vmw_vram_placement, true, false); |
499 | return ret; | 518 | return ret; |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c index 641dde76ada1..4f4f6432be8b 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fb.c | |||
@@ -649,14 +649,6 @@ int vmw_dmabuf_to_start_of_vram(struct vmw_private *vmw_priv, | |||
649 | if (unlikely(ret != 0)) | 649 | if (unlikely(ret != 0)) |
650 | goto err_unlock; | 650 | goto err_unlock; |
651 | 651 | ||
652 | if (vmw_bo->gmr_bound) { | ||
653 | vmw_gmr_unbind(vmw_priv, vmw_bo->gmr_id); | ||
654 | spin_lock(&bo->glob->lru_lock); | ||
655 | ida_remove(&vmw_priv->gmr_ida, vmw_bo->gmr_id); | ||
656 | spin_unlock(&bo->glob->lru_lock); | ||
657 | vmw_bo->gmr_bound = NULL; | ||
658 | } | ||
659 | |||
660 | ret = ttm_bo_validate(bo, &ne_placement, false, false); | 652 | ret = ttm_bo_validate(bo, &ne_placement, false, false); |
661 | ttm_bo_unreserve(bo); | 653 | ttm_bo_unreserve(bo); |
662 | err_unlock: | 654 | err_unlock: |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c index 01feb48af333..39d43a01d846 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | |||
@@ -29,6 +29,25 @@ | |||
29 | #include "drmP.h" | 29 | #include "drmP.h" |
30 | #include "ttm/ttm_placement.h" | 30 | #include "ttm/ttm_placement.h" |
31 | 31 | ||
32 | bool vmw_fifo_have_3d(struct vmw_private *dev_priv) | ||
33 | { | ||
34 | __le32 __iomem *fifo_mem = dev_priv->mmio_virt; | ||
35 | uint32_t fifo_min, hwversion; | ||
36 | |||
37 | fifo_min = ioread32(fifo_mem + SVGA_FIFO_MIN); | ||
38 | if (fifo_min <= SVGA_FIFO_3D_HWVERSION * sizeof(unsigned int)) | ||
39 | return false; | ||
40 | |||
41 | hwversion = ioread32(fifo_mem + SVGA_FIFO_3D_HWVERSION); | ||
42 | if (hwversion == 0) | ||
43 | return false; | ||
44 | |||
45 | if (hwversion < SVGA3D_HWVERSION_WS65_B1) | ||
46 | return false; | ||
47 | |||
48 | return true; | ||
49 | } | ||
50 | |||
32 | int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo) | 51 | int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo) |
33 | { | 52 | { |
34 | __le32 __iomem *fifo_mem = dev_priv->mmio_virt; | 53 | __le32 __iomem *fifo_mem = dev_priv->mmio_virt; |
@@ -55,6 +74,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo) | |||
55 | fifo->reserved_size = 0; | 74 | fifo->reserved_size = 0; |
56 | fifo->using_bounce_buffer = false; | 75 | fifo->using_bounce_buffer = false; |
57 | 76 | ||
77 | mutex_init(&fifo->fifo_mutex); | ||
58 | init_rwsem(&fifo->rwsem); | 78 | init_rwsem(&fifo->rwsem); |
59 | 79 | ||
60 | /* | 80 | /* |
@@ -98,8 +118,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo) | |||
98 | (unsigned int) min, | 118 | (unsigned int) min, |
99 | (unsigned int) fifo->capabilities); | 119 | (unsigned int) fifo->capabilities); |
100 | 120 | ||
101 | dev_priv->fence_seq = (uint32_t) -100; | 121 | atomic_set(&dev_priv->fence_seq, dev_priv->last_read_sequence); |
102 | dev_priv->last_read_sequence = (uint32_t) -100; | ||
103 | iowrite32(dev_priv->last_read_sequence, fifo_mem + SVGA_FIFO_FENCE); | 122 | iowrite32(dev_priv->last_read_sequence, fifo_mem + SVGA_FIFO_FENCE); |
104 | 123 | ||
105 | return vmw_fifo_send_fence(dev_priv, &dummy); | 124 | return vmw_fifo_send_fence(dev_priv, &dummy); |
@@ -265,7 +284,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes) | |||
265 | uint32_t reserveable = fifo_state->capabilities & SVGA_FIFO_CAP_RESERVE; | 284 | uint32_t reserveable = fifo_state->capabilities & SVGA_FIFO_CAP_RESERVE; |
266 | int ret; | 285 | int ret; |
267 | 286 | ||
268 | down_write(&fifo_state->rwsem); | 287 | mutex_lock(&fifo_state->fifo_mutex); |
269 | max = ioread32(fifo_mem + SVGA_FIFO_MAX); | 288 | max = ioread32(fifo_mem + SVGA_FIFO_MAX); |
270 | min = ioread32(fifo_mem + SVGA_FIFO_MIN); | 289 | min = ioread32(fifo_mem + SVGA_FIFO_MIN); |
271 | next_cmd = ioread32(fifo_mem + SVGA_FIFO_NEXT_CMD); | 290 | next_cmd = ioread32(fifo_mem + SVGA_FIFO_NEXT_CMD); |
@@ -333,7 +352,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes) | |||
333 | } | 352 | } |
334 | out_err: | 353 | out_err: |
335 | fifo_state->reserved_size = 0; | 354 | fifo_state->reserved_size = 0; |
336 | up_write(&fifo_state->rwsem); | 355 | mutex_unlock(&fifo_state->fifo_mutex); |
337 | return NULL; | 356 | return NULL; |
338 | } | 357 | } |
339 | 358 | ||
@@ -408,6 +427,7 @@ void vmw_fifo_commit(struct vmw_private *dev_priv, uint32_t bytes) | |||
408 | 427 | ||
409 | } | 428 | } |
410 | 429 | ||
430 | down_write(&fifo_state->rwsem); | ||
411 | if (fifo_state->using_bounce_buffer || reserveable) { | 431 | if (fifo_state->using_bounce_buffer || reserveable) { |
412 | next_cmd += bytes; | 432 | next_cmd += bytes; |
413 | if (next_cmd >= max) | 433 | if (next_cmd >= max) |
@@ -419,8 +439,9 @@ void vmw_fifo_commit(struct vmw_private *dev_priv, uint32_t bytes) | |||
419 | if (reserveable) | 439 | if (reserveable) |
420 | iowrite32(0, fifo_mem + SVGA_FIFO_RESERVED); | 440 | iowrite32(0, fifo_mem + SVGA_FIFO_RESERVED); |
421 | mb(); | 441 | mb(); |
422 | vmw_fifo_ping_host(dev_priv, SVGA_SYNC_GENERIC); | ||
423 | up_write(&fifo_state->rwsem); | 442 | up_write(&fifo_state->rwsem); |
443 | vmw_fifo_ping_host(dev_priv, SVGA_SYNC_GENERIC); | ||
444 | mutex_unlock(&fifo_state->fifo_mutex); | ||
424 | } | 445 | } |
425 | 446 | ||
426 | int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence) | 447 | int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence) |
@@ -433,9 +454,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence) | |||
433 | 454 | ||
434 | fm = vmw_fifo_reserve(dev_priv, bytes); | 455 | fm = vmw_fifo_reserve(dev_priv, bytes); |
435 | if (unlikely(fm == NULL)) { | 456 | if (unlikely(fm == NULL)) { |
436 | down_write(&fifo_state->rwsem); | 457 | *sequence = atomic_read(&dev_priv->fence_seq); |
437 | *sequence = dev_priv->fence_seq; | ||
438 | up_write(&fifo_state->rwsem); | ||
439 | ret = -ENOMEM; | 458 | ret = -ENOMEM; |
440 | (void)vmw_fallback_wait(dev_priv, false, true, *sequence, | 459 | (void)vmw_fallback_wait(dev_priv, false, true, *sequence, |
441 | false, 3*HZ); | 460 | false, 3*HZ); |
@@ -443,7 +462,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *sequence) | |||
443 | } | 462 | } |
444 | 463 | ||
445 | do { | 464 | do { |
446 | *sequence = dev_priv->fence_seq++; | 465 | *sequence = atomic_add_return(1, &dev_priv->fence_seq); |
447 | } while (*sequence == 0); | 466 | } while (*sequence == 0); |
448 | 467 | ||
449 | if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) { | 468 | if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) { |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c index 5fa6a4ed238a..1c7a316454d8 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | |||
@@ -43,11 +43,17 @@ int vmw_getparam_ioctl(struct drm_device *dev, void *data, | |||
43 | param->value = vmw_overlay_num_free_overlays(dev_priv); | 43 | param->value = vmw_overlay_num_free_overlays(dev_priv); |
44 | break; | 44 | break; |
45 | case DRM_VMW_PARAM_3D: | 45 | case DRM_VMW_PARAM_3D: |
46 | param->value = dev_priv->capabilities & SVGA_CAP_3D ? 1 : 0; | 46 | param->value = vmw_fifo_have_3d(dev_priv) ? 1 : 0; |
47 | break; | 47 | break; |
48 | case DRM_VMW_PARAM_FIFO_OFFSET: | 48 | case DRM_VMW_PARAM_FIFO_OFFSET: |
49 | param->value = dev_priv->mmio_start; | 49 | param->value = dev_priv->mmio_start; |
50 | break; | 50 | break; |
51 | case DRM_VMW_PARAM_HW_CAPS: | ||
52 | param->value = dev_priv->capabilities; | ||
53 | break; | ||
54 | case DRM_VMW_PARAM_FIFO_CAPS: | ||
55 | param->value = dev_priv->fifo.capabilities; | ||
56 | break; | ||
51 | default: | 57 | default: |
52 | DRM_ERROR("Illegal vmwgfx get param request: %d\n", | 58 | DRM_ERROR("Illegal vmwgfx get param request: %d\n", |
53 | param->param); | 59 | param->param); |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c index d40086fc8647..4d7cb5393860 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | |||
@@ -85,19 +85,12 @@ bool vmw_fence_signaled(struct vmw_private *dev_priv, | |||
85 | return true; | 85 | return true; |
86 | 86 | ||
87 | /** | 87 | /** |
88 | * Below is to signal stale fences that have wrapped. | ||
89 | * First, block fence submission. | ||
90 | */ | ||
91 | |||
92 | down_read(&fifo_state->rwsem); | ||
93 | |||
94 | /** | ||
95 | * Then check if the sequence is higher than what we've actually | 88 | * Then check if the sequence is higher than what we've actually |
96 | * emitted. Then the fence is stale and signaled. | 89 | * emitted. Then the fence is stale and signaled. |
97 | */ | 90 | */ |
98 | 91 | ||
99 | ret = ((dev_priv->fence_seq - sequence) > VMW_FENCE_WRAP); | 92 | ret = ((atomic_read(&dev_priv->fence_seq) - sequence) |
100 | up_read(&fifo_state->rwsem); | 93 | > VMW_FENCE_WRAP); |
101 | 94 | ||
102 | return ret; | 95 | return ret; |
103 | } | 96 | } |
@@ -127,7 +120,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv, | |||
127 | 120 | ||
128 | if (fifo_idle) | 121 | if (fifo_idle) |
129 | down_read(&fifo_state->rwsem); | 122 | down_read(&fifo_state->rwsem); |
130 | signal_seq = dev_priv->fence_seq; | 123 | signal_seq = atomic_read(&dev_priv->fence_seq); |
131 | ret = 0; | 124 | ret = 0; |
132 | 125 | ||
133 | for (;;) { | 126 | for (;;) { |
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index b1af76e371c3..31f9afed0a63 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | |||
@@ -553,9 +553,7 @@ int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, | |||
553 | } *cmd; | 553 | } *cmd; |
554 | int i, increment = 1; | 554 | int i, increment = 1; |
555 | 555 | ||
556 | if (!num_clips || | 556 | if (!num_clips) { |
557 | !(dev_priv->fifo.capabilities & | ||
558 | SVGA_FIFO_CAP_SCREEN_OBJECT)) { | ||
559 | num_clips = 1; | 557 | num_clips = 1; |
560 | clips = &norect; | 558 | clips = &norect; |
561 | norect.x1 = norect.y1 = 0; | 559 | norect.x1 = norect.y1 = 0; |
@@ -574,10 +572,10 @@ int vmw_framebuffer_dmabuf_dirty(struct drm_framebuffer *framebuffer, | |||
574 | 572 | ||
575 | for (i = 0; i < num_clips; i++, clips += increment) { | 573 | for (i = 0; i < num_clips; i++, clips += increment) { |
576 | cmd[i].header = cpu_to_le32(SVGA_CMD_UPDATE); | 574 | cmd[i].header = cpu_to_le32(SVGA_CMD_UPDATE); |
577 | cmd[i].body.x = cpu_to_le32(clips[i].x1); | 575 | cmd[i].body.x = cpu_to_le32(clips->x1); |
578 | cmd[i].body.y = cpu_to_le32(clips[i].y1); | 576 | cmd[i].body.y = cpu_to_le32(clips->y1); |
579 | cmd[i].body.width = cpu_to_le32(clips[i].x2 - clips[i].x1); | 577 | cmd[i].body.width = cpu_to_le32(clips->x2 - clips->x1); |
580 | cmd[i].body.height = cpu_to_le32(clips[i].y2 - clips[i].y1); | 578 | cmd[i].body.height = cpu_to_le32(clips->y2 - clips->y1); |
581 | } | 579 | } |
582 | 580 | ||
583 | vmw_fifo_commit(dev_priv, sizeof(*cmd) * num_clips); | 581 | vmw_fifo_commit(dev_priv, sizeof(*cmd) * num_clips); |
@@ -709,6 +707,9 @@ static struct drm_framebuffer *vmw_kms_fb_create(struct drm_device *dev, | |||
709 | if (ret) | 707 | if (ret) |
710 | goto try_dmabuf; | 708 | goto try_dmabuf; |
711 | 709 | ||
710 | if (!surface->scanout) | ||
711 | goto err_not_scanout; | ||
712 | |||
712 | ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb, | 713 | ret = vmw_kms_new_framebuffer_surface(dev_priv, surface, &vfb, |
713 | mode_cmd->width, mode_cmd->height); | 714 | mode_cmd->width, mode_cmd->height); |
714 | 715 | ||
@@ -742,6 +743,13 @@ try_dmabuf: | |||
742 | } | 743 | } |
743 | 744 | ||
744 | return &vfb->base; | 745 | return &vfb->base; |
746 | |||
747 | err_not_scanout: | ||
748 | DRM_ERROR("surface not marked as scanout\n"); | ||
749 | /* vmw_user_surface_lookup takes one ref */ | ||
750 | vmw_surface_unreference(&surface); | ||
751 | |||
752 | return NULL; | ||
745 | } | 753 | } |
746 | 754 | ||
747 | static int vmw_kms_fb_changed(struct drm_device *dev) | 755 | static int vmw_kms_fb_changed(struct drm_device *dev) |
@@ -761,10 +769,10 @@ int vmw_kms_init(struct vmw_private *dev_priv) | |||
761 | 769 | ||
762 | drm_mode_config_init(dev); | 770 | drm_mode_config_init(dev); |
763 | dev->mode_config.funcs = &vmw_kms_funcs; | 771 | dev->mode_config.funcs = &vmw_kms_funcs; |
764 | dev->mode_config.min_width = 640; | 772 | dev->mode_config.min_width = 1; |
765 | dev->mode_config.min_height = 480; | 773 | dev->mode_config.min_height = 1; |
766 | dev->mode_config.max_width = 2048; | 774 | dev->mode_config.max_width = dev_priv->fb_max_width; |
767 | dev->mode_config.max_height = 2048; | 775 | dev->mode_config.max_height = dev_priv->fb_max_height; |
768 | 776 | ||
769 | ret = vmw_kms_init_legacy_display_system(dev_priv); | 777 | ret = vmw_kms_init_legacy_display_system(dev_priv); |
770 | 778 | ||
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c index bb6e6a096d25..5b6eabeb7f51 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_overlay.c | |||
@@ -104,7 +104,6 @@ static int vmw_dmabuf_pin_in_vram(struct vmw_private *dev_priv, | |||
104 | bool pin, bool interruptible) | 104 | bool pin, bool interruptible) |
105 | { | 105 | { |
106 | struct ttm_buffer_object *bo = &buf->base; | 106 | struct ttm_buffer_object *bo = &buf->base; |
107 | struct ttm_bo_global *glob = bo->glob; | ||
108 | struct ttm_placement *overlay_placement = &vmw_vram_placement; | 107 | struct ttm_placement *overlay_placement = &vmw_vram_placement; |
109 | int ret; | 108 | int ret; |
110 | 109 | ||
@@ -116,14 +115,6 @@ static int vmw_dmabuf_pin_in_vram(struct vmw_private *dev_priv, | |||
116 | if (unlikely(ret != 0)) | 115 | if (unlikely(ret != 0)) |
117 | goto err; | 116 | goto err; |
118 | 117 | ||
119 | if (buf->gmr_bound) { | ||
120 | vmw_gmr_unbind(dev_priv, buf->gmr_id); | ||
121 | spin_lock(&glob->lru_lock); | ||
122 | ida_remove(&dev_priv->gmr_ida, buf->gmr_id); | ||
123 | spin_unlock(&glob->lru_lock); | ||
124 | buf->gmr_bound = NULL; | ||
125 | } | ||
126 | |||
127 | if (pin) | 118 | if (pin) |
128 | overlay_placement = &vmw_vram_ne_placement; | 119 | overlay_placement = &vmw_vram_ne_placement; |
129 | 120 | ||
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c index c012d5927f65..f8fbbc67a406 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | |||
@@ -574,6 +574,7 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, | |||
574 | 574 | ||
575 | srf->flags = req->flags; | 575 | srf->flags = req->flags; |
576 | srf->format = req->format; | 576 | srf->format = req->format; |
577 | srf->scanout = req->scanout; | ||
577 | memcpy(srf->mip_levels, req->mip_levels, sizeof(srf->mip_levels)); | 578 | memcpy(srf->mip_levels, req->mip_levels, sizeof(srf->mip_levels)); |
578 | srf->num_sizes = 0; | 579 | srf->num_sizes = 0; |
579 | for (i = 0; i < DRM_VMW_MAX_SURFACE_FACES; ++i) | 580 | for (i = 0; i < DRM_VMW_MAX_SURFACE_FACES; ++i) |
@@ -599,6 +600,26 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, | |||
599 | if (unlikely(ret != 0)) | 600 | if (unlikely(ret != 0)) |
600 | goto out_err1; | 601 | goto out_err1; |
601 | 602 | ||
603 | if (srf->scanout && | ||
604 | srf->num_sizes == 1 && | ||
605 | srf->sizes[0].width == 64 && | ||
606 | srf->sizes[0].height == 64 && | ||
607 | srf->format == SVGA3D_A8R8G8B8) { | ||
608 | |||
609 | srf->snooper.image = kmalloc(64 * 64 * 4, GFP_KERNEL); | ||
610 | /* clear the image */ | ||
611 | if (srf->snooper.image) { | ||
612 | memset(srf->snooper.image, 0x00, 64 * 64 * 4); | ||
613 | } else { | ||
614 | DRM_ERROR("Failed to allocate cursor_image\n"); | ||
615 | ret = -ENOMEM; | ||
616 | goto out_err1; | ||
617 | } | ||
618 | } else { | ||
619 | srf->snooper.image = NULL; | ||
620 | } | ||
621 | srf->snooper.crtc = NULL; | ||
622 | |||
602 | user_srf->base.shareable = false; | 623 | user_srf->base.shareable = false; |
603 | user_srf->base.tfile = NULL; | 624 | user_srf->base.tfile = NULL; |
604 | 625 | ||
@@ -622,24 +643,6 @@ int vmw_surface_define_ioctl(struct drm_device *dev, void *data, | |||
622 | return ret; | 643 | return ret; |
623 | } | 644 | } |
624 | 645 | ||
625 | if (srf->flags & (1 << 9) && | ||
626 | srf->num_sizes == 1 && | ||
627 | srf->sizes[0].width == 64 && | ||
628 | srf->sizes[0].height == 64 && | ||
629 | srf->format == SVGA3D_A8R8G8B8) { | ||
630 | |||
631 | srf->snooper.image = kmalloc(64 * 64 * 4, GFP_KERNEL); | ||
632 | /* clear the image */ | ||
633 | if (srf->snooper.image) | ||
634 | memset(srf->snooper.image, 0x00, 64 * 64 * 4); | ||
635 | else | ||
636 | DRM_ERROR("Failed to allocate cursor_image\n"); | ||
637 | |||
638 | } else { | ||
639 | srf->snooper.image = NULL; | ||
640 | } | ||
641 | srf->snooper.crtc = NULL; | ||
642 | |||
643 | rep->sid = user_srf->base.hash.key; | 646 | rep->sid = user_srf->base.hash.key; |
644 | if (rep->sid == SVGA3D_INVALID_ID) | 647 | if (rep->sid == SVGA3D_INVALID_ID) |
645 | DRM_ERROR("Created bad Surface ID.\n"); | 648 | DRM_ERROR("Created bad Surface ID.\n"); |
@@ -754,20 +757,29 @@ static size_t vmw_dmabuf_acc_size(struct ttm_bo_global *glob, | |||
754 | return bo_user_size + page_array_size; | 757 | return bo_user_size + page_array_size; |
755 | } | 758 | } |
756 | 759 | ||
757 | void vmw_dmabuf_bo_free(struct ttm_buffer_object *bo) | 760 | void vmw_dmabuf_gmr_unbind(struct ttm_buffer_object *bo) |
758 | { | 761 | { |
759 | struct vmw_dma_buffer *vmw_bo = vmw_dma_buffer(bo); | 762 | struct vmw_dma_buffer *vmw_bo = vmw_dma_buffer(bo); |
760 | struct ttm_bo_global *glob = bo->glob; | 763 | struct ttm_bo_global *glob = bo->glob; |
761 | struct vmw_private *dev_priv = | 764 | struct vmw_private *dev_priv = |
762 | container_of(bo->bdev, struct vmw_private, bdev); | 765 | container_of(bo->bdev, struct vmw_private, bdev); |
763 | 766 | ||
764 | ttm_mem_global_free(glob->mem_glob, bo->acc_size); | ||
765 | if (vmw_bo->gmr_bound) { | 767 | if (vmw_bo->gmr_bound) { |
766 | vmw_gmr_unbind(dev_priv, vmw_bo->gmr_id); | 768 | vmw_gmr_unbind(dev_priv, vmw_bo->gmr_id); |
767 | spin_lock(&glob->lru_lock); | 769 | spin_lock(&glob->lru_lock); |
768 | ida_remove(&dev_priv->gmr_ida, vmw_bo->gmr_id); | 770 | ida_remove(&dev_priv->gmr_ida, vmw_bo->gmr_id); |
769 | spin_unlock(&glob->lru_lock); | 771 | spin_unlock(&glob->lru_lock); |
772 | vmw_bo->gmr_bound = false; | ||
770 | } | 773 | } |
774 | } | ||
775 | |||
776 | void vmw_dmabuf_bo_free(struct ttm_buffer_object *bo) | ||
777 | { | ||
778 | struct vmw_dma_buffer *vmw_bo = vmw_dma_buffer(bo); | ||
779 | struct ttm_bo_global *glob = bo->glob; | ||
780 | |||
781 | vmw_dmabuf_gmr_unbind(bo); | ||
782 | ttm_mem_global_free(glob->mem_glob, bo->acc_size); | ||
771 | kfree(vmw_bo); | 783 | kfree(vmw_bo); |
772 | } | 784 | } |
773 | 785 | ||
@@ -813,18 +825,10 @@ int vmw_dmabuf_init(struct vmw_private *dev_priv, | |||
813 | static void vmw_user_dmabuf_destroy(struct ttm_buffer_object *bo) | 825 | static void vmw_user_dmabuf_destroy(struct ttm_buffer_object *bo) |
814 | { | 826 | { |
815 | struct vmw_user_dma_buffer *vmw_user_bo = vmw_user_dma_buffer(bo); | 827 | struct vmw_user_dma_buffer *vmw_user_bo = vmw_user_dma_buffer(bo); |
816 | struct vmw_dma_buffer *vmw_bo = &vmw_user_bo->dma; | ||
817 | struct ttm_bo_global *glob = bo->glob; | 828 | struct ttm_bo_global *glob = bo->glob; |
818 | struct vmw_private *dev_priv = | ||
819 | container_of(bo->bdev, struct vmw_private, bdev); | ||
820 | 829 | ||
830 | vmw_dmabuf_gmr_unbind(bo); | ||
821 | ttm_mem_global_free(glob->mem_glob, bo->acc_size); | 831 | ttm_mem_global_free(glob->mem_glob, bo->acc_size); |
822 | if (vmw_bo->gmr_bound) { | ||
823 | vmw_gmr_unbind(dev_priv, vmw_bo->gmr_id); | ||
824 | spin_lock(&glob->lru_lock); | ||
825 | ida_remove(&dev_priv->gmr_ida, vmw_bo->gmr_id); | ||
826 | spin_unlock(&glob->lru_lock); | ||
827 | } | ||
828 | kfree(vmw_user_bo); | 832 | kfree(vmw_user_bo); |
829 | } | 833 | } |
830 | 834 | ||
@@ -868,7 +872,7 @@ int vmw_dmabuf_alloc_ioctl(struct drm_device *dev, void *data, | |||
868 | } | 872 | } |
869 | 873 | ||
870 | ret = vmw_dmabuf_init(dev_priv, &vmw_user_bo->dma, req->size, | 874 | ret = vmw_dmabuf_init(dev_priv, &vmw_user_bo->dma, req->size, |
871 | &vmw_vram_placement, true, | 875 | &vmw_vram_sys_placement, true, |
872 | &vmw_user_dmabuf_destroy); | 876 | &vmw_user_dmabuf_destroy); |
873 | if (unlikely(ret != 0)) | 877 | if (unlikely(ret != 0)) |
874 | return ret; | 878 | return ret; |
diff --git a/drivers/gpu/vga/vgaarb.c b/drivers/gpu/vga/vgaarb.c index 1ac0c93603c9..24b56dc54597 100644 --- a/drivers/gpu/vga/vgaarb.c +++ b/drivers/gpu/vga/vgaarb.c | |||
@@ -961,7 +961,7 @@ static ssize_t vga_arb_write(struct file *file, const char __user * buf, | |||
961 | remaining -= 7; | 961 | remaining -= 7; |
962 | pr_devel("client 0x%p called 'target'\n", priv); | 962 | pr_devel("client 0x%p called 'target'\n", priv); |
963 | /* if target is default */ | 963 | /* if target is default */ |
964 | if (!strncmp(buf, "default", 7)) | 964 | if (!strncmp(kbuf, "default", 7)) |
965 | pdev = pci_dev_get(vga_default_device()); | 965 | pdev = pci_dev_get(vga_default_device()); |
966 | else { | 966 | else { |
967 | if (!vga_pci_str_to_vars(curr_pos, remaining, | 967 | if (!vga_pci_str_to_vars(curr_pos, remaining, |
diff --git a/drivers/hwmon/adt7462.c b/drivers/hwmon/adt7462.c index a31e77c776ae..b8156b4893bb 100644 --- a/drivers/hwmon/adt7462.c +++ b/drivers/hwmon/adt7462.c | |||
@@ -179,7 +179,7 @@ static const unsigned short normal_i2c[] = { 0x58, 0x5C, I2C_CLIENT_END }; | |||
179 | * | 179 | * |
180 | * Some, but not all, of these voltages have low/high limits. | 180 | * Some, but not all, of these voltages have low/high limits. |
181 | */ | 181 | */ |
182 | #define ADT7462_VOLT_COUNT 12 | 182 | #define ADT7462_VOLT_COUNT 13 |
183 | 183 | ||
184 | #define ADT7462_VENDOR 0x41 | 184 | #define ADT7462_VENDOR 0x41 |
185 | #define ADT7462_DEVICE 0x62 | 185 | #define ADT7462_DEVICE 0x62 |
diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c index 1c89d922d619..fa9708c2d723 100644 --- a/drivers/hwmon/amc6821.c +++ b/drivers/hwmon/amc6821.c | |||
@@ -686,7 +686,6 @@ static ssize_t set_fan1_div( | |||
686 | data->fan1_div = 4; | 686 | data->fan1_div = 4; |
687 | break; | 687 | break; |
688 | default: | 688 | default: |
689 | mutex_unlock(&data->update_lock); | ||
690 | count = -EINVAL; | 689 | count = -EINVAL; |
691 | goto EXIT; | 690 | goto EXIT; |
692 | } | 691 | } |
diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c index 6811346c1c62..028284f544e3 100644 --- a/drivers/hwmon/asus_atk0110.c +++ b/drivers/hwmon/asus_atk0110.c | |||
@@ -1329,17 +1329,16 @@ static int atk_add(struct acpi_device *device) | |||
1329 | &buf, ACPI_TYPE_PACKAGE); | 1329 | &buf, ACPI_TYPE_PACKAGE); |
1330 | if (ret != AE_OK) { | 1330 | if (ret != AE_OK) { |
1331 | dev_dbg(&device->dev, "atk: method MBIF not found\n"); | 1331 | dev_dbg(&device->dev, "atk: method MBIF not found\n"); |
1332 | err = -ENODEV; | 1332 | } else { |
1333 | goto out; | 1333 | obj = buf.pointer; |
1334 | } | 1334 | if (obj->package.count >= 2) { |
1335 | 1335 | union acpi_object *id = &obj->package.elements[1]; | |
1336 | obj = buf.pointer; | 1336 | if (id->type == ACPI_TYPE_STRING) |
1337 | if (obj->package.count >= 2 && | 1337 | dev_dbg(&device->dev, "board ID = %s\n", |
1338 | obj->package.elements[1].type == ACPI_TYPE_STRING) { | 1338 | id->string.pointer); |
1339 | dev_dbg(&device->dev, "board ID = %s\n", | 1339 | } |
1340 | obj->package.elements[1].string.pointer); | 1340 | ACPI_FREE(buf.pointer); |
1341 | } | 1341 | } |
1342 | ACPI_FREE(buf.pointer); | ||
1343 | 1342 | ||
1344 | err = atk_probe_if(data); | 1343 | err = atk_probe_if(data); |
1345 | if (err) { | 1344 | if (err) { |
diff --git a/drivers/hwmon/fschmd.c b/drivers/hwmon/fschmd.c index bd0fc67e804b..fa0728232e71 100644 --- a/drivers/hwmon/fschmd.c +++ b/drivers/hwmon/fschmd.c | |||
@@ -768,6 +768,7 @@ leave: | |||
768 | static int watchdog_open(struct inode *inode, struct file *filp) | 768 | static int watchdog_open(struct inode *inode, struct file *filp) |
769 | { | 769 | { |
770 | struct fschmd_data *pos, *data = NULL; | 770 | struct fschmd_data *pos, *data = NULL; |
771 | int watchdog_is_open; | ||
771 | 772 | ||
772 | /* We get called from drivers/char/misc.c with misc_mtx hold, and we | 773 | /* We get called from drivers/char/misc.c with misc_mtx hold, and we |
773 | call misc_register() from fschmd_probe() with watchdog_data_mutex | 774 | call misc_register() from fschmd_probe() with watchdog_data_mutex |
@@ -782,10 +783,12 @@ static int watchdog_open(struct inode *inode, struct file *filp) | |||
782 | } | 783 | } |
783 | } | 784 | } |
784 | /* Note we can never not have found data, so we don't check for this */ | 785 | /* Note we can never not have found data, so we don't check for this */ |
785 | kref_get(&data->kref); | 786 | watchdog_is_open = test_and_set_bit(0, &data->watchdog_is_open); |
787 | if (!watchdog_is_open) | ||
788 | kref_get(&data->kref); | ||
786 | mutex_unlock(&watchdog_data_mutex); | 789 | mutex_unlock(&watchdog_data_mutex); |
787 | 790 | ||
788 | if (test_and_set_bit(0, &data->watchdog_is_open)) | 791 | if (watchdog_is_open) |
789 | return -EBUSY; | 792 | return -EBUSY; |
790 | 793 | ||
791 | /* Start the watchdog */ | 794 | /* Start the watchdog */ |
diff --git a/drivers/hwmon/lm78.c b/drivers/hwmon/lm78.c index cadcbd90ff3b..72ff2c4e757d 100644 --- a/drivers/hwmon/lm78.c +++ b/drivers/hwmon/lm78.c | |||
@@ -851,17 +851,16 @@ static struct lm78_data *lm78_update_device(struct device *dev) | |||
851 | static int __init lm78_isa_found(unsigned short address) | 851 | static int __init lm78_isa_found(unsigned short address) |
852 | { | 852 | { |
853 | int val, save, found = 0; | 853 | int val, save, found = 0; |
854 | 854 | int port; | |
855 | /* We have to request the region in two parts because some | 855 | |
856 | boards declare base+4 to base+7 as a PNP device */ | 856 | /* Some boards declare base+0 to base+7 as a PNP device, some base+4 |
857 | if (!request_region(address, 4, "lm78")) { | 857 | * to base+7 and some base+5 to base+6. So we better request each port |
858 | pr_debug("lm78: Failed to request low part of region\n"); | 858 | * individually for the probing phase. */ |
859 | return 0; | 859 | for (port = address; port < address + LM78_EXTENT; port++) { |
860 | } | 860 | if (!request_region(port, 1, "lm78")) { |
861 | if (!request_region(address + 4, 4, "lm78")) { | 861 | pr_debug("lm78: Failed to request port 0x%x\n", port); |
862 | pr_debug("lm78: Failed to request high part of region\n"); | 862 | goto release; |
863 | release_region(address, 4); | 863 | } |
864 | return 0; | ||
865 | } | 864 | } |
866 | 865 | ||
867 | #define REALLY_SLOW_IO | 866 | #define REALLY_SLOW_IO |
@@ -925,8 +924,8 @@ static int __init lm78_isa_found(unsigned short address) | |||
925 | val & 0x80 ? "LM79" : "LM78", (int)address); | 924 | val & 0x80 ? "LM79" : "LM78", (int)address); |
926 | 925 | ||
927 | release: | 926 | release: |
928 | release_region(address + 4, 4); | 927 | for (port--; port >= address; port--) |
929 | release_region(address, 4); | 928 | release_region(port, 1); |
930 | return found; | 929 | return found; |
931 | } | 930 | } |
932 | 931 | ||
diff --git a/drivers/hwmon/smsc47m1.c b/drivers/hwmon/smsc47m1.c index 9ca97818bd4b..8fa462f2b570 100644 --- a/drivers/hwmon/smsc47m1.c +++ b/drivers/hwmon/smsc47m1.c | |||
@@ -488,7 +488,7 @@ static int __init smsc47m1_find(unsigned short *addr, | |||
488 | } | 488 | } |
489 | 489 | ||
490 | /* Restore device to its initial state */ | 490 | /* Restore device to its initial state */ |
491 | static void __init smsc47m1_restore(const struct smsc47m1_sio_data *sio_data) | 491 | static void smsc47m1_restore(const struct smsc47m1_sio_data *sio_data) |
492 | { | 492 | { |
493 | if ((sio_data->activate & 0x01) == 0) { | 493 | if ((sio_data->activate & 0x01) == 0) { |
494 | superio_enter(); | 494 | superio_enter(); |
diff --git a/drivers/hwmon/w83781d.c b/drivers/hwmon/w83781d.c index 05f9225b6f94..32d4adee73db 100644 --- a/drivers/hwmon/w83781d.c +++ b/drivers/hwmon/w83781d.c | |||
@@ -1793,17 +1793,17 @@ static int __init | |||
1793 | w83781d_isa_found(unsigned short address) | 1793 | w83781d_isa_found(unsigned short address) |
1794 | { | 1794 | { |
1795 | int val, save, found = 0; | 1795 | int val, save, found = 0; |
1796 | 1796 | int port; | |
1797 | /* We have to request the region in two parts because some | 1797 | |
1798 | boards declare base+4 to base+7 as a PNP device */ | 1798 | /* Some boards declare base+0 to base+7 as a PNP device, some base+4 |
1799 | if (!request_region(address, 4, "w83781d")) { | 1799 | * to base+7 and some base+5 to base+6. So we better request each port |
1800 | pr_debug("w83781d: Failed to request low part of region\n"); | 1800 | * individually for the probing phase. */ |
1801 | return 0; | 1801 | for (port = address; port < address + W83781D_EXTENT; port++) { |
1802 | } | 1802 | if (!request_region(port, 1, "w83781d")) { |
1803 | if (!request_region(address + 4, 4, "w83781d")) { | 1803 | pr_debug("w83781d: Failed to request port 0x%x\n", |
1804 | pr_debug("w83781d: Failed to request high part of region\n"); | 1804 | port); |
1805 | release_region(address, 4); | 1805 | goto release; |
1806 | return 0; | 1806 | } |
1807 | } | 1807 | } |
1808 | 1808 | ||
1809 | #define REALLY_SLOW_IO | 1809 | #define REALLY_SLOW_IO |
@@ -1877,8 +1877,8 @@ w83781d_isa_found(unsigned short address) | |||
1877 | val == 0x30 ? "W83782D" : "W83781D", (int)address); | 1877 | val == 0x30 ? "W83782D" : "W83781D", (int)address); |
1878 | 1878 | ||
1879 | release: | 1879 | release: |
1880 | release_region(address + 4, 4); | 1880 | for (port--; port >= address; port--) |
1881 | release_region(address, 4); | 1881 | release_region(port, 1); |
1882 | return found; | 1882 | return found; |
1883 | } | 1883 | } |
1884 | 1884 | ||
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index e3654d683e15..75bf820e7ccb 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c | |||
@@ -226,7 +226,6 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx) | |||
226 | temp = readb(i2c_imx->base + IMX_I2C_I2CR); | 226 | temp = readb(i2c_imx->base + IMX_I2C_I2CR); |
227 | temp &= ~(I2CR_MSTA | I2CR_MTX); | 227 | temp &= ~(I2CR_MSTA | I2CR_MTX); |
228 | writeb(temp, i2c_imx->base + IMX_I2C_I2CR); | 228 | writeb(temp, i2c_imx->base + IMX_I2C_I2CR); |
229 | i2c_imx->stopped = 1; | ||
230 | } | 229 | } |
231 | if (cpu_is_mx1()) { | 230 | if (cpu_is_mx1()) { |
232 | /* | 231 | /* |
@@ -236,8 +235,10 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx) | |||
236 | udelay(i2c_imx->disable_delay); | 235 | udelay(i2c_imx->disable_delay); |
237 | } | 236 | } |
238 | 237 | ||
239 | if (!i2c_imx->stopped) | 238 | if (!i2c_imx->stopped) { |
240 | i2c_imx_bus_busy(i2c_imx, 0); | 239 | i2c_imx_bus_busy(i2c_imx, 0); |
240 | i2c_imx->stopped = 1; | ||
241 | } | ||
241 | 242 | ||
242 | /* Disable I2C controller */ | 243 | /* Disable I2C controller */ |
243 | writeb(0, i2c_imx->base + IMX_I2C_I2CR); | 244 | writeb(0, i2c_imx->base + IMX_I2C_I2CR); |
@@ -496,22 +497,23 @@ static int __init i2c_imx_probe(struct platform_device *pdev) | |||
496 | } | 497 | } |
497 | 498 | ||
498 | res_size = resource_size(res); | 499 | res_size = resource_size(res); |
500 | |||
501 | if (!request_mem_region(res->start, res_size, DRIVER_NAME)) { | ||
502 | ret = -EBUSY; | ||
503 | goto fail0; | ||
504 | } | ||
505 | |||
499 | base = ioremap(res->start, res_size); | 506 | base = ioremap(res->start, res_size); |
500 | if (!base) { | 507 | if (!base) { |
501 | dev_err(&pdev->dev, "ioremap failed\n"); | 508 | dev_err(&pdev->dev, "ioremap failed\n"); |
502 | ret = -EIO; | 509 | ret = -EIO; |
503 | goto fail0; | 510 | goto fail1; |
504 | } | 511 | } |
505 | 512 | ||
506 | i2c_imx = kzalloc(sizeof(struct imx_i2c_struct), GFP_KERNEL); | 513 | i2c_imx = kzalloc(sizeof(struct imx_i2c_struct), GFP_KERNEL); |
507 | if (!i2c_imx) { | 514 | if (!i2c_imx) { |
508 | dev_err(&pdev->dev, "can't allocate interface\n"); | 515 | dev_err(&pdev->dev, "can't allocate interface\n"); |
509 | ret = -ENOMEM; | 516 | ret = -ENOMEM; |
510 | goto fail1; | ||
511 | } | ||
512 | |||
513 | if (!request_mem_region(res->start, res_size, DRIVER_NAME)) { | ||
514 | ret = -EBUSY; | ||
515 | goto fail2; | 517 | goto fail2; |
516 | } | 518 | } |
517 | 519 | ||
@@ -582,11 +584,11 @@ fail5: | |||
582 | fail4: | 584 | fail4: |
583 | clk_put(i2c_imx->clk); | 585 | clk_put(i2c_imx->clk); |
584 | fail3: | 586 | fail3: |
585 | release_mem_region(i2c_imx->res->start, resource_size(res)); | ||
586 | fail2: | ||
587 | kfree(i2c_imx); | 587 | kfree(i2c_imx); |
588 | fail1: | 588 | fail2: |
589 | iounmap(base); | 589 | iounmap(base); |
590 | fail1: | ||
591 | release_mem_region(res->start, resource_size(res)); | ||
590 | fail0: | 592 | fail0: |
591 | if (pdata && pdata->exit) | 593 | if (pdata && pdata->exit) |
592 | pdata->exit(&pdev->dev); | 594 | pdata->exit(&pdev->dev); |
@@ -618,8 +620,8 @@ static int __exit i2c_imx_remove(struct platform_device *pdev) | |||
618 | 620 | ||
619 | clk_put(i2c_imx->clk); | 621 | clk_put(i2c_imx->clk); |
620 | 622 | ||
621 | release_mem_region(i2c_imx->res->start, resource_size(i2c_imx->res)); | ||
622 | iounmap(i2c_imx->base); | 623 | iounmap(i2c_imx->base); |
624 | release_mem_region(i2c_imx->res->start, resource_size(i2c_imx->res)); | ||
623 | kfree(i2c_imx); | 625 | kfree(i2c_imx); |
624 | return 0; | 626 | return 0; |
625 | } | 627 | } |
diff --git a/drivers/i2c/busses/i2c-tiny-usb.c b/drivers/i2c/busses/i2c-tiny-usb.c index b1c050ff311d..e29b6d5ba8ef 100644 --- a/drivers/i2c/busses/i2c-tiny-usb.c +++ b/drivers/i2c/busses/i2c-tiny-usb.c | |||
@@ -13,6 +13,7 @@ | |||
13 | #include <linux/kernel.h> | 13 | #include <linux/kernel.h> |
14 | #include <linux/errno.h> | 14 | #include <linux/errno.h> |
15 | #include <linux/module.h> | 15 | #include <linux/module.h> |
16 | #include <linux/types.h> | ||
16 | 17 | ||
17 | /* include interfaces to usb layer */ | 18 | /* include interfaces to usb layer */ |
18 | #include <linux/usb.h> | 19 | #include <linux/usb.h> |
@@ -31,8 +32,8 @@ | |||
31 | #define CMD_I2C_IO_END (1<<1) | 32 | #define CMD_I2C_IO_END (1<<1) |
32 | 33 | ||
33 | /* i2c bit delay, default is 10us -> 100kHz */ | 34 | /* i2c bit delay, default is 10us -> 100kHz */ |
34 | static int delay = 10; | 35 | static unsigned short delay = 10; |
35 | module_param(delay, int, 0); | 36 | module_param(delay, ushort, 0); |
36 | MODULE_PARM_DESC(delay, "bit delay in microseconds, " | 37 | MODULE_PARM_DESC(delay, "bit delay in microseconds, " |
37 | "e.g. 10 for 100kHz (default is 100kHz)"); | 38 | "e.g. 10 for 100kHz (default is 100kHz)"); |
38 | 39 | ||
@@ -109,7 +110,7 @@ static int usb_xfer(struct i2c_adapter *adapter, struct i2c_msg *msgs, int num) | |||
109 | 110 | ||
110 | static u32 usb_func(struct i2c_adapter *adapter) | 111 | static u32 usb_func(struct i2c_adapter *adapter) |
111 | { | 112 | { |
112 | u32 func; | 113 | __le32 func; |
113 | 114 | ||
114 | /* get functionality from adapter */ | 115 | /* get functionality from adapter */ |
115 | if (usb_read(adapter, CMD_GET_FUNC, 0, 0, &func, sizeof(func)) != | 116 | if (usb_read(adapter, CMD_GET_FUNC, 0, 0, &func, sizeof(func)) != |
@@ -118,7 +119,7 @@ static u32 usb_func(struct i2c_adapter *adapter) | |||
118 | return 0; | 119 | return 0; |
119 | } | 120 | } |
120 | 121 | ||
121 | return func; | 122 | return le32_to_cpu(func); |
122 | } | 123 | } |
123 | 124 | ||
124 | /* This is the actual algorithm we define */ | 125 | /* This is the actual algorithm we define */ |
@@ -216,8 +217,7 @@ static int i2c_tiny_usb_probe(struct usb_interface *interface, | |||
216 | "i2c-tiny-usb at bus %03d device %03d", | 217 | "i2c-tiny-usb at bus %03d device %03d", |
217 | dev->usb_dev->bus->busnum, dev->usb_dev->devnum); | 218 | dev->usb_dev->bus->busnum, dev->usb_dev->devnum); |
218 | 219 | ||
219 | if (usb_write(&dev->adapter, CMD_SET_DELAY, | 220 | if (usb_write(&dev->adapter, CMD_SET_DELAY, delay, 0, NULL, 0) != 0) { |
220 | cpu_to_le16(delay), 0, NULL, 0) != 0) { | ||
221 | dev_err(&dev->adapter.dev, | 221 | dev_err(&dev->adapter.dev, |
222 | "failure setting delay to %dus\n", delay); | 222 | "failure setting delay to %dus\n", delay); |
223 | retval = -EIO; | 223 | retval = -EIO; |
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c index cc9b5940fa97..875e34e0b235 100644 --- a/drivers/infiniband/core/cma.c +++ b/drivers/infiniband/core/cma.c | |||
@@ -2115,9 +2115,7 @@ int rdma_bind_addr(struct rdma_cm_id *id, struct sockaddr *addr) | |||
2115 | if (ret) | 2115 | if (ret) |
2116 | goto err1; | 2116 | goto err1; |
2117 | 2117 | ||
2118 | if (cma_loopback_addr(addr)) { | 2118 | if (!cma_any_addr(addr)) { |
2119 | ret = cma_bind_loopback(id_priv); | ||
2120 | } else if (!cma_zero_addr(addr)) { | ||
2121 | ret = rdma_translate_ip(addr, &id->route.addr.dev_addr); | 2119 | ret = rdma_translate_ip(addr, &id->route.addr.dev_addr); |
2122 | if (ret) | 2120 | if (ret) |
2123 | goto err1; | 2121 | goto err1; |
diff --git a/drivers/infiniband/hw/ipath/ipath_fs.c b/drivers/infiniband/hw/ipath/ipath_fs.c index b3684060465e..100da8542bba 100644 --- a/drivers/infiniband/hw/ipath/ipath_fs.c +++ b/drivers/infiniband/hw/ipath/ipath_fs.c | |||
@@ -346,10 +346,8 @@ static int ipathfs_fill_super(struct super_block *sb, void *data, | |||
346 | list_for_each_entry_safe(dd, tmp, &ipath_dev_list, ipath_list) { | 346 | list_for_each_entry_safe(dd, tmp, &ipath_dev_list, ipath_list) { |
347 | spin_unlock_irqrestore(&ipath_devs_lock, flags); | 347 | spin_unlock_irqrestore(&ipath_devs_lock, flags); |
348 | ret = create_device_files(sb, dd); | 348 | ret = create_device_files(sb, dd); |
349 | if (ret) { | 349 | if (ret) |
350 | deactivate_locked_super(sb); | ||
351 | goto bail; | 350 | goto bail; |
352 | } | ||
353 | spin_lock_irqsave(&ipath_devs_lock, flags); | 351 | spin_lock_irqsave(&ipath_devs_lock, flags); |
354 | } | 352 | } |
355 | 353 | ||
diff --git a/drivers/input/input.c b/drivers/input/input.c index 30b503b8d67b..86cb2d2196ff 100644 --- a/drivers/input/input.c +++ b/drivers/input/input.c | |||
@@ -46,6 +46,7 @@ static unsigned int input_abs_bypass_init_data[] __initdata = { | |||
46 | ABS_MT_TOOL_TYPE, | 46 | ABS_MT_TOOL_TYPE, |
47 | ABS_MT_BLOB_ID, | 47 | ABS_MT_BLOB_ID, |
48 | ABS_MT_TRACKING_ID, | 48 | ABS_MT_TRACKING_ID, |
49 | ABS_MT_PRESSURE, | ||
49 | 0 | 50 | 0 |
50 | }; | 51 | }; |
51 | static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)]; | 52 | static unsigned long input_abs_bypass[BITS_TO_LONGS(ABS_CNT)]; |
diff --git a/drivers/input/misc/winbond-cir.c b/drivers/input/misc/winbond-cir.c index 33309fe44e20..c8f5a9a3fa14 100644 --- a/drivers/input/misc/winbond-cir.c +++ b/drivers/input/misc/winbond-cir.c | |||
@@ -768,7 +768,7 @@ wbcir_parse_rc6(struct device *dev, struct wbcir_data *data) | |||
768 | return; | 768 | return; |
769 | } | 769 | } |
770 | 770 | ||
771 | dev_info(dev, "IR-RC6 ad 0x%02X cm 0x%02X cu 0x%04X " | 771 | dev_dbg(dev, "IR-RC6 ad 0x%02X cm 0x%02X cu 0x%04X " |
772 | "toggle %u mode %u scan 0x%08X\n", | 772 | "toggle %u mode %u scan 0x%08X\n", |
773 | address, | 773 | address, |
774 | command, | 774 | command, |
diff --git a/drivers/input/mouse/lifebook.c b/drivers/input/mouse/lifebook.c index 6d7aa10d10f0..7c1d7d420ae3 100644 --- a/drivers/input/mouse/lifebook.c +++ b/drivers/input/mouse/lifebook.c | |||
@@ -53,6 +53,12 @@ static const struct dmi_system_id __initconst lifebook_dmi_table[] = { | |||
53 | { | 53 | { |
54 | /* LifeBook B */ | 54 | /* LifeBook B */ |
55 | .matches = { | 55 | .matches = { |
56 | DMI_MATCH(DMI_PRODUCT_NAME, "Lifebook B Series"), | ||
57 | }, | ||
58 | }, | ||
59 | { | ||
60 | /* LifeBook B */ | ||
61 | .matches = { | ||
56 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B Series"), | 62 | DMI_MATCH(DMI_PRODUCT_NAME, "LifeBook B Series"), |
57 | }, | 63 | }, |
58 | }, | 64 | }, |
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c index 9774bdfaa482..d8c0c8d6992c 100644 --- a/drivers/input/mouse/psmouse-base.c +++ b/drivers/input/mouse/psmouse-base.c | |||
@@ -1141,7 +1141,14 @@ static void psmouse_cleanup(struct serio *serio) | |||
1141 | psmouse_deactivate(parent); | 1141 | psmouse_deactivate(parent); |
1142 | } | 1142 | } |
1143 | 1143 | ||
1144 | psmouse_deactivate(psmouse); | 1144 | psmouse_set_state(psmouse, PSMOUSE_INITIALIZING); |
1145 | |||
1146 | /* | ||
1147 | * Disable stream mode so cleanup routine can proceed undisturbed. | ||
1148 | */ | ||
1149 | if (ps2_command(&psmouse->ps2dev, NULL, PSMOUSE_CMD_DISABLE)) | ||
1150 | printk(KERN_WARNING "psmouse.c: Failed to disable mouse on %s\n", | ||
1151 | psmouse->ps2dev.serio->phys); | ||
1145 | 1152 | ||
1146 | if (psmouse->cleanup) | 1153 | if (psmouse->cleanup) |
1147 | psmouse->cleanup(psmouse); | 1154 | psmouse->cleanup(psmouse); |
diff --git a/drivers/input/touchscreen/ad7879.c b/drivers/input/touchscreen/ad7879.c index c21e6d3a8844..794d070c6900 100644 --- a/drivers/input/touchscreen/ad7879.c +++ b/drivers/input/touchscreen/ad7879.c | |||
@@ -47,6 +47,7 @@ | |||
47 | #include <linux/workqueue.h> | 47 | #include <linux/workqueue.h> |
48 | #include <linux/spi/spi.h> | 48 | #include <linux/spi/spi.h> |
49 | #include <linux/i2c.h> | 49 | #include <linux/i2c.h> |
50 | #include <linux/gpio.h> | ||
50 | 51 | ||
51 | #include <linux/spi/ad7879.h> | 52 | #include <linux/spi/ad7879.h> |
52 | 53 | ||
@@ -132,7 +133,9 @@ struct ad7879 { | |||
132 | struct input_dev *input; | 133 | struct input_dev *input; |
133 | struct work_struct work; | 134 | struct work_struct work; |
134 | struct timer_list timer; | 135 | struct timer_list timer; |
135 | 136 | #ifdef CONFIG_GPIOLIB | |
137 | struct gpio_chip gc; | ||
138 | #endif | ||
136 | struct mutex mutex; | 139 | struct mutex mutex; |
137 | unsigned disabled:1; /* P: mutex */ | 140 | unsigned disabled:1; /* P: mutex */ |
138 | 141 | ||
@@ -150,11 +153,9 @@ struct ad7879 { | |||
150 | u8 median; | 153 | u8 median; |
151 | u16 x_plate_ohms; | 154 | u16 x_plate_ohms; |
152 | u16 pressure_max; | 155 | u16 pressure_max; |
153 | u16 gpio_init; | ||
154 | u16 cmd_crtl1; | 156 | u16 cmd_crtl1; |
155 | u16 cmd_crtl2; | 157 | u16 cmd_crtl2; |
156 | u16 cmd_crtl3; | 158 | u16 cmd_crtl3; |
157 | unsigned gpio:1; | ||
158 | }; | 159 | }; |
159 | 160 | ||
160 | static int ad7879_read(bus_device *, u8); | 161 | static int ad7879_read(bus_device *, u8); |
@@ -237,24 +238,6 @@ static irqreturn_t ad7879_irq(int irq, void *handle) | |||
237 | 238 | ||
238 | static void ad7879_setup(struct ad7879 *ts) | 239 | static void ad7879_setup(struct ad7879 *ts) |
239 | { | 240 | { |
240 | ts->cmd_crtl3 = AD7879_YPLUS_BIT | | ||
241 | AD7879_XPLUS_BIT | | ||
242 | AD7879_Z2_BIT | | ||
243 | AD7879_Z1_BIT | | ||
244 | AD7879_TEMPMASK_BIT | | ||
245 | AD7879_AUXVBATMASK_BIT | | ||
246 | AD7879_GPIOALERTMASK_BIT; | ||
247 | |||
248 | ts->cmd_crtl2 = AD7879_PM(AD7879_PM_DYN) | AD7879_DFR | | ||
249 | AD7879_AVG(ts->averaging) | | ||
250 | AD7879_MFS(ts->median) | | ||
251 | AD7879_FCD(ts->first_conversion_delay) | | ||
252 | ts->gpio_init; | ||
253 | |||
254 | ts->cmd_crtl1 = AD7879_MODE_INT | AD7879_MODE_SEQ1 | | ||
255 | AD7879_ACQ(ts->acquisition_time) | | ||
256 | AD7879_TMR(ts->pen_down_acc_interval); | ||
257 | |||
258 | ad7879_write(ts->bus, AD7879_REG_CTRL2, ts->cmd_crtl2); | 241 | ad7879_write(ts->bus, AD7879_REG_CTRL2, ts->cmd_crtl2); |
259 | ad7879_write(ts->bus, AD7879_REG_CTRL3, ts->cmd_crtl3); | 242 | ad7879_write(ts->bus, AD7879_REG_CTRL3, ts->cmd_crtl3); |
260 | ad7879_write(ts->bus, AD7879_REG_CTRL1, ts->cmd_crtl1); | 243 | ad7879_write(ts->bus, AD7879_REG_CTRL1, ts->cmd_crtl1); |
@@ -324,48 +307,132 @@ static ssize_t ad7879_disable_store(struct device *dev, | |||
324 | 307 | ||
325 | static DEVICE_ATTR(disable, 0664, ad7879_disable_show, ad7879_disable_store); | 308 | static DEVICE_ATTR(disable, 0664, ad7879_disable_show, ad7879_disable_store); |
326 | 309 | ||
327 | static ssize_t ad7879_gpio_show(struct device *dev, | 310 | static struct attribute *ad7879_attributes[] = { |
328 | struct device_attribute *attr, char *buf) | 311 | &dev_attr_disable.attr, |
312 | NULL | ||
313 | }; | ||
314 | |||
315 | static const struct attribute_group ad7879_attr_group = { | ||
316 | .attrs = ad7879_attributes, | ||
317 | }; | ||
318 | |||
319 | #ifdef CONFIG_GPIOLIB | ||
320 | static int ad7879_gpio_direction_input(struct gpio_chip *chip, | ||
321 | unsigned gpio) | ||
329 | { | 322 | { |
330 | struct ad7879 *ts = dev_get_drvdata(dev); | 323 | struct ad7879 *ts = container_of(chip, struct ad7879, gc); |
324 | int err; | ||
331 | 325 | ||
332 | return sprintf(buf, "%u\n", ts->gpio); | 326 | mutex_lock(&ts->mutex); |
327 | ts->cmd_crtl2 |= AD7879_GPIO_EN | AD7879_GPIODIR | AD7879_GPIOPOL; | ||
328 | err = ad7879_write(ts->bus, AD7879_REG_CTRL2, ts->cmd_crtl2); | ||
329 | mutex_unlock(&ts->mutex); | ||
330 | |||
331 | return err; | ||
333 | } | 332 | } |
334 | 333 | ||
335 | static ssize_t ad7879_gpio_store(struct device *dev, | 334 | static int ad7879_gpio_direction_output(struct gpio_chip *chip, |
336 | struct device_attribute *attr, | 335 | unsigned gpio, int level) |
337 | const char *buf, size_t count) | ||
338 | { | 336 | { |
339 | struct ad7879 *ts = dev_get_drvdata(dev); | 337 | struct ad7879 *ts = container_of(chip, struct ad7879, gc); |
340 | unsigned long val; | 338 | int err; |
341 | int error; | ||
342 | 339 | ||
343 | error = strict_strtoul(buf, 10, &val); | 340 | mutex_lock(&ts->mutex); |
344 | if (error) | 341 | ts->cmd_crtl2 &= ~AD7879_GPIODIR; |
345 | return error; | 342 | ts->cmd_crtl2 |= AD7879_GPIO_EN | AD7879_GPIOPOL; |
343 | if (level) | ||
344 | ts->cmd_crtl2 |= AD7879_GPIO_DATA; | ||
345 | else | ||
346 | ts->cmd_crtl2 &= ~AD7879_GPIO_DATA; | ||
347 | |||
348 | err = ad7879_write(ts->bus, AD7879_REG_CTRL2, ts->cmd_crtl2); | ||
349 | mutex_unlock(&ts->mutex); | ||
350 | |||
351 | return err; | ||
352 | } | ||
353 | |||
354 | static int ad7879_gpio_get_value(struct gpio_chip *chip, unsigned gpio) | ||
355 | { | ||
356 | struct ad7879 *ts = container_of(chip, struct ad7879, gc); | ||
357 | u16 val; | ||
346 | 358 | ||
347 | mutex_lock(&ts->mutex); | 359 | mutex_lock(&ts->mutex); |
348 | ts->gpio = !!val; | 360 | val = ad7879_read(ts->bus, AD7879_REG_CTRL2); |
349 | error = ad7879_write(ts->bus, AD7879_REG_CTRL2, | ||
350 | ts->gpio ? | ||
351 | ts->cmd_crtl2 & ~AD7879_GPIO_DATA : | ||
352 | ts->cmd_crtl2 | AD7879_GPIO_DATA); | ||
353 | mutex_unlock(&ts->mutex); | 361 | mutex_unlock(&ts->mutex); |
354 | 362 | ||
355 | return error ? : count; | 363 | return !!(val & AD7879_GPIO_DATA); |
356 | } | 364 | } |
357 | 365 | ||
358 | static DEVICE_ATTR(gpio, 0664, ad7879_gpio_show, ad7879_gpio_store); | 366 | static void ad7879_gpio_set_value(struct gpio_chip *chip, |
367 | unsigned gpio, int value) | ||
368 | { | ||
369 | struct ad7879 *ts = container_of(chip, struct ad7879, gc); | ||
359 | 370 | ||
360 | static struct attribute *ad7879_attributes[] = { | 371 | mutex_lock(&ts->mutex); |
361 | &dev_attr_disable.attr, | 372 | if (value) |
362 | &dev_attr_gpio.attr, | 373 | ts->cmd_crtl2 |= AD7879_GPIO_DATA; |
363 | NULL | 374 | else |
364 | }; | 375 | ts->cmd_crtl2 &= ~AD7879_GPIO_DATA; |
365 | 376 | ||
366 | static const struct attribute_group ad7879_attr_group = { | 377 | ad7879_write(ts->bus, AD7879_REG_CTRL2, ts->cmd_crtl2); |
367 | .attrs = ad7879_attributes, | 378 | mutex_unlock(&ts->mutex); |
368 | }; | 379 | } |
380 | |||
381 | static int __devinit ad7879_gpio_add(struct device *dev) | ||
382 | { | ||
383 | struct ad7879 *ts = dev_get_drvdata(dev); | ||
384 | struct ad7879_platform_data *pdata = dev->platform_data; | ||
385 | int ret = 0; | ||
386 | |||
387 | if (pdata->gpio_export) { | ||
388 | ts->gc.direction_input = ad7879_gpio_direction_input; | ||
389 | ts->gc.direction_output = ad7879_gpio_direction_output; | ||
390 | ts->gc.get = ad7879_gpio_get_value; | ||
391 | ts->gc.set = ad7879_gpio_set_value; | ||
392 | ts->gc.can_sleep = 1; | ||
393 | ts->gc.base = pdata->gpio_base; | ||
394 | ts->gc.ngpio = 1; | ||
395 | ts->gc.label = "AD7879-GPIO"; | ||
396 | ts->gc.owner = THIS_MODULE; | ||
397 | ts->gc.dev = dev; | ||
398 | |||
399 | ret = gpiochip_add(&ts->gc); | ||
400 | if (ret) | ||
401 | dev_err(dev, "failed to register gpio %d\n", | ||
402 | ts->gc.base); | ||
403 | } | ||
404 | |||
405 | return ret; | ||
406 | } | ||
407 | |||
408 | /* | ||
409 | * We mark ad7879_gpio_remove inline so there is a chance the code | ||
410 | * gets discarded when not needed. We can't do __devinit/__devexit | ||
411 | * markup since it is used in both probe and remove methods. | ||
412 | */ | ||
413 | static inline void ad7879_gpio_remove(struct device *dev) | ||
414 | { | ||
415 | struct ad7879 *ts = dev_get_drvdata(dev); | ||
416 | struct ad7879_platform_data *pdata = dev->platform_data; | ||
417 | int ret; | ||
418 | |||
419 | if (pdata->gpio_export) { | ||
420 | ret = gpiochip_remove(&ts->gc); | ||
421 | if (ret) | ||
422 | dev_err(dev, "failed to remove gpio %d\n", | ||
423 | ts->gc.base); | ||
424 | } | ||
425 | } | ||
426 | #else | ||
427 | static inline int ad7879_gpio_add(struct device *dev) | ||
428 | { | ||
429 | return 0; | ||
430 | } | ||
431 | |||
432 | static inline void ad7879_gpio_remove(struct device *dev) | ||
433 | { | ||
434 | } | ||
435 | #endif | ||
369 | 436 | ||
370 | static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts) | 437 | static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts) |
371 | { | 438 | { |
@@ -403,12 +470,6 @@ static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts) | |||
403 | ts->pen_down_acc_interval = pdata->pen_down_acc_interval; | 470 | ts->pen_down_acc_interval = pdata->pen_down_acc_interval; |
404 | ts->median = pdata->median; | 471 | ts->median = pdata->median; |
405 | 472 | ||
406 | if (pdata->gpio_output) | ||
407 | ts->gpio_init = AD7879_GPIO_EN | | ||
408 | (pdata->gpio_default ? 0 : AD7879_GPIO_DATA); | ||
409 | else | ||
410 | ts->gpio_init = AD7879_GPIO_EN | AD7879_GPIODIR; | ||
411 | |||
412 | snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&bus->dev)); | 473 | snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(&bus->dev)); |
413 | 474 | ||
414 | input_dev->name = "AD7879 Touchscreen"; | 475 | input_dev->name = "AD7879 Touchscreen"; |
@@ -446,6 +507,23 @@ static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts) | |||
446 | goto err_free_mem; | 507 | goto err_free_mem; |
447 | } | 508 | } |
448 | 509 | ||
510 | ts->cmd_crtl3 = AD7879_YPLUS_BIT | | ||
511 | AD7879_XPLUS_BIT | | ||
512 | AD7879_Z2_BIT | | ||
513 | AD7879_Z1_BIT | | ||
514 | AD7879_TEMPMASK_BIT | | ||
515 | AD7879_AUXVBATMASK_BIT | | ||
516 | AD7879_GPIOALERTMASK_BIT; | ||
517 | |||
518 | ts->cmd_crtl2 = AD7879_PM(AD7879_PM_DYN) | AD7879_DFR | | ||
519 | AD7879_AVG(ts->averaging) | | ||
520 | AD7879_MFS(ts->median) | | ||
521 | AD7879_FCD(ts->first_conversion_delay); | ||
522 | |||
523 | ts->cmd_crtl1 = AD7879_MODE_INT | AD7879_MODE_SEQ1 | | ||
524 | AD7879_ACQ(ts->acquisition_time) | | ||
525 | AD7879_TMR(ts->pen_down_acc_interval); | ||
526 | |||
449 | ad7879_setup(ts); | 527 | ad7879_setup(ts); |
450 | 528 | ||
451 | err = request_irq(bus->irq, ad7879_irq, | 529 | err = request_irq(bus->irq, ad7879_irq, |
@@ -460,15 +538,21 @@ static int __devinit ad7879_construct(bus_device *bus, struct ad7879 *ts) | |||
460 | if (err) | 538 | if (err) |
461 | goto err_free_irq; | 539 | goto err_free_irq; |
462 | 540 | ||
463 | err = input_register_device(input_dev); | 541 | err = ad7879_gpio_add(&bus->dev); |
464 | if (err) | 542 | if (err) |
465 | goto err_remove_attr; | 543 | goto err_remove_attr; |
466 | 544 | ||
545 | err = input_register_device(input_dev); | ||
546 | if (err) | ||
547 | goto err_remove_gpio; | ||
548 | |||
467 | dev_info(&bus->dev, "Rev.%d touchscreen, irq %d\n", | 549 | dev_info(&bus->dev, "Rev.%d touchscreen, irq %d\n", |
468 | revid >> 8, bus->irq); | 550 | revid >> 8, bus->irq); |
469 | 551 | ||
470 | return 0; | 552 | return 0; |
471 | 553 | ||
554 | err_remove_gpio: | ||
555 | ad7879_gpio_remove(&bus->dev); | ||
472 | err_remove_attr: | 556 | err_remove_attr: |
473 | sysfs_remove_group(&bus->dev.kobj, &ad7879_attr_group); | 557 | sysfs_remove_group(&bus->dev.kobj, &ad7879_attr_group); |
474 | err_free_irq: | 558 | err_free_irq: |
@@ -481,6 +565,7 @@ err_free_mem: | |||
481 | 565 | ||
482 | static int __devexit ad7879_destroy(bus_device *bus, struct ad7879 *ts) | 566 | static int __devexit ad7879_destroy(bus_device *bus, struct ad7879 *ts) |
483 | { | 567 | { |
568 | ad7879_gpio_remove(&bus->dev); | ||
484 | ad7879_disable(ts); | 569 | ad7879_disable(ts); |
485 | sysfs_remove_group(&ts->bus->dev.kobj, &ad7879_attr_group); | 570 | sysfs_remove_group(&ts->bus->dev.kobj, &ad7879_attr_group); |
486 | free_irq(ts->bus->irq, ts); | 571 | free_irq(ts->bus->irq, ts); |
diff --git a/drivers/md/dm-log-userspace-transfer.c b/drivers/md/dm-log-userspace-transfer.c index 54abf9e303b7..f1c8cae70b4b 100644 --- a/drivers/md/dm-log-userspace-transfer.c +++ b/drivers/md/dm-log-userspace-transfer.c | |||
@@ -172,11 +172,15 @@ int dm_consult_userspace(const char *uuid, uint64_t luid, int request_type, | |||
172 | { | 172 | { |
173 | int r = 0; | 173 | int r = 0; |
174 | size_t dummy = 0; | 174 | size_t dummy = 0; |
175 | int overhead_size = | 175 | int overhead_size = sizeof(struct dm_ulog_request) + sizeof(struct cn_msg); |
176 | sizeof(struct dm_ulog_request *) + sizeof(struct cn_msg); | ||
177 | struct dm_ulog_request *tfr = prealloced_ulog_tfr; | 176 | struct dm_ulog_request *tfr = prealloced_ulog_tfr; |
178 | struct receiving_pkg pkg; | 177 | struct receiving_pkg pkg; |
179 | 178 | ||
179 | /* | ||
180 | * Given the space needed to hold the 'struct cn_msg' and | ||
181 | * 'struct dm_ulog_request' - do we have enough payload | ||
182 | * space remaining? | ||
183 | */ | ||
180 | if (data_size > (DM_ULOG_PREALLOCED_SIZE - overhead_size)) { | 184 | if (data_size > (DM_ULOG_PREALLOCED_SIZE - overhead_size)) { |
181 | DMINFO("Size of tfr exceeds preallocated size"); | 185 | DMINFO("Size of tfr exceeds preallocated size"); |
182 | return -EINVAL; | 186 | return -EINVAL; |
@@ -191,7 +195,7 @@ resend: | |||
191 | */ | 195 | */ |
192 | mutex_lock(&dm_ulog_lock); | 196 | mutex_lock(&dm_ulog_lock); |
193 | 197 | ||
194 | memset(tfr, 0, DM_ULOG_PREALLOCED_SIZE - overhead_size); | 198 | memset(tfr, 0, DM_ULOG_PREALLOCED_SIZE - sizeof(struct cn_msg)); |
195 | memcpy(tfr->uuid, uuid, DM_UUID_LEN); | 199 | memcpy(tfr->uuid, uuid, DM_UUID_LEN); |
196 | tfr->luid = luid; | 200 | tfr->luid = luid; |
197 | tfr->seq = dm_ulog_seq++; | 201 | tfr->seq = dm_ulog_seq++; |
diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c index ad779bd13aec..6c1046df81f6 100644 --- a/drivers/md/dm-raid1.c +++ b/drivers/md/dm-raid1.c | |||
@@ -724,7 +724,7 @@ static void do_writes(struct mirror_set *ms, struct bio_list *writes) | |||
724 | /* | 724 | /* |
725 | * Dispatch io. | 725 | * Dispatch io. |
726 | */ | 726 | */ |
727 | if (unlikely(ms->log_failure)) { | 727 | if (unlikely(ms->log_failure) && errors_handled(ms)) { |
728 | spin_lock_irq(&ms->lock); | 728 | spin_lock_irq(&ms->lock); |
729 | bio_list_merge(&ms->failures, &sync); | 729 | bio_list_merge(&ms->failures, &sync); |
730 | spin_unlock_irq(&ms->lock); | 730 | spin_unlock_irq(&ms->lock); |
diff --git a/drivers/md/dm-region-hash.c b/drivers/md/dm-region-hash.c index 5f19ceb6fe91..168bd38f5006 100644 --- a/drivers/md/dm-region-hash.c +++ b/drivers/md/dm-region-hash.c | |||
@@ -660,10 +660,9 @@ void dm_rh_recovery_end(struct dm_region *reg, int success) | |||
660 | spin_lock_irq(&rh->region_lock); | 660 | spin_lock_irq(&rh->region_lock); |
661 | if (success) | 661 | if (success) |
662 | list_add(®->list, ®->rh->recovered_regions); | 662 | list_add(®->list, ®->rh->recovered_regions); |
663 | else { | 663 | else |
664 | reg->state = DM_RH_NOSYNC; | ||
665 | list_add(®->list, ®->rh->failed_recovered_regions); | 664 | list_add(®->list, ®->rh->failed_recovered_regions); |
666 | } | 665 | |
667 | spin_unlock_irq(&rh->region_lock); | 666 | spin_unlock_irq(&rh->region_lock); |
668 | 667 | ||
669 | rh->wakeup_workers(rh->context); | 668 | rh->wakeup_workers(rh->context); |
diff --git a/drivers/md/dm-snap-persistent.c b/drivers/md/dm-snap-persistent.c index 7d08879689ac..c097d8a4823d 100644 --- a/drivers/md/dm-snap-persistent.c +++ b/drivers/md/dm-snap-persistent.c | |||
@@ -254,7 +254,7 @@ static int chunk_io(struct pstore *ps, void *area, chunk_t chunk, int rw, | |||
254 | * Issue the synchronous I/O from a different thread | 254 | * Issue the synchronous I/O from a different thread |
255 | * to avoid generic_make_request recursion. | 255 | * to avoid generic_make_request recursion. |
256 | */ | 256 | */ |
257 | INIT_WORK(&req.work, do_metadata); | 257 | INIT_WORK_ON_STACK(&req.work, do_metadata); |
258 | queue_work(ps->metadata_wq, &req.work); | 258 | queue_work(ps->metadata_wq, &req.work); |
259 | flush_workqueue(ps->metadata_wq); | 259 | flush_workqueue(ps->metadata_wq); |
260 | 260 | ||
diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c index e0efc1adcaff..bd58703ee8f6 100644 --- a/drivers/md/dm-stripe.c +++ b/drivers/md/dm-stripe.c | |||
@@ -110,7 +110,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv) | |||
110 | } | 110 | } |
111 | 111 | ||
112 | stripes = simple_strtoul(argv[0], &end, 10); | 112 | stripes = simple_strtoul(argv[0], &end, 10); |
113 | if (*end) { | 113 | if (!stripes || *end) { |
114 | ti->error = "Invalid stripe count"; | 114 | ti->error = "Invalid stripe count"; |
115 | return -EINVAL; | 115 | return -EINVAL; |
116 | } | 116 | } |
diff --git a/drivers/md/dm-sysfs.c b/drivers/md/dm-sysfs.c index f53392df7b97..f91b40942e07 100644 --- a/drivers/md/dm-sysfs.c +++ b/drivers/md/dm-sysfs.c | |||
@@ -80,20 +80,12 @@ static struct sysfs_ops dm_sysfs_ops = { | |||
80 | }; | 80 | }; |
81 | 81 | ||
82 | /* | 82 | /* |
83 | * The sysfs structure is embedded in md struct, nothing to do here | ||
84 | */ | ||
85 | static void dm_sysfs_release(struct kobject *kobj) | ||
86 | { | ||
87 | } | ||
88 | |||
89 | /* | ||
90 | * dm kobject is embedded in mapped_device structure | 83 | * dm kobject is embedded in mapped_device structure |
91 | * no need to define release function here | 84 | * no need to define release function here |
92 | */ | 85 | */ |
93 | static struct kobj_type dm_ktype = { | 86 | static struct kobj_type dm_ktype = { |
94 | .sysfs_ops = &dm_sysfs_ops, | 87 | .sysfs_ops = &dm_sysfs_ops, |
95 | .default_attrs = dm_attrs, | 88 | .default_attrs = dm_attrs, |
96 | .release = dm_sysfs_release | ||
97 | }; | 89 | }; |
98 | 90 | ||
99 | /* | 91 | /* |
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 3167480b532c..aa4e2aa86d49 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -1595,10 +1595,15 @@ static int dm_prep_fn(struct request_queue *q, struct request *rq) | |||
1595 | return BLKPREP_OK; | 1595 | return BLKPREP_OK; |
1596 | } | 1596 | } |
1597 | 1597 | ||
1598 | static void map_request(struct dm_target *ti, struct request *clone, | 1598 | /* |
1599 | struct mapped_device *md) | 1599 | * Returns: |
1600 | * 0 : the request has been processed (not requeued) | ||
1601 | * !0 : the request has been requeued | ||
1602 | */ | ||
1603 | static int map_request(struct dm_target *ti, struct request *clone, | ||
1604 | struct mapped_device *md) | ||
1600 | { | 1605 | { |
1601 | int r; | 1606 | int r, requeued = 0; |
1602 | struct dm_rq_target_io *tio = clone->end_io_data; | 1607 | struct dm_rq_target_io *tio = clone->end_io_data; |
1603 | 1608 | ||
1604 | /* | 1609 | /* |
@@ -1625,6 +1630,7 @@ static void map_request(struct dm_target *ti, struct request *clone, | |||
1625 | case DM_MAPIO_REQUEUE: | 1630 | case DM_MAPIO_REQUEUE: |
1626 | /* The target wants to requeue the I/O */ | 1631 | /* The target wants to requeue the I/O */ |
1627 | dm_requeue_unmapped_request(clone); | 1632 | dm_requeue_unmapped_request(clone); |
1633 | requeued = 1; | ||
1628 | break; | 1634 | break; |
1629 | default: | 1635 | default: |
1630 | if (r > 0) { | 1636 | if (r > 0) { |
@@ -1636,6 +1642,8 @@ static void map_request(struct dm_target *ti, struct request *clone, | |||
1636 | dm_kill_unmapped_request(clone, r); | 1642 | dm_kill_unmapped_request(clone, r); |
1637 | break; | 1643 | break; |
1638 | } | 1644 | } |
1645 | |||
1646 | return requeued; | ||
1639 | } | 1647 | } |
1640 | 1648 | ||
1641 | /* | 1649 | /* |
@@ -1677,12 +1685,17 @@ static void dm_request_fn(struct request_queue *q) | |||
1677 | atomic_inc(&md->pending[rq_data_dir(clone)]); | 1685 | atomic_inc(&md->pending[rq_data_dir(clone)]); |
1678 | 1686 | ||
1679 | spin_unlock(q->queue_lock); | 1687 | spin_unlock(q->queue_lock); |
1680 | map_request(ti, clone, md); | 1688 | if (map_request(ti, clone, md)) |
1689 | goto requeued; | ||
1690 | |||
1681 | spin_lock_irq(q->queue_lock); | 1691 | spin_lock_irq(q->queue_lock); |
1682 | } | 1692 | } |
1683 | 1693 | ||
1684 | goto out; | 1694 | goto out; |
1685 | 1695 | ||
1696 | requeued: | ||
1697 | spin_lock_irq(q->queue_lock); | ||
1698 | |||
1686 | plug_and_out: | 1699 | plug_and_out: |
1687 | if (!elv_queue_empty(q)) | 1700 | if (!elv_queue_empty(q)) |
1688 | /* Some requests still remain, retry later */ | 1701 | /* Some requests still remain, retry later */ |
diff --git a/drivers/md/md.c b/drivers/md/md.c index dd3dfe42d5a9..a20a71e5efd3 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -4075,8 +4075,10 @@ static void mddev_delayed_delete(struct work_struct *ws) | |||
4075 | { | 4075 | { |
4076 | mddev_t *mddev = container_of(ws, mddev_t, del_work); | 4076 | mddev_t *mddev = container_of(ws, mddev_t, del_work); |
4077 | 4077 | ||
4078 | if (mddev->private == &md_redundancy_group) { | 4078 | if (mddev->private) { |
4079 | sysfs_remove_group(&mddev->kobj, &md_redundancy_group); | 4079 | sysfs_remove_group(&mddev->kobj, &md_redundancy_group); |
4080 | if (mddev->private != (void*)1) | ||
4081 | sysfs_remove_group(&mddev->kobj, mddev->private); | ||
4080 | if (mddev->sysfs_action) | 4082 | if (mddev->sysfs_action) |
4081 | sysfs_put(mddev->sysfs_action); | 4083 | sysfs_put(mddev->sysfs_action); |
4082 | mddev->sysfs_action = NULL; | 4084 | mddev->sysfs_action = NULL; |
@@ -4287,10 +4289,7 @@ static int do_md_run(mddev_t * mddev) | |||
4287 | sysfs_notify_dirent(rdev->sysfs_state); | 4289 | sysfs_notify_dirent(rdev->sysfs_state); |
4288 | } | 4290 | } |
4289 | 4291 | ||
4290 | md_probe(mddev->unit, NULL, NULL); | ||
4291 | disk = mddev->gendisk; | 4292 | disk = mddev->gendisk; |
4292 | if (!disk) | ||
4293 | return -ENOMEM; | ||
4294 | 4293 | ||
4295 | spin_lock(&pers_lock); | 4294 | spin_lock(&pers_lock); |
4296 | pers = find_pers(mddev->level, mddev->clevel); | 4295 | pers = find_pers(mddev->level, mddev->clevel); |
@@ -4530,8 +4529,8 @@ static int do_md_stop(mddev_t * mddev, int mode, int is_open) | |||
4530 | mddev->queue->unplug_fn = NULL; | 4529 | mddev->queue->unplug_fn = NULL; |
4531 | mddev->queue->backing_dev_info.congested_fn = NULL; | 4530 | mddev->queue->backing_dev_info.congested_fn = NULL; |
4532 | module_put(mddev->pers->owner); | 4531 | module_put(mddev->pers->owner); |
4533 | if (mddev->pers->sync_request) | 4532 | if (mddev->pers->sync_request && mddev->private == NULL) |
4534 | mddev->private = &md_redundancy_group; | 4533 | mddev->private = (void*)1; |
4535 | mddev->pers = NULL; | 4534 | mddev->pers = NULL; |
4536 | /* tell userspace to handle 'inactive' */ | 4535 | /* tell userspace to handle 'inactive' */ |
4537 | sysfs_notify_dirent(mddev->sysfs_state); | 4536 | sysfs_notify_dirent(mddev->sysfs_state); |
@@ -4578,9 +4577,6 @@ out: | |||
4578 | } | 4577 | } |
4579 | mddev->bitmap_info.offset = 0; | 4578 | mddev->bitmap_info.offset = 0; |
4580 | 4579 | ||
4581 | /* make sure all md_delayed_delete calls have finished */ | ||
4582 | flush_scheduled_work(); | ||
4583 | |||
4584 | export_array(mddev); | 4580 | export_array(mddev); |
4585 | 4581 | ||
4586 | mddev->array_sectors = 0; | 4582 | mddev->array_sectors = 0; |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index e84204eb12df..ceb24afdc147 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -5136,9 +5136,8 @@ static int stop(mddev_t *mddev) | |||
5136 | mddev->thread = NULL; | 5136 | mddev->thread = NULL; |
5137 | mddev->queue->backing_dev_info.congested_fn = NULL; | 5137 | mddev->queue->backing_dev_info.congested_fn = NULL; |
5138 | blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/ | 5138 | blk_sync_queue(mddev->queue); /* the unplug fn references 'conf'*/ |
5139 | sysfs_remove_group(&mddev->kobj, &raid5_attrs_group); | ||
5140 | free_conf(conf); | 5139 | free_conf(conf); |
5141 | mddev->private = NULL; | 5140 | mddev->private = &raid5_attrs_group; |
5142 | return 0; | 5141 | return 0; |
5143 | } | 5142 | } |
5144 | 5143 | ||
@@ -5464,11 +5463,11 @@ static int raid5_start_reshape(mddev_t *mddev) | |||
5464 | !test_bit(Faulty, &rdev->flags)) { | 5463 | !test_bit(Faulty, &rdev->flags)) { |
5465 | if (raid5_add_disk(mddev, rdev) == 0) { | 5464 | if (raid5_add_disk(mddev, rdev) == 0) { |
5466 | char nm[20]; | 5465 | char nm[20]; |
5467 | if (rdev->raid_disk >= conf->previous_raid_disks) | 5466 | if (rdev->raid_disk >= conf->previous_raid_disks) { |
5468 | set_bit(In_sync, &rdev->flags); | 5467 | set_bit(In_sync, &rdev->flags); |
5469 | else | 5468 | added_devices++; |
5469 | } else | ||
5470 | rdev->recovery_offset = 0; | 5470 | rdev->recovery_offset = 0; |
5471 | added_devices++; | ||
5472 | sprintf(nm, "rd%d", rdev->raid_disk); | 5471 | sprintf(nm, "rd%d", rdev->raid_disk); |
5473 | if (sysfs_create_link(&mddev->kobj, | 5472 | if (sysfs_create_link(&mddev->kobj, |
5474 | &rdev->kobj, nm)) | 5473 | &rdev->kobj, nm)) |
@@ -5480,9 +5479,12 @@ static int raid5_start_reshape(mddev_t *mddev) | |||
5480 | break; | 5479 | break; |
5481 | } | 5480 | } |
5482 | 5481 | ||
5482 | /* When a reshape changes the number of devices, ->degraded | ||
5483 | * is measured against the large of the pre and post number of | ||
5484 | * devices.*/ | ||
5483 | if (mddev->delta_disks > 0) { | 5485 | if (mddev->delta_disks > 0) { |
5484 | spin_lock_irqsave(&conf->device_lock, flags); | 5486 | spin_lock_irqsave(&conf->device_lock, flags); |
5485 | mddev->degraded = (conf->raid_disks - conf->previous_raid_disks) | 5487 | mddev->degraded += (conf->raid_disks - conf->previous_raid_disks) |
5486 | - added_devices; | 5488 | - added_devices; |
5487 | spin_unlock_irqrestore(&conf->device_lock, flags); | 5489 | spin_unlock_irqrestore(&conf->device_lock, flags); |
5488 | } | 5490 | } |
diff --git a/drivers/media/common/saa7146_video.c b/drivers/media/common/saa7146_video.c index becbaadb3b77..5ed75263340a 100644 --- a/drivers/media/common/saa7146_video.c +++ b/drivers/media/common/saa7146_video.c | |||
@@ -1333,9 +1333,9 @@ static void buffer_release(struct videobuf_queue *q, struct videobuf_buffer *vb) | |||
1333 | 1333 | ||
1334 | DEB_CAP(("vbuf:%p\n",vb)); | 1334 | DEB_CAP(("vbuf:%p\n",vb)); |
1335 | 1335 | ||
1336 | release_all_pagetables(dev, buf); | ||
1337 | |||
1338 | saa7146_dma_free(dev,q,buf); | 1336 | saa7146_dma_free(dev,q,buf); |
1337 | |||
1338 | release_all_pagetables(dev, buf); | ||
1339 | } | 1339 | } |
1340 | 1340 | ||
1341 | static struct videobuf_queue_ops video_qops = { | 1341 | static struct videobuf_queue_ops video_qops = { |
diff --git a/drivers/media/dvb/dvb-core/dmxdev.c b/drivers/media/dvb/dvb-core/dmxdev.c index c37790ad92d0..9ddc57909d49 100644 --- a/drivers/media/dvb/dvb-core/dmxdev.c +++ b/drivers/media/dvb/dvb-core/dmxdev.c | |||
@@ -761,7 +761,6 @@ static int dvb_demux_open(struct inode *inode, struct file *file) | |||
761 | dvb_ringbuffer_init(&dmxdevfilter->buffer, NULL, 8192); | 761 | dvb_ringbuffer_init(&dmxdevfilter->buffer, NULL, 8192); |
762 | dmxdevfilter->type = DMXDEV_TYPE_NONE; | 762 | dmxdevfilter->type = DMXDEV_TYPE_NONE; |
763 | dvb_dmxdev_filter_state_set(dmxdevfilter, DMXDEV_STATE_ALLOCATED); | 763 | dvb_dmxdev_filter_state_set(dmxdevfilter, DMXDEV_STATE_ALLOCATED); |
764 | INIT_LIST_HEAD(&dmxdevfilter->feed.ts); | ||
765 | init_timer(&dmxdevfilter->timer); | 764 | init_timer(&dmxdevfilter->timer); |
766 | 765 | ||
767 | dvbdev->users++; | 766 | dvbdev->users++; |
@@ -887,6 +886,7 @@ static int dvb_dmxdev_pes_filter_set(struct dmxdev *dmxdev, | |||
887 | dmxdevfilter->type = DMXDEV_TYPE_PES; | 886 | dmxdevfilter->type = DMXDEV_TYPE_PES; |
888 | memcpy(&dmxdevfilter->params, params, | 887 | memcpy(&dmxdevfilter->params, params, |
889 | sizeof(struct dmx_pes_filter_params)); | 888 | sizeof(struct dmx_pes_filter_params)); |
889 | INIT_LIST_HEAD(&dmxdevfilter->feed.ts); | ||
890 | 890 | ||
891 | dvb_dmxdev_filter_state_set(dmxdevfilter, DMXDEV_STATE_SET); | 891 | dvb_dmxdev_filter_state_set(dmxdevfilter, DMXDEV_STATE_SET); |
892 | 892 | ||
diff --git a/drivers/media/dvb/dvb-core/dvb_demux.c b/drivers/media/dvb/dvb-core/dvb_demux.c index b78cfb7d1897..67f189b7aa1f 100644 --- a/drivers/media/dvb/dvb-core/dvb_demux.c +++ b/drivers/media/dvb/dvb-core/dvb_demux.c | |||
@@ -426,16 +426,7 @@ static void dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf) | |||
426 | }; | 426 | }; |
427 | }; | 427 | }; |
428 | 428 | ||
429 | if (dvb_demux_tscheck) { | 429 | if (demux->cnt_storage) { |
430 | if (!demux->cnt_storage) | ||
431 | demux->cnt_storage = vmalloc(MAX_PID + 1); | ||
432 | |||
433 | if (!demux->cnt_storage) { | ||
434 | printk(KERN_WARNING "Couldn't allocate memory for TS/TEI check. Disabling it\n"); | ||
435 | dvb_demux_tscheck = 0; | ||
436 | goto no_dvb_demux_tscheck; | ||
437 | } | ||
438 | |||
439 | /* check pkt counter */ | 430 | /* check pkt counter */ |
440 | if (pid < MAX_PID) { | 431 | if (pid < MAX_PID) { |
441 | if (buf[1] & 0x80) | 432 | if (buf[1] & 0x80) |
@@ -454,7 +445,6 @@ static void dvb_dmx_swfilter_packet(struct dvb_demux *demux, const u8 *buf) | |||
454 | }; | 445 | }; |
455 | /* end check */ | 446 | /* end check */ |
456 | }; | 447 | }; |
457 | no_dvb_demux_tscheck: | ||
458 | 448 | ||
459 | list_for_each_entry(feed, &demux->feed_list, list_head) { | 449 | list_for_each_entry(feed, &demux->feed_list, list_head) { |
460 | if ((feed->pid != pid) && (feed->pid != 0x2000)) | 450 | if ((feed->pid != pid) && (feed->pid != 0x2000)) |
@@ -1246,6 +1236,7 @@ int dvb_dmx_init(struct dvb_demux *dvbdemux) | |||
1246 | dvbdemux->feed = vmalloc(dvbdemux->feednum * sizeof(struct dvb_demux_feed)); | 1236 | dvbdemux->feed = vmalloc(dvbdemux->feednum * sizeof(struct dvb_demux_feed)); |
1247 | if (!dvbdemux->feed) { | 1237 | if (!dvbdemux->feed) { |
1248 | vfree(dvbdemux->filter); | 1238 | vfree(dvbdemux->filter); |
1239 | dvbdemux->filter = NULL; | ||
1249 | return -ENOMEM; | 1240 | return -ENOMEM; |
1250 | } | 1241 | } |
1251 | for (i = 0; i < dvbdemux->filternum; i++) { | 1242 | for (i = 0; i < dvbdemux->filternum; i++) { |
@@ -1257,6 +1248,13 @@ int dvb_dmx_init(struct dvb_demux *dvbdemux) | |||
1257 | dvbdemux->feed[i].index = i; | 1248 | dvbdemux->feed[i].index = i; |
1258 | } | 1249 | } |
1259 | 1250 | ||
1251 | if (dvb_demux_tscheck) { | ||
1252 | dvbdemux->cnt_storage = vmalloc(MAX_PID + 1); | ||
1253 | |||
1254 | if (!dvbdemux->cnt_storage) | ||
1255 | printk(KERN_WARNING "Couldn't allocate memory for TS/TEI check. Disabling it\n"); | ||
1256 | } | ||
1257 | |||
1260 | INIT_LIST_HEAD(&dvbdemux->frontend_list); | 1258 | INIT_LIST_HEAD(&dvbdemux->frontend_list); |
1261 | 1259 | ||
1262 | for (i = 0; i < DMX_TS_PES_OTHER; i++) { | 1260 | for (i = 0; i < DMX_TS_PES_OTHER; i++) { |
diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index 7dfecfc6017c..ee5bff02a92c 100644 --- a/drivers/media/video/saa7134/saa7134-empress.c +++ b/drivers/media/video/saa7134/saa7134-empress.c | |||
@@ -93,9 +93,9 @@ static int ts_open(struct file *file) | |||
93 | dprintk("open dev=%s\n", video_device_node_name(vdev)); | 93 | dprintk("open dev=%s\n", video_device_node_name(vdev)); |
94 | err = -EBUSY; | 94 | err = -EBUSY; |
95 | if (!mutex_trylock(&dev->empress_tsq.vb_lock)) | 95 | if (!mutex_trylock(&dev->empress_tsq.vb_lock)) |
96 | goto done; | 96 | return err; |
97 | if (atomic_read(&dev->empress_users)) | 97 | if (atomic_read(&dev->empress_users)) |
98 | goto done_up; | 98 | goto done; |
99 | 99 | ||
100 | /* Unmute audio */ | 100 | /* Unmute audio */ |
101 | saa_writeb(SAA7134_AUDIO_MUTE_CTRL, | 101 | saa_writeb(SAA7134_AUDIO_MUTE_CTRL, |
@@ -105,10 +105,8 @@ static int ts_open(struct file *file) | |||
105 | file->private_data = dev; | 105 | file->private_data = dev; |
106 | err = 0; | 106 | err = 0; |
107 | 107 | ||
108 | done_up: | ||
109 | mutex_unlock(&dev->empress_tsq.vb_lock); | ||
110 | done: | 108 | done: |
111 | unlock_kernel(); | 109 | mutex_unlock(&dev->empress_tsq.vb_lock); |
112 | return err; | 110 | return err; |
113 | } | 111 | } |
114 | 112 | ||
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 85bc6a685e36..44d2037e9e56 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
@@ -4330,6 +4330,8 @@ initChainBuffers(MPT_ADAPTER *ioc) | |||
4330 | 4330 | ||
4331 | if (ioc->bus_type == SPI) | 4331 | if (ioc->bus_type == SPI) |
4332 | num_chain *= MPT_SCSI_CAN_QUEUE; | 4332 | num_chain *= MPT_SCSI_CAN_QUEUE; |
4333 | else if (ioc->bus_type == SAS) | ||
4334 | num_chain *= MPT_SAS_CAN_QUEUE; | ||
4333 | else | 4335 | else |
4334 | num_chain *= MPT_FC_CAN_QUEUE; | 4336 | num_chain *= MPT_FC_CAN_QUEUE; |
4335 | 4337 | ||
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 57752751712b..81279b3d694c 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -1796,7 +1796,7 @@ mptscsih_abort(struct scsi_cmnd * SCpnt) | |||
1796 | dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "task abort: " | 1796 | dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "task abort: " |
1797 | "Command not in the active list! (sc=%p)\n", ioc->name, | 1797 | "Command not in the active list! (sc=%p)\n", ioc->name, |
1798 | SCpnt)); | 1798 | SCpnt)); |
1799 | retval = 0; | 1799 | retval = SUCCESS; |
1800 | goto out; | 1800 | goto out; |
1801 | } | 1801 | } |
1802 | 1802 | ||
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile index 8f0d18409ede..e09eb4870db6 100644 --- a/drivers/mfd/Makefile +++ b/drivers/mfd/Makefile | |||
@@ -3,7 +3,7 @@ | |||
3 | # | 3 | # |
4 | 4 | ||
5 | obj-$(CONFIG_MFD_SM501) += sm501.o | 5 | obj-$(CONFIG_MFD_SM501) += sm501.o |
6 | obj-$(CONFIG_MFD_ASIC3) += asic3.o | 6 | obj-$(CONFIG_MFD_ASIC3) += asic3.o tmio_core.o |
7 | obj-$(CONFIG_MFD_SH_MOBILE_SDHI) += sh_mobile_sdhi.o | 7 | obj-$(CONFIG_MFD_SH_MOBILE_SDHI) += sh_mobile_sdhi.o |
8 | 8 | ||
9 | obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o | 9 | obj-$(CONFIG_HTC_EGPIO) += htc-egpio.o |
diff --git a/drivers/mmc/card/mmc_test.c b/drivers/mmc/card/mmc_test.c index b9f1e84897cc..e7f8027165e6 100644 --- a/drivers/mmc/card/mmc_test.c +++ b/drivers/mmc/card/mmc_test.c | |||
@@ -74,6 +74,9 @@ static void mmc_test_prepare_mrq(struct mmc_test_card *test, | |||
74 | } | 74 | } |
75 | 75 | ||
76 | mrq->cmd->arg = dev_addr; | 76 | mrq->cmd->arg = dev_addr; |
77 | if (!mmc_card_blockaddr(test->card)) | ||
78 | mrq->cmd->arg <<= 9; | ||
79 | |||
77 | mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC; | 80 | mrq->cmd->flags = MMC_RSP_R1 | MMC_CMD_ADTC; |
78 | 81 | ||
79 | if (blocks == 1) | 82 | if (blocks == 1) |
@@ -190,7 +193,7 @@ static int __mmc_test_prepare(struct mmc_test_card *test, int write) | |||
190 | } | 193 | } |
191 | 194 | ||
192 | for (i = 0;i < BUFFER_SIZE / 512;i++) { | 195 | for (i = 0;i < BUFFER_SIZE / 512;i++) { |
193 | ret = mmc_test_buffer_transfer(test, test->buffer, i * 512, 512, 1); | 196 | ret = mmc_test_buffer_transfer(test, test->buffer, i, 512, 1); |
194 | if (ret) | 197 | if (ret) |
195 | return ret; | 198 | return ret; |
196 | } | 199 | } |
@@ -219,7 +222,7 @@ static int mmc_test_cleanup(struct mmc_test_card *test) | |||
219 | memset(test->buffer, 0, 512); | 222 | memset(test->buffer, 0, 512); |
220 | 223 | ||
221 | for (i = 0;i < BUFFER_SIZE / 512;i++) { | 224 | for (i = 0;i < BUFFER_SIZE / 512;i++) { |
222 | ret = mmc_test_buffer_transfer(test, test->buffer, i * 512, 512, 1); | 225 | ret = mmc_test_buffer_transfer(test, test->buffer, i, 512, 1); |
223 | if (ret) | 226 | if (ret) |
224 | return ret; | 227 | return ret; |
225 | } | 228 | } |
@@ -426,7 +429,7 @@ static int mmc_test_transfer(struct mmc_test_card *test, | |||
426 | for (i = 0;i < sectors;i++) { | 429 | for (i = 0;i < sectors;i++) { |
427 | ret = mmc_test_buffer_transfer(test, | 430 | ret = mmc_test_buffer_transfer(test, |
428 | test->buffer + i * 512, | 431 | test->buffer + i * 512, |
429 | dev_addr + i * 512, 512, 0); | 432 | dev_addr + i, 512, 0); |
430 | if (ret) | 433 | if (ret) |
431 | return ret; | 434 | return ret; |
432 | } | 435 | } |
diff --git a/drivers/mtd/maps/Kconfig b/drivers/mtd/maps/Kconfig index 4c364d44ad59..2de0cc823d60 100644 --- a/drivers/mtd/maps/Kconfig +++ b/drivers/mtd/maps/Kconfig | |||
@@ -549,4 +549,21 @@ config MTD_VMU | |||
549 | To build this as a module select M here, the module will be called | 549 | To build this as a module select M here, the module will be called |
550 | vmu-flash. | 550 | vmu-flash. |
551 | 551 | ||
552 | config MTD_PISMO | ||
553 | tristate "MTD discovery driver for PISMO modules" | ||
554 | depends on I2C | ||
555 | depends on ARCH_VERSATILE | ||
556 | help | ||
557 | This driver allows for discovery of PISMO modules - see | ||
558 | <http://www.pismoworld.org/>. These are small modules containing | ||
559 | up to five memory devices (eg, SRAM, flash, DOC) described by an | ||
560 | I2C EEPROM. | ||
561 | |||
562 | This driver does not create any MTD maps itself; instead it | ||
563 | creates MTD physmap and MTD SRAM platform devices. If you | ||
564 | enable this option, you should consider enabling MTD_PHYSMAP | ||
565 | and/or MTD_PLATRAM according to the devices on your module. | ||
566 | |||
567 | When built as a module, it will be called pismo.ko | ||
568 | |||
552 | endmenu | 569 | endmenu |
diff --git a/drivers/mtd/maps/pismo.c b/drivers/mtd/maps/pismo.c new file mode 100644 index 000000000000..c48cad271f5d --- /dev/null +++ b/drivers/mtd/maps/pismo.c | |||
@@ -0,0 +1,320 @@ | |||
1 | /* | ||
2 | * PISMO memory driver - http://www.pismoworld.org/ | ||
3 | * | ||
4 | * For ARM Realview and Versatile platforms | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License. | ||
9 | */ | ||
10 | #include <linux/init.h> | ||
11 | #include <linux/module.h> | ||
12 | #include <linux/i2c.h> | ||
13 | #include <linux/platform_device.h> | ||
14 | #include <linux/spinlock.h> | ||
15 | #include <linux/mutex.h> | ||
16 | #include <linux/mtd/physmap.h> | ||
17 | #include <linux/mtd/plat-ram.h> | ||
18 | #include <linux/mtd/pismo.h> | ||
19 | |||
20 | #define PISMO_NUM_CS 5 | ||
21 | |||
22 | struct pismo_cs_block { | ||
23 | u8 type; | ||
24 | u8 width; | ||
25 | __le16 access; | ||
26 | __le32 size; | ||
27 | u32 reserved[2]; | ||
28 | char device[32]; | ||
29 | } __packed; | ||
30 | |||
31 | struct pismo_eeprom { | ||
32 | struct pismo_cs_block cs[PISMO_NUM_CS]; | ||
33 | char board[15]; | ||
34 | u8 sum; | ||
35 | } __packed; | ||
36 | |||
37 | struct pismo_mem { | ||
38 | phys_addr_t base; | ||
39 | u32 size; | ||
40 | u16 access; | ||
41 | u8 width; | ||
42 | u8 type; | ||
43 | }; | ||
44 | |||
45 | struct pismo_data { | ||
46 | struct i2c_client *client; | ||
47 | void (*vpp)(void *, int); | ||
48 | void *vpp_data; | ||
49 | struct platform_device *dev[PISMO_NUM_CS]; | ||
50 | }; | ||
51 | |||
52 | /* FIXME: set_vpp could do with a better calling convention */ | ||
53 | static struct pismo_data *vpp_pismo; | ||
54 | static DEFINE_MUTEX(pismo_mutex); | ||
55 | |||
56 | static int pismo_setvpp_probe_fix(struct pismo_data *pismo) | ||
57 | { | ||
58 | mutex_lock(&pismo_mutex); | ||
59 | if (vpp_pismo) { | ||
60 | mutex_unlock(&pismo_mutex); | ||
61 | kfree(pismo); | ||
62 | return -EBUSY; | ||
63 | } | ||
64 | vpp_pismo = pismo; | ||
65 | mutex_unlock(&pismo_mutex); | ||
66 | return 0; | ||
67 | } | ||
68 | |||
69 | static void pismo_setvpp_remove_fix(struct pismo_data *pismo) | ||
70 | { | ||
71 | mutex_lock(&pismo_mutex); | ||
72 | if (vpp_pismo == pismo) | ||
73 | vpp_pismo = NULL; | ||
74 | mutex_unlock(&pismo_mutex); | ||
75 | } | ||
76 | |||
77 | static void pismo_set_vpp(struct map_info *map, int on) | ||
78 | { | ||
79 | struct pismo_data *pismo = vpp_pismo; | ||
80 | |||
81 | pismo->vpp(pismo->vpp_data, on); | ||
82 | } | ||
83 | /* end of hack */ | ||
84 | |||
85 | |||
86 | static unsigned int __devinit pismo_width_to_bytes(unsigned int width) | ||
87 | { | ||
88 | width &= 15; | ||
89 | if (width > 2) | ||
90 | return 0; | ||
91 | return 1 << width; | ||
92 | } | ||
93 | |||
94 | static int __devinit pismo_eeprom_read(struct i2c_client *client, void *buf, | ||
95 | u8 addr, size_t size) | ||
96 | { | ||
97 | int ret; | ||
98 | struct i2c_msg msg[] = { | ||
99 | { | ||
100 | .addr = client->addr, | ||
101 | .len = sizeof(addr), | ||
102 | .buf = &addr, | ||
103 | }, { | ||
104 | .addr = client->addr, | ||
105 | .flags = I2C_M_RD, | ||
106 | .len = size, | ||
107 | .buf = buf, | ||
108 | }, | ||
109 | }; | ||
110 | |||
111 | ret = i2c_transfer(client->adapter, msg, ARRAY_SIZE(msg)); | ||
112 | |||
113 | return ret == ARRAY_SIZE(msg) ? size : -EIO; | ||
114 | } | ||
115 | |||
116 | static int __devinit pismo_add_device(struct pismo_data *pismo, int i, | ||
117 | struct pismo_mem *region, const char *name, void *pdata, size_t psize) | ||
118 | { | ||
119 | struct platform_device *dev; | ||
120 | struct resource res = { }; | ||
121 | phys_addr_t base = region.base; | ||
122 | int ret; | ||
123 | |||
124 | if (base == ~0) | ||
125 | return -ENXIO; | ||
126 | |||
127 | res.start = base; | ||
128 | res.end = base + region->size - 1; | ||
129 | res.flags = IORESOURCE_MEM; | ||
130 | |||
131 | dev = platform_device_alloc(name, i); | ||
132 | if (!dev) | ||
133 | return -ENOMEM; | ||
134 | dev->dev.parent = &pismo->client->dev; | ||
135 | |||
136 | do { | ||
137 | ret = platform_device_add_resources(dev, &res, 1); | ||
138 | if (ret) | ||
139 | break; | ||
140 | |||
141 | ret = platform_device_add_data(dev, pdata, psize); | ||
142 | if (ret) | ||
143 | break; | ||
144 | |||
145 | ret = platform_device_add(dev); | ||
146 | if (ret) | ||
147 | break; | ||
148 | |||
149 | pismo->dev[i] = dev; | ||
150 | return 0; | ||
151 | } while (0); | ||
152 | |||
153 | platform_device_put(dev); | ||
154 | return ret; | ||
155 | } | ||
156 | |||
157 | static int __devinit pismo_add_nor(struct pismo_data *pismo, int i, | ||
158 | struct pismo_mem *region) | ||
159 | { | ||
160 | struct physmap_flash_data data = { | ||
161 | .width = region->width, | ||
162 | }; | ||
163 | |||
164 | if (pismo->vpp) | ||
165 | data.set_vpp = pismo_set_vpp; | ||
166 | |||
167 | return pismo_add_device(pismo, i, region, "physmap-flash", | ||
168 | &data, sizeof(data)); | ||
169 | } | ||
170 | |||
171 | static int __devinit pismo_add_sram(struct pismo_data *pismo, int i, | ||
172 | struct pismo_mem *region) | ||
173 | { | ||
174 | struct platdata_mtd_ram data = { | ||
175 | .bankwidth = region->width, | ||
176 | }; | ||
177 | |||
178 | return pismo_add_device(pismo, i, region, "mtd-ram", | ||
179 | &data, sizeof(data)); | ||
180 | } | ||
181 | |||
182 | static void __devinit pismo_add_one(struct pismo_data *pismo, int i, | ||
183 | const struct pismo_cs_block *cs, phys_addr_t base) | ||
184 | { | ||
185 | struct device *dev = &pismo->client->dev; | ||
186 | struct pismo_mem region; | ||
187 | |||
188 | region.base = base; | ||
189 | region.type = cs->type; | ||
190 | region.width = pismo_width_to_bytes(cs->width); | ||
191 | region.access = le16_to_cpu(cs->access); | ||
192 | region.size = le32_to_cpu(cs->size); | ||
193 | |||
194 | if (region.width == 0) { | ||
195 | dev_err(dev, "cs%u: bad width: %02x, ignoring\n", i, cs->width); | ||
196 | return; | ||
197 | } | ||
198 | |||
199 | /* | ||
200 | * FIXME: may need to the platforms memory controller here, but at | ||
201 | * the moment we assume that it has already been correctly setup. | ||
202 | * The memory controller can also tell us the base address as well. | ||
203 | */ | ||
204 | |||
205 | dev_info(dev, "cs%u: %.32s: type %02x access %u00ps size %uK\n", | ||
206 | i, cs->device, region.type, region.access, region.size / 1024); | ||
207 | |||
208 | switch (region.type) { | ||
209 | case 0: | ||
210 | break; | ||
211 | case 1: | ||
212 | /* static DOC */ | ||
213 | break; | ||
214 | case 2: | ||
215 | /* static NOR */ | ||
216 | pismo_add_nor(pismo, i, ®ion); | ||
217 | break; | ||
218 | case 3: | ||
219 | /* static RAM */ | ||
220 | pismo_add_sram(pismo, i, ®ion); | ||
221 | break; | ||
222 | } | ||
223 | } | ||
224 | |||
225 | static int __devexit pismo_remove(struct i2c_client *client) | ||
226 | { | ||
227 | struct pismo_data *pismo = i2c_get_clientdata(client); | ||
228 | int i; | ||
229 | |||
230 | for (i = 0; i < ARRAY_SIZE(pismo->dev); i++) | ||
231 | platform_device_unregister(pismo->dev[i]); | ||
232 | |||
233 | /* FIXME: set_vpp needs saner arguments */ | ||
234 | pismo_setvpp_remove_fix(pismo); | ||
235 | |||
236 | kfree(pismo); | ||
237 | |||
238 | return 0; | ||
239 | } | ||
240 | |||
241 | static int __devinit pismo_probe(struct i2c_client *client, | ||
242 | const struct i2c_device_id *id) | ||
243 | { | ||
244 | struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent); | ||
245 | struct pismo_pdata *pdata = client->dev.platform_data; | ||
246 | struct pismo_eeprom eeprom; | ||
247 | struct pismo_data *pismo; | ||
248 | int ret, i; | ||
249 | |||
250 | if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) { | ||
251 | dev_err(&client->dev, "functionality mismatch\n"); | ||
252 | return -EIO; | ||
253 | } | ||
254 | |||
255 | pismo = kzalloc(sizeof(*pismo), GFP_KERNEL); | ||
256 | if (!pismo) | ||
257 | return -ENOMEM; | ||
258 | |||
259 | /* FIXME: set_vpp needs saner arguments */ | ||
260 | ret = pismo_setvpp_probe_fix(pismo); | ||
261 | if (ret) | ||
262 | return ret; | ||
263 | |||
264 | pismo->client = client; | ||
265 | if (pdata) { | ||
266 | pismo->vpp = pdata->set_vpp; | ||
267 | pismo->vpp_data = pdata->vpp_data; | ||
268 | } | ||
269 | i2c_set_clientdata(client, pismo); | ||
270 | |||
271 | ret = pismo_eeprom_read(client, &eeprom, 0, sizeof(eeprom)); | ||
272 | if (ret < 0) { | ||
273 | dev_err(&client->dev, "error reading EEPROM: %d\n", ret); | ||
274 | return ret; | ||
275 | } | ||
276 | |||
277 | dev_info(&client->dev, "%.15s board found\n", eeprom.board); | ||
278 | |||
279 | for (i = 0; i < ARRAY_SIZE(eeprom.cs); i++) | ||
280 | if (eeprom.cs[i].type != 0xff) | ||
281 | pismo_add_one(pismo, i, &eeprom.cs[i], | ||
282 | pdata->cs_addrs[i]); | ||
283 | |||
284 | return 0; | ||
285 | } | ||
286 | |||
287 | static const struct i2c_device_id pismo_id[] = { | ||
288 | { "pismo" }, | ||
289 | { }, | ||
290 | }; | ||
291 | MODULE_DEVICE_TABLE(i2c, pismo_id); | ||
292 | |||
293 | static struct i2c_driver pismo_driver = { | ||
294 | .driver = { | ||
295 | .name = "pismo", | ||
296 | .owner = THIS_MODULE, | ||
297 | }, | ||
298 | .probe = pismo_probe, | ||
299 | .remove = __devexit_p(pismo_remove), | ||
300 | .id_table = pismo_id, | ||
301 | }; | ||
302 | |||
303 | static int __init pismo_init(void) | ||
304 | { | ||
305 | BUILD_BUG_ON(sizeof(struct pismo_cs_block) != 48); | ||
306 | BUILD_BUG_ON(sizeof(struct pismo_eeprom) != 256); | ||
307 | |||
308 | return i2c_add_driver(&pismo_driver); | ||
309 | } | ||
310 | module_init(pismo_init); | ||
311 | |||
312 | static void __exit pismo_exit(void) | ||
313 | { | ||
314 | i2c_del_driver(&pismo_driver); | ||
315 | } | ||
316 | module_exit(pismo_exit); | ||
317 | |||
318 | MODULE_AUTHOR("Russell King <linux@arm.linux.org.uk>"); | ||
319 | MODULE_DESCRIPTION("PISMO memory driver"); | ||
320 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c index a714ec482761..92e12df0917f 100644 --- a/drivers/mtd/mtdoops.c +++ b/drivers/mtd/mtdoops.c | |||
@@ -322,7 +322,7 @@ static void mtdoops_do_dump(struct kmsg_dumper *dumper, | |||
322 | memcpy(dst + l1_cpy, s2 + s2_start, l2_cpy); | 322 | memcpy(dst + l1_cpy, s2 + s2_start, l2_cpy); |
323 | 323 | ||
324 | /* Panics must be written immediately */ | 324 | /* Panics must be written immediately */ |
325 | if (reason == KMSG_DUMP_PANIC) { | 325 | if (reason != KMSG_DUMP_OOPS) { |
326 | if (!cxt->mtd->panic_write) | 326 | if (!cxt->mtd->panic_write) |
327 | printk(KERN_ERR "mtdoops: Cannot write from panic without panic_write\n"); | 327 | printk(KERN_ERR "mtdoops: Cannot write from panic without panic_write\n"); |
328 | else | 328 | else |
diff --git a/drivers/mtd/tests/mtd_readtest.c b/drivers/mtd/tests/mtd_readtest.c index 79fc4530987b..25c5dd03a837 100644 --- a/drivers/mtd/tests/mtd_readtest.c +++ b/drivers/mtd/tests/mtd_readtest.c | |||
@@ -147,6 +147,10 @@ static int scan_for_bad_eraseblocks(void) | |||
147 | } | 147 | } |
148 | memset(bbt, 0 , ebcnt); | 148 | memset(bbt, 0 , ebcnt); |
149 | 149 | ||
150 | /* NOR flash does not implement block_isbad */ | ||
151 | if (mtd->block_isbad == NULL) | ||
152 | return 0; | ||
153 | |||
150 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); | 154 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); |
151 | for (i = 0; i < ebcnt; ++i) { | 155 | for (i = 0; i < ebcnt; ++i) { |
152 | bbt[i] = is_block_bad(i) ? 1 : 0; | 156 | bbt[i] = is_block_bad(i) ? 1 : 0; |
@@ -184,7 +188,7 @@ static int __init mtd_readtest_init(void) | |||
184 | tmp = mtd->size; | 188 | tmp = mtd->size; |
185 | do_div(tmp, mtd->erasesize); | 189 | do_div(tmp, mtd->erasesize); |
186 | ebcnt = tmp; | 190 | ebcnt = tmp; |
187 | pgcnt = mtd->erasesize / mtd->writesize; | 191 | pgcnt = mtd->erasesize / pgsize; |
188 | 192 | ||
189 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " | 193 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " |
190 | "page size %u, count of eraseblocks %u, pages per " | 194 | "page size %u, count of eraseblocks %u, pages per " |
diff --git a/drivers/mtd/tests/mtd_speedtest.c b/drivers/mtd/tests/mtd_speedtest.c index 141363a7e805..7fbb51d4eabe 100644 --- a/drivers/mtd/tests/mtd_speedtest.c +++ b/drivers/mtd/tests/mtd_speedtest.c | |||
@@ -301,6 +301,10 @@ static int scan_for_bad_eraseblocks(void) | |||
301 | } | 301 | } |
302 | memset(bbt, 0 , ebcnt); | 302 | memset(bbt, 0 , ebcnt); |
303 | 303 | ||
304 | /* NOR flash does not implement block_isbad */ | ||
305 | if (mtd->block_isbad == NULL) | ||
306 | goto out; | ||
307 | |||
304 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); | 308 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); |
305 | for (i = 0; i < ebcnt; ++i) { | 309 | for (i = 0; i < ebcnt; ++i) { |
306 | bbt[i] = is_block_bad(i) ? 1 : 0; | 310 | bbt[i] = is_block_bad(i) ? 1 : 0; |
@@ -309,6 +313,7 @@ static int scan_for_bad_eraseblocks(void) | |||
309 | cond_resched(); | 313 | cond_resched(); |
310 | } | 314 | } |
311 | printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); | 315 | printk(PRINT_PREF "scanned %d eraseblocks, %d are bad\n", i, bad); |
316 | out: | ||
312 | goodebcnt = ebcnt - bad; | 317 | goodebcnt = ebcnt - bad; |
313 | return 0; | 318 | return 0; |
314 | } | 319 | } |
@@ -340,7 +345,7 @@ static int __init mtd_speedtest_init(void) | |||
340 | tmp = mtd->size; | 345 | tmp = mtd->size; |
341 | do_div(tmp, mtd->erasesize); | 346 | do_div(tmp, mtd->erasesize); |
342 | ebcnt = tmp; | 347 | ebcnt = tmp; |
343 | pgcnt = mtd->erasesize / mtd->writesize; | 348 | pgcnt = mtd->erasesize / pgsize; |
344 | 349 | ||
345 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " | 350 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " |
346 | "page size %u, count of eraseblocks %u, pages per " | 351 | "page size %u, count of eraseblocks %u, pages per " |
diff --git a/drivers/mtd/tests/mtd_stresstest.c b/drivers/mtd/tests/mtd_stresstest.c index 63920476b57a..a99d3cd737d8 100644 --- a/drivers/mtd/tests/mtd_stresstest.c +++ b/drivers/mtd/tests/mtd_stresstest.c | |||
@@ -227,6 +227,10 @@ static int scan_for_bad_eraseblocks(void) | |||
227 | } | 227 | } |
228 | memset(bbt, 0 , ebcnt); | 228 | memset(bbt, 0 , ebcnt); |
229 | 229 | ||
230 | /* NOR flash does not implement block_isbad */ | ||
231 | if (mtd->block_isbad == NULL) | ||
232 | return 0; | ||
233 | |||
230 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); | 234 | printk(PRINT_PREF "scanning for bad eraseblocks\n"); |
231 | for (i = 0; i < ebcnt; ++i) { | 235 | for (i = 0; i < ebcnt; ++i) { |
232 | bbt[i] = is_block_bad(i) ? 1 : 0; | 236 | bbt[i] = is_block_bad(i) ? 1 : 0; |
@@ -265,7 +269,7 @@ static int __init mtd_stresstest_init(void) | |||
265 | tmp = mtd->size; | 269 | tmp = mtd->size; |
266 | do_div(tmp, mtd->erasesize); | 270 | do_div(tmp, mtd->erasesize); |
267 | ebcnt = tmp; | 271 | ebcnt = tmp; |
268 | pgcnt = mtd->erasesize / mtd->writesize; | 272 | pgcnt = mtd->erasesize / pgsize; |
269 | 273 | ||
270 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " | 274 | printk(PRINT_PREF "MTD device size %llu, eraseblock size %u, " |
271 | "page size %u, count of eraseblocks %u, pages per " | 275 | "page size %u, count of eraseblocks %u, pages per " |
diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c index f237ddbb2713..111ea41c4ecd 100644 --- a/drivers/mtd/ubi/cdev.c +++ b/drivers/mtd/ubi/cdev.c | |||
@@ -853,7 +853,6 @@ static long ubi_cdev_ioctl(struct file *file, unsigned int cmd, | |||
853 | break; | 853 | break; |
854 | } | 854 | } |
855 | 855 | ||
856 | req.name[req.name_len] = '\0'; | ||
857 | err = verify_mkvol_req(ubi, &req); | 856 | err = verify_mkvol_req(ubi, &req); |
858 | if (err) | 857 | if (err) |
859 | break; | 858 | break; |
diff --git a/drivers/mtd/ubi/kapi.c b/drivers/mtd/ubi/kapi.c index 277786ebaa2c..1361574e2b00 100644 --- a/drivers/mtd/ubi/kapi.c +++ b/drivers/mtd/ubi/kapi.c | |||
@@ -291,8 +291,7 @@ EXPORT_SYMBOL_GPL(ubi_open_volume_nm); | |||
291 | */ | 291 | */ |
292 | struct ubi_volume_desc *ubi_open_volume_path(const char *pathname, int mode) | 292 | struct ubi_volume_desc *ubi_open_volume_path(const char *pathname, int mode) |
293 | { | 293 | { |
294 | int error, ubi_num, vol_id; | 294 | int error, ubi_num, vol_id, mod; |
295 | struct ubi_volume_desc *ret; | ||
296 | struct inode *inode; | 295 | struct inode *inode; |
297 | struct path path; | 296 | struct path path; |
298 | 297 | ||
@@ -306,16 +305,16 @@ struct ubi_volume_desc *ubi_open_volume_path(const char *pathname, int mode) | |||
306 | return ERR_PTR(error); | 305 | return ERR_PTR(error); |
307 | 306 | ||
308 | inode = path.dentry->d_inode; | 307 | inode = path.dentry->d_inode; |
308 | mod = inode->i_mode; | ||
309 | ubi_num = ubi_major2num(imajor(inode)); | 309 | ubi_num = ubi_major2num(imajor(inode)); |
310 | vol_id = iminor(inode) - 1; | 310 | vol_id = iminor(inode) - 1; |
311 | path_put(&path); | ||
311 | 312 | ||
313 | if (!S_ISCHR(mod)) | ||
314 | return ERR_PTR(-EINVAL); | ||
312 | if (vol_id >= 0 && ubi_num >= 0) | 315 | if (vol_id >= 0 && ubi_num >= 0) |
313 | ret = ubi_open_volume(ubi_num, vol_id, mode); | 316 | return ubi_open_volume(ubi_num, vol_id, mode); |
314 | else | 317 | return ERR_PTR(-ENODEV); |
315 | ret = ERR_PTR(-ENODEV); | ||
316 | |||
317 | path_put(&path); | ||
318 | return ret; | ||
319 | } | 318 | } |
320 | EXPORT_SYMBOL_GPL(ubi_open_volume_path); | 319 | EXPORT_SYMBOL_GPL(ubi_open_volume_path); |
321 | 320 | ||
diff --git a/drivers/mtd/ubi/upd.c b/drivers/mtd/ubi/upd.c index c1d7b880c795..425bf5a3edd4 100644 --- a/drivers/mtd/ubi/upd.c +++ b/drivers/mtd/ubi/upd.c | |||
@@ -155,6 +155,7 @@ int ubi_start_update(struct ubi_device *ubi, struct ubi_volume *vol, | |||
155 | if (err) | 155 | if (err) |
156 | return err; | 156 | return err; |
157 | vol->updating = 0; | 157 | vol->updating = 0; |
158 | return 0; | ||
158 | } | 159 | } |
159 | 160 | ||
160 | vol->upd_buf = vmalloc(ubi->leb_size); | 161 | vol->upd_buf = vmalloc(ubi->leb_size); |
diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c index 1afc61e7455d..40044028d682 100644 --- a/drivers/mtd/ubi/vtbl.c +++ b/drivers/mtd/ubi/vtbl.c | |||
@@ -566,6 +566,7 @@ static int init_volumes(struct ubi_device *ubi, const struct ubi_scan_info *si, | |||
566 | vol->reserved_pebs = be32_to_cpu(vtbl[i].reserved_pebs); | 566 | vol->reserved_pebs = be32_to_cpu(vtbl[i].reserved_pebs); |
567 | vol->alignment = be32_to_cpu(vtbl[i].alignment); | 567 | vol->alignment = be32_to_cpu(vtbl[i].alignment); |
568 | vol->data_pad = be32_to_cpu(vtbl[i].data_pad); | 568 | vol->data_pad = be32_to_cpu(vtbl[i].data_pad); |
569 | vol->upd_marker = vtbl[i].upd_marker; | ||
569 | vol->vol_type = vtbl[i].vol_type == UBI_VID_DYNAMIC ? | 570 | vol->vol_type = vtbl[i].vol_type == UBI_VID_DYNAMIC ? |
570 | UBI_DYNAMIC_VOLUME : UBI_STATIC_VOLUME; | 571 | UBI_DYNAMIC_VOLUME : UBI_STATIC_VOLUME; |
571 | vol->name_len = be16_to_cpu(vtbl[i].name_len); | 572 | vol->name_len = be16_to_cpu(vtbl[i].name_len); |
diff --git a/drivers/net/benet/be_cmds.c b/drivers/net/benet/be_cmds.c index 3397ee327e1f..477f82bc647e 100644 --- a/drivers/net/benet/be_cmds.c +++ b/drivers/net/benet/be_cmds.c | |||
@@ -308,6 +308,7 @@ static void be_cmd_hdr_prepare(struct be_cmd_req_hdr *req_hdr, | |||
308 | req_hdr->opcode = opcode; | 308 | req_hdr->opcode = opcode; |
309 | req_hdr->subsystem = subsystem; | 309 | req_hdr->subsystem = subsystem; |
310 | req_hdr->request_length = cpu_to_le32(cmd_len - sizeof(*req_hdr)); | 310 | req_hdr->request_length = cpu_to_le32(cmd_len - sizeof(*req_hdr)); |
311 | req_hdr->version = 0; | ||
311 | } | 312 | } |
312 | 313 | ||
313 | static void be_cmd_page_addrs_prepare(struct phys_addr *pages, u32 max_pages, | 314 | static void be_cmd_page_addrs_prepare(struct phys_addr *pages, u32 max_pages, |
diff --git a/drivers/net/ixgbe/ixgbe_82598.c b/drivers/net/ixgbe/ixgbe_82598.c index 3103f4165311..35a06b47587b 100644 --- a/drivers/net/ixgbe/ixgbe_82598.c +++ b/drivers/net/ixgbe/ixgbe_82598.c | |||
@@ -357,12 +357,34 @@ static s32 ixgbe_fc_enable_82598(struct ixgbe_hw *hw, s32 packetbuf_num) | |||
357 | u32 fctrl_reg; | 357 | u32 fctrl_reg; |
358 | u32 rmcs_reg; | 358 | u32 rmcs_reg; |
359 | u32 reg; | 359 | u32 reg; |
360 | u32 link_speed = 0; | ||
361 | bool link_up; | ||
360 | 362 | ||
361 | #ifdef CONFIG_DCB | 363 | #ifdef CONFIG_DCB |
362 | if (hw->fc.requested_mode == ixgbe_fc_pfc) | 364 | if (hw->fc.requested_mode == ixgbe_fc_pfc) |
363 | goto out; | 365 | goto out; |
364 | 366 | ||
365 | #endif /* CONFIG_DCB */ | 367 | #endif /* CONFIG_DCB */ |
368 | /* | ||
369 | * On 82598 having Rx FC on causes resets while doing 1G | ||
370 | * so if it's on turn it off once we know link_speed. For | ||
371 | * more details see 82598 Specification update. | ||
372 | */ | ||
373 | hw->mac.ops.check_link(hw, &link_speed, &link_up, false); | ||
374 | if (link_up && link_speed == IXGBE_LINK_SPEED_1GB_FULL) { | ||
375 | switch (hw->fc.requested_mode) { | ||
376 | case ixgbe_fc_full: | ||
377 | hw->fc.requested_mode = ixgbe_fc_tx_pause; | ||
378 | break; | ||
379 | case ixgbe_fc_rx_pause: | ||
380 | hw->fc.requested_mode = ixgbe_fc_none; | ||
381 | break; | ||
382 | default: | ||
383 | /* no change */ | ||
384 | break; | ||
385 | } | ||
386 | } | ||
387 | |||
366 | /* Negotiate the fc mode to use */ | 388 | /* Negotiate the fc mode to use */ |
367 | ret_val = ixgbe_fc_autoneg(hw); | 389 | ret_val = ixgbe_fc_autoneg(hw); |
368 | if (ret_val) | 390 | if (ret_val) |
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index 0792f151de99..43a8de3dc4d6 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -6088,6 +6088,10 @@ static int __devinit ixgbe_probe(struct pci_dev *pdev, | |||
6088 | if (err) | 6088 | if (err) |
6089 | goto err_sw_init; | 6089 | goto err_sw_init; |
6090 | 6090 | ||
6091 | /* Make it possible the adapter to be woken up via WOL */ | ||
6092 | if (adapter->hw.mac.type == ixgbe_mac_82599EB) | ||
6093 | IXGBE_WRITE_REG(&adapter->hw, IXGBE_WUS, ~0); | ||
6094 | |||
6091 | /* | 6095 | /* |
6092 | * If there is a fan on this device and it has failed log the | 6096 | * If there is a fan on this device and it has failed log the |
6093 | * failure. | 6097 | * failure. |
diff --git a/drivers/pci/pcie/aer/aer_inject.c b/drivers/pci/pcie/aer/aer_inject.c index 8c30a9544d61..223052b73563 100644 --- a/drivers/pci/pcie/aer/aer_inject.c +++ b/drivers/pci/pcie/aer/aer_inject.c | |||
@@ -321,7 +321,7 @@ static int aer_inject(struct aer_error_inj *einj) | |||
321 | unsigned long flags; | 321 | unsigned long flags; |
322 | unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn); | 322 | unsigned int devfn = PCI_DEVFN(einj->dev, einj->fn); |
323 | int pos_cap_err, rp_pos_cap_err; | 323 | int pos_cap_err, rp_pos_cap_err; |
324 | u32 sever, mask; | 324 | u32 sever, cor_mask, uncor_mask; |
325 | int ret = 0; | 325 | int ret = 0; |
326 | 326 | ||
327 | dev = pci_get_domain_bus_and_slot((int)einj->domain, einj->bus, devfn); | 327 | dev = pci_get_domain_bus_and_slot((int)einj->domain, einj->bus, devfn); |
@@ -339,6 +339,9 @@ static int aer_inject(struct aer_error_inj *einj) | |||
339 | goto out_put; | 339 | goto out_put; |
340 | } | 340 | } |
341 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_SEVER, &sever); | 341 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_SEVER, &sever); |
342 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_COR_MASK, &cor_mask); | ||
343 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_MASK, | ||
344 | &uncor_mask); | ||
342 | 345 | ||
343 | rp_pos_cap_err = pci_find_ext_capability(rpdev, PCI_EXT_CAP_ID_ERR); | 346 | rp_pos_cap_err = pci_find_ext_capability(rpdev, PCI_EXT_CAP_ID_ERR); |
344 | if (!rp_pos_cap_err) { | 347 | if (!rp_pos_cap_err) { |
@@ -374,17 +377,14 @@ static int aer_inject(struct aer_error_inj *einj) | |||
374 | err->header_log2 = einj->header_log2; | 377 | err->header_log2 = einj->header_log2; |
375 | err->header_log3 = einj->header_log3; | 378 | err->header_log3 = einj->header_log3; |
376 | 379 | ||
377 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_COR_MASK, &mask); | 380 | if (einj->cor_status && !(einj->cor_status & ~cor_mask)) { |
378 | if (einj->cor_status && !(einj->cor_status & ~mask)) { | ||
379 | ret = -EINVAL; | 381 | ret = -EINVAL; |
380 | printk(KERN_WARNING "The correctable error(s) is masked " | 382 | printk(KERN_WARNING "The correctable error(s) is masked " |
381 | "by device\n"); | 383 | "by device\n"); |
382 | spin_unlock_irqrestore(&inject_lock, flags); | 384 | spin_unlock_irqrestore(&inject_lock, flags); |
383 | goto out_put; | 385 | goto out_put; |
384 | } | 386 | } |
385 | 387 | if (einj->uncor_status && !(einj->uncor_status & ~uncor_mask)) { | |
386 | pci_read_config_dword(dev, pos_cap_err + PCI_ERR_UNCOR_MASK, &mask); | ||
387 | if (einj->uncor_status && !(einj->uncor_status & ~mask)) { | ||
388 | ret = -EINVAL; | 388 | ret = -EINVAL; |
389 | printk(KERN_WARNING "The uncorrectable error(s) is masked " | 389 | printk(KERN_WARNING "The uncorrectable error(s) is masked " |
390 | "by device\n"); | 390 | "by device\n"); |
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 98ffb2de22e9..446e4a94d7d3 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c | |||
@@ -681,7 +681,7 @@ static void pci_read_irq(struct pci_dev *dev) | |||
681 | dev->irq = irq; | 681 | dev->irq = irq; |
682 | } | 682 | } |
683 | 683 | ||
684 | static void set_pcie_port_type(struct pci_dev *pdev) | 684 | void set_pcie_port_type(struct pci_dev *pdev) |
685 | { | 685 | { |
686 | int pos; | 686 | int pos; |
687 | u16 reg16; | 687 | u16 reg16; |
@@ -695,7 +695,7 @@ static void set_pcie_port_type(struct pci_dev *pdev) | |||
695 | pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4; | 695 | pdev->pcie_type = (reg16 & PCI_EXP_FLAGS_TYPE) >> 4; |
696 | } | 696 | } |
697 | 697 | ||
698 | static void set_pcie_hotplug_bridge(struct pci_dev *pdev) | 698 | void set_pcie_hotplug_bridge(struct pci_dev *pdev) |
699 | { | 699 | { |
700 | int pos; | 700 | int pos; |
701 | u16 reg16; | 701 | u16 reg16; |
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c index c74694345b6e..d58b94030ef3 100644 --- a/drivers/pci/quirks.c +++ b/drivers/pci/quirks.c | |||
@@ -338,6 +338,23 @@ static void __devinit quirk_s3_64M(struct pci_dev *dev) | |||
338 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_868, quirk_s3_64M); | 338 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_868, quirk_s3_64M); |
339 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_968, quirk_s3_64M); | 339 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_S3, PCI_DEVICE_ID_S3_968, quirk_s3_64M); |
340 | 340 | ||
341 | /* | ||
342 | * Some CS5536 BIOSes (for example, the Soekris NET5501 board w/ comBIOS | ||
343 | * ver. 1.33 20070103) don't set the correct ISA PCI region header info. | ||
344 | * BAR0 should be 8 bytes; instead, it may be set to something like 8k | ||
345 | * (which conflicts w/ BAR1's memory range). | ||
346 | */ | ||
347 | static void __devinit quirk_cs5536_vsa(struct pci_dev *dev) | ||
348 | { | ||
349 | if (pci_resource_len(dev, 0) != 8) { | ||
350 | struct resource *res = &dev->resource[0]; | ||
351 | res->end = res->start + 8 - 1; | ||
352 | dev_info(&dev->dev, "CS5536 ISA bridge bug detected " | ||
353 | "(incorrect header); workaround applied.\n"); | ||
354 | } | ||
355 | } | ||
356 | DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA, quirk_cs5536_vsa); | ||
357 | |||
341 | static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region, | 358 | static void __devinit quirk_io_region(struct pci_dev *dev, unsigned region, |
342 | unsigned size, int nr, const char *name) | 359 | unsigned size, int nr, const char *name) |
343 | { | 360 | { |
diff --git a/drivers/power/wm97xx_battery.c b/drivers/power/wm97xx_battery.c index fa39e759a275..6ea3cb5837c7 100644 --- a/drivers/power/wm97xx_battery.c +++ b/drivers/power/wm97xx_battery.c | |||
@@ -175,8 +175,14 @@ static int __devinit wm97xx_bat_probe(struct platform_device *dev) | |||
175 | dev_err(&dev->dev, "Do not pass platform_data through " | 175 | dev_err(&dev->dev, "Do not pass platform_data through " |
176 | "wm97xx_bat_set_pdata!\n"); | 176 | "wm97xx_bat_set_pdata!\n"); |
177 | return -EINVAL; | 177 | return -EINVAL; |
178 | } else | 178 | } |
179 | pdata = wmdata->batt_pdata; | 179 | |
180 | if (!wmdata) { | ||
181 | dev_err(&dev->dev, "No platform data supplied\n"); | ||
182 | return -EINVAL; | ||
183 | } | ||
184 | |||
185 | pdata = wmdata->batt_pdata; | ||
180 | 186 | ||
181 | if (dev->id != -1) | 187 | if (dev->id != -1) |
182 | return -EINVAL; | 188 | return -EINVAL; |
diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 686ef270ecf7..b60a4c9f8f16 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c | |||
@@ -661,7 +661,7 @@ static int suspend_prepare(struct regulator_dev *rdev, suspend_state_t state) | |||
661 | static void print_constraints(struct regulator_dev *rdev) | 661 | static void print_constraints(struct regulator_dev *rdev) |
662 | { | 662 | { |
663 | struct regulation_constraints *constraints = rdev->constraints; | 663 | struct regulation_constraints *constraints = rdev->constraints; |
664 | char buf[80]; | 664 | char buf[80] = ""; |
665 | int count = 0; | 665 | int count = 0; |
666 | int ret; | 666 | int ret; |
667 | 667 | ||
diff --git a/drivers/regulator/lp3971.c b/drivers/regulator/lp3971.c index 76d08c282f9c..4f33a0f4a179 100644 --- a/drivers/regulator/lp3971.c +++ b/drivers/regulator/lp3971.c | |||
@@ -183,7 +183,7 @@ static int lp3971_ldo_set_voltage(struct regulator_dev *dev, | |||
183 | if (vol_map[val] >= min_vol) | 183 | if (vol_map[val] >= min_vol) |
184 | break; | 184 | break; |
185 | 185 | ||
186 | if (vol_map[val] > max_vol) | 186 | if (val > LDO_VOL_MAX_IDX || vol_map[val] > max_vol) |
187 | return -EINVAL; | 187 | return -EINVAL; |
188 | 188 | ||
189 | return lp3971_set_bits(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo), | 189 | return lp3971_set_bits(lp3971, LP3971_LDO_VOL_CONTR_REG(ldo), |
@@ -272,7 +272,7 @@ static int lp3971_dcdc_set_voltage(struct regulator_dev *dev, | |||
272 | if (vol_map[val] >= min_vol) | 272 | if (vol_map[val] >= min_vol) |
273 | break; | 273 | break; |
274 | 274 | ||
275 | if (vol_map[val] > max_vol) | 275 | if (val > BUCK_TARGET_VOL_MAX_IDX || vol_map[val] > max_vol) |
276 | return -EINVAL; | 276 | return -EINVAL; |
277 | 277 | ||
278 | ret = lp3971_set_bits(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck), | 278 | ret = lp3971_set_bits(lp3971, LP3971_BUCK_TARGET_VOL1_REG(buck), |
diff --git a/drivers/regulator/wm8350-regulator.c b/drivers/regulator/wm8350-regulator.c index 1bbff099a546..e7b89e704af6 100644 --- a/drivers/regulator/wm8350-regulator.c +++ b/drivers/regulator/wm8350-regulator.c | |||
@@ -1504,7 +1504,8 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink, | |||
1504 | led->isink_init.consumer_supplies = &led->isink_consumer; | 1504 | led->isink_init.consumer_supplies = &led->isink_consumer; |
1505 | led->isink_init.constraints.min_uA = 0; | 1505 | led->isink_init.constraints.min_uA = 0; |
1506 | led->isink_init.constraints.max_uA = pdata->max_uA; | 1506 | led->isink_init.constraints.max_uA = pdata->max_uA; |
1507 | led->isink_init.constraints.valid_ops_mask = REGULATOR_CHANGE_CURRENT; | 1507 | led->isink_init.constraints.valid_ops_mask |
1508 | = REGULATOR_CHANGE_CURRENT | REGULATOR_CHANGE_STATUS; | ||
1508 | led->isink_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL; | 1509 | led->isink_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL; |
1509 | ret = wm8350_register_regulator(wm8350, isink, &led->isink_init); | 1510 | ret = wm8350_register_regulator(wm8350, isink, &led->isink_init); |
1510 | if (ret != 0) { | 1511 | if (ret != 0) { |
@@ -1517,6 +1518,7 @@ int wm8350_register_led(struct wm8350 *wm8350, int lednum, int dcdc, int isink, | |||
1517 | led->dcdc_init.num_consumer_supplies = 1; | 1518 | led->dcdc_init.num_consumer_supplies = 1; |
1518 | led->dcdc_init.consumer_supplies = &led->dcdc_consumer; | 1519 | led->dcdc_init.consumer_supplies = &led->dcdc_consumer; |
1519 | led->dcdc_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL; | 1520 | led->dcdc_init.constraints.valid_modes_mask = REGULATOR_MODE_NORMAL; |
1521 | led->dcdc_init.constraints.valid_ops_mask = REGULATOR_CHANGE_STATUS; | ||
1520 | ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init); | 1522 | ret = wm8350_register_regulator(wm8350, dcdc, &led->dcdc_init); |
1521 | if (ret != 0) { | 1523 | if (ret != 0) { |
1522 | platform_device_put(pdev); | 1524 | platform_device_put(pdev); |
diff --git a/drivers/rtc/rtc-fm3130.c b/drivers/rtc/rtc-fm3130.c index 3a7be11cc6b9..812c66755083 100644 --- a/drivers/rtc/rtc-fm3130.c +++ b/drivers/rtc/rtc-fm3130.c | |||
@@ -376,20 +376,22 @@ static int __devinit fm3130_probe(struct i2c_client *client, | |||
376 | } | 376 | } |
377 | 377 | ||
378 | /* Disabling calibration mode */ | 378 | /* Disabling calibration mode */ |
379 | if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL) | 379 | if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_CAL) { |
380 | i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, | 380 | i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, |
381 | fm3130->regs[FM3130_RTC_CONTROL] & | 381 | fm3130->regs[FM3130_RTC_CONTROL] & |
382 | ~(FM3130_RTC_CONTROL_BIT_CAL)); | 382 | ~(FM3130_RTC_CONTROL_BIT_CAL)); |
383 | dev_warn(&client->dev, "Disabling calibration mode!\n"); | 383 | dev_warn(&client->dev, "Disabling calibration mode!\n"); |
384 | } | ||
384 | 385 | ||
385 | /* Disabling read and write modes */ | 386 | /* Disabling read and write modes */ |
386 | if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE || | 387 | if (fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_WRITE || |
387 | fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ) | 388 | fm3130->regs[FM3130_RTC_CONTROL] & FM3130_RTC_CONTROL_BIT_READ) { |
388 | i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, | 389 | i2c_smbus_write_byte_data(client, FM3130_RTC_CONTROL, |
389 | fm3130->regs[FM3130_RTC_CONTROL] & | 390 | fm3130->regs[FM3130_RTC_CONTROL] & |
390 | ~(FM3130_RTC_CONTROL_BIT_READ | | 391 | ~(FM3130_RTC_CONTROL_BIT_READ | |
391 | FM3130_RTC_CONTROL_BIT_WRITE)); | 392 | FM3130_RTC_CONTROL_BIT_WRITE)); |
392 | dev_warn(&client->dev, "Disabling READ or WRITE mode!\n"); | 393 | dev_warn(&client->dev, "Disabling READ or WRITE mode!\n"); |
394 | } | ||
393 | 395 | ||
394 | /* oscillator off? turn it on, so clock can tick. */ | 396 | /* oscillator off? turn it on, so clock can tick. */ |
395 | if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN) | 397 | if (fm3130->regs[FM3130_CAL_CONTROL] & FM3130_CAL_CONTROL_BIT_nOSCEN) |
diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c index fdb2e7c14506..5905936c7c60 100644 --- a/drivers/s390/block/dasd.c +++ b/drivers/s390/block/dasd.c | |||
@@ -1004,8 +1004,8 @@ static void dasd_handle_killed_request(struct ccw_device *cdev, | |||
1004 | if (device == NULL || | 1004 | if (device == NULL || |
1005 | device != dasd_device_from_cdev_locked(cdev) || | 1005 | device != dasd_device_from_cdev_locked(cdev) || |
1006 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { | 1006 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { |
1007 | DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " | 1007 | DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", |
1008 | "bus_id %s", dev_name(&cdev->dev)); | 1008 | "invalid device in request"); |
1009 | return; | 1009 | return; |
1010 | } | 1010 | } |
1011 | 1011 | ||
@@ -1078,8 +1078,8 @@ void dasd_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
1078 | device = (struct dasd_device *) cqr->startdev; | 1078 | device = (struct dasd_device *) cqr->startdev; |
1079 | if (!device || | 1079 | if (!device || |
1080 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { | 1080 | strncmp(device->discipline->ebcname, (char *) &cqr->magic, 4)) { |
1081 | DBF_DEV_EVENT(DBF_DEBUG, device, "invalid device in request: " | 1081 | DBF_EVENT_DEVID(DBF_DEBUG, cdev, "%s", |
1082 | "bus_id %s", dev_name(&cdev->dev)); | 1082 | "invalid device in request"); |
1083 | return; | 1083 | return; |
1084 | } | 1084 | } |
1085 | 1085 | ||
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c index 1c500c462225..1cca21aafaba 100644 --- a/drivers/s390/block/dasd_eckd.c +++ b/drivers/s390/block/dasd_eckd.c | |||
@@ -3033,7 +3033,7 @@ static void dasd_eckd_dump_sense_ccw(struct dasd_device *device, | |||
3033 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER | 3033 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER |
3034 | " in req: %p CS: 0x%02X DS: 0x%02X CC: 0x%02X RC: %d\n", | 3034 | " in req: %p CS: 0x%02X DS: 0x%02X CC: 0x%02X RC: %d\n", |
3035 | req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), | 3035 | req, scsw_cstat(&irb->scsw), scsw_dstat(&irb->scsw), |
3036 | scsw_cc(&irb->scsw), req->intrc); | 3036 | scsw_cc(&irb->scsw), req ? req->intrc : 0); |
3037 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER | 3037 | len += sprintf(page + len, KERN_ERR PRINTK_HEADER |
3038 | " device %s: Failing CCW: %p\n", | 3038 | " device %s: Failing CCW: %p\n", |
3039 | dev_name(&device->cdev->dev), | 3039 | dev_name(&device->cdev->dev), |
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c index fc7b30b4a255..7039d9cf0fb4 100644 --- a/drivers/s390/block/dasd_ioctl.c +++ b/drivers/s390/block/dasd_ioctl.c | |||
@@ -260,7 +260,7 @@ static int dasd_ioctl_information(struct dasd_block *block, | |||
260 | struct ccw_dev_id dev_id; | 260 | struct ccw_dev_id dev_id; |
261 | 261 | ||
262 | base = block->base; | 262 | base = block->base; |
263 | if (!base->discipline->fill_info) | 263 | if (!base->discipline || !base->discipline->fill_info) |
264 | return -EINVAL; | 264 | return -EINVAL; |
265 | 265 | ||
266 | dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); | 266 | dasd_info = kzalloc(sizeof(struct dasd_information2_t), GFP_KERNEL); |
@@ -303,10 +303,7 @@ static int dasd_ioctl_information(struct dasd_block *block, | |||
303 | dasd_info->features |= | 303 | dasd_info->features |= |
304 | ((base->features & DASD_FEATURE_READONLY) != 0); | 304 | ((base->features & DASD_FEATURE_READONLY) != 0); |
305 | 305 | ||
306 | if (base->discipline) | 306 | memcpy(dasd_info->type, base->discipline->name, 4); |
307 | memcpy(dasd_info->type, base->discipline->name, 4); | ||
308 | else | ||
309 | memcpy(dasd_info->type, "none", 4); | ||
310 | 307 | ||
311 | if (block->request_queue->request_fn) { | 308 | if (block->request_queue->request_fn) { |
312 | struct list_head *l; | 309 | struct list_head *l; |
diff --git a/drivers/s390/block/dasd_proc.c b/drivers/s390/block/dasd_proc.c index 6315fbd8e68b..71f95f54866f 100644 --- a/drivers/s390/block/dasd_proc.c +++ b/drivers/s390/block/dasd_proc.c | |||
@@ -72,7 +72,7 @@ dasd_devices_show(struct seq_file *m, void *v) | |||
72 | /* Print device number. */ | 72 | /* Print device number. */ |
73 | seq_printf(m, "%s", dev_name(&device->cdev->dev)); | 73 | seq_printf(m, "%s", dev_name(&device->cdev->dev)); |
74 | /* Print discipline string. */ | 74 | /* Print discipline string. */ |
75 | if (device != NULL && device->discipline != NULL) | 75 | if (device->discipline != NULL) |
76 | seq_printf(m, "(%s)", device->discipline->name); | 76 | seq_printf(m, "(%s)", device->discipline->name); |
77 | else | 77 | else |
78 | seq_printf(m, "(none)"); | 78 | seq_printf(m, "(none)"); |
@@ -92,10 +92,7 @@ dasd_devices_show(struct seq_file *m, void *v) | |||
92 | substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; | 92 | substr = (device->features & DASD_FEATURE_READONLY) ? "(ro)" : " "; |
93 | seq_printf(m, "%4s: ", substr); | 93 | seq_printf(m, "%4s: ", substr); |
94 | /* Print device status information. */ | 94 | /* Print device status information. */ |
95 | switch ((device != NULL) ? device->state : -1) { | 95 | switch (device->state) { |
96 | case -1: | ||
97 | seq_printf(m, "unknown"); | ||
98 | break; | ||
99 | case DASD_STATE_NEW: | 96 | case DASD_STATE_NEW: |
100 | seq_printf(m, "new"); | 97 | seq_printf(m, "new"); |
101 | break; | 98 | break; |
diff --git a/drivers/s390/char/sclp_vt220.c b/drivers/s390/char/sclp_vt220.c index b9d2a007e93b..3796ffdb8479 100644 --- a/drivers/s390/char/sclp_vt220.c +++ b/drivers/s390/char/sclp_vt220.c | |||
@@ -495,6 +495,10 @@ sclp_vt220_open(struct tty_struct *tty, struct file *filp) | |||
495 | if (tty->driver_data == NULL) | 495 | if (tty->driver_data == NULL) |
496 | return -ENOMEM; | 496 | return -ENOMEM; |
497 | tty->low_latency = 0; | 497 | tty->low_latency = 0; |
498 | if (!tty->winsize.ws_row && !tty->winsize.ws_col) { | ||
499 | tty->winsize.ws_row = 24; | ||
500 | tty->winsize.ws_col = 80; | ||
501 | } | ||
498 | } | 502 | } |
499 | return 0; | 503 | return 0; |
500 | } | 504 | } |
diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c index 999fe80c4051..62b654af9237 100644 --- a/drivers/s390/cio/qdio_main.c +++ b/drivers/s390/cio/qdio_main.c | |||
@@ -531,7 +531,7 @@ static inline int qdio_inbound_q_done(struct qdio_q *q) | |||
531 | qdio_siga_sync_q(q); | 531 | qdio_siga_sync_q(q); |
532 | get_buf_state(q, q->first_to_check, &state, 0); | 532 | get_buf_state(q, q->first_to_check, &state, 0); |
533 | 533 | ||
534 | if (state == SLSB_P_INPUT_PRIMED) | 534 | if (state == SLSB_P_INPUT_PRIMED || state == SLSB_P_INPUT_ERROR) |
535 | /* more work coming */ | 535 | /* more work coming */ |
536 | return 0; | 536 | return 0; |
537 | 537 | ||
@@ -960,6 +960,8 @@ void qdio_int_handler(struct ccw_device *cdev, unsigned long intparm, | |||
960 | qdio_handle_activate_check(cdev, intparm, cstat, | 960 | qdio_handle_activate_check(cdev, intparm, cstat, |
961 | dstat); | 961 | dstat); |
962 | break; | 962 | break; |
963 | case QDIO_IRQ_STATE_STOPPED: | ||
964 | break; | ||
963 | default: | 965 | default: |
964 | WARN_ON(1); | 966 | WARN_ON(1); |
965 | } | 967 | } |
diff --git a/drivers/s390/crypto/zcrypt_pcicc.c b/drivers/s390/crypto/zcrypt_pcicc.c index a23726a0735c..142f72a2ca5a 100644 --- a/drivers/s390/crypto/zcrypt_pcicc.c +++ b/drivers/s390/crypto/zcrypt_pcicc.c | |||
@@ -373,6 +373,8 @@ static int convert_type86(struct zcrypt_device *zdev, | |||
373 | zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; | 373 | zdev->max_mod_size = PCICC_MAX_MOD_SIZE_OLD; |
374 | return -EAGAIN; | 374 | return -EAGAIN; |
375 | } | 375 | } |
376 | if (service_rc == 8 && service_rs == 72) | ||
377 | return -EINVAL; | ||
376 | zdev->online = 0; | 378 | zdev->online = 0; |
377 | return -EAGAIN; /* repeat the request on a different device. */ | 379 | return -EAGAIN; /* repeat the request on a different device. */ |
378 | } | 380 | } |
diff --git a/drivers/s390/crypto/zcrypt_pcixcc.c b/drivers/s390/crypto/zcrypt_pcixcc.c index 79c120578e61..68f3e6204db8 100644 --- a/drivers/s390/crypto/zcrypt_pcixcc.c +++ b/drivers/s390/crypto/zcrypt_pcixcc.c | |||
@@ -470,6 +470,8 @@ static int convert_type86_ica(struct zcrypt_device *zdev, | |||
470 | } | 470 | } |
471 | if (service_rc == 12 && service_rs == 769) | 471 | if (service_rc == 12 && service_rs == 769) |
472 | return -EINVAL; | 472 | return -EINVAL; |
473 | if (service_rc == 8 && service_rs == 72) | ||
474 | return -EINVAL; | ||
473 | zdev->online = 0; | 475 | zdev->online = 0; |
474 | return -EAGAIN; /* repeat the request on a different device. */ | 476 | return -EAGAIN; /* repeat the request on a different device. */ |
475 | } | 477 | } |
diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c index f932400e980a..0eb6eefd2c1a 100644 --- a/drivers/s390/scsi/zfcp_cfdc.c +++ b/drivers/s390/scsi/zfcp_cfdc.c | |||
@@ -12,6 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/types.h> | 13 | #include <linux/types.h> |
14 | #include <linux/miscdevice.h> | 14 | #include <linux/miscdevice.h> |
15 | #include <asm/compat.h> | ||
15 | #include <asm/ccwdev.h> | 16 | #include <asm/ccwdev.h> |
16 | #include "zfcp_def.h" | 17 | #include "zfcp_def.h" |
17 | #include "zfcp_ext.h" | 18 | #include "zfcp_ext.h" |
@@ -163,7 +164,7 @@ static void zfcp_cfdc_req_to_sense(struct zfcp_cfdc_data *data, | |||
163 | } | 164 | } |
164 | 165 | ||
165 | static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command, | 166 | static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command, |
166 | unsigned long buffer) | 167 | unsigned long arg) |
167 | { | 168 | { |
168 | struct zfcp_cfdc_data *data; | 169 | struct zfcp_cfdc_data *data; |
169 | struct zfcp_cfdc_data __user *data_user; | 170 | struct zfcp_cfdc_data __user *data_user; |
@@ -175,7 +176,11 @@ static long zfcp_cfdc_dev_ioctl(struct file *file, unsigned int command, | |||
175 | if (command != ZFCP_CFDC_IOC) | 176 | if (command != ZFCP_CFDC_IOC) |
176 | return -ENOTTY; | 177 | return -ENOTTY; |
177 | 178 | ||
178 | data_user = (void __user *) buffer; | 179 | if (is_compat_task()) |
180 | data_user = compat_ptr(arg); | ||
181 | else | ||
182 | data_user = (void __user *)arg; | ||
183 | |||
179 | if (!data_user) | 184 | if (!data_user) |
180 | return -EINVAL; | 185 | return -EINVAL; |
181 | 186 | ||
diff --git a/drivers/s390/scsi/zfcp_dbf.c b/drivers/s390/scsi/zfcp_dbf.c index 84450955ae11..7369c8911bcf 100644 --- a/drivers/s390/scsi/zfcp_dbf.c +++ b/drivers/s390/scsi/zfcp_dbf.c | |||
@@ -327,7 +327,7 @@ static void zfcp_dbf_hba_view_response(char **p, | |||
327 | break; | 327 | break; |
328 | zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd); | 328 | zfcp_dbf_out(p, "scsi_cmnd", "0x%0Lx", r->u.fcp.cmnd); |
329 | zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial); | 329 | zfcp_dbf_out(p, "scsi_serial", "0x%016Lx", r->u.fcp.serial); |
330 | p += sprintf(*p, "\n"); | 330 | *p += sprintf(*p, "\n"); |
331 | break; | 331 | break; |
332 | 332 | ||
333 | case FSF_QTCB_OPEN_PORT_WITH_DID: | 333 | case FSF_QTCB_OPEN_PORT_WITH_DID: |
diff --git a/drivers/s390/scsi/zfcp_ext.h b/drivers/s390/scsi/zfcp_ext.h index 03dec832b465..66bdb34143cb 100644 --- a/drivers/s390/scsi/zfcp_ext.h +++ b/drivers/s390/scsi/zfcp_ext.h | |||
@@ -108,6 +108,7 @@ extern void zfcp_fc_wka_ports_force_offline(struct zfcp_fc_wka_ports *); | |||
108 | extern int zfcp_fc_gs_setup(struct zfcp_adapter *); | 108 | extern int zfcp_fc_gs_setup(struct zfcp_adapter *); |
109 | extern void zfcp_fc_gs_destroy(struct zfcp_adapter *); | 109 | extern void zfcp_fc_gs_destroy(struct zfcp_adapter *); |
110 | extern int zfcp_fc_exec_bsg_job(struct fc_bsg_job *); | 110 | extern int zfcp_fc_exec_bsg_job(struct fc_bsg_job *); |
111 | extern int zfcp_fc_timeout_bsg_job(struct fc_bsg_job *); | ||
111 | 112 | ||
112 | /* zfcp_fsf.c */ | 113 | /* zfcp_fsf.c */ |
113 | extern int zfcp_fsf_open_port(struct zfcp_erp_action *); | 114 | extern int zfcp_fsf_open_port(struct zfcp_erp_action *); |
@@ -129,9 +130,9 @@ extern void zfcp_fsf_req_dismiss_all(struct zfcp_adapter *); | |||
129 | extern int zfcp_fsf_status_read(struct zfcp_qdio *); | 130 | extern int zfcp_fsf_status_read(struct zfcp_qdio *); |
130 | extern int zfcp_status_read_refill(struct zfcp_adapter *adapter); | 131 | extern int zfcp_status_read_refill(struct zfcp_adapter *adapter); |
131 | extern int zfcp_fsf_send_ct(struct zfcp_fc_wka_port *, struct zfcp_fsf_ct_els *, | 132 | extern int zfcp_fsf_send_ct(struct zfcp_fc_wka_port *, struct zfcp_fsf_ct_els *, |
132 | mempool_t *); | 133 | mempool_t *, unsigned int); |
133 | extern int zfcp_fsf_send_els(struct zfcp_adapter *, u32, | 134 | extern int zfcp_fsf_send_els(struct zfcp_adapter *, u32, |
134 | struct zfcp_fsf_ct_els *); | 135 | struct zfcp_fsf_ct_els *, unsigned int); |
135 | extern int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *, | 136 | extern int zfcp_fsf_send_fcp_command_task(struct zfcp_unit *, |
136 | struct scsi_cmnd *); | 137 | struct scsi_cmnd *); |
137 | extern void zfcp_fsf_req_free(struct zfcp_fsf_req *); | 138 | extern void zfcp_fsf_req_free(struct zfcp_fsf_req *); |
diff --git a/drivers/s390/scsi/zfcp_fc.c b/drivers/s390/scsi/zfcp_fc.c index ac5e3b7a3576..271399f62f1b 100644 --- a/drivers/s390/scsi/zfcp_fc.c +++ b/drivers/s390/scsi/zfcp_fc.c | |||
@@ -258,7 +258,8 @@ static int zfcp_fc_ns_gid_pn_request(struct zfcp_port *port, | |||
258 | gid_pn->gid_pn_req.gid_pn.fn_wwpn = port->wwpn; | 258 | gid_pn->gid_pn_req.gid_pn.fn_wwpn = port->wwpn; |
259 | 259 | ||
260 | ret = zfcp_fsf_send_ct(&adapter->gs->ds, &gid_pn->ct, | 260 | ret = zfcp_fsf_send_ct(&adapter->gs->ds, &gid_pn->ct, |
261 | adapter->pool.gid_pn_req); | 261 | adapter->pool.gid_pn_req, |
262 | ZFCP_FC_CTELS_TMO); | ||
262 | if (!ret) { | 263 | if (!ret) { |
263 | wait_for_completion(&completion); | 264 | wait_for_completion(&completion); |
264 | zfcp_fc_ns_gid_pn_eval(gid_pn); | 265 | zfcp_fc_ns_gid_pn_eval(gid_pn); |
@@ -421,7 +422,8 @@ static int zfcp_fc_adisc(struct zfcp_port *port) | |||
421 | hton24(adisc->adisc_req.adisc_port_id, | 422 | hton24(adisc->adisc_req.adisc_port_id, |
422 | fc_host_port_id(adapter->scsi_host)); | 423 | fc_host_port_id(adapter->scsi_host)); |
423 | 424 | ||
424 | ret = zfcp_fsf_send_els(adapter, port->d_id, &adisc->els); | 425 | ret = zfcp_fsf_send_els(adapter, port->d_id, &adisc->els, |
426 | ZFCP_FC_CTELS_TMO); | ||
425 | if (ret) | 427 | if (ret) |
426 | kmem_cache_free(zfcp_data.adisc_cache, adisc); | 428 | kmem_cache_free(zfcp_data.adisc_cache, adisc); |
427 | 429 | ||
@@ -532,7 +534,8 @@ static int zfcp_fc_send_gpn_ft(struct zfcp_fc_gpn_ft *gpn_ft, | |||
532 | ct->req = &gpn_ft->sg_req; | 534 | ct->req = &gpn_ft->sg_req; |
533 | ct->resp = gpn_ft->sg_resp; | 535 | ct->resp = gpn_ft->sg_resp; |
534 | 536 | ||
535 | ret = zfcp_fsf_send_ct(&adapter->gs->ds, ct, NULL); | 537 | ret = zfcp_fsf_send_ct(&adapter->gs->ds, ct, NULL, |
538 | ZFCP_FC_CTELS_TMO); | ||
536 | if (!ret) | 539 | if (!ret) |
537 | wait_for_completion(&completion); | 540 | wait_for_completion(&completion); |
538 | return ret; | 541 | return ret; |
@@ -668,15 +671,52 @@ static void zfcp_fc_ct_els_job_handler(void *data) | |||
668 | { | 671 | { |
669 | struct fc_bsg_job *job = data; | 672 | struct fc_bsg_job *job = data; |
670 | struct zfcp_fsf_ct_els *zfcp_ct_els = job->dd_data; | 673 | struct zfcp_fsf_ct_els *zfcp_ct_els = job->dd_data; |
671 | int status = zfcp_ct_els->status; | 674 | struct fc_bsg_reply *jr = job->reply; |
672 | int reply_status; | ||
673 | 675 | ||
674 | reply_status = status ? FC_CTELS_STATUS_REJECT : FC_CTELS_STATUS_OK; | 676 | jr->reply_payload_rcv_len = job->reply_payload.payload_len; |
675 | job->reply->reply_data.ctels_reply.status = reply_status; | 677 | jr->reply_data.ctels_reply.status = FC_CTELS_STATUS_OK; |
676 | job->reply->reply_payload_rcv_len = job->reply_payload.payload_len; | 678 | jr->result = zfcp_ct_els->status ? -EIO : 0; |
677 | job->job_done(job); | 679 | job->job_done(job); |
678 | } | 680 | } |
679 | 681 | ||
682 | static struct zfcp_fc_wka_port *zfcp_fc_job_wka_port(struct fc_bsg_job *job) | ||
683 | { | ||
684 | u32 preamble_word1; | ||
685 | u8 gs_type; | ||
686 | struct zfcp_adapter *adapter; | ||
687 | |||
688 | preamble_word1 = job->request->rqst_data.r_ct.preamble_word1; | ||
689 | gs_type = (preamble_word1 & 0xff000000) >> 24; | ||
690 | |||
691 | adapter = (struct zfcp_adapter *) job->shost->hostdata[0]; | ||
692 | |||
693 | switch (gs_type) { | ||
694 | case FC_FST_ALIAS: | ||
695 | return &adapter->gs->as; | ||
696 | case FC_FST_MGMT: | ||
697 | return &adapter->gs->ms; | ||
698 | case FC_FST_TIME: | ||
699 | return &adapter->gs->ts; | ||
700 | break; | ||
701 | case FC_FST_DIR: | ||
702 | return &adapter->gs->ds; | ||
703 | break; | ||
704 | default: | ||
705 | return NULL; | ||
706 | } | ||
707 | } | ||
708 | |||
709 | static void zfcp_fc_ct_job_handler(void *data) | ||
710 | { | ||
711 | struct fc_bsg_job *job = data; | ||
712 | struct zfcp_fc_wka_port *wka_port; | ||
713 | |||
714 | wka_port = zfcp_fc_job_wka_port(job); | ||
715 | zfcp_fc_wka_port_put(wka_port); | ||
716 | |||
717 | zfcp_fc_ct_els_job_handler(data); | ||
718 | } | ||
719 | |||
680 | static int zfcp_fc_exec_els_job(struct fc_bsg_job *job, | 720 | static int zfcp_fc_exec_els_job(struct fc_bsg_job *job, |
681 | struct zfcp_adapter *adapter) | 721 | struct zfcp_adapter *adapter) |
682 | { | 722 | { |
@@ -695,43 +735,27 @@ static int zfcp_fc_exec_els_job(struct fc_bsg_job *job, | |||
695 | } else | 735 | } else |
696 | d_id = ntoh24(job->request->rqst_data.h_els.port_id); | 736 | d_id = ntoh24(job->request->rqst_data.h_els.port_id); |
697 | 737 | ||
698 | return zfcp_fsf_send_els(adapter, d_id, els); | 738 | els->handler = zfcp_fc_ct_els_job_handler; |
739 | return zfcp_fsf_send_els(adapter, d_id, els, job->req->timeout / HZ); | ||
699 | } | 740 | } |
700 | 741 | ||
701 | static int zfcp_fc_exec_ct_job(struct fc_bsg_job *job, | 742 | static int zfcp_fc_exec_ct_job(struct fc_bsg_job *job, |
702 | struct zfcp_adapter *adapter) | 743 | struct zfcp_adapter *adapter) |
703 | { | 744 | { |
704 | int ret; | 745 | int ret; |
705 | u8 gs_type; | ||
706 | struct zfcp_fsf_ct_els *ct = job->dd_data; | 746 | struct zfcp_fsf_ct_els *ct = job->dd_data; |
707 | struct zfcp_fc_wka_port *wka_port; | 747 | struct zfcp_fc_wka_port *wka_port; |
708 | u32 preamble_word1; | ||
709 | 748 | ||
710 | preamble_word1 = job->request->rqst_data.r_ct.preamble_word1; | 749 | wka_port = zfcp_fc_job_wka_port(job); |
711 | gs_type = (preamble_word1 & 0xff000000) >> 24; | 750 | if (!wka_port) |
712 | 751 | return -EINVAL; | |
713 | switch (gs_type) { | ||
714 | case FC_FST_ALIAS: | ||
715 | wka_port = &adapter->gs->as; | ||
716 | break; | ||
717 | case FC_FST_MGMT: | ||
718 | wka_port = &adapter->gs->ms; | ||
719 | break; | ||
720 | case FC_FST_TIME: | ||
721 | wka_port = &adapter->gs->ts; | ||
722 | break; | ||
723 | case FC_FST_DIR: | ||
724 | wka_port = &adapter->gs->ds; | ||
725 | break; | ||
726 | default: | ||
727 | return -EINVAL; /* no such service */ | ||
728 | } | ||
729 | 752 | ||
730 | ret = zfcp_fc_wka_port_get(wka_port); | 753 | ret = zfcp_fc_wka_port_get(wka_port); |
731 | if (ret) | 754 | if (ret) |
732 | return ret; | 755 | return ret; |
733 | 756 | ||
734 | ret = zfcp_fsf_send_ct(wka_port, ct, NULL); | 757 | ct->handler = zfcp_fc_ct_job_handler; |
758 | ret = zfcp_fsf_send_ct(wka_port, ct, NULL, job->req->timeout / HZ); | ||
735 | if (ret) | 759 | if (ret) |
736 | zfcp_fc_wka_port_put(wka_port); | 760 | zfcp_fc_wka_port_put(wka_port); |
737 | 761 | ||
@@ -752,7 +776,6 @@ int zfcp_fc_exec_bsg_job(struct fc_bsg_job *job) | |||
752 | 776 | ||
753 | ct_els->req = job->request_payload.sg_list; | 777 | ct_els->req = job->request_payload.sg_list; |
754 | ct_els->resp = job->reply_payload.sg_list; | 778 | ct_els->resp = job->reply_payload.sg_list; |
755 | ct_els->handler = zfcp_fc_ct_els_job_handler; | ||
756 | ct_els->handler_data = job; | 779 | ct_els->handler_data = job; |
757 | 780 | ||
758 | switch (job->request->msgcode) { | 781 | switch (job->request->msgcode) { |
@@ -767,6 +790,12 @@ int zfcp_fc_exec_bsg_job(struct fc_bsg_job *job) | |||
767 | } | 790 | } |
768 | } | 791 | } |
769 | 792 | ||
793 | int zfcp_fc_timeout_bsg_job(struct fc_bsg_job *job) | ||
794 | { | ||
795 | /* hardware tracks timeout, reset bsg timeout to not interfere */ | ||
796 | return -EAGAIN; | ||
797 | } | ||
798 | |||
770 | int zfcp_fc_gs_setup(struct zfcp_adapter *adapter) | 799 | int zfcp_fc_gs_setup(struct zfcp_adapter *adapter) |
771 | { | 800 | { |
772 | struct zfcp_fc_wka_ports *wka_ports; | 801 | struct zfcp_fc_wka_ports *wka_ports; |
diff --git a/drivers/s390/scsi/zfcp_fc.h b/drivers/s390/scsi/zfcp_fc.h index cb2a3669a384..0747b087390d 100644 --- a/drivers/s390/scsi/zfcp_fc.h +++ b/drivers/s390/scsi/zfcp_fc.h | |||
@@ -27,6 +27,8 @@ | |||
27 | #define ZFCP_FC_GPN_FT_MAX_ENT (ZFCP_FC_GPN_FT_NUM_BUFS * \ | 27 | #define ZFCP_FC_GPN_FT_MAX_ENT (ZFCP_FC_GPN_FT_NUM_BUFS * \ |
28 | (ZFCP_FC_GPN_FT_ENT_PAGE + 1)) | 28 | (ZFCP_FC_GPN_FT_ENT_PAGE + 1)) |
29 | 29 | ||
30 | #define ZFCP_FC_CTELS_TMO (2 * FC_DEF_R_A_TOV / 1000) | ||
31 | |||
30 | /** | 32 | /** |
31 | * struct zfcp_fc_gid_pn_req - container for ct header plus gid_pn request | 33 | * struct zfcp_fc_gid_pn_req - container for ct header plus gid_pn request |
32 | * @ct_hdr: FC GS common transport header | 34 | * @ct_hdr: FC GS common transport header |
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c index 482dcd97aa5d..e8fb4d9baa8b 100644 --- a/drivers/s390/scsi/zfcp_fsf.c +++ b/drivers/s390/scsi/zfcp_fsf.c | |||
@@ -1068,20 +1068,20 @@ static int zfcp_fsf_setup_ct_els_sbals(struct zfcp_fsf_req *req, | |||
1068 | static int zfcp_fsf_setup_ct_els(struct zfcp_fsf_req *req, | 1068 | static int zfcp_fsf_setup_ct_els(struct zfcp_fsf_req *req, |
1069 | struct scatterlist *sg_req, | 1069 | struct scatterlist *sg_req, |
1070 | struct scatterlist *sg_resp, | 1070 | struct scatterlist *sg_resp, |
1071 | int max_sbals) | 1071 | int max_sbals, unsigned int timeout) |
1072 | { | 1072 | { |
1073 | int ret; | 1073 | int ret; |
1074 | unsigned int fcp_chan_timeout; | ||
1075 | 1074 | ||
1076 | ret = zfcp_fsf_setup_ct_els_sbals(req, sg_req, sg_resp, max_sbals); | 1075 | ret = zfcp_fsf_setup_ct_els_sbals(req, sg_req, sg_resp, max_sbals); |
1077 | if (ret) | 1076 | if (ret) |
1078 | return ret; | 1077 | return ret; |
1079 | 1078 | ||
1080 | /* common settings for ct/gs and els requests */ | 1079 | /* common settings for ct/gs and els requests */ |
1081 | fcp_chan_timeout = 2 * FC_DEF_R_A_TOV / 1000; | 1080 | if (timeout > 255) |
1081 | timeout = 255; /* max value accepted by hardware */ | ||
1082 | req->qtcb->bottom.support.service_class = FSF_CLASS_3; | 1082 | req->qtcb->bottom.support.service_class = FSF_CLASS_3; |
1083 | req->qtcb->bottom.support.timeout = fcp_chan_timeout; | 1083 | req->qtcb->bottom.support.timeout = timeout; |
1084 | zfcp_fsf_start_timer(req, (fcp_chan_timeout + 10) * HZ); | 1084 | zfcp_fsf_start_timer(req, (timeout + 10) * HZ); |
1085 | 1085 | ||
1086 | return 0; | 1086 | return 0; |
1087 | } | 1087 | } |
@@ -1092,7 +1092,8 @@ static int zfcp_fsf_setup_ct_els(struct zfcp_fsf_req *req, | |||
1092 | * @pool: if non-null this mempool is used to allocate struct zfcp_fsf_req | 1092 | * @pool: if non-null this mempool is used to allocate struct zfcp_fsf_req |
1093 | */ | 1093 | */ |
1094 | int zfcp_fsf_send_ct(struct zfcp_fc_wka_port *wka_port, | 1094 | int zfcp_fsf_send_ct(struct zfcp_fc_wka_port *wka_port, |
1095 | struct zfcp_fsf_ct_els *ct, mempool_t *pool) | 1095 | struct zfcp_fsf_ct_els *ct, mempool_t *pool, |
1096 | unsigned int timeout) | ||
1096 | { | 1097 | { |
1097 | struct zfcp_qdio *qdio = wka_port->adapter->qdio; | 1098 | struct zfcp_qdio *qdio = wka_port->adapter->qdio; |
1098 | struct zfcp_fsf_req *req; | 1099 | struct zfcp_fsf_req *req; |
@@ -1111,7 +1112,7 @@ int zfcp_fsf_send_ct(struct zfcp_fc_wka_port *wka_port, | |||
1111 | 1112 | ||
1112 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | 1113 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; |
1113 | ret = zfcp_fsf_setup_ct_els(req, ct->req, ct->resp, | 1114 | ret = zfcp_fsf_setup_ct_els(req, ct->req, ct->resp, |
1114 | FSF_MAX_SBALS_PER_REQ); | 1115 | FSF_MAX_SBALS_PER_REQ, timeout); |
1115 | if (ret) | 1116 | if (ret) |
1116 | goto failed_send; | 1117 | goto failed_send; |
1117 | 1118 | ||
@@ -1188,7 +1189,7 @@ skip_fsfstatus: | |||
1188 | * @els: pointer to struct zfcp_send_els with data for the command | 1189 | * @els: pointer to struct zfcp_send_els with data for the command |
1189 | */ | 1190 | */ |
1190 | int zfcp_fsf_send_els(struct zfcp_adapter *adapter, u32 d_id, | 1191 | int zfcp_fsf_send_els(struct zfcp_adapter *adapter, u32 d_id, |
1191 | struct zfcp_fsf_ct_els *els) | 1192 | struct zfcp_fsf_ct_els *els, unsigned int timeout) |
1192 | { | 1193 | { |
1193 | struct zfcp_fsf_req *req; | 1194 | struct zfcp_fsf_req *req; |
1194 | struct zfcp_qdio *qdio = adapter->qdio; | 1195 | struct zfcp_qdio *qdio = adapter->qdio; |
@@ -1206,7 +1207,7 @@ int zfcp_fsf_send_els(struct zfcp_adapter *adapter, u32 d_id, | |||
1206 | } | 1207 | } |
1207 | 1208 | ||
1208 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; | 1209 | req->status |= ZFCP_STATUS_FSFREQ_CLEANUP; |
1209 | ret = zfcp_fsf_setup_ct_els(req, els->req, els->resp, 2); | 1210 | ret = zfcp_fsf_setup_ct_els(req, els->req, els->resp, 2, timeout); |
1210 | 1211 | ||
1211 | if (ret) | 1212 | if (ret) |
1212 | goto failed_send; | 1213 | goto failed_send; |
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c index 771cc536a989..8e6fc68d6bd4 100644 --- a/drivers/s390/scsi/zfcp_scsi.c +++ b/drivers/s390/scsi/zfcp_scsi.c | |||
@@ -652,6 +652,7 @@ struct fc_function_template zfcp_transport_functions = { | |||
652 | .show_host_port_state = 1, | 652 | .show_host_port_state = 1, |
653 | .show_host_active_fc4s = 1, | 653 | .show_host_active_fc4s = 1, |
654 | .bsg_request = zfcp_fc_exec_bsg_job, | 654 | .bsg_request = zfcp_fc_exec_bsg_job, |
655 | .bsg_timeout = zfcp_fc_timeout_bsg_job, | ||
655 | /* no functions registered for following dynamic attributes but | 656 | /* no functions registered for following dynamic attributes but |
656 | directly set by LLDD */ | 657 | directly set by LLDD */ |
657 | .show_host_port_type = 1, | 658 | .show_host_port_type = 1, |
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c index 2a889853a106..7e26ebc26661 100644 --- a/drivers/scsi/aacraid/aachba.c +++ b/drivers/scsi/aacraid/aachba.c | |||
@@ -293,7 +293,10 @@ int aac_get_config_status(struct aac_dev *dev, int commit_flag) | |||
293 | status = -EINVAL; | 293 | status = -EINVAL; |
294 | } | 294 | } |
295 | } | 295 | } |
296 | aac_fib_complete(fibptr); | 296 | /* Do not set XferState to zero unless receives a response from F/W */ |
297 | if (status >= 0) | ||
298 | aac_fib_complete(fibptr); | ||
299 | |||
297 | /* Send a CT_COMMIT_CONFIG to enable discovery of devices */ | 300 | /* Send a CT_COMMIT_CONFIG to enable discovery of devices */ |
298 | if (status >= 0) { | 301 | if (status >= 0) { |
299 | if ((aac_commit == 1) || commit_flag) { | 302 | if ((aac_commit == 1) || commit_flag) { |
@@ -310,13 +313,18 @@ int aac_get_config_status(struct aac_dev *dev, int commit_flag) | |||
310 | FsaNormal, | 313 | FsaNormal, |
311 | 1, 1, | 314 | 1, 1, |
312 | NULL, NULL); | 315 | NULL, NULL); |
313 | aac_fib_complete(fibptr); | 316 | /* Do not set XferState to zero unless |
317 | * receives a response from F/W */ | ||
318 | if (status >= 0) | ||
319 | aac_fib_complete(fibptr); | ||
314 | } else if (aac_commit == 0) { | 320 | } else if (aac_commit == 0) { |
315 | printk(KERN_WARNING | 321 | printk(KERN_WARNING |
316 | "aac_get_config_status: Foreign device configurations are being ignored\n"); | 322 | "aac_get_config_status: Foreign device configurations are being ignored\n"); |
317 | } | 323 | } |
318 | } | 324 | } |
319 | aac_fib_free(fibptr); | 325 | /* FIB should be freed only after getting the response from the F/W */ |
326 | if (status != -ERESTARTSYS) | ||
327 | aac_fib_free(fibptr); | ||
320 | return status; | 328 | return status; |
321 | } | 329 | } |
322 | 330 | ||
@@ -355,7 +363,9 @@ int aac_get_containers(struct aac_dev *dev) | |||
355 | maximum_num_containers = le32_to_cpu(dresp->ContainerSwitchEntries); | 363 | maximum_num_containers = le32_to_cpu(dresp->ContainerSwitchEntries); |
356 | aac_fib_complete(fibptr); | 364 | aac_fib_complete(fibptr); |
357 | } | 365 | } |
358 | aac_fib_free(fibptr); | 366 | /* FIB should be freed only after getting the response from the F/W */ |
367 | if (status != -ERESTARTSYS) | ||
368 | aac_fib_free(fibptr); | ||
359 | 369 | ||
360 | if (maximum_num_containers < MAXIMUM_NUM_CONTAINERS) | 370 | if (maximum_num_containers < MAXIMUM_NUM_CONTAINERS) |
361 | maximum_num_containers = MAXIMUM_NUM_CONTAINERS; | 371 | maximum_num_containers = MAXIMUM_NUM_CONTAINERS; |
@@ -1245,8 +1255,12 @@ int aac_get_adapter_info(struct aac_dev* dev) | |||
1245 | NULL); | 1255 | NULL); |
1246 | 1256 | ||
1247 | if (rcode < 0) { | 1257 | if (rcode < 0) { |
1248 | aac_fib_complete(fibptr); | 1258 | /* FIB should be freed only after |
1249 | aac_fib_free(fibptr); | 1259 | * getting the response from the F/W */ |
1260 | if (rcode != -ERESTARTSYS) { | ||
1261 | aac_fib_complete(fibptr); | ||
1262 | aac_fib_free(fibptr); | ||
1263 | } | ||
1250 | return rcode; | 1264 | return rcode; |
1251 | } | 1265 | } |
1252 | memcpy(&dev->adapter_info, info, sizeof(*info)); | 1266 | memcpy(&dev->adapter_info, info, sizeof(*info)); |
@@ -1270,6 +1284,12 @@ int aac_get_adapter_info(struct aac_dev* dev) | |||
1270 | 1284 | ||
1271 | if (rcode >= 0) | 1285 | if (rcode >= 0) |
1272 | memcpy(&dev->supplement_adapter_info, sinfo, sizeof(*sinfo)); | 1286 | memcpy(&dev->supplement_adapter_info, sinfo, sizeof(*sinfo)); |
1287 | if (rcode == -ERESTARTSYS) { | ||
1288 | fibptr = aac_fib_alloc(dev); | ||
1289 | if (!fibptr) | ||
1290 | return -ENOMEM; | ||
1291 | } | ||
1292 | |||
1273 | } | 1293 | } |
1274 | 1294 | ||
1275 | 1295 | ||
@@ -1470,9 +1490,11 @@ int aac_get_adapter_info(struct aac_dev* dev) | |||
1470 | (dev->scsi_host_ptr->sg_tablesize * 8) + 112; | 1490 | (dev->scsi_host_ptr->sg_tablesize * 8) + 112; |
1471 | } | 1491 | } |
1472 | } | 1492 | } |
1473 | 1493 | /* FIB should be freed only after getting the response from the F/W */ | |
1474 | aac_fib_complete(fibptr); | 1494 | if (rcode != -ERESTARTSYS) { |
1475 | aac_fib_free(fibptr); | 1495 | aac_fib_complete(fibptr); |
1496 | aac_fib_free(fibptr); | ||
1497 | } | ||
1476 | 1498 | ||
1477 | return rcode; | 1499 | return rcode; |
1478 | } | 1500 | } |
@@ -1633,6 +1655,7 @@ static int aac_read(struct scsi_cmnd * scsicmd) | |||
1633 | * Alocate and initialize a Fib | 1655 | * Alocate and initialize a Fib |
1634 | */ | 1656 | */ |
1635 | if (!(cmd_fibcontext = aac_fib_alloc(dev))) { | 1657 | if (!(cmd_fibcontext = aac_fib_alloc(dev))) { |
1658 | printk(KERN_WARNING "aac_read: fib allocation failed\n"); | ||
1636 | return -1; | 1659 | return -1; |
1637 | } | 1660 | } |
1638 | 1661 | ||
@@ -1712,9 +1735,14 @@ static int aac_write(struct scsi_cmnd * scsicmd) | |||
1712 | * Allocate and initialize a Fib then setup a BlockWrite command | 1735 | * Allocate and initialize a Fib then setup a BlockWrite command |
1713 | */ | 1736 | */ |
1714 | if (!(cmd_fibcontext = aac_fib_alloc(dev))) { | 1737 | if (!(cmd_fibcontext = aac_fib_alloc(dev))) { |
1715 | scsicmd->result = DID_ERROR << 16; | 1738 | /* FIB temporarily unavailable,not catastrophic failure */ |
1716 | scsicmd->scsi_done(scsicmd); | 1739 | |
1717 | return 0; | 1740 | /* scsicmd->result = DID_ERROR << 16; |
1741 | * scsicmd->scsi_done(scsicmd); | ||
1742 | * return 0; | ||
1743 | */ | ||
1744 | printk(KERN_WARNING "aac_write: fib allocation failed\n"); | ||
1745 | return -1; | ||
1718 | } | 1746 | } |
1719 | 1747 | ||
1720 | status = aac_adapter_write(cmd_fibcontext, scsicmd, lba, count, fua); | 1748 | status = aac_adapter_write(cmd_fibcontext, scsicmd, lba, count, fua); |
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 83986ed86556..619c02d9c862 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -12,7 +12,7 @@ | |||
12 | *----------------------------------------------------------------------------*/ | 12 | *----------------------------------------------------------------------------*/ |
13 | 13 | ||
14 | #ifndef AAC_DRIVER_BUILD | 14 | #ifndef AAC_DRIVER_BUILD |
15 | # define AAC_DRIVER_BUILD 2461 | 15 | # define AAC_DRIVER_BUILD 24702 |
16 | # define AAC_DRIVER_BRANCH "-ms" | 16 | # define AAC_DRIVER_BRANCH "-ms" |
17 | #endif | 17 | #endif |
18 | #define MAXIMUM_NUM_CONTAINERS 32 | 18 | #define MAXIMUM_NUM_CONTAINERS 32 |
@@ -1036,6 +1036,9 @@ struct aac_dev | |||
1036 | u8 printf_enabled; | 1036 | u8 printf_enabled; |
1037 | u8 in_reset; | 1037 | u8 in_reset; |
1038 | u8 msi; | 1038 | u8 msi; |
1039 | int management_fib_count; | ||
1040 | spinlock_t manage_lock; | ||
1041 | |||
1039 | }; | 1042 | }; |
1040 | 1043 | ||
1041 | #define aac_adapter_interrupt(dev) \ | 1044 | #define aac_adapter_interrupt(dev) \ |
diff --git a/drivers/scsi/aacraid/commctrl.c b/drivers/scsi/aacraid/commctrl.c index 0391d759dfdb..9c0c91178538 100644 --- a/drivers/scsi/aacraid/commctrl.c +++ b/drivers/scsi/aacraid/commctrl.c | |||
@@ -153,7 +153,7 @@ cleanup: | |||
153 | fibptr->hw_fib_pa = hw_fib_pa; | 153 | fibptr->hw_fib_pa = hw_fib_pa; |
154 | fibptr->hw_fib_va = hw_fib; | 154 | fibptr->hw_fib_va = hw_fib; |
155 | } | 155 | } |
156 | if (retval != -EINTR) | 156 | if (retval != -ERESTARTSYS) |
157 | aac_fib_free(fibptr); | 157 | aac_fib_free(fibptr); |
158 | return retval; | 158 | return retval; |
159 | } | 159 | } |
@@ -322,7 +322,7 @@ return_fib: | |||
322 | } | 322 | } |
323 | if (f.wait) { | 323 | if (f.wait) { |
324 | if(down_interruptible(&fibctx->wait_sem) < 0) { | 324 | if(down_interruptible(&fibctx->wait_sem) < 0) { |
325 | status = -EINTR; | 325 | status = -ERESTARTSYS; |
326 | } else { | 326 | } else { |
327 | /* Lock again and retry */ | 327 | /* Lock again and retry */ |
328 | spin_lock_irqsave(&dev->fib_lock, flags); | 328 | spin_lock_irqsave(&dev->fib_lock, flags); |
@@ -593,10 +593,10 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg) | |||
593 | u64 addr; | 593 | u64 addr; |
594 | void* p; | 594 | void* p; |
595 | if (upsg->sg[i].count > | 595 | if (upsg->sg[i].count > |
596 | (dev->adapter_info.options & | 596 | ((dev->adapter_info.options & |
597 | AAC_OPT_NEW_COMM) ? | 597 | AAC_OPT_NEW_COMM) ? |
598 | (dev->scsi_host_ptr->max_sectors << 9) : | 598 | (dev->scsi_host_ptr->max_sectors << 9) : |
599 | 65536) { | 599 | 65536)) { |
600 | rcode = -EINVAL; | 600 | rcode = -EINVAL; |
601 | goto cleanup; | 601 | goto cleanup; |
602 | } | 602 | } |
@@ -645,10 +645,10 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg) | |||
645 | u64 addr; | 645 | u64 addr; |
646 | void* p; | 646 | void* p; |
647 | if (usg->sg[i].count > | 647 | if (usg->sg[i].count > |
648 | (dev->adapter_info.options & | 648 | ((dev->adapter_info.options & |
649 | AAC_OPT_NEW_COMM) ? | 649 | AAC_OPT_NEW_COMM) ? |
650 | (dev->scsi_host_ptr->max_sectors << 9) : | 650 | (dev->scsi_host_ptr->max_sectors << 9) : |
651 | 65536) { | 651 | 65536)) { |
652 | rcode = -EINVAL; | 652 | rcode = -EINVAL; |
653 | goto cleanup; | 653 | goto cleanup; |
654 | } | 654 | } |
@@ -695,10 +695,10 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg) | |||
695 | uintptr_t addr; | 695 | uintptr_t addr; |
696 | void* p; | 696 | void* p; |
697 | if (usg->sg[i].count > | 697 | if (usg->sg[i].count > |
698 | (dev->adapter_info.options & | 698 | ((dev->adapter_info.options & |
699 | AAC_OPT_NEW_COMM) ? | 699 | AAC_OPT_NEW_COMM) ? |
700 | (dev->scsi_host_ptr->max_sectors << 9) : | 700 | (dev->scsi_host_ptr->max_sectors << 9) : |
701 | 65536) { | 701 | 65536)) { |
702 | rcode = -EINVAL; | 702 | rcode = -EINVAL; |
703 | goto cleanup; | 703 | goto cleanup; |
704 | } | 704 | } |
@@ -734,10 +734,10 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg) | |||
734 | dma_addr_t addr; | 734 | dma_addr_t addr; |
735 | void* p; | 735 | void* p; |
736 | if (upsg->sg[i].count > | 736 | if (upsg->sg[i].count > |
737 | (dev->adapter_info.options & | 737 | ((dev->adapter_info.options & |
738 | AAC_OPT_NEW_COMM) ? | 738 | AAC_OPT_NEW_COMM) ? |
739 | (dev->scsi_host_ptr->max_sectors << 9) : | 739 | (dev->scsi_host_ptr->max_sectors << 9) : |
740 | 65536) { | 740 | 65536)) { |
741 | rcode = -EINVAL; | 741 | rcode = -EINVAL; |
742 | goto cleanup; | 742 | goto cleanup; |
743 | } | 743 | } |
@@ -772,8 +772,8 @@ static int aac_send_raw_srb(struct aac_dev* dev, void __user * arg) | |||
772 | psg->count = cpu_to_le32(sg_indx+1); | 772 | psg->count = cpu_to_le32(sg_indx+1); |
773 | status = aac_fib_send(ScsiPortCommand, srbfib, actual_fibsize, FsaNormal, 1, 1, NULL, NULL); | 773 | status = aac_fib_send(ScsiPortCommand, srbfib, actual_fibsize, FsaNormal, 1, 1, NULL, NULL); |
774 | } | 774 | } |
775 | if (status == -EINTR) { | 775 | if (status == -ERESTARTSYS) { |
776 | rcode = -EINTR; | 776 | rcode = -ERESTARTSYS; |
777 | goto cleanup; | 777 | goto cleanup; |
778 | } | 778 | } |
779 | 779 | ||
@@ -810,7 +810,7 @@ cleanup: | |||
810 | for(i=0; i <= sg_indx; i++){ | 810 | for(i=0; i <= sg_indx; i++){ |
811 | kfree(sg_list[i]); | 811 | kfree(sg_list[i]); |
812 | } | 812 | } |
813 | if (rcode != -EINTR) { | 813 | if (rcode != -ERESTARTSYS) { |
814 | aac_fib_complete(srbfib); | 814 | aac_fib_complete(srbfib); |
815 | aac_fib_free(srbfib); | 815 | aac_fib_free(srbfib); |
816 | } | 816 | } |
@@ -848,7 +848,7 @@ int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg) | |||
848 | */ | 848 | */ |
849 | 849 | ||
850 | status = aac_dev_ioctl(dev, cmd, arg); | 850 | status = aac_dev_ioctl(dev, cmd, arg); |
851 | if(status != -ENOTTY) | 851 | if (status != -ENOTTY) |
852 | return status; | 852 | return status; |
853 | 853 | ||
854 | switch (cmd) { | 854 | switch (cmd) { |
diff --git a/drivers/scsi/aacraid/comminit.c b/drivers/scsi/aacraid/comminit.c index 666d5151d628..a7261486ccd4 100644 --- a/drivers/scsi/aacraid/comminit.c +++ b/drivers/scsi/aacraid/comminit.c | |||
@@ -194,7 +194,9 @@ int aac_send_shutdown(struct aac_dev * dev) | |||
194 | 194 | ||
195 | if (status >= 0) | 195 | if (status >= 0) |
196 | aac_fib_complete(fibctx); | 196 | aac_fib_complete(fibctx); |
197 | aac_fib_free(fibctx); | 197 | /* FIB should be freed only after getting the response from the F/W */ |
198 | if (status != -ERESTARTSYS) | ||
199 | aac_fib_free(fibctx); | ||
198 | return status; | 200 | return status; |
199 | } | 201 | } |
200 | 202 | ||
@@ -304,6 +306,8 @@ struct aac_dev *aac_init_adapter(struct aac_dev *dev) | |||
304 | /* | 306 | /* |
305 | * Check the preferred comm settings, defaults from template. | 307 | * Check the preferred comm settings, defaults from template. |
306 | */ | 308 | */ |
309 | dev->management_fib_count = 0; | ||
310 | spin_lock_init(&dev->manage_lock); | ||
307 | dev->max_fib_size = sizeof(struct hw_fib); | 311 | dev->max_fib_size = sizeof(struct hw_fib); |
308 | dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size | 312 | dev->sg_tablesize = host->sg_tablesize = (dev->max_fib_size |
309 | - sizeof(struct aac_fibhdr) | 313 | - sizeof(struct aac_fibhdr) |
diff --git a/drivers/scsi/aacraid/commsup.c b/drivers/scsi/aacraid/commsup.c index 956261f25181..94d2954d79ae 100644 --- a/drivers/scsi/aacraid/commsup.c +++ b/drivers/scsi/aacraid/commsup.c | |||
@@ -189,7 +189,14 @@ struct fib *aac_fib_alloc(struct aac_dev *dev) | |||
189 | 189 | ||
190 | void aac_fib_free(struct fib *fibptr) | 190 | void aac_fib_free(struct fib *fibptr) |
191 | { | 191 | { |
192 | unsigned long flags; | 192 | unsigned long flags, flagsv; |
193 | |||
194 | spin_lock_irqsave(&fibptr->event_lock, flagsv); | ||
195 | if (fibptr->done == 2) { | ||
196 | spin_unlock_irqrestore(&fibptr->event_lock, flagsv); | ||
197 | return; | ||
198 | } | ||
199 | spin_unlock_irqrestore(&fibptr->event_lock, flagsv); | ||
193 | 200 | ||
194 | spin_lock_irqsave(&fibptr->dev->fib_lock, flags); | 201 | spin_lock_irqsave(&fibptr->dev->fib_lock, flags); |
195 | if (unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) | 202 | if (unlikely(fibptr->flags & FIB_CONTEXT_FLAG_TIMED_OUT)) |
@@ -390,6 +397,8 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
390 | struct hw_fib * hw_fib = fibptr->hw_fib_va; | 397 | struct hw_fib * hw_fib = fibptr->hw_fib_va; |
391 | unsigned long flags = 0; | 398 | unsigned long flags = 0; |
392 | unsigned long qflags; | 399 | unsigned long qflags; |
400 | unsigned long mflags = 0; | ||
401 | |||
393 | 402 | ||
394 | if (!(hw_fib->header.XferState & cpu_to_le32(HostOwned))) | 403 | if (!(hw_fib->header.XferState & cpu_to_le32(HostOwned))) |
395 | return -EBUSY; | 404 | return -EBUSY; |
@@ -471,9 +480,31 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
471 | if (!dev->queues) | 480 | if (!dev->queues) |
472 | return -EBUSY; | 481 | return -EBUSY; |
473 | 482 | ||
474 | if(wait) | 483 | if (wait) { |
484 | |||
485 | spin_lock_irqsave(&dev->manage_lock, mflags); | ||
486 | if (dev->management_fib_count >= AAC_NUM_MGT_FIB) { | ||
487 | printk(KERN_INFO "No management Fibs Available:%d\n", | ||
488 | dev->management_fib_count); | ||
489 | spin_unlock_irqrestore(&dev->manage_lock, mflags); | ||
490 | return -EBUSY; | ||
491 | } | ||
492 | dev->management_fib_count++; | ||
493 | spin_unlock_irqrestore(&dev->manage_lock, mflags); | ||
475 | spin_lock_irqsave(&fibptr->event_lock, flags); | 494 | spin_lock_irqsave(&fibptr->event_lock, flags); |
476 | aac_adapter_deliver(fibptr); | 495 | } |
496 | |||
497 | if (aac_adapter_deliver(fibptr) != 0) { | ||
498 | printk(KERN_ERR "aac_fib_send: returned -EBUSY\n"); | ||
499 | if (wait) { | ||
500 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | ||
501 | spin_lock_irqsave(&dev->manage_lock, mflags); | ||
502 | dev->management_fib_count--; | ||
503 | spin_unlock_irqrestore(&dev->manage_lock, mflags); | ||
504 | } | ||
505 | return -EBUSY; | ||
506 | } | ||
507 | |||
477 | 508 | ||
478 | /* | 509 | /* |
479 | * If the caller wanted us to wait for response wait now. | 510 | * If the caller wanted us to wait for response wait now. |
@@ -516,14 +547,15 @@ int aac_fib_send(u16 command, struct fib *fibptr, unsigned long size, | |||
516 | udelay(5); | 547 | udelay(5); |
517 | } | 548 | } |
518 | } else if (down_interruptible(&fibptr->event_wait)) { | 549 | } else if (down_interruptible(&fibptr->event_wait)) { |
519 | fibptr->done = 2; | 550 | /* Do nothing ... satisfy |
520 | up(&fibptr->event_wait); | 551 | * down_interruptible must_check */ |
521 | } | 552 | } |
553 | |||
522 | spin_lock_irqsave(&fibptr->event_lock, flags); | 554 | spin_lock_irqsave(&fibptr->event_lock, flags); |
523 | if ((fibptr->done == 0) || (fibptr->done == 2)) { | 555 | if (fibptr->done == 0) { |
524 | fibptr->done = 2; /* Tell interrupt we aborted */ | 556 | fibptr->done = 2; /* Tell interrupt we aborted */ |
525 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | 557 | spin_unlock_irqrestore(&fibptr->event_lock, flags); |
526 | return -EINTR; | 558 | return -ERESTARTSYS; |
527 | } | 559 | } |
528 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | 560 | spin_unlock_irqrestore(&fibptr->event_lock, flags); |
529 | BUG_ON(fibptr->done == 0); | 561 | BUG_ON(fibptr->done == 0); |
@@ -689,6 +721,7 @@ int aac_fib_adapter_complete(struct fib *fibptr, unsigned short size) | |||
689 | 721 | ||
690 | int aac_fib_complete(struct fib *fibptr) | 722 | int aac_fib_complete(struct fib *fibptr) |
691 | { | 723 | { |
724 | unsigned long flags; | ||
692 | struct hw_fib * hw_fib = fibptr->hw_fib_va; | 725 | struct hw_fib * hw_fib = fibptr->hw_fib_va; |
693 | 726 | ||
694 | /* | 727 | /* |
@@ -709,6 +742,13 @@ int aac_fib_complete(struct fib *fibptr) | |||
709 | * command is complete that we had sent to the adapter and this | 742 | * command is complete that we had sent to the adapter and this |
710 | * cdb could be reused. | 743 | * cdb could be reused. |
711 | */ | 744 | */ |
745 | spin_lock_irqsave(&fibptr->event_lock, flags); | ||
746 | if (fibptr->done == 2) { | ||
747 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | ||
748 | return 0; | ||
749 | } | ||
750 | spin_unlock_irqrestore(&fibptr->event_lock, flags); | ||
751 | |||
712 | if((hw_fib->header.XferState & cpu_to_le32(SentFromHost)) && | 752 | if((hw_fib->header.XferState & cpu_to_le32(SentFromHost)) && |
713 | (hw_fib->header.XferState & cpu_to_le32(AdapterProcessed))) | 753 | (hw_fib->header.XferState & cpu_to_le32(AdapterProcessed))) |
714 | { | 754 | { |
@@ -1355,7 +1395,10 @@ int aac_reset_adapter(struct aac_dev * aac, int forced) | |||
1355 | 1395 | ||
1356 | if (status >= 0) | 1396 | if (status >= 0) |
1357 | aac_fib_complete(fibctx); | 1397 | aac_fib_complete(fibctx); |
1358 | aac_fib_free(fibctx); | 1398 | /* FIB should be freed only after getting |
1399 | * the response from the F/W */ | ||
1400 | if (status != -ERESTARTSYS) | ||
1401 | aac_fib_free(fibctx); | ||
1359 | } | 1402 | } |
1360 | } | 1403 | } |
1361 | 1404 | ||
@@ -1759,6 +1802,7 @@ int aac_command_thread(void *data) | |||
1759 | struct fib *fibptr; | 1802 | struct fib *fibptr; |
1760 | 1803 | ||
1761 | if ((fibptr = aac_fib_alloc(dev))) { | 1804 | if ((fibptr = aac_fib_alloc(dev))) { |
1805 | int status; | ||
1762 | __le32 *info; | 1806 | __le32 *info; |
1763 | 1807 | ||
1764 | aac_fib_init(fibptr); | 1808 | aac_fib_init(fibptr); |
@@ -1769,15 +1813,21 @@ int aac_command_thread(void *data) | |||
1769 | 1813 | ||
1770 | *info = cpu_to_le32(now.tv_sec); | 1814 | *info = cpu_to_le32(now.tv_sec); |
1771 | 1815 | ||
1772 | (void)aac_fib_send(SendHostTime, | 1816 | status = aac_fib_send(SendHostTime, |
1773 | fibptr, | 1817 | fibptr, |
1774 | sizeof(*info), | 1818 | sizeof(*info), |
1775 | FsaNormal, | 1819 | FsaNormal, |
1776 | 1, 1, | 1820 | 1, 1, |
1777 | NULL, | 1821 | NULL, |
1778 | NULL); | 1822 | NULL); |
1779 | aac_fib_complete(fibptr); | 1823 | /* Do not set XferState to zero unless |
1780 | aac_fib_free(fibptr); | 1824 | * receives a response from F/W */ |
1825 | if (status >= 0) | ||
1826 | aac_fib_complete(fibptr); | ||
1827 | /* FIB should be freed only after | ||
1828 | * getting the response from the F/W */ | ||
1829 | if (status != -ERESTARTSYS) | ||
1830 | aac_fib_free(fibptr); | ||
1781 | } | 1831 | } |
1782 | difference = (long)(unsigned)update_interval*HZ; | 1832 | difference = (long)(unsigned)update_interval*HZ; |
1783 | } else { | 1833 | } else { |
diff --git a/drivers/scsi/aacraid/dpcsup.c b/drivers/scsi/aacraid/dpcsup.c index abc9ef5d1b10..9c7408fe8c7d 100644 --- a/drivers/scsi/aacraid/dpcsup.c +++ b/drivers/scsi/aacraid/dpcsup.c | |||
@@ -57,9 +57,9 @@ unsigned int aac_response_normal(struct aac_queue * q) | |||
57 | struct hw_fib * hwfib; | 57 | struct hw_fib * hwfib; |
58 | struct fib * fib; | 58 | struct fib * fib; |
59 | int consumed = 0; | 59 | int consumed = 0; |
60 | unsigned long flags; | 60 | unsigned long flags, mflags; |
61 | 61 | ||
62 | spin_lock_irqsave(q->lock, flags); | 62 | spin_lock_irqsave(q->lock, flags); |
63 | /* | 63 | /* |
64 | * Keep pulling response QEs off the response queue and waking | 64 | * Keep pulling response QEs off the response queue and waking |
65 | * up the waiters until there are no more QEs. We then return | 65 | * up the waiters until there are no more QEs. We then return |
@@ -125,12 +125,21 @@ unsigned int aac_response_normal(struct aac_queue * q) | |||
125 | } else { | 125 | } else { |
126 | unsigned long flagv; | 126 | unsigned long flagv; |
127 | spin_lock_irqsave(&fib->event_lock, flagv); | 127 | spin_lock_irqsave(&fib->event_lock, flagv); |
128 | if (!fib->done) | 128 | if (!fib->done) { |
129 | fib->done = 1; | 129 | fib->done = 1; |
130 | up(&fib->event_wait); | 130 | up(&fib->event_wait); |
131 | } | ||
131 | spin_unlock_irqrestore(&fib->event_lock, flagv); | 132 | spin_unlock_irqrestore(&fib->event_lock, flagv); |
133 | |||
134 | spin_lock_irqsave(&dev->manage_lock, mflags); | ||
135 | dev->management_fib_count--; | ||
136 | spin_unlock_irqrestore(&dev->manage_lock, mflags); | ||
137 | |||
132 | FIB_COUNTER_INCREMENT(aac_config.NormalRecved); | 138 | FIB_COUNTER_INCREMENT(aac_config.NormalRecved); |
133 | if (fib->done == 2) { | 139 | if (fib->done == 2) { |
140 | spin_lock_irqsave(&fib->event_lock, flagv); | ||
141 | fib->done = 0; | ||
142 | spin_unlock_irqrestore(&fib->event_lock, flagv); | ||
134 | aac_fib_complete(fib); | 143 | aac_fib_complete(fib); |
135 | aac_fib_free(fib); | 144 | aac_fib_free(fib); |
136 | } | 145 | } |
@@ -232,6 +241,7 @@ unsigned int aac_command_normal(struct aac_queue *q) | |||
232 | 241 | ||
233 | unsigned int aac_intr_normal(struct aac_dev * dev, u32 index) | 242 | unsigned int aac_intr_normal(struct aac_dev * dev, u32 index) |
234 | { | 243 | { |
244 | unsigned long mflags; | ||
235 | dprintk((KERN_INFO "aac_intr_normal(%p,%x)\n", dev, index)); | 245 | dprintk((KERN_INFO "aac_intr_normal(%p,%x)\n", dev, index)); |
236 | if ((index & 0x00000002L)) { | 246 | if ((index & 0x00000002L)) { |
237 | struct hw_fib * hw_fib; | 247 | struct hw_fib * hw_fib; |
@@ -320,11 +330,25 @@ unsigned int aac_intr_normal(struct aac_dev * dev, u32 index) | |||
320 | unsigned long flagv; | 330 | unsigned long flagv; |
321 | dprintk((KERN_INFO "event_wait up\n")); | 331 | dprintk((KERN_INFO "event_wait up\n")); |
322 | spin_lock_irqsave(&fib->event_lock, flagv); | 332 | spin_lock_irqsave(&fib->event_lock, flagv); |
323 | if (!fib->done) | 333 | if (!fib->done) { |
324 | fib->done = 1; | 334 | fib->done = 1; |
325 | up(&fib->event_wait); | 335 | up(&fib->event_wait); |
336 | } | ||
326 | spin_unlock_irqrestore(&fib->event_lock, flagv); | 337 | spin_unlock_irqrestore(&fib->event_lock, flagv); |
338 | |||
339 | spin_lock_irqsave(&dev->manage_lock, mflags); | ||
340 | dev->management_fib_count--; | ||
341 | spin_unlock_irqrestore(&dev->manage_lock, mflags); | ||
342 | |||
327 | FIB_COUNTER_INCREMENT(aac_config.NormalRecved); | 343 | FIB_COUNTER_INCREMENT(aac_config.NormalRecved); |
344 | if (fib->done == 2) { | ||
345 | spin_lock_irqsave(&fib->event_lock, flagv); | ||
346 | fib->done = 0; | ||
347 | spin_unlock_irqrestore(&fib->event_lock, flagv); | ||
348 | aac_fib_complete(fib); | ||
349 | aac_fib_free(fib); | ||
350 | } | ||
351 | |||
328 | } | 352 | } |
329 | return 0; | 353 | return 0; |
330 | } | 354 | } |
diff --git a/drivers/scsi/aic7xxx/aic79xx_core.c b/drivers/scsi/aic7xxx/aic79xx_core.c index 4d419c155ce9..78971db5b60e 100644 --- a/drivers/scsi/aic7xxx/aic79xx_core.c +++ b/drivers/scsi/aic7xxx/aic79xx_core.c | |||
@@ -3171,13 +3171,16 @@ ahd_handle_nonpkt_busfree(struct ahd_softc *ahd) | |||
3171 | tinfo->curr.transport_version = 2; | 3171 | tinfo->curr.transport_version = 2; |
3172 | tinfo->goal.transport_version = 2; | 3172 | tinfo->goal.transport_version = 2; |
3173 | tinfo->goal.ppr_options = 0; | 3173 | tinfo->goal.ppr_options = 0; |
3174 | /* | 3174 | if (scb != NULL) { |
3175 | * Remove any SCBs in the waiting for selection | 3175 | /* |
3176 | * queue that may also be for this target so | 3176 | * Remove any SCBs in the waiting |
3177 | * that command ordering is preserved. | 3177 | * for selection queue that may |
3178 | */ | 3178 | * also be for this target so that |
3179 | ahd_freeze_devq(ahd, scb); | 3179 | * command ordering is preserved. |
3180 | ahd_qinfifo_requeue_tail(ahd, scb); | 3180 | */ |
3181 | ahd_freeze_devq(ahd, scb); | ||
3182 | ahd_qinfifo_requeue_tail(ahd, scb); | ||
3183 | } | ||
3181 | printerror = 0; | 3184 | printerror = 0; |
3182 | } | 3185 | } |
3183 | } else if (ahd_sent_msg(ahd, AHDMSG_EXT, MSG_EXT_WDTR, FALSE) | 3186 | } else if (ahd_sent_msg(ahd, AHDMSG_EXT, MSG_EXT_WDTR, FALSE) |
@@ -3194,13 +3197,16 @@ ahd_handle_nonpkt_busfree(struct ahd_softc *ahd) | |||
3194 | MSG_EXT_WDTR_BUS_8_BIT, | 3197 | MSG_EXT_WDTR_BUS_8_BIT, |
3195 | AHD_TRANS_CUR|AHD_TRANS_GOAL, | 3198 | AHD_TRANS_CUR|AHD_TRANS_GOAL, |
3196 | /*paused*/TRUE); | 3199 | /*paused*/TRUE); |
3197 | /* | 3200 | if (scb != NULL) { |
3198 | * Remove any SCBs in the waiting for selection | 3201 | /* |
3199 | * queue that may also be for this target so that | 3202 | * Remove any SCBs in the waiting for |
3200 | * command ordering is preserved. | 3203 | * selection queue that may also be for |
3201 | */ | 3204 | * this target so that command ordering |
3202 | ahd_freeze_devq(ahd, scb); | 3205 | * is preserved. |
3203 | ahd_qinfifo_requeue_tail(ahd, scb); | 3206 | */ |
3207 | ahd_freeze_devq(ahd, scb); | ||
3208 | ahd_qinfifo_requeue_tail(ahd, scb); | ||
3209 | } | ||
3204 | printerror = 0; | 3210 | printerror = 0; |
3205 | } else if (ahd_sent_msg(ahd, AHDMSG_EXT, MSG_EXT_SDTR, FALSE) | 3211 | } else if (ahd_sent_msg(ahd, AHDMSG_EXT, MSG_EXT_SDTR, FALSE) |
3206 | && ppr_busfree == 0) { | 3212 | && ppr_busfree == 0) { |
@@ -3217,13 +3223,16 @@ ahd_handle_nonpkt_busfree(struct ahd_softc *ahd) | |||
3217 | /*ppr_options*/0, | 3223 | /*ppr_options*/0, |
3218 | AHD_TRANS_CUR|AHD_TRANS_GOAL, | 3224 | AHD_TRANS_CUR|AHD_TRANS_GOAL, |
3219 | /*paused*/TRUE); | 3225 | /*paused*/TRUE); |
3220 | /* | 3226 | if (scb != NULL) { |
3221 | * Remove any SCBs in the waiting for selection | 3227 | /* |
3222 | * queue that may also be for this target so that | 3228 | * Remove any SCBs in the waiting for |
3223 | * command ordering is preserved. | 3229 | * selection queue that may also be for |
3224 | */ | 3230 | * this target so that command ordering |
3225 | ahd_freeze_devq(ahd, scb); | 3231 | * is preserved. |
3226 | ahd_qinfifo_requeue_tail(ahd, scb); | 3232 | */ |
3233 | ahd_freeze_devq(ahd, scb); | ||
3234 | ahd_qinfifo_requeue_tail(ahd, scb); | ||
3235 | } | ||
3227 | printerror = 0; | 3236 | printerror = 0; |
3228 | } else if ((ahd->msg_flags & MSG_FLAG_EXPECT_IDE_BUSFREE) != 0 | 3237 | } else if ((ahd->msg_flags & MSG_FLAG_EXPECT_IDE_BUSFREE) != 0 |
3229 | && ahd_sent_msg(ahd, AHDMSG_1B, | 3238 | && ahd_sent_msg(ahd, AHDMSG_1B, |
@@ -3251,7 +3260,7 @@ ahd_handle_nonpkt_busfree(struct ahd_softc *ahd) | |||
3251 | * the message phases. We check it last in case we | 3260 | * the message phases. We check it last in case we |
3252 | * had to send some other message that caused a busfree. | 3261 | * had to send some other message that caused a busfree. |
3253 | */ | 3262 | */ |
3254 | if (printerror != 0 | 3263 | if (scb != NULL && printerror != 0 |
3255 | && (lastphase == P_MESGIN || lastphase == P_MESGOUT) | 3264 | && (lastphase == P_MESGIN || lastphase == P_MESGOUT) |
3256 | && ((ahd->msg_flags & MSG_FLAG_EXPECT_PPR_BUSFREE) != 0)) { | 3265 | && ((ahd->msg_flags & MSG_FLAG_EXPECT_PPR_BUSFREE) != 0)) { |
3257 | 3266 | ||
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c index 2445e399fd60..2445e399fd60 100755..100644 --- a/drivers/scsi/lpfc/lpfc_hbadisc.c +++ b/drivers/scsi/lpfc/lpfc_hbadisc.c | |||
diff --git a/drivers/scsi/lpfc/lpfc_hw4.h b/drivers/scsi/lpfc/lpfc_hw4.h index 8a2a1c5935c6..8a2a1c5935c6 100755..100644 --- a/drivers/scsi/lpfc/lpfc_hw4.h +++ b/drivers/scsi/lpfc/lpfc_hw4.h | |||
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index 608e675f68c8..1263d9796e89 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -1586,8 +1586,7 @@ typedef struct fc_port { | |||
1586 | */ | 1586 | */ |
1587 | #define FCF_FABRIC_DEVICE BIT_0 | 1587 | #define FCF_FABRIC_DEVICE BIT_0 |
1588 | #define FCF_LOGIN_NEEDED BIT_1 | 1588 | #define FCF_LOGIN_NEEDED BIT_1 |
1589 | #define FCF_TAPE_PRESENT BIT_2 | 1589 | #define FCF_FCP2_DEVICE BIT_2 |
1590 | #define FCF_FCP2_DEVICE BIT_3 | ||
1591 | 1590 | ||
1592 | /* No loop ID flag. */ | 1591 | /* No loop ID flag. */ |
1593 | #define FC_NO_LOOP_ID 0x1000 | 1592 | #define FC_NO_LOOP_ID 0x1000 |
diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h index f61fb8d01330..8bc6f53691e9 100644 --- a/drivers/scsi/qla2xxx/qla_gbl.h +++ b/drivers/scsi/qla2xxx/qla_gbl.h | |||
@@ -453,6 +453,5 @@ extern void qla24xx_wrt_req_reg(struct qla_hw_data *, uint16_t, uint16_t); | |||
453 | extern void qla25xx_wrt_req_reg(struct qla_hw_data *, uint16_t, uint16_t); | 453 | extern void qla25xx_wrt_req_reg(struct qla_hw_data *, uint16_t, uint16_t); |
454 | extern void qla25xx_wrt_rsp_reg(struct qla_hw_data *, uint16_t, uint16_t); | 454 | extern void qla25xx_wrt_rsp_reg(struct qla_hw_data *, uint16_t, uint16_t); |
455 | extern void qla24xx_wrt_rsp_reg(struct qla_hw_data *, uint16_t, uint16_t); | 455 | extern void qla24xx_wrt_rsp_reg(struct qla_hw_data *, uint16_t, uint16_t); |
456 | extern struct scsi_qla_host * qla25xx_get_host(struct rsp_que *); | ||
457 | 456 | ||
458 | #endif /* _QLA_GBL_H */ | 457 | #endif /* _QLA_GBL_H */ |
diff --git a/drivers/scsi/qla2xxx/qla_init.c b/drivers/scsi/qla2xxx/qla_init.c index b4a0eac8f96d..3f8e8495b743 100644 --- a/drivers/scsi/qla2xxx/qla_init.c +++ b/drivers/scsi/qla2xxx/qla_init.c | |||
@@ -205,7 +205,7 @@ qla2x00_async_login_done(struct scsi_qla_host *vha, fc_port_t *fcport, | |||
205 | 205 | ||
206 | switch (data[0]) { | 206 | switch (data[0]) { |
207 | case MBS_COMMAND_COMPLETE: | 207 | case MBS_COMMAND_COMPLETE: |
208 | if (fcport->flags & FCF_TAPE_PRESENT) | 208 | if (fcport->flags & FCF_FCP2_DEVICE) |
209 | opts |= BIT_1; | 209 | opts |= BIT_1; |
210 | rval = qla2x00_get_port_database(vha, fcport, opts); | 210 | rval = qla2x00_get_port_database(vha, fcport, opts); |
211 | if (rval != QLA_SUCCESS) | 211 | if (rval != QLA_SUCCESS) |
@@ -2726,7 +2726,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha) | |||
2726 | 2726 | ||
2727 | /* | 2727 | /* |
2728 | * Logout all previous fabric devices marked lost, except | 2728 | * Logout all previous fabric devices marked lost, except |
2729 | * tape devices. | 2729 | * FCP2 devices. |
2730 | */ | 2730 | */ |
2731 | list_for_each_entry(fcport, &vha->vp_fcports, list) { | 2731 | list_for_each_entry(fcport, &vha->vp_fcports, list) { |
2732 | if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) | 2732 | if (test_bit(LOOP_RESYNC_NEEDED, &vha->dpc_flags)) |
@@ -2739,7 +2739,7 @@ qla2x00_configure_fabric(scsi_qla_host_t *vha) | |||
2739 | qla2x00_mark_device_lost(vha, fcport, | 2739 | qla2x00_mark_device_lost(vha, fcport, |
2740 | ql2xplogiabsentdevice, 0); | 2740 | ql2xplogiabsentdevice, 0); |
2741 | if (fcport->loop_id != FC_NO_LOOP_ID && | 2741 | if (fcport->loop_id != FC_NO_LOOP_ID && |
2742 | (fcport->flags & FCF_TAPE_PRESENT) == 0 && | 2742 | (fcport->flags & FCF_FCP2_DEVICE) == 0 && |
2743 | fcport->port_type != FCT_INITIATOR && | 2743 | fcport->port_type != FCT_INITIATOR && |
2744 | fcport->port_type != FCT_BROADCAST) { | 2744 | fcport->port_type != FCT_BROADCAST) { |
2745 | ha->isp_ops->fabric_logout(vha, | 2745 | ha->isp_ops->fabric_logout(vha, |
@@ -3018,7 +3018,7 @@ qla2x00_find_all_fabric_devs(scsi_qla_host_t *vha, | |||
3018 | fcport->d_id.b24 = new_fcport->d_id.b24; | 3018 | fcport->d_id.b24 = new_fcport->d_id.b24; |
3019 | fcport->flags |= FCF_LOGIN_NEEDED; | 3019 | fcport->flags |= FCF_LOGIN_NEEDED; |
3020 | if (fcport->loop_id != FC_NO_LOOP_ID && | 3020 | if (fcport->loop_id != FC_NO_LOOP_ID && |
3021 | (fcport->flags & FCF_TAPE_PRESENT) == 0 && | 3021 | (fcport->flags & FCF_FCP2_DEVICE) == 0 && |
3022 | fcport->port_type != FCT_INITIATOR && | 3022 | fcport->port_type != FCT_INITIATOR && |
3023 | fcport->port_type != FCT_BROADCAST) { | 3023 | fcport->port_type != FCT_BROADCAST) { |
3024 | ha->isp_ops->fabric_logout(vha, fcport->loop_id, | 3024 | ha->isp_ops->fabric_logout(vha, fcport->loop_id, |
@@ -3272,9 +3272,9 @@ qla2x00_fabric_dev_login(scsi_qla_host_t *vha, fc_port_t *fcport, | |||
3272 | 3272 | ||
3273 | rval = qla2x00_fabric_login(vha, fcport, next_loopid); | 3273 | rval = qla2x00_fabric_login(vha, fcport, next_loopid); |
3274 | if (rval == QLA_SUCCESS) { | 3274 | if (rval == QLA_SUCCESS) { |
3275 | /* Send an ADISC to tape devices.*/ | 3275 | /* Send an ADISC to FCP2 devices.*/ |
3276 | opts = 0; | 3276 | opts = 0; |
3277 | if (fcport->flags & FCF_TAPE_PRESENT) | 3277 | if (fcport->flags & FCF_FCP2_DEVICE) |
3278 | opts |= BIT_1; | 3278 | opts |= BIT_1; |
3279 | rval = qla2x00_get_port_database(vha, fcport, opts); | 3279 | rval = qla2x00_get_port_database(vha, fcport, opts); |
3280 | if (rval != QLA_SUCCESS) { | 3280 | if (rval != QLA_SUCCESS) { |
diff --git a/drivers/scsi/qla2xxx/qla_isr.c b/drivers/scsi/qla2xxx/qla_isr.c index ffd0efdff40e..6fc63b98818c 100644 --- a/drivers/scsi/qla2xxx/qla_isr.c +++ b/drivers/scsi/qla2xxx/qla_isr.c | |||
@@ -1917,6 +1917,7 @@ qla24xx_msix_rsp_q(int irq, void *dev_id) | |||
1917 | struct rsp_que *rsp; | 1917 | struct rsp_que *rsp; |
1918 | struct device_reg_24xx __iomem *reg; | 1918 | struct device_reg_24xx __iomem *reg; |
1919 | struct scsi_qla_host *vha; | 1919 | struct scsi_qla_host *vha; |
1920 | unsigned long flags; | ||
1920 | 1921 | ||
1921 | rsp = (struct rsp_que *) dev_id; | 1922 | rsp = (struct rsp_que *) dev_id; |
1922 | if (!rsp) { | 1923 | if (!rsp) { |
@@ -1927,15 +1928,15 @@ qla24xx_msix_rsp_q(int irq, void *dev_id) | |||
1927 | ha = rsp->hw; | 1928 | ha = rsp->hw; |
1928 | reg = &ha->iobase->isp24; | 1929 | reg = &ha->iobase->isp24; |
1929 | 1930 | ||
1930 | spin_lock_irq(&ha->hardware_lock); | 1931 | spin_lock_irqsave(&ha->hardware_lock, flags); |
1931 | 1932 | ||
1932 | vha = qla25xx_get_host(rsp); | 1933 | vha = pci_get_drvdata(ha->pdev); |
1933 | qla24xx_process_response_queue(vha, rsp); | 1934 | qla24xx_process_response_queue(vha, rsp); |
1934 | if (!ha->flags.disable_msix_handshake) { | 1935 | if (!ha->flags.disable_msix_handshake) { |
1935 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); | 1936 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); |
1936 | RD_REG_DWORD_RELAXED(®->hccr); | 1937 | RD_REG_DWORD_RELAXED(®->hccr); |
1937 | } | 1938 | } |
1938 | spin_unlock_irq(&ha->hardware_lock); | 1939 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
1939 | 1940 | ||
1940 | return IRQ_HANDLED; | 1941 | return IRQ_HANDLED; |
1941 | } | 1942 | } |
@@ -1946,6 +1947,7 @@ qla25xx_msix_rsp_q(int irq, void *dev_id) | |||
1946 | struct qla_hw_data *ha; | 1947 | struct qla_hw_data *ha; |
1947 | struct rsp_que *rsp; | 1948 | struct rsp_que *rsp; |
1948 | struct device_reg_24xx __iomem *reg; | 1949 | struct device_reg_24xx __iomem *reg; |
1950 | unsigned long flags; | ||
1949 | 1951 | ||
1950 | rsp = (struct rsp_que *) dev_id; | 1952 | rsp = (struct rsp_que *) dev_id; |
1951 | if (!rsp) { | 1953 | if (!rsp) { |
@@ -1958,10 +1960,10 @@ qla25xx_msix_rsp_q(int irq, void *dev_id) | |||
1958 | /* Clear the interrupt, if enabled, for this response queue */ | 1960 | /* Clear the interrupt, if enabled, for this response queue */ |
1959 | if (rsp->options & ~BIT_6) { | 1961 | if (rsp->options & ~BIT_6) { |
1960 | reg = &ha->iobase->isp24; | 1962 | reg = &ha->iobase->isp24; |
1961 | spin_lock_irq(&ha->hardware_lock); | 1963 | spin_lock_irqsave(&ha->hardware_lock, flags); |
1962 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); | 1964 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); |
1963 | RD_REG_DWORD_RELAXED(®->hccr); | 1965 | RD_REG_DWORD_RELAXED(®->hccr); |
1964 | spin_unlock_irq(&ha->hardware_lock); | 1966 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
1965 | } | 1967 | } |
1966 | queue_work_on((int) (rsp->id - 1), ha->wq, &rsp->q_work); | 1968 | queue_work_on((int) (rsp->id - 1), ha->wq, &rsp->q_work); |
1967 | 1969 | ||
@@ -1979,6 +1981,7 @@ qla24xx_msix_default(int irq, void *dev_id) | |||
1979 | uint32_t stat; | 1981 | uint32_t stat; |
1980 | uint32_t hccr; | 1982 | uint32_t hccr; |
1981 | uint16_t mb[4]; | 1983 | uint16_t mb[4]; |
1984 | unsigned long flags; | ||
1982 | 1985 | ||
1983 | rsp = (struct rsp_que *) dev_id; | 1986 | rsp = (struct rsp_que *) dev_id; |
1984 | if (!rsp) { | 1987 | if (!rsp) { |
@@ -1990,7 +1993,7 @@ qla24xx_msix_default(int irq, void *dev_id) | |||
1990 | reg = &ha->iobase->isp24; | 1993 | reg = &ha->iobase->isp24; |
1991 | status = 0; | 1994 | status = 0; |
1992 | 1995 | ||
1993 | spin_lock_irq(&ha->hardware_lock); | 1996 | spin_lock_irqsave(&ha->hardware_lock, flags); |
1994 | vha = pci_get_drvdata(ha->pdev); | 1997 | vha = pci_get_drvdata(ha->pdev); |
1995 | do { | 1998 | do { |
1996 | stat = RD_REG_DWORD(®->host_status); | 1999 | stat = RD_REG_DWORD(®->host_status); |
@@ -2039,7 +2042,7 @@ qla24xx_msix_default(int irq, void *dev_id) | |||
2039 | } | 2042 | } |
2040 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); | 2043 | WRT_REG_DWORD(®->hccr, HCCRX_CLR_RISC_INT); |
2041 | } while (0); | 2044 | } while (0); |
2042 | spin_unlock_irq(&ha->hardware_lock); | 2045 | spin_unlock_irqrestore(&ha->hardware_lock, flags); |
2043 | 2046 | ||
2044 | if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) && | 2047 | if (test_bit(MBX_INTR_WAIT, &ha->mbx_cmd_flags) && |
2045 | (status & MBX_INTERRUPT) && ha->flags.mbox_int) { | 2048 | (status & MBX_INTERRUPT) && ha->flags.mbox_int) { |
@@ -2277,30 +2280,3 @@ int qla25xx_request_irq(struct rsp_que *rsp) | |||
2277 | msix->rsp = rsp; | 2280 | msix->rsp = rsp; |
2278 | return ret; | 2281 | return ret; |
2279 | } | 2282 | } |
2280 | |||
2281 | struct scsi_qla_host * | ||
2282 | qla25xx_get_host(struct rsp_que *rsp) | ||
2283 | { | ||
2284 | srb_t *sp; | ||
2285 | struct qla_hw_data *ha = rsp->hw; | ||
2286 | struct scsi_qla_host *vha = NULL; | ||
2287 | struct sts_entry_24xx *pkt; | ||
2288 | struct req_que *req; | ||
2289 | uint16_t que; | ||
2290 | uint32_t handle; | ||
2291 | |||
2292 | pkt = (struct sts_entry_24xx *) rsp->ring_ptr; | ||
2293 | que = MSW(pkt->handle); | ||
2294 | handle = (uint32_t) LSW(pkt->handle); | ||
2295 | req = ha->req_q_map[que]; | ||
2296 | if (handle < MAX_OUTSTANDING_COMMANDS) { | ||
2297 | sp = req->outstanding_cmds[handle]; | ||
2298 | if (sp) | ||
2299 | return sp->fcport->vha; | ||
2300 | else | ||
2301 | goto base_que; | ||
2302 | } | ||
2303 | base_que: | ||
2304 | vha = pci_get_drvdata(ha->pdev); | ||
2305 | return vha; | ||
2306 | } | ||
diff --git a/drivers/scsi/qla2xxx/qla_mid.c b/drivers/scsi/qla2xxx/qla_mid.c index b901aa267e7d..ff17dee28613 100644 --- a/drivers/scsi/qla2xxx/qla_mid.c +++ b/drivers/scsi/qla2xxx/qla_mid.c | |||
@@ -636,13 +636,15 @@ failed: | |||
636 | 636 | ||
637 | static void qla_do_work(struct work_struct *work) | 637 | static void qla_do_work(struct work_struct *work) |
638 | { | 638 | { |
639 | unsigned long flags; | ||
639 | struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); | 640 | struct rsp_que *rsp = container_of(work, struct rsp_que, q_work); |
640 | struct scsi_qla_host *vha; | 641 | struct scsi_qla_host *vha; |
642 | struct qla_hw_data *ha = rsp->hw; | ||
641 | 643 | ||
642 | spin_lock_irq(&rsp->hw->hardware_lock); | 644 | spin_lock_irqsave(&rsp->hw->hardware_lock, flags); |
643 | vha = qla25xx_get_host(rsp); | 645 | vha = pci_get_drvdata(ha->pdev); |
644 | qla24xx_process_response_queue(vha, rsp); | 646 | qla24xx_process_response_queue(vha, rsp); |
645 | spin_unlock_irq(&rsp->hw->hardware_lock); | 647 | spin_unlock_irqrestore(&rsp->hw->hardware_lock, flags); |
646 | } | 648 | } |
647 | 649 | ||
648 | /* create response queue */ | 650 | /* create response queue */ |
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c index 209f50e788a1..8529eb1f3cd4 100644 --- a/drivers/scsi/qla2xxx/qla_os.c +++ b/drivers/scsi/qla2xxx/qla_os.c | |||
@@ -1188,7 +1188,6 @@ qla2xxx_slave_configure(struct scsi_device *sdev) | |||
1188 | scsi_qla_host_t *vha = shost_priv(sdev->host); | 1188 | scsi_qla_host_t *vha = shost_priv(sdev->host); |
1189 | struct qla_hw_data *ha = vha->hw; | 1189 | struct qla_hw_data *ha = vha->hw; |
1190 | struct fc_rport *rport = starget_to_rport(sdev->sdev_target); | 1190 | struct fc_rport *rport = starget_to_rport(sdev->sdev_target); |
1191 | fc_port_t *fcport = *(fc_port_t **)rport->dd_data; | ||
1192 | struct req_que *req = vha->req; | 1191 | struct req_que *req = vha->req; |
1193 | 1192 | ||
1194 | if (sdev->tagged_supported) | 1193 | if (sdev->tagged_supported) |
@@ -1197,8 +1196,6 @@ qla2xxx_slave_configure(struct scsi_device *sdev) | |||
1197 | scsi_deactivate_tcq(sdev, req->max_q_depth); | 1196 | scsi_deactivate_tcq(sdev, req->max_q_depth); |
1198 | 1197 | ||
1199 | rport->dev_loss_tmo = ha->port_down_retry_count; | 1198 | rport->dev_loss_tmo = ha->port_down_retry_count; |
1200 | if (sdev->type == TYPE_TAPE) | ||
1201 | fcport->flags |= FCF_TAPE_PRESENT; | ||
1202 | 1199 | ||
1203 | return 0; | 1200 | return 0; |
1204 | } | 1201 | } |
@@ -2805,7 +2802,7 @@ void qla2x00_relogin(struct scsi_qla_host *vha) | |||
2805 | 2802 | ||
2806 | fcport->login_retry--; | 2803 | fcport->login_retry--; |
2807 | if (fcport->flags & FCF_FABRIC_DEVICE) { | 2804 | if (fcport->flags & FCF_FABRIC_DEVICE) { |
2808 | if (fcport->flags & FCF_TAPE_PRESENT) | 2805 | if (fcport->flags & FCF_FCP2_DEVICE) |
2809 | ha->isp_ops->fabric_logout(vha, | 2806 | ha->isp_ops->fabric_logout(vha, |
2810 | fcport->loop_id, | 2807 | fcport->loop_id, |
2811 | fcport->d_id.b.domain, | 2808 | fcport->d_id.b.domain, |
@@ -3141,7 +3138,10 @@ qla2x00_timer(scsi_qla_host_t *vha) | |||
3141 | if (!IS_QLA2100(ha) && vha->link_down_timeout) | 3138 | if (!IS_QLA2100(ha) && vha->link_down_timeout) |
3142 | atomic_set(&vha->loop_state, LOOP_DEAD); | 3139 | atomic_set(&vha->loop_state, LOOP_DEAD); |
3143 | 3140 | ||
3144 | /* Schedule an ISP abort to return any tape commands. */ | 3141 | /* |
3142 | * Schedule an ISP abort to return any FCP2-device | ||
3143 | * commands. | ||
3144 | */ | ||
3145 | /* NPIV - scan physical port only */ | 3145 | /* NPIV - scan physical port only */ |
3146 | if (!vha->vp_idx) { | 3146 | if (!vha->vp_idx) { |
3147 | spin_lock_irqsave(&ha->hardware_lock, | 3147 | spin_lock_irqsave(&ha->hardware_lock, |
@@ -3158,7 +3158,7 @@ qla2x00_timer(scsi_qla_host_t *vha) | |||
3158 | if (sp->ctx) | 3158 | if (sp->ctx) |
3159 | continue; | 3159 | continue; |
3160 | sfcp = sp->fcport; | 3160 | sfcp = sp->fcport; |
3161 | if (!(sfcp->flags & FCF_TAPE_PRESENT)) | 3161 | if (!(sfcp->flags & FCF_FCP2_DEVICE)) |
3162 | continue; | 3162 | continue; |
3163 | 3163 | ||
3164 | set_bit(ISP_ABORT_NEEDED, | 3164 | set_bit(ISP_ABORT_NEEDED, |
diff --git a/drivers/scsi/qla2xxx/qla_sup.c b/drivers/scsi/qla2xxx/qla_sup.c index 010e69b29afe..371dc895972a 100644 --- a/drivers/scsi/qla2xxx/qla_sup.c +++ b/drivers/scsi/qla2xxx/qla_sup.c | |||
@@ -2292,11 +2292,14 @@ qla25xx_read_optrom_data(struct scsi_qla_host *vha, uint8_t *buf, | |||
2292 | uint32_t faddr, left, burst; | 2292 | uint32_t faddr, left, burst; |
2293 | struct qla_hw_data *ha = vha->hw; | 2293 | struct qla_hw_data *ha = vha->hw; |
2294 | 2294 | ||
2295 | if (IS_QLA25XX(ha) || IS_QLA81XX(ha)) | ||
2296 | goto try_fast; | ||
2295 | if (offset & 0xfff) | 2297 | if (offset & 0xfff) |
2296 | goto slow_read; | 2298 | goto slow_read; |
2297 | if (length < OPTROM_BURST_SIZE) | 2299 | if (length < OPTROM_BURST_SIZE) |
2298 | goto slow_read; | 2300 | goto slow_read; |
2299 | 2301 | ||
2302 | try_fast: | ||
2300 | optrom = dma_alloc_coherent(&ha->pdev->dev, OPTROM_BURST_SIZE, | 2303 | optrom = dma_alloc_coherent(&ha->pdev->dev, OPTROM_BURST_SIZE, |
2301 | &optrom_dma, GFP_KERNEL); | 2304 | &optrom_dma, GFP_KERNEL); |
2302 | if (!optrom) { | 2305 | if (!optrom) { |
diff --git a/drivers/scsi/qla2xxx/qla_version.h b/drivers/scsi/qla2xxx/qla_version.h index a65dd95507c6..ed36279a33c1 100644 --- a/drivers/scsi/qla2xxx/qla_version.h +++ b/drivers/scsi/qla2xxx/qla_version.h | |||
@@ -7,7 +7,7 @@ | |||
7 | /* | 7 | /* |
8 | * Driver version | 8 | * Driver version |
9 | */ | 9 | */ |
10 | #define QLA2XXX_VERSION "8.03.01-k9" | 10 | #define QLA2XXX_VERSION "8.03.01-k10" |
11 | 11 | ||
12 | #define QLA_DRIVER_MAJOR_VER 8 | 12 | #define QLA_DRIVER_MAJOR_VER 8 |
13 | #define QLA_DRIVER_MINOR_VER 3 | 13 | #define QLA_DRIVER_MINOR_VER 3 |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index d8927681ec88..c6642423cc67 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -749,9 +749,9 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
749 | */ | 749 | */ |
750 | req->next_rq->resid_len = scsi_in(cmd)->resid; | 750 | req->next_rq->resid_len = scsi_in(cmd)->resid; |
751 | 751 | ||
752 | scsi_release_buffers(cmd); | ||
752 | blk_end_request_all(req, 0); | 753 | blk_end_request_all(req, 0); |
753 | 754 | ||
754 | scsi_release_buffers(cmd); | ||
755 | scsi_next_command(cmd); | 755 | scsi_next_command(cmd); |
756 | return; | 756 | return; |
757 | } | 757 | } |
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index ddfcecd5099f..653f22a8deb9 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
@@ -3527,7 +3527,10 @@ fc_bsg_job_timeout(struct request *req) | |||
3527 | if (!done && i->f->bsg_timeout) { | 3527 | if (!done && i->f->bsg_timeout) { |
3528 | /* call LLDD to abort the i/o as it has timed out */ | 3528 | /* call LLDD to abort the i/o as it has timed out */ |
3529 | err = i->f->bsg_timeout(job); | 3529 | err = i->f->bsg_timeout(job); |
3530 | if (err) | 3530 | if (err == -EAGAIN) { |
3531 | job->ref_cnt--; | ||
3532 | return BLK_EH_RESET_TIMER; | ||
3533 | } else if (err) | ||
3531 | printk(KERN_ERR "ERROR: FC BSG request timeout - LLD " | 3534 | printk(KERN_ERR "ERROR: FC BSG request timeout - LLD " |
3532 | "abort failed with status %d\n", err); | 3535 | "abort failed with status %d\n", err); |
3533 | } | 3536 | } |
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index c3e37c8e7e26..e9b15c3746fa 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -83,6 +83,9 @@ static unsigned int skip_txen_test; /* force skip of txen test at init time */ | |||
83 | 83 | ||
84 | #define PASS_LIMIT 256 | 84 | #define PASS_LIMIT 256 |
85 | 85 | ||
86 | #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) | ||
87 | |||
88 | |||
86 | /* | 89 | /* |
87 | * We default to IRQ0 for the "no irq" hack. Some | 90 | * We default to IRQ0 for the "no irq" hack. Some |
88 | * machine types want others as well - they're free | 91 | * machine types want others as well - they're free |
@@ -1792,7 +1795,7 @@ static unsigned int serial8250_tx_empty(struct uart_port *port) | |||
1792 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; | 1795 | up->lsr_saved_flags |= lsr & LSR_SAVE_FLAGS; |
1793 | spin_unlock_irqrestore(&up->port.lock, flags); | 1796 | spin_unlock_irqrestore(&up->port.lock, flags); |
1794 | 1797 | ||
1795 | return lsr & UART_LSR_TEMT ? TIOCSER_TEMT : 0; | 1798 | return (lsr & BOTH_EMPTY) == BOTH_EMPTY ? TIOCSER_TEMT : 0; |
1796 | } | 1799 | } |
1797 | 1800 | ||
1798 | static unsigned int serial8250_get_mctrl(struct uart_port *port) | 1801 | static unsigned int serial8250_get_mctrl(struct uart_port *port) |
@@ -1850,8 +1853,6 @@ static void serial8250_break_ctl(struct uart_port *port, int break_state) | |||
1850 | spin_unlock_irqrestore(&up->port.lock, flags); | 1853 | spin_unlock_irqrestore(&up->port.lock, flags); |
1851 | } | 1854 | } |
1852 | 1855 | ||
1853 | #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE) | ||
1854 | |||
1855 | /* | 1856 | /* |
1856 | * Wait for transmitter & holding register to empty | 1857 | * Wait for transmitter & holding register to empty |
1857 | */ | 1858 | */ |
diff --git a/drivers/serial/uartlite.c b/drivers/serial/uartlite.c index 377f2712289e..ab2ab3c81834 100644 --- a/drivers/serial/uartlite.c +++ b/drivers/serial/uartlite.c | |||
@@ -394,7 +394,7 @@ static void ulite_console_write(struct console *co, const char *s, | |||
394 | spin_unlock_irqrestore(&port->lock, flags); | 394 | spin_unlock_irqrestore(&port->lock, flags); |
395 | } | 395 | } |
396 | 396 | ||
397 | static int __init ulite_console_setup(struct console *co, char *options) | 397 | static int __devinit ulite_console_setup(struct console *co, char *options) |
398 | { | 398 | { |
399 | struct uart_port *port; | 399 | struct uart_port *port; |
400 | int baud = 9600; | 400 | int baud = 9600; |
diff --git a/drivers/spi/spi_sh_msiof.c b/drivers/spi/spi_sh_msiof.c index 51e5e1dfa6e5..30973ec16a93 100644 --- a/drivers/spi/spi_sh_msiof.c +++ b/drivers/spi/spi_sh_msiof.c | |||
@@ -173,15 +173,12 @@ static void sh_msiof_spi_set_pin_regs(struct sh_msiof_spi_priv *p, | |||
173 | int edge; | 173 | int edge; |
174 | 174 | ||
175 | /* | 175 | /* |
176 | * CPOL CPHA TSCKIZ RSCKIZ TEDG REDG(!) | 176 | * CPOL CPHA TSCKIZ RSCKIZ TEDG REDG |
177 | * 0 0 10 10 1 0 | 177 | * 0 0 10 10 1 1 |
178 | * 0 1 10 10 0 1 | 178 | * 0 1 10 10 0 0 |
179 | * 1 0 11 11 0 1 | 179 | * 1 0 11 11 0 0 |
180 | * 1 1 11 11 1 0 | 180 | * 1 1 11 11 1 1 |
181 | * | ||
182 | * (!) Note: REDG is inverted recommended data sheet setting | ||
183 | */ | 181 | */ |
184 | |||
185 | sh_msiof_write(p, FCTR, 0); | 182 | sh_msiof_write(p, FCTR, 0); |
186 | sh_msiof_write(p, TMDR1, 0xe2000005 | (lsb_first << 24)); | 183 | sh_msiof_write(p, TMDR1, 0xe2000005 | (lsb_first << 24)); |
187 | sh_msiof_write(p, RMDR1, 0x22000005 | (lsb_first << 24)); | 184 | sh_msiof_write(p, RMDR1, 0x22000005 | (lsb_first << 24)); |
@@ -193,7 +190,7 @@ static void sh_msiof_spi_set_pin_regs(struct sh_msiof_spi_priv *p, | |||
193 | edge = cpol ? cpha : !cpha; | 190 | edge = cpol ? cpha : !cpha; |
194 | 191 | ||
195 | tmp |= edge << 27; /* TEDG */ | 192 | tmp |= edge << 27; /* TEDG */ |
196 | tmp |= !edge << 26; /* REDG */ | 193 | tmp |= edge << 26; /* REDG */ |
197 | tmp |= (tx_hi_z ? 2 : 0) << 22; /* TXDIZ */ | 194 | tmp |= (tx_hi_z ? 2 : 0) << 22; /* TXDIZ */ |
198 | sh_msiof_write(p, CTR, tmp); | 195 | sh_msiof_write(p, CTR, tmp); |
199 | } | 196 | } |
diff --git a/drivers/staging/Kconfig b/drivers/staging/Kconfig index 94eb86319ff3..fc2e963e65e9 100644 --- a/drivers/staging/Kconfig +++ b/drivers/staging/Kconfig | |||
@@ -99,8 +99,6 @@ source "drivers/staging/line6/Kconfig" | |||
99 | 99 | ||
100 | source "drivers/gpu/drm/vmwgfx/Kconfig" | 100 | source "drivers/gpu/drm/vmwgfx/Kconfig" |
101 | 101 | ||
102 | source "drivers/gpu/drm/radeon/Kconfig" | ||
103 | |||
104 | source "drivers/gpu/drm/nouveau/Kconfig" | 102 | source "drivers/gpu/drm/nouveau/Kconfig" |
105 | 103 | ||
106 | source "drivers/staging/octeon/Kconfig" | 104 | source "drivers/staging/octeon/Kconfig" |
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index 6e8bcdfd23b4..a678186f218f 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c | |||
@@ -1312,9 +1312,9 @@ static int processcompl(struct async *as, void __user * __user *arg) | |||
1312 | void __user *addr = as->userurb; | 1312 | void __user *addr = as->userurb; |
1313 | unsigned int i; | 1313 | unsigned int i; |
1314 | 1314 | ||
1315 | if (as->userbuffer) | 1315 | if (as->userbuffer && urb->actual_length) |
1316 | if (copy_to_user(as->userbuffer, urb->transfer_buffer, | 1316 | if (copy_to_user(as->userbuffer, urb->transfer_buffer, |
1317 | urb->transfer_buffer_length)) | 1317 | urb->actual_length)) |
1318 | goto err_out; | 1318 | goto err_out; |
1319 | if (put_user(as->status, &userurb->status)) | 1319 | if (put_user(as->status, &userurb->status)) |
1320 | goto err_out; | 1320 | goto err_out; |
@@ -1334,14 +1334,11 @@ static int processcompl(struct async *as, void __user * __user *arg) | |||
1334 | } | 1334 | } |
1335 | } | 1335 | } |
1336 | 1336 | ||
1337 | free_async(as); | ||
1338 | |||
1339 | if (put_user(addr, (void __user * __user *)arg)) | 1337 | if (put_user(addr, (void __user * __user *)arg)) |
1340 | return -EFAULT; | 1338 | return -EFAULT; |
1341 | return 0; | 1339 | return 0; |
1342 | 1340 | ||
1343 | err_out: | 1341 | err_out: |
1344 | free_async(as); | ||
1345 | return -EFAULT; | 1342 | return -EFAULT; |
1346 | } | 1343 | } |
1347 | 1344 | ||
@@ -1371,8 +1368,11 @@ static struct async *reap_as(struct dev_state *ps) | |||
1371 | static int proc_reapurb(struct dev_state *ps, void __user *arg) | 1368 | static int proc_reapurb(struct dev_state *ps, void __user *arg) |
1372 | { | 1369 | { |
1373 | struct async *as = reap_as(ps); | 1370 | struct async *as = reap_as(ps); |
1374 | if (as) | 1371 | if (as) { |
1375 | return processcompl(as, (void __user * __user *)arg); | 1372 | int retval = processcompl(as, (void __user * __user *)arg); |
1373 | free_async(as); | ||
1374 | return retval; | ||
1375 | } | ||
1376 | if (signal_pending(current)) | 1376 | if (signal_pending(current)) |
1377 | return -EINTR; | 1377 | return -EINTR; |
1378 | return -EIO; | 1378 | return -EIO; |
@@ -1380,11 +1380,16 @@ static int proc_reapurb(struct dev_state *ps, void __user *arg) | |||
1380 | 1380 | ||
1381 | static int proc_reapurbnonblock(struct dev_state *ps, void __user *arg) | 1381 | static int proc_reapurbnonblock(struct dev_state *ps, void __user *arg) |
1382 | { | 1382 | { |
1383 | int retval; | ||
1383 | struct async *as; | 1384 | struct async *as; |
1384 | 1385 | ||
1385 | if (!(as = async_getcompleted(ps))) | 1386 | as = async_getcompleted(ps); |
1386 | return -EAGAIN; | 1387 | retval = -EAGAIN; |
1387 | return processcompl(as, (void __user * __user *)arg); | 1388 | if (as) { |
1389 | retval = processcompl(as, (void __user * __user *)arg); | ||
1390 | free_async(as); | ||
1391 | } | ||
1392 | return retval; | ||
1388 | } | 1393 | } |
1389 | 1394 | ||
1390 | #ifdef CONFIG_COMPAT | 1395 | #ifdef CONFIG_COMPAT |
@@ -1475,9 +1480,9 @@ static int processcompl_compat(struct async *as, void __user * __user *arg) | |||
1475 | void __user *addr = as->userurb; | 1480 | void __user *addr = as->userurb; |
1476 | unsigned int i; | 1481 | unsigned int i; |
1477 | 1482 | ||
1478 | if (as->userbuffer) | 1483 | if (as->userbuffer && urb->actual_length) |
1479 | if (copy_to_user(as->userbuffer, urb->transfer_buffer, | 1484 | if (copy_to_user(as->userbuffer, urb->transfer_buffer, |
1480 | urb->transfer_buffer_length)) | 1485 | urb->actual_length)) |
1481 | return -EFAULT; | 1486 | return -EFAULT; |
1482 | if (put_user(as->status, &userurb->status)) | 1487 | if (put_user(as->status, &userurb->status)) |
1483 | return -EFAULT; | 1488 | return -EFAULT; |
@@ -1497,7 +1502,6 @@ static int processcompl_compat(struct async *as, void __user * __user *arg) | |||
1497 | } | 1502 | } |
1498 | } | 1503 | } |
1499 | 1504 | ||
1500 | free_async(as); | ||
1501 | if (put_user(ptr_to_compat(addr), (u32 __user *)arg)) | 1505 | if (put_user(ptr_to_compat(addr), (u32 __user *)arg)) |
1502 | return -EFAULT; | 1506 | return -EFAULT; |
1503 | return 0; | 1507 | return 0; |
@@ -1506,8 +1510,11 @@ static int processcompl_compat(struct async *as, void __user * __user *arg) | |||
1506 | static int proc_reapurb_compat(struct dev_state *ps, void __user *arg) | 1510 | static int proc_reapurb_compat(struct dev_state *ps, void __user *arg) |
1507 | { | 1511 | { |
1508 | struct async *as = reap_as(ps); | 1512 | struct async *as = reap_as(ps); |
1509 | if (as) | 1513 | if (as) { |
1510 | return processcompl_compat(as, (void __user * __user *)arg); | 1514 | int retval = processcompl_compat(as, (void __user * __user *)arg); |
1515 | free_async(as); | ||
1516 | return retval; | ||
1517 | } | ||
1511 | if (signal_pending(current)) | 1518 | if (signal_pending(current)) |
1512 | return -EINTR; | 1519 | return -EINTR; |
1513 | return -EIO; | 1520 | return -EIO; |
@@ -1515,11 +1522,16 @@ static int proc_reapurb_compat(struct dev_state *ps, void __user *arg) | |||
1515 | 1522 | ||
1516 | static int proc_reapurbnonblock_compat(struct dev_state *ps, void __user *arg) | 1523 | static int proc_reapurbnonblock_compat(struct dev_state *ps, void __user *arg) |
1517 | { | 1524 | { |
1525 | int retval; | ||
1518 | struct async *as; | 1526 | struct async *as; |
1519 | 1527 | ||
1520 | if (!(as = async_getcompleted(ps))) | 1528 | retval = -EAGAIN; |
1521 | return -EAGAIN; | 1529 | as = async_getcompleted(ps); |
1522 | return processcompl_compat(as, (void __user * __user *)arg); | 1530 | if (as) { |
1531 | retval = processcompl_compat(as, (void __user * __user *)arg); | ||
1532 | free_async(as); | ||
1533 | } | ||
1534 | return retval; | ||
1523 | } | 1535 | } |
1524 | 1536 | ||
1525 | 1537 | ||
diff --git a/drivers/usb/gadget/f_eem.c b/drivers/usb/gadget/f_eem.c index 0a577d5694fd..d4f0db58a8ad 100644 --- a/drivers/usb/gadget/f_eem.c +++ b/drivers/usb/gadget/f_eem.c | |||
@@ -358,7 +358,7 @@ done: | |||
358 | * b15: bmType (0 == data) | 358 | * b15: bmType (0 == data) |
359 | */ | 359 | */ |
360 | len = skb->len; | 360 | len = skb->len; |
361 | put_unaligned_le16((len & 0x3FFF) | BIT(14), skb_push(skb, 2)); | 361 | put_unaligned_le16(len & 0x3FFF, skb_push(skb, 2)); |
362 | 362 | ||
363 | /* add a zero-length EEM packet, if needed */ | 363 | /* add a zero-length EEM packet, if needed */ |
364 | if (padlen) | 364 | if (padlen) |
@@ -464,7 +464,6 @@ static int eem_unwrap(struct gether *port, | |||
464 | } | 464 | } |
465 | 465 | ||
466 | /* validate CRC */ | 466 | /* validate CRC */ |
467 | crc = get_unaligned_le32(skb->data + len - ETH_FCS_LEN); | ||
468 | if (header & BIT(14)) { | 467 | if (header & BIT(14)) { |
469 | crc = get_unaligned_le32(skb->data + len | 468 | crc = get_unaligned_le32(skb->data + len |
470 | - ETH_FCS_LEN); | 469 | - ETH_FCS_LEN); |
diff --git a/drivers/usb/gadget/multi.c b/drivers/usb/gadget/multi.c index 429560100b10..76496f5d272c 100644 --- a/drivers/usb/gadget/multi.c +++ b/drivers/usb/gadget/multi.c | |||
@@ -29,7 +29,7 @@ | |||
29 | #if defined USB_ETH_RNDIS | 29 | #if defined USB_ETH_RNDIS |
30 | # undef USB_ETH_RNDIS | 30 | # undef USB_ETH_RNDIS |
31 | #endif | 31 | #endif |
32 | #ifdef CONFIG_USB_ETH_RNDIS | 32 | #ifdef CONFIG_USB_G_MULTI_RNDIS |
33 | # define USB_ETH_RNDIS y | 33 | # define USB_ETH_RNDIS y |
34 | #endif | 34 | #endif |
35 | 35 | ||
diff --git a/drivers/usb/gadget/r8a66597-udc.c b/drivers/usb/gadget/r8a66597-udc.c index e220fb8091a3..8b45145b9136 100644 --- a/drivers/usb/gadget/r8a66597-udc.c +++ b/drivers/usb/gadget/r8a66597-udc.c | |||
@@ -26,6 +26,7 @@ | |||
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/clk.h> | 28 | #include <linux/clk.h> |
29 | #include <linux/err.h> | ||
29 | 30 | ||
30 | #include <linux/usb/ch9.h> | 31 | #include <linux/usb/ch9.h> |
31 | #include <linux/usb/gadget.h> | 32 | #include <linux/usb/gadget.h> |
diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c index 4b5dbd0127f5..5fc80a104150 100644 --- a/drivers/usb/gadget/s3c-hsotg.c +++ b/drivers/usb/gadget/s3c-hsotg.c | |||
@@ -2582,6 +2582,7 @@ err: | |||
2582 | hsotg->gadget.dev.driver = NULL; | 2582 | hsotg->gadget.dev.driver = NULL; |
2583 | return ret; | 2583 | return ret; |
2584 | } | 2584 | } |
2585 | EXPORT_SYMBOL(usb_gadget_register_driver); | ||
2585 | 2586 | ||
2586 | int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) | 2587 | int usb_gadget_unregister_driver(struct usb_gadget_driver *driver) |
2587 | { | 2588 | { |
diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c index c75d9270c752..19372673bf09 100644 --- a/drivers/usb/host/ehci-hub.c +++ b/drivers/usb/host/ehci-hub.c | |||
@@ -196,7 +196,9 @@ static int ehci_bus_suspend (struct usb_hcd *hcd) | |||
196 | if (hostpc_reg) { | 196 | if (hostpc_reg) { |
197 | u32 t3; | 197 | u32 t3; |
198 | 198 | ||
199 | spin_unlock_irq(&ehci->lock); | ||
199 | msleep(5);/* 5ms for HCD enter low pwr mode */ | 200 | msleep(5);/* 5ms for HCD enter low pwr mode */ |
201 | spin_lock_irq(&ehci->lock); | ||
200 | t3 = ehci_readl(ehci, hostpc_reg); | 202 | t3 = ehci_readl(ehci, hostpc_reg); |
201 | ehci_writel(ehci, t3 | HOSTPC_PHCD, hostpc_reg); | 203 | ehci_writel(ehci, t3 | HOSTPC_PHCD, hostpc_reg); |
202 | t3 = ehci_readl(ehci, hostpc_reg); | 204 | t3 = ehci_readl(ehci, hostpc_reg); |
@@ -904,17 +906,18 @@ static int ehci_hub_control ( | |||
904 | if ((temp & PORT_PE) == 0 | 906 | if ((temp & PORT_PE) == 0 |
905 | || (temp & PORT_RESET) != 0) | 907 | || (temp & PORT_RESET) != 0) |
906 | goto error; | 908 | goto error; |
907 | ehci_writel(ehci, temp | PORT_SUSPEND, status_reg); | 909 | |
908 | /* After above check the port must be connected. | 910 | /* After above check the port must be connected. |
909 | * Set appropriate bit thus could put phy into low power | 911 | * Set appropriate bit thus could put phy into low power |
910 | * mode if we have hostpc feature | 912 | * mode if we have hostpc feature |
911 | */ | 913 | */ |
914 | temp &= ~PORT_WKCONN_E; | ||
915 | temp |= PORT_WKDISC_E | PORT_WKOC_E; | ||
916 | ehci_writel(ehci, temp | PORT_SUSPEND, status_reg); | ||
912 | if (hostpc_reg) { | 917 | if (hostpc_reg) { |
913 | temp &= ~PORT_WKCONN_E; | 918 | spin_unlock_irqrestore(&ehci->lock, flags); |
914 | temp |= (PORT_WKDISC_E | PORT_WKOC_E); | ||
915 | ehci_writel(ehci, temp | PORT_SUSPEND, | ||
916 | status_reg); | ||
917 | msleep(5);/* 5ms for HCD enter low pwr mode */ | 919 | msleep(5);/* 5ms for HCD enter low pwr mode */ |
920 | spin_lock_irqsave(&ehci->lock, flags); | ||
918 | temp1 = ehci_readl(ehci, hostpc_reg); | 921 | temp1 = ehci_readl(ehci, hostpc_reg); |
919 | ehci_writel(ehci, temp1 | HOSTPC_PHCD, | 922 | ehci_writel(ehci, temp1 | HOSTPC_PHCD, |
920 | hostpc_reg); | 923 | hostpc_reg); |
diff --git a/drivers/usb/host/fhci-tds.c b/drivers/usb/host/fhci-tds.c index d224ab467a40..e1232890c78b 100644 --- a/drivers/usb/host/fhci-tds.c +++ b/drivers/usb/host/fhci-tds.c | |||
@@ -105,7 +105,7 @@ void fhci_ep0_free(struct fhci_usb *usb) | |||
105 | if (ep->td_base) | 105 | if (ep->td_base) |
106 | cpm_muram_free(cpm_muram_offset(ep->td_base)); | 106 | cpm_muram_free(cpm_muram_offset(ep->td_base)); |
107 | 107 | ||
108 | if (ep->conf_frame_Q) { | 108 | if (kfifo_initialized(&ep->conf_frame_Q)) { |
109 | size = cq_howmany(&ep->conf_frame_Q); | 109 | size = cq_howmany(&ep->conf_frame_Q); |
110 | for (; size; size--) { | 110 | for (; size; size--) { |
111 | struct packet *pkt = cq_get(&ep->conf_frame_Q); | 111 | struct packet *pkt = cq_get(&ep->conf_frame_Q); |
@@ -115,7 +115,7 @@ void fhci_ep0_free(struct fhci_usb *usb) | |||
115 | cq_delete(&ep->conf_frame_Q); | 115 | cq_delete(&ep->conf_frame_Q); |
116 | } | 116 | } |
117 | 117 | ||
118 | if (ep->empty_frame_Q) { | 118 | if (kfifo_initialized(&ep->empty_frame_Q)) { |
119 | size = cq_howmany(&ep->empty_frame_Q); | 119 | size = cq_howmany(&ep->empty_frame_Q); |
120 | for (; size; size--) { | 120 | for (; size; size--) { |
121 | struct packet *pkt = cq_get(&ep->empty_frame_Q); | 121 | struct packet *pkt = cq_get(&ep->empty_frame_Q); |
@@ -125,7 +125,7 @@ void fhci_ep0_free(struct fhci_usb *usb) | |||
125 | cq_delete(&ep->empty_frame_Q); | 125 | cq_delete(&ep->empty_frame_Q); |
126 | } | 126 | } |
127 | 127 | ||
128 | if (ep->dummy_packets_Q) { | 128 | if (kfifo_initialized(&ep->dummy_packets_Q)) { |
129 | size = cq_howmany(&ep->dummy_packets_Q); | 129 | size = cq_howmany(&ep->dummy_packets_Q); |
130 | for (; size; size--) { | 130 | for (; size; size--) { |
131 | u8 *buff = cq_get(&ep->dummy_packets_Q); | 131 | u8 *buff = cq_get(&ep->dummy_packets_Q); |
diff --git a/drivers/usb/host/r8a66597-hcd.c b/drivers/usb/host/r8a66597-hcd.c index b7a661c02bcd..bee558aed427 100644 --- a/drivers/usb/host/r8a66597-hcd.c +++ b/drivers/usb/host/r8a66597-hcd.c | |||
@@ -35,7 +35,9 @@ | |||
35 | #include <linux/usb.h> | 35 | #include <linux/usb.h> |
36 | #include <linux/platform_device.h> | 36 | #include <linux/platform_device.h> |
37 | #include <linux/io.h> | 37 | #include <linux/io.h> |
38 | #include <linux/mm.h> | ||
38 | #include <linux/irq.h> | 39 | #include <linux/irq.h> |
40 | #include <asm/cacheflush.h> | ||
39 | 41 | ||
40 | #include "../core/hcd.h" | 42 | #include "../core/hcd.h" |
41 | #include "r8a66597.h" | 43 | #include "r8a66597.h" |
@@ -216,8 +218,17 @@ static void disable_controller(struct r8a66597 *r8a66597) | |||
216 | { | 218 | { |
217 | int port; | 219 | int port; |
218 | 220 | ||
221 | /* disable interrupts */ | ||
219 | r8a66597_write(r8a66597, 0, INTENB0); | 222 | r8a66597_write(r8a66597, 0, INTENB0); |
220 | r8a66597_write(r8a66597, 0, INTSTS0); | 223 | r8a66597_write(r8a66597, 0, INTENB1); |
224 | r8a66597_write(r8a66597, 0, BRDYENB); | ||
225 | r8a66597_write(r8a66597, 0, BEMPENB); | ||
226 | r8a66597_write(r8a66597, 0, NRDYENB); | ||
227 | |||
228 | /* clear status */ | ||
229 | r8a66597_write(r8a66597, 0, BRDYSTS); | ||
230 | r8a66597_write(r8a66597, 0, NRDYSTS); | ||
231 | r8a66597_write(r8a66597, 0, BEMPSTS); | ||
221 | 232 | ||
222 | for (port = 0; port < r8a66597->max_root_hub; port++) | 233 | for (port = 0; port < r8a66597->max_root_hub; port++) |
223 | r8a66597_disable_port(r8a66597, port); | 234 | r8a66597_disable_port(r8a66597, port); |
@@ -811,6 +822,26 @@ static void enable_r8a66597_pipe(struct r8a66597 *r8a66597, struct urb *urb, | |||
811 | enable_r8a66597_pipe_dma(r8a66597, dev, pipe, urb); | 822 | enable_r8a66597_pipe_dma(r8a66597, dev, pipe, urb); |
812 | } | 823 | } |
813 | 824 | ||
825 | static void r8a66597_urb_done(struct r8a66597 *r8a66597, struct urb *urb, | ||
826 | int status) | ||
827 | __releases(r8a66597->lock) | ||
828 | __acquires(r8a66597->lock) | ||
829 | { | ||
830 | if (usb_pipein(urb->pipe) && usb_pipetype(urb->pipe) != PIPE_CONTROL) { | ||
831 | void *ptr; | ||
832 | |||
833 | for (ptr = urb->transfer_buffer; | ||
834 | ptr < urb->transfer_buffer + urb->transfer_buffer_length; | ||
835 | ptr += PAGE_SIZE) | ||
836 | flush_dcache_page(virt_to_page(ptr)); | ||
837 | } | ||
838 | |||
839 | usb_hcd_unlink_urb_from_ep(r8a66597_to_hcd(r8a66597), urb); | ||
840 | spin_unlock(&r8a66597->lock); | ||
841 | usb_hcd_giveback_urb(r8a66597_to_hcd(r8a66597), urb, status); | ||
842 | spin_lock(&r8a66597->lock); | ||
843 | } | ||
844 | |||
814 | /* this function must be called with interrupt disabled */ | 845 | /* this function must be called with interrupt disabled */ |
815 | static void force_dequeue(struct r8a66597 *r8a66597, u16 pipenum, u16 address) | 846 | static void force_dequeue(struct r8a66597 *r8a66597, u16 pipenum, u16 address) |
816 | { | 847 | { |
@@ -829,15 +860,9 @@ static void force_dequeue(struct r8a66597 *r8a66597, u16 pipenum, u16 address) | |||
829 | list_del(&td->queue); | 860 | list_del(&td->queue); |
830 | kfree(td); | 861 | kfree(td); |
831 | 862 | ||
832 | if (urb) { | 863 | if (urb) |
833 | usb_hcd_unlink_urb_from_ep(r8a66597_to_hcd(r8a66597), | 864 | r8a66597_urb_done(r8a66597, urb, -ENODEV); |
834 | urb); | ||
835 | 865 | ||
836 | spin_unlock(&r8a66597->lock); | ||
837 | usb_hcd_giveback_urb(r8a66597_to_hcd(r8a66597), urb, | ||
838 | -ENODEV); | ||
839 | spin_lock(&r8a66597->lock); | ||
840 | } | ||
841 | break; | 866 | break; |
842 | } | 867 | } |
843 | } | 868 | } |
@@ -997,6 +1022,8 @@ static void start_root_hub_sampling(struct r8a66597 *r8a66597, int port, | |||
997 | /* this function must be called with interrupt disabled */ | 1022 | /* this function must be called with interrupt disabled */ |
998 | static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port, | 1023 | static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port, |
999 | u16 syssts) | 1024 | u16 syssts) |
1025 | __releases(r8a66597->lock) | ||
1026 | __acquires(r8a66597->lock) | ||
1000 | { | 1027 | { |
1001 | if (syssts == SE0) { | 1028 | if (syssts == SE0) { |
1002 | r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port)); | 1029 | r8a66597_write(r8a66597, ~ATTCH, get_intsts_reg(port)); |
@@ -1014,7 +1041,9 @@ static void r8a66597_check_syssts(struct r8a66597 *r8a66597, int port, | |||
1014 | usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597)); | 1041 | usb_hcd_resume_root_hub(r8a66597_to_hcd(r8a66597)); |
1015 | } | 1042 | } |
1016 | 1043 | ||
1044 | spin_unlock(&r8a66597->lock); | ||
1017 | usb_hcd_poll_rh_status(r8a66597_to_hcd(r8a66597)); | 1045 | usb_hcd_poll_rh_status(r8a66597_to_hcd(r8a66597)); |
1046 | spin_lock(&r8a66597->lock); | ||
1018 | } | 1047 | } |
1019 | 1048 | ||
1020 | /* this function must be called with interrupt disabled */ | 1049 | /* this function must be called with interrupt disabled */ |
@@ -1274,10 +1303,7 @@ __releases(r8a66597->lock) __acquires(r8a66597->lock) | |||
1274 | if (usb_pipeisoc(urb->pipe)) | 1303 | if (usb_pipeisoc(urb->pipe)) |
1275 | urb->start_frame = r8a66597_get_frame(hcd); | 1304 | urb->start_frame = r8a66597_get_frame(hcd); |
1276 | 1305 | ||
1277 | usb_hcd_unlink_urb_from_ep(r8a66597_to_hcd(r8a66597), urb); | 1306 | r8a66597_urb_done(r8a66597, urb, status); |
1278 | spin_unlock(&r8a66597->lock); | ||
1279 | usb_hcd_giveback_urb(hcd, urb, status); | ||
1280 | spin_lock(&r8a66597->lock); | ||
1281 | } | 1307 | } |
1282 | 1308 | ||
1283 | if (restart) { | 1309 | if (restart) { |
@@ -2466,6 +2492,12 @@ static int __devinit r8a66597_probe(struct platform_device *pdev) | |||
2466 | r8a66597->rh_timer.data = (unsigned long)r8a66597; | 2492 | r8a66597->rh_timer.data = (unsigned long)r8a66597; |
2467 | r8a66597->reg = (unsigned long)reg; | 2493 | r8a66597->reg = (unsigned long)reg; |
2468 | 2494 | ||
2495 | /* make sure no interrupts are pending */ | ||
2496 | ret = r8a66597_clock_enable(r8a66597); | ||
2497 | if (ret < 0) | ||
2498 | goto clean_up3; | ||
2499 | disable_controller(r8a66597); | ||
2500 | |||
2469 | for (i = 0; i < R8A66597_MAX_NUM_PIPE; i++) { | 2501 | for (i = 0; i < R8A66597_MAX_NUM_PIPE; i++) { |
2470 | INIT_LIST_HEAD(&r8a66597->pipe_queue[i]); | 2502 | INIT_LIST_HEAD(&r8a66597->pipe_queue[i]); |
2471 | init_timer(&r8a66597->td_timer[i]); | 2503 | init_timer(&r8a66597->td_timer[i]); |
diff --git a/drivers/usb/misc/sisusbvga/sisusb.c b/drivers/usb/misc/sisusbvga/sisusb.c index 0025847743f3..8b37a4b9839e 100644 --- a/drivers/usb/misc/sisusbvga/sisusb.c +++ b/drivers/usb/misc/sisusbvga/sisusb.c | |||
@@ -3245,6 +3245,7 @@ static struct usb_device_id sisusb_table [] = { | |||
3245 | { USB_DEVICE(0x0711, 0x0902) }, | 3245 | { USB_DEVICE(0x0711, 0x0902) }, |
3246 | { USB_DEVICE(0x0711, 0x0903) }, | 3246 | { USB_DEVICE(0x0711, 0x0903) }, |
3247 | { USB_DEVICE(0x0711, 0x0918) }, | 3247 | { USB_DEVICE(0x0711, 0x0918) }, |
3248 | { USB_DEVICE(0x0711, 0x0920) }, | ||
3248 | { USB_DEVICE(0x182d, 0x021c) }, | 3249 | { USB_DEVICE(0x182d, 0x021c) }, |
3249 | { USB_DEVICE(0x182d, 0x0269) }, | 3250 | { USB_DEVICE(0x182d, 0x0269) }, |
3250 | { } | 3251 | { } |
diff --git a/drivers/usb/otg/Kconfig b/drivers/usb/otg/Kconfig index de56b3d743d7..3d2d3e549bd1 100644 --- a/drivers/usb/otg/Kconfig +++ b/drivers/usb/otg/Kconfig | |||
@@ -44,6 +44,7 @@ config ISP1301_OMAP | |||
44 | config USB_ULPI | 44 | config USB_ULPI |
45 | bool "Generic ULPI Transceiver Driver" | 45 | bool "Generic ULPI Transceiver Driver" |
46 | depends on ARM | 46 | depends on ARM |
47 | select USB_OTG_UTILS | ||
47 | help | 48 | help |
48 | Enable this to support ULPI connected USB OTG transceivers which | 49 | Enable this to support ULPI connected USB OTG transceivers which |
49 | are likely found on embedded boards. | 50 | are likely found on embedded boards. |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 216f187582ab..7638828e7317 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -50,7 +50,7 @@ | |||
50 | * Version Information | 50 | * Version Information |
51 | */ | 51 | */ |
52 | #define DRIVER_VERSION "v1.5.0" | 52 | #define DRIVER_VERSION "v1.5.0" |
53 | #define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>" | 53 | #define DRIVER_AUTHOR "Greg Kroah-Hartman <greg@kroah.com>, Bill Ryder <bryder@sgi.com>, Kuba Ober <kuba@mareimbrium.org>, Andreas Mohr" |
54 | #define DRIVER_DESC "USB FTDI Serial Converters Driver" | 54 | #define DRIVER_DESC "USB FTDI Serial Converters Driver" |
55 | 55 | ||
56 | static int debug; | 56 | static int debug; |
@@ -145,10 +145,15 @@ static struct ftdi_sio_quirk ftdi_HE_TIRA1_quirk = { | |||
145 | 145 | ||
146 | 146 | ||
147 | 147 | ||
148 | /* | ||
149 | * Device ID not listed? Test via module params product/vendor or | ||
150 | * /sys/bus/usb/ftdi_sio/new_id, then send patch/report! | ||
151 | */ | ||
148 | static struct usb_device_id id_table_combined [] = { | 152 | static struct usb_device_id id_table_combined [] = { |
149 | { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, | 153 | { USB_DEVICE(FTDI_VID, FTDI_AMC232_PID) }, |
150 | { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, | 154 | { USB_DEVICE(FTDI_VID, FTDI_CANUSB_PID) }, |
151 | { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) }, | 155 | { USB_DEVICE(FTDI_VID, FTDI_CANDAPTER_PID) }, |
156 | { USB_DEVICE(FTDI_VID, FTDI_NXTCAM_PID) }, | ||
152 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) }, | 157 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_0_PID) }, |
153 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) }, | 158 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_1_PID) }, |
154 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) }, | 159 | { USB_DEVICE(FTDI_VID, FTDI_SCS_DEVICE_2_PID) }, |
@@ -552,9 +557,16 @@ static struct usb_device_id id_table_combined [] = { | |||
552 | { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) }, | 557 | { USB_DEVICE(FTDI_VID, FTDI_IBS_PEDO_PID) }, |
553 | { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) }, | 558 | { USB_DEVICE(FTDI_VID, FTDI_IBS_PROD_PID) }, |
554 | /* | 559 | /* |
555 | * Due to many user requests for multiple ELV devices we enable | 560 | * ELV devices: |
556 | * them by default. | ||
557 | */ | 561 | */ |
562 | { USB_DEVICE(FTDI_VID, FTDI_ELV_USR_PID) }, | ||
563 | { USB_DEVICE(FTDI_VID, FTDI_ELV_MSM1_PID) }, | ||
564 | { USB_DEVICE(FTDI_VID, FTDI_ELV_KL100_PID) }, | ||
565 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS550_PID) }, | ||
566 | { USB_DEVICE(FTDI_VID, FTDI_ELV_EC3000_PID) }, | ||
567 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS888_PID) }, | ||
568 | { USB_DEVICE(FTDI_VID, FTDI_ELV_TWS550_PID) }, | ||
569 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FEM_PID) }, | ||
558 | { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) }, | 570 | { USB_DEVICE(FTDI_VID, FTDI_ELV_CLI7000_PID) }, |
559 | { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) }, | 571 | { USB_DEVICE(FTDI_VID, FTDI_ELV_PPS7330_PID) }, |
560 | { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) }, | 572 | { USB_DEVICE(FTDI_VID, FTDI_ELV_TFM100_PID) }, |
@@ -571,11 +583,17 @@ static struct usb_device_id id_table_combined [] = { | |||
571 | { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) }, | 583 | { USB_DEVICE(FTDI_VID, FTDI_ELV_PCK100_PID) }, |
572 | { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) }, | 584 | { USB_DEVICE(FTDI_VID, FTDI_ELV_RFP500_PID) }, |
573 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) }, | 585 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FS20SIG_PID) }, |
586 | { USB_DEVICE(FTDI_VID, FTDI_ELV_UTP8_PID) }, | ||
574 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) }, | 587 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS300PC_PID) }, |
588 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS444PC_PID) }, | ||
575 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) }, | 589 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FHZ1300PC_PID) }, |
576 | { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1010PC_PID) }, | 590 | { USB_DEVICE(FTDI_VID, FTDI_ELV_EM1010PC_PID) }, |
577 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) }, | 591 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS500_PID) }, |
578 | { USB_DEVICE(FTDI_VID, FTDI_ELV_HS485_PID) }, | 592 | { USB_DEVICE(FTDI_VID, FTDI_ELV_HS485_PID) }, |
593 | { USB_DEVICE(FTDI_VID, FTDI_ELV_UMS100_PID) }, | ||
594 | { USB_DEVICE(FTDI_VID, FTDI_ELV_TFD128_PID) }, | ||
595 | { USB_DEVICE(FTDI_VID, FTDI_ELV_FM3RX_PID) }, | ||
596 | { USB_DEVICE(FTDI_VID, FTDI_ELV_WS777_PID) }, | ||
579 | { USB_DEVICE(FTDI_VID, LINX_SDMUSBQSS_PID) }, | 597 | { USB_DEVICE(FTDI_VID, LINX_SDMUSBQSS_PID) }, |
580 | { USB_DEVICE(FTDI_VID, LINX_MASTERDEVEL2_PID) }, | 598 | { USB_DEVICE(FTDI_VID, LINX_MASTERDEVEL2_PID) }, |
581 | { USB_DEVICE(FTDI_VID, LINX_FUTURE_0_PID) }, | 599 | { USB_DEVICE(FTDI_VID, LINX_FUTURE_0_PID) }, |
@@ -697,6 +715,7 @@ static struct usb_device_id id_table_combined [] = { | |||
697 | { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) }, | 715 | { USB_DEVICE(RATOC_VENDOR_ID, RATOC_PRODUCT_ID_USB60F) }, |
698 | { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) }, | 716 | { USB_DEVICE(FTDI_VID, FTDI_REU_TINY_PID) }, |
699 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, | 717 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_QUIDO4x4_PID) }, |
718 | { USB_DEVICE(PAPOUCH_VID, PAPOUCH_AD4USB_PID) }, | ||
700 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, | 719 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DGQG_PID) }, |
701 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, | 720 | { USB_DEVICE(FTDI_VID, FTDI_DOMINTELL_DUSB_PID) }, |
702 | { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) }, | 721 | { USB_DEVICE(ALTI2_VID, ALTI2_N3_PID) }, |
diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h index da92b4952ffb..c8951aeed983 100644 --- a/drivers/usb/serial/ftdi_sio_ids.h +++ b/drivers/usb/serial/ftdi_sio_ids.h | |||
@@ -38,6 +38,8 @@ | |||
38 | /* www.candapter.com Ewert Energy Systems CANdapter device */ | 38 | /* www.candapter.com Ewert Energy Systems CANdapter device */ |
39 | #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ | 39 | #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */ |
40 | 40 | ||
41 | #define FTDI_NXTCAM_PID 0xABB8 /* NXTCam for Mindstorms NXT */ | ||
42 | |||
41 | /* OOCDlink by Joern Kaipf <joernk@web.de> | 43 | /* OOCDlink by Joern Kaipf <joernk@web.de> |
42 | * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ | 44 | * (http://www.joernonline.de/dw/doku.php?id=start&idx=projects:oocdlink) */ |
43 | #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ | 45 | #define FTDI_OOCDLINK_PID 0xbaf8 /* Amontec JTAGkey */ |
@@ -161,22 +163,37 @@ | |||
161 | /* | 163 | /* |
162 | * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). | 164 | * ELV USB devices submitted by Christian Abt of ELV (www.elv.de). |
163 | * All of these devices use FTDI's vendor ID (0x0403). | 165 | * All of these devices use FTDI's vendor ID (0x0403). |
166 | * Further IDs taken from ELV Windows .inf file. | ||
164 | * | 167 | * |
165 | * The previously included PID for the UO 100 module was incorrect. | 168 | * The previously included PID for the UO 100 module was incorrect. |
166 | * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). | 169 | * In fact, that PID was for ELV's UR 100 USB-RS232 converter (0xFB58). |
167 | * | 170 | * |
168 | * Armin Laeuger originally sent the PID for the UM 100 module. | 171 | * Armin Laeuger originally sent the PID for the UM 100 module. |
169 | */ | 172 | */ |
173 | #define FTDI_ELV_USR_PID 0xE000 /* ELV Universal-Sound-Recorder */ | ||
174 | #define FTDI_ELV_MSM1_PID 0xE001 /* ELV Mini-Sound-Modul */ | ||
175 | #define FTDI_ELV_KL100_PID 0xE002 /* ELV Kfz-Leistungsmesser KL 100 */ | ||
176 | #define FTDI_ELV_WS550_PID 0xE004 /* WS 550 */ | ||
177 | #define FTDI_ELV_EC3000_PID 0xE006 /* ENERGY CONTROL 3000 USB */ | ||
178 | #define FTDI_ELV_WS888_PID 0xE008 /* WS 888 */ | ||
179 | #define FTDI_ELV_TWS550_PID 0xE009 /* Technoline WS 550 */ | ||
180 | #define FTDI_ELV_FEM_PID 0xE00A /* Funk Energie Monitor */ | ||
170 | #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ | 181 | #define FTDI_ELV_FHZ1300PC_PID 0xE0E8 /* FHZ 1300 PC */ |
171 | #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ | 182 | #define FTDI_ELV_WS500_PID 0xE0E9 /* PC-Wetterstation (WS 500) */ |
172 | #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ | 183 | #define FTDI_ELV_HS485_PID 0xE0EA /* USB to RS-485 adapter */ |
184 | #define FTDI_ELV_UMS100_PID 0xE0EB /* ELV USB Master-Slave Schaltsteckdose UMS 100 */ | ||
185 | #define FTDI_ELV_TFD128_PID 0xE0EC /* ELV Temperatur-Feuchte-Datenlogger TFD 128 */ | ||
186 | #define FTDI_ELV_FM3RX_PID 0xE0ED /* ELV Messwertuebertragung FM3 RX */ | ||
187 | #define FTDI_ELV_WS777_PID 0xE0EE /* Conrad WS 777 */ | ||
173 | #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ | 188 | #define FTDI_ELV_EM1010PC_PID 0xE0EF /* Engery monitor EM 1010 PC */ |
174 | #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ | 189 | #define FTDI_ELV_CSI8_PID 0xE0F0 /* Computer-Schalt-Interface (CSI 8) */ |
175 | #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ | 190 | #define FTDI_ELV_EM1000DL_PID 0xE0F1 /* PC-Datenlogger fuer Energiemonitor (EM 1000 DL) */ |
176 | #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ | 191 | #define FTDI_ELV_PCK100_PID 0xE0F2 /* PC-Kabeltester (PCK 100) */ |
177 | #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ | 192 | #define FTDI_ELV_RFP500_PID 0xE0F3 /* HF-Leistungsmesser (RFP 500) */ |
178 | #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ | 193 | #define FTDI_ELV_FS20SIG_PID 0xE0F4 /* Signalgeber (FS 20 SIG) */ |
194 | #define FTDI_ELV_UTP8_PID 0xE0F5 /* ELV UTP 8 */ | ||
179 | #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ | 195 | #define FTDI_ELV_WS300PC_PID 0xE0F6 /* PC-Wetterstation (WS 300 PC) */ |
196 | #define FTDI_ELV_WS444PC_PID 0xE0F7 /* Conrad WS 444 PC */ | ||
180 | #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ | 197 | #define FTDI_PHI_FISCO_PID 0xE40B /* PHI Fisco USB to Serial cable */ |
181 | #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ | 198 | #define FTDI_ELV_UAD8_PID 0xF068 /* USB-AD-Wandler (UAD 8) */ |
182 | #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ | 199 | #define FTDI_ELV_UDA7_PID 0xF069 /* USB-DA-Wandler (UDA 7) */ |
@@ -968,6 +985,7 @@ | |||
968 | #define PAPOUCH_VID 0x5050 /* Vendor ID */ | 985 | #define PAPOUCH_VID 0x5050 /* Vendor ID */ |
969 | #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ | 986 | #define PAPOUCH_TMU_PID 0x0400 /* TMU USB Thermometer */ |
970 | #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ | 987 | #define PAPOUCH_QUIDO4x4_PID 0x0900 /* Quido 4/4 Module */ |
988 | #define PAPOUCH_AD4USB_PID 0x8003 /* AD4USB Measurement Module */ | ||
971 | 989 | ||
972 | /* | 990 | /* |
973 | * Marvell SheevaPlug | 991 | * Marvell SheevaPlug |
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c index ac1b6449fb6a..3eb6143bb646 100644 --- a/drivers/usb/serial/sierra.c +++ b/drivers/usb/serial/sierra.c | |||
@@ -298,6 +298,7 @@ static struct usb_device_id id_table [] = { | |||
298 | { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */ | 298 | { USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless Direct IP modems */ |
299 | .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist | 299 | .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist |
300 | }, | 300 | }, |
301 | { USB_DEVICE(0x413C, 0x08133) }, /* Dell Computer Corp. Wireless 5720 VZW Mobile Broadband (EVDO Rev-A) Minicard GPS Port */ | ||
301 | 302 | ||
302 | { } | 303 | { } |
303 | }; | 304 | }; |
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h index c932f9053188..49575fba3756 100644 --- a/drivers/usb/storage/unusual_devs.h +++ b/drivers/usb/storage/unusual_devs.h | |||
@@ -941,7 +941,7 @@ UNUSUAL_DEV( 0x07ab, 0xfccd, 0x0000, 0x9999, | |||
941 | UNUSUAL_DEV( 0x07af, 0x0004, 0x0100, 0x0133, | 941 | UNUSUAL_DEV( 0x07af, 0x0004, 0x0100, 0x0133, |
942 | "Microtech", | 942 | "Microtech", |
943 | "USB-SCSI-DB25", | 943 | "USB-SCSI-DB25", |
944 | US_SC_SCSI, US_PR_BULK, usb_stor_euscsi_init, | 944 | US_SC_DEVICE, US_PR_DEVICE, usb_stor_euscsi_init, |
945 | US_FL_SCM_MULT_TARG ), | 945 | US_FL_SCM_MULT_TARG ), |
946 | 946 | ||
947 | UNUSUAL_DEV( 0x07af, 0x0005, 0x0100, 0x0100, | 947 | UNUSUAL_DEV( 0x07af, 0x0005, 0x0100, 0x0100, |
diff --git a/drivers/video/imxfb.c b/drivers/video/imxfb.c index 66358fa825f3..b4b6deceed15 100644 --- a/drivers/video/imxfb.c +++ b/drivers/video/imxfb.c | |||
@@ -593,7 +593,8 @@ static int imxfb_activate_var(struct fb_var_screeninfo *var, struct fb_info *inf | |||
593 | */ | 593 | */ |
594 | static int imxfb_suspend(struct platform_device *dev, pm_message_t state) | 594 | static int imxfb_suspend(struct platform_device *dev, pm_message_t state) |
595 | { | 595 | { |
596 | struct imxfb_info *fbi = platform_get_drvdata(dev); | 596 | struct fb_info *info = platform_get_drvdata(dev); |
597 | struct imxfb_info *fbi = info->par; | ||
597 | 598 | ||
598 | pr_debug("%s\n", __func__); | 599 | pr_debug("%s\n", __func__); |
599 | 600 | ||
@@ -603,7 +604,8 @@ static int imxfb_suspend(struct platform_device *dev, pm_message_t state) | |||
603 | 604 | ||
604 | static int imxfb_resume(struct platform_device *dev) | 605 | static int imxfb_resume(struct platform_device *dev) |
605 | { | 606 | { |
606 | struct imxfb_info *fbi = platform_get_drvdata(dev); | 607 | struct fb_info *info = platform_get_drvdata(dev); |
608 | struct imxfb_info *fbi = info->par; | ||
607 | 609 | ||
608 | pr_debug("%s\n", __func__); | 610 | pr_debug("%s\n", __func__); |
609 | 611 | ||
diff --git a/drivers/video/mx3fb.c b/drivers/video/mx3fb.c index 054ef29be479..772ba3f45e6f 100644 --- a/drivers/video/mx3fb.c +++ b/drivers/video/mx3fb.c | |||
@@ -324,8 +324,11 @@ static void sdc_enable_channel(struct mx3fb_info *mx3_fbi) | |||
324 | unsigned long flags; | 324 | unsigned long flags; |
325 | dma_cookie_t cookie; | 325 | dma_cookie_t cookie; |
326 | 326 | ||
327 | dev_dbg(mx3fb->dev, "mx3fbi %p, desc %p, sg %p\n", mx3_fbi, | 327 | if (mx3_fbi->txd) |
328 | to_tx_desc(mx3_fbi->txd), to_tx_desc(mx3_fbi->txd)->sg); | 328 | dev_dbg(mx3fb->dev, "mx3fbi %p, desc %p, sg %p\n", mx3_fbi, |
329 | to_tx_desc(mx3_fbi->txd), to_tx_desc(mx3_fbi->txd)->sg); | ||
330 | else | ||
331 | dev_dbg(mx3fb->dev, "mx3fbi %p, txd = NULL\n", mx3_fbi); | ||
329 | 332 | ||
330 | /* This enables the channel */ | 333 | /* This enables the channel */ |
331 | if (mx3_fbi->cookie < 0) { | 334 | if (mx3_fbi->cookie < 0) { |
@@ -646,6 +649,7 @@ static int sdc_set_global_alpha(struct mx3fb_data *mx3fb, bool enable, uint8_t a | |||
646 | 649 | ||
647 | static void sdc_set_brightness(struct mx3fb_data *mx3fb, uint8_t value) | 650 | static void sdc_set_brightness(struct mx3fb_data *mx3fb, uint8_t value) |
648 | { | 651 | { |
652 | dev_dbg(mx3fb->dev, "%s: value = %d\n", __func__, value); | ||
649 | /* This might be board-specific */ | 653 | /* This might be board-specific */ |
650 | mx3fb_write_reg(mx3fb, 0x03000000UL | value << 16, SDC_PWM_CTRL); | 654 | mx3fb_write_reg(mx3fb, 0x03000000UL | value << 16, SDC_PWM_CTRL); |
651 | return; | 655 | return; |
@@ -1486,12 +1490,12 @@ static int mx3fb_probe(struct platform_device *pdev) | |||
1486 | goto ersdc0; | 1490 | goto ersdc0; |
1487 | } | 1491 | } |
1488 | 1492 | ||
1493 | mx3fb->backlight_level = 255; | ||
1494 | |||
1489 | ret = init_fb_chan(mx3fb, to_idmac_chan(chan)); | 1495 | ret = init_fb_chan(mx3fb, to_idmac_chan(chan)); |
1490 | if (ret < 0) | 1496 | if (ret < 0) |
1491 | goto eisdc0; | 1497 | goto eisdc0; |
1492 | 1498 | ||
1493 | mx3fb->backlight_level = 255; | ||
1494 | |||
1495 | return 0; | 1499 | return 0; |
1496 | 1500 | ||
1497 | eisdc0: | 1501 | eisdc0: |
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig index 088f32f29a6e..050ee147592f 100644 --- a/drivers/watchdog/Kconfig +++ b/drivers/watchdog/Kconfig | |||
@@ -396,8 +396,8 @@ config SBC_FITPC2_WATCHDOG | |||
396 | tristate "Compulab SBC-FITPC2 watchdog" | 396 | tristate "Compulab SBC-FITPC2 watchdog" |
397 | depends on X86 | 397 | depends on X86 |
398 | ---help--- | 398 | ---help--- |
399 | This is the driver for the built-in watchdog timer on the fit-PC2 | 399 | This is the driver for the built-in watchdog timer on the fit-PC2, |
400 | Single-board computer made by Compulab. | 400 | fit-PC2i, CM-iAM single-board computers made by Compulab. |
401 | 401 | ||
402 | It`s possible to enable watchdog timer either from BIOS (F2) or from booted Linux. | 402 | It`s possible to enable watchdog timer either from BIOS (F2) or from booted Linux. |
403 | When "Watchdog Timer Value" enabled one can set 31-255 s operational range. | 403 | When "Watchdog Timer Value" enabled one can set 31-255 s operational range. |
diff --git a/drivers/watchdog/ixp2000_wdt.c b/drivers/watchdog/ixp2000_wdt.c index 4f4b35a20d84..3c79dc587958 100644 --- a/drivers/watchdog/ixp2000_wdt.c +++ b/drivers/watchdog/ixp2000_wdt.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/moduleparam.h> | 20 | #include <linux/moduleparam.h> |
21 | #include <linux/types.h> | 21 | #include <linux/types.h> |
22 | #include <linux/timer.h> | ||
22 | #include <linux/kernel.h> | 23 | #include <linux/kernel.h> |
23 | #include <linux/fs.h> | 24 | #include <linux/fs.h> |
24 | #include <linux/miscdevice.h> | 25 | #include <linux/miscdevice.h> |
diff --git a/drivers/watchdog/sbc_fitpc2_wdt.c b/drivers/watchdog/sbc_fitpc2_wdt.c index 91430a89107c..e6763d2a567b 100644 --- a/drivers/watchdog/sbc_fitpc2_wdt.c +++ b/drivers/watchdog/sbc_fitpc2_wdt.c | |||
@@ -46,9 +46,9 @@ static DEFINE_SPINLOCK(wdt_lock); | |||
46 | static void wdt_send_data(unsigned char command, unsigned char data) | 46 | static void wdt_send_data(unsigned char command, unsigned char data) |
47 | { | 47 | { |
48 | outb(command, COMMAND_PORT); | 48 | outb(command, COMMAND_PORT); |
49 | mdelay(100); | 49 | msleep(100); |
50 | outb(data, DATA_PORT); | 50 | outb(data, DATA_PORT); |
51 | mdelay(200); | 51 | msleep(200); |
52 | } | 52 | } |
53 | 53 | ||
54 | static void wdt_enable(void) | 54 | static void wdt_enable(void) |
@@ -202,11 +202,10 @@ static int __init fitpc2_wdt_init(void) | |||
202 | { | 202 | { |
203 | int err; | 203 | int err; |
204 | 204 | ||
205 | if (strcmp("SBC-FITPC2", dmi_get_system_info(DMI_BOARD_NAME))) { | 205 | if (!strstr(dmi_get_system_info(DMI_BOARD_NAME), "SBC-FITPC2")) |
206 | pr_info("board name is: %s. Should be SBC-FITPC2\n", | ||
207 | dmi_get_system_info(DMI_BOARD_NAME)); | ||
208 | return -ENODEV; | 206 | return -ENODEV; |
209 | } | 207 | |
208 | pr_info("%s found\n", dmi_get_system_info(DMI_BOARD_NAME)); | ||
210 | 209 | ||
211 | if (!request_region(COMMAND_PORT, 1, WATCHDOG_NAME)) { | 210 | if (!request_region(COMMAND_PORT, 1, WATCHDOG_NAME)) { |
212 | pr_err("I/O address 0x%04x already in use\n", COMMAND_PORT); | 211 | pr_err("I/O address 0x%04x already in use\n", COMMAND_PORT); |
diff --git a/fs/9p/v9fs.c b/fs/9p/v9fs.c index cf62b05e296a..7d6c2139891d 100644 --- a/fs/9p/v9fs.c +++ b/fs/9p/v9fs.c | |||
@@ -84,7 +84,7 @@ static const match_table_t tokens = { | |||
84 | 84 | ||
85 | static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) | 85 | static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) |
86 | { | 86 | { |
87 | char *options; | 87 | char *options, *tmp_options; |
88 | substring_t args[MAX_OPT_ARGS]; | 88 | substring_t args[MAX_OPT_ARGS]; |
89 | char *p; | 89 | char *p; |
90 | int option = 0; | 90 | int option = 0; |
@@ -102,9 +102,12 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) | |||
102 | if (!opts) | 102 | if (!opts) |
103 | return 0; | 103 | return 0; |
104 | 104 | ||
105 | options = kstrdup(opts, GFP_KERNEL); | 105 | tmp_options = kstrdup(opts, GFP_KERNEL); |
106 | if (!options) | 106 | if (!tmp_options) { |
107 | ret = -ENOMEM; | ||
107 | goto fail_option_alloc; | 108 | goto fail_option_alloc; |
109 | } | ||
110 | options = tmp_options; | ||
108 | 111 | ||
109 | while ((p = strsep(&options, ",")) != NULL) { | 112 | while ((p = strsep(&options, ",")) != NULL) { |
110 | int token; | 113 | int token; |
@@ -159,8 +162,12 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) | |||
159 | break; | 162 | break; |
160 | case Opt_cache: | 163 | case Opt_cache: |
161 | s = match_strdup(&args[0]); | 164 | s = match_strdup(&args[0]); |
162 | if (!s) | 165 | if (!s) { |
163 | goto fail_option_alloc; | 166 | ret = -ENOMEM; |
167 | P9_DPRINTK(P9_DEBUG_ERROR, | ||
168 | "problem allocating copy of cache arg\n"); | ||
169 | goto free_and_return; | ||
170 | } | ||
164 | 171 | ||
165 | if (strcmp(s, "loose") == 0) | 172 | if (strcmp(s, "loose") == 0) |
166 | v9ses->cache = CACHE_LOOSE; | 173 | v9ses->cache = CACHE_LOOSE; |
@@ -173,8 +180,12 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) | |||
173 | 180 | ||
174 | case Opt_access: | 181 | case Opt_access: |
175 | s = match_strdup(&args[0]); | 182 | s = match_strdup(&args[0]); |
176 | if (!s) | 183 | if (!s) { |
177 | goto fail_option_alloc; | 184 | ret = -ENOMEM; |
185 | P9_DPRINTK(P9_DEBUG_ERROR, | ||
186 | "problem allocating copy of access arg\n"); | ||
187 | goto free_and_return; | ||
188 | } | ||
178 | 189 | ||
179 | v9ses->flags &= ~V9FS_ACCESS_MASK; | 190 | v9ses->flags &= ~V9FS_ACCESS_MASK; |
180 | if (strcmp(s, "user") == 0) | 191 | if (strcmp(s, "user") == 0) |
@@ -194,13 +205,11 @@ static int v9fs_parse_options(struct v9fs_session_info *v9ses, char *opts) | |||
194 | continue; | 205 | continue; |
195 | } | 206 | } |
196 | } | 207 | } |
197 | kfree(options); | ||
198 | return ret; | ||
199 | 208 | ||
209 | free_and_return: | ||
210 | kfree(tmp_options); | ||
200 | fail_option_alloc: | 211 | fail_option_alloc: |
201 | P9_DPRINTK(P9_DEBUG_ERROR, | 212 | return ret; |
202 | "failed to allocate copy of option argument\n"); | ||
203 | return -ENOMEM; | ||
204 | } | 213 | } |
205 | 214 | ||
206 | /** | 215 | /** |
diff --git a/fs/9p/v9fs_vfs.h b/fs/9p/v9fs_vfs.h index 3a7560e35865..ed835836e0dc 100644 --- a/fs/9p/v9fs_vfs.h +++ b/fs/9p/v9fs_vfs.h | |||
@@ -60,3 +60,4 @@ void v9fs_dentry_release(struct dentry *); | |||
60 | int v9fs_uflags2omode(int uflags, int extended); | 60 | int v9fs_uflags2omode(int uflags, int extended); |
61 | 61 | ||
62 | ssize_t v9fs_file_readn(struct file *, char *, char __user *, u32, u64); | 62 | ssize_t v9fs_file_readn(struct file *, char *, char __user *, u32, u64); |
63 | void v9fs_blank_wstat(struct p9_wstat *wstat); | ||
diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c index 3902bf43a088..74a0461a9ac0 100644 --- a/fs/9p/vfs_file.c +++ b/fs/9p/vfs_file.c | |||
@@ -257,6 +257,23 @@ v9fs_file_write(struct file *filp, const char __user * data, | |||
257 | return total; | 257 | return total; |
258 | } | 258 | } |
259 | 259 | ||
260 | static int v9fs_file_fsync(struct file *filp, struct dentry *dentry, | ||
261 | int datasync) | ||
262 | { | ||
263 | struct p9_fid *fid; | ||
264 | struct p9_wstat wstat; | ||
265 | int retval; | ||
266 | |||
267 | P9_DPRINTK(P9_DEBUG_VFS, "filp %p dentry %p datasync %x\n", filp, | ||
268 | dentry, datasync); | ||
269 | |||
270 | fid = filp->private_data; | ||
271 | v9fs_blank_wstat(&wstat); | ||
272 | |||
273 | retval = p9_client_wstat(fid, &wstat); | ||
274 | return retval; | ||
275 | } | ||
276 | |||
260 | static const struct file_operations v9fs_cached_file_operations = { | 277 | static const struct file_operations v9fs_cached_file_operations = { |
261 | .llseek = generic_file_llseek, | 278 | .llseek = generic_file_llseek, |
262 | .read = do_sync_read, | 279 | .read = do_sync_read, |
@@ -266,6 +283,7 @@ static const struct file_operations v9fs_cached_file_operations = { | |||
266 | .release = v9fs_dir_release, | 283 | .release = v9fs_dir_release, |
267 | .lock = v9fs_file_lock, | 284 | .lock = v9fs_file_lock, |
268 | .mmap = generic_file_readonly_mmap, | 285 | .mmap = generic_file_readonly_mmap, |
286 | .fsync = v9fs_file_fsync, | ||
269 | }; | 287 | }; |
270 | 288 | ||
271 | const struct file_operations v9fs_file_operations = { | 289 | const struct file_operations v9fs_file_operations = { |
@@ -276,4 +294,5 @@ const struct file_operations v9fs_file_operations = { | |||
276 | .release = v9fs_dir_release, | 294 | .release = v9fs_dir_release, |
277 | .lock = v9fs_file_lock, | 295 | .lock = v9fs_file_lock, |
278 | .mmap = generic_file_readonly_mmap, | 296 | .mmap = generic_file_readonly_mmap, |
297 | .fsync = v9fs_file_fsync, | ||
279 | }; | 298 | }; |
diff --git a/fs/9p/vfs_inode.c b/fs/9p/vfs_inode.c index 9d03d1ebca6f..a407fa3388c0 100644 --- a/fs/9p/vfs_inode.c +++ b/fs/9p/vfs_inode.c | |||
@@ -176,7 +176,7 @@ int v9fs_uflags2omode(int uflags, int extended) | |||
176 | * | 176 | * |
177 | */ | 177 | */ |
178 | 178 | ||
179 | static void | 179 | void |
180 | v9fs_blank_wstat(struct p9_wstat *wstat) | 180 | v9fs_blank_wstat(struct p9_wstat *wstat) |
181 | { | 181 | { |
182 | wstat->type = ~0; | 182 | wstat->type = ~0; |
diff --git a/fs/9p/vfs_super.c b/fs/9p/vfs_super.c index 14a86448572c..69357c0d9899 100644 --- a/fs/9p/vfs_super.c +++ b/fs/9p/vfs_super.c | |||
@@ -188,7 +188,8 @@ static void v9fs_kill_super(struct super_block *s) | |||
188 | 188 | ||
189 | P9_DPRINTK(P9_DEBUG_VFS, " %p\n", s); | 189 | P9_DPRINTK(P9_DEBUG_VFS, " %p\n", s); |
190 | 190 | ||
191 | v9fs_dentry_release(s->s_root); /* clunk root */ | 191 | if (s->s_root) |
192 | v9fs_dentry_release(s->s_root); /* clunk root */ | ||
192 | 193 | ||
193 | kill_anon_super(s); | 194 | kill_anon_super(s); |
194 | 195 | ||
diff --git a/fs/affs/affs.h b/fs/affs/affs.h index e511dc621a2e..0e40caaba456 100644 --- a/fs/affs/affs.h +++ b/fs/affs/affs.h | |||
@@ -106,8 +106,8 @@ struct affs_sb_info { | |||
106 | u32 s_last_bmap; | 106 | u32 s_last_bmap; |
107 | struct buffer_head *s_bmap_bh; | 107 | struct buffer_head *s_bmap_bh; |
108 | char *s_prefix; /* Prefix for volumes and assigns. */ | 108 | char *s_prefix; /* Prefix for volumes and assigns. */ |
109 | int s_prefix_len; /* Length of prefix. */ | ||
110 | char s_volume[32]; /* Volume prefix for absolute symlinks. */ | 109 | char s_volume[32]; /* Volume prefix for absolute symlinks. */ |
110 | spinlock_t symlink_lock; /* protects the previous two */ | ||
111 | }; | 111 | }; |
112 | 112 | ||
113 | #define SF_INTL 0x0001 /* International filesystem. */ | 113 | #define SF_INTL 0x0001 /* International filesystem. */ |
diff --git a/fs/affs/namei.c b/fs/affs/namei.c index 960d336ec694..d70bbbac6b7b 100644 --- a/fs/affs/namei.c +++ b/fs/affs/namei.c | |||
@@ -341,10 +341,13 @@ affs_symlink(struct inode *dir, struct dentry *dentry, const char *symname) | |||
341 | p = (char *)AFFS_HEAD(bh)->table; | 341 | p = (char *)AFFS_HEAD(bh)->table; |
342 | lc = '/'; | 342 | lc = '/'; |
343 | if (*symname == '/') { | 343 | if (*symname == '/') { |
344 | struct affs_sb_info *sbi = AFFS_SB(sb); | ||
344 | while (*symname == '/') | 345 | while (*symname == '/') |
345 | symname++; | 346 | symname++; |
346 | while (AFFS_SB(sb)->s_volume[i]) /* Cannot overflow */ | 347 | spin_lock(&sbi->symlink_lock); |
347 | *p++ = AFFS_SB(sb)->s_volume[i++]; | 348 | while (sbi->s_volume[i]) /* Cannot overflow */ |
349 | *p++ = sbi->s_volume[i++]; | ||
350 | spin_unlock(&sbi->symlink_lock); | ||
348 | } | 351 | } |
349 | while (i < maxlen && (c = *symname++)) { | 352 | while (i < maxlen && (c = *symname++)) { |
350 | if (c == '.' && lc == '/' && *symname == '.' && symname[1] == '/') { | 353 | if (c == '.' && lc == '/' && *symname == '.' && symname[1] == '/') { |
diff --git a/fs/affs/super.c b/fs/affs/super.c index 104fdcb3a7fc..d41e9673cd97 100644 --- a/fs/affs/super.c +++ b/fs/affs/super.c | |||
@@ -203,7 +203,7 @@ parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s | |||
203 | switch (token) { | 203 | switch (token) { |
204 | case Opt_bs: | 204 | case Opt_bs: |
205 | if (match_int(&args[0], &n)) | 205 | if (match_int(&args[0], &n)) |
206 | return -EINVAL; | 206 | return 0; |
207 | if (n != 512 && n != 1024 && n != 2048 | 207 | if (n != 512 && n != 1024 && n != 2048 |
208 | && n != 4096) { | 208 | && n != 4096) { |
209 | printk ("AFFS: Invalid blocksize (512, 1024, 2048, 4096 allowed)\n"); | 209 | printk ("AFFS: Invalid blocksize (512, 1024, 2048, 4096 allowed)\n"); |
@@ -213,7 +213,7 @@ parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s | |||
213 | break; | 213 | break; |
214 | case Opt_mode: | 214 | case Opt_mode: |
215 | if (match_octal(&args[0], &option)) | 215 | if (match_octal(&args[0], &option)) |
216 | return 1; | 216 | return 0; |
217 | *mode = option & 0777; | 217 | *mode = option & 0777; |
218 | *mount_opts |= SF_SETMODE; | 218 | *mount_opts |= SF_SETMODE; |
219 | break; | 219 | break; |
@@ -221,8 +221,6 @@ parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s | |||
221 | *mount_opts |= SF_MUFS; | 221 | *mount_opts |= SF_MUFS; |
222 | break; | 222 | break; |
223 | case Opt_prefix: | 223 | case Opt_prefix: |
224 | /* Free any previous prefix */ | ||
225 | kfree(*prefix); | ||
226 | *prefix = match_strdup(&args[0]); | 224 | *prefix = match_strdup(&args[0]); |
227 | if (!*prefix) | 225 | if (!*prefix) |
228 | return 0; | 226 | return 0; |
@@ -233,21 +231,21 @@ parse_options(char *options, uid_t *uid, gid_t *gid, int *mode, int *reserved, s | |||
233 | break; | 231 | break; |
234 | case Opt_reserved: | 232 | case Opt_reserved: |
235 | if (match_int(&args[0], reserved)) | 233 | if (match_int(&args[0], reserved)) |
236 | return 1; | 234 | return 0; |
237 | break; | 235 | break; |
238 | case Opt_root: | 236 | case Opt_root: |
239 | if (match_int(&args[0], root)) | 237 | if (match_int(&args[0], root)) |
240 | return 1; | 238 | return 0; |
241 | break; | 239 | break; |
242 | case Opt_setgid: | 240 | case Opt_setgid: |
243 | if (match_int(&args[0], &option)) | 241 | if (match_int(&args[0], &option)) |
244 | return 1; | 242 | return 0; |
245 | *gid = option; | 243 | *gid = option; |
246 | *mount_opts |= SF_SETGID; | 244 | *mount_opts |= SF_SETGID; |
247 | break; | 245 | break; |
248 | case Opt_setuid: | 246 | case Opt_setuid: |
249 | if (match_int(&args[0], &option)) | 247 | if (match_int(&args[0], &option)) |
250 | return -EINVAL; | 248 | return 0; |
251 | *uid = option; | 249 | *uid = option; |
252 | *mount_opts |= SF_SETUID; | 250 | *mount_opts |= SF_SETUID; |
253 | break; | 251 | break; |
@@ -311,11 +309,14 @@ static int affs_fill_super(struct super_block *sb, void *data, int silent) | |||
311 | return -ENOMEM; | 309 | return -ENOMEM; |
312 | sb->s_fs_info = sbi; | 310 | sb->s_fs_info = sbi; |
313 | mutex_init(&sbi->s_bmlock); | 311 | mutex_init(&sbi->s_bmlock); |
312 | spin_lock_init(&sbi->symlink_lock); | ||
314 | 313 | ||
315 | if (!parse_options(data,&uid,&gid,&i,&reserved,&root_block, | 314 | if (!parse_options(data,&uid,&gid,&i,&reserved,&root_block, |
316 | &blocksize,&sbi->s_prefix, | 315 | &blocksize,&sbi->s_prefix, |
317 | sbi->s_volume, &mount_flags)) { | 316 | sbi->s_volume, &mount_flags)) { |
318 | printk(KERN_ERR "AFFS: Error parsing options\n"); | 317 | printk(KERN_ERR "AFFS: Error parsing options\n"); |
318 | kfree(sbi->s_prefix); | ||
319 | kfree(sbi); | ||
319 | return -EINVAL; | 320 | return -EINVAL; |
320 | } | 321 | } |
321 | /* N.B. after this point s_prefix must be released */ | 322 | /* N.B. after this point s_prefix must be released */ |
@@ -516,14 +517,18 @@ affs_remount(struct super_block *sb, int *flags, char *data) | |||
516 | unsigned long mount_flags; | 517 | unsigned long mount_flags; |
517 | int res = 0; | 518 | int res = 0; |
518 | char *new_opts = kstrdup(data, GFP_KERNEL); | 519 | char *new_opts = kstrdup(data, GFP_KERNEL); |
520 | char volume[32]; | ||
521 | char *prefix = NULL; | ||
519 | 522 | ||
520 | pr_debug("AFFS: remount(flags=0x%x,opts=\"%s\")\n",*flags,data); | 523 | pr_debug("AFFS: remount(flags=0x%x,opts=\"%s\")\n",*flags,data); |
521 | 524 | ||
522 | *flags |= MS_NODIRATIME; | 525 | *flags |= MS_NODIRATIME; |
523 | 526 | ||
527 | memcpy(volume, sbi->s_volume, 32); | ||
524 | if (!parse_options(data, &uid, &gid, &mode, &reserved, &root_block, | 528 | if (!parse_options(data, &uid, &gid, &mode, &reserved, &root_block, |
525 | &blocksize, &sbi->s_prefix, sbi->s_volume, | 529 | &blocksize, &prefix, volume, |
526 | &mount_flags)) { | 530 | &mount_flags)) { |
531 | kfree(prefix); | ||
527 | kfree(new_opts); | 532 | kfree(new_opts); |
528 | return -EINVAL; | 533 | return -EINVAL; |
529 | } | 534 | } |
@@ -534,6 +539,14 @@ affs_remount(struct super_block *sb, int *flags, char *data) | |||
534 | sbi->s_mode = mode; | 539 | sbi->s_mode = mode; |
535 | sbi->s_uid = uid; | 540 | sbi->s_uid = uid; |
536 | sbi->s_gid = gid; | 541 | sbi->s_gid = gid; |
542 | /* protect against readers */ | ||
543 | spin_lock(&sbi->symlink_lock); | ||
544 | if (prefix) { | ||
545 | kfree(sbi->s_prefix); | ||
546 | sbi->s_prefix = prefix; | ||
547 | } | ||
548 | memcpy(sbi->s_volume, volume, 32); | ||
549 | spin_unlock(&sbi->symlink_lock); | ||
537 | 550 | ||
538 | if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) { | 551 | if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) { |
539 | unlock_kernel(); | 552 | unlock_kernel(); |
diff --git a/fs/affs/symlink.c b/fs/affs/symlink.c index 41782539c907..ee00f08c4f53 100644 --- a/fs/affs/symlink.c +++ b/fs/affs/symlink.c | |||
@@ -20,7 +20,6 @@ static int affs_symlink_readpage(struct file *file, struct page *page) | |||
20 | int i, j; | 20 | int i, j; |
21 | char c; | 21 | char c; |
22 | char lc; | 22 | char lc; |
23 | char *pf; | ||
24 | 23 | ||
25 | pr_debug("AFFS: follow_link(ino=%lu)\n",inode->i_ino); | 24 | pr_debug("AFFS: follow_link(ino=%lu)\n",inode->i_ino); |
26 | 25 | ||
@@ -32,11 +31,15 @@ static int affs_symlink_readpage(struct file *file, struct page *page) | |||
32 | j = 0; | 31 | j = 0; |
33 | lf = (struct slink_front *)bh->b_data; | 32 | lf = (struct slink_front *)bh->b_data; |
34 | lc = 0; | 33 | lc = 0; |
35 | pf = AFFS_SB(inode->i_sb)->s_prefix ? AFFS_SB(inode->i_sb)->s_prefix : "/"; | ||
36 | 34 | ||
37 | if (strchr(lf->symname,':')) { /* Handle assign or volume name */ | 35 | if (strchr(lf->symname,':')) { /* Handle assign or volume name */ |
36 | struct affs_sb_info *sbi = AFFS_SB(inode->i_sb); | ||
37 | char *pf; | ||
38 | spin_lock(&sbi->symlink_lock); | ||
39 | pf = sbi->s_prefix ? sbi->s_prefix : "/"; | ||
38 | while (i < 1023 && (c = pf[i])) | 40 | while (i < 1023 && (c = pf[i])) |
39 | link[i++] = c; | 41 | link[i++] = c; |
42 | spin_unlock(&sbi->symlink_lock); | ||
40 | while (i < 1023 && lf->symname[j] != ':') | 43 | while (i < 1023 && lf->symname[j] != ':') |
41 | link[i++] = lf->symname[j++]; | 44 | link[i++] = lf->symname[j++]; |
42 | if (i < 1023) | 45 | if (i < 1023) |
diff --git a/fs/befs/linuxvfs.c b/fs/befs/linuxvfs.c index 33baf27fac78..34ddda888e63 100644 --- a/fs/befs/linuxvfs.c +++ b/fs/befs/linuxvfs.c | |||
@@ -873,6 +873,7 @@ befs_fill_super(struct super_block *sb, void *data, int silent) | |||
873 | brelse(bh); | 873 | brelse(bh); |
874 | 874 | ||
875 | unacquire_priv_sbp: | 875 | unacquire_priv_sbp: |
876 | kfree(befs_sb->mount_opts.iocharset); | ||
876 | kfree(sb->s_fs_info); | 877 | kfree(sb->s_fs_info); |
877 | 878 | ||
878 | unacquire_none: | 879 | unacquire_none: |
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c index 6f60336c6628..8f3d9fd89604 100644 --- a/fs/bfs/inode.c +++ b/fs/bfs/inode.c | |||
@@ -353,35 +353,35 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
353 | struct inode *inode; | 353 | struct inode *inode; |
354 | unsigned i, imap_len; | 354 | unsigned i, imap_len; |
355 | struct bfs_sb_info *info; | 355 | struct bfs_sb_info *info; |
356 | long ret = -EINVAL; | 356 | int ret = -EINVAL; |
357 | unsigned long i_sblock, i_eblock, i_eoff, s_size; | 357 | unsigned long i_sblock, i_eblock, i_eoff, s_size; |
358 | 358 | ||
359 | info = kzalloc(sizeof(*info), GFP_KERNEL); | 359 | info = kzalloc(sizeof(*info), GFP_KERNEL); |
360 | if (!info) | 360 | if (!info) |
361 | return -ENOMEM; | 361 | return -ENOMEM; |
362 | mutex_init(&info->bfs_lock); | ||
362 | s->s_fs_info = info; | 363 | s->s_fs_info = info; |
363 | 364 | ||
364 | sb_set_blocksize(s, BFS_BSIZE); | 365 | sb_set_blocksize(s, BFS_BSIZE); |
365 | 366 | ||
366 | bh = sb_bread(s, 0); | 367 | info->si_sbh = sb_bread(s, 0); |
367 | if(!bh) | 368 | if (!info->si_sbh) |
368 | goto out; | 369 | goto out; |
369 | bfs_sb = (struct bfs_super_block *)bh->b_data; | 370 | bfs_sb = (struct bfs_super_block *)info->si_sbh->b_data; |
370 | if (le32_to_cpu(bfs_sb->s_magic) != BFS_MAGIC) { | 371 | if (le32_to_cpu(bfs_sb->s_magic) != BFS_MAGIC) { |
371 | if (!silent) | 372 | if (!silent) |
372 | printf("No BFS filesystem on %s (magic=%08x)\n", | 373 | printf("No BFS filesystem on %s (magic=%08x)\n", |
373 | s->s_id, le32_to_cpu(bfs_sb->s_magic)); | 374 | s->s_id, le32_to_cpu(bfs_sb->s_magic)); |
374 | goto out; | 375 | goto out1; |
375 | } | 376 | } |
376 | if (BFS_UNCLEAN(bfs_sb, s) && !silent) | 377 | if (BFS_UNCLEAN(bfs_sb, s) && !silent) |
377 | printf("%s is unclean, continuing\n", s->s_id); | 378 | printf("%s is unclean, continuing\n", s->s_id); |
378 | 379 | ||
379 | s->s_magic = BFS_MAGIC; | 380 | s->s_magic = BFS_MAGIC; |
380 | info->si_sbh = bh; | ||
381 | 381 | ||
382 | if (le32_to_cpu(bfs_sb->s_start) > le32_to_cpu(bfs_sb->s_end)) { | 382 | if (le32_to_cpu(bfs_sb->s_start) > le32_to_cpu(bfs_sb->s_end)) { |
383 | printf("Superblock is corrupted\n"); | 383 | printf("Superblock is corrupted\n"); |
384 | goto out; | 384 | goto out1; |
385 | } | 385 | } |
386 | 386 | ||
387 | info->si_lasti = (le32_to_cpu(bfs_sb->s_start) - BFS_BSIZE) / | 387 | info->si_lasti = (le32_to_cpu(bfs_sb->s_start) - BFS_BSIZE) / |
@@ -390,7 +390,7 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
390 | imap_len = (info->si_lasti / 8) + 1; | 390 | imap_len = (info->si_lasti / 8) + 1; |
391 | info->si_imap = kzalloc(imap_len, GFP_KERNEL); | 391 | info->si_imap = kzalloc(imap_len, GFP_KERNEL); |
392 | if (!info->si_imap) | 392 | if (!info->si_imap) |
393 | goto out; | 393 | goto out1; |
394 | for (i = 0; i < BFS_ROOT_INO; i++) | 394 | for (i = 0; i < BFS_ROOT_INO; i++) |
395 | set_bit(i, info->si_imap); | 395 | set_bit(i, info->si_imap); |
396 | 396 | ||
@@ -398,15 +398,13 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
398 | inode = bfs_iget(s, BFS_ROOT_INO); | 398 | inode = bfs_iget(s, BFS_ROOT_INO); |
399 | if (IS_ERR(inode)) { | 399 | if (IS_ERR(inode)) { |
400 | ret = PTR_ERR(inode); | 400 | ret = PTR_ERR(inode); |
401 | kfree(info->si_imap); | 401 | goto out2; |
402 | goto out; | ||
403 | } | 402 | } |
404 | s->s_root = d_alloc_root(inode); | 403 | s->s_root = d_alloc_root(inode); |
405 | if (!s->s_root) { | 404 | if (!s->s_root) { |
406 | iput(inode); | 405 | iput(inode); |
407 | ret = -ENOMEM; | 406 | ret = -ENOMEM; |
408 | kfree(info->si_imap); | 407 | goto out2; |
409 | goto out; | ||
410 | } | 408 | } |
411 | 409 | ||
412 | info->si_blocks = (le32_to_cpu(bfs_sb->s_end) + 1) >> BFS_BSIZE_BITS; | 410 | info->si_blocks = (le32_to_cpu(bfs_sb->s_end) + 1) >> BFS_BSIZE_BITS; |
@@ -419,10 +417,8 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
419 | bh = sb_bread(s, info->si_blocks - 1); | 417 | bh = sb_bread(s, info->si_blocks - 1); |
420 | if (!bh) { | 418 | if (!bh) { |
421 | printf("Last block not available: %lu\n", info->si_blocks - 1); | 419 | printf("Last block not available: %lu\n", info->si_blocks - 1); |
422 | iput(inode); | ||
423 | ret = -EIO; | 420 | ret = -EIO; |
424 | kfree(info->si_imap); | 421 | goto out3; |
425 | goto out; | ||
426 | } | 422 | } |
427 | brelse(bh); | 423 | brelse(bh); |
428 | 424 | ||
@@ -459,11 +455,8 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
459 | printf("Inode 0x%08x corrupted\n", i); | 455 | printf("Inode 0x%08x corrupted\n", i); |
460 | 456 | ||
461 | brelse(bh); | 457 | brelse(bh); |
462 | s->s_root = NULL; | 458 | ret = -EIO; |
463 | kfree(info->si_imap); | 459 | goto out3; |
464 | kfree(info); | ||
465 | s->s_fs_info = NULL; | ||
466 | return -EIO; | ||
467 | } | 460 | } |
468 | 461 | ||
469 | if (!di->i_ino) { | 462 | if (!di->i_ino) { |
@@ -483,11 +476,17 @@ static int bfs_fill_super(struct super_block *s, void *data, int silent) | |||
483 | s->s_dirt = 1; | 476 | s->s_dirt = 1; |
484 | } | 477 | } |
485 | dump_imap("read_super", s); | 478 | dump_imap("read_super", s); |
486 | mutex_init(&info->bfs_lock); | ||
487 | return 0; | 479 | return 0; |
488 | 480 | ||
481 | out3: | ||
482 | dput(s->s_root); | ||
483 | s->s_root = NULL; | ||
484 | out2: | ||
485 | kfree(info->si_imap); | ||
486 | out1: | ||
487 | brelse(info->si_sbh); | ||
489 | out: | 488 | out: |
490 | brelse(bh); | 489 | mutex_destroy(&info->bfs_lock); |
491 | kfree(info); | 490 | kfree(info); |
492 | s->s_fs_info = NULL; | 491 | s->s_fs_info = NULL; |
493 | return ret; | 492 | return ret; |
diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c index 346b69405363..fdd397099172 100644 --- a/fs/binfmt_aout.c +++ b/fs/binfmt_aout.c | |||
@@ -264,6 +264,7 @@ static int load_aout_binary(struct linux_binprm * bprm, struct pt_regs * regs) | |||
264 | #else | 264 | #else |
265 | set_personality(PER_LINUX); | 265 | set_personality(PER_LINUX); |
266 | #endif | 266 | #endif |
267 | setup_new_exec(bprm); | ||
267 | 268 | ||
268 | current->mm->end_code = ex.a_text + | 269 | current->mm->end_code = ex.a_text + |
269 | (current->mm->start_code = N_TXTADDR(ex)); | 270 | (current->mm->start_code = N_TXTADDR(ex)); |
diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index edd90c49003c..fd5b2ea5d299 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c | |||
@@ -662,27 +662,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
662 | if (elf_interpreter[elf_ppnt->p_filesz - 1] != '\0') | 662 | if (elf_interpreter[elf_ppnt->p_filesz - 1] != '\0') |
663 | goto out_free_interp; | 663 | goto out_free_interp; |
664 | 664 | ||
665 | /* | ||
666 | * The early SET_PERSONALITY here is so that the lookup | ||
667 | * for the interpreter happens in the namespace of the | ||
668 | * to-be-execed image. SET_PERSONALITY can select an | ||
669 | * alternate root. | ||
670 | * | ||
671 | * However, SET_PERSONALITY is NOT allowed to switch | ||
672 | * this task into the new images's memory mapping | ||
673 | * policy - that is, TASK_SIZE must still evaluate to | ||
674 | * that which is appropriate to the execing application. | ||
675 | * This is because exit_mmap() needs to have TASK_SIZE | ||
676 | * evaluate to the size of the old image. | ||
677 | * | ||
678 | * So if (say) a 64-bit application is execing a 32-bit | ||
679 | * application it is the architecture's responsibility | ||
680 | * to defer changing the value of TASK_SIZE until the | ||
681 | * switch really is going to happen - do this in | ||
682 | * flush_thread(). - akpm | ||
683 | */ | ||
684 | SET_PERSONALITY(loc->elf_ex); | ||
685 | |||
686 | interpreter = open_exec(elf_interpreter); | 665 | interpreter = open_exec(elf_interpreter); |
687 | retval = PTR_ERR(interpreter); | 666 | retval = PTR_ERR(interpreter); |
688 | if (IS_ERR(interpreter)) | 667 | if (IS_ERR(interpreter)) |
@@ -730,9 +709,6 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
730 | /* Verify the interpreter has a valid arch */ | 709 | /* Verify the interpreter has a valid arch */ |
731 | if (!elf_check_arch(&loc->interp_elf_ex)) | 710 | if (!elf_check_arch(&loc->interp_elf_ex)) |
732 | goto out_free_dentry; | 711 | goto out_free_dentry; |
733 | } else { | ||
734 | /* Executables without an interpreter also need a personality */ | ||
735 | SET_PERSONALITY(loc->elf_ex); | ||
736 | } | 712 | } |
737 | 713 | ||
738 | /* Flush all traces of the currently running executable */ | 714 | /* Flush all traces of the currently running executable */ |
@@ -752,7 +728,8 @@ static int load_elf_binary(struct linux_binprm *bprm, struct pt_regs *regs) | |||
752 | 728 | ||
753 | if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) | 729 | if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space) |
754 | current->flags |= PF_RANDOMIZE; | 730 | current->flags |= PF_RANDOMIZE; |
755 | arch_pick_mmap_layout(current->mm); | 731 | |
732 | setup_new_exec(bprm); | ||
756 | 733 | ||
757 | /* Do this so that we can load the interpreter, if need be. We will | 734 | /* Do this so that we can load the interpreter, if need be. We will |
758 | change some of these later */ | 735 | change some of these later */ |
diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c index c57d9ce5ff7e..18d77297ccc8 100644 --- a/fs/binfmt_elf_fdpic.c +++ b/fs/binfmt_elf_fdpic.c | |||
@@ -321,6 +321,9 @@ static int load_elf_fdpic_binary(struct linux_binprm *bprm, | |||
321 | set_personality(PER_LINUX_FDPIC); | 321 | set_personality(PER_LINUX_FDPIC); |
322 | if (elf_read_implies_exec(&exec_params.hdr, executable_stack)) | 322 | if (elf_read_implies_exec(&exec_params.hdr, executable_stack)) |
323 | current->personality |= READ_IMPLIES_EXEC; | 323 | current->personality |= READ_IMPLIES_EXEC; |
324 | |||
325 | setup_new_exec(bprm); | ||
326 | |||
324 | set_binfmt(&elf_fdpic_format); | 327 | set_binfmt(&elf_fdpic_format); |
325 | 328 | ||
326 | current->mm->start_code = 0; | 329 | current->mm->start_code = 0; |
diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index d4a00ea1054c..42c6b4a54445 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c | |||
@@ -519,6 +519,7 @@ static int load_flat_file(struct linux_binprm * bprm, | |||
519 | 519 | ||
520 | /* OK, This is the point of no return */ | 520 | /* OK, This is the point of no return */ |
521 | set_personality(PER_LINUX_32BIT); | 521 | set_personality(PER_LINUX_32BIT); |
522 | setup_new_exec(bprm); | ||
522 | } | 523 | } |
523 | 524 | ||
524 | /* | 525 | /* |
diff --git a/fs/binfmt_som.c b/fs/binfmt_som.c index 2a9b5330cc5e..cc8560f6c9b0 100644 --- a/fs/binfmt_som.c +++ b/fs/binfmt_som.c | |||
@@ -227,6 +227,7 @@ load_som_binary(struct linux_binprm * bprm, struct pt_regs * regs) | |||
227 | /* OK, This is the point of no return */ | 227 | /* OK, This is the point of no return */ |
228 | current->flags &= ~PF_FORKNOEXEC; | 228 | current->flags &= ~PF_FORKNOEXEC; |
229 | current->personality = PER_HPUX; | 229 | current->personality = PER_HPUX; |
230 | setup_new_exec(bprm); | ||
230 | 231 | ||
231 | /* Set the task size for HP-UX processes such that | 232 | /* Set the task size for HP-UX processes such that |
232 | * the gateway page is outside the address space. | 233 | * the gateway page is outside the address space. |
diff --git a/fs/bio-integrity.c b/fs/bio-integrity.c index 49a34e7f7306..a16f29e888cd 100644 --- a/fs/bio-integrity.c +++ b/fs/bio-integrity.c | |||
@@ -61,7 +61,7 @@ static inline unsigned int vecs_to_idx(unsigned int nr) | |||
61 | 61 | ||
62 | static inline int use_bip_pool(unsigned int idx) | 62 | static inline int use_bip_pool(unsigned int idx) |
63 | { | 63 | { |
64 | if (idx == BIOVEC_NR_POOLS) | 64 | if (idx == BIOVEC_MAX_IDX) |
65 | return 1; | 65 | return 1; |
66 | 66 | ||
67 | return 0; | 67 | return 0; |
@@ -95,6 +95,7 @@ struct bio_integrity_payload *bio_integrity_alloc_bioset(struct bio *bio, | |||
95 | 95 | ||
96 | /* Use mempool if lower order alloc failed or max vecs were requested */ | 96 | /* Use mempool if lower order alloc failed or max vecs were requested */ |
97 | if (bip == NULL) { | 97 | if (bip == NULL) { |
98 | idx = BIOVEC_MAX_IDX; /* so we free the payload properly later */ | ||
98 | bip = mempool_alloc(bs->bio_integrity_pool, gfp_mask); | 99 | bip = mempool_alloc(bs->bio_integrity_pool, gfp_mask); |
99 | 100 | ||
100 | if (unlikely(bip == NULL)) { | 101 | if (unlikely(bip == NULL)) { |
@@ -542,13 +542,18 @@ static int __bio_add_page(struct request_queue *q, struct bio *bio, struct page | |||
542 | 542 | ||
543 | if (page == prev->bv_page && | 543 | if (page == prev->bv_page && |
544 | offset == prev->bv_offset + prev->bv_len) { | 544 | offset == prev->bv_offset + prev->bv_len) { |
545 | unsigned int prev_bv_len = prev->bv_len; | ||
545 | prev->bv_len += len; | 546 | prev->bv_len += len; |
546 | 547 | ||
547 | if (q->merge_bvec_fn) { | 548 | if (q->merge_bvec_fn) { |
548 | struct bvec_merge_data bvm = { | 549 | struct bvec_merge_data bvm = { |
550 | /* prev_bvec is already charged in | ||
551 | bi_size, discharge it in order to | ||
552 | simulate merging updated prev_bvec | ||
553 | as new bvec. */ | ||
549 | .bi_bdev = bio->bi_bdev, | 554 | .bi_bdev = bio->bi_bdev, |
550 | .bi_sector = bio->bi_sector, | 555 | .bi_sector = bio->bi_sector, |
551 | .bi_size = bio->bi_size, | 556 | .bi_size = bio->bi_size - prev_bv_len, |
552 | .bi_rw = bio->bi_rw, | 557 | .bi_rw = bio->bi_rw, |
553 | }; | 558 | }; |
554 | 559 | ||
diff --git a/fs/block_dev.c b/fs/block_dev.c index 73d6a735b8f3..d11d0289f3d2 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c | |||
@@ -246,7 +246,8 @@ struct super_block *freeze_bdev(struct block_device *bdev) | |||
246 | if (!sb) | 246 | if (!sb) |
247 | goto out; | 247 | goto out; |
248 | if (sb->s_flags & MS_RDONLY) { | 248 | if (sb->s_flags & MS_RDONLY) { |
249 | deactivate_locked_super(sb); | 249 | sb->s_frozen = SB_FREEZE_TRANS; |
250 | up_write(&sb->s_umount); | ||
250 | mutex_unlock(&bdev->bd_fsfreeze_mutex); | 251 | mutex_unlock(&bdev->bd_fsfreeze_mutex); |
251 | return sb; | 252 | return sb; |
252 | } | 253 | } |
@@ -307,7 +308,7 @@ int thaw_bdev(struct block_device *bdev, struct super_block *sb) | |||
307 | BUG_ON(sb->s_bdev != bdev); | 308 | BUG_ON(sb->s_bdev != bdev); |
308 | down_write(&sb->s_umount); | 309 | down_write(&sb->s_umount); |
309 | if (sb->s_flags & MS_RDONLY) | 310 | if (sb->s_flags & MS_RDONLY) |
310 | goto out_deactivate; | 311 | goto out_unfrozen; |
311 | 312 | ||
312 | if (sb->s_op->unfreeze_fs) { | 313 | if (sb->s_op->unfreeze_fs) { |
313 | error = sb->s_op->unfreeze_fs(sb); | 314 | error = sb->s_op->unfreeze_fs(sb); |
@@ -321,11 +322,11 @@ int thaw_bdev(struct block_device *bdev, struct super_block *sb) | |||
321 | } | 322 | } |
322 | } | 323 | } |
323 | 324 | ||
325 | out_unfrozen: | ||
324 | sb->s_frozen = SB_UNFROZEN; | 326 | sb->s_frozen = SB_UNFROZEN; |
325 | smp_wmb(); | 327 | smp_wmb(); |
326 | wake_up(&sb->s_wait_unfrozen); | 328 | wake_up(&sb->s_wait_unfrozen); |
327 | 329 | ||
328 | out_deactivate: | ||
329 | if (sb) | 330 | if (sb) |
330 | deactivate_locked_super(sb); | 331 | deactivate_locked_super(sb); |
331 | out_unlock: | 332 | out_unlock: |
diff --git a/fs/btrfs/acl.c b/fs/btrfs/acl.c index 54f4798ab46a..6df6d6ed74fd 100644 --- a/fs/btrfs/acl.c +++ b/fs/btrfs/acl.c | |||
@@ -244,6 +244,7 @@ int btrfs_init_acl(struct btrfs_trans_handle *trans, | |||
244 | ACL_TYPE_ACCESS); | 244 | ACL_TYPE_ACCESS); |
245 | } | 245 | } |
246 | } | 246 | } |
247 | posix_acl_release(clone); | ||
247 | } | 248 | } |
248 | failed: | 249 | failed: |
249 | posix_acl_release(acl); | 250 | posix_acl_release(acl); |
diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 9f806dd04c27..2aa8ec6a0981 100644 --- a/fs/btrfs/ctree.h +++ b/fs/btrfs/ctree.h | |||
@@ -1161,6 +1161,7 @@ struct btrfs_root { | |||
1161 | #define BTRFS_MOUNT_SSD_SPREAD (1 << 8) | 1161 | #define BTRFS_MOUNT_SSD_SPREAD (1 << 8) |
1162 | #define BTRFS_MOUNT_NOSSD (1 << 9) | 1162 | #define BTRFS_MOUNT_NOSSD (1 << 9) |
1163 | #define BTRFS_MOUNT_DISCARD (1 << 10) | 1163 | #define BTRFS_MOUNT_DISCARD (1 << 10) |
1164 | #define BTRFS_MOUNT_FORCE_COMPRESS (1 << 11) | ||
1164 | 1165 | ||
1165 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) | 1166 | #define btrfs_clear_opt(o, opt) ((o) &= ~BTRFS_MOUNT_##opt) |
1166 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) | 1167 | #define btrfs_set_opt(o, opt) ((o) |= BTRFS_MOUNT_##opt) |
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 009e3bd18f23..2b59201b955c 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c | |||
@@ -1982,7 +1982,12 @@ struct btrfs_root *open_ctree(struct super_block *sb, | |||
1982 | 1982 | ||
1983 | if (!(sb->s_flags & MS_RDONLY)) { | 1983 | if (!(sb->s_flags & MS_RDONLY)) { |
1984 | ret = btrfs_recover_relocation(tree_root); | 1984 | ret = btrfs_recover_relocation(tree_root); |
1985 | BUG_ON(ret); | 1985 | if (ret < 0) { |
1986 | printk(KERN_WARNING | ||
1987 | "btrfs: failed to recover relocation\n"); | ||
1988 | err = -EINVAL; | ||
1989 | goto fail_trans_kthread; | ||
1990 | } | ||
1986 | } | 1991 | } |
1987 | 1992 | ||
1988 | location.objectid = BTRFS_FS_TREE_OBJECTID; | 1993 | location.objectid = BTRFS_FS_TREE_OBJECTID; |
@@ -1993,6 +1998,12 @@ struct btrfs_root *open_ctree(struct super_block *sb, | |||
1993 | if (!fs_info->fs_root) | 1998 | if (!fs_info->fs_root) |
1994 | goto fail_trans_kthread; | 1999 | goto fail_trans_kthread; |
1995 | 2000 | ||
2001 | if (!(sb->s_flags & MS_RDONLY)) { | ||
2002 | down_read(&fs_info->cleanup_work_sem); | ||
2003 | btrfs_orphan_cleanup(fs_info->fs_root); | ||
2004 | up_read(&fs_info->cleanup_work_sem); | ||
2005 | } | ||
2006 | |||
1996 | return tree_root; | 2007 | return tree_root; |
1997 | 2008 | ||
1998 | fail_trans_kthread: | 2009 | fail_trans_kthread: |
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 432a2da4641e..559f72489b3b 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c | |||
@@ -5402,10 +5402,6 @@ static noinline int walk_down_tree(struct btrfs_trans_handle *trans, | |||
5402 | int ret; | 5402 | int ret; |
5403 | 5403 | ||
5404 | while (level >= 0) { | 5404 | while (level >= 0) { |
5405 | if (path->slots[level] >= | ||
5406 | btrfs_header_nritems(path->nodes[level])) | ||
5407 | break; | ||
5408 | |||
5409 | ret = walk_down_proc(trans, root, path, wc, lookup_info); | 5405 | ret = walk_down_proc(trans, root, path, wc, lookup_info); |
5410 | if (ret > 0) | 5406 | if (ret > 0) |
5411 | break; | 5407 | break; |
@@ -5413,6 +5409,10 @@ static noinline int walk_down_tree(struct btrfs_trans_handle *trans, | |||
5413 | if (level == 0) | 5409 | if (level == 0) |
5414 | break; | 5410 | break; |
5415 | 5411 | ||
5412 | if (path->slots[level] >= | ||
5413 | btrfs_header_nritems(path->nodes[level])) | ||
5414 | break; | ||
5415 | |||
5416 | ret = do_walk_down(trans, root, path, wc, &lookup_info); | 5416 | ret = do_walk_down(trans, root, path, wc, &lookup_info); |
5417 | if (ret > 0) { | 5417 | if (ret > 0) { |
5418 | path->slots[level]++; | 5418 | path->slots[level]++; |
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 96577e8bf9fd..b177ed319612 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c | |||
@@ -3165,10 +3165,9 @@ struct extent_buffer *alloc_extent_buffer(struct extent_io_tree *tree, | |||
3165 | spin_unlock(&tree->buffer_lock); | 3165 | spin_unlock(&tree->buffer_lock); |
3166 | goto free_eb; | 3166 | goto free_eb; |
3167 | } | 3167 | } |
3168 | spin_unlock(&tree->buffer_lock); | ||
3169 | |||
3170 | /* add one reference for the tree */ | 3168 | /* add one reference for the tree */ |
3171 | atomic_inc(&eb->refs); | 3169 | atomic_inc(&eb->refs); |
3170 | spin_unlock(&tree->buffer_lock); | ||
3172 | return eb; | 3171 | return eb; |
3173 | 3172 | ||
3174 | free_eb: | 3173 | free_eb: |
diff --git a/fs/btrfs/extent_map.c b/fs/btrfs/extent_map.c index 46bea0f4dc7b..428fcac45f90 100644 --- a/fs/btrfs/extent_map.c +++ b/fs/btrfs/extent_map.c | |||
@@ -155,20 +155,6 @@ static struct rb_node *__tree_search(struct rb_root *root, u64 offset, | |||
155 | return NULL; | 155 | return NULL; |
156 | } | 156 | } |
157 | 157 | ||
158 | /* | ||
159 | * look for an offset in the tree, and if it can't be found, return | ||
160 | * the first offset we can find smaller than 'offset'. | ||
161 | */ | ||
162 | static inline struct rb_node *tree_search(struct rb_root *root, u64 offset) | ||
163 | { | ||
164 | struct rb_node *prev; | ||
165 | struct rb_node *ret; | ||
166 | ret = __tree_search(root, offset, &prev, NULL); | ||
167 | if (!ret) | ||
168 | return prev; | ||
169 | return ret; | ||
170 | } | ||
171 | |||
172 | /* check to see if two extent_map structs are adjacent and safe to merge */ | 158 | /* check to see if two extent_map structs are adjacent and safe to merge */ |
173 | static int mergable_maps(struct extent_map *prev, struct extent_map *next) | 159 | static int mergable_maps(struct extent_map *prev, struct extent_map *next) |
174 | { | 160 | { |
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index c02033596f02..6ed434ac037f 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c | |||
@@ -720,13 +720,15 @@ again: | |||
720 | inode->i_ino, orig_offset); | 720 | inode->i_ino, orig_offset); |
721 | BUG_ON(ret); | 721 | BUG_ON(ret); |
722 | } | 722 | } |
723 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
724 | struct btrfs_file_extent_item); | ||
725 | if (del_nr == 0) { | 723 | if (del_nr == 0) { |
724 | fi = btrfs_item_ptr(leaf, path->slots[0], | ||
725 | struct btrfs_file_extent_item); | ||
726 | btrfs_set_file_extent_type(leaf, fi, | 726 | btrfs_set_file_extent_type(leaf, fi, |
727 | BTRFS_FILE_EXTENT_REG); | 727 | BTRFS_FILE_EXTENT_REG); |
728 | btrfs_mark_buffer_dirty(leaf); | 728 | btrfs_mark_buffer_dirty(leaf); |
729 | } else { | 729 | } else { |
730 | fi = btrfs_item_ptr(leaf, del_slot - 1, | ||
731 | struct btrfs_file_extent_item); | ||
730 | btrfs_set_file_extent_type(leaf, fi, | 732 | btrfs_set_file_extent_type(leaf, fi, |
731 | BTRFS_FILE_EXTENT_REG); | 733 | BTRFS_FILE_EXTENT_REG); |
732 | btrfs_set_file_extent_num_bytes(leaf, fi, | 734 | btrfs_set_file_extent_num_bytes(leaf, fi, |
@@ -1133,7 +1135,7 @@ int btrfs_sync_file(struct file *file, struct dentry *dentry, int datasync) | |||
1133 | } | 1135 | } |
1134 | mutex_lock(&dentry->d_inode->i_mutex); | 1136 | mutex_lock(&dentry->d_inode->i_mutex); |
1135 | out: | 1137 | out: |
1136 | return ret > 0 ? EIO : ret; | 1138 | return ret > 0 ? -EIO : ret; |
1137 | } | 1139 | } |
1138 | 1140 | ||
1139 | static const struct vm_operations_struct btrfs_file_vm_ops = { | 1141 | static const struct vm_operations_struct btrfs_file_vm_ops = { |
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index b330e27c2d8b..4deb280f8969 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c | |||
@@ -483,7 +483,8 @@ again: | |||
483 | nr_pages_ret = 0; | 483 | nr_pages_ret = 0; |
484 | 484 | ||
485 | /* flag the file so we don't compress in the future */ | 485 | /* flag the file so we don't compress in the future */ |
486 | BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; | 486 | if (!btrfs_test_opt(root, FORCE_COMPRESS)) |
487 | BTRFS_I(inode)->flags |= BTRFS_INODE_NOCOMPRESS; | ||
487 | } | 488 | } |
488 | if (will_compress) { | 489 | if (will_compress) { |
489 | *num_added += 1; | 490 | *num_added += 1; |
@@ -1680,24 +1681,6 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans, | |||
1680 | * before we start the transaction. It limits the amount of btree | 1681 | * before we start the transaction. It limits the amount of btree |
1681 | * reads required while inside the transaction. | 1682 | * reads required while inside the transaction. |
1682 | */ | 1683 | */ |
1683 | static noinline void reada_csum(struct btrfs_root *root, | ||
1684 | struct btrfs_path *path, | ||
1685 | struct btrfs_ordered_extent *ordered_extent) | ||
1686 | { | ||
1687 | struct btrfs_ordered_sum *sum; | ||
1688 | u64 bytenr; | ||
1689 | |||
1690 | sum = list_entry(ordered_extent->list.next, struct btrfs_ordered_sum, | ||
1691 | list); | ||
1692 | bytenr = sum->sums[0].bytenr; | ||
1693 | |||
1694 | /* | ||
1695 | * we don't care about the results, the point of this search is | ||
1696 | * just to get the btree leaves into ram | ||
1697 | */ | ||
1698 | btrfs_lookup_csum(NULL, root->fs_info->csum_root, path, bytenr, 0); | ||
1699 | } | ||
1700 | |||
1701 | /* as ordered data IO finishes, this gets called so we can finish | 1684 | /* as ordered data IO finishes, this gets called so we can finish |
1702 | * an ordered extent if the range of bytes in the file it covers are | 1685 | * an ordered extent if the range of bytes in the file it covers are |
1703 | * fully written. | 1686 | * fully written. |
@@ -1708,7 +1691,6 @@ static int btrfs_finish_ordered_io(struct inode *inode, u64 start, u64 end) | |||
1708 | struct btrfs_trans_handle *trans; | 1691 | struct btrfs_trans_handle *trans; |
1709 | struct btrfs_ordered_extent *ordered_extent = NULL; | 1692 | struct btrfs_ordered_extent *ordered_extent = NULL; |
1710 | struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree; | 1693 | struct extent_io_tree *io_tree = &BTRFS_I(inode)->io_tree; |
1711 | struct btrfs_path *path; | ||
1712 | int compressed = 0; | 1694 | int compressed = 0; |
1713 | int ret; | 1695 | int ret; |
1714 | 1696 | ||
@@ -1716,32 +1698,9 @@ static int btrfs_finish_ordered_io(struct inode *inode, u64 start, u64 end) | |||
1716 | if (!ret) | 1698 | if (!ret) |
1717 | return 0; | 1699 | return 0; |
1718 | 1700 | ||
1719 | /* | 1701 | ordered_extent = btrfs_lookup_ordered_extent(inode, start); |
1720 | * before we join the transaction, try to do some of our IO. | ||
1721 | * This will limit the amount of IO that we have to do with | ||
1722 | * the transaction running. We're unlikely to need to do any | ||
1723 | * IO if the file extents are new, the disk_i_size checks | ||
1724 | * covers the most common case. | ||
1725 | */ | ||
1726 | if (start < BTRFS_I(inode)->disk_i_size) { | ||
1727 | path = btrfs_alloc_path(); | ||
1728 | if (path) { | ||
1729 | ret = btrfs_lookup_file_extent(NULL, root, path, | ||
1730 | inode->i_ino, | ||
1731 | start, 0); | ||
1732 | ordered_extent = btrfs_lookup_ordered_extent(inode, | ||
1733 | start); | ||
1734 | if (!list_empty(&ordered_extent->list)) { | ||
1735 | btrfs_release_path(root, path); | ||
1736 | reada_csum(root, path, ordered_extent); | ||
1737 | } | ||
1738 | btrfs_free_path(path); | ||
1739 | } | ||
1740 | } | ||
1741 | |||
1742 | if (!ordered_extent) | ||
1743 | ordered_extent = btrfs_lookup_ordered_extent(inode, start); | ||
1744 | BUG_ON(!ordered_extent); | 1702 | BUG_ON(!ordered_extent); |
1703 | |||
1745 | if (test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags)) { | 1704 | if (test_bit(BTRFS_ORDERED_NOCOW, &ordered_extent->flags)) { |
1746 | BUG_ON(!list_empty(&ordered_extent->list)); | 1705 | BUG_ON(!list_empty(&ordered_extent->list)); |
1747 | ret = btrfs_ordered_update_i_size(inode, 0, ordered_extent); | 1706 | ret = btrfs_ordered_update_i_size(inode, 0, ordered_extent); |
@@ -3796,12 +3755,6 @@ struct inode *btrfs_lookup_dentry(struct inode *dir, struct dentry *dentry) | |||
3796 | 3755 | ||
3797 | if (location.type == BTRFS_INODE_ITEM_KEY) { | 3756 | if (location.type == BTRFS_INODE_ITEM_KEY) { |
3798 | inode = btrfs_iget(dir->i_sb, &location, root); | 3757 | inode = btrfs_iget(dir->i_sb, &location, root); |
3799 | if (unlikely(root->clean_orphans) && | ||
3800 | !(inode->i_sb->s_flags & MS_RDONLY)) { | ||
3801 | down_read(&root->fs_info->cleanup_work_sem); | ||
3802 | btrfs_orphan_cleanup(root); | ||
3803 | up_read(&root->fs_info->cleanup_work_sem); | ||
3804 | } | ||
3805 | return inode; | 3758 | return inode; |
3806 | } | 3759 | } |
3807 | 3760 | ||
@@ -5799,7 +5752,7 @@ out_fail: | |||
5799 | } | 5752 | } |
5800 | 5753 | ||
5801 | static int prealloc_file_range(struct inode *inode, u64 start, u64 end, | 5754 | static int prealloc_file_range(struct inode *inode, u64 start, u64 end, |
5802 | u64 alloc_hint, int mode) | 5755 | u64 alloc_hint, int mode, loff_t actual_len) |
5803 | { | 5756 | { |
5804 | struct btrfs_trans_handle *trans; | 5757 | struct btrfs_trans_handle *trans; |
5805 | struct btrfs_root *root = BTRFS_I(inode)->root; | 5758 | struct btrfs_root *root = BTRFS_I(inode)->root; |
@@ -5808,6 +5761,7 @@ static int prealloc_file_range(struct inode *inode, u64 start, u64 end, | |||
5808 | u64 cur_offset = start; | 5761 | u64 cur_offset = start; |
5809 | u64 num_bytes = end - start; | 5762 | u64 num_bytes = end - start; |
5810 | int ret = 0; | 5763 | int ret = 0; |
5764 | u64 i_size; | ||
5811 | 5765 | ||
5812 | while (num_bytes > 0) { | 5766 | while (num_bytes > 0) { |
5813 | alloc_size = min(num_bytes, root->fs_info->max_extent); | 5767 | alloc_size = min(num_bytes, root->fs_info->max_extent); |
@@ -5845,9 +5799,15 @@ static int prealloc_file_range(struct inode *inode, u64 start, u64 end, | |||
5845 | inode->i_ctime = CURRENT_TIME; | 5799 | inode->i_ctime = CURRENT_TIME; |
5846 | BTRFS_I(inode)->flags |= BTRFS_INODE_PREALLOC; | 5800 | BTRFS_I(inode)->flags |= BTRFS_INODE_PREALLOC; |
5847 | if (!(mode & FALLOC_FL_KEEP_SIZE) && | 5801 | if (!(mode & FALLOC_FL_KEEP_SIZE) && |
5848 | cur_offset > inode->i_size) { | 5802 | (actual_len > inode->i_size) && |
5849 | i_size_write(inode, cur_offset); | 5803 | (cur_offset > inode->i_size)) { |
5850 | btrfs_ordered_update_i_size(inode, cur_offset, NULL); | 5804 | |
5805 | if (cur_offset > actual_len) | ||
5806 | i_size = actual_len; | ||
5807 | else | ||
5808 | i_size = cur_offset; | ||
5809 | i_size_write(inode, i_size); | ||
5810 | btrfs_ordered_update_i_size(inode, i_size, NULL); | ||
5851 | } | 5811 | } |
5852 | 5812 | ||
5853 | ret = btrfs_update_inode(trans, root, inode); | 5813 | ret = btrfs_update_inode(trans, root, inode); |
@@ -5940,7 +5900,7 @@ static long btrfs_fallocate(struct inode *inode, int mode, | |||
5940 | !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { | 5900 | !test_bit(EXTENT_FLAG_PREALLOC, &em->flags))) { |
5941 | ret = prealloc_file_range(inode, | 5901 | ret = prealloc_file_range(inode, |
5942 | cur_offset, last_byte, | 5902 | cur_offset, last_byte, |
5943 | alloc_hint, mode); | 5903 | alloc_hint, mode, offset+len); |
5944 | if (ret < 0) { | 5904 | if (ret < 0) { |
5945 | free_extent_map(em); | 5905 | free_extent_map(em); |
5946 | break; | 5906 | break; |
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index ed3e4a2ec2c8..ab7ab5318745 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c | |||
@@ -3764,7 +3764,8 @@ out: | |||
3764 | BTRFS_DATA_RELOC_TREE_OBJECTID); | 3764 | BTRFS_DATA_RELOC_TREE_OBJECTID); |
3765 | if (IS_ERR(fs_root)) | 3765 | if (IS_ERR(fs_root)) |
3766 | err = PTR_ERR(fs_root); | 3766 | err = PTR_ERR(fs_root); |
3767 | btrfs_orphan_cleanup(fs_root); | 3767 | else |
3768 | btrfs_orphan_cleanup(fs_root); | ||
3768 | } | 3769 | } |
3769 | return err; | 3770 | return err; |
3770 | } | 3771 | } |
diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 3f9b45704fcd..8a1ea6e64575 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c | |||
@@ -66,7 +66,8 @@ enum { | |||
66 | Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow, | 66 | Opt_degraded, Opt_subvol, Opt_device, Opt_nodatasum, Opt_nodatacow, |
67 | Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, | 67 | Opt_max_extent, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, |
68 | Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, | 68 | Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, |
69 | Opt_compress, Opt_notreelog, Opt_ratio, Opt_flushoncommit, | 69 | Opt_compress, Opt_compress_force, Opt_notreelog, Opt_ratio, |
70 | Opt_flushoncommit, | ||
70 | Opt_discard, Opt_err, | 71 | Opt_discard, Opt_err, |
71 | }; | 72 | }; |
72 | 73 | ||
@@ -82,6 +83,7 @@ static match_table_t tokens = { | |||
82 | {Opt_alloc_start, "alloc_start=%s"}, | 83 | {Opt_alloc_start, "alloc_start=%s"}, |
83 | {Opt_thread_pool, "thread_pool=%d"}, | 84 | {Opt_thread_pool, "thread_pool=%d"}, |
84 | {Opt_compress, "compress"}, | 85 | {Opt_compress, "compress"}, |
86 | {Opt_compress_force, "compress-force"}, | ||
85 | {Opt_ssd, "ssd"}, | 87 | {Opt_ssd, "ssd"}, |
86 | {Opt_ssd_spread, "ssd_spread"}, | 88 | {Opt_ssd_spread, "ssd_spread"}, |
87 | {Opt_nossd, "nossd"}, | 89 | {Opt_nossd, "nossd"}, |
@@ -173,6 +175,11 @@ int btrfs_parse_options(struct btrfs_root *root, char *options) | |||
173 | printk(KERN_INFO "btrfs: use compression\n"); | 175 | printk(KERN_INFO "btrfs: use compression\n"); |
174 | btrfs_set_opt(info->mount_opt, COMPRESS); | 176 | btrfs_set_opt(info->mount_opt, COMPRESS); |
175 | break; | 177 | break; |
178 | case Opt_compress_force: | ||
179 | printk(KERN_INFO "btrfs: forcing compression\n"); | ||
180 | btrfs_set_opt(info->mount_opt, FORCE_COMPRESS); | ||
181 | btrfs_set_opt(info->mount_opt, COMPRESS); | ||
182 | break; | ||
176 | case Opt_ssd: | 183 | case Opt_ssd: |
177 | printk(KERN_INFO "btrfs: use ssd allocation scheme\n"); | 184 | printk(KERN_INFO "btrfs: use ssd allocation scheme\n"); |
178 | btrfs_set_opt(info->mount_opt, SSD); | 185 | btrfs_set_opt(info->mount_opt, SSD); |
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 220dad5db017..41ecbb2347f2 100644 --- a/fs/btrfs/volumes.c +++ b/fs/btrfs/volumes.c | |||
@@ -1135,7 +1135,7 @@ int btrfs_rm_device(struct btrfs_root *root, char *device_path) | |||
1135 | root->fs_info->avail_metadata_alloc_bits; | 1135 | root->fs_info->avail_metadata_alloc_bits; |
1136 | 1136 | ||
1137 | if ((all_avail & BTRFS_BLOCK_GROUP_RAID10) && | 1137 | if ((all_avail & BTRFS_BLOCK_GROUP_RAID10) && |
1138 | root->fs_info->fs_devices->rw_devices <= 4) { | 1138 | root->fs_info->fs_devices->num_devices <= 4) { |
1139 | printk(KERN_ERR "btrfs: unable to go below four devices " | 1139 | printk(KERN_ERR "btrfs: unable to go below four devices " |
1140 | "on raid10\n"); | 1140 | "on raid10\n"); |
1141 | ret = -EINVAL; | 1141 | ret = -EINVAL; |
@@ -1143,7 +1143,7 @@ int btrfs_rm_device(struct btrfs_root *root, char *device_path) | |||
1143 | } | 1143 | } |
1144 | 1144 | ||
1145 | if ((all_avail & BTRFS_BLOCK_GROUP_RAID1) && | 1145 | if ((all_avail & BTRFS_BLOCK_GROUP_RAID1) && |
1146 | root->fs_info->fs_devices->rw_devices <= 2) { | 1146 | root->fs_info->fs_devices->num_devices <= 2) { |
1147 | printk(KERN_ERR "btrfs: unable to go below two " | 1147 | printk(KERN_ERR "btrfs: unable to go below two " |
1148 | "devices on raid1\n"); | 1148 | "devices on raid1\n"); |
1149 | ret = -EINVAL; | 1149 | ret = -EINVAL; |
@@ -1434,8 +1434,8 @@ int btrfs_init_new_device(struct btrfs_root *root, char *device_path) | |||
1434 | return -EINVAL; | 1434 | return -EINVAL; |
1435 | 1435 | ||
1436 | bdev = open_bdev_exclusive(device_path, 0, root->fs_info->bdev_holder); | 1436 | bdev = open_bdev_exclusive(device_path, 0, root->fs_info->bdev_holder); |
1437 | if (!bdev) | 1437 | if (IS_ERR(bdev)) |
1438 | return -EIO; | 1438 | return PTR_ERR(bdev); |
1439 | 1439 | ||
1440 | if (root->fs_info->fs_devices->seeding) { | 1440 | if (root->fs_info->fs_devices->seeding) { |
1441 | seeding_dev = 1; | 1441 | seeding_dev = 1; |
@@ -2538,6 +2538,11 @@ int btrfs_chunk_readonly(struct btrfs_root *root, u64 chunk_offset) | |||
2538 | if (!em) | 2538 | if (!em) |
2539 | return 1; | 2539 | return 1; |
2540 | 2540 | ||
2541 | if (btrfs_test_opt(root, DEGRADED)) { | ||
2542 | free_extent_map(em); | ||
2543 | return 0; | ||
2544 | } | ||
2545 | |||
2541 | map = (struct map_lookup *)em->bdev; | 2546 | map = (struct map_lookup *)em->bdev; |
2542 | for (i = 0; i < map->num_stripes; i++) { | 2547 | for (i = 0; i < map->num_stripes; i++) { |
2543 | if (!map->stripes[i].dev->writeable) { | 2548 | if (!map->stripes[i].dev->writeable) { |
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 7b2600b380d7..49503d2edc7e 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES | |||
@@ -1,3 +1,7 @@ | |||
1 | Version 1.62 | ||
2 | ------------ | ||
3 | Add sockopt=TCP_NODELAY mount option. | ||
4 | |||
1 | Version 1.61 | 5 | Version 1.61 |
2 | ------------ | 6 | ------------ |
3 | Fix append problem to Samba servers (files opened with O_APPEND could | 7 | Fix append problem to Samba servers (files opened with O_APPEND could |
diff --git a/fs/cifs/cifsfs.h b/fs/cifs/cifsfs.h index ac2b24c192f8..78c1b86d55f6 100644 --- a/fs/cifs/cifsfs.h +++ b/fs/cifs/cifsfs.h | |||
@@ -113,5 +113,5 @@ extern long cifs_ioctl(struct file *filep, unsigned int cmd, unsigned long arg); | |||
113 | extern const struct export_operations cifs_export_ops; | 113 | extern const struct export_operations cifs_export_ops; |
114 | #endif /* EXPERIMENTAL */ | 114 | #endif /* EXPERIMENTAL */ |
115 | 115 | ||
116 | #define CIFS_VERSION "1.61" | 116 | #define CIFS_VERSION "1.62" |
117 | #endif /* _CIFSFS_H */ | 117 | #endif /* _CIFSFS_H */ |
diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h index 4b35f7ec0583..ed751bb657db 100644 --- a/fs/cifs/cifsglob.h +++ b/fs/cifs/cifsglob.h | |||
@@ -149,6 +149,7 @@ struct TCP_Server_Info { | |||
149 | bool svlocal:1; /* local server or remote */ | 149 | bool svlocal:1; /* local server or remote */ |
150 | bool noblocksnd; /* use blocking sendmsg */ | 150 | bool noblocksnd; /* use blocking sendmsg */ |
151 | bool noautotune; /* do not autotune send buf sizes */ | 151 | bool noautotune; /* do not autotune send buf sizes */ |
152 | bool tcp_nodelay; | ||
152 | atomic_t inFlight; /* number of requests on the wire to server */ | 153 | atomic_t inFlight; /* number of requests on the wire to server */ |
153 | #ifdef CONFIG_CIFS_STATS2 | 154 | #ifdef CONFIG_CIFS_STATS2 |
154 | atomic_t inSend; /* requests trying to send */ | 155 | atomic_t inSend; /* requests trying to send */ |
diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index 3bbcaa716b3c..2e9e09ca0e30 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c | |||
@@ -98,7 +98,7 @@ struct smb_vol { | |||
98 | bool nostrictsync:1; /* do not force expensive SMBflush on every sync */ | 98 | bool nostrictsync:1; /* do not force expensive SMBflush on every sync */ |
99 | unsigned int rsize; | 99 | unsigned int rsize; |
100 | unsigned int wsize; | 100 | unsigned int wsize; |
101 | unsigned int sockopt; | 101 | bool sockopt_tcp_nodelay:1; |
102 | unsigned short int port; | 102 | unsigned short int port; |
103 | char *prepath; | 103 | char *prepath; |
104 | }; | 104 | }; |
@@ -1142,9 +1142,11 @@ cifs_parse_mount_options(char *options, const char *devname, | |||
1142 | simple_strtoul(value, &value, 0); | 1142 | simple_strtoul(value, &value, 0); |
1143 | } | 1143 | } |
1144 | } else if (strnicmp(data, "sockopt", 5) == 0) { | 1144 | } else if (strnicmp(data, "sockopt", 5) == 0) { |
1145 | if (value && *value) { | 1145 | if (!value || !*value) { |
1146 | vol->sockopt = | 1146 | cERROR(1, ("no socket option specified")); |
1147 | simple_strtoul(value, &value, 0); | 1147 | continue; |
1148 | } else if (strnicmp(value, "TCP_NODELAY", 11) == 0) { | ||
1149 | vol->sockopt_tcp_nodelay = 1; | ||
1148 | } | 1150 | } |
1149 | } else if (strnicmp(data, "netbiosname", 4) == 0) { | 1151 | } else if (strnicmp(data, "netbiosname", 4) == 0) { |
1150 | if (!value || !*value || (*value == ' ')) { | 1152 | if (!value || !*value || (*value == ' ')) { |
@@ -1514,6 +1516,7 @@ cifs_get_tcp_session(struct smb_vol *volume_info) | |||
1514 | 1516 | ||
1515 | tcp_ses->noblocksnd = volume_info->noblocksnd; | 1517 | tcp_ses->noblocksnd = volume_info->noblocksnd; |
1516 | tcp_ses->noautotune = volume_info->noautotune; | 1518 | tcp_ses->noautotune = volume_info->noautotune; |
1519 | tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay; | ||
1517 | atomic_set(&tcp_ses->inFlight, 0); | 1520 | atomic_set(&tcp_ses->inFlight, 0); |
1518 | init_waitqueue_head(&tcp_ses->response_q); | 1521 | init_waitqueue_head(&tcp_ses->response_q); |
1519 | init_waitqueue_head(&tcp_ses->request_q); | 1522 | init_waitqueue_head(&tcp_ses->request_q); |
@@ -1764,6 +1767,7 @@ static int | |||
1764 | ipv4_connect(struct TCP_Server_Info *server) | 1767 | ipv4_connect(struct TCP_Server_Info *server) |
1765 | { | 1768 | { |
1766 | int rc = 0; | 1769 | int rc = 0; |
1770 | int val; | ||
1767 | bool connected = false; | 1771 | bool connected = false; |
1768 | __be16 orig_port = 0; | 1772 | __be16 orig_port = 0; |
1769 | struct socket *socket = server->ssocket; | 1773 | struct socket *socket = server->ssocket; |
@@ -1845,6 +1849,14 @@ ipv4_connect(struct TCP_Server_Info *server) | |||
1845 | socket->sk->sk_rcvbuf = 140 * 1024; | 1849 | socket->sk->sk_rcvbuf = 140 * 1024; |
1846 | } | 1850 | } |
1847 | 1851 | ||
1852 | if (server->tcp_nodelay) { | ||
1853 | val = 1; | ||
1854 | rc = kernel_setsockopt(socket, SOL_TCP, TCP_NODELAY, | ||
1855 | (char *)&val, sizeof(val)); | ||
1856 | if (rc) | ||
1857 | cFYI(1, ("set TCP_NODELAY socket option error %d", rc)); | ||
1858 | } | ||
1859 | |||
1848 | cFYI(1, ("sndbuf %d rcvbuf %d rcvtimeo 0x%lx", | 1860 | cFYI(1, ("sndbuf %d rcvbuf %d rcvtimeo 0x%lx", |
1849 | socket->sk->sk_sndbuf, | 1861 | socket->sk->sk_sndbuf, |
1850 | socket->sk->sk_rcvbuf, socket->sk->sk_rcvtimeo)); | 1862 | socket->sk->sk_rcvbuf, socket->sk->sk_rcvtimeo)); |
@@ -1916,6 +1928,7 @@ static int | |||
1916 | ipv6_connect(struct TCP_Server_Info *server) | 1928 | ipv6_connect(struct TCP_Server_Info *server) |
1917 | { | 1929 | { |
1918 | int rc = 0; | 1930 | int rc = 0; |
1931 | int val; | ||
1919 | bool connected = false; | 1932 | bool connected = false; |
1920 | __be16 orig_port = 0; | 1933 | __be16 orig_port = 0; |
1921 | struct socket *socket = server->ssocket; | 1934 | struct socket *socket = server->ssocket; |
@@ -1987,6 +2000,15 @@ ipv6_connect(struct TCP_Server_Info *server) | |||
1987 | */ | 2000 | */ |
1988 | socket->sk->sk_rcvtimeo = 7 * HZ; | 2001 | socket->sk->sk_rcvtimeo = 7 * HZ; |
1989 | socket->sk->sk_sndtimeo = 5 * HZ; | 2002 | socket->sk->sk_sndtimeo = 5 * HZ; |
2003 | |||
2004 | if (server->tcp_nodelay) { | ||
2005 | val = 1; | ||
2006 | rc = kernel_setsockopt(socket, SOL_TCP, TCP_NODELAY, | ||
2007 | (char *)&val, sizeof(val)); | ||
2008 | if (rc) | ||
2009 | cFYI(1, ("set TCP_NODELAY socket option error %d", rc)); | ||
2010 | } | ||
2011 | |||
1990 | server->ssocket = socket; | 2012 | server->ssocket = socket; |
1991 | 2013 | ||
1992 | return rc; | 2014 | return rc; |
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c index cf18ee765590..e3fda978f481 100644 --- a/fs/cifs/inode.c +++ b/fs/cifs/inode.c | |||
@@ -1762,8 +1762,18 @@ cifs_setattr_unix(struct dentry *direntry, struct iattr *attrs) | |||
1762 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 1762 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
1763 | } | 1763 | } |
1764 | 1764 | ||
1765 | if (!rc) | 1765 | if (!rc) { |
1766 | rc = inode_setattr(inode, attrs); | 1766 | rc = inode_setattr(inode, attrs); |
1767 | |||
1768 | /* force revalidate when any of these times are set since some | ||
1769 | of the fs types (eg ext3, fat) do not have fine enough | ||
1770 | time granularity to match protocol, and we do not have a | ||
1771 | a way (yet) to query the server fs's time granularity (and | ||
1772 | whether it rounds times down). | ||
1773 | */ | ||
1774 | if (!rc && (attrs->ia_valid & (ATTR_MTIME | ATTR_CTIME))) | ||
1775 | cifsInode->time = 0; | ||
1776 | } | ||
1767 | out: | 1777 | out: |
1768 | kfree(args); | 1778 | kfree(args); |
1769 | kfree(full_path); | 1779 | kfree(full_path); |
diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index f84062f9a985..c343b14ba2d3 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c | |||
@@ -77,6 +77,11 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name, | |||
77 | 77 | ||
78 | cFYI(1, ("For %s", name->name)); | 78 | cFYI(1, ("For %s", name->name)); |
79 | 79 | ||
80 | if (parent->d_op && parent->d_op->d_hash) | ||
81 | parent->d_op->d_hash(parent, name); | ||
82 | else | ||
83 | name->hash = full_name_hash(name->name, name->len); | ||
84 | |||
80 | dentry = d_lookup(parent, name); | 85 | dentry = d_lookup(parent, name); |
81 | if (dentry) { | 86 | if (dentry) { |
82 | /* FIXME: check for inode number changes? */ | 87 | /* FIXME: check for inode number changes? */ |
@@ -666,12 +671,11 @@ static int cifs_get_name_from_search_buf(struct qstr *pqst, | |||
666 | min(len, max_len), nlt, | 671 | min(len, max_len), nlt, |
667 | cifs_sb->mnt_cifs_flags & | 672 | cifs_sb->mnt_cifs_flags & |
668 | CIFS_MOUNT_MAP_SPECIAL_CHR); | 673 | CIFS_MOUNT_MAP_SPECIAL_CHR); |
674 | pqst->len -= nls_nullsize(nlt); | ||
669 | } else { | 675 | } else { |
670 | pqst->name = filename; | 676 | pqst->name = filename; |
671 | pqst->len = len; | 677 | pqst->len = len; |
672 | } | 678 | } |
673 | pqst->hash = full_name_hash(pqst->name, pqst->len); | ||
674 | /* cFYI(1, ("filldir on %s",pqst->name)); */ | ||
675 | return rc; | 679 | return rc; |
676 | } | 680 | } |
677 | 681 | ||
diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c index 7085a6275c4c..aaa9c1c5a5bd 100644 --- a/fs/cifs/sess.c +++ b/fs/cifs/sess.c | |||
@@ -223,9 +223,9 @@ static void unicode_ssetup_strings(char **pbcc_area, struct cifsSesInfo *ses, | |||
223 | /* null user mount */ | 223 | /* null user mount */ |
224 | *bcc_ptr = 0; | 224 | *bcc_ptr = 0; |
225 | *(bcc_ptr+1) = 0; | 225 | *(bcc_ptr+1) = 0; |
226 | } else { /* 300 should be long enough for any conceivable user name */ | 226 | } else { |
227 | bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->userName, | 227 | bytes_ret = cifs_strtoUCS((__le16 *) bcc_ptr, ses->userName, |
228 | 300, nls_cp); | 228 | MAX_USERNAME_SIZE, nls_cp); |
229 | } | 229 | } |
230 | bcc_ptr += 2 * bytes_ret; | 230 | bcc_ptr += 2 * bytes_ret; |
231 | bcc_ptr += 2; /* account for null termination */ | 231 | bcc_ptr += 2; /* account for null termination */ |
@@ -246,11 +246,10 @@ static void ascii_ssetup_strings(char **pbcc_area, struct cifsSesInfo *ses, | |||
246 | /* copy user */ | 246 | /* copy user */ |
247 | if (ses->userName == NULL) { | 247 | if (ses->userName == NULL) { |
248 | /* BB what about null user mounts - check that we do this BB */ | 248 | /* BB what about null user mounts - check that we do this BB */ |
249 | } else { /* 300 should be long enough for any conceivable user name */ | 249 | } else { |
250 | strncpy(bcc_ptr, ses->userName, 300); | 250 | strncpy(bcc_ptr, ses->userName, MAX_USERNAME_SIZE); |
251 | } | 251 | } |
252 | /* BB improve check for overflow */ | 252 | bcc_ptr += strnlen(ses->userName, MAX_USERNAME_SIZE); |
253 | bcc_ptr += strnlen(ses->userName, 300); | ||
254 | *bcc_ptr = 0; | 253 | *bcc_ptr = 0; |
255 | bcc_ptr++; /* account for null termination */ | 254 | bcc_ptr++; /* account for null termination */ |
256 | 255 | ||
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c index c5c45de1a2ee..0ca9ec4a79c3 100644 --- a/fs/compat_ioctl.c +++ b/fs/compat_ioctl.c | |||
@@ -301,6 +301,12 @@ static int sg_ioctl_trans(unsigned int fd, unsigned int cmd, | |||
301 | u32 data; | 301 | u32 data; |
302 | void __user *dxferp; | 302 | void __user *dxferp; |
303 | int err; | 303 | int err; |
304 | int interface_id; | ||
305 | |||
306 | if (get_user(interface_id, &sgio32->interface_id)) | ||
307 | return -EFAULT; | ||
308 | if (interface_id != 'S') | ||
309 | return sys_ioctl(fd, cmd, (unsigned long)sgio32); | ||
304 | 310 | ||
305 | if (get_user(iovec_count, &sgio32->iovec_count)) | 311 | if (get_user(iovec_count, &sgio32->iovec_count)) |
306 | return -EFAULT; | 312 | return -EFAULT; |
@@ -936,6 +942,7 @@ COMPATIBLE_IOCTL(TCSETSF) | |||
936 | COMPATIBLE_IOCTL(TIOCLINUX) | 942 | COMPATIBLE_IOCTL(TIOCLINUX) |
937 | COMPATIBLE_IOCTL(TIOCSBRK) | 943 | COMPATIBLE_IOCTL(TIOCSBRK) |
938 | COMPATIBLE_IOCTL(TIOCCBRK) | 944 | COMPATIBLE_IOCTL(TIOCCBRK) |
945 | COMPATIBLE_IOCTL(TIOCGSID) | ||
939 | COMPATIBLE_IOCTL(TIOCGICOUNT) | 946 | COMPATIBLE_IOCTL(TIOCGICOUNT) |
940 | /* Little t */ | 947 | /* Little t */ |
941 | COMPATIBLE_IOCTL(TIOCGETD) | 948 | COMPATIBLE_IOCTL(TIOCGETD) |
@@ -1038,6 +1045,8 @@ COMPATIBLE_IOCTL(FIOQSIZE) | |||
1038 | #ifdef CONFIG_BLOCK | 1045 | #ifdef CONFIG_BLOCK |
1039 | /* loop */ | 1046 | /* loop */ |
1040 | IGNORE_IOCTL(LOOP_CLR_FD) | 1047 | IGNORE_IOCTL(LOOP_CLR_FD) |
1048 | /* md calls this on random blockdevs */ | ||
1049 | IGNORE_IOCTL(RAID_VERSION) | ||
1041 | /* SG stuff */ | 1050 | /* SG stuff */ |
1042 | COMPATIBLE_IOCTL(SG_SET_TIMEOUT) | 1051 | COMPATIBLE_IOCTL(SG_SET_TIMEOUT) |
1043 | COMPATIBLE_IOCTL(SG_GET_TIMEOUT) | 1052 | COMPATIBLE_IOCTL(SG_GET_TIMEOUT) |
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c index b486169f42bf..274ac865bae8 100644 --- a/fs/debugfs/inode.c +++ b/fs/debugfs/inode.c | |||
@@ -160,15 +160,8 @@ static int debugfs_create_by_name(const char *name, mode_t mode, | |||
160 | * block. A pointer to that is in the struct vfsmount that we | 160 | * block. A pointer to that is in the struct vfsmount that we |
161 | * have around. | 161 | * have around. |
162 | */ | 162 | */ |
163 | if (!parent) { | 163 | if (!parent) |
164 | if (debugfs_mount && debugfs_mount->mnt_sb) { | 164 | parent = debugfs_mount->mnt_sb->s_root; |
165 | parent = debugfs_mount->mnt_sb->s_root; | ||
166 | } | ||
167 | } | ||
168 | if (!parent) { | ||
169 | pr_debug("debugfs: Ah! can not find a parent!\n"); | ||
170 | return -EFAULT; | ||
171 | } | ||
172 | 165 | ||
173 | *dentry = NULL; | 166 | *dentry = NULL; |
174 | mutex_lock(&parent->d_inode->i_mutex); | 167 | mutex_lock(&parent->d_inode->i_mutex); |
diff --git a/fs/eventfd.c b/fs/eventfd.c index d26402ff06ea..7758cc382ef0 100644 --- a/fs/eventfd.c +++ b/fs/eventfd.c | |||
@@ -135,26 +135,71 @@ static unsigned int eventfd_poll(struct file *file, poll_table *wait) | |||
135 | return events; | 135 | return events; |
136 | } | 136 | } |
137 | 137 | ||
138 | static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | 138 | static void eventfd_ctx_do_read(struct eventfd_ctx *ctx, __u64 *cnt) |
139 | loff_t *ppos) | 139 | { |
140 | *cnt = (ctx->flags & EFD_SEMAPHORE) ? 1 : ctx->count; | ||
141 | ctx->count -= *cnt; | ||
142 | } | ||
143 | |||
144 | /** | ||
145 | * eventfd_ctx_remove_wait_queue - Read the current counter and removes wait queue. | ||
146 | * @ctx: [in] Pointer to eventfd context. | ||
147 | * @wait: [in] Wait queue to be removed. | ||
148 | * @cnt: [out] Pointer to the 64bit conter value. | ||
149 | * | ||
150 | * Returns zero if successful, or the following error codes: | ||
151 | * | ||
152 | * -EAGAIN : The operation would have blocked. | ||
153 | * | ||
154 | * This is used to atomically remove a wait queue entry from the eventfd wait | ||
155 | * queue head, and read/reset the counter value. | ||
156 | */ | ||
157 | int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_t *wait, | ||
158 | __u64 *cnt) | ||
159 | { | ||
160 | unsigned long flags; | ||
161 | |||
162 | spin_lock_irqsave(&ctx->wqh.lock, flags); | ||
163 | eventfd_ctx_do_read(ctx, cnt); | ||
164 | __remove_wait_queue(&ctx->wqh, wait); | ||
165 | if (*cnt != 0 && waitqueue_active(&ctx->wqh)) | ||
166 | wake_up_locked_poll(&ctx->wqh, POLLOUT); | ||
167 | spin_unlock_irqrestore(&ctx->wqh.lock, flags); | ||
168 | |||
169 | return *cnt != 0 ? 0 : -EAGAIN; | ||
170 | } | ||
171 | EXPORT_SYMBOL_GPL(eventfd_ctx_remove_wait_queue); | ||
172 | |||
173 | /** | ||
174 | * eventfd_ctx_read - Reads the eventfd counter or wait if it is zero. | ||
175 | * @ctx: [in] Pointer to eventfd context. | ||
176 | * @no_wait: [in] Different from zero if the operation should not block. | ||
177 | * @cnt: [out] Pointer to the 64bit conter value. | ||
178 | * | ||
179 | * Returns zero if successful, or the following error codes: | ||
180 | * | ||
181 | * -EAGAIN : The operation would have blocked but @no_wait was nonzero. | ||
182 | * -ERESTARTSYS : A signal interrupted the wait operation. | ||
183 | * | ||
184 | * If @no_wait is zero, the function might sleep until the eventfd internal | ||
185 | * counter becomes greater than zero. | ||
186 | */ | ||
187 | ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait, __u64 *cnt) | ||
140 | { | 188 | { |
141 | struct eventfd_ctx *ctx = file->private_data; | ||
142 | ssize_t res; | 189 | ssize_t res; |
143 | __u64 ucnt = 0; | ||
144 | DECLARE_WAITQUEUE(wait, current); | 190 | DECLARE_WAITQUEUE(wait, current); |
145 | 191 | ||
146 | if (count < sizeof(ucnt)) | ||
147 | return -EINVAL; | ||
148 | spin_lock_irq(&ctx->wqh.lock); | 192 | spin_lock_irq(&ctx->wqh.lock); |
193 | *cnt = 0; | ||
149 | res = -EAGAIN; | 194 | res = -EAGAIN; |
150 | if (ctx->count > 0) | 195 | if (ctx->count > 0) |
151 | res = sizeof(ucnt); | 196 | res = 0; |
152 | else if (!(file->f_flags & O_NONBLOCK)) { | 197 | else if (!no_wait) { |
153 | __add_wait_queue(&ctx->wqh, &wait); | 198 | __add_wait_queue(&ctx->wqh, &wait); |
154 | for (res = 0;;) { | 199 | for (;;) { |
155 | set_current_state(TASK_INTERRUPTIBLE); | 200 | set_current_state(TASK_INTERRUPTIBLE); |
156 | if (ctx->count > 0) { | 201 | if (ctx->count > 0) { |
157 | res = sizeof(ucnt); | 202 | res = 0; |
158 | break; | 203 | break; |
159 | } | 204 | } |
160 | if (signal_pending(current)) { | 205 | if (signal_pending(current)) { |
@@ -168,18 +213,32 @@ static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | |||
168 | __remove_wait_queue(&ctx->wqh, &wait); | 213 | __remove_wait_queue(&ctx->wqh, &wait); |
169 | __set_current_state(TASK_RUNNING); | 214 | __set_current_state(TASK_RUNNING); |
170 | } | 215 | } |
171 | if (likely(res > 0)) { | 216 | if (likely(res == 0)) { |
172 | ucnt = (ctx->flags & EFD_SEMAPHORE) ? 1 : ctx->count; | 217 | eventfd_ctx_do_read(ctx, cnt); |
173 | ctx->count -= ucnt; | ||
174 | if (waitqueue_active(&ctx->wqh)) | 218 | if (waitqueue_active(&ctx->wqh)) |
175 | wake_up_locked_poll(&ctx->wqh, POLLOUT); | 219 | wake_up_locked_poll(&ctx->wqh, POLLOUT); |
176 | } | 220 | } |
177 | spin_unlock_irq(&ctx->wqh.lock); | 221 | spin_unlock_irq(&ctx->wqh.lock); |
178 | if (res > 0 && put_user(ucnt, (__u64 __user *) buf)) | ||
179 | return -EFAULT; | ||
180 | 222 | ||
181 | return res; | 223 | return res; |
182 | } | 224 | } |
225 | EXPORT_SYMBOL_GPL(eventfd_ctx_read); | ||
226 | |||
227 | static ssize_t eventfd_read(struct file *file, char __user *buf, size_t count, | ||
228 | loff_t *ppos) | ||
229 | { | ||
230 | struct eventfd_ctx *ctx = file->private_data; | ||
231 | ssize_t res; | ||
232 | __u64 cnt; | ||
233 | |||
234 | if (count < sizeof(cnt)) | ||
235 | return -EINVAL; | ||
236 | res = eventfd_ctx_read(ctx, file->f_flags & O_NONBLOCK, &cnt); | ||
237 | if (res < 0) | ||
238 | return res; | ||
239 | |||
240 | return put_user(cnt, (__u64 __user *) buf) ? -EFAULT : sizeof(cnt); | ||
241 | } | ||
183 | 242 | ||
184 | static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t count, | 243 | static ssize_t eventfd_write(struct file *file, const char __user *buf, size_t count, |
185 | loff_t *ppos) | 244 | loff_t *ppos) |
@@ -571,6 +571,9 @@ int setup_arg_pages(struct linux_binprm *bprm, | |||
571 | struct vm_area_struct *prev = NULL; | 571 | struct vm_area_struct *prev = NULL; |
572 | unsigned long vm_flags; | 572 | unsigned long vm_flags; |
573 | unsigned long stack_base; | 573 | unsigned long stack_base; |
574 | unsigned long stack_size; | ||
575 | unsigned long stack_expand; | ||
576 | unsigned long rlim_stack; | ||
574 | 577 | ||
575 | #ifdef CONFIG_STACK_GROWSUP | 578 | #ifdef CONFIG_STACK_GROWSUP |
576 | /* Limit stack size to 1GB */ | 579 | /* Limit stack size to 1GB */ |
@@ -627,10 +630,24 @@ int setup_arg_pages(struct linux_binprm *bprm, | |||
627 | goto out_unlock; | 630 | goto out_unlock; |
628 | } | 631 | } |
629 | 632 | ||
633 | stack_expand = EXTRA_STACK_VM_PAGES * PAGE_SIZE; | ||
634 | stack_size = vma->vm_end - vma->vm_start; | ||
635 | /* | ||
636 | * Align this down to a page boundary as expand_stack | ||
637 | * will align it up. | ||
638 | */ | ||
639 | rlim_stack = rlimit(RLIMIT_STACK) & PAGE_MASK; | ||
640 | rlim_stack = min(rlim_stack, stack_size); | ||
630 | #ifdef CONFIG_STACK_GROWSUP | 641 | #ifdef CONFIG_STACK_GROWSUP |
631 | stack_base = vma->vm_end + EXTRA_STACK_VM_PAGES * PAGE_SIZE; | 642 | if (stack_size + stack_expand > rlim_stack) |
643 | stack_base = vma->vm_start + rlim_stack; | ||
644 | else | ||
645 | stack_base = vma->vm_end + stack_expand; | ||
632 | #else | 646 | #else |
633 | stack_base = vma->vm_start - EXTRA_STACK_VM_PAGES * PAGE_SIZE; | 647 | if (stack_size + stack_expand > rlim_stack) |
648 | stack_base = vma->vm_end - rlim_stack; | ||
649 | else | ||
650 | stack_base = vma->vm_start - stack_expand; | ||
634 | #endif | 651 | #endif |
635 | ret = expand_stack(vma, stack_base); | 652 | ret = expand_stack(vma, stack_base); |
636 | if (ret) | 653 | if (ret) |
@@ -941,9 +958,7 @@ void set_task_comm(struct task_struct *tsk, char *buf) | |||
941 | 958 | ||
942 | int flush_old_exec(struct linux_binprm * bprm) | 959 | int flush_old_exec(struct linux_binprm * bprm) |
943 | { | 960 | { |
944 | char * name; | 961 | int retval; |
945 | int i, ch, retval; | ||
946 | char tcomm[sizeof(current->comm)]; | ||
947 | 962 | ||
948 | /* | 963 | /* |
949 | * Make sure we have a private signal table and that | 964 | * Make sure we have a private signal table and that |
@@ -964,6 +979,25 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
964 | 979 | ||
965 | bprm->mm = NULL; /* We're using it now */ | 980 | bprm->mm = NULL; /* We're using it now */ |
966 | 981 | ||
982 | current->flags &= ~PF_RANDOMIZE; | ||
983 | flush_thread(); | ||
984 | current->personality &= ~bprm->per_clear; | ||
985 | |||
986 | return 0; | ||
987 | |||
988 | out: | ||
989 | return retval; | ||
990 | } | ||
991 | EXPORT_SYMBOL(flush_old_exec); | ||
992 | |||
993 | void setup_new_exec(struct linux_binprm * bprm) | ||
994 | { | ||
995 | int i, ch; | ||
996 | char * name; | ||
997 | char tcomm[sizeof(current->comm)]; | ||
998 | |||
999 | arch_pick_mmap_layout(current->mm); | ||
1000 | |||
967 | /* This is the point of no return */ | 1001 | /* This is the point of no return */ |
968 | current->sas_ss_sp = current->sas_ss_size = 0; | 1002 | current->sas_ss_sp = current->sas_ss_size = 0; |
969 | 1003 | ||
@@ -985,9 +1019,6 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
985 | tcomm[i] = '\0'; | 1019 | tcomm[i] = '\0'; |
986 | set_task_comm(current, tcomm); | 1020 | set_task_comm(current, tcomm); |
987 | 1021 | ||
988 | current->flags &= ~PF_RANDOMIZE; | ||
989 | flush_thread(); | ||
990 | |||
991 | /* Set the new mm task size. We have to do that late because it may | 1022 | /* Set the new mm task size. We have to do that late because it may |
992 | * depend on TIF_32BIT which is only updated in flush_thread() on | 1023 | * depend on TIF_32BIT which is only updated in flush_thread() on |
993 | * some architectures like powerpc | 1024 | * some architectures like powerpc |
@@ -1003,8 +1034,6 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
1003 | set_dumpable(current->mm, suid_dumpable); | 1034 | set_dumpable(current->mm, suid_dumpable); |
1004 | } | 1035 | } |
1005 | 1036 | ||
1006 | current->personality &= ~bprm->per_clear; | ||
1007 | |||
1008 | /* | 1037 | /* |
1009 | * Flush performance counters when crossing a | 1038 | * Flush performance counters when crossing a |
1010 | * security domain: | 1039 | * security domain: |
@@ -1019,14 +1048,8 @@ int flush_old_exec(struct linux_binprm * bprm) | |||
1019 | 1048 | ||
1020 | flush_signal_handlers(current, 0); | 1049 | flush_signal_handlers(current, 0); |
1021 | flush_old_files(current->files); | 1050 | flush_old_files(current->files); |
1022 | |||
1023 | return 0; | ||
1024 | |||
1025 | out: | ||
1026 | return retval; | ||
1027 | } | 1051 | } |
1028 | 1052 | EXPORT_SYMBOL(setup_new_exec); | |
1029 | EXPORT_SYMBOL(flush_old_exec); | ||
1030 | 1053 | ||
1031 | /* | 1054 | /* |
1032 | * Prepare credentials and lock ->cred_guard_mutex. | 1055 | * Prepare credentials and lock ->cred_guard_mutex. |
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index af7b62699ea9..874d169a193e 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -361,14 +361,11 @@ struct ext4_new_group_data { | |||
361 | so set the magic i_delalloc_reserve_flag after taking the | 361 | so set the magic i_delalloc_reserve_flag after taking the |
362 | inode allocation semaphore for */ | 362 | inode allocation semaphore for */ |
363 | #define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0004 | 363 | #define EXT4_GET_BLOCKS_DELALLOC_RESERVE 0x0004 |
364 | /* Call ext4_da_update_reserve_space() after successfully | ||
365 | allocating the blocks */ | ||
366 | #define EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE 0x0008 | ||
367 | /* caller is from the direct IO path, request to creation of an | 364 | /* caller is from the direct IO path, request to creation of an |
368 | unitialized extents if not allocated, split the uninitialized | 365 | unitialized extents if not allocated, split the uninitialized |
369 | extent if blocks has been preallocated already*/ | 366 | extent if blocks has been preallocated already*/ |
370 | #define EXT4_GET_BLOCKS_DIO 0x0010 | 367 | #define EXT4_GET_BLOCKS_DIO 0x0008 |
371 | #define EXT4_GET_BLOCKS_CONVERT 0x0020 | 368 | #define EXT4_GET_BLOCKS_CONVERT 0x0010 |
372 | #define EXT4_GET_BLOCKS_DIO_CREATE_EXT (EXT4_GET_BLOCKS_DIO|\ | 369 | #define EXT4_GET_BLOCKS_DIO_CREATE_EXT (EXT4_GET_BLOCKS_DIO|\ |
373 | EXT4_GET_BLOCKS_CREATE_UNINIT_EXT) | 370 | EXT4_GET_BLOCKS_CREATE_UNINIT_EXT) |
374 | /* Convert extent to initialized after direct IO complete */ | 371 | /* Convert extent to initialized after direct IO complete */ |
@@ -1443,6 +1440,8 @@ extern int ext4_block_truncate_page(handle_t *handle, | |||
1443 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); | 1440 | extern int ext4_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf); |
1444 | extern qsize_t *ext4_get_reserved_space(struct inode *inode); | 1441 | extern qsize_t *ext4_get_reserved_space(struct inode *inode); |
1445 | extern int flush_aio_dio_completed_IO(struct inode *inode); | 1442 | extern int flush_aio_dio_completed_IO(struct inode *inode); |
1443 | extern void ext4_da_update_reserve_space(struct inode *inode, | ||
1444 | int used, int quota_claim); | ||
1446 | /* ioctl.c */ | 1445 | /* ioctl.c */ |
1447 | extern long ext4_ioctl(struct file *, unsigned int, unsigned long); | 1446 | extern long ext4_ioctl(struct file *, unsigned int, unsigned long); |
1448 | extern long ext4_compat_ioctl(struct file *, unsigned int, unsigned long); | 1447 | extern long ext4_compat_ioctl(struct file *, unsigned int, unsigned long); |
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 7d7b74e94687..765a4826b118 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -3132,7 +3132,19 @@ out: | |||
3132 | unmap_underlying_metadata_blocks(inode->i_sb->s_bdev, | 3132 | unmap_underlying_metadata_blocks(inode->i_sb->s_bdev, |
3133 | newblock + max_blocks, | 3133 | newblock + max_blocks, |
3134 | allocated - max_blocks); | 3134 | allocated - max_blocks); |
3135 | allocated = max_blocks; | ||
3135 | } | 3136 | } |
3137 | |||
3138 | /* | ||
3139 | * If we have done fallocate with the offset that is already | ||
3140 | * delayed allocated, we would have block reservation | ||
3141 | * and quota reservation done in the delayed write path. | ||
3142 | * But fallocate would have already updated quota and block | ||
3143 | * count for this offset. So cancel these reservation | ||
3144 | */ | ||
3145 | if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) | ||
3146 | ext4_da_update_reserve_space(inode, allocated, 0); | ||
3147 | |||
3136 | map_out: | 3148 | map_out: |
3137 | set_buffer_mapped(bh_result); | 3149 | set_buffer_mapped(bh_result); |
3138 | out1: | 3150 | out1: |
@@ -3368,9 +3380,18 @@ int ext4_ext_get_blocks(handle_t *handle, struct inode *inode, | |||
3368 | /* previous routine could use block we allocated */ | 3380 | /* previous routine could use block we allocated */ |
3369 | newblock = ext_pblock(&newex); | 3381 | newblock = ext_pblock(&newex); |
3370 | allocated = ext4_ext_get_actual_len(&newex); | 3382 | allocated = ext4_ext_get_actual_len(&newex); |
3383 | if (allocated > max_blocks) | ||
3384 | allocated = max_blocks; | ||
3371 | set_buffer_new(bh_result); | 3385 | set_buffer_new(bh_result); |
3372 | 3386 | ||
3373 | /* | 3387 | /* |
3388 | * Update reserved blocks/metadata blocks after successful | ||
3389 | * block allocation which had been deferred till now. | ||
3390 | */ | ||
3391 | if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) | ||
3392 | ext4_da_update_reserve_space(inode, allocated, 1); | ||
3393 | |||
3394 | /* | ||
3374 | * Cache the extent and update transaction to commit on fdatasync only | 3395 | * Cache the extent and update transaction to commit on fdatasync only |
3375 | * when it is _not_ an uninitialized extent. | 3396 | * when it is _not_ an uninitialized extent. |
3376 | */ | 3397 | */ |
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index c818972c8302..e11952404e02 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c | |||
@@ -1053,11 +1053,12 @@ static int ext4_calc_metadata_amount(struct inode *inode, sector_t lblock) | |||
1053 | * Called with i_data_sem down, which is important since we can call | 1053 | * Called with i_data_sem down, which is important since we can call |
1054 | * ext4_discard_preallocations() from here. | 1054 | * ext4_discard_preallocations() from here. |
1055 | */ | 1055 | */ |
1056 | static void ext4_da_update_reserve_space(struct inode *inode, int used) | 1056 | void ext4_da_update_reserve_space(struct inode *inode, |
1057 | int used, int quota_claim) | ||
1057 | { | 1058 | { |
1058 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); | 1059 | struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); |
1059 | struct ext4_inode_info *ei = EXT4_I(inode); | 1060 | struct ext4_inode_info *ei = EXT4_I(inode); |
1060 | int mdb_free = 0; | 1061 | int mdb_free = 0, allocated_meta_blocks = 0; |
1061 | 1062 | ||
1062 | spin_lock(&ei->i_block_reservation_lock); | 1063 | spin_lock(&ei->i_block_reservation_lock); |
1063 | if (unlikely(used > ei->i_reserved_data_blocks)) { | 1064 | if (unlikely(used > ei->i_reserved_data_blocks)) { |
@@ -1073,6 +1074,7 @@ static void ext4_da_update_reserve_space(struct inode *inode, int used) | |||
1073 | ei->i_reserved_data_blocks -= used; | 1074 | ei->i_reserved_data_blocks -= used; |
1074 | used += ei->i_allocated_meta_blocks; | 1075 | used += ei->i_allocated_meta_blocks; |
1075 | ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks; | 1076 | ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks; |
1077 | allocated_meta_blocks = ei->i_allocated_meta_blocks; | ||
1076 | ei->i_allocated_meta_blocks = 0; | 1078 | ei->i_allocated_meta_blocks = 0; |
1077 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, used); | 1079 | percpu_counter_sub(&sbi->s_dirtyblocks_counter, used); |
1078 | 1080 | ||
@@ -1090,9 +1092,23 @@ static void ext4_da_update_reserve_space(struct inode *inode, int used) | |||
1090 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); | 1092 | spin_unlock(&EXT4_I(inode)->i_block_reservation_lock); |
1091 | 1093 | ||
1092 | /* Update quota subsystem */ | 1094 | /* Update quota subsystem */ |
1093 | vfs_dq_claim_block(inode, used); | 1095 | if (quota_claim) { |
1094 | if (mdb_free) | 1096 | vfs_dq_claim_block(inode, used); |
1095 | vfs_dq_release_reservation_block(inode, mdb_free); | 1097 | if (mdb_free) |
1098 | vfs_dq_release_reservation_block(inode, mdb_free); | ||
1099 | } else { | ||
1100 | /* | ||
1101 | * We did fallocate with an offset that is already delayed | ||
1102 | * allocated. So on delayed allocated writeback we should | ||
1103 | * not update the quota for allocated blocks. But then | ||
1104 | * converting an fallocate region to initialized region would | ||
1105 | * have caused a metadata allocation. So claim quota for | ||
1106 | * that | ||
1107 | */ | ||
1108 | if (allocated_meta_blocks) | ||
1109 | vfs_dq_claim_block(inode, allocated_meta_blocks); | ||
1110 | vfs_dq_release_reservation_block(inode, mdb_free + used); | ||
1111 | } | ||
1096 | 1112 | ||
1097 | /* | 1113 | /* |
1098 | * If we have done all the pending block allocations and if | 1114 | * If we have done all the pending block allocations and if |
@@ -1292,18 +1308,20 @@ int ext4_get_blocks(handle_t *handle, struct inode *inode, sector_t block, | |||
1292 | */ | 1308 | */ |
1293 | EXT4_I(inode)->i_state &= ~EXT4_STATE_EXT_MIGRATE; | 1309 | EXT4_I(inode)->i_state &= ~EXT4_STATE_EXT_MIGRATE; |
1294 | } | 1310 | } |
1295 | } | ||
1296 | 1311 | ||
1312 | /* | ||
1313 | * Update reserved blocks/metadata blocks after successful | ||
1314 | * block allocation which had been deferred till now. We don't | ||
1315 | * support fallocate for non extent files. So we can update | ||
1316 | * reserve space here. | ||
1317 | */ | ||
1318 | if ((retval > 0) && | ||
1319 | (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE)) | ||
1320 | ext4_da_update_reserve_space(inode, retval, 1); | ||
1321 | } | ||
1297 | if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) | 1322 | if (flags & EXT4_GET_BLOCKS_DELALLOC_RESERVE) |
1298 | EXT4_I(inode)->i_delalloc_reserved_flag = 0; | 1323 | EXT4_I(inode)->i_delalloc_reserved_flag = 0; |
1299 | 1324 | ||
1300 | /* | ||
1301 | * Update reserved blocks/metadata blocks after successful | ||
1302 | * block allocation which had been deferred till now. | ||
1303 | */ | ||
1304 | if ((retval > 0) && (flags & EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE)) | ||
1305 | ext4_da_update_reserve_space(inode, retval); | ||
1306 | |||
1307 | up_write((&EXT4_I(inode)->i_data_sem)); | 1325 | up_write((&EXT4_I(inode)->i_data_sem)); |
1308 | if (retval > 0 && buffer_mapped(bh)) { | 1326 | if (retval > 0 && buffer_mapped(bh)) { |
1309 | int ret = check_block_validity(inode, "file system " | 1327 | int ret = check_block_validity(inode, "file system " |
@@ -1835,24 +1853,12 @@ repeat: | |||
1835 | * later. Real quota accounting is done at pages writeout | 1853 | * later. Real quota accounting is done at pages writeout |
1836 | * time. | 1854 | * time. |
1837 | */ | 1855 | */ |
1838 | if (vfs_dq_reserve_block(inode, md_needed + 1)) { | 1856 | if (vfs_dq_reserve_block(inode, md_needed + 1)) |
1839 | /* | ||
1840 | * We tend to badly over-estimate the amount of | ||
1841 | * metadata blocks which are needed, so if we have | ||
1842 | * reserved any metadata blocks, try to force out the | ||
1843 | * inode and see if we have any better luck. | ||
1844 | */ | ||
1845 | if (md_reserved && retries++ <= 3) | ||
1846 | goto retry; | ||
1847 | return -EDQUOT; | 1857 | return -EDQUOT; |
1848 | } | ||
1849 | 1858 | ||
1850 | if (ext4_claim_free_blocks(sbi, md_needed + 1)) { | 1859 | if (ext4_claim_free_blocks(sbi, md_needed + 1)) { |
1851 | vfs_dq_release_reservation_block(inode, md_needed + 1); | 1860 | vfs_dq_release_reservation_block(inode, md_needed + 1); |
1852 | if (ext4_should_retry_alloc(inode->i_sb, &retries)) { | 1861 | if (ext4_should_retry_alloc(inode->i_sb, &retries)) { |
1853 | retry: | ||
1854 | if (md_reserved) | ||
1855 | write_inode_now(inode, (retries == 3)); | ||
1856 | yield(); | 1862 | yield(); |
1857 | goto repeat; | 1863 | goto repeat; |
1858 | } | 1864 | } |
@@ -2213,10 +2219,10 @@ static int mpage_da_map_blocks(struct mpage_da_data *mpd) | |||
2213 | * variables are updated after the blocks have been allocated. | 2219 | * variables are updated after the blocks have been allocated. |
2214 | */ | 2220 | */ |
2215 | new.b_state = 0; | 2221 | new.b_state = 0; |
2216 | get_blocks_flags = (EXT4_GET_BLOCKS_CREATE | | 2222 | get_blocks_flags = EXT4_GET_BLOCKS_CREATE; |
2217 | EXT4_GET_BLOCKS_DELALLOC_RESERVE); | ||
2218 | if (mpd->b_state & (1 << BH_Delay)) | 2223 | if (mpd->b_state & (1 << BH_Delay)) |
2219 | get_blocks_flags |= EXT4_GET_BLOCKS_UPDATE_RESERVE_SPACE; | 2224 | get_blocks_flags |= EXT4_GET_BLOCKS_DELALLOC_RESERVE; |
2225 | |||
2220 | blks = ext4_get_blocks(handle, mpd->inode, next, max_blocks, | 2226 | blks = ext4_get_blocks(handle, mpd->inode, next, max_blocks, |
2221 | &new, get_blocks_flags); | 2227 | &new, get_blocks_flags); |
2222 | if (blks < 0) { | 2228 | if (blks < 0) { |
@@ -3032,7 +3038,7 @@ static int ext4_da_write_begin(struct file *file, struct address_space *mapping, | |||
3032 | loff_t pos, unsigned len, unsigned flags, | 3038 | loff_t pos, unsigned len, unsigned flags, |
3033 | struct page **pagep, void **fsdata) | 3039 | struct page **pagep, void **fsdata) |
3034 | { | 3040 | { |
3035 | int ret, retries = 0; | 3041 | int ret, retries = 0, quota_retries = 0; |
3036 | struct page *page; | 3042 | struct page *page; |
3037 | pgoff_t index; | 3043 | pgoff_t index; |
3038 | unsigned from, to; | 3044 | unsigned from, to; |
@@ -3091,6 +3097,22 @@ retry: | |||
3091 | 3097 | ||
3092 | if (ret == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries)) | 3098 | if (ret == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries)) |
3093 | goto retry; | 3099 | goto retry; |
3100 | |||
3101 | if ((ret == -EDQUOT) && | ||
3102 | EXT4_I(inode)->i_reserved_meta_blocks && | ||
3103 | (quota_retries++ < 3)) { | ||
3104 | /* | ||
3105 | * Since we often over-estimate the number of meta | ||
3106 | * data blocks required, we may sometimes get a | ||
3107 | * spurios out of quota error even though there would | ||
3108 | * be enough space once we write the data blocks and | ||
3109 | * find out how many meta data blocks were _really_ | ||
3110 | * required. So try forcing the inode write to see if | ||
3111 | * that helps. | ||
3112 | */ | ||
3113 | write_inode_now(inode, (quota_retries == 3)); | ||
3114 | goto retry; | ||
3115 | } | ||
3094 | out: | 3116 | out: |
3095 | return ret; | 3117 | return ret; |
3096 | } | 3118 | } |
diff --git a/fs/file_table.c b/fs/file_table.c index 69652c5bd5f0..b98404b54383 100644 --- a/fs/file_table.c +++ b/fs/file_table.c | |||
@@ -253,6 +253,7 @@ void __fput(struct file *file) | |||
253 | if (file->f_op && file->f_op->release) | 253 | if (file->f_op && file->f_op->release) |
254 | file->f_op->release(inode, file); | 254 | file->f_op->release(inode, file); |
255 | security_file_free(file); | 255 | security_file_free(file); |
256 | ima_file_free(file); | ||
256 | if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) | 257 | if (unlikely(S_ISCHR(inode->i_mode) && inode->i_cdev != NULL)) |
257 | cdev_put(inode->i_cdev); | 258 | cdev_put(inode->i_cdev); |
258 | fops_put(file->f_op); | 259 | fops_put(file->f_op); |
diff --git a/fs/fuse/file.c b/fs/fuse/file.c index c18913a777ae..a9f5e137f1d3 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c | |||
@@ -828,6 +828,9 @@ static ssize_t fuse_fill_write_pages(struct fuse_req *req, | |||
828 | if (!page) | 828 | if (!page) |
829 | break; | 829 | break; |
830 | 830 | ||
831 | if (mapping_writably_mapped(mapping)) | ||
832 | flush_dcache_page(page); | ||
833 | |||
831 | pagefault_disable(); | 834 | pagefault_disable(); |
832 | tmp = iov_iter_copy_from_user_atomic(page, ii, offset, bytes); | 835 | tmp = iov_iter_copy_from_user_atomic(page, ii, offset, bytes); |
833 | pagefault_enable(); | 836 | pagefault_enable(); |
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c index 6d47379e794b..583e823307ae 100644 --- a/fs/gfs2/bmap.c +++ b/fs/gfs2/bmap.c | |||
@@ -541,7 +541,7 @@ static int gfs2_bmap_alloc(struct inode *inode, const sector_t lblock, | |||
541 | *ptr++ = cpu_to_be64(bn++); | 541 | *ptr++ = cpu_to_be64(bn++); |
542 | break; | 542 | break; |
543 | } | 543 | } |
544 | } while (state != ALLOC_DATA); | 544 | } while ((state != ALLOC_DATA) || !dblock); |
545 | 545 | ||
546 | ip->i_height = height; | 546 | ip->i_height = height; |
547 | gfs2_add_inode_blocks(&ip->i_inode, alloced); | 547 | gfs2_add_inode_blocks(&ip->i_inode, alloced); |
diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c index f455a03a09e2..f42663325931 100644 --- a/fs/gfs2/glock.c +++ b/fs/gfs2/glock.c | |||
@@ -769,6 +769,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, | |||
769 | if (!gl) | 769 | if (!gl) |
770 | return -ENOMEM; | 770 | return -ENOMEM; |
771 | 771 | ||
772 | atomic_inc(&sdp->sd_glock_disposal); | ||
772 | gl->gl_flags = 0; | 773 | gl->gl_flags = 0; |
773 | gl->gl_name = name; | 774 | gl->gl_name = name; |
774 | atomic_set(&gl->gl_ref, 1); | 775 | atomic_set(&gl->gl_ref, 1); |
@@ -1538,6 +1539,9 @@ void gfs2_gl_hash_clear(struct gfs2_sbd *sdp) | |||
1538 | up_write(&gfs2_umount_flush_sem); | 1539 | up_write(&gfs2_umount_flush_sem); |
1539 | msleep(10); | 1540 | msleep(10); |
1540 | } | 1541 | } |
1542 | flush_workqueue(glock_workqueue); | ||
1543 | wait_event(sdp->sd_glock_wait, atomic_read(&sdp->sd_glock_disposal) == 0); | ||
1544 | gfs2_dump_lockstate(sdp); | ||
1541 | } | 1545 | } |
1542 | 1546 | ||
1543 | void gfs2_glock_finish_truncate(struct gfs2_inode *ip) | 1547 | void gfs2_glock_finish_truncate(struct gfs2_inode *ip) |
diff --git a/fs/gfs2/glock.h b/fs/gfs2/glock.h index 13f0bd228132..c0262faf4725 100644 --- a/fs/gfs2/glock.h +++ b/fs/gfs2/glock.h | |||
@@ -123,7 +123,7 @@ struct lm_lockops { | |||
123 | int (*lm_mount) (struct gfs2_sbd *sdp, const char *fsname); | 123 | int (*lm_mount) (struct gfs2_sbd *sdp, const char *fsname); |
124 | void (*lm_unmount) (struct gfs2_sbd *sdp); | 124 | void (*lm_unmount) (struct gfs2_sbd *sdp); |
125 | void (*lm_withdraw) (struct gfs2_sbd *sdp); | 125 | void (*lm_withdraw) (struct gfs2_sbd *sdp); |
126 | void (*lm_put_lock) (struct kmem_cache *cachep, void *gl); | 126 | void (*lm_put_lock) (struct kmem_cache *cachep, struct gfs2_glock *gl); |
127 | unsigned int (*lm_lock) (struct gfs2_glock *gl, | 127 | unsigned int (*lm_lock) (struct gfs2_glock *gl, |
128 | unsigned int req_state, unsigned int flags); | 128 | unsigned int req_state, unsigned int flags); |
129 | void (*lm_cancel) (struct gfs2_glock *gl); | 129 | void (*lm_cancel) (struct gfs2_glock *gl); |
diff --git a/fs/gfs2/incore.h b/fs/gfs2/incore.h index 4792200978c8..bc0ad158e6b4 100644 --- a/fs/gfs2/incore.h +++ b/fs/gfs2/incore.h | |||
@@ -544,6 +544,8 @@ struct gfs2_sbd { | |||
544 | struct gfs2_holder sd_live_gh; | 544 | struct gfs2_holder sd_live_gh; |
545 | struct gfs2_glock *sd_rename_gl; | 545 | struct gfs2_glock *sd_rename_gl; |
546 | struct gfs2_glock *sd_trans_gl; | 546 | struct gfs2_glock *sd_trans_gl; |
547 | wait_queue_head_t sd_glock_wait; | ||
548 | atomic_t sd_glock_disposal; | ||
547 | 549 | ||
548 | /* Inode Stuff */ | 550 | /* Inode Stuff */ |
549 | 551 | ||
diff --git a/fs/gfs2/lock_dlm.c b/fs/gfs2/lock_dlm.c index 46df988323bc..0e5e0e7022e5 100644 --- a/fs/gfs2/lock_dlm.c +++ b/fs/gfs2/lock_dlm.c | |||
@@ -21,6 +21,7 @@ static void gdlm_ast(void *arg) | |||
21 | { | 21 | { |
22 | struct gfs2_glock *gl = arg; | 22 | struct gfs2_glock *gl = arg; |
23 | unsigned ret = gl->gl_state; | 23 | unsigned ret = gl->gl_state; |
24 | struct gfs2_sbd *sdp = gl->gl_sbd; | ||
24 | 25 | ||
25 | BUG_ON(gl->gl_lksb.sb_flags & DLM_SBF_DEMOTED); | 26 | BUG_ON(gl->gl_lksb.sb_flags & DLM_SBF_DEMOTED); |
26 | 27 | ||
@@ -30,6 +31,8 @@ static void gdlm_ast(void *arg) | |||
30 | switch (gl->gl_lksb.sb_status) { | 31 | switch (gl->gl_lksb.sb_status) { |
31 | case -DLM_EUNLOCK: /* Unlocked, so glock can be freed */ | 32 | case -DLM_EUNLOCK: /* Unlocked, so glock can be freed */ |
32 | kmem_cache_free(gfs2_glock_cachep, gl); | 33 | kmem_cache_free(gfs2_glock_cachep, gl); |
34 | if (atomic_dec_and_test(&sdp->sd_glock_disposal)) | ||
35 | wake_up(&sdp->sd_glock_wait); | ||
33 | return; | 36 | return; |
34 | case -DLM_ECANCEL: /* Cancel while getting lock */ | 37 | case -DLM_ECANCEL: /* Cancel while getting lock */ |
35 | ret |= LM_OUT_CANCELED; | 38 | ret |= LM_OUT_CANCELED; |
@@ -164,14 +167,16 @@ static unsigned int gdlm_lock(struct gfs2_glock *gl, | |||
164 | return LM_OUT_ASYNC; | 167 | return LM_OUT_ASYNC; |
165 | } | 168 | } |
166 | 169 | ||
167 | static void gdlm_put_lock(struct kmem_cache *cachep, void *ptr) | 170 | static void gdlm_put_lock(struct kmem_cache *cachep, struct gfs2_glock *gl) |
168 | { | 171 | { |
169 | struct gfs2_glock *gl = ptr; | 172 | struct gfs2_sbd *sdp = gl->gl_sbd; |
170 | struct lm_lockstruct *ls = &gl->gl_sbd->sd_lockstruct; | 173 | struct lm_lockstruct *ls = &sdp->sd_lockstruct; |
171 | int error; | 174 | int error; |
172 | 175 | ||
173 | if (gl->gl_lksb.sb_lkid == 0) { | 176 | if (gl->gl_lksb.sb_lkid == 0) { |
174 | kmem_cache_free(cachep, gl); | 177 | kmem_cache_free(cachep, gl); |
178 | if (atomic_dec_and_test(&sdp->sd_glock_disposal)) | ||
179 | wake_up(&sdp->sd_glock_wait); | ||
175 | return; | 180 | return; |
176 | } | 181 | } |
177 | 182 | ||
diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index edfee24f3636..a86ed6381566 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c | |||
@@ -82,6 +82,8 @@ static struct gfs2_sbd *init_sbd(struct super_block *sb) | |||
82 | 82 | ||
83 | gfs2_tune_init(&sdp->sd_tune); | 83 | gfs2_tune_init(&sdp->sd_tune); |
84 | 84 | ||
85 | init_waitqueue_head(&sdp->sd_glock_wait); | ||
86 | atomic_set(&sdp->sd_glock_disposal, 0); | ||
85 | spin_lock_init(&sdp->sd_statfs_spin); | 87 | spin_lock_init(&sdp->sd_statfs_spin); |
86 | 88 | ||
87 | spin_lock_init(&sdp->sd_rindex_spin); | 89 | spin_lock_init(&sdp->sd_rindex_spin); |
@@ -723,7 +725,7 @@ static int init_journal(struct gfs2_sbd *sdp, int undo) | |||
723 | goto fail; | 725 | goto fail; |
724 | } | 726 | } |
725 | 727 | ||
726 | error = -EINVAL; | 728 | error = -EUSERS; |
727 | if (!gfs2_jindex_size(sdp)) { | 729 | if (!gfs2_jindex_size(sdp)) { |
728 | fs_err(sdp, "no journals!\n"); | 730 | fs_err(sdp, "no journals!\n"); |
729 | goto fail_jindex; | 731 | goto fail_jindex; |
@@ -983,9 +985,17 @@ static const match_table_t nolock_tokens = { | |||
983 | { Opt_err, NULL }, | 985 | { Opt_err, NULL }, |
984 | }; | 986 | }; |
985 | 987 | ||
988 | static void nolock_put_lock(struct kmem_cache *cachep, struct gfs2_glock *gl) | ||
989 | { | ||
990 | struct gfs2_sbd *sdp = gl->gl_sbd; | ||
991 | kmem_cache_free(cachep, gl); | ||
992 | if (atomic_dec_and_test(&sdp->sd_glock_disposal)) | ||
993 | wake_up(&sdp->sd_glock_wait); | ||
994 | } | ||
995 | |||
986 | static const struct lm_lockops nolock_ops = { | 996 | static const struct lm_lockops nolock_ops = { |
987 | .lm_proto_name = "lock_nolock", | 997 | .lm_proto_name = "lock_nolock", |
988 | .lm_put_lock = kmem_cache_free, | 998 | .lm_put_lock = nolock_put_lock, |
989 | .lm_tokens = &nolock_tokens, | 999 | .lm_tokens = &nolock_tokens, |
990 | }; | 1000 | }; |
991 | 1001 | ||
diff --git a/fs/gfs2/ops_inode.c b/fs/gfs2/ops_inode.c index 78f73ca1ef3e..84350e1be66d 100644 --- a/fs/gfs2/ops_inode.c +++ b/fs/gfs2/ops_inode.c | |||
@@ -1088,7 +1088,8 @@ static void *gfs2_follow_link(struct dentry *dentry, struct nameidata *nd) | |||
1088 | error = vfs_follow_link(nd, buf); | 1088 | error = vfs_follow_link(nd, buf); |
1089 | if (buf != array) | 1089 | if (buf != array) |
1090 | kfree(buf); | 1090 | kfree(buf); |
1091 | } | 1091 | } else |
1092 | path_put(&nd->path); | ||
1092 | 1093 | ||
1093 | return ERR_PTR(error); | 1094 | return ERR_PTR(error); |
1094 | } | 1095 | } |
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c index 0608f490c295..503b842f3ba2 100644 --- a/fs/gfs2/rgrp.c +++ b/fs/gfs2/rgrp.c | |||
@@ -591,11 +591,7 @@ static int gfs2_ri_update(struct gfs2_inode *ip) | |||
591 | u64 rgrp_count = ip->i_disksize; | 591 | u64 rgrp_count = ip->i_disksize; |
592 | int error; | 592 | int error; |
593 | 593 | ||
594 | if (do_div(rgrp_count, sizeof(struct gfs2_rindex))) { | 594 | do_div(rgrp_count, sizeof(struct gfs2_rindex)); |
595 | gfs2_consist_inode(ip); | ||
596 | return -EIO; | ||
597 | } | ||
598 | |||
599 | clear_rgrpdi(sdp); | 595 | clear_rgrpdi(sdp); |
600 | 596 | ||
601 | file_ra_state_init(&ra_state, inode->i_mapping); | 597 | file_ra_state_init(&ra_state, inode->i_mapping); |
@@ -915,7 +911,7 @@ void gfs2_rgrp_repolish_clones(struct gfs2_rgrpd *rgd) | |||
915 | struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip) | 911 | struct gfs2_alloc *gfs2_alloc_get(struct gfs2_inode *ip) |
916 | { | 912 | { |
917 | BUG_ON(ip->i_alloc != NULL); | 913 | BUG_ON(ip->i_alloc != NULL); |
918 | ip->i_alloc = kzalloc(sizeof(struct gfs2_alloc), GFP_KERNEL); | 914 | ip->i_alloc = kzalloc(sizeof(struct gfs2_alloc), GFP_NOFS); |
919 | return ip->i_alloc; | 915 | return ip->i_alloc; |
920 | } | 916 | } |
921 | 917 | ||
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index c282ad41f3d1..b9dd3da22c0a 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c | |||
@@ -21,6 +21,7 @@ | |||
21 | #include <linux/gfs2_ondisk.h> | 21 | #include <linux/gfs2_ondisk.h> |
22 | #include <linux/crc32.h> | 22 | #include <linux/crc32.h> |
23 | #include <linux/time.h> | 23 | #include <linux/time.h> |
24 | #include <linux/wait.h> | ||
24 | 25 | ||
25 | #include "gfs2.h" | 26 | #include "gfs2.h" |
26 | #include "incore.h" | 27 | #include "incore.h" |
diff --git a/fs/namei.c b/fs/namei.c index 94a5e60779f9..d62fdc875f22 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1736,8 +1736,7 @@ do_last: | |||
1736 | if (nd.root.mnt) | 1736 | if (nd.root.mnt) |
1737 | path_put(&nd.root); | 1737 | path_put(&nd.root); |
1738 | if (!IS_ERR(filp)) { | 1738 | if (!IS_ERR(filp)) { |
1739 | error = ima_path_check(&filp->f_path, filp->f_mode & | 1739 | error = ima_file_check(filp, acc_mode); |
1740 | (MAY_READ | MAY_WRITE | MAY_EXEC)); | ||
1741 | if (error) { | 1740 | if (error) { |
1742 | fput(filp); | 1741 | fput(filp); |
1743 | filp = ERR_PTR(error); | 1742 | filp = ERR_PTR(error); |
@@ -1797,8 +1796,7 @@ ok: | |||
1797 | } | 1796 | } |
1798 | filp = nameidata_to_filp(&nd); | 1797 | filp = nameidata_to_filp(&nd); |
1799 | if (!IS_ERR(filp)) { | 1798 | if (!IS_ERR(filp)) { |
1800 | error = ima_path_check(&filp->f_path, filp->f_mode & | 1799 | error = ima_file_check(filp, acc_mode); |
1801 | (MAY_READ | MAY_WRITE | MAY_EXEC)); | ||
1802 | if (error) { | 1800 | if (error) { |
1803 | fput(filp); | 1801 | fput(filp); |
1804 | filp = ERR_PTR(error); | 1802 | filp = ERR_PTR(error); |
diff --git a/fs/nfs/direct.c b/fs/nfs/direct.c index e1d415e97849..0d289823e856 100644 --- a/fs/nfs/direct.c +++ b/fs/nfs/direct.c | |||
@@ -342,6 +342,7 @@ static ssize_t nfs_direct_read_schedule_segment(struct nfs_direct_req *dreq, | |||
342 | data->res.fattr = &data->fattr; | 342 | data->res.fattr = &data->fattr; |
343 | data->res.eof = 0; | 343 | data->res.eof = 0; |
344 | data->res.count = bytes; | 344 | data->res.count = bytes; |
345 | nfs_fattr_init(&data->fattr); | ||
345 | msg.rpc_argp = &data->args; | 346 | msg.rpc_argp = &data->args; |
346 | msg.rpc_resp = &data->res; | 347 | msg.rpc_resp = &data->res; |
347 | 348 | ||
@@ -575,6 +576,7 @@ static void nfs_direct_commit_schedule(struct nfs_direct_req *dreq) | |||
575 | data->res.count = 0; | 576 | data->res.count = 0; |
576 | data->res.fattr = &data->fattr; | 577 | data->res.fattr = &data->fattr; |
577 | data->res.verf = &data->verf; | 578 | data->res.verf = &data->verf; |
579 | nfs_fattr_init(&data->fattr); | ||
578 | 580 | ||
579 | NFS_PROTO(data->inode)->commit_setup(data, &msg); | 581 | NFS_PROTO(data->inode)->commit_setup(data, &msg); |
580 | 582 | ||
@@ -766,6 +768,7 @@ static ssize_t nfs_direct_write_schedule_segment(struct nfs_direct_req *dreq, | |||
766 | data->res.fattr = &data->fattr; | 768 | data->res.fattr = &data->fattr; |
767 | data->res.count = bytes; | 769 | data->res.count = bytes; |
768 | data->res.verf = &data->verf; | 770 | data->res.verf = &data->verf; |
771 | nfs_fattr_init(&data->fattr); | ||
769 | 772 | ||
770 | task_setup_data.task = &data->task; | 773 | task_setup_data.task = &data->task; |
771 | task_setup_data.callback_data = data; | 774 | task_setup_data.callback_data = data; |
diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 6b891328f332..63f2071d6445 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c | |||
@@ -486,6 +486,8 @@ static int nfs_release_page(struct page *page, gfp_t gfp) | |||
486 | { | 486 | { |
487 | dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); | 487 | dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page); |
488 | 488 | ||
489 | if (gfp & __GFP_WAIT) | ||
490 | nfs_wb_page(page->mapping->host, page); | ||
489 | /* If PagePrivate() is set, then the page is not freeable */ | 491 | /* If PagePrivate() is set, then the page is not freeable */ |
490 | if (PagePrivate(page)) | 492 | if (PagePrivate(page)) |
491 | return 0; | 493 | return 0; |
diff --git a/fs/nfs/fscache.c b/fs/nfs/fscache.c index fa588006588d..237874f1af23 100644 --- a/fs/nfs/fscache.c +++ b/fs/nfs/fscache.c | |||
@@ -354,12 +354,11 @@ void nfs_fscache_reset_inode_cookie(struct inode *inode) | |||
354 | */ | 354 | */ |
355 | int nfs_fscache_release_page(struct page *page, gfp_t gfp) | 355 | int nfs_fscache_release_page(struct page *page, gfp_t gfp) |
356 | { | 356 | { |
357 | struct nfs_inode *nfsi = NFS_I(page->mapping->host); | ||
358 | struct fscache_cookie *cookie = nfsi->fscache; | ||
359 | |||
360 | BUG_ON(!cookie); | ||
361 | |||
362 | if (PageFsCache(page)) { | 357 | if (PageFsCache(page)) { |
358 | struct nfs_inode *nfsi = NFS_I(page->mapping->host); | ||
359 | struct fscache_cookie *cookie = nfsi->fscache; | ||
360 | |||
361 | BUG_ON(!cookie); | ||
363 | dfprintk(FSCACHE, "NFS: fscache releasepage (0x%p/0x%p/0x%p)\n", | 362 | dfprintk(FSCACHE, "NFS: fscache releasepage (0x%p/0x%p/0x%p)\n", |
364 | cookie, page, nfsi); | 363 | cookie, page, nfsi); |
365 | 364 | ||
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index faa091865ad0..f141bde7756a 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -1261,8 +1261,10 @@ static int nfs_update_inode(struct inode *inode, struct nfs_fattr *fattr) | |||
1261 | 1261 | ||
1262 | if (fattr->valid & NFS_ATTR_FATTR_MODE) { | 1262 | if (fattr->valid & NFS_ATTR_FATTR_MODE) { |
1263 | if ((inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO)) { | 1263 | if ((inode->i_mode & S_IALLUGO) != (fattr->mode & S_IALLUGO)) { |
1264 | umode_t newmode = inode->i_mode & S_IFMT; | ||
1265 | newmode |= fattr->mode & S_IALLUGO; | ||
1266 | inode->i_mode = newmode; | ||
1264 | invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; | 1267 | invalid |= NFS_INO_INVALID_ATTR|NFS_INO_INVALID_ACCESS|NFS_INO_INVALID_ACL; |
1265 | inode->i_mode = fattr->mode; | ||
1266 | } | 1268 | } |
1267 | } else if (server->caps & NFS_CAP_MODE) | 1269 | } else if (server->caps & NFS_CAP_MODE) |
1268 | invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR | 1270 | invalid |= save_cache_validity & (NFS_INO_INVALID_ATTR |
diff --git a/fs/nfs/mount_clnt.c b/fs/nfs/mount_clnt.c index 0adefc40cc89..59047f8d7d72 100644 --- a/fs/nfs/mount_clnt.c +++ b/fs/nfs/mount_clnt.c | |||
@@ -120,7 +120,7 @@ static struct { | |||
120 | { .status = MNT3ERR_INVAL, .errno = -EINVAL, }, | 120 | { .status = MNT3ERR_INVAL, .errno = -EINVAL, }, |
121 | { .status = MNT3ERR_NAMETOOLONG, .errno = -ENAMETOOLONG, }, | 121 | { .status = MNT3ERR_NAMETOOLONG, .errno = -ENAMETOOLONG, }, |
122 | { .status = MNT3ERR_NOTSUPP, .errno = -ENOTSUPP, }, | 122 | { .status = MNT3ERR_NOTSUPP, .errno = -ENOTSUPP, }, |
123 | { .status = MNT3ERR_SERVERFAULT, .errno = -ESERVERFAULT, }, | 123 | { .status = MNT3ERR_SERVERFAULT, .errno = -EREMOTEIO, }, |
124 | }; | 124 | }; |
125 | 125 | ||
126 | struct mountres { | 126 | struct mountres { |
diff --git a/fs/nfs/nfs2xdr.c b/fs/nfs/nfs2xdr.c index 5e078b222b4e..7bc2da8efd4a 100644 --- a/fs/nfs/nfs2xdr.c +++ b/fs/nfs/nfs2xdr.c | |||
@@ -699,7 +699,7 @@ static struct { | |||
699 | { NFSERR_BAD_COOKIE, -EBADCOOKIE }, | 699 | { NFSERR_BAD_COOKIE, -EBADCOOKIE }, |
700 | { NFSERR_NOTSUPP, -ENOTSUPP }, | 700 | { NFSERR_NOTSUPP, -ENOTSUPP }, |
701 | { NFSERR_TOOSMALL, -ETOOSMALL }, | 701 | { NFSERR_TOOSMALL, -ETOOSMALL }, |
702 | { NFSERR_SERVERFAULT, -ESERVERFAULT }, | 702 | { NFSERR_SERVERFAULT, -EREMOTEIO }, |
703 | { NFSERR_BADTYPE, -EBADTYPE }, | 703 | { NFSERR_BADTYPE, -EBADTYPE }, |
704 | { NFSERR_JUKEBOX, -EJUKEBOX }, | 704 | { NFSERR_JUKEBOX, -EJUKEBOX }, |
705 | { -1, -EIO } | 705 | { -1, -EIO } |
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 865265bdca03..0c6fda33d66e 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -146,6 +146,7 @@ enum { | |||
146 | NFS_O_RDWR_STATE, /* OPEN stateid has read/write state */ | 146 | NFS_O_RDWR_STATE, /* OPEN stateid has read/write state */ |
147 | NFS_STATE_RECLAIM_REBOOT, /* OPEN stateid server rebooted */ | 147 | NFS_STATE_RECLAIM_REBOOT, /* OPEN stateid server rebooted */ |
148 | NFS_STATE_RECLAIM_NOGRACE, /* OPEN stateid needs to recover state */ | 148 | NFS_STATE_RECLAIM_NOGRACE, /* OPEN stateid needs to recover state */ |
149 | NFS_STATE_POSIX_LOCKS, /* Posix locks are supported */ | ||
149 | }; | 150 | }; |
150 | 151 | ||
151 | struct nfs4_state { | 152 | struct nfs4_state { |
@@ -277,6 +278,7 @@ extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t); | |||
277 | extern void nfs4_schedule_state_recovery(struct nfs_client *); | 278 | extern void nfs4_schedule_state_recovery(struct nfs_client *); |
278 | extern void nfs4_schedule_state_manager(struct nfs_client *); | 279 | extern void nfs4_schedule_state_manager(struct nfs_client *); |
279 | extern int nfs4_state_mark_reclaim_nograce(struct nfs_client *clp, struct nfs4_state *state); | 280 | extern int nfs4_state_mark_reclaim_nograce(struct nfs_client *clp, struct nfs4_state *state); |
281 | extern int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state); | ||
280 | extern void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags); | 282 | extern void nfs41_handle_sequence_flag_errors(struct nfs_client *clp, u32 flags); |
281 | extern void nfs4_put_lock_state(struct nfs4_lock_state *lsp); | 283 | extern void nfs4_put_lock_state(struct nfs4_lock_state *lsp); |
282 | extern int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl); | 284 | extern int nfs4_set_lock_state(struct nfs4_state *state, struct file_lock *fl); |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 198d51d17c13..375f0fae2c6a 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -249,19 +249,15 @@ static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, | |||
249 | if (state == NULL) | 249 | if (state == NULL) |
250 | break; | 250 | break; |
251 | nfs4_state_mark_reclaim_nograce(clp, state); | 251 | nfs4_state_mark_reclaim_nograce(clp, state); |
252 | case -NFS4ERR_STALE_CLIENTID: | 252 | goto do_state_recovery; |
253 | case -NFS4ERR_STALE_STATEID: | 253 | case -NFS4ERR_STALE_STATEID: |
254 | case -NFS4ERR_EXPIRED: | 254 | if (state == NULL) |
255 | nfs4_schedule_state_recovery(clp); | ||
256 | ret = nfs4_wait_clnt_recover(clp); | ||
257 | if (ret == 0) | ||
258 | exception->retry = 1; | ||
259 | #if !defined(CONFIG_NFS_V4_1) | ||
260 | break; | ||
261 | #else /* !defined(CONFIG_NFS_V4_1) */ | ||
262 | if (!nfs4_has_session(server->nfs_client)) | ||
263 | break; | 255 | break; |
264 | /* FALLTHROUGH */ | 256 | nfs4_state_mark_reclaim_reboot(clp, state); |
257 | case -NFS4ERR_STALE_CLIENTID: | ||
258 | case -NFS4ERR_EXPIRED: | ||
259 | goto do_state_recovery; | ||
260 | #if defined(CONFIG_NFS_V4_1) | ||
265 | case -NFS4ERR_BADSESSION: | 261 | case -NFS4ERR_BADSESSION: |
266 | case -NFS4ERR_BADSLOT: | 262 | case -NFS4ERR_BADSLOT: |
267 | case -NFS4ERR_BAD_HIGH_SLOT: | 263 | case -NFS4ERR_BAD_HIGH_SLOT: |
@@ -274,7 +270,7 @@ static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, | |||
274 | nfs4_schedule_state_recovery(clp); | 270 | nfs4_schedule_state_recovery(clp); |
275 | exception->retry = 1; | 271 | exception->retry = 1; |
276 | break; | 272 | break; |
277 | #endif /* !defined(CONFIG_NFS_V4_1) */ | 273 | #endif /* defined(CONFIG_NFS_V4_1) */ |
278 | case -NFS4ERR_FILE_OPEN: | 274 | case -NFS4ERR_FILE_OPEN: |
279 | if (exception->timeout > HZ) { | 275 | if (exception->timeout > HZ) { |
280 | /* We have retried a decent amount, time to | 276 | /* We have retried a decent amount, time to |
@@ -293,6 +289,12 @@ static int nfs4_handle_exception(const struct nfs_server *server, int errorcode, | |||
293 | } | 289 | } |
294 | /* We failed to handle the error */ | 290 | /* We failed to handle the error */ |
295 | return nfs4_map_errors(ret); | 291 | return nfs4_map_errors(ret); |
292 | do_state_recovery: | ||
293 | nfs4_schedule_state_recovery(clp); | ||
294 | ret = nfs4_wait_clnt_recover(clp); | ||
295 | if (ret == 0) | ||
296 | exception->retry = 1; | ||
297 | return ret; | ||
296 | } | 298 | } |
297 | 299 | ||
298 | 300 | ||
@@ -1658,6 +1660,8 @@ static int _nfs4_do_open(struct inode *dir, struct path *path, fmode_t fmode, in | |||
1658 | status = PTR_ERR(state); | 1660 | status = PTR_ERR(state); |
1659 | if (IS_ERR(state)) | 1661 | if (IS_ERR(state)) |
1660 | goto err_opendata_put; | 1662 | goto err_opendata_put; |
1663 | if ((opendata->o_res.rflags & NFS4_OPEN_RESULT_LOCKTYPE_POSIX) != 0) | ||
1664 | set_bit(NFS_STATE_POSIX_LOCKS, &state->flags); | ||
1661 | nfs4_opendata_put(opendata); | 1665 | nfs4_opendata_put(opendata); |
1662 | nfs4_put_state_owner(sp); | 1666 | nfs4_put_state_owner(sp); |
1663 | *res = state; | 1667 | *res = state; |
@@ -3422,15 +3426,14 @@ _nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server, | |||
3422 | if (state == NULL) | 3426 | if (state == NULL) |
3423 | break; | 3427 | break; |
3424 | nfs4_state_mark_reclaim_nograce(clp, state); | 3428 | nfs4_state_mark_reclaim_nograce(clp, state); |
3425 | case -NFS4ERR_STALE_CLIENTID: | 3429 | goto do_state_recovery; |
3426 | case -NFS4ERR_STALE_STATEID: | 3430 | case -NFS4ERR_STALE_STATEID: |
3431 | if (state == NULL) | ||
3432 | break; | ||
3433 | nfs4_state_mark_reclaim_reboot(clp, state); | ||
3434 | case -NFS4ERR_STALE_CLIENTID: | ||
3427 | case -NFS4ERR_EXPIRED: | 3435 | case -NFS4ERR_EXPIRED: |
3428 | rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); | 3436 | goto do_state_recovery; |
3429 | nfs4_schedule_state_recovery(clp); | ||
3430 | if (test_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) == 0) | ||
3431 | rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); | ||
3432 | task->tk_status = 0; | ||
3433 | return -EAGAIN; | ||
3434 | #if defined(CONFIG_NFS_V4_1) | 3437 | #if defined(CONFIG_NFS_V4_1) |
3435 | case -NFS4ERR_BADSESSION: | 3438 | case -NFS4ERR_BADSESSION: |
3436 | case -NFS4ERR_BADSLOT: | 3439 | case -NFS4ERR_BADSLOT: |
@@ -3458,6 +3461,13 @@ _nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server, | |||
3458 | } | 3461 | } |
3459 | task->tk_status = nfs4_map_errors(task->tk_status); | 3462 | task->tk_status = nfs4_map_errors(task->tk_status); |
3460 | return 0; | 3463 | return 0; |
3464 | do_state_recovery: | ||
3465 | rpc_sleep_on(&clp->cl_rpcwaitq, task, NULL); | ||
3466 | nfs4_schedule_state_recovery(clp); | ||
3467 | if (test_bit(NFS4CLNT_MANAGER_RUNNING, &clp->cl_state) == 0) | ||
3468 | rpc_wake_up_queued_task(&clp->cl_rpcwaitq, task); | ||
3469 | task->tk_status = 0; | ||
3470 | return -EAGAIN; | ||
3461 | } | 3471 | } |
3462 | 3472 | ||
3463 | static int | 3473 | static int |
@@ -4088,6 +4098,28 @@ static const struct rpc_call_ops nfs4_recover_lock_ops = { | |||
4088 | .rpc_release = nfs4_lock_release, | 4098 | .rpc_release = nfs4_lock_release, |
4089 | }; | 4099 | }; |
4090 | 4100 | ||
4101 | static void nfs4_handle_setlk_error(struct nfs_server *server, struct nfs4_lock_state *lsp, int new_lock_owner, int error) | ||
4102 | { | ||
4103 | struct nfs_client *clp = server->nfs_client; | ||
4104 | struct nfs4_state *state = lsp->ls_state; | ||
4105 | |||
4106 | switch (error) { | ||
4107 | case -NFS4ERR_ADMIN_REVOKED: | ||
4108 | case -NFS4ERR_BAD_STATEID: | ||
4109 | case -NFS4ERR_EXPIRED: | ||
4110 | if (new_lock_owner != 0 || | ||
4111 | (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0) | ||
4112 | nfs4_state_mark_reclaim_nograce(clp, state); | ||
4113 | lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED; | ||
4114 | break; | ||
4115 | case -NFS4ERR_STALE_STATEID: | ||
4116 | if (new_lock_owner != 0 || | ||
4117 | (lsp->ls_flags & NFS_LOCK_INITIALIZED) != 0) | ||
4118 | nfs4_state_mark_reclaim_reboot(clp, state); | ||
4119 | lsp->ls_seqid.flags &= ~NFS_SEQID_CONFIRMED; | ||
4120 | }; | ||
4121 | } | ||
4122 | |||
4091 | static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *fl, int recovery_type) | 4123 | static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *fl, int recovery_type) |
4092 | { | 4124 | { |
4093 | struct nfs4_lockdata *data; | 4125 | struct nfs4_lockdata *data; |
@@ -4126,6 +4158,9 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f | |||
4126 | ret = nfs4_wait_for_completion_rpc_task(task); | 4158 | ret = nfs4_wait_for_completion_rpc_task(task); |
4127 | if (ret == 0) { | 4159 | if (ret == 0) { |
4128 | ret = data->rpc_status; | 4160 | ret = data->rpc_status; |
4161 | if (ret) | ||
4162 | nfs4_handle_setlk_error(data->server, data->lsp, | ||
4163 | data->arg.new_lock_owner, ret); | ||
4129 | } else | 4164 | } else |
4130 | data->cancelled = 1; | 4165 | data->cancelled = 1; |
4131 | rpc_put_task(task); | 4166 | rpc_put_task(task); |
@@ -4181,8 +4216,11 @@ static int _nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock | |||
4181 | { | 4216 | { |
4182 | struct nfs_inode *nfsi = NFS_I(state->inode); | 4217 | struct nfs_inode *nfsi = NFS_I(state->inode); |
4183 | unsigned char fl_flags = request->fl_flags; | 4218 | unsigned char fl_flags = request->fl_flags; |
4184 | int status; | 4219 | int status = -ENOLCK; |
4185 | 4220 | ||
4221 | if ((fl_flags & FL_POSIX) && | ||
4222 | !test_bit(NFS_STATE_POSIX_LOCKS, &state->flags)) | ||
4223 | goto out; | ||
4186 | /* Is this a delegated open? */ | 4224 | /* Is this a delegated open? */ |
4187 | status = nfs4_set_lock_state(state, request); | 4225 | status = nfs4_set_lock_state(state, request); |
4188 | if (status != 0) | 4226 | if (status != 0) |
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 6d263ed79e92..c1e2733f4fa4 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -901,7 +901,7 @@ void nfs4_schedule_state_recovery(struct nfs_client *clp) | |||
901 | nfs4_schedule_state_manager(clp); | 901 | nfs4_schedule_state_manager(clp); |
902 | } | 902 | } |
903 | 903 | ||
904 | static int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state) | 904 | int nfs4_state_mark_reclaim_reboot(struct nfs_client *clp, struct nfs4_state *state) |
905 | { | 905 | { |
906 | 906 | ||
907 | set_bit(NFS_STATE_RECLAIM_REBOOT, &state->flags); | 907 | set_bit(NFS_STATE_RECLAIM_REBOOT, &state->flags); |
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c index e437fd6a819f..5cd5184b56db 100644 --- a/fs/nfs/nfs4xdr.c +++ b/fs/nfs/nfs4xdr.c | |||
@@ -4631,7 +4631,7 @@ static int decode_sequence(struct xdr_stream *xdr, | |||
4631 | * If the server returns different values for sessionID, slotID or | 4631 | * If the server returns different values for sessionID, slotID or |
4632 | * sequence number, the server is looney tunes. | 4632 | * sequence number, the server is looney tunes. |
4633 | */ | 4633 | */ |
4634 | status = -ESERVERFAULT; | 4634 | status = -EREMOTEIO; |
4635 | 4635 | ||
4636 | if (memcmp(id.data, res->sr_session->sess_id.data, | 4636 | if (memcmp(id.data, res->sr_session->sess_id.data, |
4637 | NFS4_MAX_SESSIONID_LEN)) { | 4637 | NFS4_MAX_SESSIONID_LEN)) { |
@@ -5774,7 +5774,7 @@ static struct { | |||
5774 | { NFS4ERR_BAD_COOKIE, -EBADCOOKIE }, | 5774 | { NFS4ERR_BAD_COOKIE, -EBADCOOKIE }, |
5775 | { NFS4ERR_NOTSUPP, -ENOTSUPP }, | 5775 | { NFS4ERR_NOTSUPP, -ENOTSUPP }, |
5776 | { NFS4ERR_TOOSMALL, -ETOOSMALL }, | 5776 | { NFS4ERR_TOOSMALL, -ETOOSMALL }, |
5777 | { NFS4ERR_SERVERFAULT, -ESERVERFAULT }, | 5777 | { NFS4ERR_SERVERFAULT, -EREMOTEIO }, |
5778 | { NFS4ERR_BADTYPE, -EBADTYPE }, | 5778 | { NFS4ERR_BADTYPE, -EBADTYPE }, |
5779 | { NFS4ERR_LOCKED, -EAGAIN }, | 5779 | { NFS4ERR_LOCKED, -EAGAIN }, |
5780 | { NFS4ERR_SYMLINK, -ELOOP }, | 5780 | { NFS4ERR_SYMLINK, -ELOOP }, |
@@ -5801,7 +5801,7 @@ nfs4_stat_to_errno(int stat) | |||
5801 | } | 5801 | } |
5802 | if (stat <= 10000 || stat > 10100) { | 5802 | if (stat <= 10000 || stat > 10100) { |
5803 | /* The server is looney tunes. */ | 5803 | /* The server is looney tunes. */ |
5804 | return -ESERVERFAULT; | 5804 | return -EREMOTEIO; |
5805 | } | 5805 | } |
5806 | /* If we cannot translate the error, the recovery routines should | 5806 | /* If we cannot translate the error, the recovery routines should |
5807 | * handle it. | 5807 | * handle it. |
diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c index e2975939126a..a12c45b65dd4 100644 --- a/fs/nfs/pagelist.c +++ b/fs/nfs/pagelist.c | |||
@@ -176,6 +176,12 @@ void nfs_release_request(struct nfs_page *req) | |||
176 | kref_put(&req->wb_kref, nfs_free_request); | 176 | kref_put(&req->wb_kref, nfs_free_request); |
177 | } | 177 | } |
178 | 178 | ||
179 | static int nfs_wait_bit_uninterruptible(void *word) | ||
180 | { | ||
181 | io_schedule(); | ||
182 | return 0; | ||
183 | } | ||
184 | |||
179 | /** | 185 | /** |
180 | * nfs_wait_on_request - Wait for a request to complete. | 186 | * nfs_wait_on_request - Wait for a request to complete. |
181 | * @req: request to wait upon. | 187 | * @req: request to wait upon. |
@@ -186,14 +192,9 @@ void nfs_release_request(struct nfs_page *req) | |||
186 | int | 192 | int |
187 | nfs_wait_on_request(struct nfs_page *req) | 193 | nfs_wait_on_request(struct nfs_page *req) |
188 | { | 194 | { |
189 | int ret = 0; | 195 | return wait_on_bit(&req->wb_flags, PG_BUSY, |
190 | 196 | nfs_wait_bit_uninterruptible, | |
191 | if (!test_bit(PG_BUSY, &req->wb_flags)) | 197 | TASK_UNINTERRUPTIBLE); |
192 | goto out; | ||
193 | ret = out_of_line_wait_on_bit(&req->wb_flags, PG_BUSY, | ||
194 | nfs_wait_bit_killable, TASK_KILLABLE); | ||
195 | out: | ||
196 | return ret; | ||
197 | } | 198 | } |
198 | 199 | ||
199 | /** | 200 | /** |
diff --git a/fs/nfs/super.c b/fs/nfs/super.c index ce907efc5508..f1afee4eea77 100644 --- a/fs/nfs/super.c +++ b/fs/nfs/super.c | |||
@@ -243,6 +243,7 @@ static int nfs_show_stats(struct seq_file *, struct vfsmount *); | |||
243 | static int nfs_get_sb(struct file_system_type *, int, const char *, void *, struct vfsmount *); | 243 | static int nfs_get_sb(struct file_system_type *, int, const char *, void *, struct vfsmount *); |
244 | static int nfs_xdev_get_sb(struct file_system_type *fs_type, | 244 | static int nfs_xdev_get_sb(struct file_system_type *fs_type, |
245 | int flags, const char *dev_name, void *raw_data, struct vfsmount *mnt); | 245 | int flags, const char *dev_name, void *raw_data, struct vfsmount *mnt); |
246 | static void nfs_put_super(struct super_block *); | ||
246 | static void nfs_kill_super(struct super_block *); | 247 | static void nfs_kill_super(struct super_block *); |
247 | static int nfs_remount(struct super_block *sb, int *flags, char *raw_data); | 248 | static int nfs_remount(struct super_block *sb, int *flags, char *raw_data); |
248 | 249 | ||
@@ -266,6 +267,7 @@ static const struct super_operations nfs_sops = { | |||
266 | .alloc_inode = nfs_alloc_inode, | 267 | .alloc_inode = nfs_alloc_inode, |
267 | .destroy_inode = nfs_destroy_inode, | 268 | .destroy_inode = nfs_destroy_inode, |
268 | .write_inode = nfs_write_inode, | 269 | .write_inode = nfs_write_inode, |
270 | .put_super = nfs_put_super, | ||
269 | .statfs = nfs_statfs, | 271 | .statfs = nfs_statfs, |
270 | .clear_inode = nfs_clear_inode, | 272 | .clear_inode = nfs_clear_inode, |
271 | .umount_begin = nfs_umount_begin, | 273 | .umount_begin = nfs_umount_begin, |
@@ -335,6 +337,7 @@ static const struct super_operations nfs4_sops = { | |||
335 | .alloc_inode = nfs_alloc_inode, | 337 | .alloc_inode = nfs_alloc_inode, |
336 | .destroy_inode = nfs_destroy_inode, | 338 | .destroy_inode = nfs_destroy_inode, |
337 | .write_inode = nfs_write_inode, | 339 | .write_inode = nfs_write_inode, |
340 | .put_super = nfs_put_super, | ||
338 | .statfs = nfs_statfs, | 341 | .statfs = nfs_statfs, |
339 | .clear_inode = nfs4_clear_inode, | 342 | .clear_inode = nfs4_clear_inode, |
340 | .umount_begin = nfs_umount_begin, | 343 | .umount_begin = nfs_umount_begin, |
@@ -2258,6 +2261,17 @@ error_splat_super: | |||
2258 | } | 2261 | } |
2259 | 2262 | ||
2260 | /* | 2263 | /* |
2264 | * Ensure that we unregister the bdi before kill_anon_super | ||
2265 | * releases the device name | ||
2266 | */ | ||
2267 | static void nfs_put_super(struct super_block *s) | ||
2268 | { | ||
2269 | struct nfs_server *server = NFS_SB(s); | ||
2270 | |||
2271 | bdi_unregister(&server->backing_dev_info); | ||
2272 | } | ||
2273 | |||
2274 | /* | ||
2261 | * Destroy an NFS2/3 superblock | 2275 | * Destroy an NFS2/3 superblock |
2262 | */ | 2276 | */ |
2263 | static void nfs_kill_super(struct super_block *s) | 2277 | static void nfs_kill_super(struct super_block *s) |
@@ -2265,7 +2279,6 @@ static void nfs_kill_super(struct super_block *s) | |||
2265 | struct nfs_server *server = NFS_SB(s); | 2279 | struct nfs_server *server = NFS_SB(s); |
2266 | 2280 | ||
2267 | kill_anon_super(s); | 2281 | kill_anon_super(s); |
2268 | bdi_unregister(&server->backing_dev_info); | ||
2269 | nfs_fscache_release_super_cookie(s); | 2282 | nfs_fscache_release_super_cookie(s); |
2270 | nfs_free_server(server); | 2283 | nfs_free_server(server); |
2271 | } | 2284 | } |
diff --git a/fs/nfs/sysctl.c b/fs/nfs/sysctl.c index 70e1fbbaaeab..ad4d2e787b20 100644 --- a/fs/nfs/sysctl.c +++ b/fs/nfs/sysctl.c | |||
@@ -15,8 +15,10 @@ | |||
15 | 15 | ||
16 | #include "callback.h" | 16 | #include "callback.h" |
17 | 17 | ||
18 | #ifdef CONFIG_NFS_V4 | ||
18 | static const int nfs_set_port_min = 0; | 19 | static const int nfs_set_port_min = 0; |
19 | static const int nfs_set_port_max = 65535; | 20 | static const int nfs_set_port_max = 65535; |
21 | #endif | ||
20 | static struct ctl_table_header *nfs_callback_sysctl_table; | 22 | static struct ctl_table_header *nfs_callback_sysctl_table; |
21 | 23 | ||
22 | static ctl_table nfs_cb_sysctls[] = { | 24 | static ctl_table nfs_cb_sysctls[] = { |
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index d171696017f4..d63d964a0392 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -1233,7 +1233,7 @@ int nfs_writeback_done(struct rpc_task *task, struct nfs_write_data *data) | |||
1233 | 1233 | ||
1234 | 1234 | ||
1235 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) | 1235 | #if defined(CONFIG_NFS_V3) || defined(CONFIG_NFS_V4) |
1236 | void nfs_commitdata_release(void *data) | 1236 | static void nfs_commitdata_release(void *data) |
1237 | { | 1237 | { |
1238 | struct nfs_write_data *wdata = data; | 1238 | struct nfs_write_data *wdata = data; |
1239 | 1239 | ||
@@ -1541,6 +1541,7 @@ int nfs_wb_page_cancel(struct inode *inode, struct page *page) | |||
1541 | break; | 1541 | break; |
1542 | } | 1542 | } |
1543 | ret = nfs_wait_on_request(req); | 1543 | ret = nfs_wait_on_request(req); |
1544 | nfs_release_request(req); | ||
1544 | if (ret < 0) | 1545 | if (ret < 0) |
1545 | goto out; | 1546 | goto out; |
1546 | } | 1547 | } |
@@ -1597,8 +1598,7 @@ int nfs_migrate_page(struct address_space *mapping, struct page *newpage, | |||
1597 | struct nfs_page *req; | 1598 | struct nfs_page *req; |
1598 | int ret; | 1599 | int ret; |
1599 | 1600 | ||
1600 | if (PageFsCache(page)) | 1601 | nfs_fscache_release_page(page, GFP_KERNEL); |
1601 | nfs_fscache_release_page(page, GFP_KERNEL); | ||
1602 | 1602 | ||
1603 | req = nfs_find_and_lock_request(page); | 1603 | req = nfs_find_and_lock_request(page); |
1604 | ret = PTR_ERR(req); | 1604 | ret = PTR_ERR(req); |
diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c index c487810a2366..a0c4016413f1 100644 --- a/fs/nfsd/export.c +++ b/fs/nfsd/export.c | |||
@@ -1316,19 +1316,11 @@ rqst_exp_parent(struct svc_rqst *rqstp, struct path *path) | |||
1316 | 1316 | ||
1317 | static struct svc_export *find_fsidzero_export(struct svc_rqst *rqstp) | 1317 | static struct svc_export *find_fsidzero_export(struct svc_rqst *rqstp) |
1318 | { | 1318 | { |
1319 | struct svc_export *exp; | ||
1320 | u32 fsidv[2]; | 1319 | u32 fsidv[2]; |
1321 | 1320 | ||
1322 | mk_fsid(FSID_NUM, fsidv, 0, 0, 0, NULL); | 1321 | mk_fsid(FSID_NUM, fsidv, 0, 0, 0, NULL); |
1323 | 1322 | ||
1324 | exp = rqst_exp_find(rqstp, FSID_NUM, fsidv); | 1323 | return rqst_exp_find(rqstp, FSID_NUM, fsidv); |
1325 | /* | ||
1326 | * We shouldn't have accepting an nfsv4 request at all if we | ||
1327 | * don't have a pseudoexport!: | ||
1328 | */ | ||
1329 | if (IS_ERR(exp) && PTR_ERR(exp) == -ENOENT) | ||
1330 | exp = ERR_PTR(-ESERVERFAULT); | ||
1331 | return exp; | ||
1332 | } | 1324 | } |
1333 | 1325 | ||
1334 | /* | 1326 | /* |
diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c index c194793b642b..97d79eff6b7f 100644 --- a/fs/nfsd/vfs.c +++ b/fs/nfsd/vfs.c | |||
@@ -752,6 +752,7 @@ nfsd_open(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, | |||
752 | flags, current_cred()); | 752 | flags, current_cred()); |
753 | if (IS_ERR(*filp)) | 753 | if (IS_ERR(*filp)) |
754 | host_err = PTR_ERR(*filp); | 754 | host_err = PTR_ERR(*filp); |
755 | host_err = ima_file_check(*filp, access); | ||
755 | out_nfserr: | 756 | out_nfserr: |
756 | err = nfserrno(host_err); | 757 | err = nfserrno(host_err); |
757 | out: | 758 | out: |
@@ -2127,7 +2128,6 @@ nfsd_permission(struct svc_rqst *rqstp, struct svc_export *exp, | |||
2127 | */ | 2128 | */ |
2128 | path.mnt = exp->ex_path.mnt; | 2129 | path.mnt = exp->ex_path.mnt; |
2129 | path.dentry = dentry; | 2130 | path.dentry = dentry; |
2130 | err = ima_path_check(&path, acc & (MAY_READ | MAY_WRITE | MAY_EXEC)); | ||
2131 | nfsd_out: | 2131 | nfsd_out: |
2132 | return err? nfserrno(err) : 0; | 2132 | return err? nfserrno(err) : 0; |
2133 | } | 2133 | } |
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c index 17584c524486..105b508b47a8 100644 --- a/fs/nilfs2/segment.c +++ b/fs/nilfs2/segment.c | |||
@@ -2829,7 +2829,7 @@ static void nilfs_segctor_destroy(struct nilfs_sc_info *sci) | |||
2829 | || sci->sc_seq_request != sci->sc_seq_done); | 2829 | || sci->sc_seq_request != sci->sc_seq_done); |
2830 | spin_unlock(&sci->sc_state_lock); | 2830 | spin_unlock(&sci->sc_state_lock); |
2831 | 2831 | ||
2832 | if (flag || nilfs_segctor_confirm(sci)) | 2832 | if (flag || !nilfs_segctor_confirm(sci)) |
2833 | nilfs_segctor_write_out(sci); | 2833 | nilfs_segctor_write_out(sci); |
2834 | 2834 | ||
2835 | WARN_ON(!list_empty(&sci->sc_copied_buffers)); | 2835 | WARN_ON(!list_empty(&sci->sc_copied_buffers)); |
diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index 3dae4a13f6e4..7e9df11260f4 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c | |||
@@ -599,7 +599,7 @@ bail: | |||
599 | return ret; | 599 | return ret; |
600 | } | 600 | } |
601 | 601 | ||
602 | /* | 602 | /* |
603 | * ocfs2_dio_end_io is called by the dio core when a dio is finished. We're | 603 | * ocfs2_dio_end_io is called by the dio core when a dio is finished. We're |
604 | * particularly interested in the aio/dio case. Like the core uses | 604 | * particularly interested in the aio/dio case. Like the core uses |
605 | * i_alloc_sem, we use the rw_lock DLM lock to protect io on one node from | 605 | * i_alloc_sem, we use the rw_lock DLM lock to protect io on one node from |
@@ -670,7 +670,7 @@ static ssize_t ocfs2_direct_IO(int rw, | |||
670 | 670 | ||
671 | ret = blockdev_direct_IO_no_locking(rw, iocb, inode, | 671 | ret = blockdev_direct_IO_no_locking(rw, iocb, inode, |
672 | inode->i_sb->s_bdev, iov, offset, | 672 | inode->i_sb->s_bdev, iov, offset, |
673 | nr_segs, | 673 | nr_segs, |
674 | ocfs2_direct_IO_get_blocks, | 674 | ocfs2_direct_IO_get_blocks, |
675 | ocfs2_dio_end_io); | 675 | ocfs2_dio_end_io); |
676 | 676 | ||
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c index d43d34a1dd31..21c808f752d8 100644 --- a/fs/ocfs2/buffer_head_io.c +++ b/fs/ocfs2/buffer_head_io.c | |||
@@ -368,7 +368,7 @@ int ocfs2_read_blocks(struct ocfs2_caching_info *ci, u64 block, int nr, | |||
368 | } | 368 | } |
369 | ocfs2_metadata_cache_io_unlock(ci); | 369 | ocfs2_metadata_cache_io_unlock(ci); |
370 | 370 | ||
371 | mlog(ML_BH_IO, "block=(%llu), nr=(%d), cached=%s, flags=0x%x\n", | 371 | mlog(ML_BH_IO, "block=(%llu), nr=(%d), cached=%s, flags=0x%x\n", |
372 | (unsigned long long)block, nr, | 372 | (unsigned long long)block, nr, |
373 | ((flags & OCFS2_BH_IGNORE_CACHE) || ignore_cache) ? "no" : "yes", | 373 | ((flags & OCFS2_BH_IGNORE_CACHE) || ignore_cache) ? "no" : "yes", |
374 | flags); | 374 | flags); |
diff --git a/fs/ocfs2/cluster/heartbeat.c b/fs/ocfs2/cluster/heartbeat.c index eda5b8bcddd5..5c9890006708 100644 --- a/fs/ocfs2/cluster/heartbeat.c +++ b/fs/ocfs2/cluster/heartbeat.c | |||
@@ -78,7 +78,7 @@ static struct o2hb_callback *hbcall_from_type(enum o2hb_callback_type type); | |||
78 | 78 | ||
79 | unsigned int o2hb_dead_threshold = O2HB_DEFAULT_DEAD_THRESHOLD; | 79 | unsigned int o2hb_dead_threshold = O2HB_DEFAULT_DEAD_THRESHOLD; |
80 | 80 | ||
81 | /* Only sets a new threshold if there are no active regions. | 81 | /* Only sets a new threshold if there are no active regions. |
82 | * | 82 | * |
83 | * No locking or otherwise interesting code is required for reading | 83 | * No locking or otherwise interesting code is required for reading |
84 | * o2hb_dead_threshold as it can't change once regions are active and | 84 | * o2hb_dead_threshold as it can't change once regions are active and |
@@ -170,7 +170,7 @@ static void o2hb_write_timeout(struct work_struct *work) | |||
170 | 170 | ||
171 | mlog(ML_ERROR, "Heartbeat write timeout to device %s after %u " | 171 | mlog(ML_ERROR, "Heartbeat write timeout to device %s after %u " |
172 | "milliseconds\n", reg->hr_dev_name, | 172 | "milliseconds\n", reg->hr_dev_name, |
173 | jiffies_to_msecs(jiffies - reg->hr_last_timeout_start)); | 173 | jiffies_to_msecs(jiffies - reg->hr_last_timeout_start)); |
174 | o2quo_disk_timeout(); | 174 | o2quo_disk_timeout(); |
175 | } | 175 | } |
176 | 176 | ||
@@ -624,7 +624,7 @@ static int o2hb_check_slot(struct o2hb_region *reg, | |||
624 | "seq %llu last %llu changed %u equal %u\n", | 624 | "seq %llu last %llu changed %u equal %u\n", |
625 | slot->ds_node_num, (long long)slot->ds_last_generation, | 625 | slot->ds_node_num, (long long)slot->ds_last_generation, |
626 | le32_to_cpu(hb_block->hb_cksum), | 626 | le32_to_cpu(hb_block->hb_cksum), |
627 | (unsigned long long)le64_to_cpu(hb_block->hb_seq), | 627 | (unsigned long long)le64_to_cpu(hb_block->hb_seq), |
628 | (unsigned long long)slot->ds_last_time, slot->ds_changed_samples, | 628 | (unsigned long long)slot->ds_last_time, slot->ds_changed_samples, |
629 | slot->ds_equal_samples); | 629 | slot->ds_equal_samples); |
630 | 630 | ||
diff --git a/fs/ocfs2/cluster/tcp.c b/fs/ocfs2/cluster/tcp.c index 334f231a422c..d8d0c65ac03c 100644 --- a/fs/ocfs2/cluster/tcp.c +++ b/fs/ocfs2/cluster/tcp.c | |||
@@ -485,7 +485,7 @@ static void o2net_set_nn_state(struct o2net_node *nn, | |||
485 | } | 485 | } |
486 | 486 | ||
487 | if (was_valid && !valid) { | 487 | if (was_valid && !valid) { |
488 | printk(KERN_INFO "o2net: no longer connected to " | 488 | printk(KERN_NOTICE "o2net: no longer connected to " |
489 | SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc)); | 489 | SC_NODEF_FMT "\n", SC_NODEF_ARGS(old_sc)); |
490 | o2net_complete_nodes_nsw(nn); | 490 | o2net_complete_nodes_nsw(nn); |
491 | } | 491 | } |
@@ -493,7 +493,7 @@ static void o2net_set_nn_state(struct o2net_node *nn, | |||
493 | if (!was_valid && valid) { | 493 | if (!was_valid && valid) { |
494 | o2quo_conn_up(o2net_num_from_nn(nn)); | 494 | o2quo_conn_up(o2net_num_from_nn(nn)); |
495 | cancel_delayed_work(&nn->nn_connect_expired); | 495 | cancel_delayed_work(&nn->nn_connect_expired); |
496 | printk(KERN_INFO "o2net: %s " SC_NODEF_FMT "\n", | 496 | printk(KERN_NOTICE "o2net: %s " SC_NODEF_FMT "\n", |
497 | o2nm_this_node() > sc->sc_node->nd_num ? | 497 | o2nm_this_node() > sc->sc_node->nd_num ? |
498 | "connected to" : "accepted connection from", | 498 | "connected to" : "accepted connection from", |
499 | SC_NODEF_ARGS(sc)); | 499 | SC_NODEF_ARGS(sc)); |
@@ -930,7 +930,7 @@ static void o2net_sendpage(struct o2net_sock_container *sc, | |||
930 | cond_resched(); | 930 | cond_resched(); |
931 | continue; | 931 | continue; |
932 | } | 932 | } |
933 | mlog(ML_ERROR, "sendpage of size %zu to " SC_NODEF_FMT | 933 | mlog(ML_ERROR, "sendpage of size %zu to " SC_NODEF_FMT |
934 | " failed with %zd\n", size, SC_NODEF_ARGS(sc), ret); | 934 | " failed with %zd\n", size, SC_NODEF_ARGS(sc), ret); |
935 | o2net_ensure_shutdown(nn, sc, 0); | 935 | o2net_ensure_shutdown(nn, sc, 0); |
936 | break; | 936 | break; |
@@ -1476,14 +1476,14 @@ static void o2net_idle_timer(unsigned long data) | |||
1476 | 1476 | ||
1477 | do_gettimeofday(&now); | 1477 | do_gettimeofday(&now); |
1478 | 1478 | ||
1479 | printk(KERN_INFO "o2net: connection to " SC_NODEF_FMT " has been idle for %u.%u " | 1479 | printk(KERN_NOTICE "o2net: connection to " SC_NODEF_FMT " has been idle for %u.%u " |
1480 | "seconds, shutting it down.\n", SC_NODEF_ARGS(sc), | 1480 | "seconds, shutting it down.\n", SC_NODEF_ARGS(sc), |
1481 | o2net_idle_timeout() / 1000, | 1481 | o2net_idle_timeout() / 1000, |
1482 | o2net_idle_timeout() % 1000); | 1482 | o2net_idle_timeout() % 1000); |
1483 | mlog(ML_NOTICE, "here are some times that might help debug the " | 1483 | mlog(ML_NOTICE, "here are some times that might help debug the " |
1484 | "situation: (tmr %ld.%ld now %ld.%ld dr %ld.%ld adv " | 1484 | "situation: (tmr %ld.%ld now %ld.%ld dr %ld.%ld adv " |
1485 | "%ld.%ld:%ld.%ld func (%08x:%u) %ld.%ld:%ld.%ld)\n", | 1485 | "%ld.%ld:%ld.%ld func (%08x:%u) %ld.%ld:%ld.%ld)\n", |
1486 | sc->sc_tv_timer.tv_sec, (long) sc->sc_tv_timer.tv_usec, | 1486 | sc->sc_tv_timer.tv_sec, (long) sc->sc_tv_timer.tv_usec, |
1487 | now.tv_sec, (long) now.tv_usec, | 1487 | now.tv_sec, (long) now.tv_usec, |
1488 | sc->sc_tv_data_ready.tv_sec, (long) sc->sc_tv_data_ready.tv_usec, | 1488 | sc->sc_tv_data_ready.tv_sec, (long) sc->sc_tv_data_ready.tv_usec, |
1489 | sc->sc_tv_advance_start.tv_sec, | 1489 | sc->sc_tv_advance_start.tv_sec, |
diff --git a/fs/ocfs2/cluster/tcp_internal.h b/fs/ocfs2/cluster/tcp_internal.h index 8d58cfe410b1..96fa7ebc530c 100644 --- a/fs/ocfs2/cluster/tcp_internal.h +++ b/fs/ocfs2/cluster/tcp_internal.h | |||
@@ -32,10 +32,10 @@ | |||
32 | * on their number */ | 32 | * on their number */ |
33 | #define O2NET_QUORUM_DELAY_MS ((o2hb_dead_threshold + 2) * O2HB_REGION_TIMEOUT_MS) | 33 | #define O2NET_QUORUM_DELAY_MS ((o2hb_dead_threshold + 2) * O2HB_REGION_TIMEOUT_MS) |
34 | 34 | ||
35 | /* | 35 | /* |
36 | * This version number represents quite a lot, unfortunately. It not | 36 | * This version number represents quite a lot, unfortunately. It not |
37 | * only represents the raw network message protocol on the wire but also | 37 | * only represents the raw network message protocol on the wire but also |
38 | * locking semantics of the file system using the protocol. It should | 38 | * locking semantics of the file system using the protocol. It should |
39 | * be somewhere else, I'm sure, but right now it isn't. | 39 | * be somewhere else, I'm sure, but right now it isn't. |
40 | * | 40 | * |
41 | * With version 11, we separate out the filesystem locking portion. The | 41 | * With version 11, we separate out the filesystem locking portion. The |
diff --git a/fs/ocfs2/dlm/dlmapi.h b/fs/ocfs2/dlm/dlmapi.h index b5786a787fab..3cfa114aa391 100644 --- a/fs/ocfs2/dlm/dlmapi.h +++ b/fs/ocfs2/dlm/dlmapi.h | |||
@@ -95,7 +95,7 @@ const char *dlm_errname(enum dlm_status err); | |||
95 | mlog(ML_ERROR, "dlm status = %s\n", dlm_errname((st))); \ | 95 | mlog(ML_ERROR, "dlm status = %s\n", dlm_errname((st))); \ |
96 | } while (0) | 96 | } while (0) |
97 | 97 | ||
98 | #define DLM_LKSB_UNUSED1 0x01 | 98 | #define DLM_LKSB_UNUSED1 0x01 |
99 | #define DLM_LKSB_PUT_LVB 0x02 | 99 | #define DLM_LKSB_PUT_LVB 0x02 |
100 | #define DLM_LKSB_GET_LVB 0x04 | 100 | #define DLM_LKSB_GET_LVB 0x04 |
101 | #define DLM_LKSB_UNUSED2 0x08 | 101 | #define DLM_LKSB_UNUSED2 0x08 |
diff --git a/fs/ocfs2/dlm/dlmast.c b/fs/ocfs2/dlm/dlmast.c index 01cf8cc3d286..dccc439fa087 100644 --- a/fs/ocfs2/dlm/dlmast.c +++ b/fs/ocfs2/dlm/dlmast.c | |||
@@ -123,7 +123,7 @@ static void __dlm_queue_ast(struct dlm_ctxt *dlm, struct dlm_lock *lock) | |||
123 | dlm_lock_put(lock); | 123 | dlm_lock_put(lock); |
124 | /* free up the reserved bast that we are cancelling. | 124 | /* free up the reserved bast that we are cancelling. |
125 | * guaranteed that this will not be the last reserved | 125 | * guaranteed that this will not be the last reserved |
126 | * ast because *both* an ast and a bast were reserved | 126 | * ast because *both* an ast and a bast were reserved |
127 | * to get to this point. the res->spinlock will not be | 127 | * to get to this point. the res->spinlock will not be |
128 | * taken here */ | 128 | * taken here */ |
129 | dlm_lockres_release_ast(dlm, res); | 129 | dlm_lockres_release_ast(dlm, res); |
diff --git a/fs/ocfs2/dlm/dlmconvert.c b/fs/ocfs2/dlm/dlmconvert.c index ca96bce50e18..f283bce776b4 100644 --- a/fs/ocfs2/dlm/dlmconvert.c +++ b/fs/ocfs2/dlm/dlmconvert.c | |||
@@ -396,7 +396,7 @@ static enum dlm_status dlm_send_remote_convert_request(struct dlm_ctxt *dlm, | |||
396 | /* instead of logging the same network error over | 396 | /* instead of logging the same network error over |
397 | * and over, sleep here and wait for the heartbeat | 397 | * and over, sleep here and wait for the heartbeat |
398 | * to notice the node is dead. times out after 5s. */ | 398 | * to notice the node is dead. times out after 5s. */ |
399 | dlm_wait_for_node_death(dlm, res->owner, | 399 | dlm_wait_for_node_death(dlm, res->owner, |
400 | DLM_NODE_DEATH_WAIT_MAX); | 400 | DLM_NODE_DEATH_WAIT_MAX); |
401 | ret = DLM_RECOVERING; | 401 | ret = DLM_RECOVERING; |
402 | mlog(0, "node %u died so returning DLM_RECOVERING " | 402 | mlog(0, "node %u died so returning DLM_RECOVERING " |
diff --git a/fs/ocfs2/dlm/dlmdebug.c b/fs/ocfs2/dlm/dlmdebug.c index 42b0bad7a612..0cd24cf54396 100644 --- a/fs/ocfs2/dlm/dlmdebug.c +++ b/fs/ocfs2/dlm/dlmdebug.c | |||
@@ -102,7 +102,7 @@ void __dlm_print_one_lock_resource(struct dlm_lock_resource *res) | |||
102 | assert_spin_locked(&res->spinlock); | 102 | assert_spin_locked(&res->spinlock); |
103 | 103 | ||
104 | stringify_lockname(res->lockname.name, res->lockname.len, | 104 | stringify_lockname(res->lockname.name, res->lockname.len, |
105 | buf, sizeof(buf) - 1); | 105 | buf, sizeof(buf)); |
106 | printk("lockres: %s, owner=%u, state=%u\n", | 106 | printk("lockres: %s, owner=%u, state=%u\n", |
107 | buf, res->owner, res->state); | 107 | buf, res->owner, res->state); |
108 | printk(" last used: %lu, refcnt: %u, on purge list: %s\n", | 108 | printk(" last used: %lu, refcnt: %u, on purge list: %s\n", |
diff --git a/fs/ocfs2/dlm/dlmdomain.c b/fs/ocfs2/dlm/dlmdomain.c index 0334000676d3..988c9055fd4e 100644 --- a/fs/ocfs2/dlm/dlmdomain.c +++ b/fs/ocfs2/dlm/dlmdomain.c | |||
@@ -816,7 +816,7 @@ static int dlm_query_join_handler(struct o2net_msg *msg, u32 len, void *data, | |||
816 | } | 816 | } |
817 | 817 | ||
818 | /* Once the dlm ctxt is marked as leaving then we don't want | 818 | /* Once the dlm ctxt is marked as leaving then we don't want |
819 | * to be put in someone's domain map. | 819 | * to be put in someone's domain map. |
820 | * Also, explicitly disallow joining at certain troublesome | 820 | * Also, explicitly disallow joining at certain troublesome |
821 | * times (ie. during recovery). */ | 821 | * times (ie. during recovery). */ |
822 | if (dlm && dlm->dlm_state != DLM_CTXT_LEAVING) { | 822 | if (dlm && dlm->dlm_state != DLM_CTXT_LEAVING) { |
diff --git a/fs/ocfs2/dlm/dlmlock.c b/fs/ocfs2/dlm/dlmlock.c index 437698e9465f..733337772671 100644 --- a/fs/ocfs2/dlm/dlmlock.c +++ b/fs/ocfs2/dlm/dlmlock.c | |||
@@ -269,7 +269,7 @@ static enum dlm_status dlmlock_remote(struct dlm_ctxt *dlm, | |||
269 | } | 269 | } |
270 | dlm_revert_pending_lock(res, lock); | 270 | dlm_revert_pending_lock(res, lock); |
271 | dlm_lock_put(lock); | 271 | dlm_lock_put(lock); |
272 | } else if (dlm_is_recovery_lock(res->lockname.name, | 272 | } else if (dlm_is_recovery_lock(res->lockname.name, |
273 | res->lockname.len)) { | 273 | res->lockname.len)) { |
274 | /* special case for the $RECOVERY lock. | 274 | /* special case for the $RECOVERY lock. |
275 | * there will never be an AST delivered to put | 275 | * there will never be an AST delivered to put |
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 03ccf9a7b1f4..a659606dcb95 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c | |||
@@ -366,7 +366,7 @@ void dlm_hb_event_notify_attached(struct dlm_ctxt *dlm, int idx, int node_up) | |||
366 | struct dlm_master_list_entry *mle; | 366 | struct dlm_master_list_entry *mle; |
367 | 367 | ||
368 | assert_spin_locked(&dlm->spinlock); | 368 | assert_spin_locked(&dlm->spinlock); |
369 | 369 | ||
370 | list_for_each_entry(mle, &dlm->mle_hb_events, hb_events) { | 370 | list_for_each_entry(mle, &dlm->mle_hb_events, hb_events) { |
371 | if (node_up) | 371 | if (node_up) |
372 | dlm_mle_node_up(dlm, mle, NULL, idx); | 372 | dlm_mle_node_up(dlm, mle, NULL, idx); |
@@ -833,7 +833,7 @@ lookup: | |||
833 | __dlm_insert_mle(dlm, mle); | 833 | __dlm_insert_mle(dlm, mle); |
834 | 834 | ||
835 | /* still holding the dlm spinlock, check the recovery map | 835 | /* still holding the dlm spinlock, check the recovery map |
836 | * to see if there are any nodes that still need to be | 836 | * to see if there are any nodes that still need to be |
837 | * considered. these will not appear in the mle nodemap | 837 | * considered. these will not appear in the mle nodemap |
838 | * but they might own this lockres. wait on them. */ | 838 | * but they might own this lockres. wait on them. */ |
839 | bit = find_next_bit(dlm->recovery_map, O2NM_MAX_NODES, 0); | 839 | bit = find_next_bit(dlm->recovery_map, O2NM_MAX_NODES, 0); |
@@ -883,7 +883,7 @@ redo_request: | |||
883 | msleep(500); | 883 | msleep(500); |
884 | } | 884 | } |
885 | continue; | 885 | continue; |
886 | } | 886 | } |
887 | 887 | ||
888 | dlm_kick_recovery_thread(dlm); | 888 | dlm_kick_recovery_thread(dlm); |
889 | msleep(1000); | 889 | msleep(1000); |
@@ -939,8 +939,8 @@ wait: | |||
939 | res->lockname.name, blocked); | 939 | res->lockname.name, blocked); |
940 | if (++tries > 20) { | 940 | if (++tries > 20) { |
941 | mlog(ML_ERROR, "%s:%.*s: spinning on " | 941 | mlog(ML_ERROR, "%s:%.*s: spinning on " |
942 | "dlm_wait_for_lock_mastery, blocked=%d\n", | 942 | "dlm_wait_for_lock_mastery, blocked=%d\n", |
943 | dlm->name, res->lockname.len, | 943 | dlm->name, res->lockname.len, |
944 | res->lockname.name, blocked); | 944 | res->lockname.name, blocked); |
945 | dlm_print_one_lock_resource(res); | 945 | dlm_print_one_lock_resource(res); |
946 | dlm_print_one_mle(mle); | 946 | dlm_print_one_mle(mle); |
@@ -1029,7 +1029,7 @@ recheck: | |||
1029 | ret = dlm_restart_lock_mastery(dlm, res, mle, *blocked); | 1029 | ret = dlm_restart_lock_mastery(dlm, res, mle, *blocked); |
1030 | b = (mle->type == DLM_MLE_BLOCK); | 1030 | b = (mle->type == DLM_MLE_BLOCK); |
1031 | if ((*blocked && !b) || (!*blocked && b)) { | 1031 | if ((*blocked && !b) || (!*blocked && b)) { |
1032 | mlog(0, "%s:%.*s: status change: old=%d new=%d\n", | 1032 | mlog(0, "%s:%.*s: status change: old=%d new=%d\n", |
1033 | dlm->name, res->lockname.len, res->lockname.name, | 1033 | dlm->name, res->lockname.len, res->lockname.name, |
1034 | *blocked, b); | 1034 | *blocked, b); |
1035 | *blocked = b; | 1035 | *blocked = b; |
@@ -1602,7 +1602,7 @@ send_response: | |||
1602 | } | 1602 | } |
1603 | mlog(0, "%u is the owner of %.*s, cleaning everyone else\n", | 1603 | mlog(0, "%u is the owner of %.*s, cleaning everyone else\n", |
1604 | dlm->node_num, res->lockname.len, res->lockname.name); | 1604 | dlm->node_num, res->lockname.len, res->lockname.name); |
1605 | ret = dlm_dispatch_assert_master(dlm, res, 0, request->node_idx, | 1605 | ret = dlm_dispatch_assert_master(dlm, res, 0, request->node_idx, |
1606 | DLM_ASSERT_MASTER_MLE_CLEANUP); | 1606 | DLM_ASSERT_MASTER_MLE_CLEANUP); |
1607 | if (ret < 0) { | 1607 | if (ret < 0) { |
1608 | mlog(ML_ERROR, "failed to dispatch assert master work\n"); | 1608 | mlog(ML_ERROR, "failed to dispatch assert master work\n"); |
@@ -1701,7 +1701,7 @@ again: | |||
1701 | 1701 | ||
1702 | if (r & DLM_ASSERT_RESPONSE_REASSERT) { | 1702 | if (r & DLM_ASSERT_RESPONSE_REASSERT) { |
1703 | mlog(0, "%.*s: node %u create mles on other " | 1703 | mlog(0, "%.*s: node %u create mles on other " |
1704 | "nodes and requests a re-assert\n", | 1704 | "nodes and requests a re-assert\n", |
1705 | namelen, lockname, to); | 1705 | namelen, lockname, to); |
1706 | reassert = 1; | 1706 | reassert = 1; |
1707 | } | 1707 | } |
@@ -1812,7 +1812,7 @@ int dlm_assert_master_handler(struct o2net_msg *msg, u32 len, void *data, | |||
1812 | spin_unlock(&dlm->master_lock); | 1812 | spin_unlock(&dlm->master_lock); |
1813 | spin_unlock(&dlm->spinlock); | 1813 | spin_unlock(&dlm->spinlock); |
1814 | goto done; | 1814 | goto done; |
1815 | } | 1815 | } |
1816 | } | 1816 | } |
1817 | } | 1817 | } |
1818 | spin_unlock(&dlm->master_lock); | 1818 | spin_unlock(&dlm->master_lock); |
@@ -1883,7 +1883,7 @@ ok: | |||
1883 | int extra_ref = 0; | 1883 | int extra_ref = 0; |
1884 | int nn = -1; | 1884 | int nn = -1; |
1885 | int rr, err = 0; | 1885 | int rr, err = 0; |
1886 | 1886 | ||
1887 | spin_lock(&mle->spinlock); | 1887 | spin_lock(&mle->spinlock); |
1888 | if (mle->type == DLM_MLE_BLOCK || mle->type == DLM_MLE_MIGRATION) | 1888 | if (mle->type == DLM_MLE_BLOCK || mle->type == DLM_MLE_MIGRATION) |
1889 | extra_ref = 1; | 1889 | extra_ref = 1; |
@@ -1891,7 +1891,7 @@ ok: | |||
1891 | /* MASTER mle: if any bits set in the response map | 1891 | /* MASTER mle: if any bits set in the response map |
1892 | * then the calling node needs to re-assert to clear | 1892 | * then the calling node needs to re-assert to clear |
1893 | * up nodes that this node contacted */ | 1893 | * up nodes that this node contacted */ |
1894 | while ((nn = find_next_bit (mle->response_map, O2NM_MAX_NODES, | 1894 | while ((nn = find_next_bit (mle->response_map, O2NM_MAX_NODES, |
1895 | nn+1)) < O2NM_MAX_NODES) { | 1895 | nn+1)) < O2NM_MAX_NODES) { |
1896 | if (nn != dlm->node_num && nn != assert->node_idx) | 1896 | if (nn != dlm->node_num && nn != assert->node_idx) |
1897 | master_request = 1; | 1897 | master_request = 1; |
@@ -2002,7 +2002,7 @@ kill: | |||
2002 | __dlm_print_one_lock_resource(res); | 2002 | __dlm_print_one_lock_resource(res); |
2003 | spin_unlock(&res->spinlock); | 2003 | spin_unlock(&res->spinlock); |
2004 | spin_unlock(&dlm->spinlock); | 2004 | spin_unlock(&dlm->spinlock); |
2005 | *ret_data = (void *)res; | 2005 | *ret_data = (void *)res; |
2006 | dlm_put(dlm); | 2006 | dlm_put(dlm); |
2007 | return -EINVAL; | 2007 | return -EINVAL; |
2008 | } | 2008 | } |
@@ -2040,10 +2040,10 @@ int dlm_dispatch_assert_master(struct dlm_ctxt *dlm, | |||
2040 | item->u.am.request_from = request_from; | 2040 | item->u.am.request_from = request_from; |
2041 | item->u.am.flags = flags; | 2041 | item->u.am.flags = flags; |
2042 | 2042 | ||
2043 | if (ignore_higher) | 2043 | if (ignore_higher) |
2044 | mlog(0, "IGNORE HIGHER: %.*s\n", res->lockname.len, | 2044 | mlog(0, "IGNORE HIGHER: %.*s\n", res->lockname.len, |
2045 | res->lockname.name); | 2045 | res->lockname.name); |
2046 | 2046 | ||
2047 | spin_lock(&dlm->work_lock); | 2047 | spin_lock(&dlm->work_lock); |
2048 | list_add_tail(&item->list, &dlm->work_list); | 2048 | list_add_tail(&item->list, &dlm->work_list); |
2049 | spin_unlock(&dlm->work_lock); | 2049 | spin_unlock(&dlm->work_lock); |
@@ -2133,7 +2133,7 @@ put: | |||
2133 | * think that $RECOVERY is currently mastered by a dead node. If so, | 2133 | * think that $RECOVERY is currently mastered by a dead node. If so, |
2134 | * we wait a short time to allow that node to get notified by its own | 2134 | * we wait a short time to allow that node to get notified by its own |
2135 | * heartbeat stack, then check again. All $RECOVERY lock resources | 2135 | * heartbeat stack, then check again. All $RECOVERY lock resources |
2136 | * mastered by dead nodes are purged when the hearbeat callback is | 2136 | * mastered by dead nodes are purged when the hearbeat callback is |
2137 | * fired, so we can know for sure that it is safe to continue once | 2137 | * fired, so we can know for sure that it is safe to continue once |
2138 | * the node returns a live node or no node. */ | 2138 | * the node returns a live node or no node. */ |
2139 | static int dlm_pre_master_reco_lockres(struct dlm_ctxt *dlm, | 2139 | static int dlm_pre_master_reco_lockres(struct dlm_ctxt *dlm, |
@@ -2174,7 +2174,7 @@ static int dlm_pre_master_reco_lockres(struct dlm_ctxt *dlm, | |||
2174 | ret = -EAGAIN; | 2174 | ret = -EAGAIN; |
2175 | } | 2175 | } |
2176 | spin_unlock(&dlm->spinlock); | 2176 | spin_unlock(&dlm->spinlock); |
2177 | mlog(0, "%s: reco lock master is %u\n", dlm->name, | 2177 | mlog(0, "%s: reco lock master is %u\n", dlm->name, |
2178 | master); | 2178 | master); |
2179 | break; | 2179 | break; |
2180 | } | 2180 | } |
@@ -2602,7 +2602,7 @@ fail: | |||
2602 | 2602 | ||
2603 | mlog(0, "%s:%.*s: timed out during migration\n", | 2603 | mlog(0, "%s:%.*s: timed out during migration\n", |
2604 | dlm->name, res->lockname.len, res->lockname.name); | 2604 | dlm->name, res->lockname.len, res->lockname.name); |
2605 | /* avoid hang during shutdown when migrating lockres | 2605 | /* avoid hang during shutdown when migrating lockres |
2606 | * to a node which also goes down */ | 2606 | * to a node which also goes down */ |
2607 | if (dlm_is_node_dead(dlm, target)) { | 2607 | if (dlm_is_node_dead(dlm, target)) { |
2608 | mlog(0, "%s:%.*s: expected migration " | 2608 | mlog(0, "%s:%.*s: expected migration " |
@@ -2738,7 +2738,7 @@ static int dlm_migration_can_proceed(struct dlm_ctxt *dlm, | |||
2738 | can_proceed = !!(res->state & DLM_LOCK_RES_MIGRATING); | 2738 | can_proceed = !!(res->state & DLM_LOCK_RES_MIGRATING); |
2739 | spin_unlock(&res->spinlock); | 2739 | spin_unlock(&res->spinlock); |
2740 | 2740 | ||
2741 | /* target has died, so make the caller break out of the | 2741 | /* target has died, so make the caller break out of the |
2742 | * wait_event, but caller must recheck the domain_map */ | 2742 | * wait_event, but caller must recheck the domain_map */ |
2743 | spin_lock(&dlm->spinlock); | 2743 | spin_lock(&dlm->spinlock); |
2744 | if (!test_bit(mig_target, dlm->domain_map)) | 2744 | if (!test_bit(mig_target, dlm->domain_map)) |
diff --git a/fs/ocfs2/dlm/dlmrecovery.c b/fs/ocfs2/dlm/dlmrecovery.c index 2f9e4e19a4f2..344bcf90cbf4 100644 --- a/fs/ocfs2/dlm/dlmrecovery.c +++ b/fs/ocfs2/dlm/dlmrecovery.c | |||
@@ -1050,7 +1050,7 @@ static void dlm_move_reco_locks_to_list(struct dlm_ctxt *dlm, | |||
1050 | if (lock->ml.node == dead_node) { | 1050 | if (lock->ml.node == dead_node) { |
1051 | mlog(0, "AHA! there was " | 1051 | mlog(0, "AHA! there was " |
1052 | "a $RECOVERY lock for dead " | 1052 | "a $RECOVERY lock for dead " |
1053 | "node %u (%s)!\n", | 1053 | "node %u (%s)!\n", |
1054 | dead_node, dlm->name); | 1054 | dead_node, dlm->name); |
1055 | list_del_init(&lock->list); | 1055 | list_del_init(&lock->list); |
1056 | dlm_lock_put(lock); | 1056 | dlm_lock_put(lock); |
@@ -1164,6 +1164,39 @@ static void dlm_init_migratable_lockres(struct dlm_migratable_lockres *mres, | |||
1164 | mres->master = master; | 1164 | mres->master = master; |
1165 | } | 1165 | } |
1166 | 1166 | ||
1167 | static void dlm_prepare_lvb_for_migration(struct dlm_lock *lock, | ||
1168 | struct dlm_migratable_lockres *mres, | ||
1169 | int queue) | ||
1170 | { | ||
1171 | if (!lock->lksb) | ||
1172 | return; | ||
1173 | |||
1174 | /* Ignore lvb in all locks in the blocked list */ | ||
1175 | if (queue == DLM_BLOCKED_LIST) | ||
1176 | return; | ||
1177 | |||
1178 | /* Only consider lvbs in locks with granted EX or PR lock levels */ | ||
1179 | if (lock->ml.type != LKM_EXMODE && lock->ml.type != LKM_PRMODE) | ||
1180 | return; | ||
1181 | |||
1182 | if (dlm_lvb_is_empty(mres->lvb)) { | ||
1183 | memcpy(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN); | ||
1184 | return; | ||
1185 | } | ||
1186 | |||
1187 | /* Ensure the lvb copied for migration matches in other valid locks */ | ||
1188 | if (!memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN)) | ||
1189 | return; | ||
1190 | |||
1191 | mlog(ML_ERROR, "Mismatched lvb in lock cookie=%u:%llu, name=%.*s, " | ||
1192 | "node=%u\n", | ||
1193 | dlm_get_lock_cookie_node(be64_to_cpu(lock->ml.cookie)), | ||
1194 | dlm_get_lock_cookie_seq(be64_to_cpu(lock->ml.cookie)), | ||
1195 | lock->lockres->lockname.len, lock->lockres->lockname.name, | ||
1196 | lock->ml.node); | ||
1197 | dlm_print_one_lock_resource(lock->lockres); | ||
1198 | BUG(); | ||
1199 | } | ||
1167 | 1200 | ||
1168 | /* returns 1 if this lock fills the network structure, | 1201 | /* returns 1 if this lock fills the network structure, |
1169 | * 0 otherwise */ | 1202 | * 0 otherwise */ |
@@ -1181,20 +1214,7 @@ static int dlm_add_lock_to_array(struct dlm_lock *lock, | |||
1181 | ml->list = queue; | 1214 | ml->list = queue; |
1182 | if (lock->lksb) { | 1215 | if (lock->lksb) { |
1183 | ml->flags = lock->lksb->flags; | 1216 | ml->flags = lock->lksb->flags; |
1184 | /* send our current lvb */ | 1217 | dlm_prepare_lvb_for_migration(lock, mres, queue); |
1185 | if (ml->type == LKM_EXMODE || | ||
1186 | ml->type == LKM_PRMODE) { | ||
1187 | /* if it is already set, this had better be a PR | ||
1188 | * and it has to match */ | ||
1189 | if (!dlm_lvb_is_empty(mres->lvb) && | ||
1190 | (ml->type == LKM_EXMODE || | ||
1191 | memcmp(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN))) { | ||
1192 | mlog(ML_ERROR, "mismatched lvbs!\n"); | ||
1193 | dlm_print_one_lock_resource(lock->lockres); | ||
1194 | BUG(); | ||
1195 | } | ||
1196 | memcpy(mres->lvb, lock->lksb->lvb, DLM_LVB_LEN); | ||
1197 | } | ||
1198 | } | 1218 | } |
1199 | ml->node = lock->ml.node; | 1219 | ml->node = lock->ml.node; |
1200 | mres->num_locks++; | 1220 | mres->num_locks++; |
@@ -1730,6 +1750,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, | |||
1730 | struct dlm_lock *lock = NULL; | 1750 | struct dlm_lock *lock = NULL; |
1731 | u8 from = O2NM_MAX_NODES; | 1751 | u8 from = O2NM_MAX_NODES; |
1732 | unsigned int added = 0; | 1752 | unsigned int added = 0; |
1753 | __be64 c; | ||
1733 | 1754 | ||
1734 | mlog(0, "running %d locks for this lockres\n", mres->num_locks); | 1755 | mlog(0, "running %d locks for this lockres\n", mres->num_locks); |
1735 | for (i=0; i<mres->num_locks; i++) { | 1756 | for (i=0; i<mres->num_locks; i++) { |
@@ -1777,19 +1798,48 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, | |||
1777 | /* lock is always created locally first, and | 1798 | /* lock is always created locally first, and |
1778 | * destroyed locally last. it must be on the list */ | 1799 | * destroyed locally last. it must be on the list */ |
1779 | if (!lock) { | 1800 | if (!lock) { |
1780 | __be64 c = ml->cookie; | 1801 | c = ml->cookie; |
1781 | mlog(ML_ERROR, "could not find local lock " | 1802 | mlog(ML_ERROR, "Could not find local lock " |
1782 | "with cookie %u:%llu!\n", | 1803 | "with cookie %u:%llu, node %u, " |
1804 | "list %u, flags 0x%x, type %d, " | ||
1805 | "conv %d, highest blocked %d\n", | ||
1783 | dlm_get_lock_cookie_node(be64_to_cpu(c)), | 1806 | dlm_get_lock_cookie_node(be64_to_cpu(c)), |
1784 | dlm_get_lock_cookie_seq(be64_to_cpu(c))); | 1807 | dlm_get_lock_cookie_seq(be64_to_cpu(c)), |
1808 | ml->node, ml->list, ml->flags, ml->type, | ||
1809 | ml->convert_type, ml->highest_blocked); | ||
1810 | __dlm_print_one_lock_resource(res); | ||
1811 | BUG(); | ||
1812 | } | ||
1813 | |||
1814 | if (lock->ml.node != ml->node) { | ||
1815 | c = lock->ml.cookie; | ||
1816 | mlog(ML_ERROR, "Mismatched node# in lock " | ||
1817 | "cookie %u:%llu, name %.*s, node %u\n", | ||
1818 | dlm_get_lock_cookie_node(be64_to_cpu(c)), | ||
1819 | dlm_get_lock_cookie_seq(be64_to_cpu(c)), | ||
1820 | res->lockname.len, res->lockname.name, | ||
1821 | lock->ml.node); | ||
1822 | c = ml->cookie; | ||
1823 | mlog(ML_ERROR, "Migrate lock cookie %u:%llu, " | ||
1824 | "node %u, list %u, flags 0x%x, type %d, " | ||
1825 | "conv %d, highest blocked %d\n", | ||
1826 | dlm_get_lock_cookie_node(be64_to_cpu(c)), | ||
1827 | dlm_get_lock_cookie_seq(be64_to_cpu(c)), | ||
1828 | ml->node, ml->list, ml->flags, ml->type, | ||
1829 | ml->convert_type, ml->highest_blocked); | ||
1785 | __dlm_print_one_lock_resource(res); | 1830 | __dlm_print_one_lock_resource(res); |
1786 | BUG(); | 1831 | BUG(); |
1787 | } | 1832 | } |
1788 | BUG_ON(lock->ml.node != ml->node); | ||
1789 | 1833 | ||
1790 | if (tmpq != queue) { | 1834 | if (tmpq != queue) { |
1791 | mlog(0, "lock was on %u instead of %u for %.*s\n", | 1835 | c = ml->cookie; |
1792 | j, ml->list, res->lockname.len, res->lockname.name); | 1836 | mlog(0, "Lock cookie %u:%llu was on list %u " |
1837 | "instead of list %u for %.*s\n", | ||
1838 | dlm_get_lock_cookie_node(be64_to_cpu(c)), | ||
1839 | dlm_get_lock_cookie_seq(be64_to_cpu(c)), | ||
1840 | j, ml->list, res->lockname.len, | ||
1841 | res->lockname.name); | ||
1842 | __dlm_print_one_lock_resource(res); | ||
1793 | spin_unlock(&res->spinlock); | 1843 | spin_unlock(&res->spinlock); |
1794 | continue; | 1844 | continue; |
1795 | } | 1845 | } |
@@ -1839,7 +1889,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, | |||
1839 | * the lvb. */ | 1889 | * the lvb. */ |
1840 | memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); | 1890 | memcpy(res->lvb, mres->lvb, DLM_LVB_LEN); |
1841 | } else { | 1891 | } else { |
1842 | /* otherwise, the node is sending its | 1892 | /* otherwise, the node is sending its |
1843 | * most recent valid lvb info */ | 1893 | * most recent valid lvb info */ |
1844 | BUG_ON(ml->type != LKM_EXMODE && | 1894 | BUG_ON(ml->type != LKM_EXMODE && |
1845 | ml->type != LKM_PRMODE); | 1895 | ml->type != LKM_PRMODE); |
@@ -1886,7 +1936,7 @@ skip_lvb: | |||
1886 | spin_lock(&res->spinlock); | 1936 | spin_lock(&res->spinlock); |
1887 | list_for_each_entry(lock, queue, list) { | 1937 | list_for_each_entry(lock, queue, list) { |
1888 | if (lock->ml.cookie == ml->cookie) { | 1938 | if (lock->ml.cookie == ml->cookie) { |
1889 | __be64 c = lock->ml.cookie; | 1939 | c = lock->ml.cookie; |
1890 | mlog(ML_ERROR, "%s:%.*s: %u:%llu: lock already " | 1940 | mlog(ML_ERROR, "%s:%.*s: %u:%llu: lock already " |
1891 | "exists on this lockres!\n", dlm->name, | 1941 | "exists on this lockres!\n", dlm->name, |
1892 | res->lockname.len, res->lockname.name, | 1942 | res->lockname.len, res->lockname.name, |
@@ -2114,7 +2164,7 @@ static void dlm_revalidate_lvb(struct dlm_ctxt *dlm, | |||
2114 | assert_spin_locked(&res->spinlock); | 2164 | assert_spin_locked(&res->spinlock); |
2115 | 2165 | ||
2116 | if (res->owner == dlm->node_num) | 2166 | if (res->owner == dlm->node_num) |
2117 | /* if this node owned the lockres, and if the dead node | 2167 | /* if this node owned the lockres, and if the dead node |
2118 | * had an EX when he died, blank out the lvb */ | 2168 | * had an EX when he died, blank out the lvb */ |
2119 | search_node = dead_node; | 2169 | search_node = dead_node; |
2120 | else { | 2170 | else { |
@@ -2152,7 +2202,7 @@ static void dlm_free_dead_locks(struct dlm_ctxt *dlm, | |||
2152 | 2202 | ||
2153 | /* this node is the lockres master: | 2203 | /* this node is the lockres master: |
2154 | * 1) remove any stale locks for the dead node | 2204 | * 1) remove any stale locks for the dead node |
2155 | * 2) if the dead node had an EX when he died, blank out the lvb | 2205 | * 2) if the dead node had an EX when he died, blank out the lvb |
2156 | */ | 2206 | */ |
2157 | assert_spin_locked(&dlm->spinlock); | 2207 | assert_spin_locked(&dlm->spinlock); |
2158 | assert_spin_locked(&res->spinlock); | 2208 | assert_spin_locked(&res->spinlock); |
@@ -2193,7 +2243,12 @@ static void dlm_free_dead_locks(struct dlm_ctxt *dlm, | |||
2193 | mlog(0, "%s:%.*s: freed %u locks for dead node %u, " | 2243 | mlog(0, "%s:%.*s: freed %u locks for dead node %u, " |
2194 | "dropping ref from lockres\n", dlm->name, | 2244 | "dropping ref from lockres\n", dlm->name, |
2195 | res->lockname.len, res->lockname.name, freed, dead_node); | 2245 | res->lockname.len, res->lockname.name, freed, dead_node); |
2196 | BUG_ON(!test_bit(dead_node, res->refmap)); | 2246 | if(!test_bit(dead_node, res->refmap)) { |
2247 | mlog(ML_ERROR, "%s:%.*s: freed %u locks for dead node %u, " | ||
2248 | "but ref was not set\n", dlm->name, | ||
2249 | res->lockname.len, res->lockname.name, freed, dead_node); | ||
2250 | __dlm_print_one_lock_resource(res); | ||
2251 | } | ||
2197 | dlm_lockres_clear_refmap_bit(dead_node, res); | 2252 | dlm_lockres_clear_refmap_bit(dead_node, res); |
2198 | } else if (test_bit(dead_node, res->refmap)) { | 2253 | } else if (test_bit(dead_node, res->refmap)) { |
2199 | mlog(0, "%s:%.*s: dead node %u had a ref, but had " | 2254 | mlog(0, "%s:%.*s: dead node %u had a ref, but had " |
@@ -2260,7 +2315,7 @@ static void dlm_do_local_recovery_cleanup(struct dlm_ctxt *dlm, u8 dead_node) | |||
2260 | } | 2315 | } |
2261 | spin_unlock(&res->spinlock); | 2316 | spin_unlock(&res->spinlock); |
2262 | continue; | 2317 | continue; |
2263 | } | 2318 | } |
2264 | spin_lock(&res->spinlock); | 2319 | spin_lock(&res->spinlock); |
2265 | /* zero the lvb if necessary */ | 2320 | /* zero the lvb if necessary */ |
2266 | dlm_revalidate_lvb(dlm, res, dead_node); | 2321 | dlm_revalidate_lvb(dlm, res, dead_node); |
@@ -2411,7 +2466,7 @@ static void dlm_reco_unlock_ast(void *astdata, enum dlm_status st) | |||
2411 | * this function on each node racing to become the recovery | 2466 | * this function on each node racing to become the recovery |
2412 | * master will not stop attempting this until either: | 2467 | * master will not stop attempting this until either: |
2413 | * a) this node gets the EX (and becomes the recovery master), | 2468 | * a) this node gets the EX (and becomes the recovery master), |
2414 | * or b) dlm->reco.new_master gets set to some nodenum | 2469 | * or b) dlm->reco.new_master gets set to some nodenum |
2415 | * != O2NM_INVALID_NODE_NUM (another node will do the reco). | 2470 | * != O2NM_INVALID_NODE_NUM (another node will do the reco). |
2416 | * so each time a recovery master is needed, the entire cluster | 2471 | * so each time a recovery master is needed, the entire cluster |
2417 | * will sync at this point. if the new master dies, that will | 2472 | * will sync at this point. if the new master dies, that will |
@@ -2424,7 +2479,7 @@ static int dlm_pick_recovery_master(struct dlm_ctxt *dlm) | |||
2424 | 2479 | ||
2425 | mlog(0, "starting recovery of %s at %lu, dead=%u, this=%u\n", | 2480 | mlog(0, "starting recovery of %s at %lu, dead=%u, this=%u\n", |
2426 | dlm->name, jiffies, dlm->reco.dead_node, dlm->node_num); | 2481 | dlm->name, jiffies, dlm->reco.dead_node, dlm->node_num); |
2427 | again: | 2482 | again: |
2428 | memset(&lksb, 0, sizeof(lksb)); | 2483 | memset(&lksb, 0, sizeof(lksb)); |
2429 | 2484 | ||
2430 | ret = dlmlock(dlm, LKM_EXMODE, &lksb, LKM_NOQUEUE|LKM_RECOVERY, | 2485 | ret = dlmlock(dlm, LKM_EXMODE, &lksb, LKM_NOQUEUE|LKM_RECOVERY, |
@@ -2437,8 +2492,8 @@ again: | |||
2437 | if (ret == DLM_NORMAL) { | 2492 | if (ret == DLM_NORMAL) { |
2438 | mlog(0, "dlm=%s dlmlock says I got it (this=%u)\n", | 2493 | mlog(0, "dlm=%s dlmlock says I got it (this=%u)\n", |
2439 | dlm->name, dlm->node_num); | 2494 | dlm->name, dlm->node_num); |
2440 | 2495 | ||
2441 | /* got the EX lock. check to see if another node | 2496 | /* got the EX lock. check to see if another node |
2442 | * just became the reco master */ | 2497 | * just became the reco master */ |
2443 | if (dlm_reco_master_ready(dlm)) { | 2498 | if (dlm_reco_master_ready(dlm)) { |
2444 | mlog(0, "%s: got reco EX lock, but %u will " | 2499 | mlog(0, "%s: got reco EX lock, but %u will " |
@@ -2451,12 +2506,12 @@ again: | |||
2451 | /* see if recovery was already finished elsewhere */ | 2506 | /* see if recovery was already finished elsewhere */ |
2452 | spin_lock(&dlm->spinlock); | 2507 | spin_lock(&dlm->spinlock); |
2453 | if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) { | 2508 | if (dlm->reco.dead_node == O2NM_INVALID_NODE_NUM) { |
2454 | status = -EINVAL; | 2509 | status = -EINVAL; |
2455 | mlog(0, "%s: got reco EX lock, but " | 2510 | mlog(0, "%s: got reco EX lock, but " |
2456 | "node got recovered already\n", dlm->name); | 2511 | "node got recovered already\n", dlm->name); |
2457 | if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) { | 2512 | if (dlm->reco.new_master != O2NM_INVALID_NODE_NUM) { |
2458 | mlog(ML_ERROR, "%s: new master is %u " | 2513 | mlog(ML_ERROR, "%s: new master is %u " |
2459 | "but no dead node!\n", | 2514 | "but no dead node!\n", |
2460 | dlm->name, dlm->reco.new_master); | 2515 | dlm->name, dlm->reco.new_master); |
2461 | BUG(); | 2516 | BUG(); |
2462 | } | 2517 | } |
@@ -2468,7 +2523,7 @@ again: | |||
2468 | * set the master and send the messages to begin recovery */ | 2523 | * set the master and send the messages to begin recovery */ |
2469 | if (!status) { | 2524 | if (!status) { |
2470 | mlog(0, "%s: dead=%u, this=%u, sending " | 2525 | mlog(0, "%s: dead=%u, this=%u, sending " |
2471 | "begin_reco now\n", dlm->name, | 2526 | "begin_reco now\n", dlm->name, |
2472 | dlm->reco.dead_node, dlm->node_num); | 2527 | dlm->reco.dead_node, dlm->node_num); |
2473 | status = dlm_send_begin_reco_message(dlm, | 2528 | status = dlm_send_begin_reco_message(dlm, |
2474 | dlm->reco.dead_node); | 2529 | dlm->reco.dead_node); |
@@ -2501,7 +2556,7 @@ again: | |||
2501 | mlog(0, "dlm=%s dlmlock says another node got it (this=%u)\n", | 2556 | mlog(0, "dlm=%s dlmlock says another node got it (this=%u)\n", |
2502 | dlm->name, dlm->node_num); | 2557 | dlm->name, dlm->node_num); |
2503 | /* another node is master. wait on | 2558 | /* another node is master. wait on |
2504 | * reco.new_master != O2NM_INVALID_NODE_NUM | 2559 | * reco.new_master != O2NM_INVALID_NODE_NUM |
2505 | * for at most one second */ | 2560 | * for at most one second */ |
2506 | wait_event_timeout(dlm->dlm_reco_thread_wq, | 2561 | wait_event_timeout(dlm->dlm_reco_thread_wq, |
2507 | dlm_reco_master_ready(dlm), | 2562 | dlm_reco_master_ready(dlm), |
@@ -2589,7 +2644,13 @@ retry: | |||
2589 | "begin reco msg (%d)\n", dlm->name, nodenum, ret); | 2644 | "begin reco msg (%d)\n", dlm->name, nodenum, ret); |
2590 | ret = 0; | 2645 | ret = 0; |
2591 | } | 2646 | } |
2592 | if (ret == -EAGAIN) { | 2647 | |
2648 | /* | ||
2649 | * Prior to commit aad1b15310b9bcd59fa81ab8f2b1513b59553ea8, | ||
2650 | * dlm_begin_reco_handler() returned EAGAIN and not -EAGAIN. | ||
2651 | * We are handling both for compatibility reasons. | ||
2652 | */ | ||
2653 | if (ret == -EAGAIN || ret == EAGAIN) { | ||
2593 | mlog(0, "%s: trying to start recovery of node " | 2654 | mlog(0, "%s: trying to start recovery of node " |
2594 | "%u, but node %u is waiting for last recovery " | 2655 | "%u, but node %u is waiting for last recovery " |
2595 | "to complete, backoff for a bit\n", dlm->name, | 2656 | "to complete, backoff for a bit\n", dlm->name, |
@@ -2599,7 +2660,7 @@ retry: | |||
2599 | } | 2660 | } |
2600 | if (ret < 0) { | 2661 | if (ret < 0) { |
2601 | struct dlm_lock_resource *res; | 2662 | struct dlm_lock_resource *res; |
2602 | /* this is now a serious problem, possibly ENOMEM | 2663 | /* this is now a serious problem, possibly ENOMEM |
2603 | * in the network stack. must retry */ | 2664 | * in the network stack. must retry */ |
2604 | mlog_errno(ret); | 2665 | mlog_errno(ret); |
2605 | mlog(ML_ERROR, "begin reco of dlm %s to node %u " | 2666 | mlog(ML_ERROR, "begin reco of dlm %s to node %u " |
@@ -2612,7 +2673,7 @@ retry: | |||
2612 | } else { | 2673 | } else { |
2613 | mlog(ML_ERROR, "recovery lock not found\n"); | 2674 | mlog(ML_ERROR, "recovery lock not found\n"); |
2614 | } | 2675 | } |
2615 | /* sleep for a bit in hopes that we can avoid | 2676 | /* sleep for a bit in hopes that we can avoid |
2616 | * another ENOMEM */ | 2677 | * another ENOMEM */ |
2617 | msleep(100); | 2678 | msleep(100); |
2618 | goto retry; | 2679 | goto retry; |
@@ -2664,7 +2725,7 @@ int dlm_begin_reco_handler(struct o2net_msg *msg, u32 len, void *data, | |||
2664 | } | 2725 | } |
2665 | if (dlm->reco.dead_node != O2NM_INVALID_NODE_NUM) { | 2726 | if (dlm->reco.dead_node != O2NM_INVALID_NODE_NUM) { |
2666 | mlog(ML_NOTICE, "%s: dead_node previously set to %u, " | 2727 | mlog(ML_NOTICE, "%s: dead_node previously set to %u, " |
2667 | "node %u changing it to %u\n", dlm->name, | 2728 | "node %u changing it to %u\n", dlm->name, |
2668 | dlm->reco.dead_node, br->node_idx, br->dead_node); | 2729 | dlm->reco.dead_node, br->node_idx, br->dead_node); |
2669 | } | 2730 | } |
2670 | dlm_set_reco_master(dlm, br->node_idx); | 2731 | dlm_set_reco_master(dlm, br->node_idx); |
@@ -2730,8 +2791,8 @@ stage2: | |||
2730 | if (ret < 0) { | 2791 | if (ret < 0) { |
2731 | mlog_errno(ret); | 2792 | mlog_errno(ret); |
2732 | if (dlm_is_host_down(ret)) { | 2793 | if (dlm_is_host_down(ret)) { |
2733 | /* this has no effect on this recovery | 2794 | /* this has no effect on this recovery |
2734 | * session, so set the status to zero to | 2795 | * session, so set the status to zero to |
2735 | * finish out the last recovery */ | 2796 | * finish out the last recovery */ |
2736 | mlog(ML_ERROR, "node %u went down after this " | 2797 | mlog(ML_ERROR, "node %u went down after this " |
2737 | "node finished recovery.\n", nodenum); | 2798 | "node finished recovery.\n", nodenum); |
@@ -2768,7 +2829,7 @@ int dlm_finalize_reco_handler(struct o2net_msg *msg, u32 len, void *data, | |||
2768 | mlog(0, "%s: node %u finalizing recovery stage%d of " | 2829 | mlog(0, "%s: node %u finalizing recovery stage%d of " |
2769 | "node %u (%u:%u)\n", dlm->name, fr->node_idx, stage, | 2830 | "node %u (%u:%u)\n", dlm->name, fr->node_idx, stage, |
2770 | fr->dead_node, dlm->reco.dead_node, dlm->reco.new_master); | 2831 | fr->dead_node, dlm->reco.dead_node, dlm->reco.new_master); |
2771 | 2832 | ||
2772 | spin_lock(&dlm->spinlock); | 2833 | spin_lock(&dlm->spinlock); |
2773 | 2834 | ||
2774 | if (dlm->reco.new_master != fr->node_idx) { | 2835 | if (dlm->reco.new_master != fr->node_idx) { |
diff --git a/fs/ocfs2/dlm/dlmunlock.c b/fs/ocfs2/dlm/dlmunlock.c index 00f53b2aea76..49e29ecd0201 100644 --- a/fs/ocfs2/dlm/dlmunlock.c +++ b/fs/ocfs2/dlm/dlmunlock.c | |||
@@ -190,8 +190,8 @@ static enum dlm_status dlmunlock_common(struct dlm_ctxt *dlm, | |||
190 | actions &= ~(DLM_UNLOCK_REMOVE_LOCK| | 190 | actions &= ~(DLM_UNLOCK_REMOVE_LOCK| |
191 | DLM_UNLOCK_REGRANT_LOCK| | 191 | DLM_UNLOCK_REGRANT_LOCK| |
192 | DLM_UNLOCK_CLEAR_CONVERT_TYPE); | 192 | DLM_UNLOCK_CLEAR_CONVERT_TYPE); |
193 | } else if (status == DLM_RECOVERING || | 193 | } else if (status == DLM_RECOVERING || |
194 | status == DLM_MIGRATING || | 194 | status == DLM_MIGRATING || |
195 | status == DLM_FORWARD) { | 195 | status == DLM_FORWARD) { |
196 | /* must clear the actions because this unlock | 196 | /* must clear the actions because this unlock |
197 | * is about to be retried. cannot free or do | 197 | * is about to be retried. cannot free or do |
@@ -661,14 +661,14 @@ retry: | |||
661 | if (call_ast) { | 661 | if (call_ast) { |
662 | mlog(0, "calling unlockast(%p, %d)\n", data, status); | 662 | mlog(0, "calling unlockast(%p, %d)\n", data, status); |
663 | if (is_master) { | 663 | if (is_master) { |
664 | /* it is possible that there is one last bast | 664 | /* it is possible that there is one last bast |
665 | * pending. make sure it is flushed, then | 665 | * pending. make sure it is flushed, then |
666 | * call the unlockast. | 666 | * call the unlockast. |
667 | * not an issue if this is a mastered remotely, | 667 | * not an issue if this is a mastered remotely, |
668 | * since this lock has been removed from the | 668 | * since this lock has been removed from the |
669 | * lockres queues and cannot be found. */ | 669 | * lockres queues and cannot be found. */ |
670 | dlm_kick_thread(dlm, NULL); | 670 | dlm_kick_thread(dlm, NULL); |
671 | wait_event(dlm->ast_wq, | 671 | wait_event(dlm->ast_wq, |
672 | dlm_lock_basts_flushed(dlm, lock)); | 672 | dlm_lock_basts_flushed(dlm, lock)); |
673 | } | 673 | } |
674 | (*unlockast)(data, status); | 674 | (*unlockast)(data, status); |
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index c5e4a49e3a12..e044019cb3b1 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c | |||
@@ -875,6 +875,14 @@ static inline void ocfs2_generic_handle_convert_action(struct ocfs2_lock_res *lo | |||
875 | lockres_or_flags(lockres, OCFS2_LOCK_NEEDS_REFRESH); | 875 | lockres_or_flags(lockres, OCFS2_LOCK_NEEDS_REFRESH); |
876 | 876 | ||
877 | lockres->l_level = lockres->l_requested; | 877 | lockres->l_level = lockres->l_requested; |
878 | |||
879 | /* | ||
880 | * We set the OCFS2_LOCK_UPCONVERT_FINISHING flag before clearing | ||
881 | * the OCFS2_LOCK_BUSY flag to prevent the dc thread from | ||
882 | * downconverting the lock before the upconvert has fully completed. | ||
883 | */ | ||
884 | lockres_or_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); | ||
885 | |||
878 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 886 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
879 | 887 | ||
880 | mlog_exit_void(); | 888 | mlog_exit_void(); |
@@ -907,8 +915,6 @@ static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, | |||
907 | 915 | ||
908 | assert_spin_locked(&lockres->l_lock); | 916 | assert_spin_locked(&lockres->l_lock); |
909 | 917 | ||
910 | lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED); | ||
911 | |||
912 | if (level > lockres->l_blocking) { | 918 | if (level > lockres->l_blocking) { |
913 | /* only schedule a downconvert if we haven't already scheduled | 919 | /* only schedule a downconvert if we haven't already scheduled |
914 | * one that goes low enough to satisfy the level we're | 920 | * one that goes low enough to satisfy the level we're |
@@ -921,6 +927,9 @@ static int ocfs2_generic_handle_bast(struct ocfs2_lock_res *lockres, | |||
921 | lockres->l_blocking = level; | 927 | lockres->l_blocking = level; |
922 | } | 928 | } |
923 | 929 | ||
930 | if (needs_downconvert) | ||
931 | lockres_or_flags(lockres, OCFS2_LOCK_BLOCKED); | ||
932 | |||
924 | mlog_exit(needs_downconvert); | 933 | mlog_exit(needs_downconvert); |
925 | return needs_downconvert; | 934 | return needs_downconvert; |
926 | } | 935 | } |
@@ -1133,6 +1142,7 @@ static inline void ocfs2_recover_from_dlm_error(struct ocfs2_lock_res *lockres, | |||
1133 | mlog_entry_void(); | 1142 | mlog_entry_void(); |
1134 | spin_lock_irqsave(&lockres->l_lock, flags); | 1143 | spin_lock_irqsave(&lockres->l_lock, flags); |
1135 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); | 1144 | lockres_clear_flags(lockres, OCFS2_LOCK_BUSY); |
1145 | lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); | ||
1136 | if (convert) | 1146 | if (convert) |
1137 | lockres->l_action = OCFS2_AST_INVALID; | 1147 | lockres->l_action = OCFS2_AST_INVALID; |
1138 | else | 1148 | else |
@@ -1323,13 +1333,13 @@ static int __ocfs2_cluster_lock(struct ocfs2_super *osb, | |||
1323 | again: | 1333 | again: |
1324 | wait = 0; | 1334 | wait = 0; |
1325 | 1335 | ||
1336 | spin_lock_irqsave(&lockres->l_lock, flags); | ||
1337 | |||
1326 | if (catch_signals && signal_pending(current)) { | 1338 | if (catch_signals && signal_pending(current)) { |
1327 | ret = -ERESTARTSYS; | 1339 | ret = -ERESTARTSYS; |
1328 | goto out; | 1340 | goto unlock; |
1329 | } | 1341 | } |
1330 | 1342 | ||
1331 | spin_lock_irqsave(&lockres->l_lock, flags); | ||
1332 | |||
1333 | mlog_bug_on_msg(lockres->l_flags & OCFS2_LOCK_FREEING, | 1343 | mlog_bug_on_msg(lockres->l_flags & OCFS2_LOCK_FREEING, |
1334 | "Cluster lock called on freeing lockres %s! flags " | 1344 | "Cluster lock called on freeing lockres %s! flags " |
1335 | "0x%lx\n", lockres->l_name, lockres->l_flags); | 1345 | "0x%lx\n", lockres->l_name, lockres->l_flags); |
@@ -1346,6 +1356,25 @@ again: | |||
1346 | goto unlock; | 1356 | goto unlock; |
1347 | } | 1357 | } |
1348 | 1358 | ||
1359 | if (lockres->l_flags & OCFS2_LOCK_UPCONVERT_FINISHING) { | ||
1360 | /* | ||
1361 | * We've upconverted. If the lock now has a level we can | ||
1362 | * work with, we take it. If, however, the lock is not at the | ||
1363 | * required level, we go thru the full cycle. One way this could | ||
1364 | * happen is if a process requesting an upconvert to PR is | ||
1365 | * closely followed by another requesting upconvert to an EX. | ||
1366 | * If the process requesting EX lands here, we want it to | ||
1367 | * continue attempting to upconvert and let the process | ||
1368 | * requesting PR take the lock. | ||
1369 | * If multiple processes request upconvert to PR, the first one | ||
1370 | * here will take the lock. The others will have to go thru the | ||
1371 | * OCFS2_LOCK_BLOCKED check to ensure that there is no pending | ||
1372 | * downconvert request. | ||
1373 | */ | ||
1374 | if (level <= lockres->l_level) | ||
1375 | goto update_holders; | ||
1376 | } | ||
1377 | |||
1349 | if (lockres->l_flags & OCFS2_LOCK_BLOCKED && | 1378 | if (lockres->l_flags & OCFS2_LOCK_BLOCKED && |
1350 | !ocfs2_may_continue_on_blocked_lock(lockres, level)) { | 1379 | !ocfs2_may_continue_on_blocked_lock(lockres, level)) { |
1351 | /* is the lock is currently blocked on behalf of | 1380 | /* is the lock is currently blocked on behalf of |
@@ -1416,11 +1445,14 @@ again: | |||
1416 | goto again; | 1445 | goto again; |
1417 | } | 1446 | } |
1418 | 1447 | ||
1448 | update_holders: | ||
1419 | /* Ok, if we get here then we're good to go. */ | 1449 | /* Ok, if we get here then we're good to go. */ |
1420 | ocfs2_inc_holders(lockres, level); | 1450 | ocfs2_inc_holders(lockres, level); |
1421 | 1451 | ||
1422 | ret = 0; | 1452 | ret = 0; |
1423 | unlock: | 1453 | unlock: |
1454 | lockres_clear_flags(lockres, OCFS2_LOCK_UPCONVERT_FINISHING); | ||
1455 | |||
1424 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 1456 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
1425 | out: | 1457 | out: |
1426 | /* | 1458 | /* |
@@ -3155,7 +3187,7 @@ out: | |||
3155 | /* Mark the lockres as being dropped. It will no longer be | 3187 | /* Mark the lockres as being dropped. It will no longer be |
3156 | * queued if blocking, but we still may have to wait on it | 3188 | * queued if blocking, but we still may have to wait on it |
3157 | * being dequeued from the downconvert thread before we can consider | 3189 | * being dequeued from the downconvert thread before we can consider |
3158 | * it safe to drop. | 3190 | * it safe to drop. |
3159 | * | 3191 | * |
3160 | * You can *not* attempt to call cluster_lock on this lockres anymore. */ | 3192 | * You can *not* attempt to call cluster_lock on this lockres anymore. */ |
3161 | void ocfs2_mark_lockres_freeing(struct ocfs2_lock_res *lockres) | 3193 | void ocfs2_mark_lockres_freeing(struct ocfs2_lock_res *lockres) |
@@ -3352,6 +3384,7 @@ static int ocfs2_unblock_lock(struct ocfs2_super *osb, | |||
3352 | unsigned long flags; | 3384 | unsigned long flags; |
3353 | int blocking; | 3385 | int blocking; |
3354 | int new_level; | 3386 | int new_level; |
3387 | int level; | ||
3355 | int ret = 0; | 3388 | int ret = 0; |
3356 | int set_lvb = 0; | 3389 | int set_lvb = 0; |
3357 | unsigned int gen; | 3390 | unsigned int gen; |
@@ -3360,9 +3393,17 @@ static int ocfs2_unblock_lock(struct ocfs2_super *osb, | |||
3360 | 3393 | ||
3361 | spin_lock_irqsave(&lockres->l_lock, flags); | 3394 | spin_lock_irqsave(&lockres->l_lock, flags); |
3362 | 3395 | ||
3363 | BUG_ON(!(lockres->l_flags & OCFS2_LOCK_BLOCKED)); | ||
3364 | |||
3365 | recheck: | 3396 | recheck: |
3397 | /* | ||
3398 | * Is it still blocking? If not, we have no more work to do. | ||
3399 | */ | ||
3400 | if (!(lockres->l_flags & OCFS2_LOCK_BLOCKED)) { | ||
3401 | BUG_ON(lockres->l_blocking != DLM_LOCK_NL); | ||
3402 | spin_unlock_irqrestore(&lockres->l_lock, flags); | ||
3403 | ret = 0; | ||
3404 | goto leave; | ||
3405 | } | ||
3406 | |||
3366 | if (lockres->l_flags & OCFS2_LOCK_BUSY) { | 3407 | if (lockres->l_flags & OCFS2_LOCK_BUSY) { |
3367 | /* XXX | 3408 | /* XXX |
3368 | * This is a *big* race. The OCFS2_LOCK_PENDING flag | 3409 | * This is a *big* race. The OCFS2_LOCK_PENDING flag |
@@ -3401,6 +3442,31 @@ recheck: | |||
3401 | goto leave; | 3442 | goto leave; |
3402 | } | 3443 | } |
3403 | 3444 | ||
3445 | /* | ||
3446 | * This prevents livelocks. OCFS2_LOCK_UPCONVERT_FINISHING flag is | ||
3447 | * set when the ast is received for an upconvert just before the | ||
3448 | * OCFS2_LOCK_BUSY flag is cleared. Now if the fs received a bast | ||
3449 | * on the heels of the ast, we want to delay the downconvert just | ||
3450 | * enough to allow the up requestor to do its task. Because this | ||
3451 | * lock is in the blocked queue, the lock will be downconverted | ||
3452 | * as soon as the requestor is done with the lock. | ||
3453 | */ | ||
3454 | if (lockres->l_flags & OCFS2_LOCK_UPCONVERT_FINISHING) | ||
3455 | goto leave_requeue; | ||
3456 | |||
3457 | /* | ||
3458 | * How can we block and yet be at NL? We were trying to upconvert | ||
3459 | * from NL and got canceled. The code comes back here, and now | ||
3460 | * we notice and clear BLOCKING. | ||
3461 | */ | ||
3462 | if (lockres->l_level == DLM_LOCK_NL) { | ||
3463 | BUG_ON(lockres->l_ex_holders || lockres->l_ro_holders); | ||
3464 | lockres->l_blocking = DLM_LOCK_NL; | ||
3465 | lockres_clear_flags(lockres, OCFS2_LOCK_BLOCKED); | ||
3466 | spin_unlock_irqrestore(&lockres->l_lock, flags); | ||
3467 | goto leave; | ||
3468 | } | ||
3469 | |||
3404 | /* if we're blocking an exclusive and we have *any* holders, | 3470 | /* if we're blocking an exclusive and we have *any* holders, |
3405 | * then requeue. */ | 3471 | * then requeue. */ |
3406 | if ((lockres->l_blocking == DLM_LOCK_EX) | 3472 | if ((lockres->l_blocking == DLM_LOCK_EX) |
@@ -3438,6 +3504,7 @@ recheck: | |||
3438 | * may sleep, so we save off a copy of what we're blocking as | 3504 | * may sleep, so we save off a copy of what we're blocking as |
3439 | * it may change while we're not holding the spin lock. */ | 3505 | * it may change while we're not holding the spin lock. */ |
3440 | blocking = lockres->l_blocking; | 3506 | blocking = lockres->l_blocking; |
3507 | level = lockres->l_level; | ||
3441 | spin_unlock_irqrestore(&lockres->l_lock, flags); | 3508 | spin_unlock_irqrestore(&lockres->l_lock, flags); |
3442 | 3509 | ||
3443 | ctl->unblock_action = lockres->l_ops->downconvert_worker(lockres, blocking); | 3510 | ctl->unblock_action = lockres->l_ops->downconvert_worker(lockres, blocking); |
@@ -3446,7 +3513,7 @@ recheck: | |||
3446 | goto leave; | 3513 | goto leave; |
3447 | 3514 | ||
3448 | spin_lock_irqsave(&lockres->l_lock, flags); | 3515 | spin_lock_irqsave(&lockres->l_lock, flags); |
3449 | if (blocking != lockres->l_blocking) { | 3516 | if ((blocking != lockres->l_blocking) || (level != lockres->l_level)) { |
3450 | /* If this changed underneath us, then we can't drop | 3517 | /* If this changed underneath us, then we can't drop |
3451 | * it just yet. */ | 3518 | * it just yet. */ |
3452 | goto recheck; | 3519 | goto recheck; |
diff --git a/fs/ocfs2/export.c b/fs/ocfs2/export.c index 15713cbb865c..19ad145d2af3 100644 --- a/fs/ocfs2/export.c +++ b/fs/ocfs2/export.c | |||
@@ -239,7 +239,7 @@ static int ocfs2_encode_fh(struct dentry *dentry, u32 *fh_in, int *max_len, | |||
239 | mlog(0, "Encoding parent: blkno: %llu, generation: %u\n", | 239 | mlog(0, "Encoding parent: blkno: %llu, generation: %u\n", |
240 | (unsigned long long)blkno, generation); | 240 | (unsigned long long)blkno, generation); |
241 | } | 241 | } |
242 | 242 | ||
243 | *max_len = len; | 243 | *max_len = len; |
244 | 244 | ||
245 | bail: | 245 | bail: |
diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index d35a27f4523e..5328529e7fd2 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c | |||
@@ -192,7 +192,7 @@ static int ocfs2_try_to_merge_extent_map(struct ocfs2_extent_map_item *emi, | |||
192 | emi->ei_clusters += ins->ei_clusters; | 192 | emi->ei_clusters += ins->ei_clusters; |
193 | return 1; | 193 | return 1; |
194 | } else if ((ins->ei_phys + ins->ei_clusters) == emi->ei_phys && | 194 | } else if ((ins->ei_phys + ins->ei_clusters) == emi->ei_phys && |
195 | (ins->ei_cpos + ins->ei_clusters) == emi->ei_phys && | 195 | (ins->ei_cpos + ins->ei_clusters) == emi->ei_cpos && |
196 | ins->ei_flags == emi->ei_flags) { | 196 | ins->ei_flags == emi->ei_flags) { |
197 | emi->ei_phys = ins->ei_phys; | 197 | emi->ei_phys = ins->ei_phys; |
198 | emi->ei_cpos = ins->ei_cpos; | 198 | emi->ei_cpos = ins->ei_cpos; |
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 06ccf6a86d35..558ce0312421 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
@@ -749,7 +749,7 @@ static int ocfs2_write_zero_page(struct inode *inode, | |||
749 | int ret; | 749 | int ret; |
750 | 750 | ||
751 | offset = (size & (PAGE_CACHE_SIZE-1)); /* Within page */ | 751 | offset = (size & (PAGE_CACHE_SIZE-1)); /* Within page */ |
752 | /* ugh. in prepare/commit_write, if from==to==start of block, we | 752 | /* ugh. in prepare/commit_write, if from==to==start of block, we |
753 | ** skip the prepare. make sure we never send an offset for the start | 753 | ** skip the prepare. make sure we never send an offset for the start |
754 | ** of a block | 754 | ** of a block |
755 | */ | 755 | */ |
@@ -1779,7 +1779,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
1779 | struct inode *inode = dentry->d_inode; | 1779 | struct inode *inode = dentry->d_inode; |
1780 | loff_t saved_pos, end; | 1780 | loff_t saved_pos, end; |
1781 | 1781 | ||
1782 | /* | 1782 | /* |
1783 | * We start with a read level meta lock and only jump to an ex | 1783 | * We start with a read level meta lock and only jump to an ex |
1784 | * if we need to make modifications here. | 1784 | * if we need to make modifications here. |
1785 | */ | 1785 | */ |
@@ -2013,8 +2013,8 @@ out_dio: | |||
2013 | /* buffered aio wouldn't have proper lock coverage today */ | 2013 | /* buffered aio wouldn't have proper lock coverage today */ |
2014 | BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT)); | 2014 | BUG_ON(ret == -EIOCBQUEUED && !(file->f_flags & O_DIRECT)); |
2015 | 2015 | ||
2016 | if ((file->f_flags & O_DSYNC && !direct_io) || IS_SYNC(inode) || | 2016 | if (((file->f_flags & O_DSYNC) && !direct_io) || IS_SYNC(inode) || |
2017 | (file->f_flags & O_DIRECT && has_refcount)) { | 2017 | ((file->f_flags & O_DIRECT) && has_refcount)) { |
2018 | ret = filemap_fdatawrite_range(file->f_mapping, pos, | 2018 | ret = filemap_fdatawrite_range(file->f_mapping, pos, |
2019 | pos + count - 1); | 2019 | pos + count - 1); |
2020 | if (ret < 0) | 2020 | if (ret < 0) |
@@ -2033,7 +2033,7 @@ out_dio: | |||
2033 | pos + count - 1); | 2033 | pos + count - 1); |
2034 | } | 2034 | } |
2035 | 2035 | ||
2036 | /* | 2036 | /* |
2037 | * deep in g_f_a_w_n()->ocfs2_direct_IO we pass in a ocfs2_dio_end_io | 2037 | * deep in g_f_a_w_n()->ocfs2_direct_IO we pass in a ocfs2_dio_end_io |
2038 | * function pointer which is called when o_direct io completes so that | 2038 | * function pointer which is called when o_direct io completes so that |
2039 | * it can unlock our rw lock. (it's the clustered equivalent of | 2039 | * it can unlock our rw lock. (it's the clustered equivalent of |
@@ -2198,7 +2198,7 @@ static ssize_t ocfs2_file_aio_read(struct kiocb *iocb, | |||
2198 | goto bail; | 2198 | goto bail; |
2199 | } | 2199 | } |
2200 | 2200 | ||
2201 | /* | 2201 | /* |
2202 | * buffered reads protect themselves in ->readpage(). O_DIRECT reads | 2202 | * buffered reads protect themselves in ->readpage(). O_DIRECT reads |
2203 | * need locks to protect pending reads from racing with truncate. | 2203 | * need locks to protect pending reads from racing with truncate. |
2204 | */ | 2204 | */ |
@@ -2220,10 +2220,10 @@ static ssize_t ocfs2_file_aio_read(struct kiocb *iocb, | |||
2220 | * We're fine letting folks race truncates and extending | 2220 | * We're fine letting folks race truncates and extending |
2221 | * writes with read across the cluster, just like they can | 2221 | * writes with read across the cluster, just like they can |
2222 | * locally. Hence no rw_lock during read. | 2222 | * locally. Hence no rw_lock during read. |
2223 | * | 2223 | * |
2224 | * Take and drop the meta data lock to update inode fields | 2224 | * Take and drop the meta data lock to update inode fields |
2225 | * like i_size. This allows the checks down below | 2225 | * like i_size. This allows the checks down below |
2226 | * generic_file_aio_read() a chance of actually working. | 2226 | * generic_file_aio_read() a chance of actually working. |
2227 | */ | 2227 | */ |
2228 | ret = ocfs2_inode_lock_atime(inode, filp->f_vfsmnt, &lock_level); | 2228 | ret = ocfs2_inode_lock_atime(inode, filp->f_vfsmnt, &lock_level); |
2229 | if (ret < 0) { | 2229 | if (ret < 0) { |
@@ -2248,7 +2248,7 @@ static ssize_t ocfs2_file_aio_read(struct kiocb *iocb, | |||
2248 | bail: | 2248 | bail: |
2249 | if (have_alloc_sem) | 2249 | if (have_alloc_sem) |
2250 | up_read(&inode->i_alloc_sem); | 2250 | up_read(&inode->i_alloc_sem); |
2251 | if (rw_level != -1) | 2251 | if (rw_level != -1) |
2252 | ocfs2_rw_unlock(inode, rw_level); | 2252 | ocfs2_rw_unlock(inode, rw_level); |
2253 | mlog_exit(ret); | 2253 | mlog_exit(ret); |
2254 | 2254 | ||
diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c index 0297fb8982b8..88459bdd1ff3 100644 --- a/fs/ocfs2/inode.c +++ b/fs/ocfs2/inode.c | |||
@@ -475,7 +475,7 @@ static int ocfs2_read_locked_inode(struct inode *inode, | |||
475 | if (args->fi_flags & OCFS2_FI_FLAG_ORPHAN_RECOVERY) { | 475 | if (args->fi_flags & OCFS2_FI_FLAG_ORPHAN_RECOVERY) { |
476 | status = ocfs2_try_open_lock(inode, 0); | 476 | status = ocfs2_try_open_lock(inode, 0); |
477 | if (status) { | 477 | if (status) { |
478 | make_bad_inode(inode); | 478 | make_bad_inode(inode); |
479 | return status; | 479 | return status; |
480 | } | 480 | } |
481 | } | 481 | } |
@@ -684,7 +684,7 @@ bail: | |||
684 | return status; | 684 | return status; |
685 | } | 685 | } |
686 | 686 | ||
687 | /* | 687 | /* |
688 | * Serialize with orphan dir recovery. If the process doing | 688 | * Serialize with orphan dir recovery. If the process doing |
689 | * recovery on this orphan dir does an iget() with the dir | 689 | * recovery on this orphan dir does an iget() with the dir |
690 | * i_mutex held, we'll deadlock here. Instead we detect this | 690 | * i_mutex held, we'll deadlock here. Instead we detect this |
diff --git a/fs/ocfs2/ioctl.c b/fs/ocfs2/ioctl.c index 31fbb0619510..7d9d9c132cef 100644 --- a/fs/ocfs2/ioctl.c +++ b/fs/ocfs2/ioctl.c | |||
@@ -7,6 +7,7 @@ | |||
7 | 7 | ||
8 | #include <linux/fs.h> | 8 | #include <linux/fs.h> |
9 | #include <linux/mount.h> | 9 | #include <linux/mount.h> |
10 | #include <linux/compat.h> | ||
10 | 11 | ||
11 | #define MLOG_MASK_PREFIX ML_INODE | 12 | #define MLOG_MASK_PREFIX ML_INODE |
12 | #include <cluster/masklog.h> | 13 | #include <cluster/masklog.h> |
@@ -181,6 +182,10 @@ long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) | |||
181 | #ifdef CONFIG_COMPAT | 182 | #ifdef CONFIG_COMPAT |
182 | long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) | 183 | long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) |
183 | { | 184 | { |
185 | bool preserve; | ||
186 | struct reflink_arguments args; | ||
187 | struct inode *inode = file->f_path.dentry->d_inode; | ||
188 | |||
184 | switch (cmd) { | 189 | switch (cmd) { |
185 | case OCFS2_IOC32_GETFLAGS: | 190 | case OCFS2_IOC32_GETFLAGS: |
186 | cmd = OCFS2_IOC_GETFLAGS; | 191 | cmd = OCFS2_IOC_GETFLAGS; |
@@ -195,8 +200,15 @@ long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg) | |||
195 | case OCFS2_IOC_GROUP_EXTEND: | 200 | case OCFS2_IOC_GROUP_EXTEND: |
196 | case OCFS2_IOC_GROUP_ADD: | 201 | case OCFS2_IOC_GROUP_ADD: |
197 | case OCFS2_IOC_GROUP_ADD64: | 202 | case OCFS2_IOC_GROUP_ADD64: |
198 | case OCFS2_IOC_REFLINK: | ||
199 | break; | 203 | break; |
204 | case OCFS2_IOC_REFLINK: | ||
205 | if (copy_from_user(&args, (struct reflink_arguments *)arg, | ||
206 | sizeof(args))) | ||
207 | return -EFAULT; | ||
208 | preserve = (args.preserve != 0); | ||
209 | |||
210 | return ocfs2_reflink_ioctl(inode, compat_ptr(args.old_path), | ||
211 | compat_ptr(args.new_path), preserve); | ||
200 | default: | 212 | default: |
201 | return -ENOIOCTLCMD; | 213 | return -ENOIOCTLCMD; |
202 | } | 214 | } |
diff --git a/fs/ocfs2/journal.c b/fs/ocfs2/journal.c index bf34c491ae96..9336c60e3a36 100644 --- a/fs/ocfs2/journal.c +++ b/fs/ocfs2/journal.c | |||
@@ -2034,7 +2034,7 @@ static int ocfs2_queue_orphans(struct ocfs2_super *osb, | |||
2034 | status = -ENOENT; | 2034 | status = -ENOENT; |
2035 | mlog_errno(status); | 2035 | mlog_errno(status); |
2036 | return status; | 2036 | return status; |
2037 | } | 2037 | } |
2038 | 2038 | ||
2039 | mutex_lock(&orphan_dir_inode->i_mutex); | 2039 | mutex_lock(&orphan_dir_inode->i_mutex); |
2040 | status = ocfs2_inode_lock(orphan_dir_inode, NULL, 0); | 2040 | status = ocfs2_inode_lock(orphan_dir_inode, NULL, 0); |
diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h index 9362eea7424b..740f448041e2 100644 --- a/fs/ocfs2/ocfs2.h +++ b/fs/ocfs2/ocfs2.h | |||
@@ -136,6 +136,10 @@ enum ocfs2_unlock_action { | |||
136 | #define OCFS2_LOCK_PENDING (0x00000400) /* This lockres is pending a | 136 | #define OCFS2_LOCK_PENDING (0x00000400) /* This lockres is pending a |
137 | call to dlm_lock. Only | 137 | call to dlm_lock. Only |
138 | exists with BUSY set. */ | 138 | exists with BUSY set. */ |
139 | #define OCFS2_LOCK_UPCONVERT_FINISHING (0x00000800) /* blocks the dc thread | ||
140 | * from downconverting | ||
141 | * before the upconvert | ||
142 | * has completed */ | ||
139 | 143 | ||
140 | struct ocfs2_lock_res_ops; | 144 | struct ocfs2_lock_res_ops; |
141 | 145 | ||
diff --git a/fs/ocfs2/ocfs2_fs.h b/fs/ocfs2/ocfs2_fs.h index 1a1a679e51b5..7638a38c32bc 100644 --- a/fs/ocfs2/ocfs2_fs.h +++ b/fs/ocfs2/ocfs2_fs.h | |||
@@ -1417,9 +1417,16 @@ static inline int ocfs2_fast_symlink_chars(int blocksize) | |||
1417 | return blocksize - offsetof(struct ocfs2_dinode, id2.i_symlink); | 1417 | return blocksize - offsetof(struct ocfs2_dinode, id2.i_symlink); |
1418 | } | 1418 | } |
1419 | 1419 | ||
1420 | static inline int ocfs2_max_inline_data(int blocksize) | 1420 | static inline int ocfs2_max_inline_data_with_xattr(int blocksize, |
1421 | struct ocfs2_dinode *di) | ||
1421 | { | 1422 | { |
1422 | return blocksize - offsetof(struct ocfs2_dinode, id2.i_data.id_data); | 1423 | if (di && (di->i_dyn_features & OCFS2_INLINE_XATTR_FL)) |
1424 | return blocksize - | ||
1425 | offsetof(struct ocfs2_dinode, id2.i_data.id_data) - | ||
1426 | di->i_xattr_inline_size; | ||
1427 | else | ||
1428 | return blocksize - | ||
1429 | offsetof(struct ocfs2_dinode, id2.i_data.id_data); | ||
1423 | } | 1430 | } |
1424 | 1431 | ||
1425 | static inline int ocfs2_extent_recs_per_inode(int blocksize) | 1432 | static inline int ocfs2_extent_recs_per_inode(int blocksize) |
diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c index 74db2be75dd6..8ae65c9c020c 100644 --- a/fs/ocfs2/refcounttree.c +++ b/fs/ocfs2/refcounttree.c | |||
@@ -2945,7 +2945,7 @@ static int ocfs2_duplicate_clusters_by_page(handle_t *handle, | |||
2945 | 2945 | ||
2946 | while (offset < end) { | 2946 | while (offset < end) { |
2947 | page_index = offset >> PAGE_CACHE_SHIFT; | 2947 | page_index = offset >> PAGE_CACHE_SHIFT; |
2948 | map_end = (page_index + 1) << PAGE_CACHE_SHIFT; | 2948 | map_end = ((loff_t)page_index + 1) << PAGE_CACHE_SHIFT; |
2949 | if (map_end > end) | 2949 | if (map_end > end) |
2950 | map_end = end; | 2950 | map_end = end; |
2951 | 2951 | ||
@@ -2957,8 +2957,12 @@ static int ocfs2_duplicate_clusters_by_page(handle_t *handle, | |||
2957 | 2957 | ||
2958 | page = grab_cache_page(mapping, page_index); | 2958 | page = grab_cache_page(mapping, page_index); |
2959 | 2959 | ||
2960 | /* This page can't be dirtied before we CoW it out. */ | 2960 | /* |
2961 | BUG_ON(PageDirty(page)); | 2961 | * In case PAGE_CACHE_SIZE <= CLUSTER_SIZE, This page |
2962 | * can't be dirtied before we CoW it out. | ||
2963 | */ | ||
2964 | if (PAGE_CACHE_SIZE <= OCFS2_SB(sb)->s_clustersize) | ||
2965 | BUG_ON(PageDirty(page)); | ||
2962 | 2966 | ||
2963 | if (!PageUptodate(page)) { | 2967 | if (!PageUptodate(page)) { |
2964 | ret = block_read_full_page(page, ocfs2_get_block); | 2968 | ret = block_read_full_page(page, ocfs2_get_block); |
@@ -3170,7 +3174,7 @@ static int ocfs2_cow_sync_writeback(struct super_block *sb, | |||
3170 | 3174 | ||
3171 | while (offset < end) { | 3175 | while (offset < end) { |
3172 | page_index = offset >> PAGE_CACHE_SHIFT; | 3176 | page_index = offset >> PAGE_CACHE_SHIFT; |
3173 | map_end = (page_index + 1) << PAGE_CACHE_SHIFT; | 3177 | map_end = ((loff_t)page_index + 1) << PAGE_CACHE_SHIFT; |
3174 | if (map_end > end) | 3178 | if (map_end > end) |
3175 | map_end = end; | 3179 | map_end = end; |
3176 | 3180 | ||
diff --git a/fs/ocfs2/stack_o2cb.c b/fs/ocfs2/stack_o2cb.c index e49c41050264..3038c92af493 100644 --- a/fs/ocfs2/stack_o2cb.c +++ b/fs/ocfs2/stack_o2cb.c | |||
@@ -277,7 +277,7 @@ static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn) | |||
277 | u32 dlm_key; | 277 | u32 dlm_key; |
278 | struct dlm_ctxt *dlm; | 278 | struct dlm_ctxt *dlm; |
279 | struct o2dlm_private *priv; | 279 | struct o2dlm_private *priv; |
280 | struct dlm_protocol_version dlm_version; | 280 | struct dlm_protocol_version fs_version; |
281 | 281 | ||
282 | BUG_ON(conn == NULL); | 282 | BUG_ON(conn == NULL); |
283 | BUG_ON(o2cb_stack.sp_proto == NULL); | 283 | BUG_ON(o2cb_stack.sp_proto == NULL); |
@@ -304,18 +304,18 @@ static int o2cb_cluster_connect(struct ocfs2_cluster_connection *conn) | |||
304 | /* used by the dlm code to make message headers unique, each | 304 | /* used by the dlm code to make message headers unique, each |
305 | * node in this domain must agree on this. */ | 305 | * node in this domain must agree on this. */ |
306 | dlm_key = crc32_le(0, conn->cc_name, conn->cc_namelen); | 306 | dlm_key = crc32_le(0, conn->cc_name, conn->cc_namelen); |
307 | dlm_version.pv_major = conn->cc_version.pv_major; | 307 | fs_version.pv_major = conn->cc_version.pv_major; |
308 | dlm_version.pv_minor = conn->cc_version.pv_minor; | 308 | fs_version.pv_minor = conn->cc_version.pv_minor; |
309 | 309 | ||
310 | dlm = dlm_register_domain(conn->cc_name, dlm_key, &dlm_version); | 310 | dlm = dlm_register_domain(conn->cc_name, dlm_key, &fs_version); |
311 | if (IS_ERR(dlm)) { | 311 | if (IS_ERR(dlm)) { |
312 | rc = PTR_ERR(dlm); | 312 | rc = PTR_ERR(dlm); |
313 | mlog_errno(rc); | 313 | mlog_errno(rc); |
314 | goto out_free; | 314 | goto out_free; |
315 | } | 315 | } |
316 | 316 | ||
317 | conn->cc_version.pv_major = dlm_version.pv_major; | 317 | conn->cc_version.pv_major = fs_version.pv_major; |
318 | conn->cc_version.pv_minor = dlm_version.pv_minor; | 318 | conn->cc_version.pv_minor = fs_version.pv_minor; |
319 | conn->cc_lockspace = dlm; | 319 | conn->cc_lockspace = dlm; |
320 | 320 | ||
321 | dlm_register_eviction_cb(dlm, &priv->op_eviction_cb); | 321 | dlm_register_eviction_cb(dlm, &priv->op_eviction_cb); |
diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c index 26069917a9f5..755cd49a5ef3 100644 --- a/fs/ocfs2/super.c +++ b/fs/ocfs2/super.c | |||
@@ -1062,7 +1062,7 @@ static int ocfs2_fill_super(struct super_block *sb, void *data, int silent) | |||
1062 | "file system, but write access is " | 1062 | "file system, but write access is " |
1063 | "unavailable.\n"); | 1063 | "unavailable.\n"); |
1064 | else | 1064 | else |
1065 | mlog_errno(status); | 1065 | mlog_errno(status); |
1066 | goto read_super_error; | 1066 | goto read_super_error; |
1067 | } | 1067 | } |
1068 | 1068 | ||
diff --git a/fs/ocfs2/symlink.c b/fs/ocfs2/symlink.c index 49b133ccbf11..32499d213fc4 100644 --- a/fs/ocfs2/symlink.c +++ b/fs/ocfs2/symlink.c | |||
@@ -137,20 +137,20 @@ static void *ocfs2_fast_follow_link(struct dentry *dentry, | |||
137 | } | 137 | } |
138 | 138 | ||
139 | memcpy(link, target, len); | 139 | memcpy(link, target, len); |
140 | nd_set_link(nd, link); | ||
141 | 140 | ||
142 | bail: | 141 | bail: |
142 | nd_set_link(nd, status ? ERR_PTR(status) : link); | ||
143 | brelse(bh); | 143 | brelse(bh); |
144 | 144 | ||
145 | mlog_exit(status); | 145 | mlog_exit(status); |
146 | return status ? ERR_PTR(status) : link; | 146 | return NULL; |
147 | } | 147 | } |
148 | 148 | ||
149 | static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) | 149 | static void ocfs2_fast_put_link(struct dentry *dentry, struct nameidata *nd, void *cookie) |
150 | { | 150 | { |
151 | char *link = cookie; | 151 | char *link = nd_get_link(nd); |
152 | 152 | if (!IS_ERR(link)) | |
153 | kfree(link); | 153 | kfree(link); |
154 | } | 154 | } |
155 | 155 | ||
156 | const struct inode_operations ocfs2_symlink_inode_operations = { | 156 | const struct inode_operations ocfs2_symlink_inode_operations = { |
diff --git a/fs/ocfs2/uptodate.c b/fs/ocfs2/uptodate.c index c61369342a27..a0a120e82b97 100644 --- a/fs/ocfs2/uptodate.c +++ b/fs/ocfs2/uptodate.c | |||
@@ -267,8 +267,8 @@ static int ocfs2_buffer_cached(struct ocfs2_caching_info *ci, | |||
267 | } | 267 | } |
268 | 268 | ||
269 | /* Warning: even if it returns true, this does *not* guarantee that | 269 | /* Warning: even if it returns true, this does *not* guarantee that |
270 | * the block is stored in our inode metadata cache. | 270 | * the block is stored in our inode metadata cache. |
271 | * | 271 | * |
272 | * This can be called under lock_buffer() | 272 | * This can be called under lock_buffer() |
273 | */ | 273 | */ |
274 | int ocfs2_buffer_uptodate(struct ocfs2_caching_info *ci, | 274 | int ocfs2_buffer_uptodate(struct ocfs2_caching_info *ci, |
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c index 9087b10209e6..2df0f5c7c60b 100644 --- a/fs/reiserfs/inode.c +++ b/fs/reiserfs/inode.c | |||
@@ -1497,9 +1497,11 @@ struct inode *reiserfs_iget(struct super_block *s, const struct cpu_key *key) | |||
1497 | 1497 | ||
1498 | args.objectid = key->on_disk_key.k_objectid; | 1498 | args.objectid = key->on_disk_key.k_objectid; |
1499 | args.dirid = key->on_disk_key.k_dir_id; | 1499 | args.dirid = key->on_disk_key.k_dir_id; |
1500 | reiserfs_write_unlock(s); | ||
1500 | inode = iget5_locked(s, key->on_disk_key.k_objectid, | 1501 | inode = iget5_locked(s, key->on_disk_key.k_objectid, |
1501 | reiserfs_find_actor, reiserfs_init_locked_inode, | 1502 | reiserfs_find_actor, reiserfs_init_locked_inode, |
1502 | (void *)(&args)); | 1503 | (void *)(&args)); |
1504 | reiserfs_write_lock(s); | ||
1503 | if (!inode) | 1505 | if (!inode) |
1504 | return ERR_PTR(-ENOMEM); | 1506 | return ERR_PTR(-ENOMEM); |
1505 | 1507 | ||
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c index 83ac4d3b3cb0..ba98546fabbd 100644 --- a/fs/reiserfs/journal.c +++ b/fs/reiserfs/journal.c | |||
@@ -2913,7 +2913,9 @@ int journal_init(struct super_block *sb, const char *j_dev_name, | |||
2913 | journal->j_mount_id = 10; | 2913 | journal->j_mount_id = 10; |
2914 | journal->j_state = 0; | 2914 | journal->j_state = 0; |
2915 | atomic_set(&(journal->j_jlock), 0); | 2915 | atomic_set(&(journal->j_jlock), 0); |
2916 | reiserfs_write_unlock(sb); | ||
2916 | journal->j_cnode_free_list = allocate_cnodes(num_cnodes); | 2917 | journal->j_cnode_free_list = allocate_cnodes(num_cnodes); |
2918 | reiserfs_write_lock(sb); | ||
2917 | journal->j_cnode_free_orig = journal->j_cnode_free_list; | 2919 | journal->j_cnode_free_orig = journal->j_cnode_free_list; |
2918 | journal->j_cnode_free = journal->j_cnode_free_list ? num_cnodes : 0; | 2920 | journal->j_cnode_free = journal->j_cnode_free_list ? num_cnodes : 0; |
2919 | journal->j_cnode_used = 0; | 2921 | journal->j_cnode_used = 0; |
diff --git a/fs/romfs/super.c b/fs/romfs/super.c index c117fa80d1e9..42d213546894 100644 --- a/fs/romfs/super.c +++ b/fs/romfs/super.c | |||
@@ -544,6 +544,7 @@ error: | |||
544 | error_rsb_inval: | 544 | error_rsb_inval: |
545 | ret = -EINVAL; | 545 | ret = -EINVAL; |
546 | error_rsb: | 546 | error_rsb: |
547 | kfree(rsb); | ||
547 | return ret; | 548 | return ret; |
548 | } | 549 | } |
549 | 550 | ||
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c index 220b758523ae..6a06a1d1ea7b 100644 --- a/fs/sysfs/inode.c +++ b/fs/sysfs/inode.c | |||
@@ -81,24 +81,23 @@ int sysfs_sd_setattr(struct sysfs_dirent *sd, struct iattr * iattr) | |||
81 | if (!sd_attrs) | 81 | if (!sd_attrs) |
82 | return -ENOMEM; | 82 | return -ENOMEM; |
83 | sd->s_iattr = sd_attrs; | 83 | sd->s_iattr = sd_attrs; |
84 | } else { | 84 | } |
85 | /* attributes were changed at least once in past */ | 85 | /* attributes were changed at least once in past */ |
86 | iattrs = &sd_attrs->ia_iattr; | 86 | iattrs = &sd_attrs->ia_iattr; |
87 | 87 | ||
88 | if (ia_valid & ATTR_UID) | 88 | if (ia_valid & ATTR_UID) |
89 | iattrs->ia_uid = iattr->ia_uid; | 89 | iattrs->ia_uid = iattr->ia_uid; |
90 | if (ia_valid & ATTR_GID) | 90 | if (ia_valid & ATTR_GID) |
91 | iattrs->ia_gid = iattr->ia_gid; | 91 | iattrs->ia_gid = iattr->ia_gid; |
92 | if (ia_valid & ATTR_ATIME) | 92 | if (ia_valid & ATTR_ATIME) |
93 | iattrs->ia_atime = iattr->ia_atime; | 93 | iattrs->ia_atime = iattr->ia_atime; |
94 | if (ia_valid & ATTR_MTIME) | 94 | if (ia_valid & ATTR_MTIME) |
95 | iattrs->ia_mtime = iattr->ia_mtime; | 95 | iattrs->ia_mtime = iattr->ia_mtime; |
96 | if (ia_valid & ATTR_CTIME) | 96 | if (ia_valid & ATTR_CTIME) |
97 | iattrs->ia_ctime = iattr->ia_ctime; | 97 | iattrs->ia_ctime = iattr->ia_ctime; |
98 | if (ia_valid & ATTR_MODE) { | 98 | if (ia_valid & ATTR_MODE) { |
99 | umode_t mode = iattr->ia_mode; | 99 | umode_t mode = iattr->ia_mode; |
100 | iattrs->ia_mode = sd->s_mode = mode; | 100 | iattrs->ia_mode = sd->s_mode = mode; |
101 | } | ||
102 | } | 101 | } |
103 | return 0; | 102 | return 0; |
104 | } | 103 | } |
diff --git a/include/drm/drm_mode.h b/include/drm/drm_mode.h index bc4fdf27bd2e..c5ba1636613c 100644 --- a/include/drm/drm_mode.h +++ b/include/drm/drm_mode.h | |||
@@ -85,7 +85,7 @@ struct drm_mode_modeinfo { | |||
85 | __u16 hdisplay, hsync_start, hsync_end, htotal, hskew; | 85 | __u16 hdisplay, hsync_start, hsync_end, htotal, hskew; |
86 | __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan; | 86 | __u16 vdisplay, vsync_start, vsync_end, vtotal, vscan; |
87 | 87 | ||
88 | __u32 vrefresh; /* vertical refresh * 1000 */ | 88 | __u32 vrefresh; |
89 | 89 | ||
90 | __u32 flags; | 90 | __u32 flags; |
91 | __u32 type; | 91 | __u32 type; |
diff --git a/include/drm/nouveau_drm.h b/include/drm/nouveau_drm.h index 1e67c441ea82..f745948b61e4 100644 --- a/include/drm/nouveau_drm.h +++ b/include/drm/nouveau_drm.h | |||
@@ -77,6 +77,7 @@ struct drm_nouveau_gpuobj_free { | |||
77 | #define NOUVEAU_GETPARAM_PCI_PHYSICAL 10 | 77 | #define NOUVEAU_GETPARAM_PCI_PHYSICAL 10 |
78 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 | 78 | #define NOUVEAU_GETPARAM_CHIPSET_ID 11 |
79 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 | 79 | #define NOUVEAU_GETPARAM_VM_VRAM_BASE 12 |
80 | #define NOUVEAU_GETPARAM_GRAPH_UNITS 13 | ||
80 | struct drm_nouveau_getparam { | 81 | struct drm_nouveau_getparam { |
81 | uint64_t param; | 82 | uint64_t param; |
82 | uint64_t value; | 83 | uint64_t value; |
diff --git a/include/drm/ttm/ttm_bo_driver.h b/include/drm/ttm/ttm_bo_driver.h index ff7664e0c3cd..4c4e0f8375b3 100644 --- a/include/drm/ttm/ttm_bo_driver.h +++ b/include/drm/ttm/ttm_bo_driver.h | |||
@@ -353,6 +353,11 @@ struct ttm_bo_driver { | |||
353 | /* notify the driver we are taking a fault on this BO | 353 | /* notify the driver we are taking a fault on this BO |
354 | * and have reserved it */ | 354 | * and have reserved it */ |
355 | void (*fault_reserve_notify)(struct ttm_buffer_object *bo); | 355 | void (*fault_reserve_notify)(struct ttm_buffer_object *bo); |
356 | |||
357 | /** | ||
358 | * notify the driver that we're about to swap out this bo | ||
359 | */ | ||
360 | void (*swap_notify) (struct ttm_buffer_object *bo); | ||
356 | }; | 361 | }; |
357 | 362 | ||
358 | /** | 363 | /** |
diff --git a/include/drm/vmwgfx_drm.h b/include/drm/vmwgfx_drm.h index 2be7e1249b6f..c7645f480d12 100644 --- a/include/drm/vmwgfx_drm.h +++ b/include/drm/vmwgfx_drm.h | |||
@@ -68,7 +68,8 @@ | |||
68 | #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 | 68 | #define DRM_VMW_PARAM_NUM_FREE_STREAMS 1 |
69 | #define DRM_VMW_PARAM_3D 2 | 69 | #define DRM_VMW_PARAM_3D 2 |
70 | #define DRM_VMW_PARAM_FIFO_OFFSET 3 | 70 | #define DRM_VMW_PARAM_FIFO_OFFSET 3 |
71 | 71 | #define DRM_VMW_PARAM_HW_CAPS 4 | |
72 | #define DRM_VMW_PARAM_FIFO_CAPS 5 | ||
72 | 73 | ||
73 | /** | 74 | /** |
74 | * struct drm_vmw_getparam_arg | 75 | * struct drm_vmw_getparam_arg |
@@ -181,6 +182,8 @@ struct drm_vmw_context_arg { | |||
181 | * The size of the array should equal the total number of mipmap levels. | 182 | * The size of the array should equal the total number of mipmap levels. |
182 | * @shareable: Boolean whether other clients (as identified by file descriptors) | 183 | * @shareable: Boolean whether other clients (as identified by file descriptors) |
183 | * may reference this surface. | 184 | * may reference this surface. |
185 | * @scanout: Boolean whether the surface is intended to be used as a | ||
186 | * scanout. | ||
184 | * | 187 | * |
185 | * Input data to the DRM_VMW_CREATE_SURFACE Ioctl. | 188 | * Input data to the DRM_VMW_CREATE_SURFACE Ioctl. |
186 | * Output data from the DRM_VMW_REF_SURFACE Ioctl. | 189 | * Output data from the DRM_VMW_REF_SURFACE Ioctl. |
@@ -192,7 +195,7 @@ struct drm_vmw_surface_create_req { | |||
192 | uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES]; | 195 | uint32_t mip_levels[DRM_VMW_MAX_SURFACE_FACES]; |
193 | uint64_t size_addr; | 196 | uint64_t size_addr; |
194 | int32_t shareable; | 197 | int32_t shareable; |
195 | uint32_t pad64; | 198 | int32_t scanout; |
196 | }; | 199 | }; |
197 | 200 | ||
198 | /** | 201 | /** |
@@ -295,17 +298,28 @@ union drm_vmw_surface_reference_arg { | |||
295 | * | 298 | * |
296 | * @commands: User-space address of a command buffer cast to an uint64_t. | 299 | * @commands: User-space address of a command buffer cast to an uint64_t. |
297 | * @command-size: Size in bytes of the command buffer. | 300 | * @command-size: Size in bytes of the command buffer. |
301 | * @throttle-us: Sleep until software is less than @throttle_us | ||
302 | * microseconds ahead of hardware. The driver may round this value | ||
303 | * to the nearest kernel tick. | ||
298 | * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an | 304 | * @fence_rep: User-space address of a struct drm_vmw_fence_rep cast to an |
299 | * uint64_t. | 305 | * uint64_t. |
306 | * @version: Allows expanding the execbuf ioctl parameters without breaking | ||
307 | * backwards compatibility, since user-space will always tell the kernel | ||
308 | * which version it uses. | ||
309 | * @flags: Execbuf flags. None currently. | ||
300 | * | 310 | * |
301 | * Argument to the DRM_VMW_EXECBUF Ioctl. | 311 | * Argument to the DRM_VMW_EXECBUF Ioctl. |
302 | */ | 312 | */ |
303 | 313 | ||
314 | #define DRM_VMW_EXECBUF_VERSION 0 | ||
315 | |||
304 | struct drm_vmw_execbuf_arg { | 316 | struct drm_vmw_execbuf_arg { |
305 | uint64_t commands; | 317 | uint64_t commands; |
306 | uint32_t command_size; | 318 | uint32_t command_size; |
307 | uint32_t pad64; | 319 | uint32_t throttle_us; |
308 | uint64_t fence_rep; | 320 | uint64_t fence_rep; |
321 | uint32_t version; | ||
322 | uint32_t flags; | ||
309 | }; | 323 | }; |
310 | 324 | ||
311 | /** | 325 | /** |
diff --git a/include/linux/ata.h b/include/linux/ata.h index 38a6948ce0c2..20f31567ccee 100644 --- a/include/linux/ata.h +++ b/include/linux/ata.h | |||
@@ -647,9 +647,9 @@ static inline int ata_id_has_large_logical_sectors(const u16 *id) | |||
647 | return id[ATA_ID_SECTOR_SIZE] & (1 << 13); | 647 | return id[ATA_ID_SECTOR_SIZE] & (1 << 13); |
648 | } | 648 | } |
649 | 649 | ||
650 | static inline u8 ata_id_logical_per_physical_sectors(const u16 *id) | 650 | static inline u16 ata_id_logical_per_physical_sectors(const u16 *id) |
651 | { | 651 | { |
652 | return id[ATA_ID_SECTOR_SIZE] & 0xf; | 652 | return 1 << (id[ATA_ID_SECTOR_SIZE] & 0xf); |
653 | } | 653 | } |
654 | 654 | ||
655 | static inline int ata_id_has_lba48(const u16 *id) | 655 | static inline int ata_id_has_lba48(const u16 *id) |
diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index cd4349bdc34e..89c6249fc561 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h | |||
@@ -109,6 +109,7 @@ extern int prepare_binprm(struct linux_binprm *); | |||
109 | extern int __must_check remove_arg_zero(struct linux_binprm *); | 109 | extern int __must_check remove_arg_zero(struct linux_binprm *); |
110 | extern int search_binary_handler(struct linux_binprm *,struct pt_regs *); | 110 | extern int search_binary_handler(struct linux_binprm *,struct pt_regs *); |
111 | extern int flush_old_exec(struct linux_binprm * bprm); | 111 | extern int flush_old_exec(struct linux_binprm * bprm); |
112 | extern void setup_new_exec(struct linux_binprm * bprm); | ||
112 | 113 | ||
113 | extern int suid_dumpable; | 114 | extern int suid_dumpable; |
114 | #define SUID_DUMP_DISABLE 0 /* No setuid dumping */ | 115 | #define SUID_DUMP_DISABLE 0 /* No setuid dumping */ |
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 5be3dab4a695..188fcae10a99 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -15,6 +15,7 @@ | |||
15 | # define __acquire(x) __context__(x,1) | 15 | # define __acquire(x) __context__(x,1) |
16 | # define __release(x) __context__(x,-1) | 16 | # define __release(x) __context__(x,-1) |
17 | # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) | 17 | # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0) |
18 | # define __percpu __attribute__((noderef, address_space(3))) | ||
18 | extern void __chk_user_ptr(const volatile void __user *); | 19 | extern void __chk_user_ptr(const volatile void __user *); |
19 | extern void __chk_io_ptr(const volatile void __iomem *); | 20 | extern void __chk_io_ptr(const volatile void __iomem *); |
20 | #else | 21 | #else |
@@ -32,6 +33,7 @@ extern void __chk_io_ptr(const volatile void __iomem *); | |||
32 | # define __acquire(x) (void)0 | 33 | # define __acquire(x) (void)0 |
33 | # define __release(x) (void)0 | 34 | # define __release(x) (void)0 |
34 | # define __cond_lock(x,c) (c) | 35 | # define __cond_lock(x,c) (c) |
36 | # define __percpu | ||
35 | #endif | 37 | #endif |
36 | 38 | ||
37 | #ifdef __KERNEL__ | 39 | #ifdef __KERNEL__ |
diff --git a/include/linux/eventfd.h b/include/linux/eventfd.h index 94dd10366a78..91bb4f27238c 100644 --- a/include/linux/eventfd.h +++ b/include/linux/eventfd.h | |||
@@ -10,6 +10,7 @@ | |||
10 | 10 | ||
11 | #include <linux/fcntl.h> | 11 | #include <linux/fcntl.h> |
12 | #include <linux/file.h> | 12 | #include <linux/file.h> |
13 | #include <linux/wait.h> | ||
13 | 14 | ||
14 | /* | 15 | /* |
15 | * CAREFUL: Check include/asm-generic/fcntl.h when defining | 16 | * CAREFUL: Check include/asm-generic/fcntl.h when defining |
@@ -34,6 +35,9 @@ struct file *eventfd_fget(int fd); | |||
34 | struct eventfd_ctx *eventfd_ctx_fdget(int fd); | 35 | struct eventfd_ctx *eventfd_ctx_fdget(int fd); |
35 | struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); | 36 | struct eventfd_ctx *eventfd_ctx_fileget(struct file *file); |
36 | int eventfd_signal(struct eventfd_ctx *ctx, int n); | 37 | int eventfd_signal(struct eventfd_ctx *ctx, int n); |
38 | ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait, __u64 *cnt); | ||
39 | int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, wait_queue_t *wait, | ||
40 | __u64 *cnt); | ||
37 | 41 | ||
38 | #else /* CONFIG_EVENTFD */ | 42 | #else /* CONFIG_EVENTFD */ |
39 | 43 | ||
@@ -61,6 +65,18 @@ static inline void eventfd_ctx_put(struct eventfd_ctx *ctx) | |||
61 | 65 | ||
62 | } | 66 | } |
63 | 67 | ||
68 | static inline ssize_t eventfd_ctx_read(struct eventfd_ctx *ctx, int no_wait, | ||
69 | __u64 *cnt) | ||
70 | { | ||
71 | return -ENOSYS; | ||
72 | } | ||
73 | |||
74 | static inline int eventfd_ctx_remove_wait_queue(struct eventfd_ctx *ctx, | ||
75 | wait_queue_t *wait, __u64 *cnt) | ||
76 | { | ||
77 | return -ENOSYS; | ||
78 | } | ||
79 | |||
64 | #endif | 80 | #endif |
65 | 81 | ||
66 | #endif /* _LINUX_EVENTFD_H */ | 82 | #endif /* _LINUX_EVENTFD_H */ |
diff --git a/include/linux/firewire-cdev.h b/include/linux/firewire-cdev.h index 1f716d9f714b..520ecf86cbb3 100644 --- a/include/linux/firewire-cdev.h +++ b/include/linux/firewire-cdev.h | |||
@@ -380,7 +380,7 @@ struct fw_cdev_initiate_bus_reset { | |||
380 | * @immediate: If non-zero, immediate key to insert before pointer | 380 | * @immediate: If non-zero, immediate key to insert before pointer |
381 | * @key: Upper 8 bits of root directory pointer | 381 | * @key: Upper 8 bits of root directory pointer |
382 | * @data: Userspace pointer to contents of descriptor block | 382 | * @data: Userspace pointer to contents of descriptor block |
383 | * @length: Length of descriptor block data, in bytes | 383 | * @length: Length of descriptor block data, in quadlets |
384 | * @handle: Handle to the descriptor, written by the kernel | 384 | * @handle: Handle to the descriptor, written by the kernel |
385 | * | 385 | * |
386 | * Add a descriptor block and optionally a preceding immediate key to the local | 386 | * Add a descriptor block and optionally a preceding immediate key to the local |
@@ -394,6 +394,8 @@ struct fw_cdev_initiate_bus_reset { | |||
394 | * If not 0, the @immediate field specifies an immediate key which will be | 394 | * If not 0, the @immediate field specifies an immediate key which will be |
395 | * inserted before the root directory pointer. | 395 | * inserted before the root directory pointer. |
396 | * | 396 | * |
397 | * @immediate, @key, and @data array elements are CPU-endian quadlets. | ||
398 | * | ||
397 | * If successful, the kernel adds the descriptor and writes back a handle to the | 399 | * If successful, the kernel adds the descriptor and writes back a handle to the |
398 | * kernel-side object to be used for later removal of the descriptor block and | 400 | * kernel-side object to be used for later removal of the descriptor block and |
399 | * immediate key. | 401 | * immediate key. |
diff --git a/include/linux/hw_breakpoint.h b/include/linux/hw_breakpoint.h index 41235c93e4e9..5977b724f7c6 100644 --- a/include/linux/hw_breakpoint.h +++ b/include/linux/hw_breakpoint.h | |||
@@ -44,7 +44,7 @@ static inline int hw_breakpoint_type(struct perf_event *bp) | |||
44 | return bp->attr.bp_type; | 44 | return bp->attr.bp_type; |
45 | } | 45 | } |
46 | 46 | ||
47 | static inline int hw_breakpoint_len(struct perf_event *bp) | 47 | static inline unsigned long hw_breakpoint_len(struct perf_event *bp) |
48 | { | 48 | { |
49 | return bp->attr.bp_len; | 49 | return bp->attr.bp_len; |
50 | } | 50 | } |
@@ -75,6 +75,8 @@ extern int __register_perf_hw_breakpoint(struct perf_event *bp); | |||
75 | extern void unregister_hw_breakpoint(struct perf_event *bp); | 75 | extern void unregister_hw_breakpoint(struct perf_event *bp); |
76 | extern void unregister_wide_hw_breakpoint(struct perf_event **cpu_events); | 76 | extern void unregister_wide_hw_breakpoint(struct perf_event **cpu_events); |
77 | 77 | ||
78 | extern int dbg_reserve_bp_slot(struct perf_event *bp); | ||
79 | extern int dbg_release_bp_slot(struct perf_event *bp); | ||
78 | extern int reserve_bp_slot(struct perf_event *bp); | 80 | extern int reserve_bp_slot(struct perf_event *bp); |
79 | extern void release_bp_slot(struct perf_event *bp); | 81 | extern void release_bp_slot(struct perf_event *bp); |
80 | 82 | ||
diff --git a/include/linux/ima.h b/include/linux/ima.h index 99dc6d5cf7e5..975837e7d6c0 100644 --- a/include/linux/ima.h +++ b/include/linux/ima.h | |||
@@ -17,7 +17,7 @@ struct linux_binprm; | |||
17 | extern int ima_bprm_check(struct linux_binprm *bprm); | 17 | extern int ima_bprm_check(struct linux_binprm *bprm); |
18 | extern int ima_inode_alloc(struct inode *inode); | 18 | extern int ima_inode_alloc(struct inode *inode); |
19 | extern void ima_inode_free(struct inode *inode); | 19 | extern void ima_inode_free(struct inode *inode); |
20 | extern int ima_path_check(struct path *path, int mask); | 20 | extern int ima_file_check(struct file *file, int mask); |
21 | extern void ima_file_free(struct file *file); | 21 | extern void ima_file_free(struct file *file); |
22 | extern int ima_file_mmap(struct file *file, unsigned long prot); | 22 | extern int ima_file_mmap(struct file *file, unsigned long prot); |
23 | extern void ima_counts_get(struct file *file); | 23 | extern void ima_counts_get(struct file *file); |
@@ -38,7 +38,7 @@ static inline void ima_inode_free(struct inode *inode) | |||
38 | return; | 38 | return; |
39 | } | 39 | } |
40 | 40 | ||
41 | static inline int ima_path_check(struct path *path, int mask) | 41 | static inline int ima_file_check(struct file *file, int mask) |
42 | { | 42 | { |
43 | return 0; | 43 | return 0; |
44 | } | 44 | } |
diff --git a/include/linux/input.h b/include/linux/input.h index 7be8a6537b57..735ceaf1bc2d 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -660,6 +660,7 @@ struct input_absinfo { | |||
660 | #define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ | 660 | #define ABS_MT_TOOL_TYPE 0x37 /* Type of touching device */ |
661 | #define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ | 661 | #define ABS_MT_BLOB_ID 0x38 /* Group a set of packets as a blob */ |
662 | #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ | 662 | #define ABS_MT_TRACKING_ID 0x39 /* Unique ID of initiated contact */ |
663 | #define ABS_MT_PRESSURE 0x3a /* Pressure on contact area */ | ||
663 | 664 | ||
664 | #define ABS_MAX 0x3f | 665 | #define ABS_MAX 0x3f |
665 | #define ABS_CNT (ABS_MAX+1) | 666 | #define ABS_CNT (ABS_MAX+1) |
diff --git a/include/linux/kfifo.h b/include/linux/kfifo.h index 6f6c5f300af6..bc0fc795bd35 100644 --- a/include/linux/kfifo.h +++ b/include/linux/kfifo.h | |||
@@ -124,7 +124,7 @@ extern __must_check unsigned int kfifo_out_peek(struct kfifo *fifo, | |||
124 | */ | 124 | */ |
125 | static inline bool kfifo_initialized(struct kfifo *fifo) | 125 | static inline bool kfifo_initialized(struct kfifo *fifo) |
126 | { | 126 | { |
127 | return fifo->buffer != 0; | 127 | return fifo->buffer != NULL; |
128 | } | 128 | } |
129 | 129 | ||
130 | /** | 130 | /** |
diff --git a/include/linux/kmsg_dump.h b/include/linux/kmsg_dump.h index e32aa268efac..24b44145a886 100644 --- a/include/linux/kmsg_dump.h +++ b/include/linux/kmsg_dump.h | |||
@@ -17,6 +17,7 @@ | |||
17 | enum kmsg_dump_reason { | 17 | enum kmsg_dump_reason { |
18 | KMSG_DUMP_OOPS, | 18 | KMSG_DUMP_OOPS, |
19 | KMSG_DUMP_PANIC, | 19 | KMSG_DUMP_PANIC, |
20 | KMSG_DUMP_KEXEC, | ||
20 | }; | 21 | }; |
21 | 22 | ||
22 | /** | 23 | /** |
diff --git a/include/linux/mtd/pismo.h b/include/linux/mtd/pismo.h new file mode 100644 index 000000000000..8dfb7e1421c5 --- /dev/null +++ b/include/linux/mtd/pismo.h | |||
@@ -0,0 +1,17 @@ | |||
1 | /* | ||
2 | * PISMO memory driver - http://www.pismoworld.org/ | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License. | ||
7 | */ | ||
8 | #ifndef __LINUX_MTD_PISMO_H | ||
9 | #define __LINUX_MTD_PISMO_H | ||
10 | |||
11 | struct pismo_pdata { | ||
12 | void (*set_vpp)(void *, int); | ||
13 | void *vpp_data; | ||
14 | phys_addr_t cs_addrs[5]; | ||
15 | }; | ||
16 | |||
17 | #endif | ||
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index ed5d7501e181..3c62ed408492 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h | |||
@@ -253,6 +253,8 @@ extern struct page * read_cache_page_async(struct address_space *mapping, | |||
253 | extern struct page * read_cache_page(struct address_space *mapping, | 253 | extern struct page * read_cache_page(struct address_space *mapping, |
254 | pgoff_t index, filler_t *filler, | 254 | pgoff_t index, filler_t *filler, |
255 | void *data); | 255 | void *data); |
256 | extern struct page * read_cache_page_gfp(struct address_space *mapping, | ||
257 | pgoff_t index, gfp_t gfp_mask); | ||
256 | extern int read_cache_pages(struct address_space *mapping, | 258 | extern int read_cache_pages(struct address_space *mapping, |
257 | struct list_head *pages, filler_t *filler, void *data); | 259 | struct list_head *pages, filler_t *filler, void *data); |
258 | 260 | ||
diff --git a/include/linux/pci.h b/include/linux/pci.h index 59a98e2ee2c6..e2575f86133a 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -759,6 +759,10 @@ pci_power_t pci_target_state(struct pci_dev *dev); | |||
759 | int pci_prepare_to_sleep(struct pci_dev *dev); | 759 | int pci_prepare_to_sleep(struct pci_dev *dev); |
760 | int pci_back_from_sleep(struct pci_dev *dev); | 760 | int pci_back_from_sleep(struct pci_dev *dev); |
761 | 761 | ||
762 | /* For use by arch with custom probe code */ | ||
763 | void set_pcie_port_type(struct pci_dev *pdev); | ||
764 | void set_pcie_hotplug_bridge(struct pci_dev *pdev); | ||
765 | |||
762 | /* Functions for PCI Hotplug drivers to use */ | 766 | /* Functions for PCI Hotplug drivers to use */ |
763 | int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap); | 767 | int pci_bus_find_capability(struct pci_bus *bus, unsigned int devfn, int cap); |
764 | #ifdef CONFIG_HOTPLUG | 768 | #ifdef CONFIG_HOTPLUG |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 8fa71874113f..a177698d95e2 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -211,11 +211,9 @@ struct perf_event_attr { | |||
211 | __u32 wakeup_watermark; /* bytes before wakeup */ | 211 | __u32 wakeup_watermark; /* bytes before wakeup */ |
212 | }; | 212 | }; |
213 | 213 | ||
214 | __u32 __reserved_2; | ||
215 | |||
216 | __u64 bp_addr; | ||
217 | __u32 bp_type; | 214 | __u32 bp_type; |
218 | __u32 bp_len; | 215 | __u64 bp_addr; |
216 | __u64 bp_len; | ||
219 | }; | 217 | }; |
220 | 218 | ||
221 | /* | 219 | /* |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 6f7bba93929b..78efe7c485ac 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -310,6 +310,7 @@ extern void sched_show_task(struct task_struct *p); | |||
310 | #ifdef CONFIG_DETECT_SOFTLOCKUP | 310 | #ifdef CONFIG_DETECT_SOFTLOCKUP |
311 | extern void softlockup_tick(void); | 311 | extern void softlockup_tick(void); |
312 | extern void touch_softlockup_watchdog(void); | 312 | extern void touch_softlockup_watchdog(void); |
313 | extern void touch_softlockup_watchdog_sync(void); | ||
313 | extern void touch_all_softlockup_watchdogs(void); | 314 | extern void touch_all_softlockup_watchdogs(void); |
314 | extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, | 315 | extern int proc_dosoftlockup_thresh(struct ctl_table *table, int write, |
315 | void __user *buffer, | 316 | void __user *buffer, |
@@ -323,6 +324,9 @@ static inline void softlockup_tick(void) | |||
323 | static inline void touch_softlockup_watchdog(void) | 324 | static inline void touch_softlockup_watchdog(void) |
324 | { | 325 | { |
325 | } | 326 | } |
327 | static inline void touch_softlockup_watchdog_sync(void) | ||
328 | { | ||
329 | } | ||
326 | static inline void touch_all_softlockup_watchdogs(void) | 330 | static inline void touch_all_softlockup_watchdogs(void) |
327 | { | 331 | { |
328 | } | 332 | } |
@@ -1369,7 +1373,7 @@ struct task_struct { | |||
1369 | char comm[TASK_COMM_LEN]; /* executable name excluding path | 1373 | char comm[TASK_COMM_LEN]; /* executable name excluding path |
1370 | - access with [gs]et_task_comm (which lock | 1374 | - access with [gs]et_task_comm (which lock |
1371 | it with task_lock()) | 1375 | it with task_lock()) |
1372 | - initialized normally by flush_old_exec */ | 1376 | - initialized normally by setup_new_exec */ |
1373 | /* file system info */ | 1377 | /* file system info */ |
1374 | int link_count, total_link_count; | 1378 | int link_count, total_link_count; |
1375 | #ifdef CONFIG_SYSVIPC | 1379 | #ifdef CONFIG_SYSVIPC |
diff --git a/include/linux/spi/ad7879.h b/include/linux/spi/ad7879.h index 4231104c9afa..6334cee1a3be 100644 --- a/include/linux/spi/ad7879.h +++ b/include/linux/spi/ad7879.h | |||
@@ -28,8 +28,12 @@ struct ad7879_platform_data { | |||
28 | * 1 = 4, 2 = 8, 3 = 16 (median > averaging) | 28 | * 1 = 4, 2 = 8, 3 = 16 (median > averaging) |
29 | */ | 29 | */ |
30 | u8 median; | 30 | u8 median; |
31 | /* 1 = AUX/VBAT/GPIO set to GPIO Output */ | 31 | /* 1 = AUX/VBAT/GPIO export GPIO to gpiolib |
32 | u8 gpio_output; | 32 | * requires CONFIG_GPIOLIB |
33 | /* Initial GPIO pin state (valid if gpio_output = 1) */ | 33 | */ |
34 | u8 gpio_default; | 34 | bool gpio_export; |
35 | /* identifies the first GPIO number handled by this chip; | ||
36 | * or, if negative, requests dynamic ID allocation. | ||
37 | */ | ||
38 | s32 gpio_base; | ||
35 | }; | 39 | }; |
diff --git a/include/scsi/scsi_bsg_fc.h b/include/scsi/scsi_bsg_fc.h index a4b233318179..91a4e4ff9a9b 100644 --- a/include/scsi/scsi_bsg_fc.h +++ b/include/scsi/scsi_bsg_fc.h | |||
@@ -292,7 +292,7 @@ struct fc_bsg_request { | |||
292 | struct fc_bsg_rport_els r_els; | 292 | struct fc_bsg_rport_els r_els; |
293 | struct fc_bsg_rport_ct r_ct; | 293 | struct fc_bsg_rport_ct r_ct; |
294 | } rqst_data; | 294 | } rqst_data; |
295 | }; | 295 | } __attribute__((packed)); |
296 | 296 | ||
297 | 297 | ||
298 | /* response (request sense data) structure of the sg_io_v4 */ | 298 | /* response (request sense data) structure of the sg_io_v4 */ |
diff --git a/init/main.c b/init/main.c index dac44a9356a5..4cb47a159f02 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -657,9 +657,9 @@ asmlinkage void __init start_kernel(void) | |||
657 | proc_caches_init(); | 657 | proc_caches_init(); |
658 | buffer_init(); | 658 | buffer_init(); |
659 | key_init(); | 659 | key_init(); |
660 | radix_tree_init(); | ||
660 | security_init(); | 661 | security_init(); |
661 | vfs_caches_init(totalram_pages); | 662 | vfs_caches_init(totalram_pages); |
662 | radix_tree_init(); | ||
663 | signals_init(); | 663 | signals_init(); |
664 | /* rootfs populating might need page-writeback */ | 664 | /* rootfs populating might need page-writeback */ |
665 | page_writeback_init(); | 665 | page_writeback_init(); |
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 1fbcc748044a..aa3bee566446 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
@@ -2936,14 +2936,17 @@ static long cgroup_create(struct cgroup *parent, struct dentry *dentry, | |||
2936 | 2936 | ||
2937 | for_each_subsys(root, ss) { | 2937 | for_each_subsys(root, ss) { |
2938 | struct cgroup_subsys_state *css = ss->create(ss, cgrp); | 2938 | struct cgroup_subsys_state *css = ss->create(ss, cgrp); |
2939 | |||
2939 | if (IS_ERR(css)) { | 2940 | if (IS_ERR(css)) { |
2940 | err = PTR_ERR(css); | 2941 | err = PTR_ERR(css); |
2941 | goto err_destroy; | 2942 | goto err_destroy; |
2942 | } | 2943 | } |
2943 | init_cgroup_css(css, ss, cgrp); | 2944 | init_cgroup_css(css, ss, cgrp); |
2944 | if (ss->use_id) | 2945 | if (ss->use_id) { |
2945 | if (alloc_css_id(ss, parent, cgrp)) | 2946 | err = alloc_css_id(ss, parent, cgrp); |
2947 | if (err) | ||
2946 | goto err_destroy; | 2948 | goto err_destroy; |
2949 | } | ||
2947 | /* At error, ->destroy() callback has to free assigned ID. */ | 2950 | /* At error, ->destroy() callback has to free assigned ID. */ |
2948 | } | 2951 | } |
2949 | 2952 | ||
diff --git a/kernel/cpu.c b/kernel/cpu.c index 1c8ddd6ee940..677f25376a38 100644 --- a/kernel/cpu.c +++ b/kernel/cpu.c | |||
@@ -151,13 +151,13 @@ static inline void check_for_tasks(int cpu) | |||
151 | 151 | ||
152 | write_lock_irq(&tasklist_lock); | 152 | write_lock_irq(&tasklist_lock); |
153 | for_each_process(p) { | 153 | for_each_process(p) { |
154 | if (task_cpu(p) == cpu && | 154 | if (task_cpu(p) == cpu && p->state == TASK_RUNNING && |
155 | (!cputime_eq(p->utime, cputime_zero) || | 155 | (!cputime_eq(p->utime, cputime_zero) || |
156 | !cputime_eq(p->stime, cputime_zero))) | 156 | !cputime_eq(p->stime, cputime_zero))) |
157 | printk(KERN_WARNING "Task %s (pid = %d) is on cpu %d\ | 157 | printk(KERN_WARNING "Task %s (pid = %d) is on cpu %d " |
158 | (state = %ld, flags = %x) \n", | 158 | "(state = %ld, flags = %x)\n", |
159 | p->comm, task_pid_nr(p), cpu, | 159 | p->comm, task_pid_nr(p), cpu, |
160 | p->state, p->flags); | 160 | p->state, p->flags); |
161 | } | 161 | } |
162 | write_unlock_irq(&tasklist_lock); | 162 | write_unlock_irq(&tasklist_lock); |
163 | } | 163 | } |
diff --git a/kernel/cred.c b/kernel/cred.c index dd76cfe5f5b0..1ed8ca18790c 100644 --- a/kernel/cred.c +++ b/kernel/cred.c | |||
@@ -224,7 +224,7 @@ struct cred *cred_alloc_blank(void) | |||
224 | #ifdef CONFIG_KEYS | 224 | #ifdef CONFIG_KEYS |
225 | new->tgcred = kzalloc(sizeof(*new->tgcred), GFP_KERNEL); | 225 | new->tgcred = kzalloc(sizeof(*new->tgcred), GFP_KERNEL); |
226 | if (!new->tgcred) { | 226 | if (!new->tgcred) { |
227 | kfree(new); | 227 | kmem_cache_free(cred_jar, new); |
228 | return NULL; | 228 | return NULL; |
229 | } | 229 | } |
230 | atomic_set(&new->tgcred->usage, 1); | 230 | atomic_set(&new->tgcred->usage, 1); |
diff --git a/kernel/fork.c b/kernel/fork.c index 5b2959b3ffc2..f88bd984df35 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1241,21 +1241,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1241 | /* Need tasklist lock for parent etc handling! */ | 1241 | /* Need tasklist lock for parent etc handling! */ |
1242 | write_lock_irq(&tasklist_lock); | 1242 | write_lock_irq(&tasklist_lock); |
1243 | 1243 | ||
1244 | /* | ||
1245 | * The task hasn't been attached yet, so its cpus_allowed mask will | ||
1246 | * not be changed, nor will its assigned CPU. | ||
1247 | * | ||
1248 | * The cpus_allowed mask of the parent may have changed after it was | ||
1249 | * copied first time - so re-copy it here, then check the child's CPU | ||
1250 | * to ensure it is on a valid CPU (and if not, just force it back to | ||
1251 | * parent's CPU). This avoids alot of nasty races. | ||
1252 | */ | ||
1253 | p->cpus_allowed = current->cpus_allowed; | ||
1254 | p->rt.nr_cpus_allowed = current->rt.nr_cpus_allowed; | ||
1255 | if (unlikely(!cpu_isset(task_cpu(p), p->cpus_allowed) || | ||
1256 | !cpu_online(task_cpu(p)))) | ||
1257 | set_task_cpu(p, smp_processor_id()); | ||
1258 | |||
1259 | /* CLONE_PARENT re-uses the old parent */ | 1244 | /* CLONE_PARENT re-uses the old parent */ |
1260 | if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) { | 1245 | if (clone_flags & (CLONE_PARENT|CLONE_THREAD)) { |
1261 | p->real_parent = current->real_parent; | 1246 | p->real_parent = current->real_parent; |
diff --git a/kernel/futex.c b/kernel/futex.c index d9b3a2228f9d..e7a35f1039e7 100644 --- a/kernel/futex.c +++ b/kernel/futex.c | |||
@@ -530,8 +530,25 @@ lookup_pi_state(u32 uval, struct futex_hash_bucket *hb, | |||
530 | return -EINVAL; | 530 | return -EINVAL; |
531 | 531 | ||
532 | WARN_ON(!atomic_read(&pi_state->refcount)); | 532 | WARN_ON(!atomic_read(&pi_state->refcount)); |
533 | WARN_ON(pid && pi_state->owner && | 533 | |
534 | pi_state->owner->pid != pid); | 534 | /* |
535 | * When pi_state->owner is NULL then the owner died | ||
536 | * and another waiter is on the fly. pi_state->owner | ||
537 | * is fixed up by the task which acquires | ||
538 | * pi_state->rt_mutex. | ||
539 | * | ||
540 | * We do not check for pid == 0 which can happen when | ||
541 | * the owner died and robust_list_exit() cleared the | ||
542 | * TID. | ||
543 | */ | ||
544 | if (pid && pi_state->owner) { | ||
545 | /* | ||
546 | * Bail out if user space manipulated the | ||
547 | * futex value. | ||
548 | */ | ||
549 | if (pid != task_pid_vnr(pi_state->owner)) | ||
550 | return -EINVAL; | ||
551 | } | ||
535 | 552 | ||
536 | atomic_inc(&pi_state->refcount); | 553 | atomic_inc(&pi_state->refcount); |
537 | *ps = pi_state; | 554 | *ps = pi_state; |
@@ -758,6 +775,13 @@ static int wake_futex_pi(u32 __user *uaddr, u32 uval, struct futex_q *this) | |||
758 | if (!pi_state) | 775 | if (!pi_state) |
759 | return -EINVAL; | 776 | return -EINVAL; |
760 | 777 | ||
778 | /* | ||
779 | * If current does not own the pi_state then the futex is | ||
780 | * inconsistent and user space fiddled with the futex value. | ||
781 | */ | ||
782 | if (pi_state->owner != current) | ||
783 | return -EINVAL; | ||
784 | |||
761 | raw_spin_lock(&pi_state->pi_mutex.wait_lock); | 785 | raw_spin_lock(&pi_state->pi_mutex.wait_lock); |
762 | new_owner = rt_mutex_next_owner(&pi_state->pi_mutex); | 786 | new_owner = rt_mutex_next_owner(&pi_state->pi_mutex); |
763 | 787 | ||
@@ -1971,7 +1995,7 @@ retry_private: | |||
1971 | /* Unqueue and drop the lock */ | 1995 | /* Unqueue and drop the lock */ |
1972 | unqueue_me_pi(&q); | 1996 | unqueue_me_pi(&q); |
1973 | 1997 | ||
1974 | goto out; | 1998 | goto out_put_key; |
1975 | 1999 | ||
1976 | out_unlock_put_key: | 2000 | out_unlock_put_key: |
1977 | queue_unlock(&q, hb); | 2001 | queue_unlock(&q, hb); |
diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c index 50dbd5999588..967e66143e11 100644 --- a/kernel/hw_breakpoint.c +++ b/kernel/hw_breakpoint.c | |||
@@ -243,38 +243,70 @@ static void toggle_bp_slot(struct perf_event *bp, bool enable) | |||
243 | * ((per_cpu(nr_bp_flexible, *) > 1) + max(per_cpu(nr_cpu_bp_pinned, *)) | 243 | * ((per_cpu(nr_bp_flexible, *) > 1) + max(per_cpu(nr_cpu_bp_pinned, *)) |
244 | * + max(per_cpu(nr_task_bp_pinned, *))) < HBP_NUM | 244 | * + max(per_cpu(nr_task_bp_pinned, *))) < HBP_NUM |
245 | */ | 245 | */ |
246 | int reserve_bp_slot(struct perf_event *bp) | 246 | static int __reserve_bp_slot(struct perf_event *bp) |
247 | { | 247 | { |
248 | struct bp_busy_slots slots = {0}; | 248 | struct bp_busy_slots slots = {0}; |
249 | int ret = 0; | ||
250 | |||
251 | mutex_lock(&nr_bp_mutex); | ||
252 | 249 | ||
253 | fetch_bp_busy_slots(&slots, bp); | 250 | fetch_bp_busy_slots(&slots, bp); |
254 | 251 | ||
255 | /* Flexible counters need to keep at least one slot */ | 252 | /* Flexible counters need to keep at least one slot */ |
256 | if (slots.pinned + (!!slots.flexible) == HBP_NUM) { | 253 | if (slots.pinned + (!!slots.flexible) == HBP_NUM) |
257 | ret = -ENOSPC; | 254 | return -ENOSPC; |
258 | goto end; | ||
259 | } | ||
260 | 255 | ||
261 | toggle_bp_slot(bp, true); | 256 | toggle_bp_slot(bp, true); |
262 | 257 | ||
263 | end: | 258 | return 0; |
259 | } | ||
260 | |||
261 | int reserve_bp_slot(struct perf_event *bp) | ||
262 | { | ||
263 | int ret; | ||
264 | |||
265 | mutex_lock(&nr_bp_mutex); | ||
266 | |||
267 | ret = __reserve_bp_slot(bp); | ||
268 | |||
264 | mutex_unlock(&nr_bp_mutex); | 269 | mutex_unlock(&nr_bp_mutex); |
265 | 270 | ||
266 | return ret; | 271 | return ret; |
267 | } | 272 | } |
268 | 273 | ||
274 | static void __release_bp_slot(struct perf_event *bp) | ||
275 | { | ||
276 | toggle_bp_slot(bp, false); | ||
277 | } | ||
278 | |||
269 | void release_bp_slot(struct perf_event *bp) | 279 | void release_bp_slot(struct perf_event *bp) |
270 | { | 280 | { |
271 | mutex_lock(&nr_bp_mutex); | 281 | mutex_lock(&nr_bp_mutex); |
272 | 282 | ||
273 | toggle_bp_slot(bp, false); | 283 | __release_bp_slot(bp); |
274 | 284 | ||
275 | mutex_unlock(&nr_bp_mutex); | 285 | mutex_unlock(&nr_bp_mutex); |
276 | } | 286 | } |
277 | 287 | ||
288 | /* | ||
289 | * Allow the kernel debugger to reserve breakpoint slots without | ||
290 | * taking a lock using the dbg_* variant of for the reserve and | ||
291 | * release breakpoint slots. | ||
292 | */ | ||
293 | int dbg_reserve_bp_slot(struct perf_event *bp) | ||
294 | { | ||
295 | if (mutex_is_locked(&nr_bp_mutex)) | ||
296 | return -1; | ||
297 | |||
298 | return __reserve_bp_slot(bp); | ||
299 | } | ||
300 | |||
301 | int dbg_release_bp_slot(struct perf_event *bp) | ||
302 | { | ||
303 | if (mutex_is_locked(&nr_bp_mutex)) | ||
304 | return -1; | ||
305 | |||
306 | __release_bp_slot(bp); | ||
307 | |||
308 | return 0; | ||
309 | } | ||
278 | 310 | ||
279 | int register_perf_hw_breakpoint(struct perf_event *bp) | 311 | int register_perf_hw_breakpoint(struct perf_event *bp) |
280 | { | 312 | { |
@@ -296,6 +328,10 @@ int register_perf_hw_breakpoint(struct perf_event *bp) | |||
296 | if (!bp->attr.disabled || !bp->overflow_handler) | 328 | if (!bp->attr.disabled || !bp->overflow_handler) |
297 | ret = arch_validate_hwbkpt_settings(bp, bp->ctx->task); | 329 | ret = arch_validate_hwbkpt_settings(bp, bp->ctx->task); |
298 | 330 | ||
331 | /* if arch_validate_hwbkpt_settings() fails then release bp slot */ | ||
332 | if (ret) | ||
333 | release_bp_slot(bp); | ||
334 | |||
299 | return ret; | 335 | return ret; |
300 | } | 336 | } |
301 | 337 | ||
@@ -324,8 +360,8 @@ EXPORT_SYMBOL_GPL(register_user_hw_breakpoint); | |||
324 | int modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *attr) | 360 | int modify_user_hw_breakpoint(struct perf_event *bp, struct perf_event_attr *attr) |
325 | { | 361 | { |
326 | u64 old_addr = bp->attr.bp_addr; | 362 | u64 old_addr = bp->attr.bp_addr; |
363 | u64 old_len = bp->attr.bp_len; | ||
327 | int old_type = bp->attr.bp_type; | 364 | int old_type = bp->attr.bp_type; |
328 | int old_len = bp->attr.bp_len; | ||
329 | int err = 0; | 365 | int err = 0; |
330 | 366 | ||
331 | perf_event_disable(bp); | 367 | perf_event_disable(bp); |
diff --git a/kernel/kexec.c b/kernel/kexec.c index a9a93d9ee7a7..ef077fb73155 100644 --- a/kernel/kexec.c +++ b/kernel/kexec.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <linux/console.h> | 32 | #include <linux/console.h> |
33 | #include <linux/vmalloc.h> | 33 | #include <linux/vmalloc.h> |
34 | #include <linux/swap.h> | 34 | #include <linux/swap.h> |
35 | #include <linux/kmsg_dump.h> | ||
35 | 36 | ||
36 | #include <asm/page.h> | 37 | #include <asm/page.h> |
37 | #include <asm/uaccess.h> | 38 | #include <asm/uaccess.h> |
@@ -1074,6 +1075,9 @@ void crash_kexec(struct pt_regs *regs) | |||
1074 | if (mutex_trylock(&kexec_mutex)) { | 1075 | if (mutex_trylock(&kexec_mutex)) { |
1075 | if (kexec_crash_image) { | 1076 | if (kexec_crash_image) { |
1076 | struct pt_regs fixed_regs; | 1077 | struct pt_regs fixed_regs; |
1078 | |||
1079 | kmsg_dump(KMSG_DUMP_KEXEC); | ||
1080 | |||
1077 | crash_setup_regs(&fixed_regs, regs); | 1081 | crash_setup_regs(&fixed_regs, regs); |
1078 | crash_save_vmcoreinfo(); | 1082 | crash_save_vmcoreinfo(); |
1079 | machine_crash_shutdown(&fixed_regs); | 1083 | machine_crash_shutdown(&fixed_regs); |
diff --git a/kernel/kfifo.c b/kernel/kfifo.c index 32c5c15d750d..35edbe22e9a9 100644 --- a/kernel/kfifo.c +++ b/kernel/kfifo.c | |||
@@ -80,7 +80,7 @@ int kfifo_alloc(struct kfifo *fifo, unsigned int size, gfp_t gfp_mask) | |||
80 | 80 | ||
81 | buffer = kmalloc(size, gfp_mask); | 81 | buffer = kmalloc(size, gfp_mask); |
82 | if (!buffer) { | 82 | if (!buffer) { |
83 | _kfifo_init(fifo, 0, 0); | 83 | _kfifo_init(fifo, NULL, 0); |
84 | return -ENOMEM; | 84 | return -ENOMEM; |
85 | } | 85 | } |
86 | 86 | ||
@@ -97,6 +97,7 @@ EXPORT_SYMBOL(kfifo_alloc); | |||
97 | void kfifo_free(struct kfifo *fifo) | 97 | void kfifo_free(struct kfifo *fifo) |
98 | { | 98 | { |
99 | kfree(fifo->buffer); | 99 | kfree(fifo->buffer); |
100 | _kfifo_init(fifo, NULL, 0); | ||
100 | } | 101 | } |
101 | EXPORT_SYMBOL(kfifo_free); | 102 | EXPORT_SYMBOL(kfifo_free); |
102 | 103 | ||
@@ -349,6 +350,7 @@ EXPORT_SYMBOL(__kfifo_from_user_n); | |||
349 | * @fifo: the fifo to be used. | 350 | * @fifo: the fifo to be used. |
350 | * @from: pointer to the data to be added. | 351 | * @from: pointer to the data to be added. |
351 | * @len: the length of the data to be added. | 352 | * @len: the length of the data to be added. |
353 | * @total: the actual returned data length. | ||
352 | * | 354 | * |
353 | * This function copies at most @len bytes from the @from into the | 355 | * This function copies at most @len bytes from the @from into the |
354 | * FIFO depending and returns -EFAULT/0. | 356 | * FIFO depending and returns -EFAULT/0. |
@@ -399,7 +401,7 @@ EXPORT_SYMBOL(__kfifo_to_user_n); | |||
399 | * @fifo: the fifo to be used. | 401 | * @fifo: the fifo to be used. |
400 | * @to: where the data must be copied. | 402 | * @to: where the data must be copied. |
401 | * @len: the size of the destination buffer. | 403 | * @len: the size of the destination buffer. |
402 | @ @lenout: pointer to output variable with copied data | 404 | * @lenout: pointer to output variable with copied data |
403 | * | 405 | * |
404 | * This function copies at most @len bytes from the FIFO into the | 406 | * This function copies at most @len bytes from the FIFO into the |
405 | * @to buffer and 0 or -EFAULT. | 407 | * @to buffer and 0 or -EFAULT. |
diff --git a/kernel/kgdb.c b/kernel/kgdb.c index 2eb517e23514..761fdd2b3034 100644 --- a/kernel/kgdb.c +++ b/kernel/kgdb.c | |||
@@ -583,6 +583,9 @@ static void kgdb_wait(struct pt_regs *regs) | |||
583 | smp_wmb(); | 583 | smp_wmb(); |
584 | atomic_set(&cpu_in_kgdb[cpu], 1); | 584 | atomic_set(&cpu_in_kgdb[cpu], 1); |
585 | 585 | ||
586 | /* Disable any cpu specific hw breakpoints */ | ||
587 | kgdb_disable_hw_debug(regs); | ||
588 | |||
586 | /* Wait till primary CPU is done with debugging */ | 589 | /* Wait till primary CPU is done with debugging */ |
587 | while (atomic_read(&passive_cpu_wait[cpu])) | 590 | while (atomic_read(&passive_cpu_wait[cpu])) |
588 | cpu_relax(); | 591 | cpu_relax(); |
@@ -596,7 +599,7 @@ static void kgdb_wait(struct pt_regs *regs) | |||
596 | 599 | ||
597 | /* Signal the primary CPU that we are done: */ | 600 | /* Signal the primary CPU that we are done: */ |
598 | atomic_set(&cpu_in_kgdb[cpu], 0); | 601 | atomic_set(&cpu_in_kgdb[cpu], 0); |
599 | touch_softlockup_watchdog(); | 602 | touch_softlockup_watchdog_sync(); |
600 | clocksource_touch_watchdog(); | 603 | clocksource_touch_watchdog(); |
601 | local_irq_restore(flags); | 604 | local_irq_restore(flags); |
602 | } | 605 | } |
@@ -1450,7 +1453,7 @@ acquirelock: | |||
1450 | (kgdb_info[cpu].task && | 1453 | (kgdb_info[cpu].task && |
1451 | kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) { | 1454 | kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) { |
1452 | atomic_set(&kgdb_active, -1); | 1455 | atomic_set(&kgdb_active, -1); |
1453 | touch_softlockup_watchdog(); | 1456 | touch_softlockup_watchdog_sync(); |
1454 | clocksource_touch_watchdog(); | 1457 | clocksource_touch_watchdog(); |
1455 | local_irq_restore(flags); | 1458 | local_irq_restore(flags); |
1456 | 1459 | ||
@@ -1550,7 +1553,7 @@ kgdb_restore: | |||
1550 | } | 1553 | } |
1551 | /* Free kgdb_active */ | 1554 | /* Free kgdb_active */ |
1552 | atomic_set(&kgdb_active, -1); | 1555 | atomic_set(&kgdb_active, -1); |
1553 | touch_softlockup_watchdog(); | 1556 | touch_softlockup_watchdog_sync(); |
1554 | clocksource_touch_watchdog(); | 1557 | clocksource_touch_watchdog(); |
1555 | local_irq_restore(flags); | 1558 | local_irq_restore(flags); |
1556 | 1559 | ||
diff --git a/kernel/lockdep.c b/kernel/lockdep.c index 5feaddcdbe49..c62ec14609b9 100644 --- a/kernel/lockdep.c +++ b/kernel/lockdep.c | |||
@@ -2147,7 +2147,7 @@ check_usage_backwards(struct task_struct *curr, struct held_lock *this, | |||
2147 | return ret; | 2147 | return ret; |
2148 | 2148 | ||
2149 | return print_irq_inversion_bug(curr, &root, target_entry, | 2149 | return print_irq_inversion_bug(curr, &root, target_entry, |
2150 | this, 1, irqclass); | 2150 | this, 0, irqclass); |
2151 | } | 2151 | } |
2152 | 2152 | ||
2153 | void print_irqtrace_events(struct task_struct *curr) | 2153 | void print_irqtrace_events(struct task_struct *curr) |
diff --git a/kernel/panic.c b/kernel/panic.c index 5827f7b97254..c787333282b8 100644 --- a/kernel/panic.c +++ b/kernel/panic.c | |||
@@ -75,7 +75,6 @@ NORET_TYPE void panic(const char * fmt, ...) | |||
75 | dump_stack(); | 75 | dump_stack(); |
76 | #endif | 76 | #endif |
77 | 77 | ||
78 | kmsg_dump(KMSG_DUMP_PANIC); | ||
79 | /* | 78 | /* |
80 | * If we have crashed and we have a crash kernel loaded let it handle | 79 | * If we have crashed and we have a crash kernel loaded let it handle |
81 | * everything else. | 80 | * everything else. |
@@ -83,6 +82,8 @@ NORET_TYPE void panic(const char * fmt, ...) | |||
83 | */ | 82 | */ |
84 | crash_kexec(NULL); | 83 | crash_kexec(NULL); |
85 | 84 | ||
85 | kmsg_dump(KMSG_DUMP_PANIC); | ||
86 | |||
86 | /* | 87 | /* |
87 | * Note smp_send_stop is the usual smp shutdown function, which | 88 | * Note smp_send_stop is the usual smp shutdown function, which |
88 | * unfortunately means it may not be hardened to work in a panic | 89 | * unfortunately means it may not be hardened to work in a panic |
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index d27746bd3a06..2b19297742cb 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
@@ -4580,7 +4580,7 @@ static int perf_copy_attr(struct perf_event_attr __user *uattr, | |||
4580 | if (attr->type >= PERF_TYPE_MAX) | 4580 | if (attr->type >= PERF_TYPE_MAX) |
4581 | return -EINVAL; | 4581 | return -EINVAL; |
4582 | 4582 | ||
4583 | if (attr->__reserved_1 || attr->__reserved_2) | 4583 | if (attr->__reserved_1) |
4584 | return -EINVAL; | 4584 | return -EINVAL; |
4585 | 4585 | ||
4586 | if (attr->sample_type & ~(PERF_SAMPLE_MAX-1)) | 4586 | if (attr->sample_type & ~(PERF_SAMPLE_MAX-1)) |
diff --git a/kernel/printk.c b/kernel/printk.c index 17463ca2e229..1751c456b71f 100644 --- a/kernel/printk.c +++ b/kernel/printk.c | |||
@@ -1467,6 +1467,7 @@ EXPORT_SYMBOL_GPL(kmsg_dump_unregister); | |||
1467 | static const char const *kmsg_reasons[] = { | 1467 | static const char const *kmsg_reasons[] = { |
1468 | [KMSG_DUMP_OOPS] = "oops", | 1468 | [KMSG_DUMP_OOPS] = "oops", |
1469 | [KMSG_DUMP_PANIC] = "panic", | 1469 | [KMSG_DUMP_PANIC] = "panic", |
1470 | [KMSG_DUMP_KEXEC] = "kexec", | ||
1470 | }; | 1471 | }; |
1471 | 1472 | ||
1472 | static const char *kmsg_to_str(enum kmsg_dump_reason reason) | 1473 | static const char *kmsg_to_str(enum kmsg_dump_reason reason) |
diff --git a/kernel/sched.c b/kernel/sched.c index 4508fe7048be..3a8fb30a91b1 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -2320,14 +2320,12 @@ static int select_fallback_rq(int cpu, struct task_struct *p) | |||
2320 | } | 2320 | } |
2321 | 2321 | ||
2322 | /* | 2322 | /* |
2323 | * Called from: | 2323 | * Gets called from 3 sites (exec, fork, wakeup), since it is called without |
2324 | * holding rq->lock we need to ensure ->cpus_allowed is stable, this is done | ||
2325 | * by: | ||
2324 | * | 2326 | * |
2325 | * - fork, @p is stable because it isn't on the tasklist yet | 2327 | * exec: is unstable, retry loop |
2326 | * | 2328 | * fork & wake-up: serialize ->cpus_allowed against TASK_WAKING |
2327 | * - exec, @p is unstable, retry loop | ||
2328 | * | ||
2329 | * - wake-up, we serialize ->cpus_allowed against TASK_WAKING so | ||
2330 | * we should be good. | ||
2331 | */ | 2329 | */ |
2332 | static inline | 2330 | static inline |
2333 | int select_task_rq(struct task_struct *p, int sd_flags, int wake_flags) | 2331 | int select_task_rq(struct task_struct *p, int sd_flags, int wake_flags) |
@@ -2620,9 +2618,6 @@ void sched_fork(struct task_struct *p, int clone_flags) | |||
2620 | if (p->sched_class->task_fork) | 2618 | if (p->sched_class->task_fork) |
2621 | p->sched_class->task_fork(p); | 2619 | p->sched_class->task_fork(p); |
2622 | 2620 | ||
2623 | #ifdef CONFIG_SMP | ||
2624 | cpu = select_task_rq(p, SD_BALANCE_FORK, 0); | ||
2625 | #endif | ||
2626 | set_task_cpu(p, cpu); | 2621 | set_task_cpu(p, cpu); |
2627 | 2622 | ||
2628 | #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) | 2623 | #if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) |
@@ -2652,6 +2647,21 @@ void wake_up_new_task(struct task_struct *p, unsigned long clone_flags) | |||
2652 | { | 2647 | { |
2653 | unsigned long flags; | 2648 | unsigned long flags; |
2654 | struct rq *rq; | 2649 | struct rq *rq; |
2650 | int cpu = get_cpu(); | ||
2651 | |||
2652 | #ifdef CONFIG_SMP | ||
2653 | /* | ||
2654 | * Fork balancing, do it here and not earlier because: | ||
2655 | * - cpus_allowed can change in the fork path | ||
2656 | * - any previously selected cpu might disappear through hotplug | ||
2657 | * | ||
2658 | * We still have TASK_WAKING but PF_STARTING is gone now, meaning | ||
2659 | * ->cpus_allowed is stable, we have preemption disabled, meaning | ||
2660 | * cpu_online_mask is stable. | ||
2661 | */ | ||
2662 | cpu = select_task_rq(p, SD_BALANCE_FORK, 0); | ||
2663 | set_task_cpu(p, cpu); | ||
2664 | #endif | ||
2655 | 2665 | ||
2656 | rq = task_rq_lock(p, &flags); | 2666 | rq = task_rq_lock(p, &flags); |
2657 | BUG_ON(p->state != TASK_WAKING); | 2667 | BUG_ON(p->state != TASK_WAKING); |
@@ -2665,6 +2675,7 @@ void wake_up_new_task(struct task_struct *p, unsigned long clone_flags) | |||
2665 | p->sched_class->task_woken(rq, p); | 2675 | p->sched_class->task_woken(rq, p); |
2666 | #endif | 2676 | #endif |
2667 | task_rq_unlock(rq, &flags); | 2677 | task_rq_unlock(rq, &flags); |
2678 | put_cpu(); | ||
2668 | } | 2679 | } |
2669 | 2680 | ||
2670 | #ifdef CONFIG_PREEMPT_NOTIFIERS | 2681 | #ifdef CONFIG_PREEMPT_NOTIFIERS |
@@ -7139,14 +7150,18 @@ int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask) | |||
7139 | * the ->cpus_allowed mask from under waking tasks, which would be | 7150 | * the ->cpus_allowed mask from under waking tasks, which would be |
7140 | * possible when we change rq->lock in ttwu(), so synchronize against | 7151 | * possible when we change rq->lock in ttwu(), so synchronize against |
7141 | * TASK_WAKING to avoid that. | 7152 | * TASK_WAKING to avoid that. |
7153 | * | ||
7154 | * Make an exception for freshly cloned tasks, since cpuset namespaces | ||
7155 | * might move the task about, we have to validate the target in | ||
7156 | * wake_up_new_task() anyway since the cpu might have gone away. | ||
7142 | */ | 7157 | */ |
7143 | again: | 7158 | again: |
7144 | while (p->state == TASK_WAKING) | 7159 | while (p->state == TASK_WAKING && !(p->flags & PF_STARTING)) |
7145 | cpu_relax(); | 7160 | cpu_relax(); |
7146 | 7161 | ||
7147 | rq = task_rq_lock(p, &flags); | 7162 | rq = task_rq_lock(p, &flags); |
7148 | 7163 | ||
7149 | if (p->state == TASK_WAKING) { | 7164 | if (p->state == TASK_WAKING && !(p->flags & PF_STARTING)) { |
7150 | task_rq_unlock(rq, &flags); | 7165 | task_rq_unlock(rq, &flags); |
7151 | goto again; | 7166 | goto again; |
7152 | } | 7167 | } |
diff --git a/kernel/softirq.c b/kernel/softirq.c index a09502e2ef75..7c1a67ef0274 100644 --- a/kernel/softirq.c +++ b/kernel/softirq.c | |||
@@ -500,22 +500,17 @@ EXPORT_SYMBOL(tasklet_kill); | |||
500 | */ | 500 | */ |
501 | 501 | ||
502 | /* | 502 | /* |
503 | * The trampoline is called when the hrtimer expires. If this is | 503 | * The trampoline is called when the hrtimer expires. It schedules a tasklet |
504 | * called from the hrtimer interrupt then we schedule the tasklet as | 504 | * to run __tasklet_hrtimer_trampoline() which in turn will call the intended |
505 | * the timer callback function expects to run in softirq context. If | 505 | * hrtimer callback, but from softirq context. |
506 | * it's called in softirq context anyway (i.e. high resolution timers | ||
507 | * disabled) then the hrtimer callback is called right away. | ||
508 | */ | 506 | */ |
509 | static enum hrtimer_restart __hrtimer_tasklet_trampoline(struct hrtimer *timer) | 507 | static enum hrtimer_restart __hrtimer_tasklet_trampoline(struct hrtimer *timer) |
510 | { | 508 | { |
511 | struct tasklet_hrtimer *ttimer = | 509 | struct tasklet_hrtimer *ttimer = |
512 | container_of(timer, struct tasklet_hrtimer, timer); | 510 | container_of(timer, struct tasklet_hrtimer, timer); |
513 | 511 | ||
514 | if (hrtimer_is_hres_active(timer)) { | 512 | tasklet_hi_schedule(&ttimer->tasklet); |
515 | tasklet_hi_schedule(&ttimer->tasklet); | 513 | return HRTIMER_NORESTART; |
516 | return HRTIMER_NORESTART; | ||
517 | } | ||
518 | return ttimer->function(timer); | ||
519 | } | 514 | } |
520 | 515 | ||
521 | /* | 516 | /* |
diff --git a/kernel/softlockup.c b/kernel/softlockup.c index d22579087e27..0d4c7898ab80 100644 --- a/kernel/softlockup.c +++ b/kernel/softlockup.c | |||
@@ -25,6 +25,7 @@ static DEFINE_SPINLOCK(print_lock); | |||
25 | static DEFINE_PER_CPU(unsigned long, softlockup_touch_ts); /* touch timestamp */ | 25 | static DEFINE_PER_CPU(unsigned long, softlockup_touch_ts); /* touch timestamp */ |
26 | static DEFINE_PER_CPU(unsigned long, softlockup_print_ts); /* print timestamp */ | 26 | static DEFINE_PER_CPU(unsigned long, softlockup_print_ts); /* print timestamp */ |
27 | static DEFINE_PER_CPU(struct task_struct *, softlockup_watchdog); | 27 | static DEFINE_PER_CPU(struct task_struct *, softlockup_watchdog); |
28 | static DEFINE_PER_CPU(bool, softlock_touch_sync); | ||
28 | 29 | ||
29 | static int __read_mostly did_panic; | 30 | static int __read_mostly did_panic; |
30 | int __read_mostly softlockup_thresh = 60; | 31 | int __read_mostly softlockup_thresh = 60; |
@@ -79,6 +80,12 @@ void touch_softlockup_watchdog(void) | |||
79 | } | 80 | } |
80 | EXPORT_SYMBOL(touch_softlockup_watchdog); | 81 | EXPORT_SYMBOL(touch_softlockup_watchdog); |
81 | 82 | ||
83 | void touch_softlockup_watchdog_sync(void) | ||
84 | { | ||
85 | __raw_get_cpu_var(softlock_touch_sync) = true; | ||
86 | __raw_get_cpu_var(softlockup_touch_ts) = 0; | ||
87 | } | ||
88 | |||
82 | void touch_all_softlockup_watchdogs(void) | 89 | void touch_all_softlockup_watchdogs(void) |
83 | { | 90 | { |
84 | int cpu; | 91 | int cpu; |
@@ -118,6 +125,14 @@ void softlockup_tick(void) | |||
118 | } | 125 | } |
119 | 126 | ||
120 | if (touch_ts == 0) { | 127 | if (touch_ts == 0) { |
128 | if (unlikely(per_cpu(softlock_touch_sync, this_cpu))) { | ||
129 | /* | ||
130 | * If the time stamp was touched atomically | ||
131 | * make sure the scheduler tick is up to date. | ||
132 | */ | ||
133 | per_cpu(softlock_touch_sync, this_cpu) = false; | ||
134 | sched_clock_tick(); | ||
135 | } | ||
121 | __touch_softlockup_watchdog(); | 136 | __touch_softlockup_watchdog(); |
122 | return; | 137 | return; |
123 | } | 138 | } |
diff --git a/kernel/time/clockevents.c b/kernel/time/clockevents.c index 6f740d9f0948..d7395fdfb9f3 100644 --- a/kernel/time/clockevents.c +++ b/kernel/time/clockevents.c | |||
@@ -259,7 +259,8 @@ void clockevents_notify(unsigned long reason, void *arg) | |||
259 | cpu = *((int *)arg); | 259 | cpu = *((int *)arg); |
260 | list_for_each_entry_safe(dev, tmp, &clockevent_devices, list) { | 260 | list_for_each_entry_safe(dev, tmp, &clockevent_devices, list) { |
261 | if (cpumask_test_cpu(cpu, dev->cpumask) && | 261 | if (cpumask_test_cpu(cpu, dev->cpumask) && |
262 | cpumask_weight(dev->cpumask) == 1) { | 262 | cpumask_weight(dev->cpumask) == 1 && |
263 | !tick_is_broadcast_device(dev)) { | ||
263 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); | 264 | BUG_ON(dev->mode != CLOCK_EVT_MODE_UNUSED); |
264 | list_del(&dev->list); | 265 | list_del(&dev->list); |
265 | } | 266 | } |
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index e85c23404d34..13700833c181 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c | |||
@@ -343,7 +343,19 @@ static void clocksource_resume_watchdog(void) | |||
343 | { | 343 | { |
344 | unsigned long flags; | 344 | unsigned long flags; |
345 | 345 | ||
346 | spin_lock_irqsave(&watchdog_lock, flags); | 346 | /* |
347 | * We use trylock here to avoid a potential dead lock when | ||
348 | * kgdb calls this code after the kernel has been stopped with | ||
349 | * watchdog_lock held. When watchdog_lock is held we just | ||
350 | * return and accept, that the watchdog might trigger and mark | ||
351 | * the monitored clock source (usually TSC) unstable. | ||
352 | * | ||
353 | * This does not affect the other caller clocksource_resume() | ||
354 | * because at this point the kernel is UP, interrupts are | ||
355 | * disabled and nothing can hold watchdog_lock. | ||
356 | */ | ||
357 | if (!spin_trylock_irqsave(&watchdog_lock, flags)) | ||
358 | return; | ||
347 | clocksource_reset_watchdog(); | 359 | clocksource_reset_watchdog(); |
348 | spin_unlock_irqrestore(&watchdog_lock, flags); | 360 | spin_unlock_irqrestore(&watchdog_lock, flags); |
349 | } | 361 | } |
@@ -458,8 +470,8 @@ void clocksource_resume(void) | |||
458 | * clocksource_touch_watchdog - Update watchdog | 470 | * clocksource_touch_watchdog - Update watchdog |
459 | * | 471 | * |
460 | * Update the watchdog after exception contexts such as kgdb so as not | 472 | * Update the watchdog after exception contexts such as kgdb so as not |
461 | * to incorrectly trip the watchdog. | 473 | * to incorrectly trip the watchdog. This might fail when the kernel |
462 | * | 474 | * was stopped in code which holds watchdog_lock. |
463 | */ | 475 | */ |
464 | void clocksource_touch_watchdog(void) | 476 | void clocksource_touch_watchdog(void) |
465 | { | 477 | { |
diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c index 7faaa32fbf4f..e2ab064c6d41 100644 --- a/kernel/time/timekeeping.c +++ b/kernel/time/timekeeping.c | |||
@@ -880,6 +880,7 @@ void getboottime(struct timespec *ts) | |||
880 | 880 | ||
881 | set_normalized_timespec(ts, -boottime.tv_sec, -boottime.tv_nsec); | 881 | set_normalized_timespec(ts, -boottime.tv_sec, -boottime.tv_nsec); |
882 | } | 882 | } |
883 | EXPORT_SYMBOL_GPL(getboottime); | ||
883 | 884 | ||
884 | /** | 885 | /** |
885 | * monotonic_to_bootbased - Convert the monotonic time to boot based. | 886 | * monotonic_to_bootbased - Convert the monotonic time to boot based. |
@@ -889,6 +890,7 @@ void monotonic_to_bootbased(struct timespec *ts) | |||
889 | { | 890 | { |
890 | *ts = timespec_add_safe(*ts, total_sleep_time); | 891 | *ts = timespec_add_safe(*ts, total_sleep_time); |
891 | } | 892 | } |
893 | EXPORT_SYMBOL_GPL(monotonic_to_bootbased); | ||
892 | 894 | ||
893 | unsigned long get_seconds(void) | 895 | unsigned long get_seconds(void) |
894 | { | 896 | { |
diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig index 6c22d8a2f289..60e2ce0181ee 100644 --- a/kernel/trace/Kconfig +++ b/kernel/trace/Kconfig | |||
@@ -27,9 +27,7 @@ config HAVE_FUNCTION_GRAPH_TRACER | |||
27 | config HAVE_FUNCTION_GRAPH_FP_TEST | 27 | config HAVE_FUNCTION_GRAPH_FP_TEST |
28 | bool | 28 | bool |
29 | help | 29 | help |
30 | An arch may pass in a unique value (frame pointer) to both the | 30 | See Documentation/trace/ftrace-design.txt |
31 | entering and exiting of a function. On exit, the value is compared | ||
32 | and if it does not match, then it will panic the kernel. | ||
33 | 31 | ||
34 | config HAVE_FUNCTION_TRACE_MCOUNT_TEST | 32 | config HAVE_FUNCTION_TRACE_MCOUNT_TEST |
35 | bool | 33 | bool |
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index edefe3b2801b..8c1b2d290718 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c | |||
@@ -464,6 +464,8 @@ struct ring_buffer_iter { | |||
464 | struct ring_buffer_per_cpu *cpu_buffer; | 464 | struct ring_buffer_per_cpu *cpu_buffer; |
465 | unsigned long head; | 465 | unsigned long head; |
466 | struct buffer_page *head_page; | 466 | struct buffer_page *head_page; |
467 | struct buffer_page *cache_reader_page; | ||
468 | unsigned long cache_read; | ||
467 | u64 read_stamp; | 469 | u64 read_stamp; |
468 | }; | 470 | }; |
469 | 471 | ||
@@ -2716,6 +2718,8 @@ static void rb_iter_reset(struct ring_buffer_iter *iter) | |||
2716 | iter->read_stamp = cpu_buffer->read_stamp; | 2718 | iter->read_stamp = cpu_buffer->read_stamp; |
2717 | else | 2719 | else |
2718 | iter->read_stamp = iter->head_page->page->time_stamp; | 2720 | iter->read_stamp = iter->head_page->page->time_stamp; |
2721 | iter->cache_reader_page = cpu_buffer->reader_page; | ||
2722 | iter->cache_read = cpu_buffer->read; | ||
2719 | } | 2723 | } |
2720 | 2724 | ||
2721 | /** | 2725 | /** |
@@ -3060,13 +3064,22 @@ rb_iter_peek(struct ring_buffer_iter *iter, u64 *ts) | |||
3060 | struct ring_buffer_event *event; | 3064 | struct ring_buffer_event *event; |
3061 | int nr_loops = 0; | 3065 | int nr_loops = 0; |
3062 | 3066 | ||
3063 | if (ring_buffer_iter_empty(iter)) | ||
3064 | return NULL; | ||
3065 | |||
3066 | cpu_buffer = iter->cpu_buffer; | 3067 | cpu_buffer = iter->cpu_buffer; |
3067 | buffer = cpu_buffer->buffer; | 3068 | buffer = cpu_buffer->buffer; |
3068 | 3069 | ||
3070 | /* | ||
3071 | * Check if someone performed a consuming read to | ||
3072 | * the buffer. A consuming read invalidates the iterator | ||
3073 | * and we need to reset the iterator in this case. | ||
3074 | */ | ||
3075 | if (unlikely(iter->cache_read != cpu_buffer->read || | ||
3076 | iter->cache_reader_page != cpu_buffer->reader_page)) | ||
3077 | rb_iter_reset(iter); | ||
3078 | |||
3069 | again: | 3079 | again: |
3080 | if (ring_buffer_iter_empty(iter)) | ||
3081 | return NULL; | ||
3082 | |||
3070 | /* | 3083 | /* |
3071 | * We repeat when a timestamp is encountered. | 3084 | * We repeat when a timestamp is encountered. |
3072 | * We can get multiple timestamps by nested interrupts or also | 3085 | * We can get multiple timestamps by nested interrupts or also |
@@ -3081,6 +3094,11 @@ rb_iter_peek(struct ring_buffer_iter *iter, u64 *ts) | |||
3081 | if (rb_per_cpu_empty(cpu_buffer)) | 3094 | if (rb_per_cpu_empty(cpu_buffer)) |
3082 | return NULL; | 3095 | return NULL; |
3083 | 3096 | ||
3097 | if (iter->head >= local_read(&iter->head_page->page->commit)) { | ||
3098 | rb_inc_iter(iter); | ||
3099 | goto again; | ||
3100 | } | ||
3101 | |||
3084 | event = rb_iter_head_event(iter); | 3102 | event = rb_iter_head_event(iter); |
3085 | 3103 | ||
3086 | switch (event->type_len) { | 3104 | switch (event->type_len) { |
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index 0df1b0f2cb9e..eac6875cb990 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c | |||
@@ -951,6 +951,11 @@ void trace_find_cmdline(int pid, char comm[]) | |||
951 | return; | 951 | return; |
952 | } | 952 | } |
953 | 953 | ||
954 | if (WARN_ON_ONCE(pid < 0)) { | ||
955 | strcpy(comm, "<XXX>"); | ||
956 | return; | ||
957 | } | ||
958 | |||
954 | if (pid > PID_MAX_DEFAULT) { | 959 | if (pid > PID_MAX_DEFAULT) { |
955 | strcpy(comm, "<...>"); | 960 | strcpy(comm, "<...>"); |
956 | return; | 961 | return; |
diff --git a/kernel/trace/trace_kprobe.c b/kernel/trace/trace_kprobe.c index 6ea90c0e2c96..50b1b8239806 100644 --- a/kernel/trace/trace_kprobe.c +++ b/kernel/trace/trace_kprobe.c | |||
@@ -689,7 +689,7 @@ static int create_trace_probe(int argc, char **argv) | |||
689 | return -EINVAL; | 689 | return -EINVAL; |
690 | } | 690 | } |
691 | /* an address specified */ | 691 | /* an address specified */ |
692 | ret = strict_strtoul(&argv[0][2], 0, (unsigned long *)&addr); | 692 | ret = strict_strtoul(&argv[1][0], 0, (unsigned long *)&addr); |
693 | if (ret) { | 693 | if (ret) { |
694 | pr_info("Failed to parse address.\n"); | 694 | pr_info("Failed to parse address.\n"); |
695 | return ret; | 695 | return ret; |
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index 678a5120ee30..f4bc9b27de5f 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c | |||
@@ -157,6 +157,7 @@ stack_max_size_write(struct file *filp, const char __user *ubuf, | |||
157 | unsigned long val, flags; | 157 | unsigned long val, flags; |
158 | char buf[64]; | 158 | char buf[64]; |
159 | int ret; | 159 | int ret; |
160 | int cpu; | ||
160 | 161 | ||
161 | if (count >= sizeof(buf)) | 162 | if (count >= sizeof(buf)) |
162 | return -EINVAL; | 163 | return -EINVAL; |
@@ -171,9 +172,20 @@ stack_max_size_write(struct file *filp, const char __user *ubuf, | |||
171 | return ret; | 172 | return ret; |
172 | 173 | ||
173 | local_irq_save(flags); | 174 | local_irq_save(flags); |
175 | |||
176 | /* | ||
177 | * In case we trace inside arch_spin_lock() or after (NMI), | ||
178 | * we will cause circular lock, so we also need to increase | ||
179 | * the percpu trace_active here. | ||
180 | */ | ||
181 | cpu = smp_processor_id(); | ||
182 | per_cpu(trace_active, cpu)++; | ||
183 | |||
174 | arch_spin_lock(&max_stack_lock); | 184 | arch_spin_lock(&max_stack_lock); |
175 | *ptr = val; | 185 | *ptr = val; |
176 | arch_spin_unlock(&max_stack_lock); | 186 | arch_spin_unlock(&max_stack_lock); |
187 | |||
188 | per_cpu(trace_active, cpu)--; | ||
177 | local_irq_restore(flags); | 189 | local_irq_restore(flags); |
178 | 190 | ||
179 | return count; | 191 | return count; |
@@ -206,7 +218,13 @@ t_next(struct seq_file *m, void *v, loff_t *pos) | |||
206 | 218 | ||
207 | static void *t_start(struct seq_file *m, loff_t *pos) | 219 | static void *t_start(struct seq_file *m, loff_t *pos) |
208 | { | 220 | { |
221 | int cpu; | ||
222 | |||
209 | local_irq_disable(); | 223 | local_irq_disable(); |
224 | |||
225 | cpu = smp_processor_id(); | ||
226 | per_cpu(trace_active, cpu)++; | ||
227 | |||
210 | arch_spin_lock(&max_stack_lock); | 228 | arch_spin_lock(&max_stack_lock); |
211 | 229 | ||
212 | if (*pos == 0) | 230 | if (*pos == 0) |
@@ -217,7 +235,13 @@ static void *t_start(struct seq_file *m, loff_t *pos) | |||
217 | 235 | ||
218 | static void t_stop(struct seq_file *m, void *p) | 236 | static void t_stop(struct seq_file *m, void *p) |
219 | { | 237 | { |
238 | int cpu; | ||
239 | |||
220 | arch_spin_unlock(&max_stack_lock); | 240 | arch_spin_unlock(&max_stack_lock); |
241 | |||
242 | cpu = smp_processor_id(); | ||
243 | per_cpu(trace_active, cpu)--; | ||
244 | |||
221 | local_irq_enable(); | 245 | local_irq_enable(); |
222 | } | 246 | } |
223 | 247 | ||
diff --git a/lib/dma-debug.c b/lib/dma-debug.c index 7d2f0b33e5a8..ba8b67039d13 100644 --- a/lib/dma-debug.c +++ b/lib/dma-debug.c | |||
@@ -587,7 +587,7 @@ out_unlock: | |||
587 | return count; | 587 | return count; |
588 | } | 588 | } |
589 | 589 | ||
590 | const struct file_operations filter_fops = { | 590 | static const struct file_operations filter_fops = { |
591 | .read = filter_read, | 591 | .read = filter_read, |
592 | .write = filter_write, | 592 | .write = filter_write, |
593 | }; | 593 | }; |
diff --git a/mm/filemap.c b/mm/filemap.c index 96ac6b0eb6cb..698ea80f2102 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -1634,14 +1634,15 @@ EXPORT_SYMBOL(generic_file_readonly_mmap); | |||
1634 | static struct page *__read_cache_page(struct address_space *mapping, | 1634 | static struct page *__read_cache_page(struct address_space *mapping, |
1635 | pgoff_t index, | 1635 | pgoff_t index, |
1636 | int (*filler)(void *,struct page*), | 1636 | int (*filler)(void *,struct page*), |
1637 | void *data) | 1637 | void *data, |
1638 | gfp_t gfp) | ||
1638 | { | 1639 | { |
1639 | struct page *page; | 1640 | struct page *page; |
1640 | int err; | 1641 | int err; |
1641 | repeat: | 1642 | repeat: |
1642 | page = find_get_page(mapping, index); | 1643 | page = find_get_page(mapping, index); |
1643 | if (!page) { | 1644 | if (!page) { |
1644 | page = page_cache_alloc_cold(mapping); | 1645 | page = __page_cache_alloc(gfp | __GFP_COLD); |
1645 | if (!page) | 1646 | if (!page) |
1646 | return ERR_PTR(-ENOMEM); | 1647 | return ERR_PTR(-ENOMEM); |
1647 | err = add_to_page_cache_lru(page, mapping, index, GFP_KERNEL); | 1648 | err = add_to_page_cache_lru(page, mapping, index, GFP_KERNEL); |
@@ -1661,31 +1662,18 @@ repeat: | |||
1661 | return page; | 1662 | return page; |
1662 | } | 1663 | } |
1663 | 1664 | ||
1664 | /** | 1665 | static struct page *do_read_cache_page(struct address_space *mapping, |
1665 | * read_cache_page_async - read into page cache, fill it if needed | ||
1666 | * @mapping: the page's address_space | ||
1667 | * @index: the page index | ||
1668 | * @filler: function to perform the read | ||
1669 | * @data: destination for read data | ||
1670 | * | ||
1671 | * Same as read_cache_page, but don't wait for page to become unlocked | ||
1672 | * after submitting it to the filler. | ||
1673 | * | ||
1674 | * Read into the page cache. If a page already exists, and PageUptodate() is | ||
1675 | * not set, try to fill the page but don't wait for it to become unlocked. | ||
1676 | * | ||
1677 | * If the page does not get brought uptodate, return -EIO. | ||
1678 | */ | ||
1679 | struct page *read_cache_page_async(struct address_space *mapping, | ||
1680 | pgoff_t index, | 1666 | pgoff_t index, |
1681 | int (*filler)(void *,struct page*), | 1667 | int (*filler)(void *,struct page*), |
1682 | void *data) | 1668 | void *data, |
1669 | gfp_t gfp) | ||
1670 | |||
1683 | { | 1671 | { |
1684 | struct page *page; | 1672 | struct page *page; |
1685 | int err; | 1673 | int err; |
1686 | 1674 | ||
1687 | retry: | 1675 | retry: |
1688 | page = __read_cache_page(mapping, index, filler, data); | 1676 | page = __read_cache_page(mapping, index, filler, data, gfp); |
1689 | if (IS_ERR(page)) | 1677 | if (IS_ERR(page)) |
1690 | return page; | 1678 | return page; |
1691 | if (PageUptodate(page)) | 1679 | if (PageUptodate(page)) |
@@ -1710,8 +1698,67 @@ out: | |||
1710 | mark_page_accessed(page); | 1698 | mark_page_accessed(page); |
1711 | return page; | 1699 | return page; |
1712 | } | 1700 | } |
1701 | |||
1702 | /** | ||
1703 | * read_cache_page_async - read into page cache, fill it if needed | ||
1704 | * @mapping: the page's address_space | ||
1705 | * @index: the page index | ||
1706 | * @filler: function to perform the read | ||
1707 | * @data: destination for read data | ||
1708 | * | ||
1709 | * Same as read_cache_page, but don't wait for page to become unlocked | ||
1710 | * after submitting it to the filler. | ||
1711 | * | ||
1712 | * Read into the page cache. If a page already exists, and PageUptodate() is | ||
1713 | * not set, try to fill the page but don't wait for it to become unlocked. | ||
1714 | * | ||
1715 | * If the page does not get brought uptodate, return -EIO. | ||
1716 | */ | ||
1717 | struct page *read_cache_page_async(struct address_space *mapping, | ||
1718 | pgoff_t index, | ||
1719 | int (*filler)(void *,struct page*), | ||
1720 | void *data) | ||
1721 | { | ||
1722 | return do_read_cache_page(mapping, index, filler, data, mapping_gfp_mask(mapping)); | ||
1723 | } | ||
1713 | EXPORT_SYMBOL(read_cache_page_async); | 1724 | EXPORT_SYMBOL(read_cache_page_async); |
1714 | 1725 | ||
1726 | static struct page *wait_on_page_read(struct page *page) | ||
1727 | { | ||
1728 | if (!IS_ERR(page)) { | ||
1729 | wait_on_page_locked(page); | ||
1730 | if (!PageUptodate(page)) { | ||
1731 | page_cache_release(page); | ||
1732 | page = ERR_PTR(-EIO); | ||
1733 | } | ||
1734 | } | ||
1735 | return page; | ||
1736 | } | ||
1737 | |||
1738 | /** | ||
1739 | * read_cache_page_gfp - read into page cache, using specified page allocation flags. | ||
1740 | * @mapping: the page's address_space | ||
1741 | * @index: the page index | ||
1742 | * @gfp: the page allocator flags to use if allocating | ||
1743 | * | ||
1744 | * This is the same as "read_mapping_page(mapping, index, NULL)", but with | ||
1745 | * any new page allocations done using the specified allocation flags. Note | ||
1746 | * that the Radix tree operations will still use GFP_KERNEL, so you can't | ||
1747 | * expect to do this atomically or anything like that - but you can pass in | ||
1748 | * other page requirements. | ||
1749 | * | ||
1750 | * If the page does not get brought uptodate, return -EIO. | ||
1751 | */ | ||
1752 | struct page *read_cache_page_gfp(struct address_space *mapping, | ||
1753 | pgoff_t index, | ||
1754 | gfp_t gfp) | ||
1755 | { | ||
1756 | filler_t *filler = (filler_t *)mapping->a_ops->readpage; | ||
1757 | |||
1758 | return wait_on_page_read(do_read_cache_page(mapping, index, filler, NULL, gfp)); | ||
1759 | } | ||
1760 | EXPORT_SYMBOL(read_cache_page_gfp); | ||
1761 | |||
1715 | /** | 1762 | /** |
1716 | * read_cache_page - read into page cache, fill it if needed | 1763 | * read_cache_page - read into page cache, fill it if needed |
1717 | * @mapping: the page's address_space | 1764 | * @mapping: the page's address_space |
@@ -1729,18 +1776,7 @@ struct page *read_cache_page(struct address_space *mapping, | |||
1729 | int (*filler)(void *,struct page*), | 1776 | int (*filler)(void *,struct page*), |
1730 | void *data) | 1777 | void *data) |
1731 | { | 1778 | { |
1732 | struct page *page; | 1779 | return wait_on_page_read(read_cache_page_async(mapping, index, filler, data)); |
1733 | |||
1734 | page = read_cache_page_async(mapping, index, filler, data); | ||
1735 | if (IS_ERR(page)) | ||
1736 | goto out; | ||
1737 | wait_on_page_locked(page); | ||
1738 | if (!PageUptodate(page)) { | ||
1739 | page_cache_release(page); | ||
1740 | page = ERR_PTR(-EIO); | ||
1741 | } | ||
1742 | out: | ||
1743 | return page; | ||
1744 | } | 1780 | } |
1745 | EXPORT_SYMBOL(read_cache_page); | 1781 | EXPORT_SYMBOL(read_cache_page); |
1746 | 1782 | ||
@@ -2196,6 +2232,9 @@ again: | |||
2196 | if (unlikely(status)) | 2232 | if (unlikely(status)) |
2197 | break; | 2233 | break; |
2198 | 2234 | ||
2235 | if (mapping_writably_mapped(mapping)) | ||
2236 | flush_dcache_page(page); | ||
2237 | |||
2199 | pagefault_disable(); | 2238 | pagefault_disable(); |
2200 | copied = iov_iter_copy_from_user_atomic(page, i, offset, bytes); | 2239 | copied = iov_iter_copy_from_user_atomic(page, i, offset, bytes); |
2201 | pagefault_enable(); | 2240 | pagefault_enable(); |
diff --git a/mm/hugetlb.c b/mm/hugetlb.c index e91b81b63670..2d16fa6b8c2d 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c | |||
@@ -1515,10 +1515,9 @@ static struct attribute_group hstate_attr_group = { | |||
1515 | .attrs = hstate_attrs, | 1515 | .attrs = hstate_attrs, |
1516 | }; | 1516 | }; |
1517 | 1517 | ||
1518 | static int __init hugetlb_sysfs_add_hstate(struct hstate *h, | 1518 | static int hugetlb_sysfs_add_hstate(struct hstate *h, struct kobject *parent, |
1519 | struct kobject *parent, | 1519 | struct kobject **hstate_kobjs, |
1520 | struct kobject **hstate_kobjs, | 1520 | struct attribute_group *hstate_attr_group) |
1521 | struct attribute_group *hstate_attr_group) | ||
1522 | { | 1521 | { |
1523 | int retval; | 1522 | int retval; |
1524 | int hi = h - hstates; | 1523 | int hi = h - hstates; |
diff --git a/mm/migrate.c b/mm/migrate.c index efddbf0926b2..9a0db5bbabe4 100644 --- a/mm/migrate.c +++ b/mm/migrate.c | |||
@@ -912,6 +912,9 @@ static int do_pages_move(struct mm_struct *mm, struct task_struct *task, | |||
912 | goto out_pm; | 912 | goto out_pm; |
913 | 913 | ||
914 | err = -ENODEV; | 914 | err = -ENODEV; |
915 | if (node < 0 || node >= MAX_NUMNODES) | ||
916 | goto out_pm; | ||
917 | |||
915 | if (!node_state(node, N_HIGH_MEMORY)) | 918 | if (!node_state(node, N_HIGH_MEMORY)) |
916 | goto out_pm; | 919 | goto out_pm; |
917 | 920 | ||
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index d2a8889b4c58..8deb9d0fd5b1 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c | |||
@@ -556,8 +556,9 @@ static void free_pcppages_bulk(struct zone *zone, int count, | |||
556 | page = list_entry(list->prev, struct page, lru); | 556 | page = list_entry(list->prev, struct page, lru); |
557 | /* must delete as __free_one_page list manipulates */ | 557 | /* must delete as __free_one_page list manipulates */ |
558 | list_del(&page->lru); | 558 | list_del(&page->lru); |
559 | __free_one_page(page, zone, 0, migratetype); | 559 | /* MIGRATE_MOVABLE list may include MIGRATE_RESERVEs */ |
560 | trace_mm_page_pcpu_drain(page, 0, migratetype); | 560 | __free_one_page(page, zone, 0, page_private(page)); |
561 | trace_mm_page_pcpu_drain(page, 0, page_private(page)); | ||
561 | } while (--count && --batch_free && !list_empty(list)); | 562 | } while (--count && --batch_free && !list_empty(list)); |
562 | } | 563 | } |
563 | spin_unlock(&zone->lock); | 564 | spin_unlock(&zone->lock); |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index d55d905463eb..ae007462b7f6 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -509,6 +509,9 @@ static unsigned long lazy_max_pages(void) | |||
509 | 509 | ||
510 | static atomic_t vmap_lazy_nr = ATOMIC_INIT(0); | 510 | static atomic_t vmap_lazy_nr = ATOMIC_INIT(0); |
511 | 511 | ||
512 | /* for per-CPU blocks */ | ||
513 | static void purge_fragmented_blocks_allcpus(void); | ||
514 | |||
512 | /* | 515 | /* |
513 | * Purges all lazily-freed vmap areas. | 516 | * Purges all lazily-freed vmap areas. |
514 | * | 517 | * |
@@ -539,6 +542,9 @@ static void __purge_vmap_area_lazy(unsigned long *start, unsigned long *end, | |||
539 | } else | 542 | } else |
540 | spin_lock(&purge_lock); | 543 | spin_lock(&purge_lock); |
541 | 544 | ||
545 | if (sync) | ||
546 | purge_fragmented_blocks_allcpus(); | ||
547 | |||
542 | rcu_read_lock(); | 548 | rcu_read_lock(); |
543 | list_for_each_entry_rcu(va, &vmap_area_list, list) { | 549 | list_for_each_entry_rcu(va, &vmap_area_list, list) { |
544 | if (va->flags & VM_LAZY_FREE) { | 550 | if (va->flags & VM_LAZY_FREE) { |
@@ -667,8 +673,6 @@ static bool vmap_initialized __read_mostly = false; | |||
667 | struct vmap_block_queue { | 673 | struct vmap_block_queue { |
668 | spinlock_t lock; | 674 | spinlock_t lock; |
669 | struct list_head free; | 675 | struct list_head free; |
670 | struct list_head dirty; | ||
671 | unsigned int nr_dirty; | ||
672 | }; | 676 | }; |
673 | 677 | ||
674 | struct vmap_block { | 678 | struct vmap_block { |
@@ -678,10 +682,9 @@ struct vmap_block { | |||
678 | unsigned long free, dirty; | 682 | unsigned long free, dirty; |
679 | DECLARE_BITMAP(alloc_map, VMAP_BBMAP_BITS); | 683 | DECLARE_BITMAP(alloc_map, VMAP_BBMAP_BITS); |
680 | DECLARE_BITMAP(dirty_map, VMAP_BBMAP_BITS); | 684 | DECLARE_BITMAP(dirty_map, VMAP_BBMAP_BITS); |
681 | union { | 685 | struct list_head free_list; |
682 | struct list_head free_list; | 686 | struct rcu_head rcu_head; |
683 | struct rcu_head rcu_head; | 687 | struct list_head purge; |
684 | }; | ||
685 | }; | 688 | }; |
686 | 689 | ||
687 | /* Queue of free and dirty vmap blocks, for allocation and flushing purposes */ | 690 | /* Queue of free and dirty vmap blocks, for allocation and flushing purposes */ |
@@ -757,7 +760,7 @@ static struct vmap_block *new_vmap_block(gfp_t gfp_mask) | |||
757 | vbq = &get_cpu_var(vmap_block_queue); | 760 | vbq = &get_cpu_var(vmap_block_queue); |
758 | vb->vbq = vbq; | 761 | vb->vbq = vbq; |
759 | spin_lock(&vbq->lock); | 762 | spin_lock(&vbq->lock); |
760 | list_add(&vb->free_list, &vbq->free); | 763 | list_add_rcu(&vb->free_list, &vbq->free); |
761 | spin_unlock(&vbq->lock); | 764 | spin_unlock(&vbq->lock); |
762 | put_cpu_var(vmap_block_queue); | 765 | put_cpu_var(vmap_block_queue); |
763 | 766 | ||
@@ -776,8 +779,6 @@ static void free_vmap_block(struct vmap_block *vb) | |||
776 | struct vmap_block *tmp; | 779 | struct vmap_block *tmp; |
777 | unsigned long vb_idx; | 780 | unsigned long vb_idx; |
778 | 781 | ||
779 | BUG_ON(!list_empty(&vb->free_list)); | ||
780 | |||
781 | vb_idx = addr_to_vb_idx(vb->va->va_start); | 782 | vb_idx = addr_to_vb_idx(vb->va->va_start); |
782 | spin_lock(&vmap_block_tree_lock); | 783 | spin_lock(&vmap_block_tree_lock); |
783 | tmp = radix_tree_delete(&vmap_block_tree, vb_idx); | 784 | tmp = radix_tree_delete(&vmap_block_tree, vb_idx); |
@@ -788,12 +789,61 @@ static void free_vmap_block(struct vmap_block *vb) | |||
788 | call_rcu(&vb->rcu_head, rcu_free_vb); | 789 | call_rcu(&vb->rcu_head, rcu_free_vb); |
789 | } | 790 | } |
790 | 791 | ||
792 | static void purge_fragmented_blocks(int cpu) | ||
793 | { | ||
794 | LIST_HEAD(purge); | ||
795 | struct vmap_block *vb; | ||
796 | struct vmap_block *n_vb; | ||
797 | struct vmap_block_queue *vbq = &per_cpu(vmap_block_queue, cpu); | ||
798 | |||
799 | rcu_read_lock(); | ||
800 | list_for_each_entry_rcu(vb, &vbq->free, free_list) { | ||
801 | |||
802 | if (!(vb->free + vb->dirty == VMAP_BBMAP_BITS && vb->dirty != VMAP_BBMAP_BITS)) | ||
803 | continue; | ||
804 | |||
805 | spin_lock(&vb->lock); | ||
806 | if (vb->free + vb->dirty == VMAP_BBMAP_BITS && vb->dirty != VMAP_BBMAP_BITS) { | ||
807 | vb->free = 0; /* prevent further allocs after releasing lock */ | ||
808 | vb->dirty = VMAP_BBMAP_BITS; /* prevent purging it again */ | ||
809 | bitmap_fill(vb->alloc_map, VMAP_BBMAP_BITS); | ||
810 | bitmap_fill(vb->dirty_map, VMAP_BBMAP_BITS); | ||
811 | spin_lock(&vbq->lock); | ||
812 | list_del_rcu(&vb->free_list); | ||
813 | spin_unlock(&vbq->lock); | ||
814 | spin_unlock(&vb->lock); | ||
815 | list_add_tail(&vb->purge, &purge); | ||
816 | } else | ||
817 | spin_unlock(&vb->lock); | ||
818 | } | ||
819 | rcu_read_unlock(); | ||
820 | |||
821 | list_for_each_entry_safe(vb, n_vb, &purge, purge) { | ||
822 | list_del(&vb->purge); | ||
823 | free_vmap_block(vb); | ||
824 | } | ||
825 | } | ||
826 | |||
827 | static void purge_fragmented_blocks_thiscpu(void) | ||
828 | { | ||
829 | purge_fragmented_blocks(smp_processor_id()); | ||
830 | } | ||
831 | |||
832 | static void purge_fragmented_blocks_allcpus(void) | ||
833 | { | ||
834 | int cpu; | ||
835 | |||
836 | for_each_possible_cpu(cpu) | ||
837 | purge_fragmented_blocks(cpu); | ||
838 | } | ||
839 | |||
791 | static void *vb_alloc(unsigned long size, gfp_t gfp_mask) | 840 | static void *vb_alloc(unsigned long size, gfp_t gfp_mask) |
792 | { | 841 | { |
793 | struct vmap_block_queue *vbq; | 842 | struct vmap_block_queue *vbq; |
794 | struct vmap_block *vb; | 843 | struct vmap_block *vb; |
795 | unsigned long addr = 0; | 844 | unsigned long addr = 0; |
796 | unsigned int order; | 845 | unsigned int order; |
846 | int purge = 0; | ||
797 | 847 | ||
798 | BUG_ON(size & ~PAGE_MASK); | 848 | BUG_ON(size & ~PAGE_MASK); |
799 | BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); | 849 | BUG_ON(size > PAGE_SIZE*VMAP_MAX_ALLOC); |
@@ -806,24 +856,38 @@ again: | |||
806 | int i; | 856 | int i; |
807 | 857 | ||
808 | spin_lock(&vb->lock); | 858 | spin_lock(&vb->lock); |
859 | if (vb->free < 1UL << order) | ||
860 | goto next; | ||
861 | |||
809 | i = bitmap_find_free_region(vb->alloc_map, | 862 | i = bitmap_find_free_region(vb->alloc_map, |
810 | VMAP_BBMAP_BITS, order); | 863 | VMAP_BBMAP_BITS, order); |
811 | 864 | ||
812 | if (i >= 0) { | 865 | if (i < 0) { |
813 | addr = vb->va->va_start + (i << PAGE_SHIFT); | 866 | if (vb->free + vb->dirty == VMAP_BBMAP_BITS) { |
814 | BUG_ON(addr_to_vb_idx(addr) != | 867 | /* fragmented and no outstanding allocations */ |
815 | addr_to_vb_idx(vb->va->va_start)); | 868 | BUG_ON(vb->dirty != VMAP_BBMAP_BITS); |
816 | vb->free -= 1UL << order; | 869 | purge = 1; |
817 | if (vb->free == 0) { | ||
818 | spin_lock(&vbq->lock); | ||
819 | list_del_init(&vb->free_list); | ||
820 | spin_unlock(&vbq->lock); | ||
821 | } | 870 | } |
822 | spin_unlock(&vb->lock); | 871 | goto next; |
823 | break; | ||
824 | } | 872 | } |
873 | addr = vb->va->va_start + (i << PAGE_SHIFT); | ||
874 | BUG_ON(addr_to_vb_idx(addr) != | ||
875 | addr_to_vb_idx(vb->va->va_start)); | ||
876 | vb->free -= 1UL << order; | ||
877 | if (vb->free == 0) { | ||
878 | spin_lock(&vbq->lock); | ||
879 | list_del_rcu(&vb->free_list); | ||
880 | spin_unlock(&vbq->lock); | ||
881 | } | ||
882 | spin_unlock(&vb->lock); | ||
883 | break; | ||
884 | next: | ||
825 | spin_unlock(&vb->lock); | 885 | spin_unlock(&vb->lock); |
826 | } | 886 | } |
887 | |||
888 | if (purge) | ||
889 | purge_fragmented_blocks_thiscpu(); | ||
890 | |||
827 | put_cpu_var(vmap_block_queue); | 891 | put_cpu_var(vmap_block_queue); |
828 | rcu_read_unlock(); | 892 | rcu_read_unlock(); |
829 | 893 | ||
@@ -860,11 +924,11 @@ static void vb_free(const void *addr, unsigned long size) | |||
860 | BUG_ON(!vb); | 924 | BUG_ON(!vb); |
861 | 925 | ||
862 | spin_lock(&vb->lock); | 926 | spin_lock(&vb->lock); |
863 | bitmap_allocate_region(vb->dirty_map, offset >> PAGE_SHIFT, order); | 927 | BUG_ON(bitmap_allocate_region(vb->dirty_map, offset >> PAGE_SHIFT, order)); |
864 | 928 | ||
865 | vb->dirty += 1UL << order; | 929 | vb->dirty += 1UL << order; |
866 | if (vb->dirty == VMAP_BBMAP_BITS) { | 930 | if (vb->dirty == VMAP_BBMAP_BITS) { |
867 | BUG_ON(vb->free || !list_empty(&vb->free_list)); | 931 | BUG_ON(vb->free); |
868 | spin_unlock(&vb->lock); | 932 | spin_unlock(&vb->lock); |
869 | free_vmap_block(vb); | 933 | free_vmap_block(vb); |
870 | } else | 934 | } else |
@@ -1033,8 +1097,6 @@ void __init vmalloc_init(void) | |||
1033 | vbq = &per_cpu(vmap_block_queue, i); | 1097 | vbq = &per_cpu(vmap_block_queue, i); |
1034 | spin_lock_init(&vbq->lock); | 1098 | spin_lock_init(&vbq->lock); |
1035 | INIT_LIST_HEAD(&vbq->free); | 1099 | INIT_LIST_HEAD(&vbq->free); |
1036 | INIT_LIST_HEAD(&vbq->dirty); | ||
1037 | vbq->nr_dirty = 0; | ||
1038 | } | 1100 | } |
1039 | 1101 | ||
1040 | /* Import existing vmlist entries. */ | 1102 | /* Import existing vmlist entries. */ |
diff --git a/net/9p/client.c b/net/9p/client.c index 8af95b2dddd6..09d4f1e2e4a8 100644 --- a/net/9p/client.c +++ b/net/9p/client.c | |||
@@ -69,7 +69,7 @@ p9_client_rpc(struct p9_client *c, int8_t type, const char *fmt, ...); | |||
69 | 69 | ||
70 | static int parse_opts(char *opts, struct p9_client *clnt) | 70 | static int parse_opts(char *opts, struct p9_client *clnt) |
71 | { | 71 | { |
72 | char *options; | 72 | char *options, *tmp_options; |
73 | char *p; | 73 | char *p; |
74 | substring_t args[MAX_OPT_ARGS]; | 74 | substring_t args[MAX_OPT_ARGS]; |
75 | int option; | 75 | int option; |
@@ -81,12 +81,13 @@ static int parse_opts(char *opts, struct p9_client *clnt) | |||
81 | if (!opts) | 81 | if (!opts) |
82 | return 0; | 82 | return 0; |
83 | 83 | ||
84 | options = kstrdup(opts, GFP_KERNEL); | 84 | tmp_options = kstrdup(opts, GFP_KERNEL); |
85 | if (!options) { | 85 | if (!tmp_options) { |
86 | P9_DPRINTK(P9_DEBUG_ERROR, | 86 | P9_DPRINTK(P9_DEBUG_ERROR, |
87 | "failed to allocate copy of option string\n"); | 87 | "failed to allocate copy of option string\n"); |
88 | return -ENOMEM; | 88 | return -ENOMEM; |
89 | } | 89 | } |
90 | options = tmp_options; | ||
90 | 91 | ||
91 | while ((p = strsep(&options, ",")) != NULL) { | 92 | while ((p = strsep(&options, ",")) != NULL) { |
92 | int token; | 93 | int token; |
@@ -108,6 +109,13 @@ static int parse_opts(char *opts, struct p9_client *clnt) | |||
108 | break; | 109 | break; |
109 | case Opt_trans: | 110 | case Opt_trans: |
110 | clnt->trans_mod = v9fs_get_trans_by_name(&args[0]); | 111 | clnt->trans_mod = v9fs_get_trans_by_name(&args[0]); |
112 | if(clnt->trans_mod == NULL) { | ||
113 | P9_DPRINTK(P9_DEBUG_ERROR, | ||
114 | "Could not find request transport: %s\n", | ||
115 | (char *) &args[0]); | ||
116 | ret = -EINVAL; | ||
117 | goto free_and_return; | ||
118 | } | ||
111 | break; | 119 | break; |
112 | case Opt_legacy: | 120 | case Opt_legacy: |
113 | clnt->dotu = 0; | 121 | clnt->dotu = 0; |
@@ -117,7 +125,8 @@ static int parse_opts(char *opts, struct p9_client *clnt) | |||
117 | } | 125 | } |
118 | } | 126 | } |
119 | 127 | ||
120 | kfree(options); | 128 | free_and_return: |
129 | kfree(tmp_options); | ||
121 | return ret; | 130 | return ret; |
122 | } | 131 | } |
123 | 132 | ||
@@ -667,18 +676,12 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) | |||
667 | clnt->trans = NULL; | 676 | clnt->trans = NULL; |
668 | spin_lock_init(&clnt->lock); | 677 | spin_lock_init(&clnt->lock); |
669 | INIT_LIST_HEAD(&clnt->fidlist); | 678 | INIT_LIST_HEAD(&clnt->fidlist); |
670 | clnt->fidpool = p9_idpool_create(); | ||
671 | if (IS_ERR(clnt->fidpool)) { | ||
672 | err = PTR_ERR(clnt->fidpool); | ||
673 | clnt->fidpool = NULL; | ||
674 | goto error; | ||
675 | } | ||
676 | 679 | ||
677 | p9_tag_init(clnt); | 680 | p9_tag_init(clnt); |
678 | 681 | ||
679 | err = parse_opts(options, clnt); | 682 | err = parse_opts(options, clnt); |
680 | if (err < 0) | 683 | if (err < 0) |
681 | goto error; | 684 | goto free_client; |
682 | 685 | ||
683 | if (!clnt->trans_mod) | 686 | if (!clnt->trans_mod) |
684 | clnt->trans_mod = v9fs_get_default_trans(); | 687 | clnt->trans_mod = v9fs_get_default_trans(); |
@@ -687,7 +690,14 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) | |||
687 | err = -EPROTONOSUPPORT; | 690 | err = -EPROTONOSUPPORT; |
688 | P9_DPRINTK(P9_DEBUG_ERROR, | 691 | P9_DPRINTK(P9_DEBUG_ERROR, |
689 | "No transport defined or default transport\n"); | 692 | "No transport defined or default transport\n"); |
690 | goto error; | 693 | goto free_client; |
694 | } | ||
695 | |||
696 | clnt->fidpool = p9_idpool_create(); | ||
697 | if (IS_ERR(clnt->fidpool)) { | ||
698 | err = PTR_ERR(clnt->fidpool); | ||
699 | clnt->fidpool = NULL; | ||
700 | goto put_trans; | ||
691 | } | 701 | } |
692 | 702 | ||
693 | P9_DPRINTK(P9_DEBUG_MUX, "clnt %p trans %p msize %d dotu %d\n", | 703 | P9_DPRINTK(P9_DEBUG_MUX, "clnt %p trans %p msize %d dotu %d\n", |
@@ -695,19 +705,25 @@ struct p9_client *p9_client_create(const char *dev_name, char *options) | |||
695 | 705 | ||
696 | err = clnt->trans_mod->create(clnt, dev_name, options); | 706 | err = clnt->trans_mod->create(clnt, dev_name, options); |
697 | if (err) | 707 | if (err) |
698 | goto error; | 708 | goto destroy_fidpool; |
699 | 709 | ||
700 | if ((clnt->msize+P9_IOHDRSZ) > clnt->trans_mod->maxsize) | 710 | if ((clnt->msize+P9_IOHDRSZ) > clnt->trans_mod->maxsize) |
701 | clnt->msize = clnt->trans_mod->maxsize-P9_IOHDRSZ; | 711 | clnt->msize = clnt->trans_mod->maxsize-P9_IOHDRSZ; |
702 | 712 | ||
703 | err = p9_client_version(clnt); | 713 | err = p9_client_version(clnt); |
704 | if (err) | 714 | if (err) |
705 | goto error; | 715 | goto close_trans; |
706 | 716 | ||
707 | return clnt; | 717 | return clnt; |
708 | 718 | ||
709 | error: | 719 | close_trans: |
710 | p9_client_destroy(clnt); | 720 | clnt->trans_mod->close(clnt); |
721 | destroy_fidpool: | ||
722 | p9_idpool_destroy(clnt->fidpool); | ||
723 | put_trans: | ||
724 | v9fs_put_trans(clnt->trans_mod); | ||
725 | free_client: | ||
726 | kfree(clnt); | ||
711 | return ERR_PTR(err); | 727 | return ERR_PTR(err); |
712 | } | 728 | } |
713 | EXPORT_SYMBOL(p9_client_create); | 729 | EXPORT_SYMBOL(p9_client_create); |
@@ -1214,10 +1230,11 @@ static int p9_client_statsize(struct p9_wstat *wst, int optional) | |||
1214 | { | 1230 | { |
1215 | int ret; | 1231 | int ret; |
1216 | 1232 | ||
1233 | /* NOTE: size shouldn't include its own length */ | ||
1217 | /* size[2] type[2] dev[4] qid[13] */ | 1234 | /* size[2] type[2] dev[4] qid[13] */ |
1218 | /* mode[4] atime[4] mtime[4] length[8]*/ | 1235 | /* mode[4] atime[4] mtime[4] length[8]*/ |
1219 | /* name[s] uid[s] gid[s] muid[s] */ | 1236 | /* name[s] uid[s] gid[s] muid[s] */ |
1220 | ret = 2+2+4+13+4+4+4+8+2+2+2+2; | 1237 | ret = 2+4+13+4+4+4+8+2+2+2+2; |
1221 | 1238 | ||
1222 | if (wst->name) | 1239 | if (wst->name) |
1223 | ret += strlen(wst->name); | 1240 | ret += strlen(wst->name); |
@@ -1258,7 +1275,7 @@ int p9_client_wstat(struct p9_fid *fid, struct p9_wstat *wst) | |||
1258 | wst->name, wst->uid, wst->gid, wst->muid, wst->extension, | 1275 | wst->name, wst->uid, wst->gid, wst->muid, wst->extension, |
1259 | wst->n_uid, wst->n_gid, wst->n_muid); | 1276 | wst->n_uid, wst->n_gid, wst->n_muid); |
1260 | 1277 | ||
1261 | req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size, wst); | 1278 | req = p9_client_rpc(clnt, P9_TWSTAT, "dwS", fid->fid, wst->size+2, wst); |
1262 | if (IS_ERR(req)) { | 1279 | if (IS_ERR(req)) { |
1263 | err = PTR_ERR(req); | 1280 | err = PTR_ERR(req); |
1264 | goto error; | 1281 | goto error; |
diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c index be1cb909d8c0..31d0b05582a9 100644 --- a/net/9p/trans_fd.c +++ b/net/9p/trans_fd.c | |||
@@ -714,7 +714,7 @@ static int parse_opts(char *params, struct p9_fd_opts *opts) | |||
714 | char *p; | 714 | char *p; |
715 | substring_t args[MAX_OPT_ARGS]; | 715 | substring_t args[MAX_OPT_ARGS]; |
716 | int option; | 716 | int option; |
717 | char *options; | 717 | char *options, *tmp_options; |
718 | int ret; | 718 | int ret; |
719 | 719 | ||
720 | opts->port = P9_PORT; | 720 | opts->port = P9_PORT; |
@@ -724,12 +724,13 @@ static int parse_opts(char *params, struct p9_fd_opts *opts) | |||
724 | if (!params) | 724 | if (!params) |
725 | return 0; | 725 | return 0; |
726 | 726 | ||
727 | options = kstrdup(params, GFP_KERNEL); | 727 | tmp_options = kstrdup(params, GFP_KERNEL); |
728 | if (!options) { | 728 | if (!tmp_options) { |
729 | P9_DPRINTK(P9_DEBUG_ERROR, | 729 | P9_DPRINTK(P9_DEBUG_ERROR, |
730 | "failed to allocate copy of option string\n"); | 730 | "failed to allocate copy of option string\n"); |
731 | return -ENOMEM; | 731 | return -ENOMEM; |
732 | } | 732 | } |
733 | options = tmp_options; | ||
733 | 734 | ||
734 | while ((p = strsep(&options, ",")) != NULL) { | 735 | while ((p = strsep(&options, ",")) != NULL) { |
735 | int token; | 736 | int token; |
@@ -760,7 +761,8 @@ static int parse_opts(char *params, struct p9_fd_opts *opts) | |||
760 | continue; | 761 | continue; |
761 | } | 762 | } |
762 | } | 763 | } |
763 | kfree(options); | 764 | |
765 | kfree(tmp_options); | ||
764 | return 0; | 766 | return 0; |
765 | } | 767 | } |
766 | 768 | ||
diff --git a/net/9p/trans_rdma.c b/net/9p/trans_rdma.c index 65cb29db03f8..2c95a89c0f46 100644 --- a/net/9p/trans_rdma.c +++ b/net/9p/trans_rdma.c | |||
@@ -166,7 +166,7 @@ static int parse_opts(char *params, struct p9_rdma_opts *opts) | |||
166 | char *p; | 166 | char *p; |
167 | substring_t args[MAX_OPT_ARGS]; | 167 | substring_t args[MAX_OPT_ARGS]; |
168 | int option; | 168 | int option; |
169 | char *options; | 169 | char *options, *tmp_options; |
170 | int ret; | 170 | int ret; |
171 | 171 | ||
172 | opts->port = P9_PORT; | 172 | opts->port = P9_PORT; |
@@ -177,12 +177,13 @@ static int parse_opts(char *params, struct p9_rdma_opts *opts) | |||
177 | if (!params) | 177 | if (!params) |
178 | return 0; | 178 | return 0; |
179 | 179 | ||
180 | options = kstrdup(params, GFP_KERNEL); | 180 | tmp_options = kstrdup(params, GFP_KERNEL); |
181 | if (!options) { | 181 | if (!tmp_options) { |
182 | P9_DPRINTK(P9_DEBUG_ERROR, | 182 | P9_DPRINTK(P9_DEBUG_ERROR, |
183 | "failed to allocate copy of option string\n"); | 183 | "failed to allocate copy of option string\n"); |
184 | return -ENOMEM; | 184 | return -ENOMEM; |
185 | } | 185 | } |
186 | options = tmp_options; | ||
186 | 187 | ||
187 | while ((p = strsep(&options, ",")) != NULL) { | 188 | while ((p = strsep(&options, ",")) != NULL) { |
188 | int token; | 189 | int token; |
@@ -216,7 +217,7 @@ static int parse_opts(char *params, struct p9_rdma_opts *opts) | |||
216 | } | 217 | } |
217 | /* RQ must be at least as large as the SQ */ | 218 | /* RQ must be at least as large as the SQ */ |
218 | opts->rq_depth = max(opts->rq_depth, opts->sq_depth); | 219 | opts->rq_depth = max(opts->rq_depth, opts->sq_depth); |
219 | kfree(options); | 220 | kfree(tmp_options); |
220 | return 0; | 221 | return 0; |
221 | } | 222 | } |
222 | 223 | ||
diff --git a/net/9p/trans_virtio.c b/net/9p/trans_virtio.c index ea1e3daabefe..cb50f4ae5eef 100644 --- a/net/9p/trans_virtio.c +++ b/net/9p/trans_virtio.c | |||
@@ -102,7 +102,8 @@ static void p9_virtio_close(struct p9_client *client) | |||
102 | struct virtio_chan *chan = client->trans; | 102 | struct virtio_chan *chan = client->trans; |
103 | 103 | ||
104 | mutex_lock(&virtio_9p_lock); | 104 | mutex_lock(&virtio_9p_lock); |
105 | chan->inuse = false; | 105 | if (chan) |
106 | chan->inuse = false; | ||
106 | mutex_unlock(&virtio_9p_lock); | 107 | mutex_unlock(&virtio_9p_lock); |
107 | } | 108 | } |
108 | 109 | ||
@@ -311,6 +312,7 @@ p9_virtio_create(struct p9_client *client, const char *devname, char *args) | |||
311 | } | 312 | } |
312 | 313 | ||
313 | client->trans = (void *)chan; | 314 | client->trans = (void *)chan; |
315 | client->status = Connected; | ||
314 | chan->client = client; | 316 | chan->client = client; |
315 | 317 | ||
316 | return 0; | 318 | return 0; |
diff --git a/net/core/ethtool.c b/net/core/ethtool.c index 82cae3bca78d..d08a0c7675bf 100644 --- a/net/core/ethtool.c +++ b/net/core/ethtool.c | |||
@@ -1280,6 +1280,7 @@ int dev_ethtool(struct net *net, struct ifreq *ifr) | |||
1280 | case ETHTOOL_GPERMADDR: | 1280 | case ETHTOOL_GPERMADDR: |
1281 | case ETHTOOL_GUFO: | 1281 | case ETHTOOL_GUFO: |
1282 | case ETHTOOL_GGSO: | 1282 | case ETHTOOL_GGSO: |
1283 | case ETHTOOL_GGRO: | ||
1283 | case ETHTOOL_GFLAGS: | 1284 | case ETHTOOL_GFLAGS: |
1284 | case ETHTOOL_GPFLAGS: | 1285 | case ETHTOOL_GPFLAGS: |
1285 | case ETHTOOL_GRXFH: | 1286 | case ETHTOOL_GRXFH: |
diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c index b55a0c3df82f..83ed71500898 100644 --- a/net/ipv4/ipcomp.c +++ b/net/ipv4/ipcomp.c | |||
@@ -127,16 +127,12 @@ static int ipcomp4_init_state(struct xfrm_state *x) | |||
127 | if (x->props.mode == XFRM_MODE_TUNNEL) { | 127 | if (x->props.mode == XFRM_MODE_TUNNEL) { |
128 | err = ipcomp_tunnel_attach(x); | 128 | err = ipcomp_tunnel_attach(x); |
129 | if (err) | 129 | if (err) |
130 | goto error_tunnel; | 130 | goto out; |
131 | } | 131 | } |
132 | 132 | ||
133 | err = 0; | 133 | err = 0; |
134 | out: | 134 | out: |
135 | return err; | 135 | return err; |
136 | |||
137 | error_tunnel: | ||
138 | ipcomp_destroy(x); | ||
139 | goto out; | ||
140 | } | 136 | } |
141 | 137 | ||
142 | static const struct xfrm_type ipcomp_type = { | 138 | static const struct xfrm_type ipcomp_type = { |
diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c index a9fbb151bb79..bb42f39c1db8 100644 --- a/net/ipv6/ipcomp6.c +++ b/net/ipv6/ipcomp6.c | |||
@@ -157,16 +157,12 @@ static int ipcomp6_init_state(struct xfrm_state *x) | |||
157 | if (x->props.mode == XFRM_MODE_TUNNEL) { | 157 | if (x->props.mode == XFRM_MODE_TUNNEL) { |
158 | err = ipcomp6_tunnel_attach(x); | 158 | err = ipcomp6_tunnel_attach(x); |
159 | if (err) | 159 | if (err) |
160 | goto error_tunnel; | 160 | goto out; |
161 | } | 161 | } |
162 | 162 | ||
163 | err = 0; | 163 | err = 0; |
164 | out: | 164 | out: |
165 | return err; | 165 | return err; |
166 | error_tunnel: | ||
167 | ipcomp_destroy(x); | ||
168 | |||
169 | goto out; | ||
170 | } | 166 | } |
171 | 167 | ||
172 | static const struct xfrm_type ipcomp6_type = | 168 | static const struct xfrm_type ipcomp6_type = |
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c index 96f2088e7448..9fa3322b2a7d 100644 --- a/net/xfrm/xfrm_state.c +++ b/net/xfrm/xfrm_state.c | |||
@@ -1106,7 +1106,7 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, int *errp) | |||
1106 | int err = -ENOMEM; | 1106 | int err = -ENOMEM; |
1107 | struct xfrm_state *x = xfrm_state_alloc(net); | 1107 | struct xfrm_state *x = xfrm_state_alloc(net); |
1108 | if (!x) | 1108 | if (!x) |
1109 | goto error; | 1109 | goto out; |
1110 | 1110 | ||
1111 | memcpy(&x->id, &orig->id, sizeof(x->id)); | 1111 | memcpy(&x->id, &orig->id, sizeof(x->id)); |
1112 | memcpy(&x->sel, &orig->sel, sizeof(x->sel)); | 1112 | memcpy(&x->sel, &orig->sel, sizeof(x->sel)); |
@@ -1164,16 +1164,10 @@ static struct xfrm_state *xfrm_state_clone(struct xfrm_state *orig, int *errp) | |||
1164 | return x; | 1164 | return x; |
1165 | 1165 | ||
1166 | error: | 1166 | error: |
1167 | xfrm_state_put(x); | ||
1168 | out: | ||
1167 | if (errp) | 1169 | if (errp) |
1168 | *errp = err; | 1170 | *errp = err; |
1169 | if (x) { | ||
1170 | kfree(x->aalg); | ||
1171 | kfree(x->ealg); | ||
1172 | kfree(x->calg); | ||
1173 | kfree(x->encap); | ||
1174 | kfree(x->coaddr); | ||
1175 | } | ||
1176 | kfree(x); | ||
1177 | return NULL; | 1171 | return NULL; |
1178 | } | 1172 | } |
1179 | 1173 | ||
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl index 090f24839700..2f3230db7ffb 100755 --- a/scripts/get_maintainer.pl +++ b/scripts/get_maintainer.pl | |||
@@ -74,8 +74,8 @@ my %VCS_cmds; | |||
74 | my %VCS_cmds_git = ( | 74 | my %VCS_cmds_git = ( |
75 | "execute_cmd" => \&git_execute_cmd, | 75 | "execute_cmd" => \&git_execute_cmd, |
76 | "available" => '(which("git") ne "") && (-d ".git")', | 76 | "available" => '(which("git") ne "") && (-d ".git")', |
77 | "find_signers_cmd" => "git log --since=\$email_git_since -- \$file", | 77 | "find_signers_cmd" => "git log --no-color --since=\$email_git_since -- \$file", |
78 | "find_commit_signers_cmd" => "git log -1 \$commit", | 78 | "find_commit_signers_cmd" => "git log --no-color -1 \$commit", |
79 | "blame_range_cmd" => "git blame -l -L \$diff_start,+\$diff_length \$file", | 79 | "blame_range_cmd" => "git blame -l -L \$diff_start,+\$diff_length \$file", |
80 | "blame_file_cmd" => "git blame -l \$file", | 80 | "blame_file_cmd" => "git blame -l \$file", |
81 | "commit_pattern" => "^commit [0-9a-f]{40,40}", | 81 | "commit_pattern" => "^commit [0-9a-f]{40,40}", |
diff --git a/scripts/markup_oops.pl b/scripts/markup_oops.pl index ce3e40b01e48..e950f9cde019 100644 --- a/scripts/markup_oops.pl +++ b/scripts/markup_oops.pl | |||
@@ -158,7 +158,7 @@ while (<STDIN>) { | |||
158 | $function = $1; | 158 | $function = $1; |
159 | $func_offset = $2; | 159 | $func_offset = $2; |
160 | } | 160 | } |
161 | if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\] \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+(0x[0-9a-f]+)\/0x[a-f0-9]/) { | 161 | if ($line =~ /RIP: 0010:\[\<[0-9a-f]+\>\] \[\<[0-9a-f]+\>\] ([a-zA-Z0-9\_]+)\+0x([0-9a-f]+)\/0x[a-f0-9]/) { |
162 | $function = $1; | 162 | $function = $1; |
163 | $func_offset = $2; | 163 | $func_offset = $2; |
164 | } | 164 | } |
diff --git a/security/inode.c b/security/inode.c index f7496c6a022b..c3a793881d04 100644 --- a/security/inode.c +++ b/security/inode.c | |||
@@ -156,15 +156,8 @@ static int create_by_name(const char *name, mode_t mode, | |||
156 | * block. A pointer to that is in the struct vfsmount that we | 156 | * block. A pointer to that is in the struct vfsmount that we |
157 | * have around. | 157 | * have around. |
158 | */ | 158 | */ |
159 | if (!parent ) { | 159 | if (!parent) |
160 | if (mount && mount->mnt_sb) { | 160 | parent = mount->mnt_sb->s_root; |
161 | parent = mount->mnt_sb->s_root; | ||
162 | } | ||
163 | } | ||
164 | if (!parent) { | ||
165 | pr_debug("securityfs: Ah! can not find a parent!\n"); | ||
166 | return -EFAULT; | ||
167 | } | ||
168 | 161 | ||
169 | mutex_lock(&parent->d_inode->i_mutex); | 162 | mutex_lock(&parent->d_inode->i_mutex); |
170 | *dentry = lookup_one_len(name, parent, strlen(name)); | 163 | *dentry = lookup_one_len(name, parent, strlen(name)); |
diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h index c41afe6639a0..47fb65d1fcbd 100644 --- a/security/integrity/ima/ima.h +++ b/security/integrity/ima/ima.h | |||
@@ -65,7 +65,6 @@ void integrity_audit_msg(int audit_msgno, struct inode *inode, | |||
65 | const char *cause, int result, int info); | 65 | const char *cause, int result, int info); |
66 | 66 | ||
67 | /* Internal IMA function definitions */ | 67 | /* Internal IMA function definitions */ |
68 | void ima_iintcache_init(void); | ||
69 | int ima_init(void); | 68 | int ima_init(void); |
70 | void ima_cleanup(void); | 69 | void ima_cleanup(void); |
71 | int ima_fs_init(void); | 70 | int ima_fs_init(void); |
@@ -131,7 +130,7 @@ void iint_free(struct kref *kref); | |||
131 | void iint_rcu_free(struct rcu_head *rcu); | 130 | void iint_rcu_free(struct rcu_head *rcu); |
132 | 131 | ||
133 | /* IMA policy related functions */ | 132 | /* IMA policy related functions */ |
134 | enum ima_hooks { PATH_CHECK = 1, FILE_MMAP, BPRM_CHECK }; | 133 | enum ima_hooks { FILE_CHECK = 1, FILE_MMAP, BPRM_CHECK }; |
135 | 134 | ||
136 | int ima_match_policy(struct inode *inode, enum ima_hooks func, int mask); | 135 | int ima_match_policy(struct inode *inode, enum ima_hooks func, int mask); |
137 | void ima_init_policy(void); | 136 | void ima_init_policy(void); |
diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c index 3cd58b60afd2..2a5e0bcf3887 100644 --- a/security/integrity/ima/ima_api.c +++ b/security/integrity/ima/ima_api.c | |||
@@ -95,12 +95,12 @@ err_out: | |||
95 | * ima_must_measure - measure decision based on policy. | 95 | * ima_must_measure - measure decision based on policy. |
96 | * @inode: pointer to inode to measure | 96 | * @inode: pointer to inode to measure |
97 | * @mask: contains the permission mask (MAY_READ, MAY_WRITE, MAY_EXECUTE) | 97 | * @mask: contains the permission mask (MAY_READ, MAY_WRITE, MAY_EXECUTE) |
98 | * @function: calling function (PATH_CHECK, BPRM_CHECK, FILE_MMAP) | 98 | * @function: calling function (FILE_CHECK, BPRM_CHECK, FILE_MMAP) |
99 | * | 99 | * |
100 | * The policy is defined in terms of keypairs: | 100 | * The policy is defined in terms of keypairs: |
101 | * subj=, obj=, type=, func=, mask=, fsmagic= | 101 | * subj=, obj=, type=, func=, mask=, fsmagic= |
102 | * subj,obj, and type: are LSM specific. | 102 | * subj,obj, and type: are LSM specific. |
103 | * func: PATH_CHECK | BPRM_CHECK | FILE_MMAP | 103 | * func: FILE_CHECK | BPRM_CHECK | FILE_MMAP |
104 | * mask: contains the permission mask | 104 | * mask: contains the permission mask |
105 | * fsmagic: hex value | 105 | * fsmagic: hex value |
106 | * | 106 | * |
diff --git a/security/integrity/ima/ima_iint.c b/security/integrity/ima/ima_iint.c index fa592ff1ac1c..0d83edcfc402 100644 --- a/security/integrity/ima/ima_iint.c +++ b/security/integrity/ima/ima_iint.c | |||
@@ -52,9 +52,6 @@ int ima_inode_alloc(struct inode *inode) | |||
52 | struct ima_iint_cache *iint = NULL; | 52 | struct ima_iint_cache *iint = NULL; |
53 | int rc = 0; | 53 | int rc = 0; |
54 | 54 | ||
55 | if (!ima_initialized) | ||
56 | return 0; | ||
57 | |||
58 | iint = kmem_cache_alloc(iint_cache, GFP_NOFS); | 55 | iint = kmem_cache_alloc(iint_cache, GFP_NOFS); |
59 | if (!iint) | 56 | if (!iint) |
60 | return -ENOMEM; | 57 | return -ENOMEM; |
@@ -118,8 +115,6 @@ void ima_inode_free(struct inode *inode) | |||
118 | { | 115 | { |
119 | struct ima_iint_cache *iint; | 116 | struct ima_iint_cache *iint; |
120 | 117 | ||
121 | if (!ima_initialized) | ||
122 | return; | ||
123 | spin_lock(&ima_iint_lock); | 118 | spin_lock(&ima_iint_lock); |
124 | iint = radix_tree_delete(&ima_iint_store, (unsigned long)inode); | 119 | iint = radix_tree_delete(&ima_iint_store, (unsigned long)inode); |
125 | spin_unlock(&ima_iint_lock); | 120 | spin_unlock(&ima_iint_lock); |
@@ -141,9 +136,11 @@ static void init_once(void *foo) | |||
141 | kref_set(&iint->refcount, 1); | 136 | kref_set(&iint->refcount, 1); |
142 | } | 137 | } |
143 | 138 | ||
144 | void __init ima_iintcache_init(void) | 139 | static int __init ima_iintcache_init(void) |
145 | { | 140 | { |
146 | iint_cache = | 141 | iint_cache = |
147 | kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0, | 142 | kmem_cache_create("iint_cache", sizeof(struct ima_iint_cache), 0, |
148 | SLAB_PANIC, init_once); | 143 | SLAB_PANIC, init_once); |
144 | return 0; | ||
149 | } | 145 | } |
146 | security_initcall(ima_iintcache_init); | ||
diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c index a89f44d5e030..294b005d6520 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c | |||
@@ -14,7 +14,7 @@ | |||
14 | * | 14 | * |
15 | * File: ima_main.c | 15 | * File: ima_main.c |
16 | * implements the IMA hooks: ima_bprm_check, ima_file_mmap, | 16 | * implements the IMA hooks: ima_bprm_check, ima_file_mmap, |
17 | * and ima_path_check. | 17 | * and ima_file_check. |
18 | */ | 18 | */ |
19 | #include <linux/module.h> | 19 | #include <linux/module.h> |
20 | #include <linux/file.h> | 20 | #include <linux/file.h> |
@@ -84,6 +84,36 @@ out: | |||
84 | return found; | 84 | return found; |
85 | } | 85 | } |
86 | 86 | ||
87 | /* ima_read_write_check - reflect possible reading/writing errors in the PCR. | ||
88 | * | ||
89 | * When opening a file for read, if the file is already open for write, | ||
90 | * the file could change, resulting in a file measurement error. | ||
91 | * | ||
92 | * Opening a file for write, if the file is already open for read, results | ||
93 | * in a time of measure, time of use (ToMToU) error. | ||
94 | * | ||
95 | * In either case invalidate the PCR. | ||
96 | */ | ||
97 | enum iint_pcr_error { TOMTOU, OPEN_WRITERS }; | ||
98 | static void ima_read_write_check(enum iint_pcr_error error, | ||
99 | struct ima_iint_cache *iint, | ||
100 | struct inode *inode, | ||
101 | const unsigned char *filename) | ||
102 | { | ||
103 | switch (error) { | ||
104 | case TOMTOU: | ||
105 | if (iint->readcount > 0) | ||
106 | ima_add_violation(inode, filename, "invalid_pcr", | ||
107 | "ToMToU"); | ||
108 | break; | ||
109 | case OPEN_WRITERS: | ||
110 | if (iint->writecount > 0) | ||
111 | ima_add_violation(inode, filename, "invalid_pcr", | ||
112 | "open_writers"); | ||
113 | break; | ||
114 | } | ||
115 | } | ||
116 | |||
87 | /* | 117 | /* |
88 | * Update the counts given an fmode_t | 118 | * Update the counts given an fmode_t |
89 | */ | 119 | */ |
@@ -99,6 +129,47 @@ static void ima_inc_counts(struct ima_iint_cache *iint, fmode_t mode) | |||
99 | } | 129 | } |
100 | 130 | ||
101 | /* | 131 | /* |
132 | * ima_counts_get - increment file counts | ||
133 | * | ||
134 | * Maintain read/write counters for all files, but only | ||
135 | * invalidate the PCR for measured files: | ||
136 | * - Opening a file for write when already open for read, | ||
137 | * results in a time of measure, time of use (ToMToU) error. | ||
138 | * - Opening a file for read when already open for write, | ||
139 | * could result in a file measurement error. | ||
140 | * | ||
141 | */ | ||
142 | void ima_counts_get(struct file *file) | ||
143 | { | ||
144 | struct dentry *dentry = file->f_path.dentry; | ||
145 | struct inode *inode = dentry->d_inode; | ||
146 | fmode_t mode = file->f_mode; | ||
147 | struct ima_iint_cache *iint; | ||
148 | int rc; | ||
149 | |||
150 | if (!ima_initialized || !S_ISREG(inode->i_mode)) | ||
151 | return; | ||
152 | iint = ima_iint_find_get(inode); | ||
153 | if (!iint) | ||
154 | return; | ||
155 | mutex_lock(&iint->mutex); | ||
156 | rc = ima_must_measure(iint, inode, MAY_READ, FILE_CHECK); | ||
157 | if (rc < 0) | ||
158 | goto out; | ||
159 | |||
160 | if (mode & FMODE_WRITE) { | ||
161 | ima_read_write_check(TOMTOU, iint, inode, dentry->d_name.name); | ||
162 | goto out; | ||
163 | } | ||
164 | ima_read_write_check(OPEN_WRITERS, iint, inode, dentry->d_name.name); | ||
165 | out: | ||
166 | ima_inc_counts(iint, file->f_mode); | ||
167 | mutex_unlock(&iint->mutex); | ||
168 | |||
169 | kref_put(&iint->refcount, iint_free); | ||
170 | } | ||
171 | |||
172 | /* | ||
102 | * Decrement ima counts | 173 | * Decrement ima counts |
103 | */ | 174 | */ |
104 | static void ima_dec_counts(struct ima_iint_cache *iint, struct inode *inode, | 175 | static void ima_dec_counts(struct ima_iint_cache *iint, struct inode *inode, |
@@ -153,123 +224,6 @@ void ima_file_free(struct file *file) | |||
153 | kref_put(&iint->refcount, iint_free); | 224 | kref_put(&iint->refcount, iint_free); |
154 | } | 225 | } |
155 | 226 | ||
156 | /* ima_read_write_check - reflect possible reading/writing errors in the PCR. | ||
157 | * | ||
158 | * When opening a file for read, if the file is already open for write, | ||
159 | * the file could change, resulting in a file measurement error. | ||
160 | * | ||
161 | * Opening a file for write, if the file is already open for read, results | ||
162 | * in a time of measure, time of use (ToMToU) error. | ||
163 | * | ||
164 | * In either case invalidate the PCR. | ||
165 | */ | ||
166 | enum iint_pcr_error { TOMTOU, OPEN_WRITERS }; | ||
167 | static void ima_read_write_check(enum iint_pcr_error error, | ||
168 | struct ima_iint_cache *iint, | ||
169 | struct inode *inode, | ||
170 | const unsigned char *filename) | ||
171 | { | ||
172 | switch (error) { | ||
173 | case TOMTOU: | ||
174 | if (iint->readcount > 0) | ||
175 | ima_add_violation(inode, filename, "invalid_pcr", | ||
176 | "ToMToU"); | ||
177 | break; | ||
178 | case OPEN_WRITERS: | ||
179 | if (iint->writecount > 0) | ||
180 | ima_add_violation(inode, filename, "invalid_pcr", | ||
181 | "open_writers"); | ||
182 | break; | ||
183 | } | ||
184 | } | ||
185 | |||
186 | static int get_path_measurement(struct ima_iint_cache *iint, struct file *file, | ||
187 | const unsigned char *filename) | ||
188 | { | ||
189 | int rc = 0; | ||
190 | |||
191 | ima_inc_counts(iint, file->f_mode); | ||
192 | |||
193 | rc = ima_collect_measurement(iint, file); | ||
194 | if (!rc) | ||
195 | ima_store_measurement(iint, file, filename); | ||
196 | return rc; | ||
197 | } | ||
198 | |||
199 | /** | ||
200 | * ima_path_check - based on policy, collect/store measurement. | ||
201 | * @path: contains a pointer to the path to be measured | ||
202 | * @mask: contains MAY_READ, MAY_WRITE or MAY_EXECUTE | ||
203 | * | ||
204 | * Measure the file being open for readonly, based on the | ||
205 | * ima_must_measure() policy decision. | ||
206 | * | ||
207 | * Keep read/write counters for all files, but only | ||
208 | * invalidate the PCR for measured files: | ||
209 | * - Opening a file for write when already open for read, | ||
210 | * results in a time of measure, time of use (ToMToU) error. | ||
211 | * - Opening a file for read when already open for write, | ||
212 | * could result in a file measurement error. | ||
213 | * | ||
214 | * Always return 0 and audit dentry_open failures. | ||
215 | * (Return code will be based upon measurement appraisal.) | ||
216 | */ | ||
217 | int ima_path_check(struct path *path, int mask) | ||
218 | { | ||
219 | struct inode *inode = path->dentry->d_inode; | ||
220 | struct ima_iint_cache *iint; | ||
221 | struct file *file = NULL; | ||
222 | int rc; | ||
223 | |||
224 | if (!ima_initialized || !S_ISREG(inode->i_mode)) | ||
225 | return 0; | ||
226 | iint = ima_iint_find_get(inode); | ||
227 | if (!iint) | ||
228 | return 0; | ||
229 | |||
230 | mutex_lock(&iint->mutex); | ||
231 | |||
232 | rc = ima_must_measure(iint, inode, MAY_READ, PATH_CHECK); | ||
233 | if (rc < 0) | ||
234 | goto out; | ||
235 | |||
236 | if ((mask & MAY_WRITE) || (mask == 0)) | ||
237 | ima_read_write_check(TOMTOU, iint, inode, | ||
238 | path->dentry->d_name.name); | ||
239 | |||
240 | if ((mask & (MAY_WRITE | MAY_READ | MAY_EXEC)) != MAY_READ) | ||
241 | goto out; | ||
242 | |||
243 | ima_read_write_check(OPEN_WRITERS, iint, inode, | ||
244 | path->dentry->d_name.name); | ||
245 | if (!(iint->flags & IMA_MEASURED)) { | ||
246 | struct dentry *dentry = dget(path->dentry); | ||
247 | struct vfsmount *mnt = mntget(path->mnt); | ||
248 | |||
249 | file = dentry_open(dentry, mnt, O_RDONLY | O_LARGEFILE, | ||
250 | current_cred()); | ||
251 | if (IS_ERR(file)) { | ||
252 | int audit_info = 0; | ||
253 | |||
254 | integrity_audit_msg(AUDIT_INTEGRITY_PCR, inode, | ||
255 | dentry->d_name.name, | ||
256 | "add_measurement", | ||
257 | "dentry_open failed", | ||
258 | 1, audit_info); | ||
259 | file = NULL; | ||
260 | goto out; | ||
261 | } | ||
262 | rc = get_path_measurement(iint, file, dentry->d_name.name); | ||
263 | } | ||
264 | out: | ||
265 | mutex_unlock(&iint->mutex); | ||
266 | if (file) | ||
267 | fput(file); | ||
268 | kref_put(&iint->refcount, iint_free); | ||
269 | return 0; | ||
270 | } | ||
271 | EXPORT_SYMBOL_GPL(ima_path_check); | ||
272 | |||
273 | static int process_measurement(struct file *file, const unsigned char *filename, | 227 | static int process_measurement(struct file *file, const unsigned char *filename, |
274 | int mask, int function) | 228 | int mask, int function) |
275 | { | 229 | { |
@@ -297,33 +251,6 @@ out: | |||
297 | return rc; | 251 | return rc; |
298 | } | 252 | } |
299 | 253 | ||
300 | /* | ||
301 | * ima_counts_get - increment file counts | ||
302 | * | ||
303 | * - for IPC shm and shmat file. | ||
304 | * - for nfsd exported files. | ||
305 | * | ||
306 | * Increment the counts for these files to prevent unnecessary | ||
307 | * imbalance messages. | ||
308 | */ | ||
309 | void ima_counts_get(struct file *file) | ||
310 | { | ||
311 | struct inode *inode = file->f_dentry->d_inode; | ||
312 | struct ima_iint_cache *iint; | ||
313 | |||
314 | if (!ima_initialized || !S_ISREG(inode->i_mode)) | ||
315 | return; | ||
316 | iint = ima_iint_find_get(inode); | ||
317 | if (!iint) | ||
318 | return; | ||
319 | mutex_lock(&iint->mutex); | ||
320 | ima_inc_counts(iint, file->f_mode); | ||
321 | mutex_unlock(&iint->mutex); | ||
322 | |||
323 | kref_put(&iint->refcount, iint_free); | ||
324 | } | ||
325 | EXPORT_SYMBOL_GPL(ima_counts_get); | ||
326 | |||
327 | /** | 254 | /** |
328 | * ima_file_mmap - based on policy, collect/store measurement. | 255 | * ima_file_mmap - based on policy, collect/store measurement. |
329 | * @file: pointer to the file to be measured (May be NULL) | 256 | * @file: pointer to the file to be measured (May be NULL) |
@@ -369,11 +296,31 @@ int ima_bprm_check(struct linux_binprm *bprm) | |||
369 | return 0; | 296 | return 0; |
370 | } | 297 | } |
371 | 298 | ||
299 | /** | ||
300 | * ima_path_check - based on policy, collect/store measurement. | ||
301 | * @file: pointer to the file to be measured | ||
302 | * @mask: contains MAY_READ, MAY_WRITE or MAY_EXECUTE | ||
303 | * | ||
304 | * Measure files based on the ima_must_measure() policy decision. | ||
305 | * | ||
306 | * Always return 0 and audit dentry_open failures. | ||
307 | * (Return code will be based upon measurement appraisal.) | ||
308 | */ | ||
309 | int ima_file_check(struct file *file, int mask) | ||
310 | { | ||
311 | int rc; | ||
312 | |||
313 | rc = process_measurement(file, file->f_dentry->d_name.name, | ||
314 | mask & (MAY_READ | MAY_WRITE | MAY_EXEC), | ||
315 | FILE_CHECK); | ||
316 | return 0; | ||
317 | } | ||
318 | EXPORT_SYMBOL_GPL(ima_file_check); | ||
319 | |||
372 | static int __init init_ima(void) | 320 | static int __init init_ima(void) |
373 | { | 321 | { |
374 | int error; | 322 | int error; |
375 | 323 | ||
376 | ima_iintcache_init(); | ||
377 | error = ima_init(); | 324 | error = ima_init(); |
378 | ima_initialized = 1; | 325 | ima_initialized = 1; |
379 | return error; | 326 | return error; |
diff --git a/security/integrity/ima/ima_policy.c b/security/integrity/ima/ima_policy.c index e1278399b345..4759d0f99335 100644 --- a/security/integrity/ima/ima_policy.c +++ b/security/integrity/ima/ima_policy.c | |||
@@ -67,7 +67,7 @@ static struct ima_measure_rule_entry default_rules[] = { | |||
67 | .flags = IMA_FUNC | IMA_MASK}, | 67 | .flags = IMA_FUNC | IMA_MASK}, |
68 | {.action = MEASURE,.func = BPRM_CHECK,.mask = MAY_EXEC, | 68 | {.action = MEASURE,.func = BPRM_CHECK,.mask = MAY_EXEC, |
69 | .flags = IMA_FUNC | IMA_MASK}, | 69 | .flags = IMA_FUNC | IMA_MASK}, |
70 | {.action = MEASURE,.func = PATH_CHECK,.mask = MAY_READ,.uid = 0, | 70 | {.action = MEASURE,.func = FILE_CHECK,.mask = MAY_READ,.uid = 0, |
71 | .flags = IMA_FUNC | IMA_MASK | IMA_UID}, | 71 | .flags = IMA_FUNC | IMA_MASK | IMA_UID}, |
72 | }; | 72 | }; |
73 | 73 | ||
@@ -282,8 +282,11 @@ static int ima_parse_rule(char *rule, struct ima_measure_rule_entry *entry) | |||
282 | break; | 282 | break; |
283 | case Opt_func: | 283 | case Opt_func: |
284 | audit_log_format(ab, "func=%s ", args[0].from); | 284 | audit_log_format(ab, "func=%s ", args[0].from); |
285 | if (strcmp(args[0].from, "PATH_CHECK") == 0) | 285 | if (strcmp(args[0].from, "FILE_CHECK") == 0) |
286 | entry->func = PATH_CHECK; | 286 | entry->func = FILE_CHECK; |
287 | /* PATH_CHECK is for backwards compat */ | ||
288 | else if (strcmp(args[0].from, "PATH_CHECK") == 0) | ||
289 | entry->func = FILE_CHECK; | ||
287 | else if (strcmp(args[0].from, "FILE_MMAP") == 0) | 290 | else if (strcmp(args[0].from, "FILE_MMAP") == 0) |
288 | entry->func = FILE_MMAP; | 291 | entry->func = FILE_MMAP; |
289 | else if (strcmp(args[0].from, "BPRM_CHECK") == 0) | 292 | else if (strcmp(args[0].from, "BPRM_CHECK") == 0) |
diff --git a/security/security.c b/security/security.c index 24e060be9fa5..122b748d0f4c 100644 --- a/security/security.c +++ b/security/security.c | |||
@@ -666,8 +666,6 @@ int security_file_alloc(struct file *file) | |||
666 | void security_file_free(struct file *file) | 666 | void security_file_free(struct file *file) |
667 | { | 667 | { |
668 | security_ops->file_free_security(file); | 668 | security_ops->file_free_security(file); |
669 | if (file->f_dentry) | ||
670 | ima_file_free(file); | ||
671 | } | 669 | } |
672 | 670 | ||
673 | int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) | 671 | int security_file_ioctl(struct file *file, unsigned int cmd, unsigned long arg) |
diff --git a/sound/pci/ctxfi/ctatc.c b/sound/pci/ctxfi/ctatc.c index cb65bd0dd35b..459c1f62783b 100644 --- a/sound/pci/ctxfi/ctatc.c +++ b/sound/pci/ctxfi/ctatc.c | |||
@@ -166,18 +166,7 @@ static void ct_unmap_audio_buffer(struct ct_atc *atc, struct ct_atc_pcm *apcm) | |||
166 | 166 | ||
167 | static unsigned long atc_get_ptp_phys(struct ct_atc *atc, int index) | 167 | static unsigned long atc_get_ptp_phys(struct ct_atc *atc, int index) |
168 | { | 168 | { |
169 | struct ct_vm *vm; | 169 | return atc->vm->get_ptp_phys(atc->vm, index); |
170 | void *kvirt_addr; | ||
171 | unsigned long phys_addr; | ||
172 | |||
173 | vm = atc->vm; | ||
174 | kvirt_addr = vm->get_ptp_virt(vm, index); | ||
175 | if (kvirt_addr == NULL) | ||
176 | phys_addr = (~0UL); | ||
177 | else | ||
178 | phys_addr = virt_to_phys(kvirt_addr); | ||
179 | |||
180 | return phys_addr; | ||
181 | } | 170 | } |
182 | 171 | ||
183 | static unsigned int convert_format(snd_pcm_format_t snd_format) | 172 | static unsigned int convert_format(snd_pcm_format_t snd_format) |
@@ -1669,7 +1658,7 @@ int __devinit ct_atc_create(struct snd_card *card, struct pci_dev *pci, | |||
1669 | } | 1658 | } |
1670 | 1659 | ||
1671 | /* Set up device virtual memory management object */ | 1660 | /* Set up device virtual memory management object */ |
1672 | err = ct_vm_create(&atc->vm); | 1661 | err = ct_vm_create(&atc->vm, pci); |
1673 | if (err < 0) | 1662 | if (err < 0) |
1674 | goto error1; | 1663 | goto error1; |
1675 | 1664 | ||
diff --git a/sound/pci/ctxfi/ctvmem.c b/sound/pci/ctxfi/ctvmem.c index 6b78752e9503..65da6e466f80 100644 --- a/sound/pci/ctxfi/ctvmem.c +++ b/sound/pci/ctxfi/ctvmem.c | |||
@@ -138,7 +138,7 @@ ct_vm_map(struct ct_vm *vm, struct snd_pcm_substream *substream, int size) | |||
138 | return NULL; | 138 | return NULL; |
139 | } | 139 | } |
140 | 140 | ||
141 | ptp = vm->ptp[0]; | 141 | ptp = (unsigned long *)vm->ptp[0].area; |
142 | pte_start = (block->addr >> CT_PAGE_SHIFT); | 142 | pte_start = (block->addr >> CT_PAGE_SHIFT); |
143 | pages = block->size >> CT_PAGE_SHIFT; | 143 | pages = block->size >> CT_PAGE_SHIFT; |
144 | for (i = 0; i < pages; i++) { | 144 | for (i = 0; i < pages; i++) { |
@@ -158,25 +158,25 @@ static void ct_vm_unmap(struct ct_vm *vm, struct ct_vm_block *block) | |||
158 | } | 158 | } |
159 | 159 | ||
160 | /* * | 160 | /* * |
161 | * return the host (kmalloced) addr of the @index-th device | 161 | * return the host physical addr of the @index-th device |
162 | * page talbe page on success, or NULL on failure. | 162 | * page table page on success, or ~0UL on failure. |
163 | * The first returned NULL indicates the termination. | 163 | * The first returned ~0UL indicates the termination. |
164 | * */ | 164 | * */ |
165 | static void * | 165 | static dma_addr_t |
166 | ct_get_ptp_virt(struct ct_vm *vm, int index) | 166 | ct_get_ptp_phys(struct ct_vm *vm, int index) |
167 | { | 167 | { |
168 | void *addr; | 168 | dma_addr_t addr; |
169 | 169 | ||
170 | addr = (index >= CT_PTP_NUM) ? NULL : vm->ptp[index]; | 170 | addr = (index >= CT_PTP_NUM) ? ~0UL : vm->ptp[index].addr; |
171 | 171 | ||
172 | return addr; | 172 | return addr; |
173 | } | 173 | } |
174 | 174 | ||
175 | int ct_vm_create(struct ct_vm **rvm) | 175 | int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci) |
176 | { | 176 | { |
177 | struct ct_vm *vm; | 177 | struct ct_vm *vm; |
178 | struct ct_vm_block *block; | 178 | struct ct_vm_block *block; |
179 | int i; | 179 | int i, err = 0; |
180 | 180 | ||
181 | *rvm = NULL; | 181 | *rvm = NULL; |
182 | 182 | ||
@@ -188,23 +188,21 @@ int ct_vm_create(struct ct_vm **rvm) | |||
188 | 188 | ||
189 | /* Allocate page table pages */ | 189 | /* Allocate page table pages */ |
190 | for (i = 0; i < CT_PTP_NUM; i++) { | 190 | for (i = 0; i < CT_PTP_NUM; i++) { |
191 | vm->ptp[i] = kmalloc(PAGE_SIZE, GFP_KERNEL); | 191 | err = snd_dma_alloc_pages(SNDRV_DMA_TYPE_DEV, |
192 | if (!vm->ptp[i]) | 192 | snd_dma_pci_data(pci), |
193 | PAGE_SIZE, &vm->ptp[i]); | ||
194 | if (err < 0) | ||
193 | break; | 195 | break; |
194 | } | 196 | } |
195 | if (!i) { | 197 | if (err < 0) { |
196 | /* no page table pages are allocated */ | 198 | /* no page table pages are allocated */ |
197 | kfree(vm); | 199 | ct_vm_destroy(vm); |
198 | return -ENOMEM; | 200 | return -ENOMEM; |
199 | } | 201 | } |
200 | vm->size = CT_ADDRS_PER_PAGE * i; | 202 | vm->size = CT_ADDRS_PER_PAGE * i; |
201 | /* Initialise remaining ptps */ | ||
202 | for (; i < CT_PTP_NUM; i++) | ||
203 | vm->ptp[i] = NULL; | ||
204 | |||
205 | vm->map = ct_vm_map; | 203 | vm->map = ct_vm_map; |
206 | vm->unmap = ct_vm_unmap; | 204 | vm->unmap = ct_vm_unmap; |
207 | vm->get_ptp_virt = ct_get_ptp_virt; | 205 | vm->get_ptp_phys = ct_get_ptp_phys; |
208 | INIT_LIST_HEAD(&vm->unused); | 206 | INIT_LIST_HEAD(&vm->unused); |
209 | INIT_LIST_HEAD(&vm->used); | 207 | INIT_LIST_HEAD(&vm->used); |
210 | block = kzalloc(sizeof(*block), GFP_KERNEL); | 208 | block = kzalloc(sizeof(*block), GFP_KERNEL); |
@@ -242,7 +240,7 @@ void ct_vm_destroy(struct ct_vm *vm) | |||
242 | 240 | ||
243 | /* free allocated page table pages */ | 241 | /* free allocated page table pages */ |
244 | for (i = 0; i < CT_PTP_NUM; i++) | 242 | for (i = 0; i < CT_PTP_NUM; i++) |
245 | kfree(vm->ptp[i]); | 243 | snd_dma_free_pages(&vm->ptp[i]); |
246 | 244 | ||
247 | vm->size = 0; | 245 | vm->size = 0; |
248 | 246 | ||
diff --git a/sound/pci/ctxfi/ctvmem.h b/sound/pci/ctxfi/ctvmem.h index 01e4fd0386a3..b23adfca4de6 100644 --- a/sound/pci/ctxfi/ctvmem.h +++ b/sound/pci/ctxfi/ctvmem.h | |||
@@ -22,6 +22,8 @@ | |||
22 | 22 | ||
23 | #include <linux/mutex.h> | 23 | #include <linux/mutex.h> |
24 | #include <linux/list.h> | 24 | #include <linux/list.h> |
25 | #include <linux/pci.h> | ||
26 | #include <sound/memalloc.h> | ||
25 | 27 | ||
26 | /* The chip can handle the page table of 4k pages | 28 | /* The chip can handle the page table of 4k pages |
27 | * (emu20k1 can handle even 8k pages, but we don't use it right now) | 29 | * (emu20k1 can handle even 8k pages, but we don't use it right now) |
@@ -41,7 +43,7 @@ struct snd_pcm_substream; | |||
41 | 43 | ||
42 | /* Virtual memory management object for card device */ | 44 | /* Virtual memory management object for card device */ |
43 | struct ct_vm { | 45 | struct ct_vm { |
44 | void *ptp[CT_PTP_NUM]; /* Device page table pages */ | 46 | struct snd_dma_buffer ptp[CT_PTP_NUM]; /* Device page table pages */ |
45 | unsigned int size; /* Available addr space in bytes */ | 47 | unsigned int size; /* Available addr space in bytes */ |
46 | struct list_head unused; /* List of unused blocks */ | 48 | struct list_head unused; /* List of unused blocks */ |
47 | struct list_head used; /* List of used blocks */ | 49 | struct list_head used; /* List of used blocks */ |
@@ -52,10 +54,10 @@ struct ct_vm { | |||
52 | int size); | 54 | int size); |
53 | /* Unmap device logical addr area. */ | 55 | /* Unmap device logical addr area. */ |
54 | void (*unmap)(struct ct_vm *, struct ct_vm_block *block); | 56 | void (*unmap)(struct ct_vm *, struct ct_vm_block *block); |
55 | void *(*get_ptp_virt)(struct ct_vm *vm, int index); | 57 | dma_addr_t (*get_ptp_phys)(struct ct_vm *vm, int index); |
56 | }; | 58 | }; |
57 | 59 | ||
58 | int ct_vm_create(struct ct_vm **rvm); | 60 | int ct_vm_create(struct ct_vm **rvm, struct pci_dev *pci); |
59 | void ct_vm_destroy(struct ct_vm *vm); | 61 | void ct_vm_destroy(struct ct_vm *vm); |
60 | 62 | ||
61 | #endif /* CTVMEM_H */ | 63 | #endif /* CTVMEM_H */ |
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index ec9c348336cc..ff6da6f386d1 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c | |||
@@ -426,6 +426,7 @@ struct azx { | |||
426 | 426 | ||
427 | /* flags */ | 427 | /* flags */ |
428 | int position_fix; | 428 | int position_fix; |
429 | int poll_count; | ||
429 | unsigned int running :1; | 430 | unsigned int running :1; |
430 | unsigned int initialized :1; | 431 | unsigned int initialized :1; |
431 | unsigned int single_cmd :1; | 432 | unsigned int single_cmd :1; |
@@ -506,7 +507,7 @@ static char *driver_short_names[] __devinitdata = { | |||
506 | #define get_azx_dev(substream) (substream->runtime->private_data) | 507 | #define get_azx_dev(substream) (substream->runtime->private_data) |
507 | 508 | ||
508 | static int azx_acquire_irq(struct azx *chip, int do_disconnect); | 509 | static int azx_acquire_irq(struct azx *chip, int do_disconnect); |
509 | 510 | static int azx_send_cmd(struct hda_bus *bus, unsigned int val); | |
510 | /* | 511 | /* |
511 | * Interface for HD codec | 512 | * Interface for HD codec |
512 | */ | 513 | */ |
@@ -664,11 +665,12 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
664 | { | 665 | { |
665 | struct azx *chip = bus->private_data; | 666 | struct azx *chip = bus->private_data; |
666 | unsigned long timeout; | 667 | unsigned long timeout; |
668 | int do_poll = 0; | ||
667 | 669 | ||
668 | again: | 670 | again: |
669 | timeout = jiffies + msecs_to_jiffies(1000); | 671 | timeout = jiffies + msecs_to_jiffies(1000); |
670 | for (;;) { | 672 | for (;;) { |
671 | if (chip->polling_mode) { | 673 | if (chip->polling_mode || do_poll) { |
672 | spin_lock_irq(&chip->reg_lock); | 674 | spin_lock_irq(&chip->reg_lock); |
673 | azx_update_rirb(chip); | 675 | azx_update_rirb(chip); |
674 | spin_unlock_irq(&chip->reg_lock); | 676 | spin_unlock_irq(&chip->reg_lock); |
@@ -676,6 +678,9 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
676 | if (!chip->rirb.cmds[addr]) { | 678 | if (!chip->rirb.cmds[addr]) { |
677 | smp_rmb(); | 679 | smp_rmb(); |
678 | bus->rirb_error = 0; | 680 | bus->rirb_error = 0; |
681 | |||
682 | if (!do_poll) | ||
683 | chip->poll_count = 0; | ||
679 | return chip->rirb.res[addr]; /* the last value */ | 684 | return chip->rirb.res[addr]; /* the last value */ |
680 | } | 685 | } |
681 | if (time_after(jiffies, timeout)) | 686 | if (time_after(jiffies, timeout)) |
@@ -688,6 +693,16 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus, | |||
688 | } | 693 | } |
689 | } | 694 | } |
690 | 695 | ||
696 | if (!chip->polling_mode && chip->poll_count < 2) { | ||
697 | snd_printdd(SFX "azx_get_response timeout, " | ||
698 | "polling the codec once: last cmd=0x%08x\n", | ||
699 | chip->last_cmd[addr]); | ||
700 | do_poll = 1; | ||
701 | chip->poll_count++; | ||
702 | goto again; | ||
703 | } | ||
704 | |||
705 | |||
691 | if (!chip->polling_mode) { | 706 | if (!chip->polling_mode) { |
692 | snd_printk(KERN_WARNING SFX "azx_get_response timeout, " | 707 | snd_printk(KERN_WARNING SFX "azx_get_response timeout, " |
693 | "switching to polling mode: last cmd=0x%08x\n", | 708 | "switching to polling mode: last cmd=0x%08x\n", |
@@ -1878,6 +1893,9 @@ static int azx_position_ok(struct azx *chip, struct azx_dev *azx_dev) | |||
1878 | 1893 | ||
1879 | if (!bdl_pos_adj[chip->dev_index]) | 1894 | if (!bdl_pos_adj[chip->dev_index]) |
1880 | return 1; /* no delayed ack */ | 1895 | return 1; /* no delayed ack */ |
1896 | if (WARN_ONCE(!azx_dev->period_bytes, | ||
1897 | "hda-intel: zero azx_dev->period_bytes")) | ||
1898 | return 0; /* this shouldn't happen! */ | ||
1881 | if (pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) | 1899 | if (pos % azx_dev->period_bytes > azx_dev->period_bytes / 2) |
1882 | return 0; /* NG - it's below the period boundary */ | 1900 | return 0; /* NG - it's below the period boundary */ |
1883 | return 1; /* OK, it's fine */ | 1901 | return 1; /* OK, it's fine */ |
@@ -2043,7 +2061,7 @@ static int azx_acquire_irq(struct azx *chip, int do_disconnect) | |||
2043 | { | 2061 | { |
2044 | if (request_irq(chip->pci->irq, azx_interrupt, | 2062 | if (request_irq(chip->pci->irq, azx_interrupt, |
2045 | chip->msi ? 0 : IRQF_SHARED, | 2063 | chip->msi ? 0 : IRQF_SHARED, |
2046 | "HDA Intel", chip)) { | 2064 | "hda_intel", chip)) { |
2047 | printk(KERN_ERR "hda-intel: unable to grab IRQ %d, " | 2065 | printk(KERN_ERR "hda-intel: unable to grab IRQ %d, " |
2048 | "disabling device\n", chip->pci->irq); | 2066 | "disabling device\n", chip->pci->irq); |
2049 | if (do_disconnect) | 2067 | if (do_disconnect) |
@@ -2332,6 +2350,7 @@ static void __devinit check_probe_mask(struct azx *chip, int dev) | |||
2332 | */ | 2350 | */ |
2333 | static struct snd_pci_quirk msi_black_list[] __devinitdata = { | 2351 | static struct snd_pci_quirk msi_black_list[] __devinitdata = { |
2334 | SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ | 2352 | SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ |
2353 | SND_PCI_QUIRK(0x1043, 0x81f6, "ASUS", 0), /* nvidia */ | ||
2335 | {} | 2354 | {} |
2336 | }; | 2355 | }; |
2337 | 2356 | ||
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 3f92def752fd..da34095c707f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c | |||
@@ -1093,6 +1093,16 @@ static void alc889_coef_init(struct hda_codec *codec) | |||
1093 | snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, tmp|0x2010); | 1093 | snd_hda_codec_write(codec, 0x20, 0, AC_VERB_SET_PROC_COEF, tmp|0x2010); |
1094 | } | 1094 | } |
1095 | 1095 | ||
1096 | /* turn on/off EAPD control (only if available) */ | ||
1097 | static void set_eapd(struct hda_codec *codec, hda_nid_t nid, int on) | ||
1098 | { | ||
1099 | if (get_wcaps_type(get_wcaps(codec, nid)) != AC_WID_PIN) | ||
1100 | return; | ||
1101 | if (snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_EAPD) | ||
1102 | snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_EAPD_BTLENABLE, | ||
1103 | on ? 2 : 0); | ||
1104 | } | ||
1105 | |||
1096 | static void alc_auto_init_amp(struct hda_codec *codec, int type) | 1106 | static void alc_auto_init_amp(struct hda_codec *codec, int type) |
1097 | { | 1107 | { |
1098 | unsigned int tmp; | 1108 | unsigned int tmp; |
@@ -1110,25 +1120,22 @@ static void alc_auto_init_amp(struct hda_codec *codec, int type) | |||
1110 | case ALC_INIT_DEFAULT: | 1120 | case ALC_INIT_DEFAULT: |
1111 | switch (codec->vendor_id) { | 1121 | switch (codec->vendor_id) { |
1112 | case 0x10ec0260: | 1122 | case 0x10ec0260: |
1113 | snd_hda_codec_write(codec, 0x0f, 0, | 1123 | set_eapd(codec, 0x0f, 1); |
1114 | AC_VERB_SET_EAPD_BTLENABLE, 2); | 1124 | set_eapd(codec, 0x10, 1); |
1115 | snd_hda_codec_write(codec, 0x10, 0, | ||
1116 | AC_VERB_SET_EAPD_BTLENABLE, 2); | ||
1117 | break; | 1125 | break; |
1118 | case 0x10ec0262: | 1126 | case 0x10ec0262: |
1119 | case 0x10ec0267: | 1127 | case 0x10ec0267: |
1120 | case 0x10ec0268: | 1128 | case 0x10ec0268: |
1121 | case 0x10ec0269: | 1129 | case 0x10ec0269: |
1130 | case 0x10ec0270: | ||
1122 | case 0x10ec0272: | 1131 | case 0x10ec0272: |
1123 | case 0x10ec0660: | 1132 | case 0x10ec0660: |
1124 | case 0x10ec0662: | 1133 | case 0x10ec0662: |
1125 | case 0x10ec0663: | 1134 | case 0x10ec0663: |
1126 | case 0x10ec0862: | 1135 | case 0x10ec0862: |
1127 | case 0x10ec0889: | 1136 | case 0x10ec0889: |
1128 | snd_hda_codec_write(codec, 0x14, 0, | 1137 | set_eapd(codec, 0x14, 1); |
1129 | AC_VERB_SET_EAPD_BTLENABLE, 2); | 1138 | set_eapd(codec, 0x15, 1); |
1130 | snd_hda_codec_write(codec, 0x15, 0, | ||
1131 | AC_VERB_SET_EAPD_BTLENABLE, 2); | ||
1132 | break; | 1139 | break; |
1133 | } | 1140 | } |
1134 | switch (codec->vendor_id) { | 1141 | switch (codec->vendor_id) { |
@@ -1836,10 +1843,8 @@ static void alc889_acer_aspire_8930g_setup(struct hda_codec *codec) | |||
1836 | #ifdef CONFIG_SND_HDA_POWER_SAVE | 1843 | #ifdef CONFIG_SND_HDA_POWER_SAVE |
1837 | static void alc889_power_eapd(struct hda_codec *codec, int power) | 1844 | static void alc889_power_eapd(struct hda_codec *codec, int power) |
1838 | { | 1845 | { |
1839 | snd_hda_codec_write(codec, 0x14, 0, | 1846 | set_eapd(codec, 0x14, power); |
1840 | AC_VERB_SET_EAPD_BTLENABLE, power ? 2 : 0); | 1847 | set_eapd(codec, 0x15, power); |
1841 | snd_hda_codec_write(codec, 0x15, 0, | ||
1842 | AC_VERB_SET_EAPD_BTLENABLE, power ? 2 : 0); | ||
1843 | } | 1848 | } |
1844 | #endif | 1849 | #endif |
1845 | 1850 | ||
@@ -9473,6 +9478,7 @@ static struct alc_config_preset alc882_presets[] = { | |||
9473 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_modes), | 9478 | .num_channel_mode = ARRAY_SIZE(alc883_3ST_6ch_modes), |
9474 | .channel_mode = alc883_3ST_6ch_modes, | 9479 | .channel_mode = alc883_3ST_6ch_modes, |
9475 | .need_dac_fix = 1, | 9480 | .need_dac_fix = 1, |
9481 | .const_channel_count = 6, | ||
9476 | .num_mux_defs = | 9482 | .num_mux_defs = |
9477 | ARRAY_SIZE(alc888_2_capture_sources), | 9483 | ARRAY_SIZE(alc888_2_capture_sources), |
9478 | .input_mux = alc888_2_capture_sources, | 9484 | .input_mux = alc888_2_capture_sources, |
@@ -10377,7 +10383,7 @@ static void alc262_hp_t5735_setup(struct hda_codec *codec) | |||
10377 | struct alc_spec *spec = codec->spec; | 10383 | struct alc_spec *spec = codec->spec; |
10378 | 10384 | ||
10379 | spec->autocfg.hp_pins[0] = 0x15; | 10385 | spec->autocfg.hp_pins[0] = 0x15; |
10380 | spec->autocfg.speaker_pins[0] = 0x0c; /* HACK: not actually a pin */ | 10386 | spec->autocfg.speaker_pins[0] = 0x14; |
10381 | } | 10387 | } |
10382 | 10388 | ||
10383 | static struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { | 10389 | static struct snd_kcontrol_new alc262_hp_t5735_mixer[] = { |
@@ -11788,9 +11794,9 @@ static struct alc_config_preset alc262_presets[] = { | |||
11788 | .num_channel_mode = ARRAY_SIZE(alc262_modes), | 11794 | .num_channel_mode = ARRAY_SIZE(alc262_modes), |
11789 | .channel_mode = alc262_modes, | 11795 | .channel_mode = alc262_modes, |
11790 | .input_mux = &alc262_capture_source, | 11796 | .input_mux = &alc262_capture_source, |
11791 | .unsol_event = alc_automute_amp_unsol_event, | 11797 | .unsol_event = alc_sku_unsol_event, |
11792 | .setup = alc262_hp_t5735_setup, | 11798 | .setup = alc262_hp_t5735_setup, |
11793 | .init_hook = alc_automute_amp, | 11799 | .init_hook = alc_inithook, |
11794 | }, | 11800 | }, |
11795 | [ALC262_HP_RP5700] = { | 11801 | [ALC262_HP_RP5700] = { |
11796 | .mixers = { alc262_hp_rp5700_mixer }, | 11802 | .mixers = { alc262_hp_rp5700_mixer }, |
@@ -12541,6 +12547,7 @@ static int alc268_new_analog_output(struct alc_spec *spec, hda_nid_t nid, | |||
12541 | dac = 0x02; | 12547 | dac = 0x02; |
12542 | break; | 12548 | break; |
12543 | case 0x15: | 12549 | case 0x15: |
12550 | case 0x21: | ||
12544 | dac = 0x03; | 12551 | dac = 0x03; |
12545 | break; | 12552 | break; |
12546 | default: | 12553 | default: |
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c index 765d7bd4c3d4..9e66f6d306f8 100644 --- a/sound/pci/ice1712/aureon.c +++ b/sound/pci/ice1712/aureon.c | |||
@@ -703,11 +703,13 @@ static void wm_set_vol(struct snd_ice1712 *ice, unsigned int index, unsigned sho | |||
703 | { | 703 | { |
704 | unsigned char nvol; | 704 | unsigned char nvol; |
705 | 705 | ||
706 | if ((master & WM_VOL_MUTE) || (vol & WM_VOL_MUTE)) | 706 | if ((master & WM_VOL_MUTE) || (vol & WM_VOL_MUTE)) { |
707 | nvol = 0; | 707 | nvol = 0; |
708 | else | 708 | } else { |
709 | nvol = ((vol % WM_VOL_CNT) * (master % WM_VOL_CNT)) / | 709 | nvol = ((vol % WM_VOL_CNT) * (master % WM_VOL_CNT)) / |
710 | WM_VOL_MAX; | 710 | WM_VOL_MAX; |
711 | nvol += 0x1b; | ||
712 | } | ||
711 | 713 | ||
712 | wm_put(ice, index, nvol); | 714 | wm_put(ice, index, nvol); |
713 | wm_put_nocache(ice, index, 0x180 | nvol); | 715 | wm_put_nocache(ice, index, 0x180 | nvol); |
@@ -778,7 +780,7 @@ static int wm_master_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_ | |||
778 | for (ch = 0; ch < 2; ch++) { | 780 | for (ch = 0; ch < 2; ch++) { |
779 | unsigned int vol = ucontrol->value.integer.value[ch]; | 781 | unsigned int vol = ucontrol->value.integer.value[ch]; |
780 | if (vol > WM_VOL_MAX) | 782 | if (vol > WM_VOL_MAX) |
781 | continue; | 783 | vol = WM_VOL_MAX; |
782 | vol |= spec->master[ch] & WM_VOL_MUTE; | 784 | vol |= spec->master[ch] & WM_VOL_MUTE; |
783 | if (vol != spec->master[ch]) { | 785 | if (vol != spec->master[ch]) { |
784 | int dac; | 786 | int dac; |
@@ -834,8 +836,8 @@ static int wm_vol_put(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value * | |||
834 | for (i = 0; i < voices; i++) { | 836 | for (i = 0; i < voices; i++) { |
835 | unsigned int vol = ucontrol->value.integer.value[i]; | 837 | unsigned int vol = ucontrol->value.integer.value[i]; |
836 | if (vol > WM_VOL_MAX) | 838 | if (vol > WM_VOL_MAX) |
837 | continue; | 839 | vol = WM_VOL_MAX; |
838 | vol |= spec->vol[ofs+i]; | 840 | vol |= spec->vol[ofs+i] & WM_VOL_MUTE; |
839 | if (vol != spec->vol[ofs+i]) { | 841 | if (vol != spec->vol[ofs+i]) { |
840 | spec->vol[ofs+i] = vol; | 842 | spec->vol[ofs+i] = vol; |
841 | idx = WM_DAC_ATTEN + ofs + i; | 843 | idx = WM_DAC_ATTEN + ofs + i; |
diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c index a9dc5fb54774..da589d8664d0 100644 --- a/sound/soc/codecs/tlv320aic23.c +++ b/sound/soc/codecs/tlv320aic23.c | |||
@@ -627,7 +627,7 @@ static int tlv320aic23_resume(struct platform_device *pdev) | |||
627 | u16 reg; | 627 | u16 reg; |
628 | 628 | ||
629 | /* Sync reg_cache with the hardware */ | 629 | /* Sync reg_cache with the hardware */ |
630 | for (reg = 0; reg < TLV320AIC23_RESET; reg++) { | 630 | for (reg = 0; reg <= TLV320AIC23_ACTIVE; reg++) { |
631 | u16 val = tlv320aic23_read_reg_cache(codec, reg); | 631 | u16 val = tlv320aic23_read_reg_cache(codec, reg); |
632 | tlv320aic23_write(codec, reg, val); | 632 | tlv320aic23_write(codec, reg, val); |
633 | } | 633 | } |
diff --git a/sound/soc/codecs/wm8903.c b/sound/soc/codecs/wm8903.c index ce5515e3f2b0..3595bd57c4eb 100644 --- a/sound/soc/codecs/wm8903.c +++ b/sound/soc/codecs/wm8903.c | |||
@@ -1504,7 +1504,7 @@ static int wm8903_resume(struct platform_device *pdev) | |||
1504 | struct i2c_client *i2c = codec->control_data; | 1504 | struct i2c_client *i2c = codec->control_data; |
1505 | int i; | 1505 | int i; |
1506 | u16 *reg_cache = codec->reg_cache; | 1506 | u16 *reg_cache = codec->reg_cache; |
1507 | u16 *tmp_cache = kmemdup(codec->reg_cache, sizeof(wm8903_reg_defaults), | 1507 | u16 *tmp_cache = kmemdup(reg_cache, sizeof(wm8903_reg_defaults), |
1508 | GFP_KERNEL); | 1508 | GFP_KERNEL); |
1509 | 1509 | ||
1510 | /* Bring the codec back up to standby first to minimise pop/clicks */ | 1510 | /* Bring the codec back up to standby first to minimise pop/clicks */ |
@@ -1516,6 +1516,7 @@ static int wm8903_resume(struct platform_device *pdev) | |||
1516 | for (i = 2; i < ARRAY_SIZE(wm8903_reg_defaults); i++) | 1516 | for (i = 2; i < ARRAY_SIZE(wm8903_reg_defaults); i++) |
1517 | if (tmp_cache[i] != reg_cache[i]) | 1517 | if (tmp_cache[i] != reg_cache[i]) |
1518 | snd_soc_write(codec, i, tmp_cache[i]); | 1518 | snd_soc_write(codec, i, tmp_cache[i]); |
1519 | kfree(tmp_cache); | ||
1519 | } else { | 1520 | } else { |
1520 | dev_err(&i2c->dev, "Failed to allocate temporary cache\n"); | 1521 | dev_err(&i2c->dev, "Failed to allocate temporary cache\n"); |
1521 | } | 1522 | } |
diff --git a/sound/soc/omap/Makefile b/sound/soc/omap/Makefile index 3db8a6c523f4..19283e5edfbf 100644 --- a/sound/soc/omap/Makefile +++ b/sound/soc/omap/Makefile | |||
@@ -25,7 +25,7 @@ obj-$(CONFIG_SND_OMAP_SOC_OSK5912) += snd-soc-osk5912.o | |||
25 | obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o | 25 | obj-$(CONFIG_SND_OMAP_SOC_OVERO) += snd-soc-overo.o |
26 | obj-$(CONFIG_SND_OMAP_SOC_OMAP2EVM) += snd-soc-omap2evm.o | 26 | obj-$(CONFIG_SND_OMAP_SOC_OMAP2EVM) += snd-soc-omap2evm.o |
27 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3EVM) += snd-soc-omap3evm.o | 27 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3EVM) += snd-soc-omap3evm.o |
28 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3517EVM) += snd-soc-am3517evm.o | 28 | obj-$(CONFIG_SND_OMAP_SOC_AM3517EVM) += snd-soc-am3517evm.o |
29 | obj-$(CONFIG_SND_OMAP_SOC_SDP3430) += snd-soc-sdp3430.o | 29 | obj-$(CONFIG_SND_OMAP_SOC_SDP3430) += snd-soc-sdp3430.o |
30 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3_PANDORA) += snd-soc-omap3pandora.o | 30 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3_PANDORA) += snd-soc-omap3pandora.o |
31 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-omap3beagle.o | 31 | obj-$(CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE) += snd-soc-omap3beagle.o |
diff --git a/sound/soc/omap/omap3pandora.c b/sound/soc/omap/omap3pandora.c index 71b2c161158d..68980c19a3bc 100644 --- a/sound/soc/omap/omap3pandora.c +++ b/sound/soc/omap/omap3pandora.c | |||
@@ -145,6 +145,7 @@ static const struct snd_soc_dapm_widget omap3pandora_in_dapm_widgets[] = { | |||
145 | }; | 145 | }; |
146 | 146 | ||
147 | static const struct snd_soc_dapm_route omap3pandora_out_map[] = { | 147 | static const struct snd_soc_dapm_route omap3pandora_out_map[] = { |
148 | {"PCM DAC", NULL, "APLL Enable"}, | ||
148 | {"Headphone Amplifier", NULL, "PCM DAC"}, | 149 | {"Headphone Amplifier", NULL, "PCM DAC"}, |
149 | {"Line Out", NULL, "PCM DAC"}, | 150 | {"Line Out", NULL, "PCM DAC"}, |
150 | {"Headphone Jack", NULL, "Headphone Amplifier"}, | 151 | {"Headphone Jack", NULL, "Headphone Amplifier"}, |
diff --git a/tools/perf/.gitignore b/tools/perf/.gitignore index fe08660ce0bd..124760bb37b5 100644 --- a/tools/perf/.gitignore +++ b/tools/perf/.gitignore | |||
@@ -13,6 +13,7 @@ perf*.xml | |||
13 | perf*.html | 13 | perf*.html |
14 | common-cmds.h | 14 | common-cmds.h |
15 | perf.data | 15 | perf.data |
16 | perf.data.old | ||
16 | tags | 17 | tags |
17 | TAGS | 18 | TAGS |
18 | cscope* | 19 | cscope* |
diff --git a/tools/perf/builtin-report.c b/tools/perf/builtin-report.c index db10c0e8ecae..860f1eeeea7d 100644 --- a/tools/perf/builtin-report.c +++ b/tools/perf/builtin-report.c | |||
@@ -269,7 +269,7 @@ parse_callchain_opt(const struct option *opt __used, const char *arg, | |||
269 | 269 | ||
270 | else if (!strncmp(tok, "none", strlen(arg))) { | 270 | else if (!strncmp(tok, "none", strlen(arg))) { |
271 | callchain_param.mode = CHAIN_NONE; | 271 | callchain_param.mode = CHAIN_NONE; |
272 | symbol_conf.use_callchain = true; | 272 | symbol_conf.use_callchain = false; |
273 | 273 | ||
274 | return 0; | 274 | return 0; |
275 | } | 275 | } |
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index ddc584b64871..4b91d8cf00ec 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
@@ -705,7 +705,7 @@ static void print_mapped_keys(void) | |||
705 | fprintf(stdout, "\t[w] toggle display weighted/count[E]r. \t(%d)\n", display_weighted ? 1 : 0); | 705 | fprintf(stdout, "\t[w] toggle display weighted/count[E]r. \t(%d)\n", display_weighted ? 1 : 0); |
706 | 706 | ||
707 | fprintf(stdout, | 707 | fprintf(stdout, |
708 | "\t[K] hide kernel_symbols symbols. \t(%s)\n", | 708 | "\t[K] hide kernel_symbols symbols. \t(%s)\n", |
709 | hide_kernel_symbols ? "yes" : "no"); | 709 | hide_kernel_symbols ? "yes" : "no"); |
710 | fprintf(stdout, | 710 | fprintf(stdout, |
711 | "\t[U] hide user symbols. \t(%s)\n", | 711 | "\t[U] hide user symbols. \t(%s)\n", |
diff --git a/tools/perf/util/event.c b/tools/perf/util/event.c index bb0fd6da2d56..8a9e6baa3099 100644 --- a/tools/perf/util/event.c +++ b/tools/perf/util/event.c | |||
@@ -295,10 +295,10 @@ void thread__find_addr_location(struct thread *self, | |||
295 | al->thread = self; | 295 | al->thread = self; |
296 | al->addr = addr; | 296 | al->addr = addr; |
297 | 297 | ||
298 | if (cpumode & PERF_RECORD_MISC_KERNEL) { | 298 | if (cpumode == PERF_RECORD_MISC_KERNEL) { |
299 | al->level = 'k'; | 299 | al->level = 'k'; |
300 | mg = &session->kmaps; | 300 | mg = &session->kmaps; |
301 | } else if (cpumode & PERF_RECORD_MISC_USER) | 301 | } else if (cpumode == PERF_RECORD_MISC_USER) |
302 | al->level = '.'; | 302 | al->level = '.'; |
303 | else { | 303 | else { |
304 | al->level = 'H'; | 304 | al->level = 'H'; |
diff --git a/virt/kvm/eventfd.c b/virt/kvm/eventfd.c index 30f70fd511c4..a9d3fc6c681c 100644 --- a/virt/kvm/eventfd.c +++ b/virt/kvm/eventfd.c | |||
@@ -72,12 +72,13 @@ static void | |||
72 | irqfd_shutdown(struct work_struct *work) | 72 | irqfd_shutdown(struct work_struct *work) |
73 | { | 73 | { |
74 | struct _irqfd *irqfd = container_of(work, struct _irqfd, shutdown); | 74 | struct _irqfd *irqfd = container_of(work, struct _irqfd, shutdown); |
75 | u64 cnt; | ||
75 | 76 | ||
76 | /* | 77 | /* |
77 | * Synchronize with the wait-queue and unhook ourselves to prevent | 78 | * Synchronize with the wait-queue and unhook ourselves to prevent |
78 | * further events. | 79 | * further events. |
79 | */ | 80 | */ |
80 | remove_wait_queue(irqfd->wqh, &irqfd->wait); | 81 | eventfd_ctx_remove_wait_queue(irqfd->eventfd, &irqfd->wait, &cnt); |
81 | 82 | ||
82 | /* | 83 | /* |
83 | * We know no new events will be scheduled at this point, so block | 84 | * We know no new events will be scheduled at this point, so block |
@@ -166,7 +167,7 @@ irqfd_ptable_queue_proc(struct file *file, wait_queue_head_t *wqh, | |||
166 | static int | 167 | static int |
167 | kvm_irqfd_assign(struct kvm *kvm, int fd, int gsi) | 168 | kvm_irqfd_assign(struct kvm *kvm, int fd, int gsi) |
168 | { | 169 | { |
169 | struct _irqfd *irqfd; | 170 | struct _irqfd *irqfd, *tmp; |
170 | struct file *file = NULL; | 171 | struct file *file = NULL; |
171 | struct eventfd_ctx *eventfd = NULL; | 172 | struct eventfd_ctx *eventfd = NULL; |
172 | int ret; | 173 | int ret; |
@@ -203,9 +204,20 @@ kvm_irqfd_assign(struct kvm *kvm, int fd, int gsi) | |||
203 | init_waitqueue_func_entry(&irqfd->wait, irqfd_wakeup); | 204 | init_waitqueue_func_entry(&irqfd->wait, irqfd_wakeup); |
204 | init_poll_funcptr(&irqfd->pt, irqfd_ptable_queue_proc); | 205 | init_poll_funcptr(&irqfd->pt, irqfd_ptable_queue_proc); |
205 | 206 | ||
207 | spin_lock_irq(&kvm->irqfds.lock); | ||
208 | |||
209 | ret = 0; | ||
210 | list_for_each_entry(tmp, &kvm->irqfds.items, list) { | ||
211 | if (irqfd->eventfd != tmp->eventfd) | ||
212 | continue; | ||
213 | /* This fd is used for another irq already. */ | ||
214 | ret = -EBUSY; | ||
215 | spin_unlock_irq(&kvm->irqfds.lock); | ||
216 | goto fail; | ||
217 | } | ||
218 | |||
206 | events = file->f_op->poll(file, &irqfd->pt); | 219 | events = file->f_op->poll(file, &irqfd->pt); |
207 | 220 | ||
208 | spin_lock_irq(&kvm->irqfds.lock); | ||
209 | list_add_tail(&irqfd->list, &kvm->irqfds.items); | 221 | list_add_tail(&irqfd->list, &kvm->irqfds.items); |
210 | spin_unlock_irq(&kvm->irqfds.lock); | 222 | spin_unlock_irq(&kvm->irqfds.lock); |
211 | 223 | ||
diff --git a/virt/kvm/irq_comm.c b/virt/kvm/irq_comm.c index 9b077342ab54..9fd5b3ebc517 100644 --- a/virt/kvm/irq_comm.c +++ b/virt/kvm/irq_comm.c | |||
@@ -302,6 +302,7 @@ static int setup_routing_entry(struct kvm_irq_routing_table *rt, | |||
302 | { | 302 | { |
303 | int r = -EINVAL; | 303 | int r = -EINVAL; |
304 | int delta; | 304 | int delta; |
305 | unsigned max_pin; | ||
305 | struct kvm_kernel_irq_routing_entry *ei; | 306 | struct kvm_kernel_irq_routing_entry *ei; |
306 | struct hlist_node *n; | 307 | struct hlist_node *n; |
307 | 308 | ||
@@ -322,12 +323,15 @@ static int setup_routing_entry(struct kvm_irq_routing_table *rt, | |||
322 | switch (ue->u.irqchip.irqchip) { | 323 | switch (ue->u.irqchip.irqchip) { |
323 | case KVM_IRQCHIP_PIC_MASTER: | 324 | case KVM_IRQCHIP_PIC_MASTER: |
324 | e->set = kvm_set_pic_irq; | 325 | e->set = kvm_set_pic_irq; |
326 | max_pin = 16; | ||
325 | break; | 327 | break; |
326 | case KVM_IRQCHIP_PIC_SLAVE: | 328 | case KVM_IRQCHIP_PIC_SLAVE: |
327 | e->set = kvm_set_pic_irq; | 329 | e->set = kvm_set_pic_irq; |
330 | max_pin = 16; | ||
328 | delta = 8; | 331 | delta = 8; |
329 | break; | 332 | break; |
330 | case KVM_IRQCHIP_IOAPIC: | 333 | case KVM_IRQCHIP_IOAPIC: |
334 | max_pin = KVM_IOAPIC_NUM_PINS; | ||
331 | e->set = kvm_set_ioapic_irq; | 335 | e->set = kvm_set_ioapic_irq; |
332 | break; | 336 | break; |
333 | default: | 337 | default: |
@@ -335,7 +339,7 @@ static int setup_routing_entry(struct kvm_irq_routing_table *rt, | |||
335 | } | 339 | } |
336 | e->irqchip.irqchip = ue->u.irqchip.irqchip; | 340 | e->irqchip.irqchip = ue->u.irqchip.irqchip; |
337 | e->irqchip.pin = ue->u.irqchip.pin + delta; | 341 | e->irqchip.pin = ue->u.irqchip.pin + delta; |
338 | if (e->irqchip.pin >= KVM_IOAPIC_NUM_PINS) | 342 | if (e->irqchip.pin >= max_pin) |
339 | goto out; | 343 | goto out; |
340 | rt->chip[ue->u.irqchip.irqchip][e->irqchip.pin] = ue->gsi; | 344 | rt->chip[ue->u.irqchip.irqchip][e->irqchip.pin] = ue->gsi; |
341 | break; | 345 | break; |