diff options
182 files changed, 3327 insertions, 2768 deletions
diff --git a/Documentation/fb/cmap_xfbdev.txt b/Documentation/fb/cmap_xfbdev.txt new file mode 100644 index 000000000000..55e1f0a3d2b4 --- /dev/null +++ b/Documentation/fb/cmap_xfbdev.txt | |||
@@ -0,0 +1,53 @@ | |||
1 | Understanding fbdev's cmap | ||
2 | -------------------------- | ||
3 | |||
4 | These notes explain how X's dix layer uses fbdev's cmap structures. | ||
5 | |||
6 | *. example of relevant structures in fbdev as used for a 3-bit grayscale cmap | ||
7 | struct fb_var_screeninfo { | ||
8 | .bits_per_pixel = 8, | ||
9 | .grayscale = 1, | ||
10 | .red = { 4, 3, 0 }, | ||
11 | .green = { 0, 0, 0 }, | ||
12 | .blue = { 0, 0, 0 }, | ||
13 | } | ||
14 | struct fb_fix_screeninfo { | ||
15 | .visual = FB_VISUAL_STATIC_PSEUDOCOLOR, | ||
16 | } | ||
17 | for (i = 0; i < 8; i++) | ||
18 | info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16; | ||
19 | memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8); | ||
20 | memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8); | ||
21 | |||
22 | *. X11 apps do something like the following when trying to use grayscale. | ||
23 | for (i=0; i < 8; i++) { | ||
24 | char colorspec[64]; | ||
25 | memset(colorspec,0,64); | ||
26 | sprintf(colorspec, "rgb:%x/%x/%x", i*36,i*36,i*36); | ||
27 | if (!XParseColor(outputDisplay, testColormap, colorspec, &wantedColor)) | ||
28 | printf("Can't get color %s\n",colorspec); | ||
29 | XAllocColor(outputDisplay, testColormap, &wantedColor); | ||
30 | grays[i] = wantedColor; | ||
31 | } | ||
32 | There's also named equivalents like gray1..x provided you have an rgb.txt. | ||
33 | |||
34 | Somewhere in X's callchain, this results in a call to X code that handles the | ||
35 | colormap. For example, Xfbdev hits the following: | ||
36 | |||
37 | xc-011010/programs/Xserver/dix/colormap.c: | ||
38 | |||
39 | FindBestPixel(pentFirst, size, prgb, channel) | ||
40 | |||
41 | dr = (long) pent->co.local.red - prgb->red; | ||
42 | dg = (long) pent->co.local.green - prgb->green; | ||
43 | db = (long) pent->co.local.blue - prgb->blue; | ||
44 | sq = dr * dr; | ||
45 | UnsignedToBigNum (sq, &sum); | ||
46 | BigNumAdd (&sum, &temp, &sum); | ||
47 | |||
48 | co.local.red are entries that were brought in through FBIOGETCMAP which come | ||
49 | directly from the info->cmap.red that was listed above. The prgb is the rgb | ||
50 | that the app wants to match to. The above code is doing what looks like a least | ||
51 | squares matching function. That's why the cmap entries can't be set to the left | ||
52 | hand side boundaries of a color range. | ||
53 | |||
diff --git a/Documentation/fb/metronomefb.txt b/Documentation/fb/metronomefb.txt new file mode 100644 index 000000000000..b9a2e7b7e838 --- /dev/null +++ b/Documentation/fb/metronomefb.txt | |||
@@ -0,0 +1,38 @@ | |||
1 | Metronomefb | ||
2 | ----------- | ||
3 | Maintained by Jaya Kumar <jayakumar.lkml.gmail.com> | ||
4 | Last revised: Nov 20, 2007 | ||
5 | |||
6 | Metronomefb is a driver for the Metronome display controller. The controller | ||
7 | is from E-Ink Corporation. It is intended to be used to drive the E-Ink | ||
8 | Vizplex display media. E-Ink hosts some details of this controller and the | ||
9 | display media here http://www.e-ink.com/products/matrix/metronome.html . | ||
10 | |||
11 | Metronome is interfaced to the host CPU through the AMLCD interface. The | ||
12 | host CPU generates the control information and the image in a framebuffer | ||
13 | which is then delivered to the AMLCD interface by a host specific method. | ||
14 | Currently, that's implemented for the PXA's LCDC controller. The display and | ||
15 | error status are each pulled through individual GPIOs. | ||
16 | |||
17 | Metronomefb was written for the PXA255/gumstix/lyre combination and | ||
18 | therefore currently has board set specific code in it. If other boards based on | ||
19 | other architectures are available, then the host specific code can be separated | ||
20 | and abstracted out. | ||
21 | |||
22 | Metronomefb requires waveform information which is delivered via the AMLCD | ||
23 | interface to the metronome controller. The waveform information is expected to | ||
24 | be delivered from userspace via the firmware class interface. The waveform file | ||
25 | can be compressed as long as your udev or hotplug script is aware of the need | ||
26 | to uncompress it before delivering it. metronomefb will ask for waveform.wbf | ||
27 | which would typically go into /lib/firmware/waveform.wbf depending on your | ||
28 | udev/hotplug setup. I have only tested with a single waveform file which was | ||
29 | originally labeled 23P01201_60_WT0107_MTC. I do not know what it stands for. | ||
30 | Caution should be exercised when manipulating the waveform as there may be | ||
31 | a possibility that it could have some permanent effects on the display media. | ||
32 | I neither have access to nor know exactly what the waveform does in terms of | ||
33 | the physical media. | ||
34 | |||
35 | Metronomefb uses the deferred IO interface so that it can provide a memory | ||
36 | mappable frame buffer. It has been tested with tinyx (Xfbdev). It is known | ||
37 | to work at this time with xeyes, xclock, xloadimage, xpdf. | ||
38 | |||
diff --git a/Documentation/input/notifier.txt b/Documentation/input/notifier.txt new file mode 100644 index 000000000000..95172ca6f3d2 --- /dev/null +++ b/Documentation/input/notifier.txt | |||
@@ -0,0 +1,52 @@ | |||
1 | Keyboard notifier | ||
2 | |||
3 | One can use register_keyboard_notifier to get called back on keyboard | ||
4 | events (see kbd_keycode() function for details). The passed structure is | ||
5 | keyboard_notifier_param: | ||
6 | |||
7 | - 'vc' always provide the VC for which the keyboard event applies; | ||
8 | - 'down' is 1 for a key press event, 0 for a key release; | ||
9 | - 'shift' is the current modifier state, mask bit indexes are KG_*; | ||
10 | - 'value' depends on the type of event. | ||
11 | |||
12 | - KBD_KEYCODE events are always sent before other events, value is the keycode. | ||
13 | - KBD_UNBOUND_KEYCODE events are sent if the keycode is not bound to a keysym. | ||
14 | value is the keycode. | ||
15 | - KBD_UNICODE events are sent if the keycode -> keysym translation produced a | ||
16 | unicode character. value is the unicode value. | ||
17 | - KBD_KEYSYM events are sent if the keycode -> keysym translation produced a | ||
18 | non-unicode character. value is the keysym. | ||
19 | - KBD_POST_KEYSYM events are sent after the treatment of non-unicode keysyms. | ||
20 | That permits one to inspect the resulting LEDs for instance. | ||
21 | |||
22 | For each kind of event but the last, the callback may return NOTIFY_STOP in | ||
23 | order to "eat" the event: the notify loop is stopped and the keyboard event is | ||
24 | dropped. | ||
25 | |||
26 | In a rough C snippet, we have: | ||
27 | |||
28 | kbd_keycode(keycode) { | ||
29 | ... | ||
30 | params.value = keycode; | ||
31 | if (notifier_call_chain(KBD_KEYCODE,¶ms) == NOTIFY_STOP) | ||
32 | || !bound) { | ||
33 | notifier_call_chain(KBD_UNBOUND_KEYCODE,¶ms); | ||
34 | return; | ||
35 | } | ||
36 | |||
37 | if (unicode) { | ||
38 | param.value = unicode; | ||
39 | if (notifier_call_chain(KBD_UNICODE,¶ms) == NOTIFY_STOP) | ||
40 | return; | ||
41 | emit unicode; | ||
42 | return; | ||
43 | } | ||
44 | |||
45 | params.value = keysym; | ||
46 | if (notifier_call_chain(KBD_KEYSYM,¶ms) == NOTIFY_STOP) | ||
47 | return; | ||
48 | apply keysym; | ||
49 | notifier_call_chain(KBD_POST_KEYSYM,¶ms); | ||
50 | } | ||
51 | |||
52 | NOTE: This notifier is usually called from interrupt context. | ||
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 622f7849edb9..650b0d8aa89b 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -732,6 +732,8 @@ and is between 256 and 4096 characters. It is defined in the file | |||
732 | (Don't attempt to blink the leds) | 732 | (Don't attempt to blink the leds) |
733 | i8042.noaux [HW] Don't check for auxiliary (== mouse) port | 733 | i8042.noaux [HW] Don't check for auxiliary (== mouse) port |
734 | i8042.nokbd [HW] Don't check/create keyboard port | 734 | i8042.nokbd [HW] Don't check/create keyboard port |
735 | i8042.noloop [HW] Disable the AUX Loopback command while probing | ||
736 | for the AUX port | ||
735 | i8042.nomux [HW] Don't check presence of an active multiplexing | 737 | i8042.nomux [HW] Don't check presence of an active multiplexing |
736 | controller | 738 | controller |
737 | i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX | 739 | i8042.nopnp [HW] Don't use ACPIPnP / PnPBIOS to discover KBD/AUX |
diff --git a/Documentation/mca.txt b/Documentation/mca.txt index aabce4ad90f9..510375d4209a 100644 --- a/Documentation/mca.txt +++ b/Documentation/mca.txt | |||
@@ -143,14 +143,7 @@ MCA Device Drivers | |||
143 | 143 | ||
144 | Currently, there are a number of MCA-specific device drivers. | 144 | Currently, there are a number of MCA-specific device drivers. |
145 | 145 | ||
146 | 1) PS/2 ESDI | 146 | 1) PS/2 SCSI |
147 | drivers/block/ps2esdi.c | ||
148 | include/linux/ps2esdi.h | ||
149 | Uses major number 36, and should use /dev files /dev/eda, /dev/edb. | ||
150 | Supports two drives, but only one controller. May use the | ||
151 | command-line args "ed=cyl,head,sec" and "tp720". | ||
152 | |||
153 | 2) PS/2 SCSI | ||
154 | drivers/scsi/ibmmca.c | 147 | drivers/scsi/ibmmca.c |
155 | drivers/scsi/ibmmca.h | 148 | drivers/scsi/ibmmca.h |
156 | The driver for the IBM SCSI subsystem. Includes both integrated | 149 | The driver for the IBM SCSI subsystem. Includes both integrated |
@@ -159,25 +152,25 @@ Currently, there are a number of MCA-specific device drivers. | |||
159 | machine with a front-panel display (i.e. model 95), you can use | 152 | machine with a front-panel display (i.e. model 95), you can use |
160 | "ibmmcascsi=display" to enable a drive activity indicator. | 153 | "ibmmcascsi=display" to enable a drive activity indicator. |
161 | 154 | ||
162 | 3) 3c523 | 155 | 2) 3c523 |
163 | drivers/net/3c523.c | 156 | drivers/net/3c523.c |
164 | drivers/net/3c523.h | 157 | drivers/net/3c523.h |
165 | 3Com 3c523 Etherlink/MC ethernet driver. | 158 | 3Com 3c523 Etherlink/MC ethernet driver. |
166 | 159 | ||
167 | 4) SMC Ultra/MCA and IBM Adapter/A | 160 | 3) SMC Ultra/MCA and IBM Adapter/A |
168 | drivers/net/smc-mca.c | 161 | drivers/net/smc-mca.c |
169 | drivers/net/smc-mca.h | 162 | drivers/net/smc-mca.h |
170 | Driver for the MCA version of the SMC Ultra and various other | 163 | Driver for the MCA version of the SMC Ultra and various other |
171 | OEM'ed and work-alike cards (Elite, Adapter/A, etc). | 164 | OEM'ed and work-alike cards (Elite, Adapter/A, etc). |
172 | 165 | ||
173 | 5) NE/2 | 166 | 4) NE/2 |
174 | driver/net/ne2.c | 167 | driver/net/ne2.c |
175 | driver/net/ne2.h | 168 | driver/net/ne2.h |
176 | The NE/2 is the MCA version of the NE2000. This may not work | 169 | The NE/2 is the MCA version of the NE2000. This may not work |
177 | with clones that have a different adapter id than the original | 170 | with clones that have a different adapter id than the original |
178 | NE/2. | 171 | NE/2. |
179 | 172 | ||
180 | 6) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and | 173 | 5) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and |
181 | Reply Sound Blaster/SCSI (SCSI part) | 174 | Reply Sound Blaster/SCSI (SCSI part) |
182 | Better support for these cards than the driver for ISA. | 175 | Better support for these cards than the driver for ISA. |
183 | Supports multiple cards with IRQ sharing. | 176 | Supports multiple cards with IRQ sharing. |
diff --git a/MAINTAINERS b/MAINTAINERS index 76843d011f49..03e4602e1b9c 100644 --- a/MAINTAINERS +++ b/MAINTAINERS | |||
@@ -452,7 +452,7 @@ S: Maintained | |||
452 | 452 | ||
453 | ARM/ATMEL AT91RM9200 ARM ARCHITECTURE | 453 | ARM/ATMEL AT91RM9200 ARM ARCHITECTURE |
454 | P: Andrew Victor | 454 | P: Andrew Victor |
455 | M: andrew@sanpeople.com | 455 | M: linux@maxim.org.za |
456 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) | 456 | L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) |
457 | W: http://maxim.org.za/at91_26.html | 457 | W: http://maxim.org.za/at91_26.html |
458 | S: Maintained | 458 | S: Maintained |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 955fc53c1c01..4039a133006e 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -469,6 +469,7 @@ config ARCH_OMAP | |||
469 | bool "TI OMAP" | 469 | bool "TI OMAP" |
470 | select GENERIC_GPIO | 470 | select GENERIC_GPIO |
471 | select GENERIC_TIME | 471 | select GENERIC_TIME |
472 | select GENERIC_CLOCKEVENTS | ||
472 | help | 473 | help |
473 | Support for TI's OMAP platform (OMAP1 and OMAP2). | 474 | Support for TI's OMAP platform (OMAP1 and OMAP2). |
474 | 475 | ||
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c index 54cdf1aeefc3..ef2f86a5e78a 100644 --- a/arch/arm/kernel/signal.c +++ b/arch/arm/kernel/signal.c | |||
@@ -26,8 +26,8 @@ | |||
26 | /* | 26 | /* |
27 | * For ARM syscalls, we encode the syscall number into the instruction. | 27 | * For ARM syscalls, we encode the syscall number into the instruction. |
28 | */ | 28 | */ |
29 | #define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)) | 29 | #define SWI_SYS_SIGRETURN (0xef000000|(__NR_sigreturn)|(__NR_OABI_SYSCALL_BASE)) |
30 | #define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)) | 30 | #define SWI_SYS_RT_SIGRETURN (0xef000000|(__NR_rt_sigreturn)|(__NR_OABI_SYSCALL_BASE)) |
31 | 31 | ||
32 | /* | 32 | /* |
33 | * With EABI, the syscall number has to be loaded into r7. | 33 | * With EABI, the syscall number has to be loaded into r7. |
diff --git a/arch/arm/mach-iop32x/glantank.c b/arch/arm/mach-iop32x/glantank.c index 74c65ce221de..d2a7b04f1cb0 100644 --- a/arch/arm/mach-iop32x/glantank.c +++ b/arch/arm/mach-iop32x/glantank.c | |||
@@ -14,8 +14,10 @@ | |||
14 | 14 | ||
15 | #include <linux/mm.h> | 15 | #include <linux/mm.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/f75375s.h> | ||
17 | #include <linux/kernel.h> | 18 | #include <linux/kernel.h> |
18 | #include <linux/pci.h> | 19 | #include <linux/pci.h> |
20 | #include <linux/pm.h> | ||
19 | #include <linux/string.h> | 21 | #include <linux/string.h> |
20 | #include <linux/slab.h> | 22 | #include <linux/slab.h> |
21 | #include <linux/serial_core.h> | 23 | #include <linux/serial_core.h> |
@@ -167,11 +169,21 @@ static struct platform_device glantank_serial_device = { | |||
167 | .resource = &glantank_uart_resource, | 169 | .resource = &glantank_uart_resource, |
168 | }; | 170 | }; |
169 | 171 | ||
172 | static struct f75375s_platform_data glantank_f75375s = { | ||
173 | .pwm = { 255, 255 }, | ||
174 | .pwm_enable = { 0, 0 }, | ||
175 | }; | ||
176 | |||
170 | static struct i2c_board_info __initdata glantank_i2c_devices[] = { | 177 | static struct i2c_board_info __initdata glantank_i2c_devices[] = { |
171 | { | 178 | { |
172 | I2C_BOARD_INFO("rtc-rs5c372", 0x32), | 179 | I2C_BOARD_INFO("rtc-rs5c372", 0x32), |
173 | .type = "rs5c372a", | 180 | .type = "rs5c372a", |
174 | }, | 181 | }, |
182 | { | ||
183 | I2C_BOARD_INFO("f75375", 0x2e), | ||
184 | .type = "f75375", | ||
185 | .platform_data = &glantank_f75375s, | ||
186 | }, | ||
175 | }; | 187 | }; |
176 | 188 | ||
177 | static void glantank_power_off(void) | 189 | static void glantank_power_off(void) |
diff --git a/arch/arm/mach-omap1/time.c b/arch/arm/mach-omap1/time.c index 237651ebae5d..a4f8b2055437 100644 --- a/arch/arm/mach-omap1/time.c +++ b/arch/arm/mach-omap1/time.c | |||
@@ -132,13 +132,20 @@ static inline void omap_mpu_timer_start(int nr, unsigned long load_val, | |||
132 | timer->cntl = timerflags; | 132 | timer->cntl = timerflags; |
133 | } | 133 | } |
134 | 134 | ||
135 | static inline void omap_mpu_timer_stop(int nr) | ||
136 | { | ||
137 | volatile omap_mpu_timer_regs_t* timer = omap_mpu_timer_base(nr); | ||
138 | |||
139 | timer->cntl &= ~MPU_TIMER_ST; | ||
140 | } | ||
141 | |||
135 | /* | 142 | /* |
136 | * --------------------------------------------------------------------------- | 143 | * --------------------------------------------------------------------------- |
137 | * MPU timer 1 ... count down to zero, interrupt, reload | 144 | * MPU timer 1 ... count down to zero, interrupt, reload |
138 | * --------------------------------------------------------------------------- | 145 | * --------------------------------------------------------------------------- |
139 | */ | 146 | */ |
140 | static int omap_mpu_set_next_event(unsigned long cycles, | 147 | static int omap_mpu_set_next_event(unsigned long cycles, |
141 | struct clock_event_device *evt) | 148 | struct clock_event_device *evt) |
142 | { | 149 | { |
143 | omap_mpu_timer_start(0, cycles, 0); | 150 | omap_mpu_timer_start(0, cycles, 0); |
144 | return 0; | 151 | return 0; |
@@ -152,6 +159,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode, | |||
152 | omap_mpu_set_autoreset(0); | 159 | omap_mpu_set_autoreset(0); |
153 | break; | 160 | break; |
154 | case CLOCK_EVT_MODE_ONESHOT: | 161 | case CLOCK_EVT_MODE_ONESHOT: |
162 | omap_mpu_timer_stop(0); | ||
155 | omap_mpu_remove_autoreset(0); | 163 | omap_mpu_remove_autoreset(0); |
156 | break; | 164 | break; |
157 | case CLOCK_EVT_MODE_UNUSED: | 165 | case CLOCK_EVT_MODE_UNUSED: |
@@ -163,7 +171,7 @@ static void omap_mpu_set_mode(enum clock_event_mode mode, | |||
163 | 171 | ||
164 | static struct clock_event_device clockevent_mpu_timer1 = { | 172 | static struct clock_event_device clockevent_mpu_timer1 = { |
165 | .name = "mpu_timer1", | 173 | .name = "mpu_timer1", |
166 | .features = CLOCK_EVT_FEAT_PERIODIC, CLOCK_EVT_FEAT_ONESHOT, | 174 | .features = CLOCK_EVT_FEAT_PERIODIC | CLOCK_EVT_FEAT_ONESHOT, |
167 | .shift = 32, | 175 | .shift = 32, |
168 | .set_next_event = omap_mpu_set_next_event, | 176 | .set_next_event = omap_mpu_set_next_event, |
169 | .set_mode = omap_mpu_set_mode, | 177 | .set_mode = omap_mpu_set_mode, |
diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index c156ddab9a2d..016690b9d564 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S | |||
@@ -114,6 +114,10 @@ clean_addr: .word CLEAN_ADDR | |||
114 | * Nothing too exciting at the moment | 114 | * Nothing too exciting at the moment |
115 | */ | 115 | */ |
116 | ENTRY(cpu_xscale_proc_init) | 116 | ENTRY(cpu_xscale_proc_init) |
117 | @ enable write buffer coalescing. Some bootloader disable it | ||
118 | mrc p15, 0, r1, c1, c0, 1 | ||
119 | bic r1, r1, #1 | ||
120 | mcr p15, 0, r1, c1, c0, 1 | ||
117 | mov pc, lr | 121 | mov pc, lr |
118 | 122 | ||
119 | /* | 123 | /* |
diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig index c1f7e5a819a3..b917206ee906 100644 --- a/arch/arm/plat-omap/Kconfig +++ b/arch/arm/plat-omap/Kconfig | |||
@@ -11,7 +11,6 @@ choice | |||
11 | 11 | ||
12 | config ARCH_OMAP1 | 12 | config ARCH_OMAP1 |
13 | bool "TI OMAP1" | 13 | bool "TI OMAP1" |
14 | select GENERIC_CLOCKEVENTS | ||
15 | 14 | ||
16 | config ARCH_OMAP2 | 15 | config ARCH_OMAP2 |
17 | bool "TI OMAP2" | 16 | bool "TI OMAP2" |
diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile index ce17df31b845..8f56c255d1ee 100644 --- a/arch/arm/plat-omap/Makefile +++ b/arch/arm/plat-omap/Makefile | |||
@@ -14,9 +14,14 @@ obj-$(CONFIG_OMAP_32K_TIMER) += timer32k.o | |||
14 | # OCPI interconnect support for 1710, 1610 and 5912 | 14 | # OCPI interconnect support for 1710, 1610 and 5912 |
15 | obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o | 15 | obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o |
16 | 16 | ||
17 | obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o | ||
17 | 18 | ||
18 | obj-$(CONFIG_CPU_FREQ) += cpu-omap.o | 19 | obj-$(CONFIG_CPU_FREQ) += cpu-omap.o |
19 | obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o | 20 | obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o |
20 | obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o | 21 | obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o |
21 | obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o | 22 | obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o |
22 | obj-$(CONFIG_I2C_OMAP) += i2c.o | 23 | obj-$(CONFIG_I2C_OMAP) += i2c.o |
24 | |||
25 | # OMAP mailbox framework | ||
26 | obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o | ||
27 | |||
diff --git a/arch/arm/plat-omap/dma.c b/arch/arm/plat-omap/dma.c index 91004a3c4794..793740686be2 100644 --- a/arch/arm/plat-omap/dma.c +++ b/arch/arm/plat-omap/dma.c | |||
@@ -1020,12 +1020,12 @@ static void create_dma_lch_chain(int lch_head, int lch_queue) | |||
1020 | } | 1020 | } |
1021 | 1021 | ||
1022 | w = OMAP_DMA_CLNK_CTRL_REG(lch_head); | 1022 | w = OMAP_DMA_CLNK_CTRL_REG(lch_head); |
1023 | w &= ~(0x0f); | 1023 | w &= ~(0x1f); |
1024 | w |= lch_queue; | 1024 | w |= lch_queue; |
1025 | OMAP_DMA_CLNK_CTRL_REG(lch_head) = w; | 1025 | OMAP_DMA_CLNK_CTRL_REG(lch_head) = w; |
1026 | 1026 | ||
1027 | w = OMAP_DMA_CLNK_CTRL_REG(lch_queue); | 1027 | w = OMAP_DMA_CLNK_CTRL_REG(lch_queue); |
1028 | w &= ~(0x0f); | 1028 | w &= ~(0x1f); |
1029 | w |= (dma_chan[lch_queue].next_linked_ch); | 1029 | w |= (dma_chan[lch_queue].next_linked_ch); |
1030 | OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w; | 1030 | OMAP_DMA_CLNK_CTRL_REG(lch_queue) = w; |
1031 | } | 1031 | } |
@@ -1248,7 +1248,7 @@ EXPORT_SYMBOL(omap_dma_chain_status); | |||
1248 | * @param frame_count | 1248 | * @param frame_count |
1249 | * @param callbk_data - channel callback parameter data. | 1249 | * @param callbk_data - channel callback parameter data. |
1250 | * | 1250 | * |
1251 | * @return - Success : start_dma status | 1251 | * @return - Success : 0 |
1252 | * Failure: -EINVAL/-EBUSY | 1252 | * Failure: -EINVAL/-EBUSY |
1253 | */ | 1253 | */ |
1254 | int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start, | 1254 | int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start, |
@@ -1367,7 +1367,7 @@ int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start, | |||
1367 | dma_chan[lch].flags |= OMAP_DMA_ACTIVE; | 1367 | dma_chan[lch].flags |= OMAP_DMA_ACTIVE; |
1368 | } | 1368 | } |
1369 | } | 1369 | } |
1370 | return start_dma; | 1370 | return 0; |
1371 | } | 1371 | } |
1372 | EXPORT_SYMBOL(omap_dma_chain_a_transfer); | 1372 | EXPORT_SYMBOL(omap_dma_chain_a_transfer); |
1373 | 1373 | ||
@@ -1663,6 +1663,7 @@ static int omap2_dma_handle_ch(int ch) | |||
1663 | if (!status) { | 1663 | if (!status) { |
1664 | if (printk_ratelimit()) | 1664 | if (printk_ratelimit()) |
1665 | printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch); | 1665 | printk(KERN_WARNING "Spurious DMA IRQ for lch %d\n", ch); |
1666 | omap_writel(1 << ch, OMAP_DMA4_IRQSTATUS_L0); | ||
1666 | return 0; | 1667 | return 0; |
1667 | } | 1668 | } |
1668 | if (unlikely(dma_chan[ch].dev_id == -1)) { | 1669 | if (unlikely(dma_chan[ch].dev_id == -1)) { |
diff --git a/arch/arm/plat-omap/gpio.c b/arch/arm/plat-omap/gpio.c index 66a1455595f4..8c78e4e57b5c 100644 --- a/arch/arm/plat-omap/gpio.c +++ b/arch/arm/plat-omap/gpio.c | |||
@@ -1134,10 +1134,9 @@ static void gpio_mask_irq(unsigned int irq) | |||
1134 | static void gpio_unmask_irq(unsigned int irq) | 1134 | static void gpio_unmask_irq(unsigned int irq) |
1135 | { | 1135 | { |
1136 | unsigned int gpio = irq - IH_GPIO_BASE; | 1136 | unsigned int gpio = irq - IH_GPIO_BASE; |
1137 | unsigned int gpio_idx = get_gpio_index(gpio); | ||
1138 | struct gpio_bank *bank = get_irq_chip_data(irq); | 1137 | struct gpio_bank *bank = get_irq_chip_data(irq); |
1139 | 1138 | ||
1140 | _set_gpio_irqenable(bank, gpio_idx, 1); | 1139 | _set_gpio_irqenable(bank, gpio, 1); |
1141 | } | 1140 | } |
1142 | 1141 | ||
1143 | static struct irq_chip gpio_irq_chip = { | 1142 | static struct irq_chip gpio_irq_chip = { |
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile index 4974d9e56ead..1aded8f759d0 100644 --- a/arch/powerpc/boot/Makefile +++ b/arch/powerpc/boot/Makefile | |||
@@ -253,8 +253,8 @@ image-$(CONFIG_TQM8540) += cuImage.tqm8540 | |||
253 | image-$(CONFIG_TQM8541) += cuImage.tqm8541 | 253 | image-$(CONFIG_TQM8541) += cuImage.tqm8541 |
254 | image-$(CONFIG_TQM8555) += cuImage.tqm8555 | 254 | image-$(CONFIG_TQM8555) += cuImage.tqm8555 |
255 | image-$(CONFIG_TQM8560) += cuImage.tqm8560 | 255 | image-$(CONFIG_TQM8560) += cuImage.tqm8560 |
256 | image-$(CONFIG_SBC8548) += cuImage.tqm8548 | 256 | image-$(CONFIG_SBC8548) += cuImage.sbc8548 |
257 | image-$(CONFIG_SBC8560) += cuImage.tqm8560 | 257 | image-$(CONFIG_SBC8560) += cuImage.sbc8560 |
258 | 258 | ||
259 | # Board ports in arch/powerpc/platform/embedded6xx/Kconfig | 259 | # Board ports in arch/powerpc/platform/embedded6xx/Kconfig |
260 | image-$(CONFIG_STORCENTER) += cuImage.storcenter | 260 | image-$(CONFIG_STORCENTER) += cuImage.storcenter |
diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper index d50e498a072b..8f8b8494d62f 100755 --- a/arch/powerpc/boot/wrapper +++ b/arch/powerpc/boot/wrapper | |||
@@ -174,10 +174,10 @@ cuboot*) | |||
174 | *-mpc83*) | 174 | *-mpc83*) |
175 | platformo=$object/cuboot-83xx.o | 175 | platformo=$object/cuboot-83xx.o |
176 | ;; | 176 | ;; |
177 | *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555*) | 177 | *-tqm8541|*-mpc8560*|*-tqm8560|*-tqm8555) |
178 | platformo=$object/cuboot-85xx-cpm2.o | 178 | platformo=$object/cuboot-85xx-cpm2.o |
179 | ;; | 179 | ;; |
180 | *-mpc85*) | 180 | *-mpc85*|*-tqm8540|*-sbc85*) |
181 | platformo=$object/cuboot-85xx.o | 181 | platformo=$object/cuboot-85xx.o |
182 | ;; | 182 | ;; |
183 | esac | 183 | esac |
diff --git a/arch/powerpc/configs/cell_defconfig b/arch/powerpc/configs/cell_defconfig index f3bde8c6c8c6..c420e47426f8 100644 --- a/arch/powerpc/configs/cell_defconfig +++ b/arch/powerpc/configs/cell_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:48:05 2007 | 4 | # Thu Mar 20 10:31:04 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -69,8 +70,6 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
69 | # CONFIG_POSIX_MQUEUE is not set | 70 | # CONFIG_POSIX_MQUEUE is not set |
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 71 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 72 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_USER_NS is not set | ||
73 | # CONFIG_PID_NS is not set | ||
74 | # CONFIG_AUDIT is not set | 73 | # CONFIG_AUDIT is not set |
75 | CONFIG_IKCONFIG=y | 74 | CONFIG_IKCONFIG=y |
76 | CONFIG_IKCONFIG_PROC=y | 75 | CONFIG_IKCONFIG_PROC=y |
@@ -79,13 +78,20 @@ CONFIG_CGROUPS=y | |||
79 | # CONFIG_CGROUP_DEBUG is not set | 78 | # CONFIG_CGROUP_DEBUG is not set |
80 | # CONFIG_CGROUP_NS is not set | 79 | # CONFIG_CGROUP_NS is not set |
81 | CONFIG_CPUSETS=y | 80 | CONFIG_CPUSETS=y |
82 | CONFIG_FAIR_GROUP_SCHED=y | 81 | # CONFIG_GROUP_SCHED is not set |
83 | CONFIG_FAIR_USER_SCHED=y | 82 | # CONFIG_USER_SCHED is not set |
84 | # CONFIG_FAIR_CGROUP_SCHED is not set | 83 | # CONFIG_CGROUP_SCHED is not set |
85 | # CONFIG_CGROUP_CPUACCT is not set | 84 | # CONFIG_CGROUP_CPUACCT is not set |
85 | # CONFIG_RESOURCE_COUNTERS is not set | ||
86 | CONFIG_SYSFS_DEPRECATED=y | 86 | CONFIG_SYSFS_DEPRECATED=y |
87 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
87 | CONFIG_PROC_PID_CPUSET=y | 88 | CONFIG_PROC_PID_CPUSET=y |
88 | # CONFIG_RELAY is not set | 89 | # CONFIG_RELAY is not set |
90 | CONFIG_NAMESPACES=y | ||
91 | # CONFIG_UTS_NS is not set | ||
92 | # CONFIG_IPC_NS is not set | ||
93 | # CONFIG_USER_NS is not set | ||
94 | # CONFIG_PID_NS is not set | ||
89 | CONFIG_BLK_DEV_INITRD=y | 95 | CONFIG_BLK_DEV_INITRD=y |
90 | CONFIG_INITRAMFS_SOURCE="" | 96 | CONFIG_INITRAMFS_SOURCE="" |
91 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 97 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -99,11 +105,13 @@ CONFIG_HOTPLUG=y | |||
99 | CONFIG_PRINTK=y | 105 | CONFIG_PRINTK=y |
100 | CONFIG_BUG=y | 106 | CONFIG_BUG=y |
101 | CONFIG_ELF_CORE=y | 107 | CONFIG_ELF_CORE=y |
108 | # CONFIG_COMPAT_BRK is not set | ||
102 | CONFIG_BASE_FULL=y | 109 | CONFIG_BASE_FULL=y |
103 | CONFIG_FUTEX=y | 110 | CONFIG_FUTEX=y |
104 | CONFIG_ANON_INODES=y | 111 | CONFIG_ANON_INODES=y |
105 | CONFIG_EPOLL=y | 112 | CONFIG_EPOLL=y |
106 | CONFIG_SIGNALFD=y | 113 | CONFIG_SIGNALFD=y |
114 | CONFIG_TIMERFD=y | ||
107 | CONFIG_EVENTFD=y | 115 | CONFIG_EVENTFD=y |
108 | CONFIG_SHMEM=y | 116 | CONFIG_SHMEM=y |
109 | CONFIG_VM_EVENT_COUNTERS=y | 117 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -111,6 +119,15 @@ CONFIG_SLUB_DEBUG=y | |||
111 | # CONFIG_SLAB is not set | 119 | # CONFIG_SLAB is not set |
112 | CONFIG_SLUB=y | 120 | CONFIG_SLUB=y |
113 | # CONFIG_SLOB is not set | 121 | # CONFIG_SLOB is not set |
122 | CONFIG_PROFILING=y | ||
123 | # CONFIG_MARKERS is not set | ||
124 | CONFIG_OPROFILE=m | ||
125 | CONFIG_HAVE_OPROFILE=y | ||
126 | # CONFIG_KPROBES is not set | ||
127 | CONFIG_HAVE_KPROBES=y | ||
128 | CONFIG_HAVE_KRETPROBES=y | ||
129 | CONFIG_PROC_PAGE_MONITOR=y | ||
130 | CONFIG_SLABINFO=y | ||
114 | CONFIG_RT_MUTEXES=y | 131 | CONFIG_RT_MUTEXES=y |
115 | # CONFIG_TINY_SHMEM is not set | 132 | # CONFIG_TINY_SHMEM is not set |
116 | CONFIG_BASE_SMALL=0 | 133 | CONFIG_BASE_SMALL=0 |
@@ -138,6 +155,7 @@ CONFIG_DEFAULT_AS=y | |||
138 | # CONFIG_DEFAULT_CFQ is not set | 155 | # CONFIG_DEFAULT_CFQ is not set |
139 | # CONFIG_DEFAULT_NOOP is not set | 156 | # CONFIG_DEFAULT_NOOP is not set |
140 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 157 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
158 | CONFIG_CLASSIC_RCU=y | ||
141 | 159 | ||
142 | # | 160 | # |
143 | # Platform support | 161 | # Platform support |
@@ -148,8 +166,8 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
148 | # CONFIG_PPC_86xx is not set | 166 | # CONFIG_PPC_86xx is not set |
149 | # CONFIG_PPC_PSERIES is not set | 167 | # CONFIG_PPC_PSERIES is not set |
150 | # CONFIG_PPC_ISERIES is not set | 168 | # CONFIG_PPC_ISERIES is not set |
151 | # CONFIG_PPC_MPC52xx is not set | 169 | # CONFIG_PPC_MPC512x is not set |
152 | # CONFIG_PPC_MPC5200 is not set | 170 | # CONFIG_PPC_MPC5121 is not set |
153 | # CONFIG_PPC_PMAC is not set | 171 | # CONFIG_PPC_PMAC is not set |
154 | # CONFIG_PPC_MAPLE is not set | 172 | # CONFIG_PPC_MAPLE is not set |
155 | # CONFIG_PPC_PASEMI is not set | 173 | # CONFIG_PPC_PASEMI is not set |
@@ -162,14 +180,14 @@ CONFIG_PPC_PS3=y | |||
162 | # CONFIG_PS3_ADVANCED is not set | 180 | # CONFIG_PS3_ADVANCED is not set |
163 | CONFIG_PS3_HTAB_SIZE=20 | 181 | CONFIG_PS3_HTAB_SIZE=20 |
164 | # CONFIG_PS3_DYNAMIC_DMA is not set | 182 | # CONFIG_PS3_DYNAMIC_DMA is not set |
165 | CONFIG_PS3_USE_LPAR_ADDR=y | ||
166 | CONFIG_PS3_VUART=y | 183 | CONFIG_PS3_VUART=y |
167 | CONFIG_PS3_PS3AV=y | 184 | CONFIG_PS3_PS3AV=y |
168 | CONFIG_PS3_SYS_MANAGER=m | 185 | CONFIG_PS3_SYS_MANAGER=y |
169 | CONFIG_PS3_STORAGE=y | 186 | CONFIG_PS3_STORAGE=y |
170 | CONFIG_PS3_DISK=y | 187 | CONFIG_PS3_DISK=y |
171 | CONFIG_PS3_ROM=m | 188 | CONFIG_PS3_ROM=m |
172 | CONFIG_PS3_FLASH=m | 189 | CONFIG_PS3_FLASH=m |
190 | CONFIG_PS3_LPM=m | ||
173 | CONFIG_PPC_CELL=y | 191 | CONFIG_PPC_CELL=y |
174 | CONFIG_PPC_CELL_NATIVE=y | 192 | CONFIG_PPC_CELL_NATIVE=y |
175 | CONFIG_PPC_IBM_CELL_BLADE=y | 193 | CONFIG_PPC_IBM_CELL_BLADE=y |
@@ -183,10 +201,12 @@ CONFIG_CBE_RAS=y | |||
183 | CONFIG_CBE_THERM=m | 201 | CONFIG_CBE_THERM=m |
184 | CONFIG_CBE_CPUFREQ=m | 202 | CONFIG_CBE_CPUFREQ=m |
185 | CONFIG_CBE_CPUFREQ_PMI=m | 203 | CONFIG_CBE_CPUFREQ_PMI=m |
204 | CONFIG_OPROFILE_CELL=y | ||
186 | # CONFIG_PQ2ADS is not set | 205 | # CONFIG_PQ2ADS is not set |
187 | CONFIG_PPC_NATIVE=y | 206 | CONFIG_PPC_NATIVE=y |
188 | CONFIG_UDBG_RTAS_CONSOLE=y | 207 | CONFIG_UDBG_RTAS_CONSOLE=y |
189 | CONFIG_PPC_UDBG_BEAT=y | 208 | CONFIG_PPC_UDBG_BEAT=y |
209 | # CONFIG_IPIC is not set | ||
190 | CONFIG_MPIC=y | 210 | CONFIG_MPIC=y |
191 | # CONFIG_MPIC_WEIRD is not set | 211 | # CONFIG_MPIC_WEIRD is not set |
192 | # CONFIG_PPC_I8259 is not set | 212 | # CONFIG_PPC_I8259 is not set |
@@ -219,7 +239,6 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y | |||
219 | # | 239 | # |
220 | # CPU Frequency drivers | 240 | # CPU Frequency drivers |
221 | # | 241 | # |
222 | # CONFIG_CPM2 is not set | ||
223 | CONFIG_AXON_RAM=m | 242 | CONFIG_AXON_RAM=m |
224 | # CONFIG_FSL_ULI1575 is not set | 243 | # CONFIG_FSL_ULI1575 is not set |
225 | 244 | ||
@@ -235,16 +254,20 @@ CONFIG_HZ_250=y | |||
235 | # CONFIG_HZ_300 is not set | 254 | # CONFIG_HZ_300 is not set |
236 | # CONFIG_HZ_1000 is not set | 255 | # CONFIG_HZ_1000 is not set |
237 | CONFIG_HZ=250 | 256 | CONFIG_HZ=250 |
257 | # CONFIG_SCHED_HRTICK is not set | ||
238 | CONFIG_PREEMPT_NONE=y | 258 | CONFIG_PREEMPT_NONE=y |
239 | # CONFIG_PREEMPT_VOLUNTARY is not set | 259 | # CONFIG_PREEMPT_VOLUNTARY is not set |
240 | # CONFIG_PREEMPT is not set | 260 | # CONFIG_PREEMPT is not set |
241 | CONFIG_PREEMPT_BKL=y | ||
242 | CONFIG_BINFMT_ELF=y | 261 | CONFIG_BINFMT_ELF=y |
262 | CONFIG_COMPAT_BINFMT_ELF=y | ||
243 | CONFIG_BINFMT_MISC=m | 263 | CONFIG_BINFMT_MISC=m |
244 | CONFIG_FORCE_MAX_ZONEORDER=9 | 264 | CONFIG_FORCE_MAX_ZONEORDER=9 |
245 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 265 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
246 | # CONFIG_IOMMU_VMERGE is not set | 266 | # CONFIG_IOMMU_VMERGE is not set |
267 | CONFIG_IOMMU_HELPER=y | ||
247 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 268 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
269 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
270 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
248 | # CONFIG_KEXEC is not set | 271 | # CONFIG_KEXEC is not set |
249 | # CONFIG_CRASH_DUMP is not set | 272 | # CONFIG_CRASH_DUMP is not set |
250 | CONFIG_IRQ_ALL_CPUS=y | 273 | CONFIG_IRQ_ALL_CPUS=y |
@@ -267,6 +290,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | |||
267 | CONFIG_SPARSEMEM_VMEMMAP=y | 290 | CONFIG_SPARSEMEM_VMEMMAP=y |
268 | CONFIG_MEMORY_HOTPLUG=y | 291 | CONFIG_MEMORY_HOTPLUG=y |
269 | CONFIG_MEMORY_HOTPLUG_SPARSE=y | 292 | CONFIG_MEMORY_HOTPLUG_SPARSE=y |
293 | CONFIG_MEMORY_HOTREMOVE=y | ||
270 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 294 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
271 | CONFIG_MIGRATION=y | 295 | CONFIG_MIGRATION=y |
272 | CONFIG_RESOURCES_64BIT=y | 296 | CONFIG_RESOURCES_64BIT=y |
@@ -276,12 +300,12 @@ CONFIG_ARCH_MEMORY_PROBE=y | |||
276 | CONFIG_NODES_SPAN_OTHER_NODES=y | 300 | CONFIG_NODES_SPAN_OTHER_NODES=y |
277 | CONFIG_PPC_HAS_HASH_64K=y | 301 | CONFIG_PPC_HAS_HASH_64K=y |
278 | CONFIG_PPC_64K_PAGES=y | 302 | CONFIG_PPC_64K_PAGES=y |
303 | # CONFIG_PPC_SUBPAGE_PROT is not set | ||
279 | CONFIG_SCHED_SMT=y | 304 | CONFIG_SCHED_SMT=y |
280 | CONFIG_PROC_DEVICETREE=y | 305 | CONFIG_PROC_DEVICETREE=y |
281 | # CONFIG_CMDLINE_BOOL is not set | 306 | # CONFIG_CMDLINE_BOOL is not set |
282 | # CONFIG_PM is not set | 307 | # CONFIG_PM is not set |
283 | CONFIG_SECCOMP=y | 308 | CONFIG_SECCOMP=y |
284 | # CONFIG_WANT_DEVICE_TREE is not set | ||
285 | CONFIG_ISA_DMA_API=y | 309 | CONFIG_ISA_DMA_API=y |
286 | 310 | ||
287 | # | 311 | # |
@@ -318,6 +342,7 @@ CONFIG_XFRM=y | |||
318 | # CONFIG_XFRM_USER is not set | 342 | # CONFIG_XFRM_USER is not set |
319 | # CONFIG_XFRM_SUB_POLICY is not set | 343 | # CONFIG_XFRM_SUB_POLICY is not set |
320 | # CONFIG_XFRM_MIGRATE is not set | 344 | # CONFIG_XFRM_MIGRATE is not set |
345 | # CONFIG_XFRM_STATISTICS is not set | ||
321 | # CONFIG_NET_KEY is not set | 346 | # CONFIG_NET_KEY is not set |
322 | CONFIG_INET=y | 347 | CONFIG_INET=y |
323 | CONFIG_IP_MULTICAST=y | 348 | CONFIG_IP_MULTICAST=y |
@@ -368,6 +393,7 @@ CONFIG_IPV6_TUNNEL=m | |||
368 | # CONFIG_NETWORK_SECMARK is not set | 393 | # CONFIG_NETWORK_SECMARK is not set |
369 | CONFIG_NETFILTER=y | 394 | CONFIG_NETFILTER=y |
370 | # CONFIG_NETFILTER_DEBUG is not set | 395 | # CONFIG_NETFILTER_DEBUG is not set |
396 | CONFIG_NETFILTER_ADVANCED=y | ||
371 | 397 | ||
372 | # | 398 | # |
373 | # Core Netfilter Configuration | 399 | # Core Netfilter Configuration |
@@ -375,7 +401,6 @@ CONFIG_NETFILTER=y | |||
375 | CONFIG_NETFILTER_NETLINK=m | 401 | CONFIG_NETFILTER_NETLINK=m |
376 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 402 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
377 | CONFIG_NETFILTER_NETLINK_LOG=m | 403 | CONFIG_NETFILTER_NETLINK_LOG=m |
378 | # CONFIG_NF_CONNTRACK_ENABLED is not set | ||
379 | # CONFIG_NF_CONNTRACK is not set | 404 | # CONFIG_NF_CONNTRACK is not set |
380 | CONFIG_NETFILTER_XTABLES=m | 405 | CONFIG_NETFILTER_XTABLES=m |
381 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 406 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
@@ -383,20 +408,25 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m | |||
383 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 408 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
384 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 409 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
385 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 410 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
411 | CONFIG_NETFILTER_XT_TARGET_RATEEST=m | ||
386 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | 412 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set |
387 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 413 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
414 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m | ||
388 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 415 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
389 | CONFIG_NETFILTER_XT_MATCH_DCCP=m | 416 | CONFIG_NETFILTER_XT_MATCH_DCCP=m |
390 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 417 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
391 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 418 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
419 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | ||
392 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 420 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
393 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 421 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
394 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 422 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
395 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 423 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
424 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | ||
396 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 425 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
397 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | 426 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
398 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 427 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
399 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 428 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
429 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | ||
400 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 430 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
401 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 431 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
402 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m | 432 | CONFIG_NETFILTER_XT_MATCH_STATISTIC=m |
@@ -411,20 +441,16 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m | |||
411 | # | 441 | # |
412 | CONFIG_IP_NF_QUEUE=m | 442 | CONFIG_IP_NF_QUEUE=m |
413 | CONFIG_IP_NF_IPTABLES=m | 443 | CONFIG_IP_NF_IPTABLES=m |
414 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
415 | CONFIG_IP_NF_MATCH_TOS=m | ||
416 | CONFIG_IP_NF_MATCH_RECENT=m | 444 | CONFIG_IP_NF_MATCH_RECENT=m |
417 | CONFIG_IP_NF_MATCH_ECN=m | 445 | CONFIG_IP_NF_MATCH_ECN=m |
418 | CONFIG_IP_NF_MATCH_AH=m | 446 | CONFIG_IP_NF_MATCH_AH=m |
419 | CONFIG_IP_NF_MATCH_TTL=m | 447 | CONFIG_IP_NF_MATCH_TTL=m |
420 | CONFIG_IP_NF_MATCH_OWNER=m | ||
421 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 448 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
422 | CONFIG_IP_NF_FILTER=m | 449 | CONFIG_IP_NF_FILTER=m |
423 | CONFIG_IP_NF_TARGET_REJECT=m | 450 | CONFIG_IP_NF_TARGET_REJECT=m |
424 | CONFIG_IP_NF_TARGET_LOG=m | 451 | CONFIG_IP_NF_TARGET_LOG=m |
425 | CONFIG_IP_NF_TARGET_ULOG=m | 452 | CONFIG_IP_NF_TARGET_ULOG=m |
426 | CONFIG_IP_NF_MANGLE=m | 453 | CONFIG_IP_NF_MANGLE=m |
427 | CONFIG_IP_NF_TARGET_TOS=m | ||
428 | CONFIG_IP_NF_TARGET_ECN=m | 454 | CONFIG_IP_NF_TARGET_ECN=m |
429 | CONFIG_IP_NF_TARGET_TTL=m | 455 | CONFIG_IP_NF_TARGET_TTL=m |
430 | CONFIG_IP_NF_RAW=m | 456 | CONFIG_IP_NF_RAW=m |
@@ -433,7 +459,7 @@ CONFIG_IP_NF_ARPFILTER=m | |||
433 | CONFIG_IP_NF_ARP_MANGLE=m | 459 | CONFIG_IP_NF_ARP_MANGLE=m |
434 | 460 | ||
435 | # | 461 | # |
436 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 462 | # IPv6: Netfilter Configuration |
437 | # | 463 | # |
438 | # CONFIG_IP6_NF_QUEUE is not set | 464 | # CONFIG_IP6_NF_QUEUE is not set |
439 | # CONFIG_IP6_NF_IPTABLES is not set | 465 | # CONFIG_IP6_NF_IPTABLES is not set |
@@ -459,6 +485,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
459 | # | 485 | # |
460 | # CONFIG_NET_PKTGEN is not set | 486 | # CONFIG_NET_PKTGEN is not set |
461 | # CONFIG_HAMRADIO is not set | 487 | # CONFIG_HAMRADIO is not set |
488 | # CONFIG_CAN is not set | ||
462 | # CONFIG_IRDA is not set | 489 | # CONFIG_IRDA is not set |
463 | # CONFIG_BT is not set | 490 | # CONFIG_BT is not set |
464 | # CONFIG_AF_RXRPC is not set | 491 | # CONFIG_AF_RXRPC is not set |
@@ -467,7 +494,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
467 | # Wireless | 494 | # Wireless |
468 | # | 495 | # |
469 | # CONFIG_CFG80211 is not set | 496 | # CONFIG_CFG80211 is not set |
470 | # CONFIG_WIRELESS_EXT is not set | 497 | CONFIG_WIRELESS_EXT=y |
471 | # CONFIG_MAC80211 is not set | 498 | # CONFIG_MAC80211 is not set |
472 | # CONFIG_IEEE80211 is not set | 499 | # CONFIG_IEEE80211 is not set |
473 | # CONFIG_RFKILL is not set | 500 | # CONFIG_RFKILL is not set |
@@ -505,7 +532,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
505 | CONFIG_BLK_DEV_RAM=y | 532 | CONFIG_BLK_DEV_RAM=y |
506 | CONFIG_BLK_DEV_RAM_COUNT=16 | 533 | CONFIG_BLK_DEV_RAM_COUNT=16 |
507 | CONFIG_BLK_DEV_RAM_SIZE=131072 | 534 | CONFIG_BLK_DEV_RAM_SIZE=131072 |
508 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 535 | # CONFIG_BLK_DEV_XIP is not set |
509 | # CONFIG_CDROM_PKTCDVD is not set | 536 | # CONFIG_CDROM_PKTCDVD is not set |
510 | # CONFIG_ATA_OVER_ETH is not set | 537 | # CONFIG_ATA_OVER_ETH is not set |
511 | CONFIG_MISC_DEVICES=y | 538 | CONFIG_MISC_DEVICES=y |
@@ -513,11 +540,13 @@ CONFIG_MISC_DEVICES=y | |||
513 | # CONFIG_EEPROM_93CX6 is not set | 540 | # CONFIG_EEPROM_93CX6 is not set |
514 | # CONFIG_SGI_IOC4 is not set | 541 | # CONFIG_SGI_IOC4 is not set |
515 | # CONFIG_TIFM_CORE is not set | 542 | # CONFIG_TIFM_CORE is not set |
543 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
544 | CONFIG_HAVE_IDE=y | ||
516 | CONFIG_IDE=y | 545 | CONFIG_IDE=y |
517 | CONFIG_BLK_DEV_IDE=y | 546 | CONFIG_BLK_DEV_IDE=y |
518 | 547 | ||
519 | # | 548 | # |
520 | # Please see Documentation/ide.txt for help/info on IDE drives | 549 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
521 | # | 550 | # |
522 | # CONFIG_BLK_DEV_IDE_SATA is not set | 551 | # CONFIG_BLK_DEV_IDE_SATA is not set |
523 | CONFIG_BLK_DEV_IDEDISK=y | 552 | CONFIG_BLK_DEV_IDEDISK=y |
@@ -534,12 +563,12 @@ CONFIG_IDE_PROC_FS=y | |||
534 | # | 563 | # |
535 | CONFIG_IDE_GENERIC=y | 564 | CONFIG_IDE_GENERIC=y |
536 | # CONFIG_BLK_DEV_PLATFORM is not set | 565 | # CONFIG_BLK_DEV_PLATFORM is not set |
566 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
537 | 567 | ||
538 | # | 568 | # |
539 | # PCI IDE chipsets support | 569 | # PCI IDE chipsets support |
540 | # | 570 | # |
541 | CONFIG_BLK_DEV_IDEPCI=y | 571 | CONFIG_BLK_DEV_IDEPCI=y |
542 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
543 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 572 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
544 | # CONFIG_BLK_DEV_OFFBOARD is not set | 573 | # CONFIG_BLK_DEV_OFFBOARD is not set |
545 | CONFIG_BLK_DEV_GENERIC=y | 574 | CONFIG_BLK_DEV_GENERIC=y |
@@ -571,7 +600,6 @@ CONFIG_BLK_DEV_SIIMAGE=y | |||
571 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 600 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
572 | # CONFIG_BLK_DEV_TC86C001 is not set | 601 | # CONFIG_BLK_DEV_TC86C001 is not set |
573 | CONFIG_BLK_DEV_CELLEB=y | 602 | CONFIG_BLK_DEV_CELLEB=y |
574 | # CONFIG_IDE_ARM is not set | ||
575 | CONFIG_BLK_DEV_IDEDMA=y | 603 | CONFIG_BLK_DEV_IDEDMA=y |
576 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 604 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
577 | # CONFIG_BLK_DEV_HD is not set | 605 | # CONFIG_BLK_DEV_HD is not set |
@@ -637,6 +665,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
637 | # CONFIG_SCSI_IPS is not set | 665 | # CONFIG_SCSI_IPS is not set |
638 | # CONFIG_SCSI_INITIO is not set | 666 | # CONFIG_SCSI_INITIO is not set |
639 | # CONFIG_SCSI_INIA100 is not set | 667 | # CONFIG_SCSI_INIA100 is not set |
668 | # CONFIG_SCSI_MVSAS is not set | ||
640 | # CONFIG_SCSI_STEX is not set | 669 | # CONFIG_SCSI_STEX is not set |
641 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 670 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
642 | # CONFIG_SCSI_IPR is not set | 671 | # CONFIG_SCSI_IPR is not set |
@@ -689,6 +718,7 @@ CONFIG_SATA_PROMISE=y | |||
689 | # CONFIG_PATA_MPIIX is not set | 718 | # CONFIG_PATA_MPIIX is not set |
690 | # CONFIG_PATA_OLDPIIX is not set | 719 | # CONFIG_PATA_OLDPIIX is not set |
691 | # CONFIG_PATA_NETCELL is not set | 720 | # CONFIG_PATA_NETCELL is not set |
721 | # CONFIG_PATA_NINJA32 is not set | ||
692 | # CONFIG_PATA_NS87410 is not set | 722 | # CONFIG_PATA_NS87410 is not set |
693 | # CONFIG_PATA_NS87415 is not set | 723 | # CONFIG_PATA_NS87415 is not set |
694 | # CONFIG_PATA_OPTI is not set | 724 | # CONFIG_PATA_OPTI is not set |
@@ -703,6 +733,7 @@ CONFIG_PATA_PDC2027X=m | |||
703 | # CONFIG_PATA_SIS is not set | 733 | # CONFIG_PATA_SIS is not set |
704 | # CONFIG_PATA_VIA is not set | 734 | # CONFIG_PATA_VIA is not set |
705 | # CONFIG_PATA_WINBOND is not set | 735 | # CONFIG_PATA_WINBOND is not set |
736 | # CONFIG_PATA_PLATFORM is not set | ||
706 | # CONFIG_PATA_SCC is not set | 737 | # CONFIG_PATA_SCC is not set |
707 | CONFIG_MD=y | 738 | CONFIG_MD=y |
708 | CONFIG_BLK_DEV_MD=m | 739 | CONFIG_BLK_DEV_MD=m |
@@ -748,7 +779,6 @@ CONFIG_MACVLAN=m | |||
748 | # CONFIG_EQUALIZER is not set | 779 | # CONFIG_EQUALIZER is not set |
749 | CONFIG_TUN=y | 780 | CONFIG_TUN=y |
750 | # CONFIG_VETH is not set | 781 | # CONFIG_VETH is not set |
751 | # CONFIG_IP1000 is not set | ||
752 | # CONFIG_ARCNET is not set | 782 | # CONFIG_ARCNET is not set |
753 | # CONFIG_PHYLIB is not set | 783 | # CONFIG_PHYLIB is not set |
754 | CONFIG_NET_ETHERNET=y | 784 | CONFIG_NET_ETHERNET=y |
@@ -773,6 +803,9 @@ CONFIG_E1000=m | |||
773 | CONFIG_E1000_NAPI=y | 803 | CONFIG_E1000_NAPI=y |
774 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 804 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
775 | # CONFIG_E1000E is not set | 805 | # CONFIG_E1000E is not set |
806 | # CONFIG_E1000E_ENABLED is not set | ||
807 | # CONFIG_IP1000 is not set | ||
808 | # CONFIG_IGB is not set | ||
776 | # CONFIG_NS83820 is not set | 809 | # CONFIG_NS83820 is not set |
777 | # CONFIG_HAMACHI is not set | 810 | # CONFIG_HAMACHI is not set |
778 | # CONFIG_YELLOWFIN is not set | 811 | # CONFIG_YELLOWFIN is not set |
@@ -788,6 +821,7 @@ CONFIG_TIGON3=y | |||
788 | # CONFIG_BNX2 is not set | 821 | # CONFIG_BNX2 is not set |
789 | CONFIG_SPIDER_NET=y | 822 | CONFIG_SPIDER_NET=y |
790 | CONFIG_GELIC_NET=m | 823 | CONFIG_GELIC_NET=m |
824 | CONFIG_GELIC_WIRELESS=y | ||
791 | # CONFIG_QLA3XXX is not set | 825 | # CONFIG_QLA3XXX is not set |
792 | # CONFIG_ATL1 is not set | 826 | # CONFIG_ATL1 is not set |
793 | CONFIG_NETDEV_10000=y | 827 | CONFIG_NETDEV_10000=y |
@@ -802,6 +836,7 @@ CONFIG_NETDEV_10000=y | |||
802 | # CONFIG_PASEMI_MAC is not set | 836 | # CONFIG_PASEMI_MAC is not set |
803 | # CONFIG_MLX4_CORE is not set | 837 | # CONFIG_MLX4_CORE is not set |
804 | # CONFIG_TEHUTI is not set | 838 | # CONFIG_TEHUTI is not set |
839 | # CONFIG_BNX2X is not set | ||
805 | # CONFIG_TR is not set | 840 | # CONFIG_TR is not set |
806 | 841 | ||
807 | # | 842 | # |
@@ -824,7 +859,6 @@ CONFIG_NETDEV_10000=y | |||
824 | # CONFIG_PPP is not set | 859 | # CONFIG_PPP is not set |
825 | # CONFIG_SLIP is not set | 860 | # CONFIG_SLIP is not set |
826 | # CONFIG_NET_FC is not set | 861 | # CONFIG_NET_FC is not set |
827 | # CONFIG_SHAPER is not set | ||
828 | # CONFIG_NETCONSOLE is not set | 862 | # CONFIG_NETCONSOLE is not set |
829 | # CONFIG_NETPOLL is not set | 863 | # CONFIG_NETPOLL is not set |
830 | # CONFIG_NET_POLL_CONTROLLER is not set | 864 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -883,16 +917,17 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
883 | # CONFIG_DIGIEPCA is not set | 917 | # CONFIG_DIGIEPCA is not set |
884 | # CONFIG_MOXA_INTELLIO is not set | 918 | # CONFIG_MOXA_INTELLIO is not set |
885 | # CONFIG_MOXA_SMARTIO is not set | 919 | # CONFIG_MOXA_SMARTIO is not set |
886 | # CONFIG_MOXA_SMARTIO_NEW is not set | ||
887 | # CONFIG_ISI is not set | 920 | # CONFIG_ISI is not set |
888 | # CONFIG_SYNCLINK is not set | 921 | # CONFIG_SYNCLINK is not set |
889 | # CONFIG_SYNCLINKMP is not set | 922 | # CONFIG_SYNCLINKMP is not set |
890 | # CONFIG_SYNCLINK_GT is not set | 923 | # CONFIG_SYNCLINK_GT is not set |
891 | # CONFIG_N_HDLC is not set | 924 | # CONFIG_N_HDLC is not set |
925 | # CONFIG_RISCOM8 is not set | ||
892 | # CONFIG_SPECIALIX is not set | 926 | # CONFIG_SPECIALIX is not set |
893 | # CONFIG_SX is not set | 927 | # CONFIG_SX is not set |
894 | # CONFIG_RIO is not set | 928 | # CONFIG_RIO is not set |
895 | # CONFIG_STALDRV is not set | 929 | # CONFIG_STALDRV is not set |
930 | # CONFIG_NOZOMI is not set | ||
896 | 931 | ||
897 | # | 932 | # |
898 | # Serial drivers | 933 | # Serial drivers |
@@ -976,13 +1011,12 @@ CONFIG_I2C_ALGOBIT=y | |||
976 | # | 1011 | # |
977 | # Miscellaneous I2C Chip support | 1012 | # Miscellaneous I2C Chip support |
978 | # | 1013 | # |
979 | # CONFIG_SENSORS_DS1337 is not set | ||
980 | # CONFIG_SENSORS_DS1374 is not set | ||
981 | # CONFIG_DS1682 is not set | 1014 | # CONFIG_DS1682 is not set |
982 | # CONFIG_SENSORS_EEPROM is not set | 1015 | # CONFIG_SENSORS_EEPROM is not set |
983 | # CONFIG_SENSORS_PCF8574 is not set | 1016 | # CONFIG_SENSORS_PCF8574 is not set |
984 | # CONFIG_SENSORS_PCA9539 is not set | 1017 | # CONFIG_PCF8575 is not set |
985 | # CONFIG_SENSORS_PCF8591 is not set | 1018 | # CONFIG_SENSORS_PCF8591 is not set |
1019 | # CONFIG_TPS65010 is not set | ||
986 | # CONFIG_SENSORS_MAX6875 is not set | 1020 | # CONFIG_SENSORS_MAX6875 is not set |
987 | # CONFIG_SENSORS_TSL2550 is not set | 1021 | # CONFIG_SENSORS_TSL2550 is not set |
988 | # CONFIG_I2C_DEBUG_CORE is not set | 1022 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -998,6 +1032,7 @@ CONFIG_I2C_ALGOBIT=y | |||
998 | # CONFIG_W1 is not set | 1032 | # CONFIG_W1 is not set |
999 | # CONFIG_POWER_SUPPLY is not set | 1033 | # CONFIG_POWER_SUPPLY is not set |
1000 | # CONFIG_HWMON is not set | 1034 | # CONFIG_HWMON is not set |
1035 | # CONFIG_THERMAL is not set | ||
1001 | CONFIG_WATCHDOG=y | 1036 | CONFIG_WATCHDOG=y |
1002 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 1037 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
1003 | 1038 | ||
@@ -1082,6 +1117,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1082 | CONFIG_USB_ARCH_HAS_EHCI=y | 1117 | CONFIG_USB_ARCH_HAS_EHCI=y |
1083 | CONFIG_USB=m | 1118 | CONFIG_USB=m |
1084 | # CONFIG_USB_DEBUG is not set | 1119 | # CONFIG_USB_DEBUG is not set |
1120 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1085 | 1121 | ||
1086 | # | 1122 | # |
1087 | # Miscellaneous USB options | 1123 | # Miscellaneous USB options |
@@ -1095,10 +1131,10 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1095 | # USB Host Controller Drivers | 1131 | # USB Host Controller Drivers |
1096 | # | 1132 | # |
1097 | CONFIG_USB_EHCI_HCD=m | 1133 | CONFIG_USB_EHCI_HCD=m |
1098 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1099 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1134 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1100 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1135 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1101 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | 1136 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y |
1137 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1102 | # CONFIG_USB_ISP116X_HCD is not set | 1138 | # CONFIG_USB_ISP116X_HCD is not set |
1103 | CONFIG_USB_OHCI_HCD=m | 1139 | CONFIG_USB_OHCI_HCD=m |
1104 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 1140 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -1149,10 +1185,6 @@ CONFIG_USB_MON=y | |||
1149 | # | 1185 | # |
1150 | # USB port drivers | 1186 | # USB port drivers |
1151 | # | 1187 | # |
1152 | |||
1153 | # | ||
1154 | # USB Serial Converter support | ||
1155 | # | ||
1156 | # CONFIG_USB_SERIAL is not set | 1188 | # CONFIG_USB_SERIAL is not set |
1157 | 1189 | ||
1158 | # | 1190 | # |
@@ -1178,16 +1210,9 @@ CONFIG_USB_MON=y | |||
1178 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1210 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1179 | # CONFIG_USB_IOWARRIOR is not set | 1211 | # CONFIG_USB_IOWARRIOR is not set |
1180 | # CONFIG_USB_TEST is not set | 1212 | # CONFIG_USB_TEST is not set |
1181 | |||
1182 | # | ||
1183 | # USB DSL modem support | ||
1184 | # | ||
1185 | |||
1186 | # | ||
1187 | # USB Gadget Support | ||
1188 | # | ||
1189 | # CONFIG_USB_GADGET is not set | 1213 | # CONFIG_USB_GADGET is not set |
1190 | # CONFIG_MMC is not set | 1214 | # CONFIG_MMC is not set |
1215 | # CONFIG_MEMSTICK is not set | ||
1191 | # CONFIG_NEW_LEDS is not set | 1216 | # CONFIG_NEW_LEDS is not set |
1192 | CONFIG_INFINIBAND=m | 1217 | CONFIG_INFINIBAND=m |
1193 | CONFIG_INFINIBAND_USER_MAD=m | 1218 | CONFIG_INFINIBAND_USER_MAD=m |
@@ -1198,6 +1223,7 @@ CONFIG_INFINIBAND_MTHCA=m | |||
1198 | CONFIG_INFINIBAND_MTHCA_DEBUG=y | 1223 | CONFIG_INFINIBAND_MTHCA_DEBUG=y |
1199 | # CONFIG_INFINIBAND_AMSO1100 is not set | 1224 | # CONFIG_INFINIBAND_AMSO1100 is not set |
1200 | # CONFIG_MLX4_INFINIBAND is not set | 1225 | # CONFIG_MLX4_INFINIBAND is not set |
1226 | # CONFIG_INFINIBAND_NES is not set | ||
1201 | CONFIG_INFINIBAND_IPOIB=m | 1227 | CONFIG_INFINIBAND_IPOIB=m |
1202 | # CONFIG_INFINIBAND_IPOIB_CM is not set | 1228 | # CONFIG_INFINIBAND_IPOIB_CM is not set |
1203 | CONFIG_INFINIBAND_IPOIB_DEBUG=y | 1229 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
@@ -1211,7 +1237,9 @@ CONFIG_EDAC=y | |||
1211 | # | 1237 | # |
1212 | # CONFIG_EDAC_DEBUG is not set | 1238 | # CONFIG_EDAC_DEBUG is not set |
1213 | CONFIG_EDAC_MM_EDAC=y | 1239 | CONFIG_EDAC_MM_EDAC=y |
1240 | CONFIG_EDAC_CELL=y | ||
1214 | # CONFIG_RTC_CLASS is not set | 1241 | # CONFIG_RTC_CLASS is not set |
1242 | # CONFIG_DMADEVICES is not set | ||
1215 | 1243 | ||
1216 | # | 1244 | # |
1217 | # Userspace I/O | 1245 | # Userspace I/O |
@@ -1239,12 +1267,10 @@ CONFIG_FS_POSIX_ACL=y | |||
1239 | # CONFIG_XFS_FS is not set | 1267 | # CONFIG_XFS_FS is not set |
1240 | # CONFIG_GFS2_FS is not set | 1268 | # CONFIG_GFS2_FS is not set |
1241 | # CONFIG_OCFS2_FS is not set | 1269 | # CONFIG_OCFS2_FS is not set |
1242 | # CONFIG_MINIX_FS is not set | 1270 | CONFIG_DNOTIFY=y |
1243 | # CONFIG_ROMFS_FS is not set | ||
1244 | CONFIG_INOTIFY=y | 1271 | CONFIG_INOTIFY=y |
1245 | CONFIG_INOTIFY_USER=y | 1272 | CONFIG_INOTIFY_USER=y |
1246 | # CONFIG_QUOTA is not set | 1273 | # CONFIG_QUOTA is not set |
1247 | CONFIG_DNOTIFY=y | ||
1248 | # CONFIG_AUTOFS_FS is not set | 1274 | # CONFIG_AUTOFS_FS is not set |
1249 | CONFIG_AUTOFS4_FS=m | 1275 | CONFIG_AUTOFS4_FS=m |
1250 | # CONFIG_FUSE_FS is not set | 1276 | # CONFIG_FUSE_FS is not set |
@@ -1293,8 +1319,10 @@ CONFIG_HUGETLB_PAGE=y | |||
1293 | # CONFIG_EFS_FS is not set | 1319 | # CONFIG_EFS_FS is not set |
1294 | # CONFIG_CRAMFS is not set | 1320 | # CONFIG_CRAMFS is not set |
1295 | # CONFIG_VXFS_FS is not set | 1321 | # CONFIG_VXFS_FS is not set |
1322 | # CONFIG_MINIX_FS is not set | ||
1296 | # CONFIG_HPFS_FS is not set | 1323 | # CONFIG_HPFS_FS is not set |
1297 | # CONFIG_QNX4FS_FS is not set | 1324 | # CONFIG_QNX4FS_FS is not set |
1325 | # CONFIG_ROMFS_FS is not set | ||
1298 | # CONFIG_SYSV_FS is not set | 1326 | # CONFIG_SYSV_FS is not set |
1299 | # CONFIG_UFS_FS is not set | 1327 | # CONFIG_UFS_FS is not set |
1300 | CONFIG_NETWORK_FILESYSTEMS=y | 1328 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1382,7 +1410,6 @@ CONFIG_NLS_ISO8859_15=m | |||
1382 | # CONFIG_NLS_KOI8_U is not set | 1410 | # CONFIG_NLS_KOI8_U is not set |
1383 | # CONFIG_NLS_UTF8 is not set | 1411 | # CONFIG_NLS_UTF8 is not set |
1384 | # CONFIG_DLM is not set | 1412 | # CONFIG_DLM is not set |
1385 | # CONFIG_UCC_SLOW is not set | ||
1386 | 1413 | ||
1387 | # | 1414 | # |
1388 | # Library routines | 1415 | # Library routines |
@@ -1404,11 +1431,6 @@ CONFIG_PLIST=y | |||
1404 | CONFIG_HAS_IOMEM=y | 1431 | CONFIG_HAS_IOMEM=y |
1405 | CONFIG_HAS_IOPORT=y | 1432 | CONFIG_HAS_IOPORT=y |
1406 | CONFIG_HAS_DMA=y | 1433 | CONFIG_HAS_DMA=y |
1407 | CONFIG_INSTRUMENTATION=y | ||
1408 | CONFIG_PROFILING=y | ||
1409 | CONFIG_OPROFILE=m | ||
1410 | # CONFIG_KPROBES is not set | ||
1411 | # CONFIG_MARKERS is not set | ||
1412 | 1434 | ||
1413 | # | 1435 | # |
1414 | # Kernel hacking | 1436 | # Kernel hacking |
@@ -1427,6 +1449,7 @@ CONFIG_SCHED_DEBUG=y | |||
1427 | # CONFIG_SCHEDSTATS is not set | 1449 | # CONFIG_SCHEDSTATS is not set |
1428 | # CONFIG_TIMER_STATS is not set | 1450 | # CONFIG_TIMER_STATS is not set |
1429 | # CONFIG_SLUB_DEBUG_ON is not set | 1451 | # CONFIG_SLUB_DEBUG_ON is not set |
1452 | # CONFIG_SLUB_STATS is not set | ||
1430 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1453 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1431 | # CONFIG_RT_MUTEX_TESTER is not set | 1454 | # CONFIG_RT_MUTEX_TESTER is not set |
1432 | # CONFIG_DEBUG_SPINLOCK is not set | 1455 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1439,9 +1462,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1439 | # CONFIG_DEBUG_VM is not set | 1462 | # CONFIG_DEBUG_VM is not set |
1440 | # CONFIG_DEBUG_LIST is not set | 1463 | # CONFIG_DEBUG_LIST is not set |
1441 | # CONFIG_DEBUG_SG is not set | 1464 | # CONFIG_DEBUG_SG is not set |
1442 | # CONFIG_FORCED_INLINING is not set | ||
1443 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1465 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1444 | # CONFIG_RCU_TORTURE_TEST is not set | 1466 | # CONFIG_RCU_TORTURE_TEST is not set |
1467 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1445 | # CONFIG_FAULT_INJECTION is not set | 1468 | # CONFIG_FAULT_INJECTION is not set |
1446 | # CONFIG_SAMPLES is not set | 1469 | # CONFIG_SAMPLES is not set |
1447 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1470 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1464,7 +1487,9 @@ CONFIG_IRQSTACKS=y | |||
1464 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1487 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1465 | CONFIG_CRYPTO=y | 1488 | CONFIG_CRYPTO=y |
1466 | CONFIG_CRYPTO_ALGAPI=y | 1489 | CONFIG_CRYPTO_ALGAPI=y |
1490 | CONFIG_CRYPTO_AEAD=m | ||
1467 | CONFIG_CRYPTO_BLKCIPHER=m | 1491 | CONFIG_CRYPTO_BLKCIPHER=m |
1492 | # CONFIG_CRYPTO_SEQIV is not set | ||
1468 | CONFIG_CRYPTO_HASH=y | 1493 | CONFIG_CRYPTO_HASH=y |
1469 | CONFIG_CRYPTO_MANAGER=y | 1494 | CONFIG_CRYPTO_MANAGER=y |
1470 | CONFIG_CRYPTO_HMAC=y | 1495 | CONFIG_CRYPTO_HMAC=y |
@@ -1483,6 +1508,9 @@ CONFIG_CRYPTO_CBC=m | |||
1483 | CONFIG_CRYPTO_PCBC=m | 1508 | CONFIG_CRYPTO_PCBC=m |
1484 | # CONFIG_CRYPTO_LRW is not set | 1509 | # CONFIG_CRYPTO_LRW is not set |
1485 | # CONFIG_CRYPTO_XTS is not set | 1510 | # CONFIG_CRYPTO_XTS is not set |
1511 | # CONFIG_CRYPTO_CTR is not set | ||
1512 | # CONFIG_CRYPTO_GCM is not set | ||
1513 | # CONFIG_CRYPTO_CCM is not set | ||
1486 | # CONFIG_CRYPTO_CRYPTD is not set | 1514 | # CONFIG_CRYPTO_CRYPTD is not set |
1487 | CONFIG_CRYPTO_DES=m | 1515 | CONFIG_CRYPTO_DES=m |
1488 | # CONFIG_CRYPTO_FCRYPT is not set | 1516 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1497,11 +1525,14 @@ CONFIG_CRYPTO_DES=m | |||
1497 | # CONFIG_CRYPTO_KHAZAD is not set | 1525 | # CONFIG_CRYPTO_KHAZAD is not set |
1498 | # CONFIG_CRYPTO_ANUBIS is not set | 1526 | # CONFIG_CRYPTO_ANUBIS is not set |
1499 | # CONFIG_CRYPTO_SEED is not set | 1527 | # CONFIG_CRYPTO_SEED is not set |
1528 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1500 | CONFIG_CRYPTO_DEFLATE=m | 1529 | CONFIG_CRYPTO_DEFLATE=m |
1501 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1530 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1502 | # CONFIG_CRYPTO_CRC32C is not set | 1531 | # CONFIG_CRYPTO_CRC32C is not set |
1503 | # CONFIG_CRYPTO_CAMELLIA is not set | 1532 | # CONFIG_CRYPTO_CAMELLIA is not set |
1504 | # CONFIG_CRYPTO_TEST is not set | 1533 | # CONFIG_CRYPTO_TEST is not set |
1505 | # CONFIG_CRYPTO_AUTHENC is not set | 1534 | CONFIG_CRYPTO_AUTHENC=m |
1535 | # CONFIG_CRYPTO_LZO is not set | ||
1506 | CONFIG_CRYPTO_HW=y | 1536 | CONFIG_CRYPTO_HW=y |
1537 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1507 | # CONFIG_PPC_CLOCK is not set | 1538 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/celleb_defconfig b/arch/powerpc/configs/celleb_defconfig index 9ed2e098f96f..9ba3c6fc2fef 100644 --- a/arch/powerpc/configs/celleb_defconfig +++ b/arch/powerpc/configs/celleb_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:48:07 2007 | 4 | # Thu Mar 20 10:32:45 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -69,16 +70,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
69 | # CONFIG_POSIX_MQUEUE is not set | 70 | # CONFIG_POSIX_MQUEUE is not set |
70 | # CONFIG_BSD_PROCESS_ACCT is not set | 71 | # CONFIG_BSD_PROCESS_ACCT is not set |
71 | # CONFIG_TASKSTATS is not set | 72 | # CONFIG_TASKSTATS is not set |
72 | # CONFIG_USER_NS is not set | ||
73 | # CONFIG_PID_NS is not set | ||
74 | # CONFIG_AUDIT is not set | 73 | # CONFIG_AUDIT is not set |
75 | CONFIG_IKCONFIG=y | 74 | CONFIG_IKCONFIG=y |
76 | CONFIG_IKCONFIG_PROC=y | 75 | CONFIG_IKCONFIG_PROC=y |
77 | CONFIG_LOG_BUF_SHIFT=15 | 76 | CONFIG_LOG_BUF_SHIFT=15 |
78 | # CONFIG_CGROUPS is not set | 77 | # CONFIG_CGROUPS is not set |
79 | # CONFIG_FAIR_GROUP_SCHED is not set | 78 | # CONFIG_GROUP_SCHED is not set |
79 | # CONFIG_USER_SCHED is not set | ||
80 | # CONFIG_CGROUP_SCHED is not set | ||
80 | CONFIG_SYSFS_DEPRECATED=y | 81 | CONFIG_SYSFS_DEPRECATED=y |
82 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
81 | # CONFIG_RELAY is not set | 83 | # CONFIG_RELAY is not set |
84 | CONFIG_NAMESPACES=y | ||
85 | # CONFIG_UTS_NS is not set | ||
86 | # CONFIG_IPC_NS is not set | ||
87 | # CONFIG_USER_NS is not set | ||
88 | # CONFIG_PID_NS is not set | ||
82 | CONFIG_BLK_DEV_INITRD=y | 89 | CONFIG_BLK_DEV_INITRD=y |
83 | CONFIG_INITRAMFS_SOURCE="" | 90 | CONFIG_INITRAMFS_SOURCE="" |
84 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 91 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -92,11 +99,13 @@ CONFIG_HOTPLUG=y | |||
92 | CONFIG_PRINTK=y | 99 | CONFIG_PRINTK=y |
93 | CONFIG_BUG=y | 100 | CONFIG_BUG=y |
94 | CONFIG_ELF_CORE=y | 101 | CONFIG_ELF_CORE=y |
102 | # CONFIG_COMPAT_BRK is not set | ||
95 | CONFIG_BASE_FULL=y | 103 | CONFIG_BASE_FULL=y |
96 | CONFIG_FUTEX=y | 104 | CONFIG_FUTEX=y |
97 | CONFIG_ANON_INODES=y | 105 | CONFIG_ANON_INODES=y |
98 | CONFIG_EPOLL=y | 106 | CONFIG_EPOLL=y |
99 | CONFIG_SIGNALFD=y | 107 | CONFIG_SIGNALFD=y |
108 | CONFIG_TIMERFD=y | ||
100 | CONFIG_EVENTFD=y | 109 | CONFIG_EVENTFD=y |
101 | CONFIG_SHMEM=y | 110 | CONFIG_SHMEM=y |
102 | CONFIG_VM_EVENT_COUNTERS=y | 111 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -104,6 +113,14 @@ CONFIG_SLUB_DEBUG=y | |||
104 | # CONFIG_SLAB is not set | 113 | # CONFIG_SLAB is not set |
105 | CONFIG_SLUB=y | 114 | CONFIG_SLUB=y |
106 | # CONFIG_SLOB is not set | 115 | # CONFIG_SLOB is not set |
116 | # CONFIG_PROFILING is not set | ||
117 | # CONFIG_MARKERS is not set | ||
118 | CONFIG_HAVE_OPROFILE=y | ||
119 | # CONFIG_KPROBES is not set | ||
120 | CONFIG_HAVE_KPROBES=y | ||
121 | CONFIG_HAVE_KRETPROBES=y | ||
122 | CONFIG_PROC_PAGE_MONITOR=y | ||
123 | CONFIG_SLABINFO=y | ||
107 | CONFIG_RT_MUTEXES=y | 124 | CONFIG_RT_MUTEXES=y |
108 | # CONFIG_TINY_SHMEM is not set | 125 | # CONFIG_TINY_SHMEM is not set |
109 | CONFIG_BASE_SMALL=0 | 126 | CONFIG_BASE_SMALL=0 |
@@ -131,6 +148,7 @@ CONFIG_DEFAULT_AS=y | |||
131 | # CONFIG_DEFAULT_CFQ is not set | 148 | # CONFIG_DEFAULT_CFQ is not set |
132 | # CONFIG_DEFAULT_NOOP is not set | 149 | # CONFIG_DEFAULT_NOOP is not set |
133 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 150 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
151 | CONFIG_CLASSIC_RCU=y | ||
134 | 152 | ||
135 | # | 153 | # |
136 | # Platform support | 154 | # Platform support |
@@ -141,8 +159,8 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
141 | # CONFIG_PPC_86xx is not set | 159 | # CONFIG_PPC_86xx is not set |
142 | # CONFIG_PPC_PSERIES is not set | 160 | # CONFIG_PPC_PSERIES is not set |
143 | # CONFIG_PPC_ISERIES is not set | 161 | # CONFIG_PPC_ISERIES is not set |
144 | # CONFIG_PPC_MPC52xx is not set | 162 | # CONFIG_PPC_MPC512x is not set |
145 | # CONFIG_PPC_MPC5200 is not set | 163 | # CONFIG_PPC_MPC5121 is not set |
146 | # CONFIG_PPC_PMAC is not set | 164 | # CONFIG_PPC_PMAC is not set |
147 | # CONFIG_PPC_MAPLE is not set | 165 | # CONFIG_PPC_MAPLE is not set |
148 | # CONFIG_PPC_PASEMI is not set | 166 | # CONFIG_PPC_PASEMI is not set |
@@ -164,6 +182,7 @@ CONFIG_CBE_RAS=y | |||
164 | CONFIG_PPC_NATIVE=y | 182 | CONFIG_PPC_NATIVE=y |
165 | CONFIG_UDBG_RTAS_CONSOLE=y | 183 | CONFIG_UDBG_RTAS_CONSOLE=y |
166 | CONFIG_PPC_UDBG_BEAT=y | 184 | CONFIG_PPC_UDBG_BEAT=y |
185 | # CONFIG_IPIC is not set | ||
167 | CONFIG_MPIC=y | 186 | CONFIG_MPIC=y |
168 | # CONFIG_MPIC_WEIRD is not set | 187 | # CONFIG_MPIC_WEIRD is not set |
169 | # CONFIG_PPC_I8259 is not set | 188 | # CONFIG_PPC_I8259 is not set |
@@ -177,7 +196,6 @@ CONFIG_PPC_RTAS=y | |||
177 | CONFIG_PPC_INDIRECT_IO=y | 196 | CONFIG_PPC_INDIRECT_IO=y |
178 | CONFIG_GENERIC_IOMAP=y | 197 | CONFIG_GENERIC_IOMAP=y |
179 | # CONFIG_CPU_FREQ is not set | 198 | # CONFIG_CPU_FREQ is not set |
180 | # CONFIG_CPM2 is not set | ||
181 | # CONFIG_FSL_ULI1575 is not set | 199 | # CONFIG_FSL_ULI1575 is not set |
182 | 200 | ||
183 | # | 201 | # |
@@ -192,16 +210,20 @@ CONFIG_HZ_250=y | |||
192 | # CONFIG_HZ_300 is not set | 210 | # CONFIG_HZ_300 is not set |
193 | # CONFIG_HZ_1000 is not set | 211 | # CONFIG_HZ_1000 is not set |
194 | CONFIG_HZ=250 | 212 | CONFIG_HZ=250 |
213 | # CONFIG_SCHED_HRTICK is not set | ||
195 | CONFIG_PREEMPT_NONE=y | 214 | CONFIG_PREEMPT_NONE=y |
196 | # CONFIG_PREEMPT_VOLUNTARY is not set | 215 | # CONFIG_PREEMPT_VOLUNTARY is not set |
197 | # CONFIG_PREEMPT is not set | 216 | # CONFIG_PREEMPT is not set |
198 | CONFIG_PREEMPT_BKL=y | ||
199 | CONFIG_BINFMT_ELF=y | 217 | CONFIG_BINFMT_ELF=y |
218 | CONFIG_COMPAT_BINFMT_ELF=y | ||
200 | CONFIG_BINFMT_MISC=m | 219 | CONFIG_BINFMT_MISC=m |
201 | CONFIG_FORCE_MAX_ZONEORDER=13 | 220 | CONFIG_FORCE_MAX_ZONEORDER=13 |
202 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 221 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
203 | # CONFIG_IOMMU_VMERGE is not set | 222 | # CONFIG_IOMMU_VMERGE is not set |
223 | CONFIG_IOMMU_HELPER=y | ||
204 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 224 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
225 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
226 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
205 | CONFIG_KEXEC=y | 227 | CONFIG_KEXEC=y |
206 | # CONFIG_CRASH_DUMP is not set | 228 | # CONFIG_CRASH_DUMP is not set |
207 | # CONFIG_IRQ_ALL_CPUS is not set | 229 | # CONFIG_IRQ_ALL_CPUS is not set |
@@ -223,6 +245,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y | |||
223 | CONFIG_SPARSEMEM_VMEMMAP=y | 245 | CONFIG_SPARSEMEM_VMEMMAP=y |
224 | CONFIG_MEMORY_HOTPLUG=y | 246 | CONFIG_MEMORY_HOTPLUG=y |
225 | CONFIG_MEMORY_HOTPLUG_SPARSE=y | 247 | CONFIG_MEMORY_HOTPLUG_SPARSE=y |
248 | # CONFIG_MEMORY_HOTREMOVE is not set | ||
226 | CONFIG_SPLIT_PTLOCK_CPUS=4 | 249 | CONFIG_SPLIT_PTLOCK_CPUS=4 |
227 | CONFIG_MIGRATION=y | 250 | CONFIG_MIGRATION=y |
228 | CONFIG_RESOURCES_64BIT=y | 251 | CONFIG_RESOURCES_64BIT=y |
@@ -237,7 +260,6 @@ CONFIG_PROC_DEVICETREE=y | |||
237 | # CONFIG_CMDLINE_BOOL is not set | 260 | # CONFIG_CMDLINE_BOOL is not set |
238 | # CONFIG_PM is not set | 261 | # CONFIG_PM is not set |
239 | CONFIG_SECCOMP=y | 262 | CONFIG_SECCOMP=y |
240 | # CONFIG_WANT_DEVICE_TREE is not set | ||
241 | CONFIG_ISA_DMA_API=y | 263 | CONFIG_ISA_DMA_API=y |
242 | 264 | ||
243 | # | 265 | # |
@@ -273,6 +295,7 @@ CONFIG_XFRM=y | |||
273 | # CONFIG_XFRM_USER is not set | 295 | # CONFIG_XFRM_USER is not set |
274 | # CONFIG_XFRM_SUB_POLICY is not set | 296 | # CONFIG_XFRM_SUB_POLICY is not set |
275 | # CONFIG_XFRM_MIGRATE is not set | 297 | # CONFIG_XFRM_MIGRATE is not set |
298 | # CONFIG_XFRM_STATISTICS is not set | ||
276 | # CONFIG_NET_KEY is not set | 299 | # CONFIG_NET_KEY is not set |
277 | CONFIG_INET=y | 300 | CONFIG_INET=y |
278 | CONFIG_IP_MULTICAST=y | 301 | CONFIG_IP_MULTICAST=y |
@@ -320,12 +343,13 @@ CONFIG_IPV6_TUNNEL=m | |||
320 | # CONFIG_NETWORK_SECMARK is not set | 343 | # CONFIG_NETWORK_SECMARK is not set |
321 | CONFIG_NETFILTER=y | 344 | CONFIG_NETFILTER=y |
322 | # CONFIG_NETFILTER_DEBUG is not set | 345 | # CONFIG_NETFILTER_DEBUG is not set |
346 | CONFIG_NETFILTER_ADVANCED=y | ||
323 | 347 | ||
324 | # | 348 | # |
325 | # Core Netfilter Configuration | 349 | # Core Netfilter Configuration |
326 | # | 350 | # |
327 | # CONFIG_NETFILTER_NETLINK is not set | 351 | # CONFIG_NETFILTER_NETLINK_QUEUE is not set |
328 | # CONFIG_NF_CONNTRACK_ENABLED is not set | 352 | # CONFIG_NETFILTER_NETLINK_LOG is not set |
329 | # CONFIG_NF_CONNTRACK is not set | 353 | # CONFIG_NF_CONNTRACK is not set |
330 | # CONFIG_NETFILTER_XTABLES is not set | 354 | # CONFIG_NETFILTER_XTABLES is not set |
331 | 355 | ||
@@ -337,7 +361,7 @@ CONFIG_IP_NF_QUEUE=m | |||
337 | # CONFIG_IP_NF_ARPTABLES is not set | 361 | # CONFIG_IP_NF_ARPTABLES is not set |
338 | 362 | ||
339 | # | 363 | # |
340 | # IPv6: Netfilter Configuration (EXPERIMENTAL) | 364 | # IPv6: Netfilter Configuration |
341 | # | 365 | # |
342 | # CONFIG_IP6_NF_QUEUE is not set | 366 | # CONFIG_IP6_NF_QUEUE is not set |
343 | # CONFIG_IP6_NF_IPTABLES is not set | 367 | # CONFIG_IP6_NF_IPTABLES is not set |
@@ -362,6 +386,7 @@ CONFIG_IP_NF_QUEUE=m | |||
362 | # | 386 | # |
363 | # CONFIG_NET_PKTGEN is not set | 387 | # CONFIG_NET_PKTGEN is not set |
364 | # CONFIG_HAMRADIO is not set | 388 | # CONFIG_HAMRADIO is not set |
389 | # CONFIG_CAN is not set | ||
365 | # CONFIG_IRDA is not set | 390 | # CONFIG_IRDA is not set |
366 | # CONFIG_BT is not set | 391 | # CONFIG_BT is not set |
367 | # CONFIG_AF_RXRPC is not set | 392 | # CONFIG_AF_RXRPC is not set |
@@ -408,7 +433,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
408 | CONFIG_BLK_DEV_RAM=y | 433 | CONFIG_BLK_DEV_RAM=y |
409 | CONFIG_BLK_DEV_RAM_COUNT=16 | 434 | CONFIG_BLK_DEV_RAM_COUNT=16 |
410 | CONFIG_BLK_DEV_RAM_SIZE=131072 | 435 | CONFIG_BLK_DEV_RAM_SIZE=131072 |
411 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 436 | # CONFIG_BLK_DEV_XIP is not set |
412 | # CONFIG_CDROM_PKTCDVD is not set | 437 | # CONFIG_CDROM_PKTCDVD is not set |
413 | # CONFIG_ATA_OVER_ETH is not set | 438 | # CONFIG_ATA_OVER_ETH is not set |
414 | CONFIG_MISC_DEVICES=y | 439 | CONFIG_MISC_DEVICES=y |
@@ -416,16 +441,19 @@ CONFIG_MISC_DEVICES=y | |||
416 | # CONFIG_EEPROM_93CX6 is not set | 441 | # CONFIG_EEPROM_93CX6 is not set |
417 | # CONFIG_SGI_IOC4 is not set | 442 | # CONFIG_SGI_IOC4 is not set |
418 | # CONFIG_TIFM_CORE is not set | 443 | # CONFIG_TIFM_CORE is not set |
444 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
445 | CONFIG_HAVE_IDE=y | ||
419 | CONFIG_IDE=y | 446 | CONFIG_IDE=y |
420 | CONFIG_BLK_DEV_IDE=y | 447 | CONFIG_BLK_DEV_IDE=y |
421 | 448 | ||
422 | # | 449 | # |
423 | # Please see Documentation/ide.txt for help/info on IDE drives | 450 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
424 | # | 451 | # |
425 | # CONFIG_BLK_DEV_IDE_SATA is not set | 452 | # CONFIG_BLK_DEV_IDE_SATA is not set |
426 | CONFIG_BLK_DEV_IDEDISK=y | 453 | CONFIG_BLK_DEV_IDEDISK=y |
427 | CONFIG_IDEDISK_MULTI_MODE=y | 454 | CONFIG_IDEDISK_MULTI_MODE=y |
428 | CONFIG_BLK_DEV_IDECD=m | 455 | CONFIG_BLK_DEV_IDECD=m |
456 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
429 | # CONFIG_BLK_DEV_IDETAPE is not set | 457 | # CONFIG_BLK_DEV_IDETAPE is not set |
430 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 458 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
431 | # CONFIG_BLK_DEV_IDESCSI is not set | 459 | # CONFIG_BLK_DEV_IDESCSI is not set |
@@ -437,12 +465,12 @@ CONFIG_IDE_PROC_FS=y | |||
437 | # | 465 | # |
438 | CONFIG_IDE_GENERIC=y | 466 | CONFIG_IDE_GENERIC=y |
439 | # CONFIG_BLK_DEV_PLATFORM is not set | 467 | # CONFIG_BLK_DEV_PLATFORM is not set |
468 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
440 | 469 | ||
441 | # | 470 | # |
442 | # PCI IDE chipsets support | 471 | # PCI IDE chipsets support |
443 | # | 472 | # |
444 | CONFIG_BLK_DEV_IDEPCI=y | 473 | CONFIG_BLK_DEV_IDEPCI=y |
445 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
446 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 474 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
447 | # CONFIG_BLK_DEV_OFFBOARD is not set | 475 | # CONFIG_BLK_DEV_OFFBOARD is not set |
448 | CONFIG_BLK_DEV_GENERIC=y | 476 | CONFIG_BLK_DEV_GENERIC=y |
@@ -474,7 +502,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y | |||
474 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 502 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
475 | # CONFIG_BLK_DEV_TC86C001 is not set | 503 | # CONFIG_BLK_DEV_TC86C001 is not set |
476 | CONFIG_BLK_DEV_CELLEB=y | 504 | CONFIG_BLK_DEV_CELLEB=y |
477 | # CONFIG_IDE_ARM is not set | ||
478 | CONFIG_BLK_DEV_IDEDMA=y | 505 | CONFIG_BLK_DEV_IDEDMA=y |
479 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 506 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
480 | # CONFIG_BLK_DEV_HD is not set | 507 | # CONFIG_BLK_DEV_HD is not set |
@@ -540,6 +567,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
540 | # CONFIG_SCSI_IPS is not set | 567 | # CONFIG_SCSI_IPS is not set |
541 | # CONFIG_SCSI_INITIO is not set | 568 | # CONFIG_SCSI_INITIO is not set |
542 | # CONFIG_SCSI_INIA100 is not set | 569 | # CONFIG_SCSI_INIA100 is not set |
570 | # CONFIG_SCSI_MVSAS is not set | ||
543 | # CONFIG_SCSI_STEX is not set | 571 | # CONFIG_SCSI_STEX is not set |
544 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 572 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
545 | # CONFIG_SCSI_QLOGIC_1280 is not set | 573 | # CONFIG_SCSI_QLOGIC_1280 is not set |
@@ -589,7 +617,6 @@ CONFIG_NETDEVICES=y | |||
589 | # CONFIG_EQUALIZER is not set | 617 | # CONFIG_EQUALIZER is not set |
590 | # CONFIG_TUN is not set | 618 | # CONFIG_TUN is not set |
591 | # CONFIG_VETH is not set | 619 | # CONFIG_VETH is not set |
592 | # CONFIG_IP1000 is not set | ||
593 | # CONFIG_ARCNET is not set | 620 | # CONFIG_ARCNET is not set |
594 | # CONFIG_PHYLIB is not set | 621 | # CONFIG_PHYLIB is not set |
595 | CONFIG_NET_ETHERNET=y | 622 | CONFIG_NET_ETHERNET=y |
@@ -612,6 +639,9 @@ CONFIG_NETDEV_1000=y | |||
612 | # CONFIG_DL2K is not set | 639 | # CONFIG_DL2K is not set |
613 | # CONFIG_E1000 is not set | 640 | # CONFIG_E1000 is not set |
614 | # CONFIG_E1000E is not set | 641 | # CONFIG_E1000E is not set |
642 | # CONFIG_E1000E_ENABLED is not set | ||
643 | # CONFIG_IP1000 is not set | ||
644 | # CONFIG_IGB is not set | ||
615 | # CONFIG_NS83820 is not set | 645 | # CONFIG_NS83820 is not set |
616 | # CONFIG_HAMACHI is not set | 646 | # CONFIG_HAMACHI is not set |
617 | # CONFIG_YELLOWFIN is not set | 647 | # CONFIG_YELLOWFIN is not set |
@@ -638,6 +668,7 @@ CONFIG_NETDEV_10000=y | |||
638 | # CONFIG_PASEMI_MAC is not set | 668 | # CONFIG_PASEMI_MAC is not set |
639 | # CONFIG_MLX4_CORE is not set | 669 | # CONFIG_MLX4_CORE is not set |
640 | # CONFIG_TEHUTI is not set | 670 | # CONFIG_TEHUTI is not set |
671 | # CONFIG_BNX2X is not set | ||
641 | # CONFIG_TR is not set | 672 | # CONFIG_TR is not set |
642 | 673 | ||
643 | # | 674 | # |
@@ -660,7 +691,6 @@ CONFIG_NETDEV_10000=y | |||
660 | # CONFIG_PPP is not set | 691 | # CONFIG_PPP is not set |
661 | # CONFIG_SLIP is not set | 692 | # CONFIG_SLIP is not set |
662 | # CONFIG_NET_FC is not set | 693 | # CONFIG_NET_FC is not set |
663 | # CONFIG_SHAPER is not set | ||
664 | # CONFIG_NETCONSOLE is not set | 694 | # CONFIG_NETCONSOLE is not set |
665 | # CONFIG_NETPOLL is not set | 695 | # CONFIG_NETPOLL is not set |
666 | # CONFIG_NET_POLL_CONTROLLER is not set | 696 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -719,16 +749,17 @@ CONFIG_SERIAL_NONSTANDARD=y | |||
719 | # CONFIG_DIGIEPCA is not set | 749 | # CONFIG_DIGIEPCA is not set |
720 | # CONFIG_MOXA_INTELLIO is not set | 750 | # CONFIG_MOXA_INTELLIO is not set |
721 | # CONFIG_MOXA_SMARTIO is not set | 751 | # CONFIG_MOXA_SMARTIO is not set |
722 | # CONFIG_MOXA_SMARTIO_NEW is not set | ||
723 | # CONFIG_ISI is not set | 752 | # CONFIG_ISI is not set |
724 | # CONFIG_SYNCLINK is not set | 753 | # CONFIG_SYNCLINK is not set |
725 | # CONFIG_SYNCLINKMP is not set | 754 | # CONFIG_SYNCLINKMP is not set |
726 | # CONFIG_SYNCLINK_GT is not set | 755 | # CONFIG_SYNCLINK_GT is not set |
727 | # CONFIG_N_HDLC is not set | 756 | # CONFIG_N_HDLC is not set |
757 | # CONFIG_RISCOM8 is not set | ||
728 | # CONFIG_SPECIALIX is not set | 758 | # CONFIG_SPECIALIX is not set |
729 | # CONFIG_SX is not set | 759 | # CONFIG_SX is not set |
730 | # CONFIG_RIO is not set | 760 | # CONFIG_RIO is not set |
731 | # CONFIG_STALDRV is not set | 761 | # CONFIG_STALDRV is not set |
762 | # CONFIG_NOZOMI is not set | ||
732 | 763 | ||
733 | # | 764 | # |
734 | # Serial drivers | 765 | # Serial drivers |
@@ -802,13 +833,12 @@ CONFIG_I2C_ALGOBIT=y | |||
802 | # | 833 | # |
803 | # Miscellaneous I2C Chip support | 834 | # Miscellaneous I2C Chip support |
804 | # | 835 | # |
805 | # CONFIG_SENSORS_DS1337 is not set | ||
806 | # CONFIG_SENSORS_DS1374 is not set | ||
807 | # CONFIG_DS1682 is not set | 836 | # CONFIG_DS1682 is not set |
808 | # CONFIG_SENSORS_EEPROM is not set | 837 | # CONFIG_SENSORS_EEPROM is not set |
809 | # CONFIG_SENSORS_PCF8574 is not set | 838 | # CONFIG_SENSORS_PCF8574 is not set |
810 | # CONFIG_SENSORS_PCA9539 is not set | 839 | # CONFIG_PCF8575 is not set |
811 | # CONFIG_SENSORS_PCF8591 is not set | 840 | # CONFIG_SENSORS_PCF8591 is not set |
841 | # CONFIG_TPS65010 is not set | ||
812 | # CONFIG_SENSORS_MAX6875 is not set | 842 | # CONFIG_SENSORS_MAX6875 is not set |
813 | # CONFIG_SENSORS_TSL2550 is not set | 843 | # CONFIG_SENSORS_TSL2550 is not set |
814 | # CONFIG_I2C_DEBUG_CORE is not set | 844 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -824,6 +854,7 @@ CONFIG_I2C_ALGOBIT=y | |||
824 | # CONFIG_W1 is not set | 854 | # CONFIG_W1 is not set |
825 | # CONFIG_POWER_SUPPLY is not set | 855 | # CONFIG_POWER_SUPPLY is not set |
826 | # CONFIG_HWMON is not set | 856 | # CONFIG_HWMON is not set |
857 | # CONFIG_THERMAL is not set | ||
827 | CONFIG_WATCHDOG=y | 858 | CONFIG_WATCHDOG=y |
828 | # CONFIG_WATCHDOG_NOWAYOUT is not set | 859 | # CONFIG_WATCHDOG_NOWAYOUT is not set |
829 | 860 | ||
@@ -905,6 +936,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
905 | CONFIG_USB_ARCH_HAS_EHCI=y | 936 | CONFIG_USB_ARCH_HAS_EHCI=y |
906 | CONFIG_USB=y | 937 | CONFIG_USB=y |
907 | # CONFIG_USB_DEBUG is not set | 938 | # CONFIG_USB_DEBUG is not set |
939 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
908 | 940 | ||
909 | # | 941 | # |
910 | # Miscellaneous USB options | 942 | # Miscellaneous USB options |
@@ -918,10 +950,10 @@ CONFIG_USB_DEVICEFS=y | |||
918 | # USB Host Controller Drivers | 950 | # USB Host Controller Drivers |
919 | # | 951 | # |
920 | CONFIG_USB_EHCI_HCD=m | 952 | CONFIG_USB_EHCI_HCD=m |
921 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
922 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 953 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
923 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 954 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
924 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | 955 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y |
956 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
925 | # CONFIG_USB_ISP116X_HCD is not set | 957 | # CONFIG_USB_ISP116X_HCD is not set |
926 | CONFIG_USB_OHCI_HCD=m | 958 | CONFIG_USB_OHCI_HCD=m |
927 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 959 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -969,10 +1001,6 @@ CONFIG_USB_MON=y | |||
969 | # | 1001 | # |
970 | # USB port drivers | 1002 | # USB port drivers |
971 | # | 1003 | # |
972 | |||
973 | # | ||
974 | # USB Serial Converter support | ||
975 | # | ||
976 | # CONFIG_USB_SERIAL is not set | 1004 | # CONFIG_USB_SERIAL is not set |
977 | 1005 | ||
978 | # | 1006 | # |
@@ -998,20 +1026,14 @@ CONFIG_USB_MON=y | |||
998 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1026 | # CONFIG_USB_TRANCEVIBRATOR is not set |
999 | # CONFIG_USB_IOWARRIOR is not set | 1027 | # CONFIG_USB_IOWARRIOR is not set |
1000 | # CONFIG_USB_TEST is not set | 1028 | # CONFIG_USB_TEST is not set |
1001 | |||
1002 | # | ||
1003 | # USB DSL modem support | ||
1004 | # | ||
1005 | |||
1006 | # | ||
1007 | # USB Gadget Support | ||
1008 | # | ||
1009 | # CONFIG_USB_GADGET is not set | 1029 | # CONFIG_USB_GADGET is not set |
1010 | # CONFIG_MMC is not set | 1030 | # CONFIG_MMC is not set |
1031 | # CONFIG_MEMSTICK is not set | ||
1011 | # CONFIG_NEW_LEDS is not set | 1032 | # CONFIG_NEW_LEDS is not set |
1012 | # CONFIG_INFINIBAND is not set | 1033 | # CONFIG_INFINIBAND is not set |
1013 | # CONFIG_EDAC is not set | 1034 | # CONFIG_EDAC is not set |
1014 | # CONFIG_RTC_CLASS is not set | 1035 | # CONFIG_RTC_CLASS is not set |
1036 | # CONFIG_DMADEVICES is not set | ||
1015 | 1037 | ||
1016 | # | 1038 | # |
1017 | # Userspace I/O | 1039 | # Userspace I/O |
@@ -1041,12 +1063,10 @@ CONFIG_FS_POSIX_ACL=y | |||
1041 | # CONFIG_XFS_FS is not set | 1063 | # CONFIG_XFS_FS is not set |
1042 | # CONFIG_GFS2_FS is not set | 1064 | # CONFIG_GFS2_FS is not set |
1043 | # CONFIG_OCFS2_FS is not set | 1065 | # CONFIG_OCFS2_FS is not set |
1044 | # CONFIG_MINIX_FS is not set | 1066 | CONFIG_DNOTIFY=y |
1045 | # CONFIG_ROMFS_FS is not set | ||
1046 | CONFIG_INOTIFY=y | 1067 | CONFIG_INOTIFY=y |
1047 | CONFIG_INOTIFY_USER=y | 1068 | CONFIG_INOTIFY_USER=y |
1048 | # CONFIG_QUOTA is not set | 1069 | # CONFIG_QUOTA is not set |
1049 | CONFIG_DNOTIFY=y | ||
1050 | # CONFIG_AUTOFS_FS is not set | 1070 | # CONFIG_AUTOFS_FS is not set |
1051 | # CONFIG_AUTOFS4_FS is not set | 1071 | # CONFIG_AUTOFS4_FS is not set |
1052 | # CONFIG_FUSE_FS is not set | 1072 | # CONFIG_FUSE_FS is not set |
@@ -1095,8 +1115,10 @@ CONFIG_HUGETLB_PAGE=y | |||
1095 | # CONFIG_EFS_FS is not set | 1115 | # CONFIG_EFS_FS is not set |
1096 | # CONFIG_CRAMFS is not set | 1116 | # CONFIG_CRAMFS is not set |
1097 | # CONFIG_VXFS_FS is not set | 1117 | # CONFIG_VXFS_FS is not set |
1118 | # CONFIG_MINIX_FS is not set | ||
1098 | # CONFIG_HPFS_FS is not set | 1119 | # CONFIG_HPFS_FS is not set |
1099 | # CONFIG_QNX4FS_FS is not set | 1120 | # CONFIG_QNX4FS_FS is not set |
1121 | # CONFIG_ROMFS_FS is not set | ||
1100 | # CONFIG_SYSV_FS is not set | 1122 | # CONFIG_SYSV_FS is not set |
1101 | # CONFIG_UFS_FS is not set | 1123 | # CONFIG_UFS_FS is not set |
1102 | CONFIG_NETWORK_FILESYSTEMS=y | 1124 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1188,7 +1210,6 @@ CONFIG_NLS_ISO8859_15=m | |||
1188 | # CONFIG_NLS_KOI8_U is not set | 1210 | # CONFIG_NLS_KOI8_U is not set |
1189 | # CONFIG_NLS_UTF8 is not set | 1211 | # CONFIG_NLS_UTF8 is not set |
1190 | # CONFIG_DLM is not set | 1212 | # CONFIG_DLM is not set |
1191 | # CONFIG_UCC_SLOW is not set | ||
1192 | 1213 | ||
1193 | # | 1214 | # |
1194 | # Library routines | 1215 | # Library routines |
@@ -1206,10 +1227,6 @@ CONFIG_PLIST=y | |||
1206 | CONFIG_HAS_IOMEM=y | 1227 | CONFIG_HAS_IOMEM=y |
1207 | CONFIG_HAS_IOPORT=y | 1228 | CONFIG_HAS_IOPORT=y |
1208 | CONFIG_HAS_DMA=y | 1229 | CONFIG_HAS_DMA=y |
1209 | CONFIG_INSTRUMENTATION=y | ||
1210 | # CONFIG_PROFILING is not set | ||
1211 | # CONFIG_KPROBES is not set | ||
1212 | # CONFIG_MARKERS is not set | ||
1213 | 1230 | ||
1214 | # | 1231 | # |
1215 | # Kernel hacking | 1232 | # Kernel hacking |
@@ -1228,6 +1245,7 @@ CONFIG_SCHED_DEBUG=y | |||
1228 | # CONFIG_SCHEDSTATS is not set | 1245 | # CONFIG_SCHEDSTATS is not set |
1229 | # CONFIG_TIMER_STATS is not set | 1246 | # CONFIG_TIMER_STATS is not set |
1230 | # CONFIG_SLUB_DEBUG_ON is not set | 1247 | # CONFIG_SLUB_DEBUG_ON is not set |
1248 | # CONFIG_SLUB_STATS is not set | ||
1231 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1249 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1232 | # CONFIG_RT_MUTEX_TESTER is not set | 1250 | # CONFIG_RT_MUTEX_TESTER is not set |
1233 | # CONFIG_DEBUG_SPINLOCK is not set | 1251 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1240,9 +1258,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1240 | # CONFIG_DEBUG_VM is not set | 1258 | # CONFIG_DEBUG_VM is not set |
1241 | # CONFIG_DEBUG_LIST is not set | 1259 | # CONFIG_DEBUG_LIST is not set |
1242 | # CONFIG_DEBUG_SG is not set | 1260 | # CONFIG_DEBUG_SG is not set |
1243 | # CONFIG_FORCED_INLINING is not set | ||
1244 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1261 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1245 | # CONFIG_RCU_TORTURE_TEST is not set | 1262 | # CONFIG_RCU_TORTURE_TEST is not set |
1263 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1246 | # CONFIG_FAULT_INJECTION is not set | 1264 | # CONFIG_FAULT_INJECTION is not set |
1247 | # CONFIG_SAMPLES is not set | 1265 | # CONFIG_SAMPLES is not set |
1248 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1266 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1265,7 +1283,9 @@ CONFIG_IRQSTACKS=y | |||
1265 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1283 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1266 | CONFIG_CRYPTO=y | 1284 | CONFIG_CRYPTO=y |
1267 | CONFIG_CRYPTO_ALGAPI=y | 1285 | CONFIG_CRYPTO_ALGAPI=y |
1286 | CONFIG_CRYPTO_AEAD=m | ||
1268 | CONFIG_CRYPTO_BLKCIPHER=m | 1287 | CONFIG_CRYPTO_BLKCIPHER=m |
1288 | # CONFIG_CRYPTO_SEQIV is not set | ||
1269 | CONFIG_CRYPTO_HASH=y | 1289 | CONFIG_CRYPTO_HASH=y |
1270 | CONFIG_CRYPTO_MANAGER=y | 1290 | CONFIG_CRYPTO_MANAGER=y |
1271 | CONFIG_CRYPTO_HMAC=y | 1291 | CONFIG_CRYPTO_HMAC=y |
@@ -1284,6 +1304,9 @@ CONFIG_CRYPTO_CBC=m | |||
1284 | CONFIG_CRYPTO_PCBC=m | 1304 | CONFIG_CRYPTO_PCBC=m |
1285 | # CONFIG_CRYPTO_LRW is not set | 1305 | # CONFIG_CRYPTO_LRW is not set |
1286 | # CONFIG_CRYPTO_XTS is not set | 1306 | # CONFIG_CRYPTO_XTS is not set |
1307 | # CONFIG_CRYPTO_CTR is not set | ||
1308 | # CONFIG_CRYPTO_GCM is not set | ||
1309 | # CONFIG_CRYPTO_CCM is not set | ||
1287 | # CONFIG_CRYPTO_CRYPTD is not set | 1310 | # CONFIG_CRYPTO_CRYPTD is not set |
1288 | CONFIG_CRYPTO_DES=m | 1311 | CONFIG_CRYPTO_DES=m |
1289 | # CONFIG_CRYPTO_FCRYPT is not set | 1312 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1299,11 +1322,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1299 | CONFIG_CRYPTO_KHAZAD=m | 1322 | CONFIG_CRYPTO_KHAZAD=m |
1300 | CONFIG_CRYPTO_ANUBIS=m | 1323 | CONFIG_CRYPTO_ANUBIS=m |
1301 | # CONFIG_CRYPTO_SEED is not set | 1324 | # CONFIG_CRYPTO_SEED is not set |
1325 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1302 | CONFIG_CRYPTO_DEFLATE=m | 1326 | CONFIG_CRYPTO_DEFLATE=m |
1303 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1327 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1304 | CONFIG_CRYPTO_CRC32C=m | 1328 | CONFIG_CRYPTO_CRC32C=m |
1305 | # CONFIG_CRYPTO_CAMELLIA is not set | 1329 | # CONFIG_CRYPTO_CAMELLIA is not set |
1306 | CONFIG_CRYPTO_TEST=m | 1330 | CONFIG_CRYPTO_TEST=m |
1307 | # CONFIG_CRYPTO_AUTHENC is not set | 1331 | CONFIG_CRYPTO_AUTHENC=m |
1332 | # CONFIG_CRYPTO_LZO is not set | ||
1308 | # CONFIG_CRYPTO_HW is not set | 1333 | # CONFIG_CRYPTO_HW is not set |
1309 | # CONFIG_PPC_CLOCK is not set | 1334 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/chrp32_defconfig b/arch/powerpc/configs/chrp32_defconfig index 5989b5d2277e..38b85b211c38 100644 --- a/arch/powerpc/configs/chrp32_defconfig +++ b/arch/powerpc/configs/chrp32_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:48:09 2007 | 4 | # Thu Mar 20 10:33:36 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -30,6 +30,7 @@ CONFIG_GENERIC_TIME=y | |||
30 | CONFIG_GENERIC_TIME_VSYSCALL=y | 30 | CONFIG_GENERIC_TIME_VSYSCALL=y |
31 | CONFIG_GENERIC_CLOCKEVENTS=y | 31 | CONFIG_GENERIC_CLOCKEVENTS=y |
32 | CONFIG_GENERIC_HARDIRQS=y | 32 | CONFIG_GENERIC_HARDIRQS=y |
33 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
33 | CONFIG_IRQ_PER_CPU=y | 34 | CONFIG_IRQ_PER_CPU=y |
34 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 35 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
35 | CONFIG_ARCH_HAS_ILOG2_U32=y | 36 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -67,16 +68,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
67 | CONFIG_POSIX_MQUEUE=y | 68 | CONFIG_POSIX_MQUEUE=y |
68 | # CONFIG_BSD_PROCESS_ACCT is not set | 69 | # CONFIG_BSD_PROCESS_ACCT is not set |
69 | # CONFIG_TASKSTATS is not set | 70 | # CONFIG_TASKSTATS is not set |
70 | # CONFIG_USER_NS is not set | ||
71 | # CONFIG_PID_NS is not set | ||
72 | # CONFIG_AUDIT is not set | 71 | # CONFIG_AUDIT is not set |
73 | CONFIG_IKCONFIG=y | 72 | CONFIG_IKCONFIG=y |
74 | CONFIG_IKCONFIG_PROC=y | 73 | CONFIG_IKCONFIG_PROC=y |
75 | CONFIG_LOG_BUF_SHIFT=15 | 74 | CONFIG_LOG_BUF_SHIFT=15 |
76 | # CONFIG_CGROUPS is not set | 75 | # CONFIG_CGROUPS is not set |
77 | # CONFIG_FAIR_GROUP_SCHED is not set | 76 | # CONFIG_GROUP_SCHED is not set |
77 | # CONFIG_USER_SCHED is not set | ||
78 | # CONFIG_CGROUP_SCHED is not set | ||
78 | CONFIG_SYSFS_DEPRECATED=y | 79 | CONFIG_SYSFS_DEPRECATED=y |
80 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
79 | # CONFIG_RELAY is not set | 81 | # CONFIG_RELAY is not set |
82 | CONFIG_NAMESPACES=y | ||
83 | # CONFIG_UTS_NS is not set | ||
84 | # CONFIG_IPC_NS is not set | ||
85 | # CONFIG_USER_NS is not set | ||
86 | # CONFIG_PID_NS is not set | ||
80 | CONFIG_BLK_DEV_INITRD=y | 87 | CONFIG_BLK_DEV_INITRD=y |
81 | CONFIG_INITRAMFS_SOURCE="" | 88 | CONFIG_INITRAMFS_SOURCE="" |
82 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 89 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
@@ -90,11 +97,13 @@ CONFIG_HOTPLUG=y | |||
90 | CONFIG_PRINTK=y | 97 | CONFIG_PRINTK=y |
91 | CONFIG_BUG=y | 98 | CONFIG_BUG=y |
92 | CONFIG_ELF_CORE=y | 99 | CONFIG_ELF_CORE=y |
100 | # CONFIG_COMPAT_BRK is not set | ||
93 | CONFIG_BASE_FULL=y | 101 | CONFIG_BASE_FULL=y |
94 | CONFIG_FUTEX=y | 102 | CONFIG_FUTEX=y |
95 | CONFIG_ANON_INODES=y | 103 | CONFIG_ANON_INODES=y |
96 | CONFIG_EPOLL=y | 104 | CONFIG_EPOLL=y |
97 | CONFIG_SIGNALFD=y | 105 | CONFIG_SIGNALFD=y |
106 | CONFIG_TIMERFD=y | ||
98 | CONFIG_EVENTFD=y | 107 | CONFIG_EVENTFD=y |
99 | CONFIG_SHMEM=y | 108 | CONFIG_SHMEM=y |
100 | CONFIG_VM_EVENT_COUNTERS=y | 109 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -102,6 +111,14 @@ CONFIG_SLUB_DEBUG=y | |||
102 | # CONFIG_SLAB is not set | 111 | # CONFIG_SLAB is not set |
103 | CONFIG_SLUB=y | 112 | CONFIG_SLUB=y |
104 | # CONFIG_SLOB is not set | 113 | # CONFIG_SLOB is not set |
114 | # CONFIG_PROFILING is not set | ||
115 | # CONFIG_MARKERS is not set | ||
116 | CONFIG_HAVE_OPROFILE=y | ||
117 | # CONFIG_KPROBES is not set | ||
118 | CONFIG_HAVE_KPROBES=y | ||
119 | CONFIG_HAVE_KRETPROBES=y | ||
120 | CONFIG_PROC_PAGE_MONITOR=y | ||
121 | CONFIG_SLABINFO=y | ||
105 | CONFIG_RT_MUTEXES=y | 122 | CONFIG_RT_MUTEXES=y |
106 | # CONFIG_TINY_SHMEM is not set | 123 | # CONFIG_TINY_SHMEM is not set |
107 | CONFIG_BASE_SMALL=0 | 124 | CONFIG_BASE_SMALL=0 |
@@ -130,6 +147,7 @@ CONFIG_DEFAULT_AS=y | |||
130 | # CONFIG_DEFAULT_CFQ is not set | 147 | # CONFIG_DEFAULT_CFQ is not set |
131 | # CONFIG_DEFAULT_NOOP is not set | 148 | # CONFIG_DEFAULT_NOOP is not set |
132 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 149 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
150 | CONFIG_CLASSIC_RCU=y | ||
133 | 151 | ||
134 | # | 152 | # |
135 | # Platform support | 153 | # Platform support |
@@ -140,16 +158,17 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
140 | # CONFIG_PPC_86xx is not set | 158 | # CONFIG_PPC_86xx is not set |
141 | CONFIG_CLASSIC32=y | 159 | CONFIG_CLASSIC32=y |
142 | CONFIG_PPC_CHRP=y | 160 | CONFIG_PPC_CHRP=y |
161 | # CONFIG_PPC_MPC512x is not set | ||
162 | # CONFIG_PPC_MPC5121 is not set | ||
163 | # CONFIG_MPC5121_ADS is not set | ||
143 | # CONFIG_PPC_MPC52xx is not set | 164 | # CONFIG_PPC_MPC52xx is not set |
144 | # CONFIG_PPC_MPC5200 is not set | ||
145 | # CONFIG_PPC_EFIKA is not set | ||
146 | # CONFIG_PPC_LITE5200 is not set | ||
147 | # CONFIG_PPC_PMAC is not set | 165 | # CONFIG_PPC_PMAC is not set |
148 | # CONFIG_PPC_CELL is not set | 166 | # CONFIG_PPC_CELL is not set |
149 | # CONFIG_PPC_CELL_NATIVE is not set | 167 | # CONFIG_PPC_CELL_NATIVE is not set |
150 | # CONFIG_PQ2ADS is not set | 168 | # CONFIG_PQ2ADS is not set |
151 | CONFIG_PPC_NATIVE=y | 169 | CONFIG_PPC_NATIVE=y |
152 | # CONFIG_UDBG_RTAS_CONSOLE is not set | 170 | # CONFIG_UDBG_RTAS_CONSOLE is not set |
171 | # CONFIG_IPIC is not set | ||
153 | CONFIG_MPIC=y | 172 | CONFIG_MPIC=y |
154 | # CONFIG_MPIC_WEIRD is not set | 173 | # CONFIG_MPIC_WEIRD is not set |
155 | CONFIG_PPC_I8259=y | 174 | CONFIG_PPC_I8259=y |
@@ -163,7 +182,6 @@ CONFIG_PPC_MPC106=y | |||
163 | # CONFIG_GENERIC_IOMAP is not set | 182 | # CONFIG_GENERIC_IOMAP is not set |
164 | # CONFIG_CPU_FREQ is not set | 183 | # CONFIG_CPU_FREQ is not set |
165 | # CONFIG_TAU is not set | 184 | # CONFIG_TAU is not set |
166 | # CONFIG_CPM2 is not set | ||
167 | # CONFIG_FSL_ULI1575 is not set | 185 | # CONFIG_FSL_ULI1575 is not set |
168 | 186 | ||
169 | # | 187 | # |
@@ -179,13 +197,16 @@ CONFIG_HZ_250=y | |||
179 | # CONFIG_HZ_300 is not set | 197 | # CONFIG_HZ_300 is not set |
180 | # CONFIG_HZ_1000 is not set | 198 | # CONFIG_HZ_1000 is not set |
181 | CONFIG_HZ=250 | 199 | CONFIG_HZ=250 |
200 | # CONFIG_SCHED_HRTICK is not set | ||
182 | CONFIG_PREEMPT_NONE=y | 201 | CONFIG_PREEMPT_NONE=y |
183 | # CONFIG_PREEMPT_VOLUNTARY is not set | 202 | # CONFIG_PREEMPT_VOLUNTARY is not set |
184 | # CONFIG_PREEMPT is not set | 203 | # CONFIG_PREEMPT is not set |
185 | CONFIG_PREEMPT_BKL=y | ||
186 | CONFIG_BINFMT_ELF=y | 204 | CONFIG_BINFMT_ELF=y |
187 | CONFIG_BINFMT_MISC=y | 205 | CONFIG_BINFMT_MISC=y |
206 | # CONFIG_IOMMU_HELPER is not set | ||
188 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 207 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
208 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
209 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
189 | # CONFIG_KEXEC is not set | 210 | # CONFIG_KEXEC is not set |
190 | CONFIG_IRQ_ALL_CPUS=y | 211 | CONFIG_IRQ_ALL_CPUS=y |
191 | CONFIG_ARCH_FLATMEM_ENABLE=y | 212 | CONFIG_ARCH_FLATMEM_ENABLE=y |
@@ -207,7 +228,6 @@ CONFIG_PROC_DEVICETREE=y | |||
207 | # CONFIG_CMDLINE_BOOL is not set | 228 | # CONFIG_CMDLINE_BOOL is not set |
208 | # CONFIG_PM is not set | 229 | # CONFIG_PM is not set |
209 | CONFIG_SECCOMP=y | 230 | CONFIG_SECCOMP=y |
210 | # CONFIG_WANT_DEVICE_TREE is not set | ||
211 | CONFIG_ISA_DMA_API=y | 231 | CONFIG_ISA_DMA_API=y |
212 | 232 | ||
213 | # | 233 | # |
@@ -286,74 +306,32 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
286 | # CONFIG_NETWORK_SECMARK is not set | 306 | # CONFIG_NETWORK_SECMARK is not set |
287 | CONFIG_NETFILTER=y | 307 | CONFIG_NETFILTER=y |
288 | # CONFIG_NETFILTER_DEBUG is not set | 308 | # CONFIG_NETFILTER_DEBUG is not set |
309 | # CONFIG_NETFILTER_ADVANCED is not set | ||
289 | 310 | ||
290 | # | 311 | # |
291 | # Core Netfilter Configuration | 312 | # Core Netfilter Configuration |
292 | # | 313 | # |
293 | # CONFIG_NETFILTER_NETLINK is not set | 314 | CONFIG_NETFILTER_NETLINK=m |
294 | CONFIG_NF_CONNTRACK_ENABLED=m | 315 | CONFIG_NETFILTER_NETLINK_LOG=m |
295 | CONFIG_NF_CONNTRACK=m | 316 | CONFIG_NF_CONNTRACK=m |
296 | # CONFIG_NF_CT_ACCT is not set | ||
297 | # CONFIG_NF_CONNTRACK_MARK is not set | ||
298 | # CONFIG_NF_CONNTRACK_EVENTS is not set | ||
299 | # CONFIG_NF_CT_PROTO_SCTP is not set | ||
300 | # CONFIG_NF_CT_PROTO_UDPLITE is not set | ||
301 | # CONFIG_NF_CONNTRACK_AMANDA is not set | ||
302 | CONFIG_NF_CONNTRACK_FTP=m | 317 | CONFIG_NF_CONNTRACK_FTP=m |
303 | # CONFIG_NF_CONNTRACK_H323 is not set | ||
304 | CONFIG_NF_CONNTRACK_IRC=m | 318 | CONFIG_NF_CONNTRACK_IRC=m |
305 | # CONFIG_NF_CONNTRACK_NETBIOS_NS is not set | ||
306 | # CONFIG_NF_CONNTRACK_PPTP is not set | ||
307 | # CONFIG_NF_CONNTRACK_SANE is not set | ||
308 | CONFIG_NF_CONNTRACK_SIP=m | 319 | CONFIG_NF_CONNTRACK_SIP=m |
309 | CONFIG_NF_CONNTRACK_TFTP=m | 320 | CONFIG_NF_CT_NETLINK=m |
310 | CONFIG_NETFILTER_XTABLES=m | 321 | CONFIG_NETFILTER_XTABLES=m |
311 | # CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set | ||
312 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set | 322 | # CONFIG_NETFILTER_XT_TARGET_MARK is not set |
313 | # CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set | ||
314 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 323 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
315 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | 324 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set |
316 | # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set | ||
317 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set | ||
318 | # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set | ||
319 | # CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set | ||
320 | # CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set | 325 | # CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set |
321 | # CONFIG_NETFILTER_XT_MATCH_DCCP is not set | ||
322 | # CONFIG_NETFILTER_XT_MATCH_DSCP is not set | ||
323 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | ||
324 | # CONFIG_NETFILTER_XT_MATCH_HELPER is not set | ||
325 | # CONFIG_NETFILTER_XT_MATCH_LENGTH is not set | ||
326 | # CONFIG_NETFILTER_XT_MATCH_LIMIT is not set | ||
327 | # CONFIG_NETFILTER_XT_MATCH_MAC is not set | ||
328 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set | 326 | # CONFIG_NETFILTER_XT_MATCH_MARK is not set |
329 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | ||
330 | # CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set | ||
331 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | ||
332 | # CONFIG_NETFILTER_XT_MATCH_REALM is not set | ||
333 | # CONFIG_NETFILTER_XT_MATCH_SCTP is not set | ||
334 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set | 327 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set |
335 | # CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set | ||
336 | # CONFIG_NETFILTER_XT_MATCH_STRING is not set | ||
337 | # CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set | ||
338 | # CONFIG_NETFILTER_XT_MATCH_TIME is not set | ||
339 | # CONFIG_NETFILTER_XT_MATCH_U32 is not set | ||
340 | # CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set | ||
341 | 328 | ||
342 | # | 329 | # |
343 | # IP: Netfilter Configuration | 330 | # IP: Netfilter Configuration |
344 | # | 331 | # |
345 | CONFIG_NF_CONNTRACK_IPV4=m | 332 | CONFIG_NF_CONNTRACK_IPV4=m |
346 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | 333 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y |
347 | # CONFIG_IP_NF_QUEUE is not set | ||
348 | CONFIG_IP_NF_IPTABLES=m | 334 | CONFIG_IP_NF_IPTABLES=m |
349 | # CONFIG_IP_NF_MATCH_IPRANGE is not set | ||
350 | # CONFIG_IP_NF_MATCH_TOS is not set | ||
351 | # CONFIG_IP_NF_MATCH_RECENT is not set | ||
352 | # CONFIG_IP_NF_MATCH_ECN is not set | ||
353 | # CONFIG_IP_NF_MATCH_AH is not set | ||
354 | # CONFIG_IP_NF_MATCH_TTL is not set | ||
355 | # CONFIG_IP_NF_MATCH_OWNER is not set | ||
356 | # CONFIG_IP_NF_MATCH_ADDRTYPE is not set | ||
357 | CONFIG_IP_NF_FILTER=m | 335 | CONFIG_IP_NF_FILTER=m |
358 | CONFIG_IP_NF_TARGET_REJECT=m | 336 | CONFIG_IP_NF_TARGET_REJECT=m |
359 | CONFIG_IP_NF_TARGET_LOG=m | 337 | CONFIG_IP_NF_TARGET_LOG=m |
@@ -361,20 +339,14 @@ CONFIG_IP_NF_TARGET_LOG=m | |||
361 | CONFIG_NF_NAT=m | 339 | CONFIG_NF_NAT=m |
362 | CONFIG_NF_NAT_NEEDED=y | 340 | CONFIG_NF_NAT_NEEDED=y |
363 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 341 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
364 | CONFIG_IP_NF_TARGET_REDIRECT=m | ||
365 | # CONFIG_IP_NF_TARGET_NETMAP is not set | ||
366 | # CONFIG_IP_NF_TARGET_SAME is not set | ||
367 | # CONFIG_NF_NAT_SNMP_BASIC is not set | ||
368 | CONFIG_NF_NAT_FTP=m | 342 | CONFIG_NF_NAT_FTP=m |
369 | CONFIG_NF_NAT_IRC=m | 343 | CONFIG_NF_NAT_IRC=m |
370 | CONFIG_NF_NAT_TFTP=m | 344 | # CONFIG_NF_NAT_TFTP is not set |
371 | # CONFIG_NF_NAT_AMANDA is not set | 345 | # CONFIG_NF_NAT_AMANDA is not set |
372 | # CONFIG_NF_NAT_PPTP is not set | 346 | # CONFIG_NF_NAT_PPTP is not set |
373 | # CONFIG_NF_NAT_H323 is not set | 347 | # CONFIG_NF_NAT_H323 is not set |
374 | CONFIG_NF_NAT_SIP=m | 348 | CONFIG_NF_NAT_SIP=m |
375 | # CONFIG_IP_NF_MANGLE is not set | 349 | # CONFIG_IP_NF_MANGLE is not set |
376 | # CONFIG_IP_NF_RAW is not set | ||
377 | # CONFIG_IP_NF_ARPTABLES is not set | ||
378 | # CONFIG_IP_DCCP is not set | 350 | # CONFIG_IP_DCCP is not set |
379 | # CONFIG_IP_SCTP is not set | 351 | # CONFIG_IP_SCTP is not set |
380 | # CONFIG_TIPC is not set | 352 | # CONFIG_TIPC is not set |
@@ -396,6 +368,7 @@ CONFIG_NF_NAT_SIP=m | |||
396 | # | 368 | # |
397 | # CONFIG_NET_PKTGEN is not set | 369 | # CONFIG_NET_PKTGEN is not set |
398 | # CONFIG_HAMRADIO is not set | 370 | # CONFIG_HAMRADIO is not set |
371 | # CONFIG_CAN is not set | ||
399 | # CONFIG_IRDA is not set | 372 | # CONFIG_IRDA is not set |
400 | # CONFIG_BT is not set | 373 | # CONFIG_BT is not set |
401 | # CONFIG_AF_RXRPC is not set | 374 | # CONFIG_AF_RXRPC is not set |
@@ -445,7 +418,7 @@ CONFIG_BLK_DEV_LOOP=y | |||
445 | CONFIG_BLK_DEV_RAM=y | 418 | CONFIG_BLK_DEV_RAM=y |
446 | CONFIG_BLK_DEV_RAM_COUNT=16 | 419 | CONFIG_BLK_DEV_RAM_COUNT=16 |
447 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 420 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
448 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 421 | # CONFIG_BLK_DEV_XIP is not set |
449 | # CONFIG_CDROM_PKTCDVD is not set | 422 | # CONFIG_CDROM_PKTCDVD is not set |
450 | # CONFIG_ATA_OVER_ETH is not set | 423 | # CONFIG_ATA_OVER_ETH is not set |
451 | CONFIG_MISC_DEVICES=y | 424 | CONFIG_MISC_DEVICES=y |
@@ -453,16 +426,19 @@ CONFIG_MISC_DEVICES=y | |||
453 | # CONFIG_EEPROM_93CX6 is not set | 426 | # CONFIG_EEPROM_93CX6 is not set |
454 | # CONFIG_SGI_IOC4 is not set | 427 | # CONFIG_SGI_IOC4 is not set |
455 | # CONFIG_TIFM_CORE is not set | 428 | # CONFIG_TIFM_CORE is not set |
429 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
430 | CONFIG_HAVE_IDE=y | ||
456 | CONFIG_IDE=y | 431 | CONFIG_IDE=y |
457 | CONFIG_BLK_DEV_IDE=y | 432 | CONFIG_BLK_DEV_IDE=y |
458 | 433 | ||
459 | # | 434 | # |
460 | # Please see Documentation/ide.txt for help/info on IDE drives | 435 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
461 | # | 436 | # |
462 | # CONFIG_BLK_DEV_IDE_SATA is not set | 437 | # CONFIG_BLK_DEV_IDE_SATA is not set |
463 | CONFIG_BLK_DEV_IDEDISK=y | 438 | CONFIG_BLK_DEV_IDEDISK=y |
464 | CONFIG_IDEDISK_MULTI_MODE=y | 439 | CONFIG_IDEDISK_MULTI_MODE=y |
465 | CONFIG_BLK_DEV_IDECD=y | 440 | CONFIG_BLK_DEV_IDECD=y |
441 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
466 | # CONFIG_BLK_DEV_IDETAPE is not set | 442 | # CONFIG_BLK_DEV_IDETAPE is not set |
467 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 443 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
468 | # CONFIG_BLK_DEV_IDESCSI is not set | 444 | # CONFIG_BLK_DEV_IDESCSI is not set |
@@ -474,12 +450,12 @@ CONFIG_IDE_PROC_FS=y | |||
474 | # | 450 | # |
475 | CONFIG_IDE_GENERIC=y | 451 | CONFIG_IDE_GENERIC=y |
476 | # CONFIG_BLK_DEV_PLATFORM is not set | 452 | # CONFIG_BLK_DEV_PLATFORM is not set |
453 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
477 | 454 | ||
478 | # | 455 | # |
479 | # PCI IDE chipsets support | 456 | # PCI IDE chipsets support |
480 | # | 457 | # |
481 | CONFIG_BLK_DEV_IDEPCI=y | 458 | CONFIG_BLK_DEV_IDEPCI=y |
482 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
483 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 459 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
484 | # CONFIG_BLK_DEV_OFFBOARD is not set | 460 | # CONFIG_BLK_DEV_OFFBOARD is not set |
485 | CONFIG_BLK_DEV_GENERIC=y | 461 | CONFIG_BLK_DEV_GENERIC=y |
@@ -510,7 +486,6 @@ CONFIG_BLK_DEV_SL82C105=y | |||
510 | # CONFIG_BLK_DEV_TRM290 is not set | 486 | # CONFIG_BLK_DEV_TRM290 is not set |
511 | CONFIG_BLK_DEV_VIA82CXXX=y | 487 | CONFIG_BLK_DEV_VIA82CXXX=y |
512 | # CONFIG_BLK_DEV_TC86C001 is not set | 488 | # CONFIG_BLK_DEV_TC86C001 is not set |
513 | # CONFIG_IDE_ARM is not set | ||
514 | 489 | ||
515 | # | 490 | # |
516 | # Other IDE chipsets support | 491 | # Other IDE chipsets support |
@@ -599,6 +574,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
599 | # CONFIG_SCSI_IPS is not set | 574 | # CONFIG_SCSI_IPS is not set |
600 | # CONFIG_SCSI_INITIO is not set | 575 | # CONFIG_SCSI_INITIO is not set |
601 | # CONFIG_SCSI_INIA100 is not set | 576 | # CONFIG_SCSI_INIA100 is not set |
577 | # CONFIG_SCSI_MVSAS is not set | ||
602 | # CONFIG_SCSI_NCR53C406A is not set | 578 | # CONFIG_SCSI_NCR53C406A is not set |
603 | # CONFIG_SCSI_STEX is not set | 579 | # CONFIG_SCSI_STEX is not set |
604 | CONFIG_SCSI_SYM53C8XX_2=y | 580 | CONFIG_SCSI_SYM53C8XX_2=y |
@@ -607,7 +583,6 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 | |||
607 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 | 583 | CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 |
608 | CONFIG_SCSI_SYM53C8XX_MMIO=y | 584 | CONFIG_SCSI_SYM53C8XX_MMIO=y |
609 | # CONFIG_SCSI_PAS16 is not set | 585 | # CONFIG_SCSI_PAS16 is not set |
610 | # CONFIG_SCSI_PSI240I is not set | ||
611 | # CONFIG_SCSI_QLOGIC_FAS is not set | 586 | # CONFIG_SCSI_QLOGIC_FAS is not set |
612 | # CONFIG_SCSI_QLOGIC_1280 is not set | 587 | # CONFIG_SCSI_QLOGIC_1280 is not set |
613 | # CONFIG_SCSI_QLA_FC is not set | 588 | # CONFIG_SCSI_QLA_FC is not set |
@@ -640,7 +615,6 @@ CONFIG_NETDEVICES=y | |||
640 | # CONFIG_EQUALIZER is not set | 615 | # CONFIG_EQUALIZER is not set |
641 | # CONFIG_TUN is not set | 616 | # CONFIG_TUN is not set |
642 | # CONFIG_VETH is not set | 617 | # CONFIG_VETH is not set |
643 | # CONFIG_IP1000 is not set | ||
644 | # CONFIG_ARCNET is not set | 618 | # CONFIG_ARCNET is not set |
645 | # CONFIG_PHYLIB is not set | 619 | # CONFIG_PHYLIB is not set |
646 | CONFIG_NET_ETHERNET=y | 620 | CONFIG_NET_ETHERNET=y |
@@ -688,6 +662,7 @@ CONFIG_8139TOO=y | |||
688 | # CONFIG_8139TOO_TUNE_TWISTER is not set | 662 | # CONFIG_8139TOO_TUNE_TWISTER is not set |
689 | # CONFIG_8139TOO_8129 is not set | 663 | # CONFIG_8139TOO_8129 is not set |
690 | # CONFIG_8139_OLD_RX_RESET is not set | 664 | # CONFIG_8139_OLD_RX_RESET is not set |
665 | # CONFIG_R6040 is not set | ||
691 | # CONFIG_SIS900 is not set | 666 | # CONFIG_SIS900 is not set |
692 | # CONFIG_EPIC100 is not set | 667 | # CONFIG_EPIC100 is not set |
693 | # CONFIG_SUNDANCE is not set | 668 | # CONFIG_SUNDANCE is not set |
@@ -701,6 +676,9 @@ CONFIG_NETDEV_1000=y | |||
701 | # CONFIG_DL2K is not set | 676 | # CONFIG_DL2K is not set |
702 | # CONFIG_E1000 is not set | 677 | # CONFIG_E1000 is not set |
703 | # CONFIG_E1000E is not set | 678 | # CONFIG_E1000E is not set |
679 | # CONFIG_E1000E_ENABLED is not set | ||
680 | # CONFIG_IP1000 is not set | ||
681 | # CONFIG_IGB is not set | ||
704 | # CONFIG_NS83820 is not set | 682 | # CONFIG_NS83820 is not set |
705 | # CONFIG_HAMACHI is not set | 683 | # CONFIG_HAMACHI is not set |
706 | # CONFIG_YELLOWFIN is not set | 684 | # CONFIG_YELLOWFIN is not set |
@@ -726,6 +704,7 @@ CONFIG_NETDEV_10000=y | |||
726 | # CONFIG_NIU is not set | 704 | # CONFIG_NIU is not set |
727 | # CONFIG_MLX4_CORE is not set | 705 | # CONFIG_MLX4_CORE is not set |
728 | # CONFIG_TEHUTI is not set | 706 | # CONFIG_TEHUTI is not set |
707 | # CONFIG_BNX2X is not set | ||
729 | # CONFIG_TR is not set | 708 | # CONFIG_TR is not set |
730 | 709 | ||
731 | # | 710 | # |
@@ -758,7 +737,6 @@ CONFIG_PPPOE=m | |||
758 | # CONFIG_SLIP is not set | 737 | # CONFIG_SLIP is not set |
759 | CONFIG_SLHC=m | 738 | CONFIG_SLHC=m |
760 | # CONFIG_NET_FC is not set | 739 | # CONFIG_NET_FC is not set |
761 | # CONFIG_SHAPER is not set | ||
762 | # CONFIG_NETCONSOLE is not set | 740 | # CONFIG_NETCONSOLE is not set |
763 | # CONFIG_NETPOLL is not set | 741 | # CONFIG_NETPOLL is not set |
764 | # CONFIG_NET_POLL_CONTROLLER is not set | 742 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -838,6 +816,7 @@ CONFIG_VT_CONSOLE=y | |||
838 | CONFIG_HW_CONSOLE=y | 816 | CONFIG_HW_CONSOLE=y |
839 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 817 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
840 | # CONFIG_SERIAL_NONSTANDARD is not set | 818 | # CONFIG_SERIAL_NONSTANDARD is not set |
819 | # CONFIG_NOZOMI is not set | ||
841 | 820 | ||
842 | # | 821 | # |
843 | # Serial drivers | 822 | # Serial drivers |
@@ -917,14 +896,12 @@ CONFIG_I2C_ALGOBIT=y | |||
917 | # | 896 | # |
918 | # Miscellaneous I2C Chip support | 897 | # Miscellaneous I2C Chip support |
919 | # | 898 | # |
920 | # CONFIG_SENSORS_DS1337 is not set | ||
921 | # CONFIG_SENSORS_DS1374 is not set | ||
922 | # CONFIG_DS1682 is not set | 899 | # CONFIG_DS1682 is not set |
923 | # CONFIG_SENSORS_EEPROM is not set | 900 | # CONFIG_SENSORS_EEPROM is not set |
924 | # CONFIG_SENSORS_PCF8574 is not set | 901 | # CONFIG_SENSORS_PCF8574 is not set |
925 | # CONFIG_SENSORS_PCA9539 is not set | 902 | # CONFIG_PCF8575 is not set |
926 | # CONFIG_SENSORS_PCF8591 is not set | 903 | # CONFIG_SENSORS_PCF8591 is not set |
927 | # CONFIG_SENSORS_M41T00 is not set | 904 | # CONFIG_TPS65010 is not set |
928 | # CONFIG_SENSORS_MAX6875 is not set | 905 | # CONFIG_SENSORS_MAX6875 is not set |
929 | # CONFIG_SENSORS_TSL2550 is not set | 906 | # CONFIG_SENSORS_TSL2550 is not set |
930 | # CONFIG_I2C_DEBUG_CORE is not set | 907 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -940,6 +917,7 @@ CONFIG_I2C_ALGOBIT=y | |||
940 | # CONFIG_W1 is not set | 917 | # CONFIG_W1 is not set |
941 | # CONFIG_POWER_SUPPLY is not set | 918 | # CONFIG_POWER_SUPPLY is not set |
942 | # CONFIG_HWMON is not set | 919 | # CONFIG_HWMON is not set |
920 | # CONFIG_THERMAL is not set | ||
943 | # CONFIG_WATCHDOG is not set | 921 | # CONFIG_WATCHDOG is not set |
944 | 922 | ||
945 | # | 923 | # |
@@ -1083,6 +1061,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1083 | CONFIG_USB_ARCH_HAS_EHCI=y | 1061 | CONFIG_USB_ARCH_HAS_EHCI=y |
1084 | CONFIG_USB=y | 1062 | CONFIG_USB=y |
1085 | # CONFIG_USB_DEBUG is not set | 1063 | # CONFIG_USB_DEBUG is not set |
1064 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1086 | 1065 | ||
1087 | # | 1066 | # |
1088 | # Miscellaneous USB options | 1067 | # Miscellaneous USB options |
@@ -1096,9 +1075,9 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1096 | # USB Host Controller Drivers | 1075 | # USB Host Controller Drivers |
1097 | # | 1076 | # |
1098 | CONFIG_USB_EHCI_HCD=m | 1077 | CONFIG_USB_EHCI_HCD=m |
1099 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1100 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1078 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1101 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1079 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1080 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1102 | # CONFIG_USB_ISP116X_HCD is not set | 1081 | # CONFIG_USB_ISP116X_HCD is not set |
1103 | CONFIG_USB_OHCI_HCD=y | 1082 | CONFIG_USB_OHCI_HCD=y |
1104 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 1083 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -1147,10 +1126,6 @@ CONFIG_USB_MON=y | |||
1147 | # | 1126 | # |
1148 | # USB port drivers | 1127 | # USB port drivers |
1149 | # | 1128 | # |
1150 | |||
1151 | # | ||
1152 | # USB Serial Converter support | ||
1153 | # | ||
1154 | # CONFIG_USB_SERIAL is not set | 1129 | # CONFIG_USB_SERIAL is not set |
1155 | 1130 | ||
1156 | # | 1131 | # |
@@ -1176,20 +1151,14 @@ CONFIG_USB_MON=y | |||
1176 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1151 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1177 | # CONFIG_USB_IOWARRIOR is not set | 1152 | # CONFIG_USB_IOWARRIOR is not set |
1178 | # CONFIG_USB_TEST is not set | 1153 | # CONFIG_USB_TEST is not set |
1179 | |||
1180 | # | ||
1181 | # USB DSL modem support | ||
1182 | # | ||
1183 | |||
1184 | # | ||
1185 | # USB Gadget Support | ||
1186 | # | ||
1187 | # CONFIG_USB_GADGET is not set | 1154 | # CONFIG_USB_GADGET is not set |
1188 | # CONFIG_MMC is not set | 1155 | # CONFIG_MMC is not set |
1156 | # CONFIG_MEMSTICK is not set | ||
1189 | # CONFIG_NEW_LEDS is not set | 1157 | # CONFIG_NEW_LEDS is not set |
1190 | # CONFIG_INFINIBAND is not set | 1158 | # CONFIG_INFINIBAND is not set |
1191 | # CONFIG_EDAC is not set | 1159 | # CONFIG_EDAC is not set |
1192 | # CONFIG_RTC_CLASS is not set | 1160 | # CONFIG_RTC_CLASS is not set |
1161 | # CONFIG_DMADEVICES is not set | ||
1193 | 1162 | ||
1194 | # | 1163 | # |
1195 | # Userspace I/O | 1164 | # Userspace I/O |
@@ -1215,12 +1184,10 @@ CONFIG_FS_MBCACHE=y | |||
1215 | # CONFIG_XFS_FS is not set | 1184 | # CONFIG_XFS_FS is not set |
1216 | # CONFIG_GFS2_FS is not set | 1185 | # CONFIG_GFS2_FS is not set |
1217 | # CONFIG_OCFS2_FS is not set | 1186 | # CONFIG_OCFS2_FS is not set |
1218 | # CONFIG_MINIX_FS is not set | 1187 | CONFIG_DNOTIFY=y |
1219 | # CONFIG_ROMFS_FS is not set | ||
1220 | CONFIG_INOTIFY=y | 1188 | CONFIG_INOTIFY=y |
1221 | CONFIG_INOTIFY_USER=y | 1189 | CONFIG_INOTIFY_USER=y |
1222 | # CONFIG_QUOTA is not set | 1190 | # CONFIG_QUOTA is not set |
1223 | CONFIG_DNOTIFY=y | ||
1224 | # CONFIG_AUTOFS_FS is not set | 1191 | # CONFIG_AUTOFS_FS is not set |
1225 | # CONFIG_AUTOFS4_FS is not set | 1192 | # CONFIG_AUTOFS4_FS is not set |
1226 | # CONFIG_FUSE_FS is not set | 1193 | # CONFIG_FUSE_FS is not set |
@@ -1267,8 +1234,10 @@ CONFIG_TMPFS=y | |||
1267 | # CONFIG_EFS_FS is not set | 1234 | # CONFIG_EFS_FS is not set |
1268 | # CONFIG_CRAMFS is not set | 1235 | # CONFIG_CRAMFS is not set |
1269 | # CONFIG_VXFS_FS is not set | 1236 | # CONFIG_VXFS_FS is not set |
1237 | # CONFIG_MINIX_FS is not set | ||
1270 | # CONFIG_HPFS_FS is not set | 1238 | # CONFIG_HPFS_FS is not set |
1271 | # CONFIG_QNX4FS_FS is not set | 1239 | # CONFIG_QNX4FS_FS is not set |
1240 | # CONFIG_ROMFS_FS is not set | ||
1272 | # CONFIG_SYSV_FS is not set | 1241 | # CONFIG_SYSV_FS is not set |
1273 | # CONFIG_UFS_FS is not set | 1242 | # CONFIG_UFS_FS is not set |
1274 | CONFIG_NETWORK_FILESYSTEMS=y | 1243 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1342,7 +1311,6 @@ CONFIG_NLS_ISO8859_1=m | |||
1342 | # CONFIG_NLS_KOI8_U is not set | 1311 | # CONFIG_NLS_KOI8_U is not set |
1343 | # CONFIG_NLS_UTF8 is not set | 1312 | # CONFIG_NLS_UTF8 is not set |
1344 | # CONFIG_DLM is not set | 1313 | # CONFIG_DLM is not set |
1345 | # CONFIG_UCC_SLOW is not set | ||
1346 | 1314 | ||
1347 | # | 1315 | # |
1348 | # Library routines | 1316 | # Library routines |
@@ -1360,10 +1328,6 @@ CONFIG_PLIST=y | |||
1360 | CONFIG_HAS_IOMEM=y | 1328 | CONFIG_HAS_IOMEM=y |
1361 | CONFIG_HAS_IOPORT=y | 1329 | CONFIG_HAS_IOPORT=y |
1362 | CONFIG_HAS_DMA=y | 1330 | CONFIG_HAS_DMA=y |
1363 | CONFIG_INSTRUMENTATION=y | ||
1364 | # CONFIG_PROFILING is not set | ||
1365 | # CONFIG_KPROBES is not set | ||
1366 | # CONFIG_MARKERS is not set | ||
1367 | 1331 | ||
1368 | # | 1332 | # |
1369 | # Kernel hacking | 1333 | # Kernel hacking |
@@ -1382,6 +1346,7 @@ CONFIG_SCHED_DEBUG=y | |||
1382 | # CONFIG_SCHEDSTATS is not set | 1346 | # CONFIG_SCHEDSTATS is not set |
1383 | # CONFIG_TIMER_STATS is not set | 1347 | # CONFIG_TIMER_STATS is not set |
1384 | # CONFIG_SLUB_DEBUG_ON is not set | 1348 | # CONFIG_SLUB_DEBUG_ON is not set |
1349 | # CONFIG_SLUB_STATS is not set | ||
1385 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1350 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1386 | # CONFIG_RT_MUTEX_TESTER is not set | 1351 | # CONFIG_RT_MUTEX_TESTER is not set |
1387 | # CONFIG_DEBUG_SPINLOCK is not set | 1352 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1395,9 +1360,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1395 | # CONFIG_DEBUG_VM is not set | 1360 | # CONFIG_DEBUG_VM is not set |
1396 | # CONFIG_DEBUG_LIST is not set | 1361 | # CONFIG_DEBUG_LIST is not set |
1397 | # CONFIG_DEBUG_SG is not set | 1362 | # CONFIG_DEBUG_SG is not set |
1398 | CONFIG_FORCED_INLINING=y | ||
1399 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1363 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1400 | # CONFIG_RCU_TORTURE_TEST is not set | 1364 | # CONFIG_RCU_TORTURE_TEST is not set |
1365 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1401 | # CONFIG_FAULT_INJECTION is not set | 1366 | # CONFIG_FAULT_INJECTION is not set |
1402 | # CONFIG_SAMPLES is not set | 1367 | # CONFIG_SAMPLES is not set |
1403 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1368 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1420,6 +1385,7 @@ CONFIG_XMON_DISASSEMBLY=y | |||
1420 | CONFIG_CRYPTO=y | 1385 | CONFIG_CRYPTO=y |
1421 | CONFIG_CRYPTO_ALGAPI=m | 1386 | CONFIG_CRYPTO_ALGAPI=m |
1422 | CONFIG_CRYPTO_BLKCIPHER=m | 1387 | CONFIG_CRYPTO_BLKCIPHER=m |
1388 | # CONFIG_CRYPTO_SEQIV is not set | ||
1423 | CONFIG_CRYPTO_MANAGER=m | 1389 | CONFIG_CRYPTO_MANAGER=m |
1424 | # CONFIG_CRYPTO_HMAC is not set | 1390 | # CONFIG_CRYPTO_HMAC is not set |
1425 | # CONFIG_CRYPTO_XCBC is not set | 1391 | # CONFIG_CRYPTO_XCBC is not set |
@@ -1437,6 +1403,9 @@ CONFIG_CRYPTO_CBC=m | |||
1437 | CONFIG_CRYPTO_PCBC=m | 1403 | CONFIG_CRYPTO_PCBC=m |
1438 | # CONFIG_CRYPTO_LRW is not set | 1404 | # CONFIG_CRYPTO_LRW is not set |
1439 | # CONFIG_CRYPTO_XTS is not set | 1405 | # CONFIG_CRYPTO_XTS is not set |
1406 | # CONFIG_CRYPTO_CTR is not set | ||
1407 | # CONFIG_CRYPTO_GCM is not set | ||
1408 | # CONFIG_CRYPTO_CCM is not set | ||
1440 | # CONFIG_CRYPTO_CRYPTD is not set | 1409 | # CONFIG_CRYPTO_CRYPTD is not set |
1441 | # CONFIG_CRYPTO_DES is not set | 1410 | # CONFIG_CRYPTO_DES is not set |
1442 | # CONFIG_CRYPTO_FCRYPT is not set | 1411 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1451,11 +1420,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1451 | # CONFIG_CRYPTO_KHAZAD is not set | 1420 | # CONFIG_CRYPTO_KHAZAD is not set |
1452 | # CONFIG_CRYPTO_ANUBIS is not set | 1421 | # CONFIG_CRYPTO_ANUBIS is not set |
1453 | # CONFIG_CRYPTO_SEED is not set | 1422 | # CONFIG_CRYPTO_SEED is not set |
1423 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1454 | # CONFIG_CRYPTO_DEFLATE is not set | 1424 | # CONFIG_CRYPTO_DEFLATE is not set |
1455 | # CONFIG_CRYPTO_MICHAEL_MIC is not set | 1425 | # CONFIG_CRYPTO_MICHAEL_MIC is not set |
1456 | # CONFIG_CRYPTO_CRC32C is not set | 1426 | # CONFIG_CRYPTO_CRC32C is not set |
1457 | # CONFIG_CRYPTO_CAMELLIA is not set | 1427 | # CONFIG_CRYPTO_CAMELLIA is not set |
1458 | # CONFIG_CRYPTO_TEST is not set | 1428 | # CONFIG_CRYPTO_TEST is not set |
1459 | # CONFIG_CRYPTO_AUTHENC is not set | 1429 | # CONFIG_CRYPTO_AUTHENC is not set |
1430 | # CONFIG_CRYPTO_LZO is not set | ||
1460 | # CONFIG_CRYPTO_HW is not set | 1431 | # CONFIG_CRYPTO_HW is not set |
1461 | # CONFIG_PPC_CLOCK is not set | 1432 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/g5_defconfig b/arch/powerpc/configs/g5_defconfig index 3673dd23120c..0f82f66a60f8 100644 --- a/arch/powerpc/configs/g5_defconfig +++ b/arch/powerpc/configs/g5_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:48:15 2007 | 4 | # Thu Mar 20 10:36:41 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y | |||
27 | CONFIG_GENERIC_TIME_VSYSCALL=y | 27 | CONFIG_GENERIC_TIME_VSYSCALL=y |
28 | CONFIG_GENERIC_CLOCKEVENTS=y | 28 | CONFIG_GENERIC_CLOCKEVENTS=y |
29 | CONFIG_GENERIC_HARDIRQS=y | 29 | CONFIG_GENERIC_HARDIRQS=y |
30 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
30 | CONFIG_IRQ_PER_CPU=y | 31 | CONFIG_IRQ_PER_CPU=y |
31 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
32 | CONFIG_ARCH_HAS_ILOG2_U32=y | 33 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -48,7 +49,9 @@ CONFIG_GENERIC_TBSYNC=y | |||
48 | CONFIG_AUDIT_ARCH=y | 49 | CONFIG_AUDIT_ARCH=y |
49 | CONFIG_GENERIC_BUG=y | 50 | CONFIG_GENERIC_BUG=y |
50 | # CONFIG_DEFAULT_UIMAGE is not set | 51 | # CONFIG_DEFAULT_UIMAGE is not set |
51 | CONFIG_PPC64_SWSUSP=y | 52 | CONFIG_HIBERNATE_64=y |
53 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
54 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
52 | # CONFIG_PPC_DCR_NATIVE is not set | 55 | # CONFIG_PPC_DCR_NATIVE is not set |
53 | # CONFIG_PPC_DCR_MMIO is not set | 56 | # CONFIG_PPC_DCR_MMIO is not set |
54 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | 57 | # CONFIG_PPC_OF_PLATFORM_PCI is not set |
@@ -68,18 +71,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
68 | CONFIG_POSIX_MQUEUE=y | 71 | CONFIG_POSIX_MQUEUE=y |
69 | # CONFIG_BSD_PROCESS_ACCT is not set | 72 | # CONFIG_BSD_PROCESS_ACCT is not set |
70 | # CONFIG_TASKSTATS is not set | 73 | # CONFIG_TASKSTATS is not set |
71 | # CONFIG_USER_NS is not set | ||
72 | # CONFIG_PID_NS is not set | ||
73 | # CONFIG_AUDIT is not set | 74 | # CONFIG_AUDIT is not set |
74 | CONFIG_IKCONFIG=y | 75 | CONFIG_IKCONFIG=y |
75 | CONFIG_IKCONFIG_PROC=y | 76 | CONFIG_IKCONFIG_PROC=y |
76 | CONFIG_LOG_BUF_SHIFT=17 | 77 | CONFIG_LOG_BUF_SHIFT=17 |
77 | # CONFIG_CGROUPS is not set | 78 | # CONFIG_CGROUPS is not set |
78 | CONFIG_FAIR_GROUP_SCHED=y | 79 | # CONFIG_GROUP_SCHED is not set |
79 | CONFIG_FAIR_USER_SCHED=y | 80 | # CONFIG_USER_SCHED is not set |
80 | # CONFIG_FAIR_CGROUP_SCHED is not set | 81 | # CONFIG_CGROUP_SCHED is not set |
81 | CONFIG_SYSFS_DEPRECATED=y | 82 | CONFIG_SYSFS_DEPRECATED=y |
83 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
82 | # CONFIG_RELAY is not set | 84 | # CONFIG_RELAY is not set |
85 | CONFIG_NAMESPACES=y | ||
86 | # CONFIG_UTS_NS is not set | ||
87 | # CONFIG_IPC_NS is not set | ||
88 | # CONFIG_USER_NS is not set | ||
89 | # CONFIG_PID_NS is not set | ||
83 | CONFIG_BLK_DEV_INITRD=y | 90 | CONFIG_BLK_DEV_INITRD=y |
84 | CONFIG_INITRAMFS_SOURCE="" | 91 | CONFIG_INITRAMFS_SOURCE="" |
85 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 92 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -93,11 +100,13 @@ CONFIG_HOTPLUG=y | |||
93 | CONFIG_PRINTK=y | 100 | CONFIG_PRINTK=y |
94 | CONFIG_BUG=y | 101 | CONFIG_BUG=y |
95 | CONFIG_ELF_CORE=y | 102 | CONFIG_ELF_CORE=y |
103 | # CONFIG_COMPAT_BRK is not set | ||
96 | CONFIG_BASE_FULL=y | 104 | CONFIG_BASE_FULL=y |
97 | CONFIG_FUTEX=y | 105 | CONFIG_FUTEX=y |
98 | CONFIG_ANON_INODES=y | 106 | CONFIG_ANON_INODES=y |
99 | CONFIG_EPOLL=y | 107 | CONFIG_EPOLL=y |
100 | CONFIG_SIGNALFD=y | 108 | CONFIG_SIGNALFD=y |
109 | CONFIG_TIMERFD=y | ||
101 | CONFIG_EVENTFD=y | 110 | CONFIG_EVENTFD=y |
102 | CONFIG_SHMEM=y | 111 | CONFIG_SHMEM=y |
103 | CONFIG_VM_EVENT_COUNTERS=y | 112 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -105,6 +114,15 @@ CONFIG_SLUB_DEBUG=y | |||
105 | # CONFIG_SLAB is not set | 114 | # CONFIG_SLAB is not set |
106 | CONFIG_SLUB=y | 115 | CONFIG_SLUB=y |
107 | # CONFIG_SLOB is not set | 116 | # CONFIG_SLOB is not set |
117 | CONFIG_PROFILING=y | ||
118 | # CONFIG_MARKERS is not set | ||
119 | CONFIG_OPROFILE=y | ||
120 | CONFIG_HAVE_OPROFILE=y | ||
121 | # CONFIG_KPROBES is not set | ||
122 | CONFIG_HAVE_KPROBES=y | ||
123 | CONFIG_HAVE_KRETPROBES=y | ||
124 | CONFIG_PROC_PAGE_MONITOR=y | ||
125 | CONFIG_SLABINFO=y | ||
108 | CONFIG_RT_MUTEXES=y | 126 | CONFIG_RT_MUTEXES=y |
109 | # CONFIG_TINY_SHMEM is not set | 127 | # CONFIG_TINY_SHMEM is not set |
110 | CONFIG_BASE_SMALL=0 | 128 | CONFIG_BASE_SMALL=0 |
@@ -132,6 +150,7 @@ CONFIG_DEFAULT_AS=y | |||
132 | # CONFIG_DEFAULT_CFQ is not set | 150 | # CONFIG_DEFAULT_CFQ is not set |
133 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
134 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 152 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
153 | CONFIG_CLASSIC_RCU=y | ||
135 | 154 | ||
136 | # | 155 | # |
137 | # Platform support | 156 | # Platform support |
@@ -142,8 +161,8 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
142 | # CONFIG_PPC_86xx is not set | 161 | # CONFIG_PPC_86xx is not set |
143 | # CONFIG_PPC_PSERIES is not set | 162 | # CONFIG_PPC_PSERIES is not set |
144 | # CONFIG_PPC_ISERIES is not set | 163 | # CONFIG_PPC_ISERIES is not set |
145 | # CONFIG_PPC_MPC52xx is not set | 164 | # CONFIG_PPC_MPC512x is not set |
146 | # CONFIG_PPC_MPC5200 is not set | 165 | # CONFIG_PPC_MPC5121 is not set |
147 | CONFIG_PPC_PMAC=y | 166 | CONFIG_PPC_PMAC=y |
148 | CONFIG_PPC_PMAC64=y | 167 | CONFIG_PPC_PMAC64=y |
149 | # CONFIG_PPC_MAPLE is not set | 168 | # CONFIG_PPC_MAPLE is not set |
@@ -155,6 +174,7 @@ CONFIG_PPC_PMAC64=y | |||
155 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 174 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
156 | # CONFIG_PQ2ADS is not set | 175 | # CONFIG_PQ2ADS is not set |
157 | CONFIG_PPC_NATIVE=y | 176 | CONFIG_PPC_NATIVE=y |
177 | # CONFIG_IPIC is not set | ||
158 | CONFIG_MPIC=y | 178 | CONFIG_MPIC=y |
159 | # CONFIG_MPIC_WEIRD is not set | 179 | # CONFIG_MPIC_WEIRD is not set |
160 | # CONFIG_PPC_I8259 is not set | 180 | # CONFIG_PPC_I8259 is not set |
@@ -185,7 +205,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y | |||
185 | # CPU Frequency drivers | 205 | # CPU Frequency drivers |
186 | # | 206 | # |
187 | CONFIG_CPU_FREQ_PMAC64=y | 207 | CONFIG_CPU_FREQ_PMAC64=y |
188 | # CONFIG_CPM2 is not set | ||
189 | # CONFIG_FSL_ULI1575 is not set | 208 | # CONFIG_FSL_ULI1575 is not set |
190 | 209 | ||
191 | # | 210 | # |
@@ -200,17 +219,21 @@ CONFIG_HZ_250=y | |||
200 | # CONFIG_HZ_300 is not set | 219 | # CONFIG_HZ_300 is not set |
201 | # CONFIG_HZ_1000 is not set | 220 | # CONFIG_HZ_1000 is not set |
202 | CONFIG_HZ=250 | 221 | CONFIG_HZ=250 |
222 | # CONFIG_SCHED_HRTICK is not set | ||
203 | CONFIG_PREEMPT_NONE=y | 223 | CONFIG_PREEMPT_NONE=y |
204 | # CONFIG_PREEMPT_VOLUNTARY is not set | 224 | # CONFIG_PREEMPT_VOLUNTARY is not set |
205 | # CONFIG_PREEMPT is not set | 225 | # CONFIG_PREEMPT is not set |
206 | # CONFIG_PREEMPT_BKL is not set | ||
207 | CONFIG_BINFMT_ELF=y | 226 | CONFIG_BINFMT_ELF=y |
227 | CONFIG_COMPAT_BINFMT_ELF=y | ||
208 | # CONFIG_BINFMT_MISC is not set | 228 | # CONFIG_BINFMT_MISC is not set |
209 | CONFIG_FORCE_MAX_ZONEORDER=13 | 229 | CONFIG_FORCE_MAX_ZONEORDER=13 |
210 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 230 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
211 | CONFIG_IOMMU_VMERGE=y | 231 | CONFIG_IOMMU_VMERGE=y |
232 | CONFIG_IOMMU_HELPER=y | ||
212 | # CONFIG_HOTPLUG_CPU is not set | 233 | # CONFIG_HOTPLUG_CPU is not set |
213 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 234 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
235 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
236 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
214 | CONFIG_KEXEC=y | 237 | CONFIG_KEXEC=y |
215 | # CONFIG_CRASH_DUMP is not set | 238 | # CONFIG_CRASH_DUMP is not set |
216 | CONFIG_IRQ_ALL_CPUS=y | 239 | CONFIG_IRQ_ALL_CPUS=y |
@@ -236,11 +259,9 @@ CONFIG_BOUNCE=y | |||
236 | # CONFIG_SCHED_SMT is not set | 259 | # CONFIG_SCHED_SMT is not set |
237 | CONFIG_PROC_DEVICETREE=y | 260 | CONFIG_PROC_DEVICETREE=y |
238 | # CONFIG_CMDLINE_BOOL is not set | 261 | # CONFIG_CMDLINE_BOOL is not set |
262 | CONFIG_ARCH_WANTS_FREEZER_CONTROL=y | ||
239 | # CONFIG_PM is not set | 263 | # CONFIG_PM is not set |
240 | CONFIG_SUSPEND_SMP_POSSIBLE=y | ||
241 | CONFIG_HIBERNATION_SMP_POSSIBLE=y | ||
242 | CONFIG_SECCOMP=y | 264 | CONFIG_SECCOMP=y |
243 | # CONFIG_WANT_DEVICE_TREE is not set | ||
244 | CONFIG_ISA_DMA_API=y | 265 | CONFIG_ISA_DMA_API=y |
245 | 266 | ||
246 | # | 267 | # |
@@ -276,6 +297,7 @@ CONFIG_XFRM=y | |||
276 | CONFIG_XFRM_USER=m | 297 | CONFIG_XFRM_USER=m |
277 | # CONFIG_XFRM_SUB_POLICY is not set | 298 | # CONFIG_XFRM_SUB_POLICY is not set |
278 | # CONFIG_XFRM_MIGRATE is not set | 299 | # CONFIG_XFRM_MIGRATE is not set |
300 | # CONFIG_XFRM_STATISTICS is not set | ||
279 | CONFIG_NET_KEY=m | 301 | CONFIG_NET_KEY=m |
280 | # CONFIG_NET_KEY_MIGRATE is not set | 302 | # CONFIG_NET_KEY_MIGRATE is not set |
281 | CONFIG_INET=y | 303 | CONFIG_INET=y |
@@ -310,12 +332,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
310 | # CONFIG_NETWORK_SECMARK is not set | 332 | # CONFIG_NETWORK_SECMARK is not set |
311 | CONFIG_NETFILTER=y | 333 | CONFIG_NETFILTER=y |
312 | # CONFIG_NETFILTER_DEBUG is not set | 334 | # CONFIG_NETFILTER_DEBUG is not set |
335 | CONFIG_NETFILTER_ADVANCED=y | ||
313 | 336 | ||
314 | # | 337 | # |
315 | # Core Netfilter Configuration | 338 | # Core Netfilter Configuration |
316 | # | 339 | # |
317 | # CONFIG_NETFILTER_NETLINK is not set | 340 | CONFIG_NETFILTER_NETLINK=m |
318 | CONFIG_NF_CONNTRACK_ENABLED=m | 341 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
342 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
319 | CONFIG_NF_CONNTRACK=m | 343 | CONFIG_NF_CONNTRACK=m |
320 | # CONFIG_NF_CT_ACCT is not set | 344 | # CONFIG_NF_CT_ACCT is not set |
321 | CONFIG_NF_CONNTRACK_MARK=y | 345 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -331,6 +355,7 @@ CONFIG_NF_CONNTRACK_IRC=m | |||
331 | # CONFIG_NF_CONNTRACK_SANE is not set | 355 | # CONFIG_NF_CONNTRACK_SANE is not set |
332 | # CONFIG_NF_CONNTRACK_SIP is not set | 356 | # CONFIG_NF_CONNTRACK_SIP is not set |
333 | CONFIG_NF_CONNTRACK_TFTP=m | 357 | CONFIG_NF_CONNTRACK_TFTP=m |
358 | CONFIG_NF_CT_NETLINK=m | ||
334 | # CONFIG_NETFILTER_XTABLES is not set | 359 | # CONFIG_NETFILTER_XTABLES is not set |
335 | 360 | ||
336 | # | 361 | # |
@@ -363,6 +388,7 @@ CONFIG_LLC=y | |||
363 | # | 388 | # |
364 | # CONFIG_NET_PKTGEN is not set | 389 | # CONFIG_NET_PKTGEN is not set |
365 | # CONFIG_HAMRADIO is not set | 390 | # CONFIG_HAMRADIO is not set |
391 | # CONFIG_CAN is not set | ||
366 | # CONFIG_IRDA is not set | 392 | # CONFIG_IRDA is not set |
367 | # CONFIG_BT is not set | 393 | # CONFIG_BT is not set |
368 | # CONFIG_AF_RXRPC is not set | 394 | # CONFIG_AF_RXRPC is not set |
@@ -409,7 +435,7 @@ CONFIG_BLK_DEV_NBD=m | |||
409 | CONFIG_BLK_DEV_RAM=y | 435 | CONFIG_BLK_DEV_RAM=y |
410 | CONFIG_BLK_DEV_RAM_COUNT=16 | 436 | CONFIG_BLK_DEV_RAM_COUNT=16 |
411 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 437 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
412 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 438 | # CONFIG_BLK_DEV_XIP is not set |
413 | CONFIG_CDROM_PKTCDVD=m | 439 | CONFIG_CDROM_PKTCDVD=m |
414 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 | 440 | CONFIG_CDROM_PKTCDVD_BUFFERS=8 |
415 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set | 441 | # CONFIG_CDROM_PKTCDVD_WCACHE is not set |
@@ -419,16 +445,19 @@ CONFIG_MISC_DEVICES=y | |||
419 | # CONFIG_EEPROM_93CX6 is not set | 445 | # CONFIG_EEPROM_93CX6 is not set |
420 | # CONFIG_SGI_IOC4 is not set | 446 | # CONFIG_SGI_IOC4 is not set |
421 | # CONFIG_TIFM_CORE is not set | 447 | # CONFIG_TIFM_CORE is not set |
448 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
449 | CONFIG_HAVE_IDE=y | ||
422 | CONFIG_IDE=y | 450 | CONFIG_IDE=y |
423 | CONFIG_BLK_DEV_IDE=y | 451 | CONFIG_BLK_DEV_IDE=y |
424 | 452 | ||
425 | # | 453 | # |
426 | # Please see Documentation/ide.txt for help/info on IDE drives | 454 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
427 | # | 455 | # |
428 | # CONFIG_BLK_DEV_IDE_SATA is not set | 456 | # CONFIG_BLK_DEV_IDE_SATA is not set |
429 | CONFIG_BLK_DEV_IDEDISK=y | 457 | CONFIG_BLK_DEV_IDEDISK=y |
430 | # CONFIG_IDEDISK_MULTI_MODE is not set | 458 | # CONFIG_IDEDISK_MULTI_MODE is not set |
431 | CONFIG_BLK_DEV_IDECD=y | 459 | CONFIG_BLK_DEV_IDECD=y |
460 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
432 | # CONFIG_BLK_DEV_IDETAPE is not set | 461 | # CONFIG_BLK_DEV_IDETAPE is not set |
433 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 462 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
434 | # CONFIG_BLK_DEV_IDESCSI is not set | 463 | # CONFIG_BLK_DEV_IDESCSI is not set |
@@ -440,12 +469,12 @@ CONFIG_IDE_PROC_FS=y | |||
440 | # | 469 | # |
441 | CONFIG_IDE_GENERIC=y | 470 | CONFIG_IDE_GENERIC=y |
442 | # CONFIG_BLK_DEV_PLATFORM is not set | 471 | # CONFIG_BLK_DEV_PLATFORM is not set |
472 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
443 | 473 | ||
444 | # | 474 | # |
445 | # PCI IDE chipsets support | 475 | # PCI IDE chipsets support |
446 | # | 476 | # |
447 | CONFIG_BLK_DEV_IDEPCI=y | 477 | CONFIG_BLK_DEV_IDEPCI=y |
448 | # CONFIG_IDEPCI_SHARE_IRQ is not set | ||
449 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 478 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
450 | # CONFIG_BLK_DEV_GENERIC is not set | 479 | # CONFIG_BLK_DEV_GENERIC is not set |
451 | # CONFIG_BLK_DEV_OPTI621 is not set | 480 | # CONFIG_BLK_DEV_OPTI621 is not set |
@@ -478,7 +507,6 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y | |||
478 | CONFIG_BLK_DEV_IDE_PMAC=y | 507 | CONFIG_BLK_DEV_IDE_PMAC=y |
479 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y | 508 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y |
480 | CONFIG_BLK_DEV_IDEDMA_PMAC=y | 509 | CONFIG_BLK_DEV_IDEDMA_PMAC=y |
481 | # CONFIG_IDE_ARM is not set | ||
482 | CONFIG_BLK_DEV_IDEDMA=y | 510 | CONFIG_BLK_DEV_IDEDMA=y |
483 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 511 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
484 | # CONFIG_BLK_DEV_HD is not set | 512 | # CONFIG_BLK_DEV_HD is not set |
@@ -544,6 +572,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
544 | # CONFIG_SCSI_IPS is not set | 572 | # CONFIG_SCSI_IPS is not set |
545 | # CONFIG_SCSI_INITIO is not set | 573 | # CONFIG_SCSI_INITIO is not set |
546 | # CONFIG_SCSI_INIA100 is not set | 574 | # CONFIG_SCSI_INIA100 is not set |
575 | # CONFIG_SCSI_MVSAS is not set | ||
547 | # CONFIG_SCSI_STEX is not set | 576 | # CONFIG_SCSI_STEX is not set |
548 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 577 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
549 | # CONFIG_SCSI_IPR is not set | 578 | # CONFIG_SCSI_IPR is not set |
@@ -596,6 +625,7 @@ CONFIG_SATA_SVW=y | |||
596 | # CONFIG_PATA_MPIIX is not set | 625 | # CONFIG_PATA_MPIIX is not set |
597 | # CONFIG_PATA_OLDPIIX is not set | 626 | # CONFIG_PATA_OLDPIIX is not set |
598 | # CONFIG_PATA_NETCELL is not set | 627 | # CONFIG_PATA_NETCELL is not set |
628 | # CONFIG_PATA_NINJA32 is not set | ||
599 | # CONFIG_PATA_NS87410 is not set | 629 | # CONFIG_PATA_NS87410 is not set |
600 | # CONFIG_PATA_NS87415 is not set | 630 | # CONFIG_PATA_NS87415 is not set |
601 | # CONFIG_PATA_OPTI is not set | 631 | # CONFIG_PATA_OPTI is not set |
@@ -610,6 +640,7 @@ CONFIG_SATA_SVW=y | |||
610 | # CONFIG_PATA_SIS is not set | 640 | # CONFIG_PATA_SIS is not set |
611 | # CONFIG_PATA_VIA is not set | 641 | # CONFIG_PATA_VIA is not set |
612 | # CONFIG_PATA_WINBOND is not set | 642 | # CONFIG_PATA_WINBOND is not set |
643 | # CONFIG_PATA_PLATFORM is not set | ||
613 | CONFIG_MD=y | 644 | CONFIG_MD=y |
614 | CONFIG_BLK_DEV_MD=y | 645 | CONFIG_BLK_DEV_MD=y |
615 | CONFIG_MD_LINEAR=y | 646 | CONFIG_MD_LINEAR=y |
@@ -676,7 +707,6 @@ CONFIG_BONDING=m | |||
676 | # CONFIG_EQUALIZER is not set | 707 | # CONFIG_EQUALIZER is not set |
677 | CONFIG_TUN=m | 708 | CONFIG_TUN=m |
678 | # CONFIG_VETH is not set | 709 | # CONFIG_VETH is not set |
679 | # CONFIG_IP1000 is not set | ||
680 | # CONFIG_ARCNET is not set | 710 | # CONFIG_ARCNET is not set |
681 | # CONFIG_PHYLIB is not set | 711 | # CONFIG_PHYLIB is not set |
682 | CONFIG_NET_ETHERNET=y | 712 | CONFIG_NET_ETHERNET=y |
@@ -701,6 +731,9 @@ CONFIG_E1000=y | |||
701 | # CONFIG_E1000_NAPI is not set | 731 | # CONFIG_E1000_NAPI is not set |
702 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 732 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
703 | # CONFIG_E1000E is not set | 733 | # CONFIG_E1000E is not set |
734 | # CONFIG_E1000E_ENABLED is not set | ||
735 | # CONFIG_IP1000 is not set | ||
736 | # CONFIG_IGB is not set | ||
704 | # CONFIG_NS83820 is not set | 737 | # CONFIG_NS83820 is not set |
705 | # CONFIG_HAMACHI is not set | 738 | # CONFIG_HAMACHI is not set |
706 | # CONFIG_YELLOWFIN is not set | 739 | # CONFIG_YELLOWFIN is not set |
@@ -726,6 +759,7 @@ CONFIG_NETDEV_10000=y | |||
726 | # CONFIG_PASEMI_MAC is not set | 759 | # CONFIG_PASEMI_MAC is not set |
727 | # CONFIG_MLX4_CORE is not set | 760 | # CONFIG_MLX4_CORE is not set |
728 | # CONFIG_TEHUTI is not set | 761 | # CONFIG_TEHUTI is not set |
762 | # CONFIG_BNX2X is not set | ||
729 | CONFIG_TR=y | 763 | CONFIG_TR=y |
730 | CONFIG_IBMOL=y | 764 | CONFIG_IBMOL=y |
731 | # CONFIG_3C359 is not set | 765 | # CONFIG_3C359 is not set |
@@ -771,7 +805,6 @@ CONFIG_PPPOE=m | |||
771 | # CONFIG_SLIP is not set | 805 | # CONFIG_SLIP is not set |
772 | CONFIG_SLHC=m | 806 | CONFIG_SLHC=m |
773 | # CONFIG_NET_FC is not set | 807 | # CONFIG_NET_FC is not set |
774 | # CONFIG_SHAPER is not set | ||
775 | # CONFIG_NETCONSOLE is not set | 808 | # CONFIG_NETCONSOLE is not set |
776 | # CONFIG_NETPOLL is not set | 809 | # CONFIG_NETPOLL is not set |
777 | # CONFIG_NET_POLL_CONTROLLER is not set | 810 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -834,6 +867,7 @@ CONFIG_VT_CONSOLE=y | |||
834 | CONFIG_HW_CONSOLE=y | 867 | CONFIG_HW_CONSOLE=y |
835 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 868 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
836 | # CONFIG_SERIAL_NONSTANDARD is not set | 869 | # CONFIG_SERIAL_NONSTANDARD is not set |
870 | # CONFIG_NOZOMI is not set | ||
837 | 871 | ||
838 | # | 872 | # |
839 | # Serial drivers | 873 | # Serial drivers |
@@ -901,13 +935,12 @@ CONFIG_I2C_POWERMAC=y | |||
901 | # | 935 | # |
902 | # Miscellaneous I2C Chip support | 936 | # Miscellaneous I2C Chip support |
903 | # | 937 | # |
904 | # CONFIG_SENSORS_DS1337 is not set | ||
905 | # CONFIG_SENSORS_DS1374 is not set | ||
906 | # CONFIG_DS1682 is not set | 938 | # CONFIG_DS1682 is not set |
907 | # CONFIG_SENSORS_EEPROM is not set | 939 | # CONFIG_SENSORS_EEPROM is not set |
908 | # CONFIG_SENSORS_PCF8574 is not set | 940 | # CONFIG_SENSORS_PCF8574 is not set |
909 | # CONFIG_SENSORS_PCA9539 is not set | 941 | # CONFIG_PCF8575 is not set |
910 | # CONFIG_SENSORS_PCF8591 is not set | 942 | # CONFIG_SENSORS_PCF8591 is not set |
943 | # CONFIG_TPS65010 is not set | ||
911 | # CONFIG_SENSORS_MAX6875 is not set | 944 | # CONFIG_SENSORS_MAX6875 is not set |
912 | # CONFIG_SENSORS_TSL2550 is not set | 945 | # CONFIG_SENSORS_TSL2550 is not set |
913 | # CONFIG_I2C_DEBUG_CORE is not set | 946 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -923,6 +956,7 @@ CONFIG_I2C_POWERMAC=y | |||
923 | # CONFIG_W1 is not set | 956 | # CONFIG_W1 is not set |
924 | # CONFIG_POWER_SUPPLY is not set | 957 | # CONFIG_POWER_SUPPLY is not set |
925 | # CONFIG_HWMON is not set | 958 | # CONFIG_HWMON is not set |
959 | # CONFIG_THERMAL is not set | ||
926 | # CONFIG_WATCHDOG is not set | 960 | # CONFIG_WATCHDOG is not set |
927 | 961 | ||
928 | # | 962 | # |
@@ -1083,6 +1117,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1083 | # CONFIG_SND_BT87X is not set | 1117 | # CONFIG_SND_BT87X is not set |
1084 | # CONFIG_SND_CA0106 is not set | 1118 | # CONFIG_SND_CA0106 is not set |
1085 | # CONFIG_SND_CMIPCI is not set | 1119 | # CONFIG_SND_CMIPCI is not set |
1120 | # CONFIG_SND_OXYGEN is not set | ||
1086 | # CONFIG_SND_CS4281 is not set | 1121 | # CONFIG_SND_CS4281 is not set |
1087 | # CONFIG_SND_CS46XX is not set | 1122 | # CONFIG_SND_CS46XX is not set |
1088 | # CONFIG_SND_CS5530 is not set | 1123 | # CONFIG_SND_CS5530 is not set |
@@ -1108,6 +1143,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1108 | # CONFIG_SND_HDA_INTEL is not set | 1143 | # CONFIG_SND_HDA_INTEL is not set |
1109 | # CONFIG_SND_HDSP is not set | 1144 | # CONFIG_SND_HDSP is not set |
1110 | # CONFIG_SND_HDSPM is not set | 1145 | # CONFIG_SND_HDSPM is not set |
1146 | # CONFIG_SND_HIFIER is not set | ||
1111 | # CONFIG_SND_ICE1712 is not set | 1147 | # CONFIG_SND_ICE1712 is not set |
1112 | # CONFIG_SND_ICE1724 is not set | 1148 | # CONFIG_SND_ICE1724 is not set |
1113 | # CONFIG_SND_INTEL8X0 is not set | 1149 | # CONFIG_SND_INTEL8X0 is not set |
@@ -1125,6 +1161,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1125 | # CONFIG_SND_TRIDENT is not set | 1161 | # CONFIG_SND_TRIDENT is not set |
1126 | # CONFIG_SND_VIA82XX is not set | 1162 | # CONFIG_SND_VIA82XX is not set |
1127 | # CONFIG_SND_VIA82XX_MODEM is not set | 1163 | # CONFIG_SND_VIA82XX_MODEM is not set |
1164 | # CONFIG_SND_VIRTUOSO is not set | ||
1128 | # CONFIG_SND_VX222 is not set | 1165 | # CONFIG_SND_VX222 is not set |
1129 | # CONFIG_SND_YMFPCI is not set | 1166 | # CONFIG_SND_YMFPCI is not set |
1130 | 1167 | ||
@@ -1166,6 +1203,10 @@ CONFIG_SND_USB_AUDIO=m | |||
1166 | # | 1203 | # |
1167 | 1204 | ||
1168 | # | 1205 | # |
1206 | # ALSA SoC audio for Freescale SOCs | ||
1207 | # | ||
1208 | |||
1209 | # | ||
1169 | # Open Sound System | 1210 | # Open Sound System |
1170 | # | 1211 | # |
1171 | # CONFIG_SOUND_PRIME is not set | 1212 | # CONFIG_SOUND_PRIME is not set |
@@ -1192,6 +1233,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1192 | CONFIG_USB_ARCH_HAS_EHCI=y | 1233 | CONFIG_USB_ARCH_HAS_EHCI=y |
1193 | CONFIG_USB=y | 1234 | CONFIG_USB=y |
1194 | # CONFIG_USB_DEBUG is not set | 1235 | # CONFIG_USB_DEBUG is not set |
1236 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1195 | 1237 | ||
1196 | # | 1238 | # |
1197 | # Miscellaneous USB options | 1239 | # Miscellaneous USB options |
@@ -1205,9 +1247,9 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1205 | # USB Host Controller Drivers | 1247 | # USB Host Controller Drivers |
1206 | # | 1248 | # |
1207 | CONFIG_USB_EHCI_HCD=y | 1249 | CONFIG_USB_EHCI_HCD=y |
1208 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1209 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1250 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1210 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1251 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1252 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1211 | # CONFIG_USB_ISP116X_HCD is not set | 1253 | # CONFIG_USB_ISP116X_HCD is not set |
1212 | CONFIG_USB_OHCI_HCD=y | 1254 | CONFIG_USB_OHCI_HCD=y |
1213 | CONFIG_USB_OHCI_HCD_PPC_OF=y | 1255 | CONFIG_USB_OHCI_HCD_PPC_OF=y |
@@ -1259,11 +1301,8 @@ CONFIG_USB_MON=y | |||
1259 | # | 1301 | # |
1260 | # USB port drivers | 1302 | # USB port drivers |
1261 | # | 1303 | # |
1262 | |||
1263 | # | ||
1264 | # USB Serial Converter support | ||
1265 | # | ||
1266 | CONFIG_USB_SERIAL=m | 1304 | CONFIG_USB_SERIAL=m |
1305 | CONFIG_USB_EZUSB=y | ||
1267 | CONFIG_USB_SERIAL_GENERIC=y | 1306 | CONFIG_USB_SERIAL_GENERIC=y |
1268 | # CONFIG_USB_SERIAL_AIRCABLE is not set | 1307 | # CONFIG_USB_SERIAL_AIRCABLE is not set |
1269 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 1308 | # CONFIG_USB_SERIAL_AIRPRIME is not set |
@@ -1284,6 +1323,7 @@ CONFIG_USB_SERIAL_EDGEPORT=m | |||
1284 | CONFIG_USB_SERIAL_EDGEPORT_TI=m | 1323 | CONFIG_USB_SERIAL_EDGEPORT_TI=m |
1285 | CONFIG_USB_SERIAL_GARMIN=m | 1324 | CONFIG_USB_SERIAL_GARMIN=m |
1286 | CONFIG_USB_SERIAL_IPW=m | 1325 | CONFIG_USB_SERIAL_IPW=m |
1326 | # CONFIG_USB_SERIAL_IUU is not set | ||
1287 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | 1327 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m |
1288 | CONFIG_USB_SERIAL_KEYSPAN=m | 1328 | CONFIG_USB_SERIAL_KEYSPAN=m |
1289 | CONFIG_USB_SERIAL_KEYSPAN_MPR=y | 1329 | CONFIG_USB_SERIAL_KEYSPAN_MPR=y |
@@ -1316,7 +1356,6 @@ CONFIG_USB_SERIAL_XIRCOM=m | |||
1316 | # CONFIG_USB_SERIAL_OPTION is not set | 1356 | # CONFIG_USB_SERIAL_OPTION is not set |
1317 | CONFIG_USB_SERIAL_OMNINET=m | 1357 | CONFIG_USB_SERIAL_OMNINET=m |
1318 | # CONFIG_USB_SERIAL_DEBUG is not set | 1358 | # CONFIG_USB_SERIAL_DEBUG is not set |
1319 | CONFIG_USB_EZUSB=y | ||
1320 | 1359 | ||
1321 | # | 1360 | # |
1322 | # USB Miscellaneous drivers | 1361 | # USB Miscellaneous drivers |
@@ -1341,20 +1380,14 @@ CONFIG_USB_APPLEDISPLAY=m | |||
1341 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1380 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1342 | # CONFIG_USB_IOWARRIOR is not set | 1381 | # CONFIG_USB_IOWARRIOR is not set |
1343 | # CONFIG_USB_TEST is not set | 1382 | # CONFIG_USB_TEST is not set |
1344 | |||
1345 | # | ||
1346 | # USB DSL modem support | ||
1347 | # | ||
1348 | |||
1349 | # | ||
1350 | # USB Gadget Support | ||
1351 | # | ||
1352 | # CONFIG_USB_GADGET is not set | 1383 | # CONFIG_USB_GADGET is not set |
1353 | # CONFIG_MMC is not set | 1384 | # CONFIG_MMC is not set |
1385 | # CONFIG_MEMSTICK is not set | ||
1354 | # CONFIG_NEW_LEDS is not set | 1386 | # CONFIG_NEW_LEDS is not set |
1355 | # CONFIG_INFINIBAND is not set | 1387 | # CONFIG_INFINIBAND is not set |
1356 | # CONFIG_EDAC is not set | 1388 | # CONFIG_EDAC is not set |
1357 | # CONFIG_RTC_CLASS is not set | 1389 | # CONFIG_RTC_CLASS is not set |
1390 | # CONFIG_DMADEVICES is not set | ||
1358 | 1391 | ||
1359 | # | 1392 | # |
1360 | # Userspace I/O | 1393 | # Userspace I/O |
@@ -1393,12 +1426,10 @@ CONFIG_XFS_POSIX_ACL=y | |||
1393 | # CONFIG_XFS_RT is not set | 1426 | # CONFIG_XFS_RT is not set |
1394 | # CONFIG_GFS2_FS is not set | 1427 | # CONFIG_GFS2_FS is not set |
1395 | # CONFIG_OCFS2_FS is not set | 1428 | # CONFIG_OCFS2_FS is not set |
1396 | # CONFIG_MINIX_FS is not set | 1429 | CONFIG_DNOTIFY=y |
1397 | # CONFIG_ROMFS_FS is not set | ||
1398 | CONFIG_INOTIFY=y | 1430 | CONFIG_INOTIFY=y |
1399 | CONFIG_INOTIFY_USER=y | 1431 | CONFIG_INOTIFY_USER=y |
1400 | # CONFIG_QUOTA is not set | 1432 | # CONFIG_QUOTA is not set |
1401 | CONFIG_DNOTIFY=y | ||
1402 | CONFIG_AUTOFS_FS=m | 1433 | CONFIG_AUTOFS_FS=m |
1403 | # CONFIG_AUTOFS4_FS is not set | 1434 | # CONFIG_AUTOFS4_FS is not set |
1404 | # CONFIG_FUSE_FS is not set | 1435 | # CONFIG_FUSE_FS is not set |
@@ -1447,8 +1478,10 @@ CONFIG_HFSPLUS_FS=m | |||
1447 | # CONFIG_EFS_FS is not set | 1478 | # CONFIG_EFS_FS is not set |
1448 | CONFIG_CRAMFS=y | 1479 | CONFIG_CRAMFS=y |
1449 | # CONFIG_VXFS_FS is not set | 1480 | # CONFIG_VXFS_FS is not set |
1481 | # CONFIG_MINIX_FS is not set | ||
1450 | # CONFIG_HPFS_FS is not set | 1482 | # CONFIG_HPFS_FS is not set |
1451 | # CONFIG_QNX4FS_FS is not set | 1483 | # CONFIG_QNX4FS_FS is not set |
1484 | # CONFIG_ROMFS_FS is not set | ||
1452 | # CONFIG_SYSV_FS is not set | 1485 | # CONFIG_SYSV_FS is not set |
1453 | # CONFIG_UFS_FS is not set | 1486 | # CONFIG_UFS_FS is not set |
1454 | CONFIG_NETWORK_FILESYSTEMS=y | 1487 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1546,7 +1579,6 @@ CONFIG_NLS_ISO8859_15=y | |||
1546 | # CONFIG_NLS_KOI8_U is not set | 1579 | # CONFIG_NLS_KOI8_U is not set |
1547 | CONFIG_NLS_UTF8=y | 1580 | CONFIG_NLS_UTF8=y |
1548 | # CONFIG_DLM is not set | 1581 | # CONFIG_DLM is not set |
1549 | # CONFIG_UCC_SLOW is not set | ||
1550 | 1582 | ||
1551 | # | 1583 | # |
1552 | # Library routines | 1584 | # Library routines |
@@ -1564,11 +1596,6 @@ CONFIG_PLIST=y | |||
1564 | CONFIG_HAS_IOMEM=y | 1596 | CONFIG_HAS_IOMEM=y |
1565 | CONFIG_HAS_IOPORT=y | 1597 | CONFIG_HAS_IOPORT=y |
1566 | CONFIG_HAS_DMA=y | 1598 | CONFIG_HAS_DMA=y |
1567 | CONFIG_INSTRUMENTATION=y | ||
1568 | CONFIG_PROFILING=y | ||
1569 | CONFIG_OPROFILE=y | ||
1570 | # CONFIG_KPROBES is not set | ||
1571 | # CONFIG_MARKERS is not set | ||
1572 | 1599 | ||
1573 | # | 1600 | # |
1574 | # Kernel hacking | 1601 | # Kernel hacking |
@@ -1587,6 +1614,7 @@ CONFIG_SCHED_DEBUG=y | |||
1587 | # CONFIG_SCHEDSTATS is not set | 1614 | # CONFIG_SCHEDSTATS is not set |
1588 | # CONFIG_TIMER_STATS is not set | 1615 | # CONFIG_TIMER_STATS is not set |
1589 | # CONFIG_SLUB_DEBUG_ON is not set | 1616 | # CONFIG_SLUB_DEBUG_ON is not set |
1617 | # CONFIG_SLUB_STATS is not set | ||
1590 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1618 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1591 | # CONFIG_RT_MUTEX_TESTER is not set | 1619 | # CONFIG_RT_MUTEX_TESTER is not set |
1592 | # CONFIG_DEBUG_SPINLOCK is not set | 1620 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1599,9 +1627,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1599 | # CONFIG_DEBUG_VM is not set | 1627 | # CONFIG_DEBUG_VM is not set |
1600 | # CONFIG_DEBUG_LIST is not set | 1628 | # CONFIG_DEBUG_LIST is not set |
1601 | # CONFIG_DEBUG_SG is not set | 1629 | # CONFIG_DEBUG_SG is not set |
1602 | CONFIG_FORCED_INLINING=y | ||
1603 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1630 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1604 | # CONFIG_RCU_TORTURE_TEST is not set | 1631 | # CONFIG_RCU_TORTURE_TEST is not set |
1632 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1605 | # CONFIG_FAULT_INJECTION is not set | 1633 | # CONFIG_FAULT_INJECTION is not set |
1606 | # CONFIG_SAMPLES is not set | 1634 | # CONFIG_SAMPLES is not set |
1607 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1635 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1621,7 +1649,9 @@ CONFIG_BOOTX_TEXT=y | |||
1621 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1649 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1622 | CONFIG_CRYPTO=y | 1650 | CONFIG_CRYPTO=y |
1623 | CONFIG_CRYPTO_ALGAPI=y | 1651 | CONFIG_CRYPTO_ALGAPI=y |
1652 | CONFIG_CRYPTO_AEAD=m | ||
1624 | CONFIG_CRYPTO_BLKCIPHER=y | 1653 | CONFIG_CRYPTO_BLKCIPHER=y |
1654 | # CONFIG_CRYPTO_SEQIV is not set | ||
1625 | CONFIG_CRYPTO_HASH=y | 1655 | CONFIG_CRYPTO_HASH=y |
1626 | CONFIG_CRYPTO_MANAGER=y | 1656 | CONFIG_CRYPTO_MANAGER=y |
1627 | CONFIG_CRYPTO_HMAC=y | 1657 | CONFIG_CRYPTO_HMAC=y |
@@ -1640,6 +1670,9 @@ CONFIG_CRYPTO_CBC=y | |||
1640 | CONFIG_CRYPTO_PCBC=m | 1670 | CONFIG_CRYPTO_PCBC=m |
1641 | # CONFIG_CRYPTO_LRW is not set | 1671 | # CONFIG_CRYPTO_LRW is not set |
1642 | # CONFIG_CRYPTO_XTS is not set | 1672 | # CONFIG_CRYPTO_XTS is not set |
1673 | # CONFIG_CRYPTO_CTR is not set | ||
1674 | # CONFIG_CRYPTO_GCM is not set | ||
1675 | # CONFIG_CRYPTO_CCM is not set | ||
1643 | # CONFIG_CRYPTO_CRYPTD is not set | 1676 | # CONFIG_CRYPTO_CRYPTD is not set |
1644 | CONFIG_CRYPTO_DES=y | 1677 | CONFIG_CRYPTO_DES=y |
1645 | # CONFIG_CRYPTO_FCRYPT is not set | 1678 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1655,11 +1688,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1655 | CONFIG_CRYPTO_KHAZAD=m | 1688 | CONFIG_CRYPTO_KHAZAD=m |
1656 | CONFIG_CRYPTO_ANUBIS=m | 1689 | CONFIG_CRYPTO_ANUBIS=m |
1657 | # CONFIG_CRYPTO_SEED is not set | 1690 | # CONFIG_CRYPTO_SEED is not set |
1691 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1658 | CONFIG_CRYPTO_DEFLATE=m | 1692 | CONFIG_CRYPTO_DEFLATE=m |
1659 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1693 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1660 | CONFIG_CRYPTO_CRC32C=m | 1694 | CONFIG_CRYPTO_CRC32C=m |
1661 | # CONFIG_CRYPTO_CAMELLIA is not set | 1695 | # CONFIG_CRYPTO_CAMELLIA is not set |
1662 | CONFIG_CRYPTO_TEST=m | 1696 | CONFIG_CRYPTO_TEST=m |
1663 | # CONFIG_CRYPTO_AUTHENC is not set | 1697 | CONFIG_CRYPTO_AUTHENC=m |
1698 | # CONFIG_CRYPTO_LZO is not set | ||
1664 | # CONFIG_CRYPTO_HW is not set | 1699 | # CONFIG_CRYPTO_HW is not set |
1665 | # CONFIG_PPC_CLOCK is not set | 1700 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/iseries_defconfig b/arch/powerpc/configs/iseries_defconfig index 4a87745c7803..8d9a84f50157 100644 --- a/arch/powerpc/configs/iseries_defconfig +++ b/arch/powerpc/configs/iseries_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc3 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Wed Nov 21 11:19:59 2007 | 4 | # Thu Mar 20 10:43:46 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -68,8 +69,6 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
68 | CONFIG_POSIX_MQUEUE=y | 69 | CONFIG_POSIX_MQUEUE=y |
69 | # CONFIG_BSD_PROCESS_ACCT is not set | 70 | # CONFIG_BSD_PROCESS_ACCT is not set |
70 | # CONFIG_TASKSTATS is not set | 71 | # CONFIG_TASKSTATS is not set |
71 | # CONFIG_USER_NS is not set | ||
72 | # CONFIG_PID_NS is not set | ||
73 | CONFIG_AUDIT=y | 72 | CONFIG_AUDIT=y |
74 | CONFIG_AUDITSYSCALL=y | 73 | CONFIG_AUDITSYSCALL=y |
75 | CONFIG_AUDIT_TREE=y | 74 | CONFIG_AUDIT_TREE=y |
@@ -77,11 +76,17 @@ CONFIG_IKCONFIG=y | |||
77 | CONFIG_IKCONFIG_PROC=y | 76 | CONFIG_IKCONFIG_PROC=y |
78 | CONFIG_LOG_BUF_SHIFT=17 | 77 | CONFIG_LOG_BUF_SHIFT=17 |
79 | # CONFIG_CGROUPS is not set | 78 | # CONFIG_CGROUPS is not set |
80 | CONFIG_FAIR_GROUP_SCHED=y | 79 | # CONFIG_GROUP_SCHED is not set |
81 | CONFIG_FAIR_USER_SCHED=y | 80 | # CONFIG_USER_SCHED is not set |
82 | # CONFIG_FAIR_CGROUP_SCHED is not set | 81 | # CONFIG_CGROUP_SCHED is not set |
83 | CONFIG_SYSFS_DEPRECATED=y | 82 | CONFIG_SYSFS_DEPRECATED=y |
83 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
84 | # CONFIG_RELAY is not set | 84 | # CONFIG_RELAY is not set |
85 | CONFIG_NAMESPACES=y | ||
86 | # CONFIG_UTS_NS is not set | ||
87 | # CONFIG_IPC_NS is not set | ||
88 | # CONFIG_USER_NS is not set | ||
89 | # CONFIG_PID_NS is not set | ||
85 | CONFIG_BLK_DEV_INITRD=y | 90 | CONFIG_BLK_DEV_INITRD=y |
86 | CONFIG_INITRAMFS_SOURCE="" | 91 | CONFIG_INITRAMFS_SOURCE="" |
87 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 92 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -95,11 +100,13 @@ CONFIG_HOTPLUG=y | |||
95 | CONFIG_PRINTK=y | 100 | CONFIG_PRINTK=y |
96 | CONFIG_BUG=y | 101 | CONFIG_BUG=y |
97 | CONFIG_ELF_CORE=y | 102 | CONFIG_ELF_CORE=y |
103 | # CONFIG_COMPAT_BRK is not set | ||
98 | CONFIG_BASE_FULL=y | 104 | CONFIG_BASE_FULL=y |
99 | CONFIG_FUTEX=y | 105 | CONFIG_FUTEX=y |
100 | CONFIG_ANON_INODES=y | 106 | CONFIG_ANON_INODES=y |
101 | CONFIG_EPOLL=y | 107 | CONFIG_EPOLL=y |
102 | CONFIG_SIGNALFD=y | 108 | CONFIG_SIGNALFD=y |
109 | CONFIG_TIMERFD=y | ||
103 | CONFIG_EVENTFD=y | 110 | CONFIG_EVENTFD=y |
104 | CONFIG_SHMEM=y | 111 | CONFIG_SHMEM=y |
105 | CONFIG_VM_EVENT_COUNTERS=y | 112 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -107,6 +114,14 @@ CONFIG_SLUB_DEBUG=y | |||
107 | # CONFIG_SLAB is not set | 114 | # CONFIG_SLAB is not set |
108 | CONFIG_SLUB=y | 115 | CONFIG_SLUB=y |
109 | # CONFIG_SLOB is not set | 116 | # CONFIG_SLOB is not set |
117 | # CONFIG_PROFILING is not set | ||
118 | # CONFIG_MARKERS is not set | ||
119 | CONFIG_HAVE_OPROFILE=y | ||
120 | # CONFIG_KPROBES is not set | ||
121 | CONFIG_HAVE_KPROBES=y | ||
122 | CONFIG_HAVE_KRETPROBES=y | ||
123 | CONFIG_PROC_PAGE_MONITOR=y | ||
124 | CONFIG_SLABINFO=y | ||
110 | CONFIG_RT_MUTEXES=y | 125 | CONFIG_RT_MUTEXES=y |
111 | # CONFIG_TINY_SHMEM is not set | 126 | # CONFIG_TINY_SHMEM is not set |
112 | CONFIG_BASE_SMALL=0 | 127 | CONFIG_BASE_SMALL=0 |
@@ -134,6 +149,7 @@ CONFIG_DEFAULT_AS=y | |||
134 | # CONFIG_DEFAULT_CFQ is not set | 149 | # CONFIG_DEFAULT_CFQ is not set |
135 | # CONFIG_DEFAULT_NOOP is not set | 150 | # CONFIG_DEFAULT_NOOP is not set |
136 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 151 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
152 | CONFIG_CLASSIC_RCU=y | ||
137 | 153 | ||
138 | # | 154 | # |
139 | # Platform support | 155 | # Platform support |
@@ -153,8 +169,8 @@ CONFIG_VIODASD=y | |||
153 | CONFIG_VIOCD=m | 169 | CONFIG_VIOCD=m |
154 | CONFIG_VIOTAPE=m | 170 | CONFIG_VIOTAPE=m |
155 | CONFIG_VIOPATH=y | 171 | CONFIG_VIOPATH=y |
156 | # CONFIG_PPC_MPC52xx is not set | 172 | # CONFIG_PPC_MPC512x is not set |
157 | # CONFIG_PPC_MPC5200 is not set | 173 | # CONFIG_PPC_MPC5121 is not set |
158 | # CONFIG_PPC_PMAC is not set | 174 | # CONFIG_PPC_PMAC is not set |
159 | # CONFIG_PPC_MAPLE is not set | 175 | # CONFIG_PPC_MAPLE is not set |
160 | # CONFIG_PPC_PASEMI is not set | 176 | # CONFIG_PPC_PASEMI is not set |
@@ -164,6 +180,7 @@ CONFIG_VIOPATH=y | |||
164 | # CONFIG_PPC_CELL_NATIVE is not set | 180 | # CONFIG_PPC_CELL_NATIVE is not set |
165 | # CONFIG_PPC_IBM_CELL_BLADE is not set | 181 | # CONFIG_PPC_IBM_CELL_BLADE is not set |
166 | # CONFIG_PQ2ADS is not set | 182 | # CONFIG_PQ2ADS is not set |
183 | # CONFIG_IPIC is not set | ||
167 | # CONFIG_MPIC is not set | 184 | # CONFIG_MPIC is not set |
168 | # CONFIG_MPIC_WEIRD is not set | 185 | # CONFIG_MPIC_WEIRD is not set |
169 | # CONFIG_PPC_I8259 is not set | 186 | # CONFIG_PPC_I8259 is not set |
@@ -176,7 +193,6 @@ CONFIG_IBMVIO=y | |||
176 | CONFIG_PPC_INDIRECT_IO=y | 193 | CONFIG_PPC_INDIRECT_IO=y |
177 | CONFIG_GENERIC_IOMAP=y | 194 | CONFIG_GENERIC_IOMAP=y |
178 | # CONFIG_CPU_FREQ is not set | 195 | # CONFIG_CPU_FREQ is not set |
179 | # CONFIG_CPM2 is not set | ||
180 | # CONFIG_FSL_ULI1575 is not set | 196 | # CONFIG_FSL_ULI1575 is not set |
181 | 197 | ||
182 | # | 198 | # |
@@ -191,15 +207,19 @@ CONFIG_HZ_250=y | |||
191 | # CONFIG_HZ_300 is not set | 207 | # CONFIG_HZ_300 is not set |
192 | # CONFIG_HZ_1000 is not set | 208 | # CONFIG_HZ_1000 is not set |
193 | CONFIG_HZ=250 | 209 | CONFIG_HZ=250 |
210 | # CONFIG_SCHED_HRTICK is not set | ||
194 | CONFIG_PREEMPT_NONE=y | 211 | CONFIG_PREEMPT_NONE=y |
195 | # CONFIG_PREEMPT_VOLUNTARY is not set | 212 | # CONFIG_PREEMPT_VOLUNTARY is not set |
196 | # CONFIG_PREEMPT is not set | 213 | # CONFIG_PREEMPT is not set |
197 | # CONFIG_PREEMPT_BKL is not set | ||
198 | CONFIG_BINFMT_ELF=y | 214 | CONFIG_BINFMT_ELF=y |
215 | CONFIG_COMPAT_BINFMT_ELF=y | ||
199 | # CONFIG_BINFMT_MISC is not set | 216 | # CONFIG_BINFMT_MISC is not set |
200 | CONFIG_FORCE_MAX_ZONEORDER=13 | 217 | CONFIG_FORCE_MAX_ZONEORDER=13 |
201 | CONFIG_IOMMU_VMERGE=y | 218 | CONFIG_IOMMU_VMERGE=y |
219 | CONFIG_IOMMU_HELPER=y | ||
202 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 220 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
221 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
222 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
203 | # CONFIG_KEXEC is not set | 223 | # CONFIG_KEXEC is not set |
204 | # CONFIG_CRASH_DUMP is not set | 224 | # CONFIG_CRASH_DUMP is not set |
205 | CONFIG_IRQ_ALL_CPUS=y | 225 | CONFIG_IRQ_ALL_CPUS=y |
@@ -227,7 +247,6 @@ CONFIG_PROC_DEVICETREE=y | |||
227 | # CONFIG_CMDLINE_BOOL is not set | 247 | # CONFIG_CMDLINE_BOOL is not set |
228 | # CONFIG_PM is not set | 248 | # CONFIG_PM is not set |
229 | CONFIG_SECCOMP=y | 249 | CONFIG_SECCOMP=y |
230 | # CONFIG_WANT_DEVICE_TREE is not set | ||
231 | CONFIG_ISA_DMA_API=y | 250 | CONFIG_ISA_DMA_API=y |
232 | 251 | ||
233 | # | 252 | # |
@@ -263,6 +282,7 @@ CONFIG_XFRM=y | |||
263 | CONFIG_XFRM_USER=m | 282 | CONFIG_XFRM_USER=m |
264 | CONFIG_XFRM_SUB_POLICY=y | 283 | CONFIG_XFRM_SUB_POLICY=y |
265 | # CONFIG_XFRM_MIGRATE is not set | 284 | # CONFIG_XFRM_MIGRATE is not set |
285 | # CONFIG_XFRM_STATISTICS is not set | ||
266 | CONFIG_NET_KEY=m | 286 | CONFIG_NET_KEY=m |
267 | # CONFIG_NET_KEY_MIGRATE is not set | 287 | # CONFIG_NET_KEY_MIGRATE is not set |
268 | CONFIG_INET=y | 288 | CONFIG_INET=y |
@@ -297,12 +317,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
297 | # CONFIG_NETWORK_SECMARK is not set | 317 | # CONFIG_NETWORK_SECMARK is not set |
298 | CONFIG_NETFILTER=y | 318 | CONFIG_NETFILTER=y |
299 | # CONFIG_NETFILTER_DEBUG is not set | 319 | # CONFIG_NETFILTER_DEBUG is not set |
320 | CONFIG_NETFILTER_ADVANCED=y | ||
300 | 321 | ||
301 | # | 322 | # |
302 | # Core Netfilter Configuration | 323 | # Core Netfilter Configuration |
303 | # | 324 | # |
304 | # CONFIG_NETFILTER_NETLINK is not set | 325 | CONFIG_NETFILTER_NETLINK=m |
305 | CONFIG_NF_CONNTRACK_ENABLED=m | 326 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
327 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
306 | CONFIG_NF_CONNTRACK=m | 328 | CONFIG_NF_CONNTRACK=m |
307 | # CONFIG_NF_CT_ACCT is not set | 329 | # CONFIG_NF_CT_ACCT is not set |
308 | CONFIG_NF_CONNTRACK_MARK=y | 330 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -318,6 +340,7 @@ CONFIG_NF_CONNTRACK_IRC=m | |||
318 | # CONFIG_NF_CONNTRACK_SANE is not set | 340 | # CONFIG_NF_CONNTRACK_SANE is not set |
319 | # CONFIG_NF_CONNTRACK_SIP is not set | 341 | # CONFIG_NF_CONNTRACK_SIP is not set |
320 | CONFIG_NF_CONNTRACK_TFTP=m | 342 | CONFIG_NF_CONNTRACK_TFTP=m |
343 | CONFIG_NF_CT_NETLINK=m | ||
321 | CONFIG_NETFILTER_XTABLES=m | 344 | CONFIG_NETFILTER_XTABLES=m |
322 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 345 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
323 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m | 346 | CONFIG_NETFILTER_XT_TARGET_CONNMARK=m |
@@ -326,8 +349,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
326 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 349 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
327 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set | 350 | # CONFIG_NETFILTER_XT_TARGET_NFLOG is not set |
328 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set | 351 | # CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set |
352 | CONFIG_NETFILTER_XT_TARGET_RATEEST=m | ||
329 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set | 353 | # CONFIG_NETFILTER_XT_TARGET_TRACE is not set |
330 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set | 354 | # CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set |
355 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m | ||
331 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 356 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
332 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set | 357 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set |
333 | # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set | 358 | # CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set |
@@ -337,14 +362,17 @@ CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m | |||
337 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 362 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
338 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set | 363 | # CONFIG_NETFILTER_XT_MATCH_ESP is not set |
339 | # CONFIG_NETFILTER_XT_MATCH_HELPER is not set | 364 | # CONFIG_NETFILTER_XT_MATCH_HELPER is not set |
365 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | ||
340 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 366 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
341 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 367 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
342 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 368 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
343 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 369 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
370 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | ||
344 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set | 371 | # CONFIG_NETFILTER_XT_MATCH_POLICY is not set |
345 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set | 372 | # CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set |
346 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 373 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
347 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | 374 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
375 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | ||
348 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 376 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
349 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 377 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
350 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set | 378 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set |
@@ -362,13 +390,10 @@ CONFIG_NF_CONNTRACK_IPV4=m | |||
362 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | 390 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y |
363 | CONFIG_IP_NF_QUEUE=m | 391 | CONFIG_IP_NF_QUEUE=m |
364 | CONFIG_IP_NF_IPTABLES=m | 392 | CONFIG_IP_NF_IPTABLES=m |
365 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
366 | CONFIG_IP_NF_MATCH_TOS=m | ||
367 | CONFIG_IP_NF_MATCH_RECENT=m | 393 | CONFIG_IP_NF_MATCH_RECENT=m |
368 | CONFIG_IP_NF_MATCH_ECN=m | 394 | CONFIG_IP_NF_MATCH_ECN=m |
369 | # CONFIG_IP_NF_MATCH_AH is not set | 395 | # CONFIG_IP_NF_MATCH_AH is not set |
370 | CONFIG_IP_NF_MATCH_TTL=m | 396 | CONFIG_IP_NF_MATCH_TTL=m |
371 | CONFIG_IP_NF_MATCH_OWNER=m | ||
372 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 397 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
373 | CONFIG_IP_NF_FILTER=m | 398 | CONFIG_IP_NF_FILTER=m |
374 | CONFIG_IP_NF_TARGET_REJECT=m | 399 | CONFIG_IP_NF_TARGET_REJECT=m |
@@ -379,7 +404,6 @@ CONFIG_NF_NAT_NEEDED=y | |||
379 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 404 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
380 | CONFIG_IP_NF_TARGET_REDIRECT=m | 405 | CONFIG_IP_NF_TARGET_REDIRECT=m |
381 | CONFIG_IP_NF_TARGET_NETMAP=m | 406 | CONFIG_IP_NF_TARGET_NETMAP=m |
382 | CONFIG_IP_NF_TARGET_SAME=m | ||
383 | # CONFIG_NF_NAT_SNMP_BASIC is not set | 407 | # CONFIG_NF_NAT_SNMP_BASIC is not set |
384 | CONFIG_NF_NAT_FTP=m | 408 | CONFIG_NF_NAT_FTP=m |
385 | CONFIG_NF_NAT_IRC=m | 409 | CONFIG_NF_NAT_IRC=m |
@@ -389,7 +413,6 @@ CONFIG_NF_NAT_TFTP=m | |||
389 | # CONFIG_NF_NAT_H323 is not set | 413 | # CONFIG_NF_NAT_H323 is not set |
390 | # CONFIG_NF_NAT_SIP is not set | 414 | # CONFIG_NF_NAT_SIP is not set |
391 | CONFIG_IP_NF_MANGLE=m | 415 | CONFIG_IP_NF_MANGLE=m |
392 | CONFIG_IP_NF_TARGET_TOS=m | ||
393 | CONFIG_IP_NF_TARGET_ECN=m | 416 | CONFIG_IP_NF_TARGET_ECN=m |
394 | CONFIG_IP_NF_TARGET_TTL=m | 417 | CONFIG_IP_NF_TARGET_TTL=m |
395 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 418 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
@@ -425,6 +448,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
425 | # | 448 | # |
426 | # CONFIG_NET_PKTGEN is not set | 449 | # CONFIG_NET_PKTGEN is not set |
427 | # CONFIG_HAMRADIO is not set | 450 | # CONFIG_HAMRADIO is not set |
451 | # CONFIG_CAN is not set | ||
428 | # CONFIG_IRDA is not set | 452 | # CONFIG_IRDA is not set |
429 | # CONFIG_BT is not set | 453 | # CONFIG_BT is not set |
430 | # CONFIG_AF_RXRPC is not set | 454 | # CONFIG_AF_RXRPC is not set |
@@ -470,7 +494,7 @@ CONFIG_BLK_DEV_NBD=m | |||
470 | CONFIG_BLK_DEV_RAM=y | 494 | CONFIG_BLK_DEV_RAM=y |
471 | CONFIG_BLK_DEV_RAM_COUNT=16 | 495 | CONFIG_BLK_DEV_RAM_COUNT=16 |
472 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 496 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
473 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 497 | # CONFIG_BLK_DEV_XIP is not set |
474 | # CONFIG_CDROM_PKTCDVD is not set | 498 | # CONFIG_CDROM_PKTCDVD is not set |
475 | # CONFIG_ATA_OVER_ETH is not set | 499 | # CONFIG_ATA_OVER_ETH is not set |
476 | CONFIG_MISC_DEVICES=y | 500 | CONFIG_MISC_DEVICES=y |
@@ -478,6 +502,8 @@ CONFIG_MISC_DEVICES=y | |||
478 | # CONFIG_EEPROM_93CX6 is not set | 502 | # CONFIG_EEPROM_93CX6 is not set |
479 | # CONFIG_SGI_IOC4 is not set | 503 | # CONFIG_SGI_IOC4 is not set |
480 | # CONFIG_TIFM_CORE is not set | 504 | # CONFIG_TIFM_CORE is not set |
505 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
506 | CONFIG_HAVE_IDE=y | ||
481 | # CONFIG_IDE is not set | 507 | # CONFIG_IDE is not set |
482 | 508 | ||
483 | # | 509 | # |
@@ -518,6 +544,7 @@ CONFIG_SCSI_FC_ATTRS=y | |||
518 | # CONFIG_SCSI_ISCSI_ATTRS is not set | 544 | # CONFIG_SCSI_ISCSI_ATTRS is not set |
519 | CONFIG_SCSI_SAS_ATTRS=m | 545 | CONFIG_SCSI_SAS_ATTRS=m |
520 | CONFIG_SCSI_SAS_LIBSAS=m | 546 | CONFIG_SCSI_SAS_LIBSAS=m |
547 | CONFIG_SCSI_SAS_HOST_SMP=y | ||
521 | CONFIG_SCSI_SAS_LIBSAS_DEBUG=y | 548 | CONFIG_SCSI_SAS_LIBSAS_DEBUG=y |
522 | CONFIG_SCSI_SRP_ATTRS=m | 549 | CONFIG_SCSI_SRP_ATTRS=m |
523 | CONFIG_SCSI_LOWLEVEL=y | 550 | CONFIG_SCSI_LOWLEVEL=y |
@@ -543,6 +570,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
543 | CONFIG_SCSI_IBMVSCSI=m | 570 | CONFIG_SCSI_IBMVSCSI=m |
544 | # CONFIG_SCSI_INITIO is not set | 571 | # CONFIG_SCSI_INITIO is not set |
545 | # CONFIG_SCSI_INIA100 is not set | 572 | # CONFIG_SCSI_INIA100 is not set |
573 | # CONFIG_SCSI_MVSAS is not set | ||
546 | # CONFIG_SCSI_STEX is not set | 574 | # CONFIG_SCSI_STEX is not set |
547 | # CONFIG_SCSI_SYM53C8XX_2 is not set | 575 | # CONFIG_SCSI_SYM53C8XX_2 is not set |
548 | # CONFIG_SCSI_QLOGIC_1280 is not set | 576 | # CONFIG_SCSI_QLOGIC_1280 is not set |
@@ -589,7 +617,6 @@ CONFIG_BONDING=m | |||
589 | # CONFIG_EQUALIZER is not set | 617 | # CONFIG_EQUALIZER is not set |
590 | CONFIG_TUN=m | 618 | CONFIG_TUN=m |
591 | # CONFIG_VETH is not set | 619 | # CONFIG_VETH is not set |
592 | # CONFIG_IP1000 is not set | ||
593 | # CONFIG_ARCNET is not set | 620 | # CONFIG_ARCNET is not set |
594 | # CONFIG_PHYLIB is not set | 621 | # CONFIG_PHYLIB is not set |
595 | CONFIG_NET_ETHERNET=y | 622 | CONFIG_NET_ETHERNET=y |
@@ -618,6 +645,7 @@ CONFIG_E100=y | |||
618 | # CONFIG_NE2K_PCI is not set | 645 | # CONFIG_NE2K_PCI is not set |
619 | # CONFIG_8139CP is not set | 646 | # CONFIG_8139CP is not set |
620 | # CONFIG_8139TOO is not set | 647 | # CONFIG_8139TOO is not set |
648 | # CONFIG_R6040 is not set | ||
621 | # CONFIG_SIS900 is not set | 649 | # CONFIG_SIS900 is not set |
622 | # CONFIG_EPIC100 is not set | 650 | # CONFIG_EPIC100 is not set |
623 | # CONFIG_SUNDANCE is not set | 651 | # CONFIG_SUNDANCE is not set |
@@ -631,6 +659,9 @@ CONFIG_E1000=m | |||
631 | # CONFIG_E1000_NAPI is not set | 659 | # CONFIG_E1000_NAPI is not set |
632 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 660 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
633 | # CONFIG_E1000E is not set | 661 | # CONFIG_E1000E is not set |
662 | # CONFIG_E1000E_ENABLED is not set | ||
663 | # CONFIG_IP1000 is not set | ||
664 | # CONFIG_IGB is not set | ||
634 | # CONFIG_NS83820 is not set | 665 | # CONFIG_NS83820 is not set |
635 | # CONFIG_HAMACHI is not set | 666 | # CONFIG_HAMACHI is not set |
636 | # CONFIG_YELLOWFIN is not set | 667 | # CONFIG_YELLOWFIN is not set |
@@ -656,6 +687,7 @@ CONFIG_NETDEV_10000=y | |||
656 | # CONFIG_PASEMI_MAC is not set | 687 | # CONFIG_PASEMI_MAC is not set |
657 | # CONFIG_MLX4_CORE is not set | 688 | # CONFIG_MLX4_CORE is not set |
658 | # CONFIG_TEHUTI is not set | 689 | # CONFIG_TEHUTI is not set |
690 | # CONFIG_BNX2X is not set | ||
659 | CONFIG_TR=y | 691 | CONFIG_TR=y |
660 | CONFIG_IBMOL=y | 692 | CONFIG_IBMOL=y |
661 | # CONFIG_3C359 is not set | 693 | # CONFIG_3C359 is not set |
@@ -683,7 +715,6 @@ CONFIG_PPPOE=m | |||
683 | # CONFIG_SLIP is not set | 715 | # CONFIG_SLIP is not set |
684 | CONFIG_SLHC=m | 716 | CONFIG_SLHC=m |
685 | # CONFIG_NET_FC is not set | 717 | # CONFIG_NET_FC is not set |
686 | # CONFIG_SHAPER is not set | ||
687 | CONFIG_NETCONSOLE=y | 718 | CONFIG_NETCONSOLE=y |
688 | # CONFIG_NETCONSOLE_DYNAMIC is not set | 719 | # CONFIG_NETCONSOLE_DYNAMIC is not set |
689 | CONFIG_NETPOLL=y | 720 | CONFIG_NETPOLL=y |
@@ -734,6 +765,7 @@ CONFIG_VT_CONSOLE=y | |||
734 | CONFIG_HW_CONSOLE=y | 765 | CONFIG_HW_CONSOLE=y |
735 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 766 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
736 | # CONFIG_SERIAL_NONSTANDARD is not set | 767 | # CONFIG_SERIAL_NONSTANDARD is not set |
768 | # CONFIG_NOZOMI is not set | ||
737 | 769 | ||
738 | # | 770 | # |
739 | # Serial drivers | 771 | # Serial drivers |
@@ -772,6 +804,7 @@ CONFIG_DEVPORT=y | |||
772 | # CONFIG_W1 is not set | 804 | # CONFIG_W1 is not set |
773 | # CONFIG_POWER_SUPPLY is not set | 805 | # CONFIG_POWER_SUPPLY is not set |
774 | # CONFIG_HWMON is not set | 806 | # CONFIG_HWMON is not set |
807 | # CONFIG_THERMAL is not set | ||
775 | # CONFIG_WATCHDOG is not set | 808 | # CONFIG_WATCHDOG is not set |
776 | 809 | ||
777 | # | 810 | # |
@@ -821,10 +854,12 @@ CONFIG_DUMMY_CONSOLE=y | |||
821 | # CONFIG_HID_SUPPORT is not set | 854 | # CONFIG_HID_SUPPORT is not set |
822 | # CONFIG_USB_SUPPORT is not set | 855 | # CONFIG_USB_SUPPORT is not set |
823 | # CONFIG_MMC is not set | 856 | # CONFIG_MMC is not set |
857 | # CONFIG_MEMSTICK is not set | ||
824 | # CONFIG_NEW_LEDS is not set | 858 | # CONFIG_NEW_LEDS is not set |
825 | # CONFIG_INFINIBAND is not set | 859 | # CONFIG_INFINIBAND is not set |
826 | # CONFIG_EDAC is not set | 860 | # CONFIG_EDAC is not set |
827 | # CONFIG_RTC_CLASS is not set | 861 | # CONFIG_RTC_CLASS is not set |
862 | # CONFIG_DMADEVICES is not set | ||
828 | 863 | ||
829 | # | 864 | # |
830 | # Userspace I/O | 865 | # Userspace I/O |
@@ -869,12 +904,10 @@ CONFIG_GFS2_FS=m | |||
869 | CONFIG_GFS2_FS_LOCKING_NOLOCK=m | 904 | CONFIG_GFS2_FS_LOCKING_NOLOCK=m |
870 | CONFIG_GFS2_FS_LOCKING_DLM=m | 905 | CONFIG_GFS2_FS_LOCKING_DLM=m |
871 | # CONFIG_OCFS2_FS is not set | 906 | # CONFIG_OCFS2_FS is not set |
872 | # CONFIG_MINIX_FS is not set | 907 | CONFIG_DNOTIFY=y |
873 | # CONFIG_ROMFS_FS is not set | ||
874 | CONFIG_INOTIFY=y | 908 | CONFIG_INOTIFY=y |
875 | CONFIG_INOTIFY_USER=y | 909 | CONFIG_INOTIFY_USER=y |
876 | # CONFIG_QUOTA is not set | 910 | # CONFIG_QUOTA is not set |
877 | CONFIG_DNOTIFY=y | ||
878 | CONFIG_AUTOFS_FS=m | 911 | CONFIG_AUTOFS_FS=m |
879 | # CONFIG_AUTOFS4_FS is not set | 912 | # CONFIG_AUTOFS4_FS is not set |
880 | # CONFIG_FUSE_FS is not set | 913 | # CONFIG_FUSE_FS is not set |
@@ -924,8 +957,10 @@ CONFIG_CONFIGFS_FS=m | |||
924 | # CONFIG_EFS_FS is not set | 957 | # CONFIG_EFS_FS is not set |
925 | CONFIG_CRAMFS=y | 958 | CONFIG_CRAMFS=y |
926 | # CONFIG_VXFS_FS is not set | 959 | # CONFIG_VXFS_FS is not set |
960 | # CONFIG_MINIX_FS is not set | ||
927 | # CONFIG_HPFS_FS is not set | 961 | # CONFIG_HPFS_FS is not set |
928 | # CONFIG_QNX4FS_FS is not set | 962 | # CONFIG_QNX4FS_FS is not set |
963 | # CONFIG_ROMFS_FS is not set | ||
929 | # CONFIG_SYSV_FS is not set | 964 | # CONFIG_SYSV_FS is not set |
930 | # CONFIG_UFS_FS is not set | 965 | # CONFIG_UFS_FS is not set |
931 | CONFIG_NETWORK_FILESYSTEMS=y | 966 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1009,7 +1044,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1009 | # CONFIG_NLS_UTF8 is not set | 1044 | # CONFIG_NLS_UTF8 is not set |
1010 | CONFIG_DLM=m | 1045 | CONFIG_DLM=m |
1011 | # CONFIG_DLM_DEBUG is not set | 1046 | # CONFIG_DLM_DEBUG is not set |
1012 | # CONFIG_UCC_SLOW is not set | ||
1013 | 1047 | ||
1014 | # | 1048 | # |
1015 | # Library routines | 1049 | # Library routines |
@@ -1031,10 +1065,6 @@ CONFIG_PLIST=y | |||
1031 | CONFIG_HAS_IOMEM=y | 1065 | CONFIG_HAS_IOMEM=y |
1032 | CONFIG_HAS_IOPORT=y | 1066 | CONFIG_HAS_IOPORT=y |
1033 | CONFIG_HAS_DMA=y | 1067 | CONFIG_HAS_DMA=y |
1034 | CONFIG_INSTRUMENTATION=y | ||
1035 | # CONFIG_PROFILING is not set | ||
1036 | # CONFIG_KPROBES is not set | ||
1037 | # CONFIG_MARKERS is not set | ||
1038 | 1068 | ||
1039 | # | 1069 | # |
1040 | # Kernel hacking | 1070 | # Kernel hacking |
@@ -1053,6 +1083,7 @@ CONFIG_SCHED_DEBUG=y | |||
1053 | # CONFIG_SCHEDSTATS is not set | 1083 | # CONFIG_SCHEDSTATS is not set |
1054 | # CONFIG_TIMER_STATS is not set | 1084 | # CONFIG_TIMER_STATS is not set |
1055 | # CONFIG_SLUB_DEBUG_ON is not set | 1085 | # CONFIG_SLUB_DEBUG_ON is not set |
1086 | # CONFIG_SLUB_STATS is not set | ||
1056 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1087 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1057 | # CONFIG_RT_MUTEX_TESTER is not set | 1088 | # CONFIG_RT_MUTEX_TESTER is not set |
1058 | # CONFIG_DEBUG_SPINLOCK is not set | 1089 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1065,9 +1096,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1065 | # CONFIG_DEBUG_VM is not set | 1096 | # CONFIG_DEBUG_VM is not set |
1066 | # CONFIG_DEBUG_LIST is not set | 1097 | # CONFIG_DEBUG_LIST is not set |
1067 | # CONFIG_DEBUG_SG is not set | 1098 | # CONFIG_DEBUG_SG is not set |
1068 | # CONFIG_FORCED_INLINING is not set | ||
1069 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1099 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1070 | # CONFIG_RCU_TORTURE_TEST is not set | 1100 | # CONFIG_RCU_TORTURE_TEST is not set |
1101 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1071 | # CONFIG_FAULT_INJECTION is not set | 1102 | # CONFIG_FAULT_INJECTION is not set |
1072 | # CONFIG_SAMPLES is not set | 1103 | # CONFIG_SAMPLES is not set |
1073 | CONFIG_DEBUG_STACKOVERFLOW=y | 1104 | CONFIG_DEBUG_STACKOVERFLOW=y |
@@ -1089,6 +1120,7 @@ CONFIG_CRYPTO=y | |||
1089 | CONFIG_CRYPTO_ALGAPI=y | 1120 | CONFIG_CRYPTO_ALGAPI=y |
1090 | CONFIG_CRYPTO_AEAD=m | 1121 | CONFIG_CRYPTO_AEAD=m |
1091 | CONFIG_CRYPTO_BLKCIPHER=y | 1122 | CONFIG_CRYPTO_BLKCIPHER=y |
1123 | # CONFIG_CRYPTO_SEQIV is not set | ||
1092 | CONFIG_CRYPTO_HASH=y | 1124 | CONFIG_CRYPTO_HASH=y |
1093 | CONFIG_CRYPTO_MANAGER=y | 1125 | CONFIG_CRYPTO_MANAGER=y |
1094 | CONFIG_CRYPTO_HMAC=y | 1126 | CONFIG_CRYPTO_HMAC=y |
@@ -1107,6 +1139,9 @@ CONFIG_CRYPTO_CBC=y | |||
1107 | CONFIG_CRYPTO_PCBC=m | 1139 | CONFIG_CRYPTO_PCBC=m |
1108 | # CONFIG_CRYPTO_LRW is not set | 1140 | # CONFIG_CRYPTO_LRW is not set |
1109 | # CONFIG_CRYPTO_XTS is not set | 1141 | # CONFIG_CRYPTO_XTS is not set |
1142 | # CONFIG_CRYPTO_CTR is not set | ||
1143 | # CONFIG_CRYPTO_GCM is not set | ||
1144 | # CONFIG_CRYPTO_CCM is not set | ||
1110 | # CONFIG_CRYPTO_CRYPTD is not set | 1145 | # CONFIG_CRYPTO_CRYPTD is not set |
1111 | CONFIG_CRYPTO_DES=y | 1146 | CONFIG_CRYPTO_DES=y |
1112 | # CONFIG_CRYPTO_FCRYPT is not set | 1147 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1122,11 +1157,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1122 | CONFIG_CRYPTO_KHAZAD=m | 1157 | CONFIG_CRYPTO_KHAZAD=m |
1123 | CONFIG_CRYPTO_ANUBIS=m | 1158 | CONFIG_CRYPTO_ANUBIS=m |
1124 | CONFIG_CRYPTO_SEED=m | 1159 | CONFIG_CRYPTO_SEED=m |
1160 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1125 | CONFIG_CRYPTO_DEFLATE=m | 1161 | CONFIG_CRYPTO_DEFLATE=m |
1126 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1162 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1127 | CONFIG_CRYPTO_CRC32C=m | 1163 | CONFIG_CRYPTO_CRC32C=m |
1128 | # CONFIG_CRYPTO_CAMELLIA is not set | 1164 | # CONFIG_CRYPTO_CAMELLIA is not set |
1129 | CONFIG_CRYPTO_TEST=m | 1165 | CONFIG_CRYPTO_TEST=m |
1130 | CONFIG_CRYPTO_AUTHENC=m | 1166 | CONFIG_CRYPTO_AUTHENC=m |
1167 | # CONFIG_CRYPTO_LZO is not set | ||
1131 | # CONFIG_CRYPTO_HW is not set | 1168 | # CONFIG_CRYPTO_HW is not set |
1132 | # CONFIG_PPC_CLOCK is not set | 1169 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/pmac32_defconfig b/arch/powerpc/configs/pmac32_defconfig index 5416be4419bb..558b0d348d4f 100644 --- a/arch/powerpc/configs/pmac32_defconfig +++ b/arch/powerpc/configs/pmac32_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:49:05 2007 | 4 | # Thu Mar 20 11:05:14 2008 |
5 | # | 5 | # |
6 | # CONFIG_PPC64 is not set | 6 | # CONFIG_PPC64 is not set |
7 | 7 | ||
@@ -29,6 +29,7 @@ CONFIG_GENERIC_TIME=y | |||
29 | CONFIG_GENERIC_TIME_VSYSCALL=y | 29 | CONFIG_GENERIC_TIME_VSYSCALL=y |
30 | CONFIG_GENERIC_CLOCKEVENTS=y | 30 | CONFIG_GENERIC_CLOCKEVENTS=y |
31 | CONFIG_GENERIC_HARDIRQS=y | 31 | CONFIG_GENERIC_HARDIRQS=y |
32 | # CONFIG_HAVE_SETUP_PER_CPU_AREA is not set | ||
32 | CONFIG_IRQ_PER_CPU=y | 33 | CONFIG_IRQ_PER_CPU=y |
33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 34 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
34 | CONFIG_ARCH_HAS_ILOG2_U32=y | 35 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -49,6 +50,9 @@ CONFIG_AUDIT_ARCH=y | |||
49 | CONFIG_GENERIC_BUG=y | 50 | CONFIG_GENERIC_BUG=y |
50 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y | 51 | CONFIG_SYS_SUPPORTS_APM_EMULATION=y |
51 | # CONFIG_DEFAULT_UIMAGE is not set | 52 | # CONFIG_DEFAULT_UIMAGE is not set |
53 | CONFIG_HIBERNATE_32=y | ||
54 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
55 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
52 | # CONFIG_PPC_DCR_NATIVE is not set | 56 | # CONFIG_PPC_DCR_NATIVE is not set |
53 | # CONFIG_PPC_DCR_MMIO is not set | 57 | # CONFIG_PPC_DCR_MMIO is not set |
54 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 58 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
@@ -67,18 +71,22 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
67 | CONFIG_POSIX_MQUEUE=y | 71 | CONFIG_POSIX_MQUEUE=y |
68 | # CONFIG_BSD_PROCESS_ACCT is not set | 72 | # CONFIG_BSD_PROCESS_ACCT is not set |
69 | # CONFIG_TASKSTATS is not set | 73 | # CONFIG_TASKSTATS is not set |
70 | # CONFIG_USER_NS is not set | ||
71 | # CONFIG_PID_NS is not set | ||
72 | # CONFIG_AUDIT is not set | 74 | # CONFIG_AUDIT is not set |
73 | CONFIG_IKCONFIG=y | 75 | CONFIG_IKCONFIG=y |
74 | CONFIG_IKCONFIG_PROC=y | 76 | CONFIG_IKCONFIG_PROC=y |
75 | CONFIG_LOG_BUF_SHIFT=14 | 77 | CONFIG_LOG_BUF_SHIFT=14 |
76 | # CONFIG_CGROUPS is not set | 78 | # CONFIG_CGROUPS is not set |
77 | CONFIG_FAIR_GROUP_SCHED=y | 79 | # CONFIG_GROUP_SCHED is not set |
78 | CONFIG_FAIR_USER_SCHED=y | 80 | # CONFIG_USER_SCHED is not set |
79 | # CONFIG_FAIR_CGROUP_SCHED is not set | 81 | # CONFIG_CGROUP_SCHED is not set |
80 | CONFIG_SYSFS_DEPRECATED=y | 82 | CONFIG_SYSFS_DEPRECATED=y |
83 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
81 | # CONFIG_RELAY is not set | 84 | # CONFIG_RELAY is not set |
85 | CONFIG_NAMESPACES=y | ||
86 | # CONFIG_UTS_NS is not set | ||
87 | # CONFIG_IPC_NS is not set | ||
88 | # CONFIG_USER_NS is not set | ||
89 | # CONFIG_PID_NS is not set | ||
82 | CONFIG_BLK_DEV_INITRD=y | 90 | CONFIG_BLK_DEV_INITRD=y |
83 | CONFIG_INITRAMFS_SOURCE="" | 91 | CONFIG_INITRAMFS_SOURCE="" |
84 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set | 92 | # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set |
@@ -92,11 +100,13 @@ CONFIG_HOTPLUG=y | |||
92 | CONFIG_PRINTK=y | 100 | CONFIG_PRINTK=y |
93 | CONFIG_BUG=y | 101 | CONFIG_BUG=y |
94 | CONFIG_ELF_CORE=y | 102 | CONFIG_ELF_CORE=y |
103 | # CONFIG_COMPAT_BRK is not set | ||
95 | CONFIG_BASE_FULL=y | 104 | CONFIG_BASE_FULL=y |
96 | CONFIG_FUTEX=y | 105 | CONFIG_FUTEX=y |
97 | CONFIG_ANON_INODES=y | 106 | CONFIG_ANON_INODES=y |
98 | CONFIG_EPOLL=y | 107 | CONFIG_EPOLL=y |
99 | CONFIG_SIGNALFD=y | 108 | CONFIG_SIGNALFD=y |
109 | CONFIG_TIMERFD=y | ||
100 | CONFIG_EVENTFD=y | 110 | CONFIG_EVENTFD=y |
101 | CONFIG_SHMEM=y | 111 | CONFIG_SHMEM=y |
102 | CONFIG_VM_EVENT_COUNTERS=y | 112 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -104,6 +114,15 @@ CONFIG_SLUB_DEBUG=y | |||
104 | # CONFIG_SLAB is not set | 114 | # CONFIG_SLAB is not set |
105 | CONFIG_SLUB=y | 115 | CONFIG_SLUB=y |
106 | # CONFIG_SLOB is not set | 116 | # CONFIG_SLOB is not set |
117 | CONFIG_PROFILING=y | ||
118 | # CONFIG_MARKERS is not set | ||
119 | CONFIG_OPROFILE=y | ||
120 | CONFIG_HAVE_OPROFILE=y | ||
121 | # CONFIG_KPROBES is not set | ||
122 | CONFIG_HAVE_KPROBES=y | ||
123 | CONFIG_HAVE_KRETPROBES=y | ||
124 | CONFIG_PROC_PAGE_MONITOR=y | ||
125 | CONFIG_SLABINFO=y | ||
107 | CONFIG_RT_MUTEXES=y | 126 | CONFIG_RT_MUTEXES=y |
108 | # CONFIG_TINY_SHMEM is not set | 127 | # CONFIG_TINY_SHMEM is not set |
109 | CONFIG_BASE_SMALL=0 | 128 | CONFIG_BASE_SMALL=0 |
@@ -131,6 +150,7 @@ CONFIG_DEFAULT_AS=y | |||
131 | # CONFIG_DEFAULT_CFQ is not set | 150 | # CONFIG_DEFAULT_CFQ is not set |
132 | # CONFIG_DEFAULT_NOOP is not set | 151 | # CONFIG_DEFAULT_NOOP is not set |
133 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 152 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
153 | CONFIG_CLASSIC_RCU=y | ||
134 | 154 | ||
135 | # | 155 | # |
136 | # Platform support | 156 | # Platform support |
@@ -141,16 +161,17 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
141 | # CONFIG_PPC_86xx is not set | 161 | # CONFIG_PPC_86xx is not set |
142 | CONFIG_CLASSIC32=y | 162 | CONFIG_CLASSIC32=y |
143 | # CONFIG_PPC_CHRP is not set | 163 | # CONFIG_PPC_CHRP is not set |
164 | # CONFIG_PPC_MPC512x is not set | ||
165 | # CONFIG_PPC_MPC5121 is not set | ||
166 | # CONFIG_MPC5121_ADS is not set | ||
144 | # CONFIG_PPC_MPC52xx is not set | 167 | # CONFIG_PPC_MPC52xx is not set |
145 | # CONFIG_PPC_MPC5200 is not set | ||
146 | # CONFIG_PPC_EFIKA is not set | ||
147 | # CONFIG_PPC_LITE5200 is not set | ||
148 | CONFIG_PPC_PMAC=y | 168 | CONFIG_PPC_PMAC=y |
149 | # CONFIG_PPC_CELL is not set | 169 | # CONFIG_PPC_CELL is not set |
150 | # CONFIG_PPC_CELL_NATIVE is not set | 170 | # CONFIG_PPC_CELL_NATIVE is not set |
151 | # CONFIG_PQ2ADS is not set | 171 | # CONFIG_PQ2ADS is not set |
152 | # CONFIG_EMBEDDED6xx is not set | 172 | # CONFIG_EMBEDDED6xx is not set |
153 | CONFIG_PPC_NATIVE=y | 173 | CONFIG_PPC_NATIVE=y |
174 | # CONFIG_IPIC is not set | ||
154 | CONFIG_MPIC=y | 175 | CONFIG_MPIC=y |
155 | # CONFIG_MPIC_WEIRD is not set | 176 | # CONFIG_MPIC_WEIRD is not set |
156 | # CONFIG_PPC_I8259 is not set | 177 | # CONFIG_PPC_I8259 is not set |
@@ -181,7 +202,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y | |||
181 | CONFIG_CPU_FREQ_PMAC=y | 202 | CONFIG_CPU_FREQ_PMAC=y |
182 | CONFIG_PPC601_SYNC_FIX=y | 203 | CONFIG_PPC601_SYNC_FIX=y |
183 | # CONFIG_TAU is not set | 204 | # CONFIG_TAU is not set |
184 | # CONFIG_CPM2 is not set | ||
185 | # CONFIG_FSL_ULI1575 is not set | 205 | # CONFIG_FSL_ULI1575 is not set |
186 | 206 | ||
187 | # | 207 | # |
@@ -197,12 +217,16 @@ CONFIG_HZ_250=y | |||
197 | # CONFIG_HZ_300 is not set | 217 | # CONFIG_HZ_300 is not set |
198 | # CONFIG_HZ_1000 is not set | 218 | # CONFIG_HZ_1000 is not set |
199 | CONFIG_HZ=250 | 219 | CONFIG_HZ=250 |
220 | # CONFIG_SCHED_HRTICK is not set | ||
200 | CONFIG_PREEMPT_NONE=y | 221 | CONFIG_PREEMPT_NONE=y |
201 | # CONFIG_PREEMPT_VOLUNTARY is not set | 222 | # CONFIG_PREEMPT_VOLUNTARY is not set |
202 | # CONFIG_PREEMPT is not set | 223 | # CONFIG_PREEMPT is not set |
203 | CONFIG_BINFMT_ELF=y | 224 | CONFIG_BINFMT_ELF=y |
204 | CONFIG_BINFMT_MISC=m | 225 | CONFIG_BINFMT_MISC=m |
226 | # CONFIG_IOMMU_HELPER is not set | ||
205 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 227 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
228 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
229 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
206 | # CONFIG_KEXEC is not set | 230 | # CONFIG_KEXEC is not set |
207 | CONFIG_ARCH_FLATMEM_ENABLE=y | 231 | CONFIG_ARCH_FLATMEM_ENABLE=y |
208 | CONFIG_ARCH_POPULATES_NODE_MAP=y | 232 | CONFIG_ARCH_POPULATES_NODE_MAP=y |
@@ -221,19 +245,19 @@ CONFIG_BOUNCE=y | |||
221 | CONFIG_VIRT_TO_BUS=y | 245 | CONFIG_VIRT_TO_BUS=y |
222 | CONFIG_PROC_DEVICETREE=y | 246 | CONFIG_PROC_DEVICETREE=y |
223 | # CONFIG_CMDLINE_BOOL is not set | 247 | # CONFIG_CMDLINE_BOOL is not set |
248 | CONFIG_ARCH_WANTS_FREEZER_CONTROL=y | ||
224 | CONFIG_PM=y | 249 | CONFIG_PM=y |
225 | # CONFIG_PM_LEGACY is not set | 250 | # CONFIG_PM_LEGACY is not set |
226 | CONFIG_PM_DEBUG=y | 251 | CONFIG_PM_DEBUG=y |
227 | # CONFIG_PM_VERBOSE is not set | 252 | # CONFIG_PM_VERBOSE is not set |
253 | CONFIG_CAN_PM_TRACE=y | ||
228 | CONFIG_PM_SLEEP=y | 254 | CONFIG_PM_SLEEP=y |
229 | CONFIG_SUSPEND_UP_POSSIBLE=y | ||
230 | CONFIG_SUSPEND=y | 255 | CONFIG_SUSPEND=y |
231 | CONFIG_HIBERNATION_UP_POSSIBLE=y | 256 | CONFIG_SUSPEND_FREEZER=y |
232 | CONFIG_HIBERNATION=y | 257 | CONFIG_HIBERNATION=y |
233 | CONFIG_PM_STD_PARTITION="" | 258 | CONFIG_PM_STD_PARTITION="" |
234 | CONFIG_APM_EMULATION=y | 259 | CONFIG_APM_EMULATION=y |
235 | CONFIG_SECCOMP=y | 260 | CONFIG_SECCOMP=y |
236 | # CONFIG_WANT_DEVICE_TREE is not set | ||
237 | CONFIG_ISA_DMA_API=y | 261 | CONFIG_ISA_DMA_API=y |
238 | 262 | ||
239 | # | 263 | # |
@@ -300,6 +324,7 @@ CONFIG_XFRM=y | |||
300 | CONFIG_XFRM_USER=y | 324 | CONFIG_XFRM_USER=y |
301 | # CONFIG_XFRM_SUB_POLICY is not set | 325 | # CONFIG_XFRM_SUB_POLICY is not set |
302 | # CONFIG_XFRM_MIGRATE is not set | 326 | # CONFIG_XFRM_MIGRATE is not set |
327 | # CONFIG_XFRM_STATISTICS is not set | ||
303 | CONFIG_NET_KEY=y | 328 | CONFIG_NET_KEY=y |
304 | # CONFIG_NET_KEY_MIGRATE is not set | 329 | # CONFIG_NET_KEY_MIGRATE is not set |
305 | CONFIG_INET=y | 330 | CONFIG_INET=y |
@@ -334,12 +359,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
334 | # CONFIG_NETWORK_SECMARK is not set | 359 | # CONFIG_NETWORK_SECMARK is not set |
335 | CONFIG_NETFILTER=y | 360 | CONFIG_NETFILTER=y |
336 | # CONFIG_NETFILTER_DEBUG is not set | 361 | # CONFIG_NETFILTER_DEBUG is not set |
362 | CONFIG_NETFILTER_ADVANCED=y | ||
337 | 363 | ||
338 | # | 364 | # |
339 | # Core Netfilter Configuration | 365 | # Core Netfilter Configuration |
340 | # | 366 | # |
341 | # CONFIG_NETFILTER_NETLINK is not set | 367 | CONFIG_NETFILTER_NETLINK=m |
342 | CONFIG_NF_CONNTRACK_ENABLED=m | 368 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
369 | CONFIG_NETFILTER_NETLINK_LOG=m | ||
343 | CONFIG_NF_CONNTRACK=m | 370 | CONFIG_NF_CONNTRACK=m |
344 | # CONFIG_NF_CT_ACCT is not set | 371 | # CONFIG_NF_CT_ACCT is not set |
345 | # CONFIG_NF_CONNTRACK_MARK is not set | 372 | # CONFIG_NF_CONNTRACK_MARK is not set |
@@ -355,6 +382,7 @@ CONFIG_NF_CONNTRACK_IRC=m | |||
355 | # CONFIG_NF_CONNTRACK_SANE is not set | 382 | # CONFIG_NF_CONNTRACK_SANE is not set |
356 | # CONFIG_NF_CONNTRACK_SIP is not set | 383 | # CONFIG_NF_CONNTRACK_SIP is not set |
357 | CONFIG_NF_CONNTRACK_TFTP=m | 384 | CONFIG_NF_CONNTRACK_TFTP=m |
385 | CONFIG_NF_CT_NETLINK=m | ||
358 | CONFIG_NETFILTER_XTABLES=m | 386 | CONFIG_NETFILTER_XTABLES=m |
359 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | 387 | CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m |
360 | # CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set | 388 | # CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set |
@@ -363,8 +391,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
363 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 391 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
364 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 392 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
365 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 393 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m |
394 | CONFIG_NETFILTER_XT_TARGET_RATEEST=m | ||
366 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | 395 | CONFIG_NETFILTER_XT_TARGET_TRACE=m |
367 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 396 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
397 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m | ||
368 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 398 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
369 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set | 399 | # CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set |
370 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | 400 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m |
@@ -374,14 +404,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m | |||
374 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 404 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
375 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 405 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
376 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 406 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
407 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | ||
377 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 408 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
378 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 409 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
379 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 410 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
380 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 411 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
412 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | ||
381 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 413 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
382 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | 414 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
383 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 415 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
384 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set | 416 | # CONFIG_NETFILTER_XT_MATCH_QUOTA is not set |
417 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | ||
385 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 418 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
386 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 419 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
387 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set | 420 | # CONFIG_NETFILTER_XT_MATCH_STATE is not set |
@@ -399,13 +432,10 @@ CONFIG_NF_CONNTRACK_IPV4=m | |||
399 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | 432 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y |
400 | # CONFIG_IP_NF_QUEUE is not set | 433 | # CONFIG_IP_NF_QUEUE is not set |
401 | CONFIG_IP_NF_IPTABLES=m | 434 | CONFIG_IP_NF_IPTABLES=m |
402 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
403 | CONFIG_IP_NF_MATCH_TOS=m | ||
404 | CONFIG_IP_NF_MATCH_RECENT=m | 435 | CONFIG_IP_NF_MATCH_RECENT=m |
405 | CONFIG_IP_NF_MATCH_ECN=m | 436 | CONFIG_IP_NF_MATCH_ECN=m |
406 | CONFIG_IP_NF_MATCH_AH=m | 437 | CONFIG_IP_NF_MATCH_AH=m |
407 | CONFIG_IP_NF_MATCH_TTL=m | 438 | CONFIG_IP_NF_MATCH_TTL=m |
408 | CONFIG_IP_NF_MATCH_OWNER=m | ||
409 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 439 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
410 | CONFIG_IP_NF_FILTER=m | 440 | CONFIG_IP_NF_FILTER=m |
411 | CONFIG_IP_NF_TARGET_REJECT=m | 441 | CONFIG_IP_NF_TARGET_REJECT=m |
@@ -416,7 +446,6 @@ CONFIG_NF_NAT_NEEDED=y | |||
416 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 446 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
417 | CONFIG_IP_NF_TARGET_REDIRECT=m | 447 | CONFIG_IP_NF_TARGET_REDIRECT=m |
418 | CONFIG_IP_NF_TARGET_NETMAP=m | 448 | CONFIG_IP_NF_TARGET_NETMAP=m |
419 | CONFIG_IP_NF_TARGET_SAME=m | ||
420 | # CONFIG_NF_NAT_SNMP_BASIC is not set | 449 | # CONFIG_NF_NAT_SNMP_BASIC is not set |
421 | CONFIG_NF_NAT_FTP=m | 450 | CONFIG_NF_NAT_FTP=m |
422 | CONFIG_NF_NAT_IRC=m | 451 | CONFIG_NF_NAT_IRC=m |
@@ -426,7 +455,6 @@ CONFIG_NF_NAT_TFTP=m | |||
426 | # CONFIG_NF_NAT_H323 is not set | 455 | # CONFIG_NF_NAT_H323 is not set |
427 | # CONFIG_NF_NAT_SIP is not set | 456 | # CONFIG_NF_NAT_SIP is not set |
428 | CONFIG_IP_NF_MANGLE=m | 457 | CONFIG_IP_NF_MANGLE=m |
429 | CONFIG_IP_NF_TARGET_TOS=m | ||
430 | CONFIG_IP_NF_TARGET_ECN=m | 458 | CONFIG_IP_NF_TARGET_ECN=m |
431 | CONFIG_IP_NF_TARGET_TTL=m | 459 | CONFIG_IP_NF_TARGET_TTL=m |
432 | # CONFIG_IP_NF_TARGET_CLUSTERIP is not set | 460 | # CONFIG_IP_NF_TARGET_CLUSTERIP is not set |
@@ -444,9 +472,9 @@ CONFIG_IP_DCCP_ACKVEC=y | |||
444 | CONFIG_IP_DCCP_CCID2=m | 472 | CONFIG_IP_DCCP_CCID2=m |
445 | # CONFIG_IP_DCCP_CCID2_DEBUG is not set | 473 | # CONFIG_IP_DCCP_CCID2_DEBUG is not set |
446 | CONFIG_IP_DCCP_CCID3=m | 474 | CONFIG_IP_DCCP_CCID3=m |
447 | CONFIG_IP_DCCP_TFRC_LIB=m | ||
448 | # CONFIG_IP_DCCP_CCID3_DEBUG is not set | 475 | # CONFIG_IP_DCCP_CCID3_DEBUG is not set |
449 | CONFIG_IP_DCCP_CCID3_RTO=100 | 476 | CONFIG_IP_DCCP_CCID3_RTO=100 |
477 | CONFIG_IP_DCCP_TFRC_LIB=m | ||
450 | 478 | ||
451 | # | 479 | # |
452 | # DCCP Kernel Hacking | 480 | # DCCP Kernel Hacking |
@@ -474,6 +502,7 @@ CONFIG_NET_SCH_FIFO=y | |||
474 | # | 502 | # |
475 | # CONFIG_NET_PKTGEN is not set | 503 | # CONFIG_NET_PKTGEN is not set |
476 | # CONFIG_HAMRADIO is not set | 504 | # CONFIG_HAMRADIO is not set |
505 | # CONFIG_CAN is not set | ||
477 | CONFIG_IRDA=m | 506 | CONFIG_IRDA=m |
478 | 507 | ||
479 | # | 508 | # |
@@ -509,15 +538,6 @@ CONFIG_IRTTY_SIR=m | |||
509 | # CONFIG_KS959_DONGLE is not set | 538 | # CONFIG_KS959_DONGLE is not set |
510 | 539 | ||
511 | # | 540 | # |
512 | # Old SIR device drivers | ||
513 | # | ||
514 | # CONFIG_IRPORT_SIR is not set | ||
515 | |||
516 | # | ||
517 | # Old Serial dongle support | ||
518 | # | ||
519 | |||
520 | # | ||
521 | # FIR device drivers | 541 | # FIR device drivers |
522 | # | 542 | # |
523 | # CONFIG_USB_IRDA is not set | 543 | # CONFIG_USB_IRDA is not set |
@@ -563,8 +583,26 @@ CONFIG_CFG80211=m | |||
563 | CONFIG_NL80211=y | 583 | CONFIG_NL80211=y |
564 | CONFIG_WIRELESS_EXT=y | 584 | CONFIG_WIRELESS_EXT=y |
565 | CONFIG_MAC80211=m | 585 | CONFIG_MAC80211=m |
566 | CONFIG_MAC80211_RCSIMPLE=y | 586 | |
587 | # | ||
588 | # Rate control algorithm selection | ||
589 | # | ||
590 | CONFIG_MAC80211_RC_DEFAULT_PID=y | ||
591 | # CONFIG_MAC80211_RC_DEFAULT_SIMPLE is not set | ||
592 | # CONFIG_MAC80211_RC_DEFAULT_NONE is not set | ||
593 | |||
594 | # | ||
595 | # Selecting 'y' for an algorithm will | ||
596 | # | ||
597 | |||
598 | # | ||
599 | # build the algorithm into mac80211. | ||
600 | # | ||
601 | CONFIG_MAC80211_RC_DEFAULT="pid" | ||
602 | CONFIG_MAC80211_RC_PID=y | ||
603 | # CONFIG_MAC80211_RC_SIMPLE is not set | ||
567 | CONFIG_MAC80211_LEDS=y | 604 | CONFIG_MAC80211_LEDS=y |
605 | # CONFIG_MAC80211_DEBUG_PACKET_ALIGNMENT is not set | ||
568 | # CONFIG_MAC80211_DEBUG is not set | 606 | # CONFIG_MAC80211_DEBUG is not set |
569 | CONFIG_IEEE80211=m | 607 | CONFIG_IEEE80211=m |
570 | # CONFIG_IEEE80211_DEBUG is not set | 608 | # CONFIG_IEEE80211_DEBUG is not set |
@@ -610,7 +648,7 @@ CONFIG_BLK_DEV_UB=m | |||
610 | CONFIG_BLK_DEV_RAM=y | 648 | CONFIG_BLK_DEV_RAM=y |
611 | CONFIG_BLK_DEV_RAM_COUNT=16 | 649 | CONFIG_BLK_DEV_RAM_COUNT=16 |
612 | CONFIG_BLK_DEV_RAM_SIZE=4096 | 650 | CONFIG_BLK_DEV_RAM_SIZE=4096 |
613 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 651 | # CONFIG_BLK_DEV_XIP is not set |
614 | # CONFIG_CDROM_PKTCDVD is not set | 652 | # CONFIG_CDROM_PKTCDVD is not set |
615 | # CONFIG_ATA_OVER_ETH is not set | 653 | # CONFIG_ATA_OVER_ETH is not set |
616 | CONFIG_MISC_DEVICES=y | 654 | CONFIG_MISC_DEVICES=y |
@@ -618,11 +656,13 @@ CONFIG_MISC_DEVICES=y | |||
618 | # CONFIG_EEPROM_93CX6 is not set | 656 | # CONFIG_EEPROM_93CX6 is not set |
619 | # CONFIG_SGI_IOC4 is not set | 657 | # CONFIG_SGI_IOC4 is not set |
620 | # CONFIG_TIFM_CORE is not set | 658 | # CONFIG_TIFM_CORE is not set |
659 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
660 | CONFIG_HAVE_IDE=y | ||
621 | CONFIG_IDE=y | 661 | CONFIG_IDE=y |
622 | CONFIG_BLK_DEV_IDE=y | 662 | CONFIG_BLK_DEV_IDE=y |
623 | 663 | ||
624 | # | 664 | # |
625 | # Please see Documentation/ide.txt for help/info on IDE drives | 665 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
626 | # | 666 | # |
627 | # CONFIG_BLK_DEV_IDE_SATA is not set | 667 | # CONFIG_BLK_DEV_IDE_SATA is not set |
628 | CONFIG_BLK_DEV_IDEDISK=y | 668 | CONFIG_BLK_DEV_IDEDISK=y |
@@ -630,6 +670,7 @@ CONFIG_BLK_DEV_IDEDISK=y | |||
630 | CONFIG_BLK_DEV_IDECS=m | 670 | CONFIG_BLK_DEV_IDECS=m |
631 | # CONFIG_BLK_DEV_DELKIN is not set | 671 | # CONFIG_BLK_DEV_DELKIN is not set |
632 | CONFIG_BLK_DEV_IDECD=y | 672 | CONFIG_BLK_DEV_IDECD=y |
673 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
633 | # CONFIG_BLK_DEV_IDETAPE is not set | 674 | # CONFIG_BLK_DEV_IDETAPE is not set |
634 | CONFIG_BLK_DEV_IDEFLOPPY=y | 675 | CONFIG_BLK_DEV_IDEFLOPPY=y |
635 | CONFIG_BLK_DEV_IDESCSI=y | 676 | CONFIG_BLK_DEV_IDESCSI=y |
@@ -641,12 +682,12 @@ CONFIG_IDE_PROC_FS=y | |||
641 | # | 682 | # |
642 | # CONFIG_IDE_GENERIC is not set | 683 | # CONFIG_IDE_GENERIC is not set |
643 | # CONFIG_BLK_DEV_PLATFORM is not set | 684 | # CONFIG_BLK_DEV_PLATFORM is not set |
685 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
644 | 686 | ||
645 | # | 687 | # |
646 | # PCI IDE chipsets support | 688 | # PCI IDE chipsets support |
647 | # | 689 | # |
648 | CONFIG_BLK_DEV_IDEPCI=y | 690 | CONFIG_BLK_DEV_IDEPCI=y |
649 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
650 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 691 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
651 | # CONFIG_BLK_DEV_OFFBOARD is not set | 692 | # CONFIG_BLK_DEV_OFFBOARD is not set |
652 | CONFIG_BLK_DEV_GENERIC=y | 693 | CONFIG_BLK_DEV_GENERIC=y |
@@ -680,7 +721,6 @@ CONFIG_BLK_DEV_SL82C105=y | |||
680 | CONFIG_BLK_DEV_IDE_PMAC=y | 721 | CONFIG_BLK_DEV_IDE_PMAC=y |
681 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y | 722 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y |
682 | CONFIG_BLK_DEV_IDEDMA_PMAC=y | 723 | CONFIG_BLK_DEV_IDEDMA_PMAC=y |
683 | # CONFIG_IDE_ARM is not set | ||
684 | CONFIG_BLK_DEV_IDEDMA=y | 724 | CONFIG_BLK_DEV_IDEDMA=y |
685 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 725 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
686 | # CONFIG_BLK_DEV_HD is not set | 726 | # CONFIG_BLK_DEV_HD is not set |
@@ -754,6 +794,7 @@ CONFIG_SCSI_AIC7XXX_OLD=m | |||
754 | # CONFIG_SCSI_IPS is not set | 794 | # CONFIG_SCSI_IPS is not set |
755 | # CONFIG_SCSI_INITIO is not set | 795 | # CONFIG_SCSI_INITIO is not set |
756 | # CONFIG_SCSI_INIA100 is not set | 796 | # CONFIG_SCSI_INIA100 is not set |
797 | # CONFIG_SCSI_MVSAS is not set | ||
757 | # CONFIG_SCSI_STEX is not set | 798 | # CONFIG_SCSI_STEX is not set |
758 | CONFIG_SCSI_SYM53C8XX_2=y | 799 | CONFIG_SCSI_SYM53C8XX_2=y |
759 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 800 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
@@ -848,7 +889,6 @@ CONFIG_DUMMY=m | |||
848 | # CONFIG_EQUALIZER is not set | 889 | # CONFIG_EQUALIZER is not set |
849 | CONFIG_TUN=m | 890 | CONFIG_TUN=m |
850 | # CONFIG_VETH is not set | 891 | # CONFIG_VETH is not set |
851 | # CONFIG_IP1000 is not set | ||
852 | # CONFIG_ARCNET is not set | 892 | # CONFIG_ARCNET is not set |
853 | # CONFIG_PHYLIB is not set | 893 | # CONFIG_PHYLIB is not set |
854 | CONFIG_NET_ETHERNET=y | 894 | CONFIG_NET_ETHERNET=y |
@@ -880,6 +920,7 @@ CONFIG_PCNET32=y | |||
880 | # CONFIG_NE2K_PCI is not set | 920 | # CONFIG_NE2K_PCI is not set |
881 | # CONFIG_8139CP is not set | 921 | # CONFIG_8139CP is not set |
882 | # CONFIG_8139TOO is not set | 922 | # CONFIG_8139TOO is not set |
923 | # CONFIG_R6040 is not set | ||
883 | # CONFIG_SIS900 is not set | 924 | # CONFIG_SIS900 is not set |
884 | # CONFIG_EPIC100 is not set | 925 | # CONFIG_EPIC100 is not set |
885 | # CONFIG_SUNDANCE is not set | 926 | # CONFIG_SUNDANCE is not set |
@@ -891,6 +932,9 @@ CONFIG_NETDEV_1000=y | |||
891 | # CONFIG_DL2K is not set | 932 | # CONFIG_DL2K is not set |
892 | # CONFIG_E1000 is not set | 933 | # CONFIG_E1000 is not set |
893 | # CONFIG_E1000E is not set | 934 | # CONFIG_E1000E is not set |
935 | # CONFIG_E1000E_ENABLED is not set | ||
936 | # CONFIG_IP1000 is not set | ||
937 | # CONFIG_IGB is not set | ||
894 | # CONFIG_NS83820 is not set | 938 | # CONFIG_NS83820 is not set |
895 | # CONFIG_HAMACHI is not set | 939 | # CONFIG_HAMACHI is not set |
896 | # CONFIG_YELLOWFIN is not set | 940 | # CONFIG_YELLOWFIN is not set |
@@ -916,6 +960,7 @@ CONFIG_NETDEV_10000=y | |||
916 | # CONFIG_NIU is not set | 960 | # CONFIG_NIU is not set |
917 | # CONFIG_MLX4_CORE is not set | 961 | # CONFIG_MLX4_CORE is not set |
918 | # CONFIG_TEHUTI is not set | 962 | # CONFIG_TEHUTI is not set |
963 | # CONFIG_BNX2X is not set | ||
919 | # CONFIG_TR is not set | 964 | # CONFIG_TR is not set |
920 | 965 | ||
921 | # | 966 | # |
@@ -941,12 +986,16 @@ CONFIG_PCMCIA_HERMES=m | |||
941 | # CONFIG_PCMCIA_WL3501 is not set | 986 | # CONFIG_PCMCIA_WL3501 is not set |
942 | CONFIG_PRISM54=m | 987 | CONFIG_PRISM54=m |
943 | # CONFIG_USB_ZD1201 is not set | 988 | # CONFIG_USB_ZD1201 is not set |
989 | # CONFIG_USB_NET_RNDIS_WLAN is not set | ||
990 | # CONFIG_RTL8180 is not set | ||
944 | # CONFIG_RTL8187 is not set | 991 | # CONFIG_RTL8187 is not set |
945 | # CONFIG_ADM8211 is not set | 992 | # CONFIG_ADM8211 is not set |
946 | CONFIG_P54_COMMON=m | 993 | CONFIG_P54_COMMON=m |
947 | # CONFIG_P54_USB is not set | 994 | # CONFIG_P54_USB is not set |
948 | # CONFIG_P54_PCI is not set | 995 | # CONFIG_P54_PCI is not set |
949 | # CONFIG_IWLWIFI is not set | 996 | # CONFIG_ATH5K is not set |
997 | # CONFIG_IWL4965 is not set | ||
998 | # CONFIG_IWL3945 is not set | ||
950 | # CONFIG_HOSTAP is not set | 999 | # CONFIG_HOSTAP is not set |
951 | CONFIG_B43=m | 1000 | CONFIG_B43=m |
952 | CONFIG_B43_PCI_AUTOSELECT=y | 1001 | CONFIG_B43_PCI_AUTOSELECT=y |
@@ -954,20 +1003,17 @@ CONFIG_B43_PCICORE_AUTOSELECT=y | |||
954 | # CONFIG_B43_PCMCIA is not set | 1003 | # CONFIG_B43_PCMCIA is not set |
955 | CONFIG_B43_LEDS=y | 1004 | CONFIG_B43_LEDS=y |
956 | # CONFIG_B43_DEBUG is not set | 1005 | # CONFIG_B43_DEBUG is not set |
957 | CONFIG_B43_DMA=y | ||
958 | CONFIG_B43_PIO=y | ||
959 | CONFIG_B43_DMA_AND_PIO_MODE=y | ||
960 | # CONFIG_B43_DMA_MODE is not set | ||
961 | # CONFIG_B43_PIO_MODE is not set | ||
962 | CONFIG_B43LEGACY=m | 1006 | CONFIG_B43LEGACY=m |
963 | CONFIG_B43LEGACY_PCI_AUTOSELECT=y | 1007 | CONFIG_B43LEGACY_PCI_AUTOSELECT=y |
964 | CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y | 1008 | CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y |
1009 | CONFIG_B43LEGACY_LEDS=y | ||
965 | CONFIG_B43LEGACY_DEBUG=y | 1010 | CONFIG_B43LEGACY_DEBUG=y |
966 | CONFIG_B43LEGACY_DMA=y | 1011 | CONFIG_B43LEGACY_DMA=y |
967 | CONFIG_B43LEGACY_PIO=y | 1012 | CONFIG_B43LEGACY_PIO=y |
968 | CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y | 1013 | CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y |
969 | # CONFIG_B43LEGACY_DMA_MODE is not set | 1014 | # CONFIG_B43LEGACY_DMA_MODE is not set |
970 | # CONFIG_B43LEGACY_PIO_MODE is not set | 1015 | # CONFIG_B43LEGACY_PIO_MODE is not set |
1016 | # CONFIG_ZD1211RW is not set | ||
971 | # CONFIG_RT2X00 is not set | 1017 | # CONFIG_RT2X00 is not set |
972 | 1018 | ||
973 | # | 1019 | # |
@@ -1005,7 +1051,6 @@ CONFIG_PPP_BSDCOMP=m | |||
1005 | # CONFIG_SLIP is not set | 1051 | # CONFIG_SLIP is not set |
1006 | CONFIG_SLHC=y | 1052 | CONFIG_SLHC=y |
1007 | # CONFIG_NET_FC is not set | 1053 | # CONFIG_NET_FC is not set |
1008 | # CONFIG_SHAPER is not set | ||
1009 | # CONFIG_NETCONSOLE is not set | 1054 | # CONFIG_NETCONSOLE is not set |
1010 | # CONFIG_NETPOLL is not set | 1055 | # CONFIG_NETPOLL is not set |
1011 | # CONFIG_NET_POLL_CONTROLLER is not set | 1056 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -1068,6 +1113,7 @@ CONFIG_VT_CONSOLE=y | |||
1068 | CONFIG_HW_CONSOLE=y | 1113 | CONFIG_HW_CONSOLE=y |
1069 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 1114 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
1070 | # CONFIG_SERIAL_NONSTANDARD is not set | 1115 | # CONFIG_SERIAL_NONSTANDARD is not set |
1116 | # CONFIG_NOZOMI is not set | ||
1071 | 1117 | ||
1072 | # | 1118 | # |
1073 | # Serial drivers | 1119 | # Serial drivers |
@@ -1105,6 +1151,7 @@ CONFIG_GEN_RTC=y | |||
1105 | # CONFIG_SYNCLINK_CS is not set | 1151 | # CONFIG_SYNCLINK_CS is not set |
1106 | # CONFIG_CARDMAN_4000 is not set | 1152 | # CONFIG_CARDMAN_4000 is not set |
1107 | # CONFIG_CARDMAN_4040 is not set | 1153 | # CONFIG_CARDMAN_4040 is not set |
1154 | # CONFIG_IPWIRELESS is not set | ||
1108 | # CONFIG_RAW_DRIVER is not set | 1155 | # CONFIG_RAW_DRIVER is not set |
1109 | # CONFIG_TCG_TPM is not set | 1156 | # CONFIG_TCG_TPM is not set |
1110 | CONFIG_DEVPORT=y | 1157 | CONFIG_DEVPORT=y |
@@ -1151,14 +1198,12 @@ CONFIG_I2C_POWERMAC=y | |||
1151 | # | 1198 | # |
1152 | # Miscellaneous I2C Chip support | 1199 | # Miscellaneous I2C Chip support |
1153 | # | 1200 | # |
1154 | # CONFIG_SENSORS_DS1337 is not set | ||
1155 | # CONFIG_SENSORS_DS1374 is not set | ||
1156 | # CONFIG_DS1682 is not set | 1201 | # CONFIG_DS1682 is not set |
1157 | # CONFIG_SENSORS_EEPROM is not set | 1202 | # CONFIG_SENSORS_EEPROM is not set |
1158 | # CONFIG_SENSORS_PCF8574 is not set | 1203 | # CONFIG_SENSORS_PCF8574 is not set |
1159 | # CONFIG_SENSORS_PCA9539 is not set | 1204 | # CONFIG_PCF8575 is not set |
1160 | # CONFIG_SENSORS_PCF8591 is not set | 1205 | # CONFIG_SENSORS_PCF8591 is not set |
1161 | # CONFIG_SENSORS_M41T00 is not set | 1206 | # CONFIG_TPS65010 is not set |
1162 | # CONFIG_SENSORS_MAX6875 is not set | 1207 | # CONFIG_SENSORS_MAX6875 is not set |
1163 | # CONFIG_SENSORS_TSL2550 is not set | 1208 | # CONFIG_SENSORS_TSL2550 is not set |
1164 | # CONFIG_I2C_DEBUG_CORE is not set | 1209 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -1179,6 +1224,7 @@ CONFIG_APM_POWER=y | |||
1179 | # CONFIG_BATTERY_DS2760 is not set | 1224 | # CONFIG_BATTERY_DS2760 is not set |
1180 | CONFIG_BATTERY_PMU=y | 1225 | CONFIG_BATTERY_PMU=y |
1181 | # CONFIG_HWMON is not set | 1226 | # CONFIG_HWMON is not set |
1227 | # CONFIG_THERMAL is not set | ||
1182 | # CONFIG_WATCHDOG is not set | 1228 | # CONFIG_WATCHDOG is not set |
1183 | 1229 | ||
1184 | # | 1230 | # |
@@ -1188,6 +1234,7 @@ CONFIG_SSB_POSSIBLE=y | |||
1188 | CONFIG_SSB=m | 1234 | CONFIG_SSB=m |
1189 | CONFIG_SSB_PCIHOST_POSSIBLE=y | 1235 | CONFIG_SSB_PCIHOST_POSSIBLE=y |
1190 | CONFIG_SSB_PCIHOST=y | 1236 | CONFIG_SSB_PCIHOST=y |
1237 | CONFIG_SSB_B43_PCI_BRIDGE=y | ||
1191 | CONFIG_SSB_PCMCIAHOST_POSSIBLE=y | 1238 | CONFIG_SSB_PCMCIAHOST_POSSIBLE=y |
1192 | # CONFIG_SSB_PCMCIAHOST is not set | 1239 | # CONFIG_SSB_PCMCIAHOST is not set |
1193 | # CONFIG_SSB_DEBUG is not set | 1240 | # CONFIG_SSB_DEBUG is not set |
@@ -1372,6 +1419,7 @@ CONFIG_SND_DUMMY=m | |||
1372 | # CONFIG_SND_BT87X is not set | 1419 | # CONFIG_SND_BT87X is not set |
1373 | # CONFIG_SND_CA0106 is not set | 1420 | # CONFIG_SND_CA0106 is not set |
1374 | # CONFIG_SND_CMIPCI is not set | 1421 | # CONFIG_SND_CMIPCI is not set |
1422 | # CONFIG_SND_OXYGEN is not set | ||
1375 | # CONFIG_SND_CS4281 is not set | 1423 | # CONFIG_SND_CS4281 is not set |
1376 | # CONFIG_SND_CS46XX is not set | 1424 | # CONFIG_SND_CS46XX is not set |
1377 | # CONFIG_SND_CS5530 is not set | 1425 | # CONFIG_SND_CS5530 is not set |
@@ -1397,6 +1445,7 @@ CONFIG_SND_DUMMY=m | |||
1397 | # CONFIG_SND_HDA_INTEL is not set | 1445 | # CONFIG_SND_HDA_INTEL is not set |
1398 | # CONFIG_SND_HDSP is not set | 1446 | # CONFIG_SND_HDSP is not set |
1399 | # CONFIG_SND_HDSPM is not set | 1447 | # CONFIG_SND_HDSPM is not set |
1448 | # CONFIG_SND_HIFIER is not set | ||
1400 | # CONFIG_SND_ICE1712 is not set | 1449 | # CONFIG_SND_ICE1712 is not set |
1401 | # CONFIG_SND_ICE1724 is not set | 1450 | # CONFIG_SND_ICE1724 is not set |
1402 | # CONFIG_SND_INTEL8X0 is not set | 1451 | # CONFIG_SND_INTEL8X0 is not set |
@@ -1414,6 +1463,7 @@ CONFIG_SND_DUMMY=m | |||
1414 | # CONFIG_SND_TRIDENT is not set | 1463 | # CONFIG_SND_TRIDENT is not set |
1415 | # CONFIG_SND_VIA82XX is not set | 1464 | # CONFIG_SND_VIA82XX is not set |
1416 | # CONFIG_SND_VIA82XX_MODEM is not set | 1465 | # CONFIG_SND_VIA82XX_MODEM is not set |
1466 | # CONFIG_SND_VIRTUOSO is not set | ||
1417 | # CONFIG_SND_VX222 is not set | 1467 | # CONFIG_SND_VX222 is not set |
1418 | # CONFIG_SND_YMFPCI is not set | 1468 | # CONFIG_SND_YMFPCI is not set |
1419 | 1469 | ||
@@ -1461,6 +1511,10 @@ CONFIG_SND_USB_AUDIO=m | |||
1461 | # | 1511 | # |
1462 | 1512 | ||
1463 | # | 1513 | # |
1514 | # ALSA SoC audio for Freescale SOCs | ||
1515 | # | ||
1516 | |||
1517 | # | ||
1464 | # Open Sound System | 1518 | # Open Sound System |
1465 | # | 1519 | # |
1466 | # CONFIG_SOUND_PRIME is not set | 1520 | # CONFIG_SOUND_PRIME is not set |
@@ -1482,6 +1536,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1482 | CONFIG_USB_ARCH_HAS_EHCI=y | 1536 | CONFIG_USB_ARCH_HAS_EHCI=y |
1483 | CONFIG_USB=y | 1537 | CONFIG_USB=y |
1484 | # CONFIG_USB_DEBUG is not set | 1538 | # CONFIG_USB_DEBUG is not set |
1539 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1485 | 1540 | ||
1486 | # | 1541 | # |
1487 | # Miscellaneous USB options | 1542 | # Miscellaneous USB options |
@@ -1497,9 +1552,9 @@ CONFIG_USB_DYNAMIC_MINORS=y | |||
1497 | # USB Host Controller Drivers | 1552 | # USB Host Controller Drivers |
1498 | # | 1553 | # |
1499 | CONFIG_USB_EHCI_HCD=m | 1554 | CONFIG_USB_EHCI_HCD=m |
1500 | CONFIG_USB_EHCI_SPLIT_ISO=y | ||
1501 | CONFIG_USB_EHCI_ROOT_HUB_TT=y | 1555 | CONFIG_USB_EHCI_ROOT_HUB_TT=y |
1502 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1556 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1557 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1503 | # CONFIG_USB_ISP116X_HCD is not set | 1558 | # CONFIG_USB_ISP116X_HCD is not set |
1504 | CONFIG_USB_OHCI_HCD=y | 1559 | CONFIG_USB_OHCI_HCD=y |
1505 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 1560 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -1547,11 +1602,8 @@ CONFIG_USB_MON=y | |||
1547 | # | 1602 | # |
1548 | # USB port drivers | 1603 | # USB port drivers |
1549 | # | 1604 | # |
1550 | |||
1551 | # | ||
1552 | # USB Serial Converter support | ||
1553 | # | ||
1554 | CONFIG_USB_SERIAL=m | 1605 | CONFIG_USB_SERIAL=m |
1606 | CONFIG_USB_EZUSB=y | ||
1555 | # CONFIG_USB_SERIAL_GENERIC is not set | 1607 | # CONFIG_USB_SERIAL_GENERIC is not set |
1556 | # CONFIG_USB_SERIAL_AIRCABLE is not set | 1608 | # CONFIG_USB_SERIAL_AIRCABLE is not set |
1557 | # CONFIG_USB_SERIAL_AIRPRIME is not set | 1609 | # CONFIG_USB_SERIAL_AIRPRIME is not set |
@@ -1572,6 +1624,7 @@ CONFIG_USB_SERIAL_IPAQ=m | |||
1572 | # CONFIG_USB_SERIAL_EDGEPORT_TI is not set | 1624 | # CONFIG_USB_SERIAL_EDGEPORT_TI is not set |
1573 | # CONFIG_USB_SERIAL_GARMIN is not set | 1625 | # CONFIG_USB_SERIAL_GARMIN is not set |
1574 | # CONFIG_USB_SERIAL_IPW is not set | 1626 | # CONFIG_USB_SERIAL_IPW is not set |
1627 | # CONFIG_USB_SERIAL_IUU is not set | ||
1575 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m | 1628 | CONFIG_USB_SERIAL_KEYSPAN_PDA=m |
1576 | CONFIG_USB_SERIAL_KEYSPAN=m | 1629 | CONFIG_USB_SERIAL_KEYSPAN=m |
1577 | CONFIG_USB_SERIAL_KEYSPAN_MPR=y | 1630 | CONFIG_USB_SERIAL_KEYSPAN_MPR=y |
@@ -1603,7 +1656,6 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y | |||
1603 | # CONFIG_USB_SERIAL_OPTION is not set | 1656 | # CONFIG_USB_SERIAL_OPTION is not set |
1604 | # CONFIG_USB_SERIAL_OMNINET is not set | 1657 | # CONFIG_USB_SERIAL_OMNINET is not set |
1605 | # CONFIG_USB_SERIAL_DEBUG is not set | 1658 | # CONFIG_USB_SERIAL_DEBUG is not set |
1606 | CONFIG_USB_EZUSB=y | ||
1607 | 1659 | ||
1608 | # | 1660 | # |
1609 | # USB Miscellaneous drivers | 1661 | # USB Miscellaneous drivers |
@@ -1628,16 +1680,9 @@ CONFIG_USB_APPLEDISPLAY=m | |||
1628 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1680 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1629 | # CONFIG_USB_IOWARRIOR is not set | 1681 | # CONFIG_USB_IOWARRIOR is not set |
1630 | # CONFIG_USB_TEST is not set | 1682 | # CONFIG_USB_TEST is not set |
1631 | |||
1632 | # | ||
1633 | # USB DSL modem support | ||
1634 | # | ||
1635 | |||
1636 | # | ||
1637 | # USB Gadget Support | ||
1638 | # | ||
1639 | # CONFIG_USB_GADGET is not set | 1683 | # CONFIG_USB_GADGET is not set |
1640 | # CONFIG_MMC is not set | 1684 | # CONFIG_MMC is not set |
1685 | # CONFIG_MEMSTICK is not set | ||
1641 | CONFIG_NEW_LEDS=y | 1686 | CONFIG_NEW_LEDS=y |
1642 | CONFIG_LEDS_CLASS=y | 1687 | CONFIG_LEDS_CLASS=y |
1643 | 1688 | ||
@@ -1655,6 +1700,7 @@ CONFIG_LEDS_TRIGGER_IDE_DISK=y | |||
1655 | # CONFIG_INFINIBAND is not set | 1700 | # CONFIG_INFINIBAND is not set |
1656 | # CONFIG_EDAC is not set | 1701 | # CONFIG_EDAC is not set |
1657 | # CONFIG_RTC_CLASS is not set | 1702 | # CONFIG_RTC_CLASS is not set |
1703 | # CONFIG_DMADEVICES is not set | ||
1658 | 1704 | ||
1659 | # | 1705 | # |
1660 | # Userspace I/O | 1706 | # Userspace I/O |
@@ -1680,12 +1726,10 @@ CONFIG_FS_POSIX_ACL=y | |||
1680 | # CONFIG_XFS_FS is not set | 1726 | # CONFIG_XFS_FS is not set |
1681 | # CONFIG_GFS2_FS is not set | 1727 | # CONFIG_GFS2_FS is not set |
1682 | # CONFIG_OCFS2_FS is not set | 1728 | # CONFIG_OCFS2_FS is not set |
1683 | # CONFIG_MINIX_FS is not set | 1729 | CONFIG_DNOTIFY=y |
1684 | # CONFIG_ROMFS_FS is not set | ||
1685 | CONFIG_INOTIFY=y | 1730 | CONFIG_INOTIFY=y |
1686 | CONFIG_INOTIFY_USER=y | 1731 | CONFIG_INOTIFY_USER=y |
1687 | # CONFIG_QUOTA is not set | 1732 | # CONFIG_QUOTA is not set |
1688 | CONFIG_DNOTIFY=y | ||
1689 | # CONFIG_AUTOFS_FS is not set | 1733 | # CONFIG_AUTOFS_FS is not set |
1690 | CONFIG_AUTOFS4_FS=m | 1734 | CONFIG_AUTOFS4_FS=m |
1691 | CONFIG_FUSE_FS=m | 1735 | CONFIG_FUSE_FS=m |
@@ -1733,8 +1777,10 @@ CONFIG_HFSPLUS_FS=m | |||
1733 | # CONFIG_EFS_FS is not set | 1777 | # CONFIG_EFS_FS is not set |
1734 | # CONFIG_CRAMFS is not set | 1778 | # CONFIG_CRAMFS is not set |
1735 | # CONFIG_VXFS_FS is not set | 1779 | # CONFIG_VXFS_FS is not set |
1780 | # CONFIG_MINIX_FS is not set | ||
1736 | # CONFIG_HPFS_FS is not set | 1781 | # CONFIG_HPFS_FS is not set |
1737 | # CONFIG_QNX4FS_FS is not set | 1782 | # CONFIG_QNX4FS_FS is not set |
1783 | # CONFIG_ROMFS_FS is not set | ||
1738 | # CONFIG_SYSV_FS is not set | 1784 | # CONFIG_SYSV_FS is not set |
1739 | # CONFIG_UFS_FS is not set | 1785 | # CONFIG_UFS_FS is not set |
1740 | CONFIG_NETWORK_FILESYSTEMS=y | 1786 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1828,7 +1874,6 @@ CONFIG_NLS_ISO8859_1=m | |||
1828 | # CONFIG_NLS_KOI8_U is not set | 1874 | # CONFIG_NLS_KOI8_U is not set |
1829 | CONFIG_NLS_UTF8=m | 1875 | CONFIG_NLS_UTF8=m |
1830 | # CONFIG_DLM is not set | 1876 | # CONFIG_DLM is not set |
1831 | # CONFIG_UCC_SLOW is not set | ||
1832 | 1877 | ||
1833 | # | 1878 | # |
1834 | # Library routines | 1879 | # Library routines |
@@ -1850,11 +1895,6 @@ CONFIG_PLIST=y | |||
1850 | CONFIG_HAS_IOMEM=y | 1895 | CONFIG_HAS_IOMEM=y |
1851 | CONFIG_HAS_IOPORT=y | 1896 | CONFIG_HAS_IOPORT=y |
1852 | CONFIG_HAS_DMA=y | 1897 | CONFIG_HAS_DMA=y |
1853 | CONFIG_INSTRUMENTATION=y | ||
1854 | CONFIG_PROFILING=y | ||
1855 | CONFIG_OPROFILE=y | ||
1856 | # CONFIG_KPROBES is not set | ||
1857 | # CONFIG_MARKERS is not set | ||
1858 | 1898 | ||
1859 | # | 1899 | # |
1860 | # Kernel hacking | 1900 | # Kernel hacking |
@@ -1873,6 +1913,7 @@ CONFIG_SCHED_DEBUG=y | |||
1873 | # CONFIG_SCHEDSTATS is not set | 1913 | # CONFIG_SCHEDSTATS is not set |
1874 | # CONFIG_TIMER_STATS is not set | 1914 | # CONFIG_TIMER_STATS is not set |
1875 | # CONFIG_SLUB_DEBUG_ON is not set | 1915 | # CONFIG_SLUB_DEBUG_ON is not set |
1916 | # CONFIG_SLUB_STATS is not set | ||
1876 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1917 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1877 | # CONFIG_RT_MUTEX_TESTER is not set | 1918 | # CONFIG_RT_MUTEX_TESTER is not set |
1878 | # CONFIG_DEBUG_SPINLOCK is not set | 1919 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1885,9 +1926,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1885 | # CONFIG_DEBUG_VM is not set | 1926 | # CONFIG_DEBUG_VM is not set |
1886 | # CONFIG_DEBUG_LIST is not set | 1927 | # CONFIG_DEBUG_LIST is not set |
1887 | # CONFIG_DEBUG_SG is not set | 1928 | # CONFIG_DEBUG_SG is not set |
1888 | # CONFIG_FORCED_INLINING is not set | ||
1889 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1929 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1890 | # CONFIG_RCU_TORTURE_TEST is not set | 1930 | # CONFIG_RCU_TORTURE_TEST is not set |
1931 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1891 | # CONFIG_FAULT_INJECTION is not set | 1932 | # CONFIG_FAULT_INJECTION is not set |
1892 | # CONFIG_SAMPLES is not set | 1933 | # CONFIG_SAMPLES is not set |
1893 | # CONFIG_DEBUG_STACKOVERFLOW is not set | 1934 | # CONFIG_DEBUG_STACKOVERFLOW is not set |
@@ -1908,7 +1949,9 @@ CONFIG_BOOTX_TEXT=y | |||
1908 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1949 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1909 | CONFIG_CRYPTO=y | 1950 | CONFIG_CRYPTO=y |
1910 | CONFIG_CRYPTO_ALGAPI=y | 1951 | CONFIG_CRYPTO_ALGAPI=y |
1952 | CONFIG_CRYPTO_AEAD=y | ||
1911 | CONFIG_CRYPTO_BLKCIPHER=y | 1953 | CONFIG_CRYPTO_BLKCIPHER=y |
1954 | # CONFIG_CRYPTO_SEQIV is not set | ||
1912 | CONFIG_CRYPTO_HASH=y | 1955 | CONFIG_CRYPTO_HASH=y |
1913 | CONFIG_CRYPTO_MANAGER=y | 1956 | CONFIG_CRYPTO_MANAGER=y |
1914 | CONFIG_CRYPTO_HMAC=y | 1957 | CONFIG_CRYPTO_HMAC=y |
@@ -1927,6 +1970,9 @@ CONFIG_CRYPTO_CBC=y | |||
1927 | CONFIG_CRYPTO_PCBC=m | 1970 | CONFIG_CRYPTO_PCBC=m |
1928 | # CONFIG_CRYPTO_LRW is not set | 1971 | # CONFIG_CRYPTO_LRW is not set |
1929 | # CONFIG_CRYPTO_XTS is not set | 1972 | # CONFIG_CRYPTO_XTS is not set |
1973 | # CONFIG_CRYPTO_CTR is not set | ||
1974 | # CONFIG_CRYPTO_GCM is not set | ||
1975 | # CONFIG_CRYPTO_CCM is not set | ||
1930 | # CONFIG_CRYPTO_CRYPTD is not set | 1976 | # CONFIG_CRYPTO_CRYPTD is not set |
1931 | CONFIG_CRYPTO_DES=y | 1977 | CONFIG_CRYPTO_DES=y |
1932 | # CONFIG_CRYPTO_FCRYPT is not set | 1978 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1942,11 +1988,14 @@ CONFIG_CRYPTO_ARC4=m | |||
1942 | CONFIG_CRYPTO_KHAZAD=m | 1988 | CONFIG_CRYPTO_KHAZAD=m |
1943 | CONFIG_CRYPTO_ANUBIS=m | 1989 | CONFIG_CRYPTO_ANUBIS=m |
1944 | # CONFIG_CRYPTO_SEED is not set | 1990 | # CONFIG_CRYPTO_SEED is not set |
1991 | # CONFIG_CRYPTO_SALSA20 is not set | ||
1945 | CONFIG_CRYPTO_DEFLATE=m | 1992 | CONFIG_CRYPTO_DEFLATE=m |
1946 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1993 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1947 | CONFIG_CRYPTO_CRC32C=m | 1994 | CONFIG_CRYPTO_CRC32C=m |
1948 | # CONFIG_CRYPTO_CAMELLIA is not set | 1995 | # CONFIG_CRYPTO_CAMELLIA is not set |
1949 | # CONFIG_CRYPTO_TEST is not set | 1996 | # CONFIG_CRYPTO_TEST is not set |
1950 | # CONFIG_CRYPTO_AUTHENC is not set | 1997 | CONFIG_CRYPTO_AUTHENC=y |
1998 | # CONFIG_CRYPTO_LZO is not set | ||
1951 | CONFIG_CRYPTO_HW=y | 1999 | CONFIG_CRYPTO_HW=y |
2000 | # CONFIG_CRYPTO_DEV_HIFN_795X is not set | ||
1952 | # CONFIG_PPC_CLOCK is not set | 2001 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/ppc64_defconfig b/arch/powerpc/configs/ppc64_defconfig index 7695a4c66e80..880ab7ad10c1 100644 --- a/arch/powerpc/configs/ppc64_defconfig +++ b/arch/powerpc/configs/ppc64_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Fri Dec 21 14:47:29 2007 | 4 | # Thu Mar 20 11:06:28 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -49,7 +50,9 @@ CONFIG_GENERIC_TBSYNC=y | |||
49 | CONFIG_AUDIT_ARCH=y | 50 | CONFIG_AUDIT_ARCH=y |
50 | CONFIG_GENERIC_BUG=y | 51 | CONFIG_GENERIC_BUG=y |
51 | # CONFIG_DEFAULT_UIMAGE is not set | 52 | # CONFIG_DEFAULT_UIMAGE is not set |
52 | CONFIG_PPC64_SWSUSP=y | 53 | CONFIG_HIBERNATE_64=y |
54 | CONFIG_ARCH_HIBERNATION_POSSIBLE=y | ||
55 | CONFIG_ARCH_SUSPEND_POSSIBLE=y | ||
53 | # CONFIG_PPC_DCR_NATIVE is not set | 56 | # CONFIG_PPC_DCR_NATIVE is not set |
54 | CONFIG_PPC_DCR_MMIO=y | 57 | CONFIG_PPC_DCR_MMIO=y |
55 | CONFIG_PPC_DCR=y | 58 | CONFIG_PPC_DCR=y |
@@ -72,8 +75,6 @@ CONFIG_POSIX_MQUEUE=y | |||
72 | CONFIG_TASKSTATS=y | 75 | CONFIG_TASKSTATS=y |
73 | CONFIG_TASK_DELAY_ACCT=y | 76 | CONFIG_TASK_DELAY_ACCT=y |
74 | # CONFIG_TASK_XACCT is not set | 77 | # CONFIG_TASK_XACCT is not set |
75 | # CONFIG_USER_NS is not set | ||
76 | # CONFIG_PID_NS is not set | ||
77 | # CONFIG_AUDIT is not set | 78 | # CONFIG_AUDIT is not set |
78 | CONFIG_IKCONFIG=y | 79 | CONFIG_IKCONFIG=y |
79 | CONFIG_IKCONFIG_PROC=y | 80 | CONFIG_IKCONFIG_PROC=y |
@@ -82,13 +83,20 @@ CONFIG_CGROUPS=y | |||
82 | # CONFIG_CGROUP_DEBUG is not set | 83 | # CONFIG_CGROUP_DEBUG is not set |
83 | # CONFIG_CGROUP_NS is not set | 84 | # CONFIG_CGROUP_NS is not set |
84 | CONFIG_CPUSETS=y | 85 | CONFIG_CPUSETS=y |
85 | CONFIG_FAIR_GROUP_SCHED=y | 86 | # CONFIG_GROUP_SCHED is not set |
86 | CONFIG_FAIR_USER_SCHED=y | 87 | # CONFIG_USER_SCHED is not set |
87 | # CONFIG_FAIR_CGROUP_SCHED is not set | 88 | # CONFIG_CGROUP_SCHED is not set |
88 | # CONFIG_CGROUP_CPUACCT is not set | 89 | # CONFIG_CGROUP_CPUACCT is not set |
90 | # CONFIG_RESOURCE_COUNTERS is not set | ||
89 | CONFIG_SYSFS_DEPRECATED=y | 91 | CONFIG_SYSFS_DEPRECATED=y |
92 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
90 | CONFIG_PROC_PID_CPUSET=y | 93 | CONFIG_PROC_PID_CPUSET=y |
91 | CONFIG_RELAY=y | 94 | CONFIG_RELAY=y |
95 | CONFIG_NAMESPACES=y | ||
96 | # CONFIG_UTS_NS is not set | ||
97 | # CONFIG_IPC_NS is not set | ||
98 | # CONFIG_USER_NS is not set | ||
99 | # CONFIG_PID_NS is not set | ||
92 | CONFIG_BLK_DEV_INITRD=y | 100 | CONFIG_BLK_DEV_INITRD=y |
93 | CONFIG_INITRAMFS_SOURCE="" | 101 | CONFIG_INITRAMFS_SOURCE="" |
94 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 102 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -102,11 +110,13 @@ CONFIG_HOTPLUG=y | |||
102 | CONFIG_PRINTK=y | 110 | CONFIG_PRINTK=y |
103 | CONFIG_BUG=y | 111 | CONFIG_BUG=y |
104 | CONFIG_ELF_CORE=y | 112 | CONFIG_ELF_CORE=y |
113 | # CONFIG_COMPAT_BRK is not set | ||
105 | CONFIG_BASE_FULL=y | 114 | CONFIG_BASE_FULL=y |
106 | CONFIG_FUTEX=y | 115 | CONFIG_FUTEX=y |
107 | CONFIG_ANON_INODES=y | 116 | CONFIG_ANON_INODES=y |
108 | CONFIG_EPOLL=y | 117 | CONFIG_EPOLL=y |
109 | CONFIG_SIGNALFD=y | 118 | CONFIG_SIGNALFD=y |
119 | CONFIG_TIMERFD=y | ||
110 | CONFIG_EVENTFD=y | 120 | CONFIG_EVENTFD=y |
111 | CONFIG_SHMEM=y | 121 | CONFIG_SHMEM=y |
112 | CONFIG_VM_EVENT_COUNTERS=y | 122 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -114,6 +124,15 @@ CONFIG_SLUB_DEBUG=y | |||
114 | # CONFIG_SLAB is not set | 124 | # CONFIG_SLAB is not set |
115 | CONFIG_SLUB=y | 125 | CONFIG_SLUB=y |
116 | # CONFIG_SLOB is not set | 126 | # CONFIG_SLOB is not set |
127 | CONFIG_PROFILING=y | ||
128 | # CONFIG_MARKERS is not set | ||
129 | CONFIG_OPROFILE=y | ||
130 | CONFIG_HAVE_OPROFILE=y | ||
131 | # CONFIG_KPROBES is not set | ||
132 | CONFIG_HAVE_KPROBES=y | ||
133 | CONFIG_HAVE_KRETPROBES=y | ||
134 | CONFIG_PROC_PAGE_MONITOR=y | ||
135 | CONFIG_SLABINFO=y | ||
117 | CONFIG_RT_MUTEXES=y | 136 | CONFIG_RT_MUTEXES=y |
118 | # CONFIG_TINY_SHMEM is not set | 137 | # CONFIG_TINY_SHMEM is not set |
119 | CONFIG_BASE_SMALL=0 | 138 | CONFIG_BASE_SMALL=0 |
@@ -141,6 +160,7 @@ CONFIG_DEFAULT_AS=y | |||
141 | # CONFIG_DEFAULT_CFQ is not set | 160 | # CONFIG_DEFAULT_CFQ is not set |
142 | # CONFIG_DEFAULT_NOOP is not set | 161 | # CONFIG_DEFAULT_NOOP is not set |
143 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 162 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
163 | CONFIG_CLASSIC_RCU=y | ||
144 | 164 | ||
145 | # | 165 | # |
146 | # Platform support | 166 | # Platform support |
@@ -163,8 +183,8 @@ CONFIG_VIODASD=y | |||
163 | CONFIG_VIOCD=m | 183 | CONFIG_VIOCD=m |
164 | CONFIG_VIOTAPE=m | 184 | CONFIG_VIOTAPE=m |
165 | CONFIG_VIOPATH=y | 185 | CONFIG_VIOPATH=y |
166 | # CONFIG_PPC_MPC52xx is not set | 186 | # CONFIG_PPC_MPC512x is not set |
167 | # CONFIG_PPC_MPC5200 is not set | 187 | # CONFIG_PPC_MPC5121 is not set |
168 | CONFIG_PPC_PMAC=y | 188 | CONFIG_PPC_PMAC=y |
169 | CONFIG_PPC_PMAC64=y | 189 | CONFIG_PPC_PMAC64=y |
170 | CONFIG_PPC_MAPLE=y | 190 | CONFIG_PPC_MAPLE=y |
@@ -176,7 +196,6 @@ CONFIG_PPC_PASEMI=y | |||
176 | CONFIG_PPC_PASEMI_IOMMU=y | 196 | CONFIG_PPC_PASEMI_IOMMU=y |
177 | # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set | 197 | # CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set |
178 | CONFIG_PPC_PASEMI_MDIO=y | 198 | CONFIG_PPC_PASEMI_MDIO=y |
179 | CONFIG_ELECTRA_IDE=y | ||
180 | CONFIG_PPC_CELLEB=y | 199 | CONFIG_PPC_CELLEB=y |
181 | # CONFIG_PPC_PS3 is not set | 200 | # CONFIG_PPC_PS3 is not set |
182 | CONFIG_PPC_CELL=y | 201 | CONFIG_PPC_CELL=y |
@@ -193,11 +212,13 @@ CONFIG_CBE_RAS=y | |||
193 | CONFIG_CBE_THERM=m | 212 | CONFIG_CBE_THERM=m |
194 | CONFIG_CBE_CPUFREQ=m | 213 | CONFIG_CBE_CPUFREQ=m |
195 | CONFIG_CBE_CPUFREQ_PMI=m | 214 | CONFIG_CBE_CPUFREQ_PMI=m |
215 | CONFIG_OPROFILE_CELL=y | ||
196 | # CONFIG_PQ2ADS is not set | 216 | # CONFIG_PQ2ADS is not set |
197 | CONFIG_PPC_NATIVE=y | 217 | CONFIG_PPC_NATIVE=y |
198 | CONFIG_UDBG_RTAS_CONSOLE=y | 218 | CONFIG_UDBG_RTAS_CONSOLE=y |
199 | CONFIG_PPC_UDBG_BEAT=y | 219 | CONFIG_PPC_UDBG_BEAT=y |
200 | CONFIG_XICS=y | 220 | CONFIG_XICS=y |
221 | # CONFIG_IPIC is not set | ||
201 | CONFIG_MPIC=y | 222 | CONFIG_MPIC=y |
202 | # CONFIG_MPIC_WEIRD is not set | 223 | # CONFIG_MPIC_WEIRD is not set |
203 | CONFIG_PPC_I8259=y | 224 | CONFIG_PPC_I8259=y |
@@ -236,7 +257,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y | |||
236 | # | 257 | # |
237 | CONFIG_CPU_FREQ_PMAC64=y | 258 | CONFIG_CPU_FREQ_PMAC64=y |
238 | CONFIG_PPC_PASEMI_CPUFREQ=y | 259 | CONFIG_PPC_PASEMI_CPUFREQ=y |
239 | # CONFIG_CPM2 is not set | ||
240 | CONFIG_AXON_RAM=m | 260 | CONFIG_AXON_RAM=m |
241 | # CONFIG_FSL_ULI1575 is not set | 261 | # CONFIG_FSL_ULI1575 is not set |
242 | 262 | ||
@@ -252,17 +272,21 @@ CONFIG_HZ_250=y | |||
252 | # CONFIG_HZ_300 is not set | 272 | # CONFIG_HZ_300 is not set |
253 | # CONFIG_HZ_1000 is not set | 273 | # CONFIG_HZ_1000 is not set |
254 | CONFIG_HZ=250 | 274 | CONFIG_HZ=250 |
275 | # CONFIG_SCHED_HRTICK is not set | ||
255 | CONFIG_PREEMPT_NONE=y | 276 | CONFIG_PREEMPT_NONE=y |
256 | # CONFIG_PREEMPT_VOLUNTARY is not set | 277 | # CONFIG_PREEMPT_VOLUNTARY is not set |
257 | # CONFIG_PREEMPT is not set | 278 | # CONFIG_PREEMPT is not set |
258 | # CONFIG_PREEMPT_BKL is not set | ||
259 | CONFIG_BINFMT_ELF=y | 279 | CONFIG_BINFMT_ELF=y |
280 | CONFIG_COMPAT_BINFMT_ELF=y | ||
260 | CONFIG_BINFMT_MISC=m | 281 | CONFIG_BINFMT_MISC=m |
261 | CONFIG_FORCE_MAX_ZONEORDER=13 | 282 | CONFIG_FORCE_MAX_ZONEORDER=13 |
262 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 283 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
263 | CONFIG_IOMMU_VMERGE=y | 284 | CONFIG_IOMMU_VMERGE=y |
285 | CONFIG_IOMMU_HELPER=y | ||
264 | CONFIG_HOTPLUG_CPU=y | 286 | CONFIG_HOTPLUG_CPU=y |
265 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 287 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
288 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
289 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
266 | CONFIG_KEXEC=y | 290 | CONFIG_KEXEC=y |
267 | # CONFIG_CRASH_DUMP is not set | 291 | # CONFIG_CRASH_DUMP is not set |
268 | CONFIG_IRQ_ALL_CPUS=y | 292 | CONFIG_IRQ_ALL_CPUS=y |
@@ -294,11 +318,9 @@ CONFIG_PPC_HAS_HASH_64K=y | |||
294 | # CONFIG_SCHED_SMT is not set | 318 | # CONFIG_SCHED_SMT is not set |
295 | CONFIG_PROC_DEVICETREE=y | 319 | CONFIG_PROC_DEVICETREE=y |
296 | # CONFIG_CMDLINE_BOOL is not set | 320 | # CONFIG_CMDLINE_BOOL is not set |
321 | CONFIG_ARCH_WANTS_FREEZER_CONTROL=y | ||
297 | # CONFIG_PM is not set | 322 | # CONFIG_PM is not set |
298 | CONFIG_SUSPEND_SMP_POSSIBLE=y | ||
299 | CONFIG_HIBERNATION_SMP_POSSIBLE=y | ||
300 | CONFIG_SECCOMP=y | 323 | CONFIG_SECCOMP=y |
301 | # CONFIG_WANT_DEVICE_TREE is not set | ||
302 | CONFIG_ISA_DMA_API=y | 324 | CONFIG_ISA_DMA_API=y |
303 | 325 | ||
304 | # | 326 | # |
@@ -352,6 +374,7 @@ CONFIG_XFRM=y | |||
352 | CONFIG_XFRM_USER=m | 374 | CONFIG_XFRM_USER=m |
353 | # CONFIG_XFRM_SUB_POLICY is not set | 375 | # CONFIG_XFRM_SUB_POLICY is not set |
354 | # CONFIG_XFRM_MIGRATE is not set | 376 | # CONFIG_XFRM_MIGRATE is not set |
377 | # CONFIG_XFRM_STATISTICS is not set | ||
355 | CONFIG_NET_KEY=m | 378 | CONFIG_NET_KEY=m |
356 | # CONFIG_NET_KEY_MIGRATE is not set | 379 | # CONFIG_NET_KEY_MIGRATE is not set |
357 | CONFIG_INET=y | 380 | CONFIG_INET=y |
@@ -375,7 +398,7 @@ CONFIG_INET_TUNNEL=y | |||
375 | CONFIG_INET_XFRM_MODE_TRANSPORT=y | 398 | CONFIG_INET_XFRM_MODE_TRANSPORT=y |
376 | CONFIG_INET_XFRM_MODE_TUNNEL=y | 399 | CONFIG_INET_XFRM_MODE_TUNNEL=y |
377 | CONFIG_INET_XFRM_MODE_BEET=y | 400 | CONFIG_INET_XFRM_MODE_BEET=y |
378 | CONFIG_INET_LRO=m | 401 | CONFIG_INET_LRO=y |
379 | CONFIG_INET_DIAG=y | 402 | CONFIG_INET_DIAG=y |
380 | CONFIG_INET_TCP_DIAG=y | 403 | CONFIG_INET_TCP_DIAG=y |
381 | # CONFIG_TCP_CONG_ADVANCED is not set | 404 | # CONFIG_TCP_CONG_ADVANCED is not set |
@@ -389,14 +412,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
389 | # CONFIG_NETWORK_SECMARK is not set | 412 | # CONFIG_NETWORK_SECMARK is not set |
390 | CONFIG_NETFILTER=y | 413 | CONFIG_NETFILTER=y |
391 | # CONFIG_NETFILTER_DEBUG is not set | 414 | # CONFIG_NETFILTER_DEBUG is not set |
415 | CONFIG_NETFILTER_ADVANCED=y | ||
392 | 416 | ||
393 | # | 417 | # |
394 | # Core Netfilter Configuration | 418 | # Core Netfilter Configuration |
395 | # | 419 | # |
396 | CONFIG_NETFILTER_NETLINK=y | 420 | CONFIG_NETFILTER_NETLINK=m |
397 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 421 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
398 | CONFIG_NETFILTER_NETLINK_LOG=m | 422 | CONFIG_NETFILTER_NETLINK_LOG=m |
399 | CONFIG_NF_CONNTRACK_ENABLED=m | ||
400 | CONFIG_NF_CONNTRACK=m | 423 | CONFIG_NF_CONNTRACK=m |
401 | CONFIG_NF_CT_ACCT=y | 424 | CONFIG_NF_CT_ACCT=y |
402 | CONFIG_NF_CONNTRACK_MARK=y | 425 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -422,8 +445,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m | |||
422 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 445 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
423 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 446 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
424 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m | 447 | CONFIG_NETFILTER_XT_TARGET_NOTRACK=m |
448 | CONFIG_NETFILTER_XT_TARGET_RATEEST=m | ||
425 | CONFIG_NETFILTER_XT_TARGET_TRACE=m | 449 | CONFIG_NETFILTER_XT_TARGET_TRACE=m |
426 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 450 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
451 | CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m | ||
427 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 452 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
428 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 453 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
429 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m | 454 | CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m |
@@ -433,14 +458,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m | |||
433 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 458 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
434 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 459 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
435 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 460 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
461 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | ||
436 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 462 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
437 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 463 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
438 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 464 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
439 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 465 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
466 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | ||
440 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 467 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
441 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | 468 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
442 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 469 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
443 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 470 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
471 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | ||
444 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 472 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
445 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 473 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
446 | CONFIG_NETFILTER_XT_MATCH_STATE=m | 474 | CONFIG_NETFILTER_XT_MATCH_STATE=m |
@@ -458,13 +486,10 @@ CONFIG_NF_CONNTRACK_IPV4=m | |||
458 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | 486 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y |
459 | CONFIG_IP_NF_QUEUE=m | 487 | CONFIG_IP_NF_QUEUE=m |
460 | CONFIG_IP_NF_IPTABLES=m | 488 | CONFIG_IP_NF_IPTABLES=m |
461 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
462 | CONFIG_IP_NF_MATCH_TOS=m | ||
463 | CONFIG_IP_NF_MATCH_RECENT=m | 489 | CONFIG_IP_NF_MATCH_RECENT=m |
464 | CONFIG_IP_NF_MATCH_ECN=m | 490 | CONFIG_IP_NF_MATCH_ECN=m |
465 | CONFIG_IP_NF_MATCH_AH=m | 491 | CONFIG_IP_NF_MATCH_AH=m |
466 | CONFIG_IP_NF_MATCH_TTL=m | 492 | CONFIG_IP_NF_MATCH_TTL=m |
467 | CONFIG_IP_NF_MATCH_OWNER=m | ||
468 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 493 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
469 | CONFIG_IP_NF_FILTER=m | 494 | CONFIG_IP_NF_FILTER=m |
470 | CONFIG_IP_NF_TARGET_REJECT=m | 495 | CONFIG_IP_NF_TARGET_REJECT=m |
@@ -475,7 +500,6 @@ CONFIG_NF_NAT_NEEDED=y | |||
475 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 500 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
476 | CONFIG_IP_NF_TARGET_REDIRECT=m | 501 | CONFIG_IP_NF_TARGET_REDIRECT=m |
477 | CONFIG_IP_NF_TARGET_NETMAP=m | 502 | CONFIG_IP_NF_TARGET_NETMAP=m |
478 | CONFIG_IP_NF_TARGET_SAME=m | ||
479 | CONFIG_NF_NAT_SNMP_BASIC=m | 503 | CONFIG_NF_NAT_SNMP_BASIC=m |
480 | CONFIG_NF_NAT_PROTO_GRE=m | 504 | CONFIG_NF_NAT_PROTO_GRE=m |
481 | CONFIG_NF_NAT_FTP=m | 505 | CONFIG_NF_NAT_FTP=m |
@@ -486,7 +510,6 @@ CONFIG_NF_NAT_PPTP=m | |||
486 | CONFIG_NF_NAT_H323=m | 510 | CONFIG_NF_NAT_H323=m |
487 | CONFIG_NF_NAT_SIP=m | 511 | CONFIG_NF_NAT_SIP=m |
488 | CONFIG_IP_NF_MANGLE=m | 512 | CONFIG_IP_NF_MANGLE=m |
489 | CONFIG_IP_NF_TARGET_TOS=m | ||
490 | CONFIG_IP_NF_TARGET_ECN=m | 513 | CONFIG_IP_NF_TARGET_ECN=m |
491 | CONFIG_IP_NF_TARGET_TTL=m | 514 | CONFIG_IP_NF_TARGET_TTL=m |
492 | CONFIG_IP_NF_TARGET_CLUSTERIP=m | 515 | CONFIG_IP_NF_TARGET_CLUSTERIP=m |
@@ -517,6 +540,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
517 | # | 540 | # |
518 | # CONFIG_NET_PKTGEN is not set | 541 | # CONFIG_NET_PKTGEN is not set |
519 | # CONFIG_HAMRADIO is not set | 542 | # CONFIG_HAMRADIO is not set |
543 | # CONFIG_CAN is not set | ||
520 | # CONFIG_IRDA is not set | 544 | # CONFIG_IRDA is not set |
521 | # CONFIG_BT is not set | 545 | # CONFIG_BT is not set |
522 | # CONFIG_AF_RXRPC is not set | 546 | # CONFIG_AF_RXRPC is not set |
@@ -563,7 +587,7 @@ CONFIG_BLK_DEV_NBD=m | |||
563 | CONFIG_BLK_DEV_RAM=y | 587 | CONFIG_BLK_DEV_RAM=y |
564 | CONFIG_BLK_DEV_RAM_COUNT=16 | 588 | CONFIG_BLK_DEV_RAM_COUNT=16 |
565 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 589 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
566 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 590 | # CONFIG_BLK_DEV_XIP is not set |
567 | # CONFIG_CDROM_PKTCDVD is not set | 591 | # CONFIG_CDROM_PKTCDVD is not set |
568 | # CONFIG_ATA_OVER_ETH is not set | 592 | # CONFIG_ATA_OVER_ETH is not set |
569 | CONFIG_MISC_DEVICES=y | 593 | CONFIG_MISC_DEVICES=y |
@@ -571,11 +595,13 @@ CONFIG_MISC_DEVICES=y | |||
571 | # CONFIG_EEPROM_93CX6 is not set | 595 | # CONFIG_EEPROM_93CX6 is not set |
572 | # CONFIG_SGI_IOC4 is not set | 596 | # CONFIG_SGI_IOC4 is not set |
573 | # CONFIG_TIFM_CORE is not set | 597 | # CONFIG_TIFM_CORE is not set |
598 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
599 | CONFIG_HAVE_IDE=y | ||
574 | CONFIG_IDE=y | 600 | CONFIG_IDE=y |
575 | CONFIG_BLK_DEV_IDE=y | 601 | CONFIG_BLK_DEV_IDE=y |
576 | 602 | ||
577 | # | 603 | # |
578 | # Please see Documentation/ide.txt for help/info on IDE drives | 604 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
579 | # | 605 | # |
580 | # CONFIG_BLK_DEV_IDE_SATA is not set | 606 | # CONFIG_BLK_DEV_IDE_SATA is not set |
581 | CONFIG_BLK_DEV_IDEDISK=y | 607 | CONFIG_BLK_DEV_IDEDISK=y |
@@ -583,6 +609,7 @@ CONFIG_BLK_DEV_IDEDISK=y | |||
583 | # CONFIG_BLK_DEV_IDECS is not set | 609 | # CONFIG_BLK_DEV_IDECS is not set |
584 | # CONFIG_BLK_DEV_DELKIN is not set | 610 | # CONFIG_BLK_DEV_DELKIN is not set |
585 | CONFIG_BLK_DEV_IDECD=y | 611 | CONFIG_BLK_DEV_IDECD=y |
612 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
586 | # CONFIG_BLK_DEV_IDETAPE is not set | 613 | # CONFIG_BLK_DEV_IDETAPE is not set |
587 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 614 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
588 | # CONFIG_BLK_DEV_IDESCSI is not set | 615 | # CONFIG_BLK_DEV_IDESCSI is not set |
@@ -594,12 +621,12 @@ CONFIG_IDE_PROC_FS=y | |||
594 | # | 621 | # |
595 | CONFIG_IDE_GENERIC=y | 622 | CONFIG_IDE_GENERIC=y |
596 | # CONFIG_BLK_DEV_PLATFORM is not set | 623 | # CONFIG_BLK_DEV_PLATFORM is not set |
624 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
597 | 625 | ||
598 | # | 626 | # |
599 | # PCI IDE chipsets support | 627 | # PCI IDE chipsets support |
600 | # | 628 | # |
601 | CONFIG_BLK_DEV_IDEPCI=y | 629 | CONFIG_BLK_DEV_IDEPCI=y |
602 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
603 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 630 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
604 | # CONFIG_BLK_DEV_OFFBOARD is not set | 631 | # CONFIG_BLK_DEV_OFFBOARD is not set |
605 | CONFIG_BLK_DEV_GENERIC=y | 632 | CONFIG_BLK_DEV_GENERIC=y |
@@ -634,7 +661,6 @@ CONFIG_BLK_DEV_CELLEB=y | |||
634 | CONFIG_BLK_DEV_IDE_PMAC=y | 661 | CONFIG_BLK_DEV_IDE_PMAC=y |
635 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y | 662 | CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y |
636 | CONFIG_BLK_DEV_IDEDMA_PMAC=y | 663 | CONFIG_BLK_DEV_IDEDMA_PMAC=y |
637 | # CONFIG_IDE_ARM is not set | ||
638 | CONFIG_BLK_DEV_IDEDMA=y | 664 | CONFIG_BLK_DEV_IDEDMA=y |
639 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 665 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
640 | # CONFIG_BLK_DEV_HD is not set | 666 | # CONFIG_BLK_DEV_HD is not set |
@@ -701,6 +727,7 @@ CONFIG_SCSI_LOWLEVEL=y | |||
701 | CONFIG_SCSI_IBMVSCSI=y | 727 | CONFIG_SCSI_IBMVSCSI=y |
702 | # CONFIG_SCSI_INITIO is not set | 728 | # CONFIG_SCSI_INITIO is not set |
703 | # CONFIG_SCSI_INIA100 is not set | 729 | # CONFIG_SCSI_INIA100 is not set |
730 | # CONFIG_SCSI_MVSAS is not set | ||
704 | # CONFIG_SCSI_STEX is not set | 731 | # CONFIG_SCSI_STEX is not set |
705 | CONFIG_SCSI_SYM53C8XX_2=y | 732 | CONFIG_SCSI_SYM53C8XX_2=y |
706 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 733 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
@@ -760,6 +787,7 @@ CONFIG_SATA_SIL24=y | |||
760 | # CONFIG_PATA_MPIIX is not set | 787 | # CONFIG_PATA_MPIIX is not set |
761 | # CONFIG_PATA_OLDPIIX is not set | 788 | # CONFIG_PATA_OLDPIIX is not set |
762 | # CONFIG_PATA_NETCELL is not set | 789 | # CONFIG_PATA_NETCELL is not set |
790 | # CONFIG_PATA_NINJA32 is not set | ||
763 | # CONFIG_PATA_NS87410 is not set | 791 | # CONFIG_PATA_NS87410 is not set |
764 | # CONFIG_PATA_NS87415 is not set | 792 | # CONFIG_PATA_NS87415 is not set |
765 | # CONFIG_PATA_OPTI is not set | 793 | # CONFIG_PATA_OPTI is not set |
@@ -776,6 +804,7 @@ CONFIG_PATA_PCMCIA=y | |||
776 | # CONFIG_PATA_VIA is not set | 804 | # CONFIG_PATA_VIA is not set |
777 | CONFIG_PATA_WINBOND=y | 805 | CONFIG_PATA_WINBOND=y |
778 | CONFIG_PATA_PLATFORM=y | 806 | CONFIG_PATA_PLATFORM=y |
807 | # CONFIG_PATA_OF_PLATFORM is not set | ||
779 | CONFIG_PATA_SCC=y | 808 | CONFIG_PATA_SCC=y |
780 | CONFIG_MD=y | 809 | CONFIG_MD=y |
781 | CONFIG_BLK_DEV_MD=y | 810 | CONFIG_BLK_DEV_MD=y |
@@ -847,7 +876,6 @@ CONFIG_BONDING=m | |||
847 | # CONFIG_EQUALIZER is not set | 876 | # CONFIG_EQUALIZER is not set |
848 | CONFIG_TUN=m | 877 | CONFIG_TUN=m |
849 | # CONFIG_VETH is not set | 878 | # CONFIG_VETH is not set |
850 | # CONFIG_IP1000 is not set | ||
851 | # CONFIG_ARCNET is not set | 879 | # CONFIG_ARCNET is not set |
852 | CONFIG_PHYLIB=y | 880 | CONFIG_PHYLIB=y |
853 | 881 | ||
@@ -863,11 +891,8 @@ CONFIG_MARVELL_PHY=y | |||
863 | # CONFIG_SMSC_PHY is not set | 891 | # CONFIG_SMSC_PHY is not set |
864 | CONFIG_BROADCOM_PHY=m | 892 | CONFIG_BROADCOM_PHY=m |
865 | # CONFIG_ICPLUS_PHY is not set | 893 | # CONFIG_ICPLUS_PHY is not set |
866 | CONFIG_FIXED_PHY=m | 894 | # CONFIG_REALTEK_PHY is not set |
867 | CONFIG_FIXED_MII_10_FDX=y | 895 | # CONFIG_FIXED_PHY is not set |
868 | CONFIG_FIXED_MII_100_FDX=y | ||
869 | # CONFIG_FIXED_MII_1000_FDX is not set | ||
870 | CONFIG_FIXED_MII_AMNT=1 | ||
871 | # CONFIG_MDIO_BITBANG is not set | 896 | # CONFIG_MDIO_BITBANG is not set |
872 | CONFIG_NET_ETHERNET=y | 897 | CONFIG_NET_ETHERNET=y |
873 | CONFIG_MII=y | 898 | CONFIG_MII=y |
@@ -899,6 +924,7 @@ CONFIG_E100=y | |||
899 | # CONFIG_NE2K_PCI is not set | 924 | # CONFIG_NE2K_PCI is not set |
900 | # CONFIG_8139CP is not set | 925 | # CONFIG_8139CP is not set |
901 | # CONFIG_8139TOO is not set | 926 | # CONFIG_8139TOO is not set |
927 | # CONFIG_R6040 is not set | ||
902 | # CONFIG_SIS900 is not set | 928 | # CONFIG_SIS900 is not set |
903 | # CONFIG_EPIC100 is not set | 929 | # CONFIG_EPIC100 is not set |
904 | # CONFIG_SUNDANCE is not set | 930 | # CONFIG_SUNDANCE is not set |
@@ -912,6 +938,9 @@ CONFIG_E1000=y | |||
912 | # CONFIG_E1000_NAPI is not set | 938 | # CONFIG_E1000_NAPI is not set |
913 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 939 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
914 | # CONFIG_E1000E is not set | 940 | # CONFIG_E1000E is not set |
941 | # CONFIG_E1000E_ENABLED is not set | ||
942 | # CONFIG_IP1000 is not set | ||
943 | # CONFIG_IGB is not set | ||
915 | # CONFIG_NS83820 is not set | 944 | # CONFIG_NS83820 is not set |
916 | # CONFIG_HAMACHI is not set | 945 | # CONFIG_HAMACHI is not set |
917 | # CONFIG_YELLOWFIN is not set | 946 | # CONFIG_YELLOWFIN is not set |
@@ -940,6 +969,7 @@ CONFIG_IXGB=m | |||
940 | CONFIG_PASEMI_MAC=y | 969 | CONFIG_PASEMI_MAC=y |
941 | # CONFIG_MLX4_CORE is not set | 970 | # CONFIG_MLX4_CORE is not set |
942 | # CONFIG_TEHUTI is not set | 971 | # CONFIG_TEHUTI is not set |
972 | # CONFIG_BNX2X is not set | ||
943 | CONFIG_TR=y | 973 | CONFIG_TR=y |
944 | CONFIG_IBMOL=y | 974 | CONFIG_IBMOL=y |
945 | # CONFIG_3C359 is not set | 975 | # CONFIG_3C359 is not set |
@@ -977,7 +1007,6 @@ CONFIG_PPPOE=m | |||
977 | # CONFIG_SLIP is not set | 1007 | # CONFIG_SLIP is not set |
978 | CONFIG_SLHC=m | 1008 | CONFIG_SLHC=m |
979 | # CONFIG_NET_FC is not set | 1009 | # CONFIG_NET_FC is not set |
980 | # CONFIG_SHAPER is not set | ||
981 | CONFIG_NETCONSOLE=y | 1010 | CONFIG_NETCONSOLE=y |
982 | # CONFIG_NETCONSOLE_DYNAMIC is not set | 1011 | # CONFIG_NETCONSOLE_DYNAMIC is not set |
983 | CONFIG_NETPOLL=y | 1012 | CONFIG_NETPOLL=y |
@@ -1056,6 +1085,7 @@ CONFIG_VT_CONSOLE=y | |||
1056 | CONFIG_HW_CONSOLE=y | 1085 | CONFIG_HW_CONSOLE=y |
1057 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 1086 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
1058 | # CONFIG_SERIAL_NONSTANDARD is not set | 1087 | # CONFIG_SERIAL_NONSTANDARD is not set |
1088 | # CONFIG_NOZOMI is not set | ||
1059 | 1089 | ||
1060 | # | 1090 | # |
1061 | # Serial drivers | 1091 | # Serial drivers |
@@ -1103,6 +1133,7 @@ CONFIG_GEN_RTC=y | |||
1103 | # CONFIG_SYNCLINK_CS is not set | 1133 | # CONFIG_SYNCLINK_CS is not set |
1104 | # CONFIG_CARDMAN_4000 is not set | 1134 | # CONFIG_CARDMAN_4000 is not set |
1105 | # CONFIG_CARDMAN_4040 is not set | 1135 | # CONFIG_CARDMAN_4040 is not set |
1136 | # CONFIG_IPWIRELESS is not set | ||
1106 | CONFIG_RAW_DRIVER=y | 1137 | CONFIG_RAW_DRIVER=y |
1107 | CONFIG_MAX_RAW_DEVS=256 | 1138 | CONFIG_MAX_RAW_DEVS=256 |
1108 | # CONFIG_HANGCHECK_TIMER is not set | 1139 | # CONFIG_HANGCHECK_TIMER is not set |
@@ -1151,13 +1182,12 @@ CONFIG_I2C_PASEMI=y | |||
1151 | # | 1182 | # |
1152 | # Miscellaneous I2C Chip support | 1183 | # Miscellaneous I2C Chip support |
1153 | # | 1184 | # |
1154 | # CONFIG_SENSORS_DS1337 is not set | ||
1155 | # CONFIG_SENSORS_DS1374 is not set | ||
1156 | # CONFIG_DS1682 is not set | 1185 | # CONFIG_DS1682 is not set |
1157 | # CONFIG_SENSORS_EEPROM is not set | 1186 | # CONFIG_SENSORS_EEPROM is not set |
1158 | # CONFIG_SENSORS_PCF8574 is not set | 1187 | # CONFIG_SENSORS_PCF8574 is not set |
1159 | # CONFIG_SENSORS_PCA9539 is not set | 1188 | # CONFIG_PCF8575 is not set |
1160 | # CONFIG_SENSORS_PCF8591 is not set | 1189 | # CONFIG_SENSORS_PCF8591 is not set |
1190 | # CONFIG_TPS65010 is not set | ||
1161 | # CONFIG_SENSORS_MAX6875 is not set | 1191 | # CONFIG_SENSORS_MAX6875 is not set |
1162 | # CONFIG_SENSORS_TSL2550 is not set | 1192 | # CONFIG_SENSORS_TSL2550 is not set |
1163 | # CONFIG_I2C_DEBUG_CORE is not set | 1193 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -1173,6 +1203,7 @@ CONFIG_I2C_PASEMI=y | |||
1173 | # CONFIG_W1 is not set | 1203 | # CONFIG_W1 is not set |
1174 | # CONFIG_POWER_SUPPLY is not set | 1204 | # CONFIG_POWER_SUPPLY is not set |
1175 | # CONFIG_HWMON is not set | 1205 | # CONFIG_HWMON is not set |
1206 | # CONFIG_THERMAL is not set | ||
1176 | # CONFIG_WATCHDOG is not set | 1207 | # CONFIG_WATCHDOG is not set |
1177 | 1208 | ||
1178 | # | 1209 | # |
@@ -1337,6 +1368,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1337 | # CONFIG_SND_BT87X is not set | 1368 | # CONFIG_SND_BT87X is not set |
1338 | # CONFIG_SND_CA0106 is not set | 1369 | # CONFIG_SND_CA0106 is not set |
1339 | # CONFIG_SND_CMIPCI is not set | 1370 | # CONFIG_SND_CMIPCI is not set |
1371 | # CONFIG_SND_OXYGEN is not set | ||
1340 | # CONFIG_SND_CS4281 is not set | 1372 | # CONFIG_SND_CS4281 is not set |
1341 | # CONFIG_SND_CS46XX is not set | 1373 | # CONFIG_SND_CS46XX is not set |
1342 | # CONFIG_SND_CS5530 is not set | 1374 | # CONFIG_SND_CS5530 is not set |
@@ -1362,6 +1394,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1362 | # CONFIG_SND_HDA_INTEL is not set | 1394 | # CONFIG_SND_HDA_INTEL is not set |
1363 | # CONFIG_SND_HDSP is not set | 1395 | # CONFIG_SND_HDSP is not set |
1364 | # CONFIG_SND_HDSPM is not set | 1396 | # CONFIG_SND_HDSPM is not set |
1397 | # CONFIG_SND_HIFIER is not set | ||
1365 | # CONFIG_SND_ICE1712 is not set | 1398 | # CONFIG_SND_ICE1712 is not set |
1366 | # CONFIG_SND_ICE1724 is not set | 1399 | # CONFIG_SND_ICE1724 is not set |
1367 | # CONFIG_SND_INTEL8X0 is not set | 1400 | # CONFIG_SND_INTEL8X0 is not set |
@@ -1379,6 +1412,7 @@ CONFIG_SND_VERBOSE_PROCFS=y | |||
1379 | # CONFIG_SND_TRIDENT is not set | 1412 | # CONFIG_SND_TRIDENT is not set |
1380 | # CONFIG_SND_VIA82XX is not set | 1413 | # CONFIG_SND_VIA82XX is not set |
1381 | # CONFIG_SND_VIA82XX_MODEM is not set | 1414 | # CONFIG_SND_VIA82XX_MODEM is not set |
1415 | # CONFIG_SND_VIRTUOSO is not set | ||
1382 | # CONFIG_SND_VX222 is not set | 1416 | # CONFIG_SND_VX222 is not set |
1383 | # CONFIG_SND_YMFPCI is not set | 1417 | # CONFIG_SND_YMFPCI is not set |
1384 | 1418 | ||
@@ -1426,6 +1460,10 @@ CONFIG_SND_AOA_SOUNDBUS_I2S=m | |||
1426 | # | 1460 | # |
1427 | 1461 | ||
1428 | # | 1462 | # |
1463 | # ALSA SoC audio for Freescale SOCs | ||
1464 | # | ||
1465 | |||
1466 | # | ||
1429 | # Open Sound System | 1467 | # Open Sound System |
1430 | # | 1468 | # |
1431 | # CONFIG_SOUND_PRIME is not set | 1469 | # CONFIG_SOUND_PRIME is not set |
@@ -1447,6 +1485,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1447 | CONFIG_USB_ARCH_HAS_EHCI=y | 1485 | CONFIG_USB_ARCH_HAS_EHCI=y |
1448 | CONFIG_USB=y | 1486 | CONFIG_USB=y |
1449 | # CONFIG_USB_DEBUG is not set | 1487 | # CONFIG_USB_DEBUG is not set |
1488 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1450 | 1489 | ||
1451 | # | 1490 | # |
1452 | # Miscellaneous USB options | 1491 | # Miscellaneous USB options |
@@ -1460,10 +1499,10 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1460 | # USB Host Controller Drivers | 1499 | # USB Host Controller Drivers |
1461 | # | 1500 | # |
1462 | CONFIG_USB_EHCI_HCD=y | 1501 | CONFIG_USB_EHCI_HCD=y |
1463 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1464 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1502 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1465 | CONFIG_USB_EHCI_TT_NEWSCHED=y | 1503 | CONFIG_USB_EHCI_TT_NEWSCHED=y |
1466 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | 1504 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y |
1505 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1467 | # CONFIG_USB_ISP116X_HCD is not set | 1506 | # CONFIG_USB_ISP116X_HCD is not set |
1468 | CONFIG_USB_OHCI_HCD=y | 1507 | CONFIG_USB_OHCI_HCD=y |
1469 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 1508 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -1512,10 +1551,6 @@ CONFIG_USB_STORAGE=m | |||
1512 | # | 1551 | # |
1513 | # USB port drivers | 1552 | # USB port drivers |
1514 | # | 1553 | # |
1515 | |||
1516 | # | ||
1517 | # USB Serial Converter support | ||
1518 | # | ||
1519 | # CONFIG_USB_SERIAL is not set | 1554 | # CONFIG_USB_SERIAL is not set |
1520 | 1555 | ||
1521 | # | 1556 | # |
@@ -1541,16 +1576,9 @@ CONFIG_USB_APPLEDISPLAY=m | |||
1541 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1576 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1542 | # CONFIG_USB_IOWARRIOR is not set | 1577 | # CONFIG_USB_IOWARRIOR is not set |
1543 | # CONFIG_USB_TEST is not set | 1578 | # CONFIG_USB_TEST is not set |
1544 | |||
1545 | # | ||
1546 | # USB DSL modem support | ||
1547 | # | ||
1548 | |||
1549 | # | ||
1550 | # USB Gadget Support | ||
1551 | # | ||
1552 | # CONFIG_USB_GADGET is not set | 1579 | # CONFIG_USB_GADGET is not set |
1553 | # CONFIG_MMC is not set | 1580 | # CONFIG_MMC is not set |
1581 | # CONFIG_MEMSTICK is not set | ||
1554 | # CONFIG_NEW_LEDS is not set | 1582 | # CONFIG_NEW_LEDS is not set |
1555 | CONFIG_INFINIBAND=m | 1583 | CONFIG_INFINIBAND=m |
1556 | # CONFIG_INFINIBAND_USER_MAD is not set | 1584 | # CONFIG_INFINIBAND_USER_MAD is not set |
@@ -1562,6 +1590,7 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y | |||
1562 | CONFIG_INFINIBAND_EHCA=m | 1590 | CONFIG_INFINIBAND_EHCA=m |
1563 | # CONFIG_INFINIBAND_AMSO1100 is not set | 1591 | # CONFIG_INFINIBAND_AMSO1100 is not set |
1564 | # CONFIG_MLX4_INFINIBAND is not set | 1592 | # CONFIG_MLX4_INFINIBAND is not set |
1593 | # CONFIG_INFINIBAND_NES is not set | ||
1565 | CONFIG_INFINIBAND_IPOIB=m | 1594 | CONFIG_INFINIBAND_IPOIB=m |
1566 | # CONFIG_INFINIBAND_IPOIB_CM is not set | 1595 | # CONFIG_INFINIBAND_IPOIB_CM is not set |
1567 | CONFIG_INFINIBAND_IPOIB_DEBUG=y | 1596 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
@@ -1576,8 +1605,13 @@ CONFIG_EDAC=y | |||
1576 | # CONFIG_EDAC_DEBUG is not set | 1605 | # CONFIG_EDAC_DEBUG is not set |
1577 | CONFIG_EDAC_MM_EDAC=y | 1606 | CONFIG_EDAC_MM_EDAC=y |
1578 | CONFIG_EDAC_PASEMI=y | 1607 | CONFIG_EDAC_PASEMI=y |
1608 | # CONFIG_EDAC_CELL is not set | ||
1579 | CONFIG_RTC_LIB=y | 1609 | CONFIG_RTC_LIB=y |
1580 | CONFIG_RTC_CLASS=y | 1610 | CONFIG_RTC_CLASS=y |
1611 | |||
1612 | # | ||
1613 | # Conflicting RTC option has been selected, check GEN_RTC and RTC | ||
1614 | # | ||
1581 | CONFIG_RTC_HCTOSYS=y | 1615 | CONFIG_RTC_HCTOSYS=y |
1582 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" | 1616 | CONFIG_RTC_HCTOSYS_DEVICE="rtc0" |
1583 | # CONFIG_RTC_DEBUG is not set | 1617 | # CONFIG_RTC_DEBUG is not set |
@@ -1604,6 +1638,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1604 | # CONFIG_RTC_DRV_PCF8563 is not set | 1638 | # CONFIG_RTC_DRV_PCF8563 is not set |
1605 | # CONFIG_RTC_DRV_PCF8583 is not set | 1639 | # CONFIG_RTC_DRV_PCF8583 is not set |
1606 | # CONFIG_RTC_DRV_M41T80 is not set | 1640 | # CONFIG_RTC_DRV_M41T80 is not set |
1641 | # CONFIG_RTC_DRV_S35390A is not set | ||
1607 | 1642 | ||
1608 | # | 1643 | # |
1609 | # SPI RTC drivers | 1644 | # SPI RTC drivers |
@@ -1613,9 +1648,10 @@ CONFIG_RTC_DRV_DS1307=y | |||
1613 | # Platform RTC drivers | 1648 | # Platform RTC drivers |
1614 | # | 1649 | # |
1615 | # CONFIG_RTC_DRV_CMOS is not set | 1650 | # CONFIG_RTC_DRV_CMOS is not set |
1651 | # CONFIG_RTC_DRV_DS1511 is not set | ||
1616 | # CONFIG_RTC_DRV_DS1553 is not set | 1652 | # CONFIG_RTC_DRV_DS1553 is not set |
1617 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1618 | # CONFIG_RTC_DRV_DS1742 is not set | 1653 | # CONFIG_RTC_DRV_DS1742 is not set |
1654 | # CONFIG_RTC_DRV_STK17TA8 is not set | ||
1619 | # CONFIG_RTC_DRV_M48T86 is not set | 1655 | # CONFIG_RTC_DRV_M48T86 is not set |
1620 | # CONFIG_RTC_DRV_M48T59 is not set | 1656 | # CONFIG_RTC_DRV_M48T59 is not set |
1621 | # CONFIG_RTC_DRV_V3020 is not set | 1657 | # CONFIG_RTC_DRV_V3020 is not set |
@@ -1623,6 +1659,7 @@ CONFIG_RTC_DRV_DS1307=y | |||
1623 | # | 1659 | # |
1624 | # on-CPU RTC drivers | 1660 | # on-CPU RTC drivers |
1625 | # | 1661 | # |
1662 | # CONFIG_DMADEVICES is not set | ||
1626 | 1663 | ||
1627 | # | 1664 | # |
1628 | # Userspace I/O | 1665 | # Userspace I/O |
@@ -1665,12 +1702,10 @@ CONFIG_XFS_POSIX_ACL=y | |||
1665 | # CONFIG_XFS_RT is not set | 1702 | # CONFIG_XFS_RT is not set |
1666 | # CONFIG_GFS2_FS is not set | 1703 | # CONFIG_GFS2_FS is not set |
1667 | # CONFIG_OCFS2_FS is not set | 1704 | # CONFIG_OCFS2_FS is not set |
1668 | # CONFIG_MINIX_FS is not set | 1705 | CONFIG_DNOTIFY=y |
1669 | # CONFIG_ROMFS_FS is not set | ||
1670 | CONFIG_INOTIFY=y | 1706 | CONFIG_INOTIFY=y |
1671 | CONFIG_INOTIFY_USER=y | 1707 | CONFIG_INOTIFY_USER=y |
1672 | # CONFIG_QUOTA is not set | 1708 | # CONFIG_QUOTA is not set |
1673 | CONFIG_DNOTIFY=y | ||
1674 | # CONFIG_AUTOFS_FS is not set | 1709 | # CONFIG_AUTOFS_FS is not set |
1675 | CONFIG_AUTOFS4_FS=m | 1710 | CONFIG_AUTOFS4_FS=m |
1676 | # CONFIG_FUSE_FS is not set | 1711 | # CONFIG_FUSE_FS is not set |
@@ -1719,8 +1754,10 @@ CONFIG_HFSPLUS_FS=m | |||
1719 | # CONFIG_EFS_FS is not set | 1754 | # CONFIG_EFS_FS is not set |
1720 | CONFIG_CRAMFS=y | 1755 | CONFIG_CRAMFS=y |
1721 | # CONFIG_VXFS_FS is not set | 1756 | # CONFIG_VXFS_FS is not set |
1757 | # CONFIG_MINIX_FS is not set | ||
1722 | # CONFIG_HPFS_FS is not set | 1758 | # CONFIG_HPFS_FS is not set |
1723 | # CONFIG_QNX4FS_FS is not set | 1759 | # CONFIG_QNX4FS_FS is not set |
1760 | # CONFIG_ROMFS_FS is not set | ||
1724 | # CONFIG_SYSV_FS is not set | 1761 | # CONFIG_SYSV_FS is not set |
1725 | # CONFIG_UFS_FS is not set | 1762 | # CONFIG_UFS_FS is not set |
1726 | CONFIG_NETWORK_FILESYSTEMS=y | 1763 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1821,7 +1858,6 @@ CONFIG_NLS_KOI8_R=m | |||
1821 | CONFIG_NLS_KOI8_U=m | 1858 | CONFIG_NLS_KOI8_U=m |
1822 | CONFIG_NLS_UTF8=m | 1859 | CONFIG_NLS_UTF8=m |
1823 | # CONFIG_DLM is not set | 1860 | # CONFIG_DLM is not set |
1824 | # CONFIG_UCC_SLOW is not set | ||
1825 | 1861 | ||
1826 | # | 1862 | # |
1827 | # Library routines | 1863 | # Library routines |
@@ -1835,6 +1871,8 @@ CONFIG_CRC32=y | |||
1835 | CONFIG_LIBCRC32C=m | 1871 | CONFIG_LIBCRC32C=m |
1836 | CONFIG_ZLIB_INFLATE=y | 1872 | CONFIG_ZLIB_INFLATE=y |
1837 | CONFIG_ZLIB_DEFLATE=m | 1873 | CONFIG_ZLIB_DEFLATE=m |
1874 | CONFIG_LZO_COMPRESS=m | ||
1875 | CONFIG_LZO_DECOMPRESS=m | ||
1838 | CONFIG_TEXTSEARCH=y | 1876 | CONFIG_TEXTSEARCH=y |
1839 | CONFIG_TEXTSEARCH_KMP=m | 1877 | CONFIG_TEXTSEARCH_KMP=m |
1840 | CONFIG_TEXTSEARCH_BM=m | 1878 | CONFIG_TEXTSEARCH_BM=m |
@@ -1843,11 +1881,6 @@ CONFIG_PLIST=y | |||
1843 | CONFIG_HAS_IOMEM=y | 1881 | CONFIG_HAS_IOMEM=y |
1844 | CONFIG_HAS_IOPORT=y | 1882 | CONFIG_HAS_IOPORT=y |
1845 | CONFIG_HAS_DMA=y | 1883 | CONFIG_HAS_DMA=y |
1846 | CONFIG_INSTRUMENTATION=y | ||
1847 | CONFIG_PROFILING=y | ||
1848 | CONFIG_OPROFILE=y | ||
1849 | # CONFIG_KPROBES is not set | ||
1850 | # CONFIG_MARKERS is not set | ||
1851 | 1884 | ||
1852 | # | 1885 | # |
1853 | # Kernel hacking | 1886 | # Kernel hacking |
@@ -1866,6 +1899,7 @@ CONFIG_SCHED_DEBUG=y | |||
1866 | # CONFIG_SCHEDSTATS is not set | 1899 | # CONFIG_SCHEDSTATS is not set |
1867 | # CONFIG_TIMER_STATS is not set | 1900 | # CONFIG_TIMER_STATS is not set |
1868 | # CONFIG_SLUB_DEBUG_ON is not set | 1901 | # CONFIG_SLUB_DEBUG_ON is not set |
1902 | # CONFIG_SLUB_STATS is not set | ||
1869 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1903 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1870 | # CONFIG_RT_MUTEX_TESTER is not set | 1904 | # CONFIG_RT_MUTEX_TESTER is not set |
1871 | # CONFIG_DEBUG_SPINLOCK is not set | 1905 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1878,9 +1912,9 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1878 | # CONFIG_DEBUG_VM is not set | 1912 | # CONFIG_DEBUG_VM is not set |
1879 | # CONFIG_DEBUG_LIST is not set | 1913 | # CONFIG_DEBUG_LIST is not set |
1880 | # CONFIG_DEBUG_SG is not set | 1914 | # CONFIG_DEBUG_SG is not set |
1881 | CONFIG_FORCED_INLINING=y | ||
1882 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1915 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1883 | # CONFIG_RCU_TORTURE_TEST is not set | 1916 | # CONFIG_RCU_TORTURE_TEST is not set |
1917 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1884 | # CONFIG_FAULT_INJECTION is not set | 1918 | # CONFIG_FAULT_INJECTION is not set |
1885 | # CONFIG_SAMPLES is not set | 1919 | # CONFIG_SAMPLES is not set |
1886 | CONFIG_DEBUG_STACKOVERFLOW=y | 1920 | CONFIG_DEBUG_STACKOVERFLOW=y |
@@ -1908,7 +1942,9 @@ CONFIG_ASYNC_MEMCPY=y | |||
1908 | CONFIG_ASYNC_XOR=y | 1942 | CONFIG_ASYNC_XOR=y |
1909 | CONFIG_CRYPTO=y | 1943 | CONFIG_CRYPTO=y |
1910 | CONFIG_CRYPTO_ALGAPI=y | 1944 | CONFIG_CRYPTO_ALGAPI=y |
1945 | CONFIG_CRYPTO_AEAD=m | ||
1911 | CONFIG_CRYPTO_BLKCIPHER=y | 1946 | CONFIG_CRYPTO_BLKCIPHER=y |
1947 | CONFIG_CRYPTO_SEQIV=m | ||
1912 | CONFIG_CRYPTO_HASH=y | 1948 | CONFIG_CRYPTO_HASH=y |
1913 | CONFIG_CRYPTO_MANAGER=y | 1949 | CONFIG_CRYPTO_MANAGER=y |
1914 | CONFIG_CRYPTO_HMAC=y | 1950 | CONFIG_CRYPTO_HMAC=y |
@@ -1921,12 +1957,15 @@ CONFIG_CRYPTO_SHA256=m | |||
1921 | CONFIG_CRYPTO_SHA512=m | 1957 | CONFIG_CRYPTO_SHA512=m |
1922 | CONFIG_CRYPTO_WP512=m | 1958 | CONFIG_CRYPTO_WP512=m |
1923 | CONFIG_CRYPTO_TGR192=m | 1959 | CONFIG_CRYPTO_TGR192=m |
1924 | # CONFIG_CRYPTO_GF128MUL is not set | 1960 | CONFIG_CRYPTO_GF128MUL=m |
1925 | CONFIG_CRYPTO_ECB=m | 1961 | CONFIG_CRYPTO_ECB=m |
1926 | CONFIG_CRYPTO_CBC=y | 1962 | CONFIG_CRYPTO_CBC=y |
1927 | CONFIG_CRYPTO_PCBC=m | 1963 | CONFIG_CRYPTO_PCBC=m |
1928 | # CONFIG_CRYPTO_LRW is not set | 1964 | # CONFIG_CRYPTO_LRW is not set |
1929 | # CONFIG_CRYPTO_XTS is not set | 1965 | # CONFIG_CRYPTO_XTS is not set |
1966 | CONFIG_CRYPTO_CTR=m | ||
1967 | CONFIG_CRYPTO_GCM=m | ||
1968 | CONFIG_CRYPTO_CCM=m | ||
1930 | # CONFIG_CRYPTO_CRYPTD is not set | 1969 | # CONFIG_CRYPTO_CRYPTD is not set |
1931 | CONFIG_CRYPTO_DES=y | 1970 | CONFIG_CRYPTO_DES=y |
1932 | # CONFIG_CRYPTO_FCRYPT is not set | 1971 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1942,11 +1981,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1942 | CONFIG_CRYPTO_KHAZAD=m | 1981 | CONFIG_CRYPTO_KHAZAD=m |
1943 | CONFIG_CRYPTO_ANUBIS=m | 1982 | CONFIG_CRYPTO_ANUBIS=m |
1944 | # CONFIG_CRYPTO_SEED is not set | 1983 | # CONFIG_CRYPTO_SEED is not set |
1984 | CONFIG_CRYPTO_SALSA20=m | ||
1945 | CONFIG_CRYPTO_DEFLATE=m | 1985 | CONFIG_CRYPTO_DEFLATE=m |
1946 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1986 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1947 | CONFIG_CRYPTO_CRC32C=m | 1987 | CONFIG_CRYPTO_CRC32C=m |
1948 | # CONFIG_CRYPTO_CAMELLIA is not set | 1988 | # CONFIG_CRYPTO_CAMELLIA is not set |
1949 | CONFIG_CRYPTO_TEST=m | 1989 | CONFIG_CRYPTO_TEST=m |
1950 | # CONFIG_CRYPTO_AUTHENC is not set | 1990 | CONFIG_CRYPTO_AUTHENC=m |
1991 | CONFIG_CRYPTO_LZO=m | ||
1951 | # CONFIG_CRYPTO_HW is not set | 1992 | # CONFIG_CRYPTO_HW is not set |
1952 | # CONFIG_PPC_CLOCK is not set | 1993 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/ps3_defconfig b/arch/powerpc/configs/ps3_defconfig index 7994955c29d3..7a64c564f6e6 100644 --- a/arch/powerpc/configs/ps3_defconfig +++ b/arch/powerpc/configs/ps3_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc8 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Wed Jan 16 14:31:21 2008 | 4 | # Thu Mar 20 11:07:04 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -51,7 +52,6 @@ CONFIG_GENERIC_BUG=y | |||
51 | # CONFIG_DEFAULT_UIMAGE is not set | 52 | # CONFIG_DEFAULT_UIMAGE is not set |
52 | # CONFIG_PPC_DCR_NATIVE is not set | 53 | # CONFIG_PPC_DCR_NATIVE is not set |
53 | # CONFIG_PPC_DCR_MMIO is not set | 54 | # CONFIG_PPC_DCR_MMIO is not set |
54 | # CONFIG_PPC_OF_PLATFORM_PCI is not set | ||
55 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" | 55 | CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
56 | 56 | ||
57 | # | 57 | # |
@@ -68,17 +68,21 @@ CONFIG_SYSVIPC_SYSCTL=y | |||
68 | CONFIG_POSIX_MQUEUE=y | 68 | CONFIG_POSIX_MQUEUE=y |
69 | # CONFIG_BSD_PROCESS_ACCT is not set | 69 | # CONFIG_BSD_PROCESS_ACCT is not set |
70 | # CONFIG_TASKSTATS is not set | 70 | # CONFIG_TASKSTATS is not set |
71 | # CONFIG_USER_NS is not set | ||
72 | # CONFIG_PID_NS is not set | ||
73 | # CONFIG_AUDIT is not set | 71 | # CONFIG_AUDIT is not set |
74 | # CONFIG_IKCONFIG is not set | 72 | # CONFIG_IKCONFIG is not set |
75 | CONFIG_LOG_BUF_SHIFT=17 | 73 | CONFIG_LOG_BUF_SHIFT=17 |
76 | # CONFIG_CGROUPS is not set | 74 | # CONFIG_CGROUPS is not set |
77 | CONFIG_FAIR_GROUP_SCHED=y | 75 | # CONFIG_GROUP_SCHED is not set |
78 | CONFIG_FAIR_USER_SCHED=y | 76 | # CONFIG_USER_SCHED is not set |
79 | # CONFIG_FAIR_CGROUP_SCHED is not set | 77 | # CONFIG_CGROUP_SCHED is not set |
80 | CONFIG_SYSFS_DEPRECATED=y | 78 | CONFIG_SYSFS_DEPRECATED=y |
79 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
81 | # CONFIG_RELAY is not set | 80 | # CONFIG_RELAY is not set |
81 | CONFIG_NAMESPACES=y | ||
82 | # CONFIG_UTS_NS is not set | ||
83 | # CONFIG_IPC_NS is not set | ||
84 | # CONFIG_USER_NS is not set | ||
85 | # CONFIG_PID_NS is not set | ||
82 | CONFIG_BLK_DEV_INITRD=y | 86 | CONFIG_BLK_DEV_INITRD=y |
83 | CONFIG_INITRAMFS_SOURCE="" | 87 | CONFIG_INITRAMFS_SOURCE="" |
84 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 88 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -92,17 +96,27 @@ CONFIG_HOTPLUG=y | |||
92 | CONFIG_PRINTK=y | 96 | CONFIG_PRINTK=y |
93 | CONFIG_BUG=y | 97 | CONFIG_BUG=y |
94 | CONFIG_ELF_CORE=y | 98 | CONFIG_ELF_CORE=y |
99 | # CONFIG_COMPAT_BRK is not set | ||
95 | CONFIG_BASE_FULL=y | 100 | CONFIG_BASE_FULL=y |
96 | CONFIG_FUTEX=y | 101 | CONFIG_FUTEX=y |
97 | CONFIG_ANON_INODES=y | 102 | CONFIG_ANON_INODES=y |
98 | CONFIG_EPOLL=y | 103 | CONFIG_EPOLL=y |
99 | CONFIG_SIGNALFD=y | 104 | CONFIG_SIGNALFD=y |
105 | CONFIG_TIMERFD=y | ||
100 | CONFIG_EVENTFD=y | 106 | CONFIG_EVENTFD=y |
101 | CONFIG_SHMEM=y | 107 | CONFIG_SHMEM=y |
102 | CONFIG_VM_EVENT_COUNTERS=y | 108 | CONFIG_VM_EVENT_COUNTERS=y |
103 | CONFIG_SLAB=y | 109 | CONFIG_SLAB=y |
104 | # CONFIG_SLUB is not set | 110 | # CONFIG_SLUB is not set |
105 | # CONFIG_SLOB is not set | 111 | # CONFIG_SLOB is not set |
112 | CONFIG_PROFILING=y | ||
113 | # CONFIG_MARKERS is not set | ||
114 | CONFIG_OPROFILE=m | ||
115 | CONFIG_HAVE_OPROFILE=y | ||
116 | # CONFIG_KPROBES is not set | ||
117 | CONFIG_HAVE_KPROBES=y | ||
118 | CONFIG_HAVE_KRETPROBES=y | ||
119 | CONFIG_PROC_PAGE_MONITOR=y | ||
106 | CONFIG_SLABINFO=y | 120 | CONFIG_SLABINFO=y |
107 | CONFIG_RT_MUTEXES=y | 121 | CONFIG_RT_MUTEXES=y |
108 | # CONFIG_TINY_SHMEM is not set | 122 | # CONFIG_TINY_SHMEM is not set |
@@ -131,6 +145,7 @@ CONFIG_DEFAULT_AS=y | |||
131 | # CONFIG_DEFAULT_CFQ is not set | 145 | # CONFIG_DEFAULT_CFQ is not set |
132 | # CONFIG_DEFAULT_NOOP is not set | 146 | # CONFIG_DEFAULT_NOOP is not set |
133 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 147 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
148 | CONFIG_CLASSIC_RCU=y | ||
134 | 149 | ||
135 | # | 150 | # |
136 | # Platform support | 151 | # Platform support |
@@ -141,8 +156,8 @@ CONFIG_PPC_MULTIPLATFORM=y | |||
141 | # CONFIG_PPC_86xx is not set | 156 | # CONFIG_PPC_86xx is not set |
142 | # CONFIG_PPC_PSERIES is not set | 157 | # CONFIG_PPC_PSERIES is not set |
143 | # CONFIG_PPC_ISERIES is not set | 158 | # CONFIG_PPC_ISERIES is not set |
144 | # CONFIG_PPC_MPC52xx is not set | 159 | # CONFIG_PPC_MPC512x is not set |
145 | # CONFIG_PPC_MPC5200 is not set | 160 | # CONFIG_PPC_MPC5121 is not set |
146 | # CONFIG_PPC_PMAC is not set | 161 | # CONFIG_PPC_PMAC is not set |
147 | # CONFIG_PPC_MAPLE is not set | 162 | # CONFIG_PPC_MAPLE is not set |
148 | # CONFIG_PPC_PASEMI is not set | 163 | # CONFIG_PPC_PASEMI is not set |
@@ -173,6 +188,7 @@ CONFIG_PPC_CELL=y | |||
173 | CONFIG_SPU_FS=y | 188 | CONFIG_SPU_FS=y |
174 | CONFIG_SPU_BASE=y | 189 | CONFIG_SPU_BASE=y |
175 | # CONFIG_PQ2ADS is not set | 190 | # CONFIG_PQ2ADS is not set |
191 | # CONFIG_IPIC is not set | ||
176 | # CONFIG_MPIC is not set | 192 | # CONFIG_MPIC is not set |
177 | # CONFIG_MPIC_WEIRD is not set | 193 | # CONFIG_MPIC_WEIRD is not set |
178 | # CONFIG_PPC_I8259 is not set | 194 | # CONFIG_PPC_I8259 is not set |
@@ -184,7 +200,6 @@ CONFIG_SPU_BASE=y | |||
184 | # CONFIG_PPC_INDIRECT_IO is not set | 200 | # CONFIG_PPC_INDIRECT_IO is not set |
185 | # CONFIG_GENERIC_IOMAP is not set | 201 | # CONFIG_GENERIC_IOMAP is not set |
186 | # CONFIG_CPU_FREQ is not set | 202 | # CONFIG_CPU_FREQ is not set |
187 | # CONFIG_CPM2 is not set | ||
188 | # CONFIG_FSL_ULI1575 is not set | 203 | # CONFIG_FSL_ULI1575 is not set |
189 | 204 | ||
190 | # | 205 | # |
@@ -199,15 +214,19 @@ CONFIG_HZ_250=y | |||
199 | # CONFIG_HZ_300 is not set | 214 | # CONFIG_HZ_300 is not set |
200 | # CONFIG_HZ_1000 is not set | 215 | # CONFIG_HZ_1000 is not set |
201 | CONFIG_HZ=250 | 216 | CONFIG_HZ=250 |
217 | # CONFIG_SCHED_HRTICK is not set | ||
202 | CONFIG_PREEMPT_NONE=y | 218 | CONFIG_PREEMPT_NONE=y |
203 | # CONFIG_PREEMPT_VOLUNTARY is not set | 219 | # CONFIG_PREEMPT_VOLUNTARY is not set |
204 | # CONFIG_PREEMPT is not set | 220 | # CONFIG_PREEMPT is not set |
205 | # CONFIG_PREEMPT_BKL is not set | ||
206 | CONFIG_BINFMT_ELF=y | 221 | CONFIG_BINFMT_ELF=y |
222 | CONFIG_COMPAT_BINFMT_ELF=y | ||
207 | CONFIG_BINFMT_MISC=y | 223 | CONFIG_BINFMT_MISC=y |
208 | CONFIG_FORCE_MAX_ZONEORDER=13 | 224 | CONFIG_FORCE_MAX_ZONEORDER=13 |
209 | # CONFIG_IOMMU_VMERGE is not set | 225 | # CONFIG_IOMMU_VMERGE is not set |
226 | CONFIG_IOMMU_HELPER=y | ||
210 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 227 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
228 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
229 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
211 | CONFIG_KEXEC=y | 230 | CONFIG_KEXEC=y |
212 | # CONFIG_CRASH_DUMP is not set | 231 | # CONFIG_CRASH_DUMP is not set |
213 | # CONFIG_IRQ_ALL_CPUS is not set | 232 | # CONFIG_IRQ_ALL_CPUS is not set |
@@ -241,7 +260,6 @@ CONFIG_PROC_DEVICETREE=y | |||
241 | # CONFIG_CMDLINE_BOOL is not set | 260 | # CONFIG_CMDLINE_BOOL is not set |
242 | # CONFIG_PM is not set | 261 | # CONFIG_PM is not set |
243 | # CONFIG_SECCOMP is not set | 262 | # CONFIG_SECCOMP is not set |
244 | # CONFIG_WANT_DEVICE_TREE is not set | ||
245 | CONFIG_ISA_DMA_API=y | 263 | CONFIG_ISA_DMA_API=y |
246 | 264 | ||
247 | # | 265 | # |
@@ -271,6 +289,7 @@ CONFIG_XFRM=y | |||
271 | # CONFIG_XFRM_USER is not set | 289 | # CONFIG_XFRM_USER is not set |
272 | # CONFIG_XFRM_SUB_POLICY is not set | 290 | # CONFIG_XFRM_SUB_POLICY is not set |
273 | # CONFIG_XFRM_MIGRATE is not set | 291 | # CONFIG_XFRM_MIGRATE is not set |
292 | # CONFIG_XFRM_STATISTICS is not set | ||
274 | # CONFIG_NET_KEY is not set | 293 | # CONFIG_NET_KEY is not set |
275 | CONFIG_INET=y | 294 | CONFIG_INET=y |
276 | # CONFIG_IP_MULTICAST is not set | 295 | # CONFIG_IP_MULTICAST is not set |
@@ -338,6 +357,7 @@ CONFIG_IPV6_SIT=y | |||
338 | # | 357 | # |
339 | # CONFIG_NET_PKTGEN is not set | 358 | # CONFIG_NET_PKTGEN is not set |
340 | # CONFIG_HAMRADIO is not set | 359 | # CONFIG_HAMRADIO is not set |
360 | # CONFIG_CAN is not set | ||
341 | # CONFIG_IRDA is not set | 361 | # CONFIG_IRDA is not set |
342 | CONFIG_BT=m | 362 | CONFIG_BT=m |
343 | CONFIG_BT_L2CAP=m | 363 | CONFIG_BT_L2CAP=m |
@@ -405,11 +425,13 @@ CONFIG_BLK_DEV_LOOP=y | |||
405 | CONFIG_BLK_DEV_RAM=y | 425 | CONFIG_BLK_DEV_RAM=y |
406 | CONFIG_BLK_DEV_RAM_COUNT=16 | 426 | CONFIG_BLK_DEV_RAM_COUNT=16 |
407 | CONFIG_BLK_DEV_RAM_SIZE=65535 | 427 | CONFIG_BLK_DEV_RAM_SIZE=65535 |
408 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 428 | # CONFIG_BLK_DEV_XIP is not set |
409 | # CONFIG_CDROM_PKTCDVD is not set | 429 | # CONFIG_CDROM_PKTCDVD is not set |
410 | # CONFIG_ATA_OVER_ETH is not set | 430 | # CONFIG_ATA_OVER_ETH is not set |
411 | CONFIG_MISC_DEVICES=y | 431 | CONFIG_MISC_DEVICES=y |
412 | # CONFIG_EEPROM_93CX6 is not set | 432 | # CONFIG_EEPROM_93CX6 is not set |
433 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
434 | CONFIG_HAVE_IDE=y | ||
413 | # CONFIG_IDE is not set | 435 | # CONFIG_IDE is not set |
414 | 436 | ||
415 | # | 437 | # |
@@ -472,7 +494,9 @@ CONFIG_MII=m | |||
472 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set | 494 | # CONFIG_IBM_NEW_EMAC_EMAC4 is not set |
473 | # CONFIG_B44 is not set | 495 | # CONFIG_B44 is not set |
474 | CONFIG_NETDEV_1000=y | 496 | CONFIG_NETDEV_1000=y |
497 | # CONFIG_E1000E_ENABLED is not set | ||
475 | CONFIG_GELIC_NET=y | 498 | CONFIG_GELIC_NET=y |
499 | CONFIG_GELIC_WIRELESS=y | ||
476 | # CONFIG_NETDEV_10000 is not set | 500 | # CONFIG_NETDEV_10000 is not set |
477 | 501 | ||
478 | # | 502 | # |
@@ -482,9 +506,8 @@ CONFIG_GELIC_NET=y | |||
482 | CONFIG_WLAN_80211=y | 506 | CONFIG_WLAN_80211=y |
483 | # CONFIG_LIBERTAS is not set | 507 | # CONFIG_LIBERTAS is not set |
484 | # CONFIG_USB_ZD1201 is not set | 508 | # CONFIG_USB_ZD1201 is not set |
509 | # CONFIG_USB_NET_RNDIS_WLAN is not set | ||
485 | # CONFIG_HOSTAP is not set | 510 | # CONFIG_HOSTAP is not set |
486 | CONFIG_ZD1211RW=m | ||
487 | # CONFIG_ZD1211RW_DEBUG is not set | ||
488 | 511 | ||
489 | # | 512 | # |
490 | # USB Network Adapters | 513 | # USB Network Adapters |
@@ -507,7 +530,6 @@ CONFIG_USB_NET_MCS7830=m | |||
507 | # CONFIG_WAN is not set | 530 | # CONFIG_WAN is not set |
508 | # CONFIG_PPP is not set | 531 | # CONFIG_PPP is not set |
509 | # CONFIG_SLIP is not set | 532 | # CONFIG_SLIP is not set |
510 | # CONFIG_SHAPER is not set | ||
511 | # CONFIG_NETCONSOLE is not set | 533 | # CONFIG_NETCONSOLE is not set |
512 | # CONFIG_NETPOLL is not set | 534 | # CONFIG_NETPOLL is not set |
513 | # CONFIG_NET_POLL_CONTROLLER is not set | 535 | # CONFIG_NET_POLL_CONTROLLER is not set |
@@ -606,6 +628,7 @@ CONFIG_GEN_RTC=y | |||
606 | # CONFIG_W1 is not set | 628 | # CONFIG_W1 is not set |
607 | # CONFIG_POWER_SUPPLY is not set | 629 | # CONFIG_POWER_SUPPLY is not set |
608 | # CONFIG_HWMON is not set | 630 | # CONFIG_HWMON is not set |
631 | # CONFIG_THERMAL is not set | ||
609 | # CONFIG_WATCHDOG is not set | 632 | # CONFIG_WATCHDOG is not set |
610 | 633 | ||
611 | # | 634 | # |
@@ -742,6 +765,10 @@ CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 | |||
742 | # | 765 | # |
743 | 766 | ||
744 | # | 767 | # |
768 | # ALSA SoC audio for Freescale SOCs | ||
769 | # | ||
770 | |||
771 | # | ||
745 | # Open Sound System | 772 | # Open Sound System |
746 | # | 773 | # |
747 | # CONFIG_SOUND_PRIME is not set | 774 | # CONFIG_SOUND_PRIME is not set |
@@ -769,6 +796,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
769 | CONFIG_USB_ARCH_HAS_EHCI=y | 796 | CONFIG_USB_ARCH_HAS_EHCI=y |
770 | CONFIG_USB=m | 797 | CONFIG_USB=m |
771 | # CONFIG_USB_DEBUG is not set | 798 | # CONFIG_USB_DEBUG is not set |
799 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
772 | 800 | ||
773 | # | 801 | # |
774 | # Miscellaneous USB options | 802 | # Miscellaneous USB options |
@@ -782,10 +810,10 @@ CONFIG_USB_DEVICEFS=y | |||
782 | # USB Host Controller Drivers | 810 | # USB Host Controller Drivers |
783 | # | 811 | # |
784 | CONFIG_USB_EHCI_HCD=m | 812 | CONFIG_USB_EHCI_HCD=m |
785 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
786 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 813 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
787 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 814 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
788 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y | 815 | CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y |
816 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
789 | # CONFIG_USB_ISP116X_HCD is not set | 817 | # CONFIG_USB_ISP116X_HCD is not set |
790 | CONFIG_USB_OHCI_HCD=m | 818 | CONFIG_USB_OHCI_HCD=m |
791 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 819 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -833,10 +861,6 @@ CONFIG_USB_MON=y | |||
833 | # | 861 | # |
834 | # USB port drivers | 862 | # USB port drivers |
835 | # | 863 | # |
836 | |||
837 | # | ||
838 | # USB Serial Converter support | ||
839 | # | ||
840 | # CONFIG_USB_SERIAL is not set | 864 | # CONFIG_USB_SERIAL is not set |
841 | 865 | ||
842 | # | 866 | # |
@@ -862,19 +886,13 @@ CONFIG_USB_MON=y | |||
862 | # CONFIG_USB_TRANCEVIBRATOR is not set | 886 | # CONFIG_USB_TRANCEVIBRATOR is not set |
863 | # CONFIG_USB_IOWARRIOR is not set | 887 | # CONFIG_USB_IOWARRIOR is not set |
864 | # CONFIG_USB_TEST is not set | 888 | # CONFIG_USB_TEST is not set |
865 | |||
866 | # | ||
867 | # USB DSL modem support | ||
868 | # | ||
869 | |||
870 | # | ||
871 | # USB Gadget Support | ||
872 | # | ||
873 | # CONFIG_USB_GADGET is not set | 889 | # CONFIG_USB_GADGET is not set |
874 | # CONFIG_MMC is not set | 890 | # CONFIG_MMC is not set |
891 | # CONFIG_MEMSTICK is not set | ||
875 | # CONFIG_NEW_LEDS is not set | 892 | # CONFIG_NEW_LEDS is not set |
876 | # CONFIG_EDAC is not set | 893 | # CONFIG_EDAC is not set |
877 | # CONFIG_RTC_CLASS is not set | 894 | # CONFIG_RTC_CLASS is not set |
895 | # CONFIG_DMADEVICES is not set | ||
878 | 896 | ||
879 | # | 897 | # |
880 | # Userspace I/O | 898 | # Userspace I/O |
@@ -900,8 +918,7 @@ CONFIG_FS_MBCACHE=y | |||
900 | # CONFIG_XFS_FS is not set | 918 | # CONFIG_XFS_FS is not set |
901 | # CONFIG_GFS2_FS is not set | 919 | # CONFIG_GFS2_FS is not set |
902 | # CONFIG_OCFS2_FS is not set | 920 | # CONFIG_OCFS2_FS is not set |
903 | # CONFIG_MINIX_FS is not set | 921 | CONFIG_DNOTIFY=y |
904 | # CONFIG_ROMFS_FS is not set | ||
905 | CONFIG_INOTIFY=y | 922 | CONFIG_INOTIFY=y |
906 | CONFIG_INOTIFY_USER=y | 923 | CONFIG_INOTIFY_USER=y |
907 | CONFIG_QUOTA=y | 924 | CONFIG_QUOTA=y |
@@ -910,7 +927,6 @@ CONFIG_PRINT_QUOTA_WARNING=y | |||
910 | # CONFIG_QFMT_V1 is not set | 927 | # CONFIG_QFMT_V1 is not set |
911 | CONFIG_QFMT_V2=y | 928 | CONFIG_QFMT_V2=y |
912 | CONFIG_QUOTACTL=y | 929 | CONFIG_QUOTACTL=y |
913 | CONFIG_DNOTIFY=y | ||
914 | CONFIG_AUTOFS_FS=m | 930 | CONFIG_AUTOFS_FS=m |
915 | CONFIG_AUTOFS4_FS=m | 931 | CONFIG_AUTOFS4_FS=m |
916 | # CONFIG_FUSE_FS is not set | 932 | # CONFIG_FUSE_FS is not set |
@@ -959,8 +975,10 @@ CONFIG_TMPFS=y | |||
959 | # CONFIG_EFS_FS is not set | 975 | # CONFIG_EFS_FS is not set |
960 | # CONFIG_CRAMFS is not set | 976 | # CONFIG_CRAMFS is not set |
961 | # CONFIG_VXFS_FS is not set | 977 | # CONFIG_VXFS_FS is not set |
978 | # CONFIG_MINIX_FS is not set | ||
962 | # CONFIG_HPFS_FS is not set | 979 | # CONFIG_HPFS_FS is not set |
963 | # CONFIG_QNX4FS_FS is not set | 980 | # CONFIG_QNX4FS_FS is not set |
981 | # CONFIG_ROMFS_FS is not set | ||
964 | # CONFIG_SYSV_FS is not set | 982 | # CONFIG_SYSV_FS is not set |
965 | # CONFIG_UFS_FS is not set | 983 | # CONFIG_UFS_FS is not set |
966 | CONFIG_NETWORK_FILESYSTEMS=y | 984 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1036,7 +1054,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1036 | # CONFIG_NLS_KOI8_U is not set | 1054 | # CONFIG_NLS_KOI8_U is not set |
1037 | # CONFIG_NLS_UTF8 is not set | 1055 | # CONFIG_NLS_UTF8 is not set |
1038 | # CONFIG_DLM is not set | 1056 | # CONFIG_DLM is not set |
1039 | # CONFIG_UCC_SLOW is not set | ||
1040 | 1057 | ||
1041 | # | 1058 | # |
1042 | # Library routines | 1059 | # Library routines |
@@ -1048,15 +1065,12 @@ CONFIG_BITREVERSE=y | |||
1048 | CONFIG_CRC32=y | 1065 | CONFIG_CRC32=y |
1049 | # CONFIG_CRC7 is not set | 1066 | # CONFIG_CRC7 is not set |
1050 | # CONFIG_LIBCRC32C is not set | 1067 | # CONFIG_LIBCRC32C is not set |
1068 | CONFIG_LZO_COMPRESS=m | ||
1069 | CONFIG_LZO_DECOMPRESS=m | ||
1051 | CONFIG_PLIST=y | 1070 | CONFIG_PLIST=y |
1052 | CONFIG_HAS_IOMEM=y | 1071 | CONFIG_HAS_IOMEM=y |
1053 | CONFIG_HAS_IOPORT=y | 1072 | CONFIG_HAS_IOPORT=y |
1054 | CONFIG_HAS_DMA=y | 1073 | CONFIG_HAS_DMA=y |
1055 | CONFIG_INSTRUMENTATION=y | ||
1056 | CONFIG_PROFILING=y | ||
1057 | CONFIG_OPROFILE=m | ||
1058 | # CONFIG_KPROBES is not set | ||
1059 | # CONFIG_MARKERS is not set | ||
1060 | 1074 | ||
1061 | # | 1075 | # |
1062 | # Kernel hacking | 1076 | # Kernel hacking |
@@ -1087,9 +1101,9 @@ CONFIG_DEBUG_INFO=y | |||
1087 | # CONFIG_DEBUG_VM is not set | 1101 | # CONFIG_DEBUG_VM is not set |
1088 | CONFIG_DEBUG_LIST=y | 1102 | CONFIG_DEBUG_LIST=y |
1089 | # CONFIG_DEBUG_SG is not set | 1103 | # CONFIG_DEBUG_SG is not set |
1090 | CONFIG_FORCED_INLINING=y | ||
1091 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1104 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1092 | # CONFIG_RCU_TORTURE_TEST is not set | 1105 | # CONFIG_RCU_TORTURE_TEST is not set |
1106 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1093 | # CONFIG_FAULT_INJECTION is not set | 1107 | # CONFIG_FAULT_INJECTION is not set |
1094 | # CONFIG_SAMPLES is not set | 1108 | # CONFIG_SAMPLES is not set |
1095 | CONFIG_DEBUG_STACKOVERFLOW=y | 1109 | CONFIG_DEBUG_STACKOVERFLOW=y |
@@ -1108,7 +1122,9 @@ CONFIG_IRQSTACKS=y | |||
1108 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1122 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1109 | CONFIG_CRYPTO=y | 1123 | CONFIG_CRYPTO=y |
1110 | CONFIG_CRYPTO_ALGAPI=y | 1124 | CONFIG_CRYPTO_ALGAPI=y |
1125 | CONFIG_CRYPTO_AEAD=m | ||
1111 | CONFIG_CRYPTO_BLKCIPHER=y | 1126 | CONFIG_CRYPTO_BLKCIPHER=y |
1127 | CONFIG_CRYPTO_SEQIV=m | ||
1112 | CONFIG_CRYPTO_MANAGER=y | 1128 | CONFIG_CRYPTO_MANAGER=y |
1113 | # CONFIG_CRYPTO_HMAC is not set | 1129 | # CONFIG_CRYPTO_HMAC is not set |
1114 | # CONFIG_CRYPTO_XCBC is not set | 1130 | # CONFIG_CRYPTO_XCBC is not set |
@@ -1120,12 +1136,15 @@ CONFIG_CRYPTO_MD5=y | |||
1120 | # CONFIG_CRYPTO_SHA512 is not set | 1136 | # CONFIG_CRYPTO_SHA512 is not set |
1121 | # CONFIG_CRYPTO_WP512 is not set | 1137 | # CONFIG_CRYPTO_WP512 is not set |
1122 | # CONFIG_CRYPTO_TGR192 is not set | 1138 | # CONFIG_CRYPTO_TGR192 is not set |
1123 | # CONFIG_CRYPTO_GF128MUL is not set | 1139 | CONFIG_CRYPTO_GF128MUL=m |
1124 | CONFIG_CRYPTO_ECB=m | 1140 | CONFIG_CRYPTO_ECB=m |
1125 | CONFIG_CRYPTO_CBC=y | 1141 | CONFIG_CRYPTO_CBC=y |
1126 | CONFIG_CRYPTO_PCBC=m | 1142 | CONFIG_CRYPTO_PCBC=m |
1127 | # CONFIG_CRYPTO_LRW is not set | 1143 | # CONFIG_CRYPTO_LRW is not set |
1128 | # CONFIG_CRYPTO_XTS is not set | 1144 | # CONFIG_CRYPTO_XTS is not set |
1145 | CONFIG_CRYPTO_CTR=m | ||
1146 | CONFIG_CRYPTO_GCM=m | ||
1147 | CONFIG_CRYPTO_CCM=m | ||
1129 | # CONFIG_CRYPTO_CRYPTD is not set | 1148 | # CONFIG_CRYPTO_CRYPTD is not set |
1130 | CONFIG_CRYPTO_DES=y | 1149 | CONFIG_CRYPTO_DES=y |
1131 | # CONFIG_CRYPTO_FCRYPT is not set | 1150 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1140,11 +1159,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1140 | # CONFIG_CRYPTO_KHAZAD is not set | 1159 | # CONFIG_CRYPTO_KHAZAD is not set |
1141 | # CONFIG_CRYPTO_ANUBIS is not set | 1160 | # CONFIG_CRYPTO_ANUBIS is not set |
1142 | # CONFIG_CRYPTO_SEED is not set | 1161 | # CONFIG_CRYPTO_SEED is not set |
1162 | CONFIG_CRYPTO_SALSA20=m | ||
1143 | # CONFIG_CRYPTO_DEFLATE is not set | 1163 | # CONFIG_CRYPTO_DEFLATE is not set |
1144 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1164 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1145 | # CONFIG_CRYPTO_CRC32C is not set | 1165 | # CONFIG_CRYPTO_CRC32C is not set |
1146 | # CONFIG_CRYPTO_CAMELLIA is not set | 1166 | # CONFIG_CRYPTO_CAMELLIA is not set |
1147 | # CONFIG_CRYPTO_TEST is not set | 1167 | # CONFIG_CRYPTO_TEST is not set |
1148 | # CONFIG_CRYPTO_AUTHENC is not set | 1168 | # CONFIG_CRYPTO_AUTHENC is not set |
1169 | CONFIG_CRYPTO_LZO=m | ||
1149 | CONFIG_CRYPTO_HW=y | 1170 | CONFIG_CRYPTO_HW=y |
1150 | # CONFIG_PPC_CLOCK is not set | 1171 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/configs/pseries_defconfig b/arch/powerpc/configs/pseries_defconfig index 92bbf51ad4f0..755aca72b522 100644 --- a/arch/powerpc/configs/pseries_defconfig +++ b/arch/powerpc/configs/pseries_defconfig | |||
@@ -1,7 +1,7 @@ | |||
1 | # | 1 | # |
2 | # Automatically generated make config: don't edit | 2 | # Automatically generated make config: don't edit |
3 | # Linux kernel version: 2.6.24-rc4 | 3 | # Linux kernel version: 2.6.25-rc6 |
4 | # Thu Dec 6 16:49:15 2007 | 4 | # Thu Mar 20 11:08:01 2008 |
5 | # | 5 | # |
6 | CONFIG_PPC64=y | 6 | CONFIG_PPC64=y |
7 | 7 | ||
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y | |||
28 | CONFIG_GENERIC_TIME_VSYSCALL=y | 28 | CONFIG_GENERIC_TIME_VSYSCALL=y |
29 | CONFIG_GENERIC_CLOCKEVENTS=y | 29 | CONFIG_GENERIC_CLOCKEVENTS=y |
30 | CONFIG_GENERIC_HARDIRQS=y | 30 | CONFIG_GENERIC_HARDIRQS=y |
31 | CONFIG_HAVE_SETUP_PER_CPU_AREA=y | ||
31 | CONFIG_IRQ_PER_CPU=y | 32 | CONFIG_IRQ_PER_CPU=y |
32 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y | 33 | CONFIG_RWSEM_XCHGADD_ALGORITHM=y |
33 | CONFIG_ARCH_HAS_ILOG2_U32=y | 34 | CONFIG_ARCH_HAS_ILOG2_U32=y |
@@ -71,8 +72,6 @@ CONFIG_TASKSTATS=y | |||
71 | CONFIG_TASK_DELAY_ACCT=y | 72 | CONFIG_TASK_DELAY_ACCT=y |
72 | CONFIG_TASK_XACCT=y | 73 | CONFIG_TASK_XACCT=y |
73 | CONFIG_TASK_IO_ACCOUNTING=y | 74 | CONFIG_TASK_IO_ACCOUNTING=y |
74 | # CONFIG_USER_NS is not set | ||
75 | # CONFIG_PID_NS is not set | ||
76 | CONFIG_AUDIT=y | 75 | CONFIG_AUDIT=y |
77 | CONFIG_AUDITSYSCALL=y | 76 | CONFIG_AUDITSYSCALL=y |
78 | CONFIG_AUDIT_TREE=y | 77 | CONFIG_AUDIT_TREE=y |
@@ -83,13 +82,20 @@ CONFIG_CGROUPS=y | |||
83 | # CONFIG_CGROUP_DEBUG is not set | 82 | # CONFIG_CGROUP_DEBUG is not set |
84 | CONFIG_CGROUP_NS=y | 83 | CONFIG_CGROUP_NS=y |
85 | CONFIG_CPUSETS=y | 84 | CONFIG_CPUSETS=y |
86 | CONFIG_FAIR_GROUP_SCHED=y | 85 | # CONFIG_GROUP_SCHED is not set |
87 | # CONFIG_FAIR_USER_SCHED is not set | 86 | # CONFIG_USER_SCHED is not set |
88 | CONFIG_FAIR_CGROUP_SCHED=y | 87 | # CONFIG_CGROUP_SCHED is not set |
89 | CONFIG_CGROUP_CPUACCT=y | 88 | CONFIG_CGROUP_CPUACCT=y |
89 | # CONFIG_RESOURCE_COUNTERS is not set | ||
90 | CONFIG_SYSFS_DEPRECATED=y | 90 | CONFIG_SYSFS_DEPRECATED=y |
91 | CONFIG_SYSFS_DEPRECATED_V2=y | ||
91 | CONFIG_PROC_PID_CPUSET=y | 92 | CONFIG_PROC_PID_CPUSET=y |
92 | # CONFIG_RELAY is not set | 93 | # CONFIG_RELAY is not set |
94 | CONFIG_NAMESPACES=y | ||
95 | # CONFIG_UTS_NS is not set | ||
96 | # CONFIG_IPC_NS is not set | ||
97 | # CONFIG_USER_NS is not set | ||
98 | # CONFIG_PID_NS is not set | ||
93 | CONFIG_BLK_DEV_INITRD=y | 99 | CONFIG_BLK_DEV_INITRD=y |
94 | CONFIG_INITRAMFS_SOURCE="" | 100 | CONFIG_INITRAMFS_SOURCE="" |
95 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y | 101 | CONFIG_CC_OPTIMIZE_FOR_SIZE=y |
@@ -103,11 +109,13 @@ CONFIG_HOTPLUG=y | |||
103 | CONFIG_PRINTK=y | 109 | CONFIG_PRINTK=y |
104 | CONFIG_BUG=y | 110 | CONFIG_BUG=y |
105 | CONFIG_ELF_CORE=y | 111 | CONFIG_ELF_CORE=y |
112 | # CONFIG_COMPAT_BRK is not set | ||
106 | CONFIG_BASE_FULL=y | 113 | CONFIG_BASE_FULL=y |
107 | CONFIG_FUTEX=y | 114 | CONFIG_FUTEX=y |
108 | CONFIG_ANON_INODES=y | 115 | CONFIG_ANON_INODES=y |
109 | CONFIG_EPOLL=y | 116 | CONFIG_EPOLL=y |
110 | CONFIG_SIGNALFD=y | 117 | CONFIG_SIGNALFD=y |
118 | CONFIG_TIMERFD=y | ||
111 | CONFIG_EVENTFD=y | 119 | CONFIG_EVENTFD=y |
112 | CONFIG_SHMEM=y | 120 | CONFIG_SHMEM=y |
113 | CONFIG_VM_EVENT_COUNTERS=y | 121 | CONFIG_VM_EVENT_COUNTERS=y |
@@ -115,6 +123,16 @@ CONFIG_SLUB_DEBUG=y | |||
115 | # CONFIG_SLAB is not set | 123 | # CONFIG_SLAB is not set |
116 | CONFIG_SLUB=y | 124 | CONFIG_SLUB=y |
117 | # CONFIG_SLOB is not set | 125 | # CONFIG_SLOB is not set |
126 | CONFIG_PROFILING=y | ||
127 | CONFIG_MARKERS=y | ||
128 | CONFIG_OPROFILE=y | ||
129 | CONFIG_HAVE_OPROFILE=y | ||
130 | CONFIG_KPROBES=y | ||
131 | CONFIG_KRETPROBES=y | ||
132 | CONFIG_HAVE_KPROBES=y | ||
133 | CONFIG_HAVE_KRETPROBES=y | ||
134 | CONFIG_PROC_PAGE_MONITOR=y | ||
135 | CONFIG_SLABINFO=y | ||
118 | CONFIG_RT_MUTEXES=y | 136 | CONFIG_RT_MUTEXES=y |
119 | # CONFIG_TINY_SHMEM is not set | 137 | # CONFIG_TINY_SHMEM is not set |
120 | CONFIG_BASE_SMALL=0 | 138 | CONFIG_BASE_SMALL=0 |
@@ -142,6 +160,7 @@ CONFIG_DEFAULT_AS=y | |||
142 | # CONFIG_DEFAULT_CFQ is not set | 160 | # CONFIG_DEFAULT_CFQ is not set |
143 | # CONFIG_DEFAULT_NOOP is not set | 161 | # CONFIG_DEFAULT_NOOP is not set |
144 | CONFIG_DEFAULT_IOSCHED="anticipatory" | 162 | CONFIG_DEFAULT_IOSCHED="anticipatory" |
163 | CONFIG_CLASSIC_RCU=y | ||
145 | 164 | ||
146 | # | 165 | # |
147 | # Platform support | 166 | # Platform support |
@@ -156,8 +175,8 @@ CONFIG_EEH=y | |||
156 | CONFIG_SCANLOG=m | 175 | CONFIG_SCANLOG=m |
157 | CONFIG_LPARCFG=y | 176 | CONFIG_LPARCFG=y |
158 | # CONFIG_PPC_ISERIES is not set | 177 | # CONFIG_PPC_ISERIES is not set |
159 | # CONFIG_PPC_MPC52xx is not set | 178 | # CONFIG_PPC_MPC512x is not set |
160 | # CONFIG_PPC_MPC5200 is not set | 179 | # CONFIG_PPC_MPC5121 is not set |
161 | # CONFIG_PPC_PMAC is not set | 180 | # CONFIG_PPC_PMAC is not set |
162 | # CONFIG_PPC_MAPLE is not set | 181 | # CONFIG_PPC_MAPLE is not set |
163 | # CONFIG_PPC_PASEMI is not set | 182 | # CONFIG_PPC_PASEMI is not set |
@@ -170,6 +189,7 @@ CONFIG_LPARCFG=y | |||
170 | CONFIG_PPC_NATIVE=y | 189 | CONFIG_PPC_NATIVE=y |
171 | # CONFIG_UDBG_RTAS_CONSOLE is not set | 190 | # CONFIG_UDBG_RTAS_CONSOLE is not set |
172 | CONFIG_XICS=y | 191 | CONFIG_XICS=y |
192 | # CONFIG_IPIC is not set | ||
173 | CONFIG_MPIC=y | 193 | CONFIG_MPIC=y |
174 | # CONFIG_MPIC_WEIRD is not set | 194 | # CONFIG_MPIC_WEIRD is not set |
175 | CONFIG_PPC_I8259=y | 195 | CONFIG_PPC_I8259=y |
@@ -186,7 +206,6 @@ CONFIG_IBMEBUS=y | |||
186 | # CONFIG_PPC_INDIRECT_IO is not set | 206 | # CONFIG_PPC_INDIRECT_IO is not set |
187 | # CONFIG_GENERIC_IOMAP is not set | 207 | # CONFIG_GENERIC_IOMAP is not set |
188 | # CONFIG_CPU_FREQ is not set | 208 | # CONFIG_CPU_FREQ is not set |
189 | # CONFIG_CPM2 is not set | ||
190 | # CONFIG_FSL_ULI1575 is not set | 209 | # CONFIG_FSL_ULI1575 is not set |
191 | 210 | ||
192 | # | 211 | # |
@@ -201,17 +220,21 @@ CONFIG_HZ_250=y | |||
201 | # CONFIG_HZ_300 is not set | 220 | # CONFIG_HZ_300 is not set |
202 | # CONFIG_HZ_1000 is not set | 221 | # CONFIG_HZ_1000 is not set |
203 | CONFIG_HZ=250 | 222 | CONFIG_HZ=250 |
223 | # CONFIG_SCHED_HRTICK is not set | ||
204 | CONFIG_PREEMPT_NONE=y | 224 | CONFIG_PREEMPT_NONE=y |
205 | # CONFIG_PREEMPT_VOLUNTARY is not set | 225 | # CONFIG_PREEMPT_VOLUNTARY is not set |
206 | # CONFIG_PREEMPT is not set | 226 | # CONFIG_PREEMPT is not set |
207 | # CONFIG_PREEMPT_BKL is not set | ||
208 | CONFIG_BINFMT_ELF=y | 227 | CONFIG_BINFMT_ELF=y |
228 | CONFIG_COMPAT_BINFMT_ELF=y | ||
209 | CONFIG_BINFMT_MISC=m | 229 | CONFIG_BINFMT_MISC=m |
210 | CONFIG_FORCE_MAX_ZONEORDER=13 | 230 | CONFIG_FORCE_MAX_ZONEORDER=13 |
211 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y | 231 | CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y |
212 | CONFIG_IOMMU_VMERGE=y | 232 | CONFIG_IOMMU_VMERGE=y |
233 | CONFIG_IOMMU_HELPER=y | ||
213 | CONFIG_HOTPLUG_CPU=y | 234 | CONFIG_HOTPLUG_CPU=y |
214 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y | 235 | CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y |
236 | CONFIG_ARCH_HAS_WALK_MEMORY=y | ||
237 | CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y | ||
215 | CONFIG_KEXEC=y | 238 | CONFIG_KEXEC=y |
216 | # CONFIG_CRASH_DUMP is not set | 239 | # CONFIG_CRASH_DUMP is not set |
217 | CONFIG_IRQ_ALL_CPUS=y | 240 | CONFIG_IRQ_ALL_CPUS=y |
@@ -245,9 +268,7 @@ CONFIG_SCHED_SMT=y | |||
245 | CONFIG_PROC_DEVICETREE=y | 268 | CONFIG_PROC_DEVICETREE=y |
246 | # CONFIG_CMDLINE_BOOL is not set | 269 | # CONFIG_CMDLINE_BOOL is not set |
247 | # CONFIG_PM is not set | 270 | # CONFIG_PM is not set |
248 | CONFIG_SUSPEND_SMP_POSSIBLE=y | ||
249 | CONFIG_SECCOMP=y | 271 | CONFIG_SECCOMP=y |
250 | # CONFIG_WANT_DEVICE_TREE is not set | ||
251 | CONFIG_ISA_DMA_API=y | 272 | CONFIG_ISA_DMA_API=y |
252 | 273 | ||
253 | # | 274 | # |
@@ -288,6 +309,7 @@ CONFIG_XFRM=y | |||
288 | CONFIG_XFRM_USER=m | 309 | CONFIG_XFRM_USER=m |
289 | # CONFIG_XFRM_SUB_POLICY is not set | 310 | # CONFIG_XFRM_SUB_POLICY is not set |
290 | # CONFIG_XFRM_MIGRATE is not set | 311 | # CONFIG_XFRM_MIGRATE is not set |
312 | # CONFIG_XFRM_STATISTICS is not set | ||
291 | CONFIG_NET_KEY=m | 313 | CONFIG_NET_KEY=m |
292 | # CONFIG_NET_KEY_MIGRATE is not set | 314 | # CONFIG_NET_KEY_MIGRATE is not set |
293 | CONFIG_INET=y | 315 | CONFIG_INET=y |
@@ -322,14 +344,14 @@ CONFIG_DEFAULT_TCP_CONG="cubic" | |||
322 | # CONFIG_NETWORK_SECMARK is not set | 344 | # CONFIG_NETWORK_SECMARK is not set |
323 | CONFIG_NETFILTER=y | 345 | CONFIG_NETFILTER=y |
324 | # CONFIG_NETFILTER_DEBUG is not set | 346 | # CONFIG_NETFILTER_DEBUG is not set |
347 | CONFIG_NETFILTER_ADVANCED=y | ||
325 | 348 | ||
326 | # | 349 | # |
327 | # Core Netfilter Configuration | 350 | # Core Netfilter Configuration |
328 | # | 351 | # |
329 | CONFIG_NETFILTER_NETLINK=y | 352 | CONFIG_NETFILTER_NETLINK=m |
330 | CONFIG_NETFILTER_NETLINK_QUEUE=m | 353 | CONFIG_NETFILTER_NETLINK_QUEUE=m |
331 | CONFIG_NETFILTER_NETLINK_LOG=m | 354 | CONFIG_NETFILTER_NETLINK_LOG=m |
332 | CONFIG_NF_CONNTRACK_ENABLED=m | ||
333 | CONFIG_NF_CONNTRACK=m | 355 | CONFIG_NF_CONNTRACK=m |
334 | CONFIG_NF_CT_ACCT=y | 356 | CONFIG_NF_CT_ACCT=y |
335 | CONFIG_NF_CONNTRACK_MARK=y | 357 | CONFIG_NF_CONNTRACK_MARK=y |
@@ -351,6 +373,7 @@ CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m | |||
351 | CONFIG_NETFILTER_XT_TARGET_MARK=m | 373 | CONFIG_NETFILTER_XT_TARGET_MARK=m |
352 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m | 374 | CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m |
353 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m | 375 | CONFIG_NETFILTER_XT_TARGET_NFLOG=m |
376 | CONFIG_NETFILTER_XT_TARGET_RATEEST=m | ||
354 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m | 377 | CONFIG_NETFILTER_XT_TARGET_TCPMSS=m |
355 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m | 378 | CONFIG_NETFILTER_XT_MATCH_COMMENT=m |
356 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m | 379 | CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m |
@@ -361,14 +384,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m | |||
361 | CONFIG_NETFILTER_XT_MATCH_DSCP=m | 384 | CONFIG_NETFILTER_XT_MATCH_DSCP=m |
362 | CONFIG_NETFILTER_XT_MATCH_ESP=m | 385 | CONFIG_NETFILTER_XT_MATCH_ESP=m |
363 | CONFIG_NETFILTER_XT_MATCH_HELPER=m | 386 | CONFIG_NETFILTER_XT_MATCH_HELPER=m |
387 | CONFIG_NETFILTER_XT_MATCH_IPRANGE=m | ||
364 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m | 388 | CONFIG_NETFILTER_XT_MATCH_LENGTH=m |
365 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m | 389 | CONFIG_NETFILTER_XT_MATCH_LIMIT=m |
366 | CONFIG_NETFILTER_XT_MATCH_MAC=m | 390 | CONFIG_NETFILTER_XT_MATCH_MAC=m |
367 | CONFIG_NETFILTER_XT_MATCH_MARK=m | 391 | CONFIG_NETFILTER_XT_MATCH_MARK=m |
392 | CONFIG_NETFILTER_XT_MATCH_OWNER=m | ||
368 | CONFIG_NETFILTER_XT_MATCH_POLICY=m | 393 | CONFIG_NETFILTER_XT_MATCH_POLICY=m |
369 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m | 394 | CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m |
370 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m | 395 | CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m |
371 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m | 396 | CONFIG_NETFILTER_XT_MATCH_QUOTA=m |
397 | CONFIG_NETFILTER_XT_MATCH_RATEEST=m | ||
372 | CONFIG_NETFILTER_XT_MATCH_REALM=m | 398 | CONFIG_NETFILTER_XT_MATCH_REALM=m |
373 | CONFIG_NETFILTER_XT_MATCH_SCTP=m | 399 | CONFIG_NETFILTER_XT_MATCH_SCTP=m |
374 | CONFIG_NETFILTER_XT_MATCH_STATE=m | 400 | CONFIG_NETFILTER_XT_MATCH_STATE=m |
@@ -386,13 +412,10 @@ CONFIG_NF_CONNTRACK_IPV4=m | |||
386 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y | 412 | CONFIG_NF_CONNTRACK_PROC_COMPAT=y |
387 | CONFIG_IP_NF_QUEUE=m | 413 | CONFIG_IP_NF_QUEUE=m |
388 | CONFIG_IP_NF_IPTABLES=m | 414 | CONFIG_IP_NF_IPTABLES=m |
389 | CONFIG_IP_NF_MATCH_IPRANGE=m | ||
390 | CONFIG_IP_NF_MATCH_TOS=m | ||
391 | CONFIG_IP_NF_MATCH_RECENT=m | 415 | CONFIG_IP_NF_MATCH_RECENT=m |
392 | CONFIG_IP_NF_MATCH_ECN=m | 416 | CONFIG_IP_NF_MATCH_ECN=m |
393 | CONFIG_IP_NF_MATCH_AH=m | 417 | CONFIG_IP_NF_MATCH_AH=m |
394 | CONFIG_IP_NF_MATCH_TTL=m | 418 | CONFIG_IP_NF_MATCH_TTL=m |
395 | CONFIG_IP_NF_MATCH_OWNER=m | ||
396 | CONFIG_IP_NF_MATCH_ADDRTYPE=m | 419 | CONFIG_IP_NF_MATCH_ADDRTYPE=m |
397 | CONFIG_IP_NF_FILTER=m | 420 | CONFIG_IP_NF_FILTER=m |
398 | CONFIG_IP_NF_TARGET_REJECT=m | 421 | CONFIG_IP_NF_TARGET_REJECT=m |
@@ -403,7 +426,6 @@ CONFIG_NF_NAT_NEEDED=y | |||
403 | CONFIG_IP_NF_TARGET_MASQUERADE=m | 426 | CONFIG_IP_NF_TARGET_MASQUERADE=m |
404 | CONFIG_IP_NF_TARGET_REDIRECT=m | 427 | CONFIG_IP_NF_TARGET_REDIRECT=m |
405 | CONFIG_IP_NF_TARGET_NETMAP=m | 428 | CONFIG_IP_NF_TARGET_NETMAP=m |
406 | CONFIG_IP_NF_TARGET_SAME=m | ||
407 | CONFIG_NF_NAT_SNMP_BASIC=m | 429 | CONFIG_NF_NAT_SNMP_BASIC=m |
408 | CONFIG_NF_NAT_FTP=m | 430 | CONFIG_NF_NAT_FTP=m |
409 | CONFIG_NF_NAT_IRC=m | 431 | CONFIG_NF_NAT_IRC=m |
@@ -439,6 +461,7 @@ CONFIG_NET_CLS_ROUTE=y | |||
439 | # CONFIG_NET_PKTGEN is not set | 461 | # CONFIG_NET_PKTGEN is not set |
440 | # CONFIG_NET_TCPPROBE is not set | 462 | # CONFIG_NET_TCPPROBE is not set |
441 | # CONFIG_HAMRADIO is not set | 463 | # CONFIG_HAMRADIO is not set |
464 | # CONFIG_CAN is not set | ||
442 | # CONFIG_IRDA is not set | 465 | # CONFIG_IRDA is not set |
443 | # CONFIG_BT is not set | 466 | # CONFIG_BT is not set |
444 | # CONFIG_AF_RXRPC is not set | 467 | # CONFIG_AF_RXRPC is not set |
@@ -493,7 +516,7 @@ CONFIG_BLK_DEV_NBD=m | |||
493 | CONFIG_BLK_DEV_RAM=y | 516 | CONFIG_BLK_DEV_RAM=y |
494 | CONFIG_BLK_DEV_RAM_COUNT=16 | 517 | CONFIG_BLK_DEV_RAM_COUNT=16 |
495 | CONFIG_BLK_DEV_RAM_SIZE=65536 | 518 | CONFIG_BLK_DEV_RAM_SIZE=65536 |
496 | CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 | 519 | # CONFIG_BLK_DEV_XIP is not set |
497 | # CONFIG_CDROM_PKTCDVD is not set | 520 | # CONFIG_CDROM_PKTCDVD is not set |
498 | # CONFIG_ATA_OVER_ETH is not set | 521 | # CONFIG_ATA_OVER_ETH is not set |
499 | CONFIG_MISC_DEVICES=y | 522 | CONFIG_MISC_DEVICES=y |
@@ -501,16 +524,19 @@ CONFIG_MISC_DEVICES=y | |||
501 | # CONFIG_EEPROM_93CX6 is not set | 524 | # CONFIG_EEPROM_93CX6 is not set |
502 | # CONFIG_SGI_IOC4 is not set | 525 | # CONFIG_SGI_IOC4 is not set |
503 | # CONFIG_TIFM_CORE is not set | 526 | # CONFIG_TIFM_CORE is not set |
527 | # CONFIG_ENCLOSURE_SERVICES is not set | ||
528 | CONFIG_HAVE_IDE=y | ||
504 | CONFIG_IDE=y | 529 | CONFIG_IDE=y |
505 | CONFIG_BLK_DEV_IDE=y | 530 | CONFIG_BLK_DEV_IDE=y |
506 | 531 | ||
507 | # | 532 | # |
508 | # Please see Documentation/ide.txt for help/info on IDE drives | 533 | # Please see Documentation/ide/ide.txt for help/info on IDE drives |
509 | # | 534 | # |
510 | # CONFIG_BLK_DEV_IDE_SATA is not set | 535 | # CONFIG_BLK_DEV_IDE_SATA is not set |
511 | CONFIG_BLK_DEV_IDEDISK=y | 536 | CONFIG_BLK_DEV_IDEDISK=y |
512 | # CONFIG_IDEDISK_MULTI_MODE is not set | 537 | # CONFIG_IDEDISK_MULTI_MODE is not set |
513 | CONFIG_BLK_DEV_IDECD=y | 538 | CONFIG_BLK_DEV_IDECD=y |
539 | CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y | ||
514 | # CONFIG_BLK_DEV_IDETAPE is not set | 540 | # CONFIG_BLK_DEV_IDETAPE is not set |
515 | # CONFIG_BLK_DEV_IDEFLOPPY is not set | 541 | # CONFIG_BLK_DEV_IDEFLOPPY is not set |
516 | # CONFIG_BLK_DEV_IDESCSI is not set | 542 | # CONFIG_BLK_DEV_IDESCSI is not set |
@@ -522,12 +548,12 @@ CONFIG_IDE_PROC_FS=y | |||
522 | # | 548 | # |
523 | CONFIG_IDE_GENERIC=y | 549 | CONFIG_IDE_GENERIC=y |
524 | # CONFIG_BLK_DEV_PLATFORM is not set | 550 | # CONFIG_BLK_DEV_PLATFORM is not set |
551 | CONFIG_BLK_DEV_IDEDMA_SFF=y | ||
525 | 552 | ||
526 | # | 553 | # |
527 | # PCI IDE chipsets support | 554 | # PCI IDE chipsets support |
528 | # | 555 | # |
529 | CONFIG_BLK_DEV_IDEPCI=y | 556 | CONFIG_BLK_DEV_IDEPCI=y |
530 | CONFIG_IDEPCI_SHARE_IRQ=y | ||
531 | CONFIG_IDEPCI_PCIBUS_ORDER=y | 557 | CONFIG_IDEPCI_PCIBUS_ORDER=y |
532 | # CONFIG_BLK_DEV_OFFBOARD is not set | 558 | # CONFIG_BLK_DEV_OFFBOARD is not set |
533 | CONFIG_BLK_DEV_GENERIC=y | 559 | CONFIG_BLK_DEV_GENERIC=y |
@@ -558,7 +584,6 @@ CONFIG_BLK_DEV_AMD74XX=y | |||
558 | # CONFIG_BLK_DEV_TRM290 is not set | 584 | # CONFIG_BLK_DEV_TRM290 is not set |
559 | # CONFIG_BLK_DEV_VIA82CXXX is not set | 585 | # CONFIG_BLK_DEV_VIA82CXXX is not set |
560 | # CONFIG_BLK_DEV_TC86C001 is not set | 586 | # CONFIG_BLK_DEV_TC86C001 is not set |
561 | # CONFIG_IDE_ARM is not set | ||
562 | CONFIG_BLK_DEV_IDEDMA=y | 587 | CONFIG_BLK_DEV_IDEDMA=y |
563 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y | 588 | CONFIG_IDE_ARCH_OBSOLETE_INIT=y |
564 | # CONFIG_BLK_DEV_HD is not set | 589 | # CONFIG_BLK_DEV_HD is not set |
@@ -627,6 +652,7 @@ CONFIG_SCSI_IBMVSCSI=y | |||
627 | # CONFIG_SCSI_INIA100 is not set | 652 | # CONFIG_SCSI_INIA100 is not set |
628 | # CONFIG_SCSI_PPA is not set | 653 | # CONFIG_SCSI_PPA is not set |
629 | # CONFIG_SCSI_IMM is not set | 654 | # CONFIG_SCSI_IMM is not set |
655 | # CONFIG_SCSI_MVSAS is not set | ||
630 | # CONFIG_SCSI_STEX is not set | 656 | # CONFIG_SCSI_STEX is not set |
631 | CONFIG_SCSI_SYM53C8XX_2=y | 657 | CONFIG_SCSI_SYM53C8XX_2=y |
632 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 | 658 | CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 |
@@ -685,6 +711,7 @@ CONFIG_ATA=y | |||
685 | # CONFIG_PATA_MPIIX is not set | 711 | # CONFIG_PATA_MPIIX is not set |
686 | # CONFIG_PATA_OLDPIIX is not set | 712 | # CONFIG_PATA_OLDPIIX is not set |
687 | # CONFIG_PATA_NETCELL is not set | 713 | # CONFIG_PATA_NETCELL is not set |
714 | # CONFIG_PATA_NINJA32 is not set | ||
688 | # CONFIG_PATA_NS87410 is not set | 715 | # CONFIG_PATA_NS87410 is not set |
689 | # CONFIG_PATA_NS87415 is not set | 716 | # CONFIG_PATA_NS87415 is not set |
690 | # CONFIG_PATA_OPTI is not set | 717 | # CONFIG_PATA_OPTI is not set |
@@ -699,6 +726,7 @@ CONFIG_ATA=y | |||
699 | # CONFIG_PATA_SIS is not set | 726 | # CONFIG_PATA_SIS is not set |
700 | # CONFIG_PATA_VIA is not set | 727 | # CONFIG_PATA_VIA is not set |
701 | CONFIG_PATA_WINBOND=y | 728 | CONFIG_PATA_WINBOND=y |
729 | # CONFIG_PATA_PLATFORM is not set | ||
702 | CONFIG_MD=y | 730 | CONFIG_MD=y |
703 | CONFIG_BLK_DEV_MD=y | 731 | CONFIG_BLK_DEV_MD=y |
704 | CONFIG_MD_LINEAR=y | 732 | CONFIG_MD_LINEAR=y |
@@ -737,7 +765,6 @@ CONFIG_BONDING=m | |||
737 | # CONFIG_EQUALIZER is not set | 765 | # CONFIG_EQUALIZER is not set |
738 | CONFIG_TUN=m | 766 | CONFIG_TUN=m |
739 | # CONFIG_VETH is not set | 767 | # CONFIG_VETH is not set |
740 | # CONFIG_IP1000 is not set | ||
741 | # CONFIG_ARCNET is not set | 768 | # CONFIG_ARCNET is not set |
742 | # CONFIG_PHYLIB is not set | 769 | # CONFIG_PHYLIB is not set |
743 | CONFIG_NET_ETHERNET=y | 770 | CONFIG_NET_ETHERNET=y |
@@ -769,6 +796,7 @@ CONFIG_E100=y | |||
769 | # CONFIG_NE2K_PCI is not set | 796 | # CONFIG_NE2K_PCI is not set |
770 | # CONFIG_8139CP is not set | 797 | # CONFIG_8139CP is not set |
771 | # CONFIG_8139TOO is not set | 798 | # CONFIG_8139TOO is not set |
799 | # CONFIG_R6040 is not set | ||
772 | # CONFIG_SIS900 is not set | 800 | # CONFIG_SIS900 is not set |
773 | # CONFIG_EPIC100 is not set | 801 | # CONFIG_EPIC100 is not set |
774 | # CONFIG_SUNDANCE is not set | 802 | # CONFIG_SUNDANCE is not set |
@@ -783,6 +811,9 @@ CONFIG_E1000=y | |||
783 | # CONFIG_E1000_NAPI is not set | 811 | # CONFIG_E1000_NAPI is not set |
784 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set | 812 | # CONFIG_E1000_DISABLE_PACKET_SPLIT is not set |
785 | # CONFIG_E1000E is not set | 813 | # CONFIG_E1000E is not set |
814 | # CONFIG_E1000E_ENABLED is not set | ||
815 | # CONFIG_IP1000 is not set | ||
816 | # CONFIG_IGB is not set | ||
786 | # CONFIG_NS83820 is not set | 817 | # CONFIG_NS83820 is not set |
787 | # CONFIG_HAMACHI is not set | 818 | # CONFIG_HAMACHI is not set |
788 | # CONFIG_YELLOWFIN is not set | 819 | # CONFIG_YELLOWFIN is not set |
@@ -811,6 +842,7 @@ CONFIG_S2IO=m | |||
811 | # CONFIG_PASEMI_MAC is not set | 842 | # CONFIG_PASEMI_MAC is not set |
812 | # CONFIG_MLX4_CORE is not set | 843 | # CONFIG_MLX4_CORE is not set |
813 | # CONFIG_TEHUTI is not set | 844 | # CONFIG_TEHUTI is not set |
845 | # CONFIG_BNX2X is not set | ||
814 | CONFIG_TR=y | 846 | CONFIG_TR=y |
815 | CONFIG_IBMOL=y | 847 | CONFIG_IBMOL=y |
816 | # CONFIG_3C359 is not set | 848 | # CONFIG_3C359 is not set |
@@ -847,7 +879,6 @@ CONFIG_PPPOE=m | |||
847 | # CONFIG_SLIP is not set | 879 | # CONFIG_SLIP is not set |
848 | CONFIG_SLHC=m | 880 | CONFIG_SLHC=m |
849 | # CONFIG_NET_FC is not set | 881 | # CONFIG_NET_FC is not set |
850 | # CONFIG_SHAPER is not set | ||
851 | CONFIG_NETCONSOLE=y | 882 | CONFIG_NETCONSOLE=y |
852 | # CONFIG_NETCONSOLE_DYNAMIC is not set | 883 | # CONFIG_NETCONSOLE_DYNAMIC is not set |
853 | CONFIG_NETPOLL=y | 884 | CONFIG_NETPOLL=y |
@@ -927,6 +958,7 @@ CONFIG_VT_CONSOLE=y | |||
927 | CONFIG_HW_CONSOLE=y | 958 | CONFIG_HW_CONSOLE=y |
928 | # CONFIG_VT_HW_CONSOLE_BINDING is not set | 959 | # CONFIG_VT_HW_CONSOLE_BINDING is not set |
929 | # CONFIG_SERIAL_NONSTANDARD is not set | 960 | # CONFIG_SERIAL_NONSTANDARD is not set |
961 | # CONFIG_NOZOMI is not set | ||
930 | 962 | ||
931 | # | 963 | # |
932 | # Serial drivers | 964 | # Serial drivers |
@@ -951,7 +983,6 @@ CONFIG_LEGACY_PTYS=y | |||
951 | CONFIG_LEGACY_PTY_COUNT=256 | 983 | CONFIG_LEGACY_PTY_COUNT=256 |
952 | # CONFIG_PRINTER is not set | 984 | # CONFIG_PRINTER is not set |
953 | # CONFIG_PPDEV is not set | 985 | # CONFIG_PPDEV is not set |
954 | # CONFIG_TIPAR is not set | ||
955 | CONFIG_HVC_DRIVER=y | 986 | CONFIG_HVC_DRIVER=y |
956 | CONFIG_HVC_CONSOLE=y | 987 | CONFIG_HVC_CONSOLE=y |
957 | CONFIG_HVC_RTAS=y | 988 | CONFIG_HVC_RTAS=y |
@@ -1009,13 +1040,12 @@ CONFIG_I2C_ALGOBIT=y | |||
1009 | # | 1040 | # |
1010 | # Miscellaneous I2C Chip support | 1041 | # Miscellaneous I2C Chip support |
1011 | # | 1042 | # |
1012 | # CONFIG_SENSORS_DS1337 is not set | ||
1013 | # CONFIG_SENSORS_DS1374 is not set | ||
1014 | # CONFIG_DS1682 is not set | 1043 | # CONFIG_DS1682 is not set |
1015 | # CONFIG_SENSORS_EEPROM is not set | 1044 | # CONFIG_SENSORS_EEPROM is not set |
1016 | # CONFIG_SENSORS_PCF8574 is not set | 1045 | # CONFIG_SENSORS_PCF8574 is not set |
1017 | # CONFIG_SENSORS_PCA9539 is not set | 1046 | # CONFIG_PCF8575 is not set |
1018 | # CONFIG_SENSORS_PCF8591 is not set | 1047 | # CONFIG_SENSORS_PCF8591 is not set |
1048 | # CONFIG_TPS65010 is not set | ||
1019 | # CONFIG_SENSORS_MAX6875 is not set | 1049 | # CONFIG_SENSORS_MAX6875 is not set |
1020 | # CONFIG_SENSORS_TSL2550 is not set | 1050 | # CONFIG_SENSORS_TSL2550 is not set |
1021 | # CONFIG_I2C_DEBUG_CORE is not set | 1051 | # CONFIG_I2C_DEBUG_CORE is not set |
@@ -1031,6 +1061,7 @@ CONFIG_I2C_ALGOBIT=y | |||
1031 | # CONFIG_W1 is not set | 1061 | # CONFIG_W1 is not set |
1032 | # CONFIG_POWER_SUPPLY is not set | 1062 | # CONFIG_POWER_SUPPLY is not set |
1033 | # CONFIG_HWMON is not set | 1063 | # CONFIG_HWMON is not set |
1064 | # CONFIG_THERMAL is not set | ||
1034 | # CONFIG_WATCHDOG is not set | 1065 | # CONFIG_WATCHDOG is not set |
1035 | 1066 | ||
1036 | # | 1067 | # |
@@ -1166,6 +1197,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y | |||
1166 | CONFIG_USB_ARCH_HAS_EHCI=y | 1197 | CONFIG_USB_ARCH_HAS_EHCI=y |
1167 | CONFIG_USB=y | 1198 | CONFIG_USB=y |
1168 | # CONFIG_USB_DEBUG is not set | 1199 | # CONFIG_USB_DEBUG is not set |
1200 | # CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set | ||
1169 | 1201 | ||
1170 | # | 1202 | # |
1171 | # Miscellaneous USB options | 1203 | # Miscellaneous USB options |
@@ -1179,9 +1211,9 @@ CONFIG_USB_DEVICE_CLASS=y | |||
1179 | # USB Host Controller Drivers | 1211 | # USB Host Controller Drivers |
1180 | # | 1212 | # |
1181 | CONFIG_USB_EHCI_HCD=y | 1213 | CONFIG_USB_EHCI_HCD=y |
1182 | # CONFIG_USB_EHCI_SPLIT_ISO is not set | ||
1183 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set | 1214 | # CONFIG_USB_EHCI_ROOT_HUB_TT is not set |
1184 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set | 1215 | # CONFIG_USB_EHCI_TT_NEWSCHED is not set |
1216 | # CONFIG_USB_EHCI_HCD_PPC_OF is not set | ||
1185 | # CONFIG_USB_ISP116X_HCD is not set | 1217 | # CONFIG_USB_ISP116X_HCD is not set |
1186 | CONFIG_USB_OHCI_HCD=y | 1218 | CONFIG_USB_OHCI_HCD=y |
1187 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set | 1219 | # CONFIG_USB_OHCI_HCD_PPC_OF is not set |
@@ -1230,10 +1262,6 @@ CONFIG_USB_MON=y | |||
1230 | # USB port drivers | 1262 | # USB port drivers |
1231 | # | 1263 | # |
1232 | # CONFIG_USB_USS720 is not set | 1264 | # CONFIG_USB_USS720 is not set |
1233 | |||
1234 | # | ||
1235 | # USB Serial Converter support | ||
1236 | # | ||
1237 | # CONFIG_USB_SERIAL is not set | 1265 | # CONFIG_USB_SERIAL is not set |
1238 | 1266 | ||
1239 | # | 1267 | # |
@@ -1259,16 +1287,9 @@ CONFIG_USB_MON=y | |||
1259 | # CONFIG_USB_TRANCEVIBRATOR is not set | 1287 | # CONFIG_USB_TRANCEVIBRATOR is not set |
1260 | # CONFIG_USB_IOWARRIOR is not set | 1288 | # CONFIG_USB_IOWARRIOR is not set |
1261 | # CONFIG_USB_TEST is not set | 1289 | # CONFIG_USB_TEST is not set |
1262 | |||
1263 | # | ||
1264 | # USB DSL modem support | ||
1265 | # | ||
1266 | |||
1267 | # | ||
1268 | # USB Gadget Support | ||
1269 | # | ||
1270 | # CONFIG_USB_GADGET is not set | 1290 | # CONFIG_USB_GADGET is not set |
1271 | # CONFIG_MMC is not set | 1291 | # CONFIG_MMC is not set |
1292 | # CONFIG_MEMSTICK is not set | ||
1272 | # CONFIG_NEW_LEDS is not set | 1293 | # CONFIG_NEW_LEDS is not set |
1273 | CONFIG_INFINIBAND=m | 1294 | CONFIG_INFINIBAND=m |
1274 | CONFIG_INFINIBAND_USER_MAD=m | 1295 | CONFIG_INFINIBAND_USER_MAD=m |
@@ -1281,6 +1302,7 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y | |||
1281 | CONFIG_INFINIBAND_EHCA=m | 1302 | CONFIG_INFINIBAND_EHCA=m |
1282 | # CONFIG_INFINIBAND_AMSO1100 is not set | 1303 | # CONFIG_INFINIBAND_AMSO1100 is not set |
1283 | # CONFIG_MLX4_INFINIBAND is not set | 1304 | # CONFIG_MLX4_INFINIBAND is not set |
1305 | # CONFIG_INFINIBAND_NES is not set | ||
1284 | CONFIG_INFINIBAND_IPOIB=m | 1306 | CONFIG_INFINIBAND_IPOIB=m |
1285 | # CONFIG_INFINIBAND_IPOIB_CM is not set | 1307 | # CONFIG_INFINIBAND_IPOIB_CM is not set |
1286 | CONFIG_INFINIBAND_IPOIB_DEBUG=y | 1308 | CONFIG_INFINIBAND_IPOIB_DEBUG=y |
@@ -1289,6 +1311,7 @@ CONFIG_INFINIBAND_SRP=m | |||
1289 | # CONFIG_INFINIBAND_ISER is not set | 1311 | # CONFIG_INFINIBAND_ISER is not set |
1290 | # CONFIG_EDAC is not set | 1312 | # CONFIG_EDAC is not set |
1291 | # CONFIG_RTC_CLASS is not set | 1313 | # CONFIG_RTC_CLASS is not set |
1314 | # CONFIG_DMADEVICES is not set | ||
1292 | # CONFIG_AUXDISPLAY is not set | 1315 | # CONFIG_AUXDISPLAY is not set |
1293 | 1316 | ||
1294 | # | 1317 | # |
@@ -1334,12 +1357,10 @@ CONFIG_XFS_POSIX_ACL=y | |||
1334 | CONFIG_OCFS2_FS=m | 1357 | CONFIG_OCFS2_FS=m |
1335 | CONFIG_OCFS2_DEBUG_MASKLOG=y | 1358 | CONFIG_OCFS2_DEBUG_MASKLOG=y |
1336 | # CONFIG_OCFS2_DEBUG_FS is not set | 1359 | # CONFIG_OCFS2_DEBUG_FS is not set |
1337 | # CONFIG_MINIX_FS is not set | 1360 | CONFIG_DNOTIFY=y |
1338 | # CONFIG_ROMFS_FS is not set | ||
1339 | CONFIG_INOTIFY=y | 1361 | CONFIG_INOTIFY=y |
1340 | CONFIG_INOTIFY_USER=y | 1362 | CONFIG_INOTIFY_USER=y |
1341 | # CONFIG_QUOTA is not set | 1363 | # CONFIG_QUOTA is not set |
1342 | CONFIG_DNOTIFY=y | ||
1343 | # CONFIG_AUTOFS_FS is not set | 1364 | # CONFIG_AUTOFS_FS is not set |
1344 | CONFIG_AUTOFS4_FS=m | 1365 | CONFIG_AUTOFS4_FS=m |
1345 | CONFIG_FUSE_FS=m | 1366 | CONFIG_FUSE_FS=m |
@@ -1388,8 +1409,10 @@ CONFIG_CONFIGFS_FS=m | |||
1388 | # CONFIG_EFS_FS is not set | 1409 | # CONFIG_EFS_FS is not set |
1389 | CONFIG_CRAMFS=y | 1410 | CONFIG_CRAMFS=y |
1390 | # CONFIG_VXFS_FS is not set | 1411 | # CONFIG_VXFS_FS is not set |
1412 | # CONFIG_MINIX_FS is not set | ||
1391 | # CONFIG_HPFS_FS is not set | 1413 | # CONFIG_HPFS_FS is not set |
1392 | # CONFIG_QNX4FS_FS is not set | 1414 | # CONFIG_QNX4FS_FS is not set |
1415 | # CONFIG_ROMFS_FS is not set | ||
1393 | # CONFIG_SYSV_FS is not set | 1416 | # CONFIG_SYSV_FS is not set |
1394 | # CONFIG_UFS_FS is not set | 1417 | # CONFIG_UFS_FS is not set |
1395 | CONFIG_NETWORK_FILESYSTEMS=y | 1418 | CONFIG_NETWORK_FILESYSTEMS=y |
@@ -1473,7 +1496,6 @@ CONFIG_NLS_ISO8859_1=y | |||
1473 | # CONFIG_NLS_KOI8_U is not set | 1496 | # CONFIG_NLS_KOI8_U is not set |
1474 | # CONFIG_NLS_UTF8 is not set | 1497 | # CONFIG_NLS_UTF8 is not set |
1475 | # CONFIG_DLM is not set | 1498 | # CONFIG_DLM is not set |
1476 | # CONFIG_UCC_SLOW is not set | ||
1477 | 1499 | ||
1478 | # | 1500 | # |
1479 | # Library routines | 1501 | # Library routines |
@@ -1487,6 +1509,8 @@ CONFIG_CRC32=y | |||
1487 | CONFIG_LIBCRC32C=m | 1509 | CONFIG_LIBCRC32C=m |
1488 | CONFIG_ZLIB_INFLATE=y | 1510 | CONFIG_ZLIB_INFLATE=y |
1489 | CONFIG_ZLIB_DEFLATE=m | 1511 | CONFIG_ZLIB_DEFLATE=m |
1512 | CONFIG_LZO_COMPRESS=m | ||
1513 | CONFIG_LZO_DECOMPRESS=m | ||
1490 | CONFIG_TEXTSEARCH=y | 1514 | CONFIG_TEXTSEARCH=y |
1491 | CONFIG_TEXTSEARCH_KMP=m | 1515 | CONFIG_TEXTSEARCH_KMP=m |
1492 | CONFIG_TEXTSEARCH_BM=m | 1516 | CONFIG_TEXTSEARCH_BM=m |
@@ -1495,11 +1519,6 @@ CONFIG_PLIST=y | |||
1495 | CONFIG_HAS_IOMEM=y | 1519 | CONFIG_HAS_IOMEM=y |
1496 | CONFIG_HAS_IOPORT=y | 1520 | CONFIG_HAS_IOPORT=y |
1497 | CONFIG_HAS_DMA=y | 1521 | CONFIG_HAS_DMA=y |
1498 | CONFIG_INSTRUMENTATION=y | ||
1499 | CONFIG_PROFILING=y | ||
1500 | CONFIG_OPROFILE=y | ||
1501 | CONFIG_KPROBES=y | ||
1502 | CONFIG_MARKERS=y | ||
1503 | 1522 | ||
1504 | # | 1523 | # |
1505 | # Kernel hacking | 1524 | # Kernel hacking |
@@ -1518,6 +1537,7 @@ CONFIG_SCHED_DEBUG=y | |||
1518 | # CONFIG_SCHEDSTATS is not set | 1537 | # CONFIG_SCHEDSTATS is not set |
1519 | # CONFIG_TIMER_STATS is not set | 1538 | # CONFIG_TIMER_STATS is not set |
1520 | # CONFIG_SLUB_DEBUG_ON is not set | 1539 | # CONFIG_SLUB_DEBUG_ON is not set |
1540 | # CONFIG_SLUB_STATS is not set | ||
1521 | # CONFIG_DEBUG_RT_MUTEXES is not set | 1541 | # CONFIG_DEBUG_RT_MUTEXES is not set |
1522 | # CONFIG_RT_MUTEX_TESTER is not set | 1542 | # CONFIG_RT_MUTEX_TESTER is not set |
1523 | # CONFIG_DEBUG_SPINLOCK is not set | 1543 | # CONFIG_DEBUG_SPINLOCK is not set |
@@ -1530,9 +1550,10 @@ CONFIG_DEBUG_BUGVERBOSE=y | |||
1530 | # CONFIG_DEBUG_VM is not set | 1550 | # CONFIG_DEBUG_VM is not set |
1531 | # CONFIG_DEBUG_LIST is not set | 1551 | # CONFIG_DEBUG_LIST is not set |
1532 | # CONFIG_DEBUG_SG is not set | 1552 | # CONFIG_DEBUG_SG is not set |
1533 | CONFIG_FORCED_INLINING=y | ||
1534 | # CONFIG_BOOT_PRINTK_DELAY is not set | 1553 | # CONFIG_BOOT_PRINTK_DELAY is not set |
1535 | # CONFIG_RCU_TORTURE_TEST is not set | 1554 | # CONFIG_RCU_TORTURE_TEST is not set |
1555 | # CONFIG_KPROBES_SANITY_TEST is not set | ||
1556 | # CONFIG_BACKTRACE_SELF_TEST is not set | ||
1536 | # CONFIG_LKDTM is not set | 1557 | # CONFIG_LKDTM is not set |
1537 | # CONFIG_FAULT_INJECTION is not set | 1558 | # CONFIG_FAULT_INJECTION is not set |
1538 | # CONFIG_SAMPLES is not set | 1559 | # CONFIG_SAMPLES is not set |
@@ -1557,7 +1578,9 @@ CONFIG_VIRQ_DEBUG=y | |||
1557 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set | 1578 | # CONFIG_SECURITY_FILE_CAPABILITIES is not set |
1558 | CONFIG_CRYPTO=y | 1579 | CONFIG_CRYPTO=y |
1559 | CONFIG_CRYPTO_ALGAPI=y | 1580 | CONFIG_CRYPTO_ALGAPI=y |
1581 | CONFIG_CRYPTO_AEAD=m | ||
1560 | CONFIG_CRYPTO_BLKCIPHER=y | 1582 | CONFIG_CRYPTO_BLKCIPHER=y |
1583 | CONFIG_CRYPTO_SEQIV=m | ||
1561 | CONFIG_CRYPTO_HASH=y | 1584 | CONFIG_CRYPTO_HASH=y |
1562 | CONFIG_CRYPTO_MANAGER=y | 1585 | CONFIG_CRYPTO_MANAGER=y |
1563 | CONFIG_CRYPTO_HMAC=y | 1586 | CONFIG_CRYPTO_HMAC=y |
@@ -1570,12 +1593,15 @@ CONFIG_CRYPTO_SHA256=m | |||
1570 | CONFIG_CRYPTO_SHA512=m | 1593 | CONFIG_CRYPTO_SHA512=m |
1571 | CONFIG_CRYPTO_WP512=m | 1594 | CONFIG_CRYPTO_WP512=m |
1572 | CONFIG_CRYPTO_TGR192=m | 1595 | CONFIG_CRYPTO_TGR192=m |
1573 | # CONFIG_CRYPTO_GF128MUL is not set | 1596 | CONFIG_CRYPTO_GF128MUL=m |
1574 | CONFIG_CRYPTO_ECB=m | 1597 | CONFIG_CRYPTO_ECB=m |
1575 | CONFIG_CRYPTO_CBC=y | 1598 | CONFIG_CRYPTO_CBC=y |
1576 | CONFIG_CRYPTO_PCBC=m | 1599 | CONFIG_CRYPTO_PCBC=m |
1577 | # CONFIG_CRYPTO_LRW is not set | 1600 | # CONFIG_CRYPTO_LRW is not set |
1578 | # CONFIG_CRYPTO_XTS is not set | 1601 | # CONFIG_CRYPTO_XTS is not set |
1602 | CONFIG_CRYPTO_CTR=m | ||
1603 | CONFIG_CRYPTO_GCM=m | ||
1604 | CONFIG_CRYPTO_CCM=m | ||
1579 | # CONFIG_CRYPTO_CRYPTD is not set | 1605 | # CONFIG_CRYPTO_CRYPTD is not set |
1580 | CONFIG_CRYPTO_DES=y | 1606 | CONFIG_CRYPTO_DES=y |
1581 | # CONFIG_CRYPTO_FCRYPT is not set | 1607 | # CONFIG_CRYPTO_FCRYPT is not set |
@@ -1591,11 +1617,13 @@ CONFIG_CRYPTO_ARC4=m | |||
1591 | CONFIG_CRYPTO_KHAZAD=m | 1617 | CONFIG_CRYPTO_KHAZAD=m |
1592 | CONFIG_CRYPTO_ANUBIS=m | 1618 | CONFIG_CRYPTO_ANUBIS=m |
1593 | # CONFIG_CRYPTO_SEED is not set | 1619 | # CONFIG_CRYPTO_SEED is not set |
1620 | CONFIG_CRYPTO_SALSA20=m | ||
1594 | CONFIG_CRYPTO_DEFLATE=m | 1621 | CONFIG_CRYPTO_DEFLATE=m |
1595 | CONFIG_CRYPTO_MICHAEL_MIC=m | 1622 | CONFIG_CRYPTO_MICHAEL_MIC=m |
1596 | CONFIG_CRYPTO_CRC32C=m | 1623 | CONFIG_CRYPTO_CRC32C=m |
1597 | # CONFIG_CRYPTO_CAMELLIA is not set | 1624 | # CONFIG_CRYPTO_CAMELLIA is not set |
1598 | CONFIG_CRYPTO_TEST=m | 1625 | CONFIG_CRYPTO_TEST=m |
1599 | # CONFIG_CRYPTO_AUTHENC is not set | 1626 | CONFIG_CRYPTO_AUTHENC=m |
1627 | CONFIG_CRYPTO_LZO=m | ||
1600 | # CONFIG_CRYPTO_HW is not set | 1628 | # CONFIG_CRYPTO_HW is not set |
1601 | # CONFIG_PPC_CLOCK is not set | 1629 | # CONFIG_PPC_CLOCK is not set |
diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c index 4846bf543a8c..59311ec0d422 100644 --- a/arch/powerpc/kernel/process.c +++ b/arch/powerpc/kernel/process.c | |||
@@ -353,6 +353,12 @@ struct task_struct *__switch_to(struct task_struct *prev, | |||
353 | account_process_vtime(current); | 353 | account_process_vtime(current); |
354 | calculate_steal_time(); | 354 | calculate_steal_time(); |
355 | 355 | ||
356 | /* | ||
357 | * We can't take a PMU exception inside _switch() since there is a | ||
358 | * window where the kernel stack SLB and the kernel stack are out | ||
359 | * of sync. Hard disable here. | ||
360 | */ | ||
361 | hard_irq_disable(); | ||
356 | last = _switch(old_thread, new_thread); | 362 | last = _switch(old_thread, new_thread); |
357 | 363 | ||
358 | local_irq_restore(flags); | 364 | local_irq_restore(flags); |
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c index 7673e9865733..2a9fe97e4521 100644 --- a/arch/powerpc/kernel/ptrace.c +++ b/arch/powerpc/kernel/ptrace.c | |||
@@ -530,15 +530,21 @@ static int gpr32_set(struct task_struct *target, | |||
530 | --count; | 530 | --count; |
531 | } | 531 | } |
532 | 532 | ||
533 | if (kbuf) | 533 | if (kbuf) { |
534 | for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) | 534 | for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) |
535 | regs[pos++] = *k++; | 535 | regs[pos++] = *k++; |
536 | else | 536 | for (; count > 0 && pos < PT_TRAP; --count, ++pos) |
537 | ++k; | ||
538 | } else { | ||
537 | for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) { | 539 | for (; count > 0 && pos <= PT_MAX_PUT_REG; --count) { |
538 | if (__get_user(reg, u++)) | 540 | if (__get_user(reg, u++)) |
539 | return -EFAULT; | 541 | return -EFAULT; |
540 | regs[pos++] = reg; | 542 | regs[pos++] = reg; |
541 | } | 543 | } |
544 | for (; count > 0 && pos < PT_TRAP; --count, ++pos) | ||
545 | if (__get_user(reg, u++)) | ||
546 | return -EFAULT; | ||
547 | } | ||
542 | 548 | ||
543 | if (count > 0 && pos == PT_TRAP) { | 549 | if (count > 0 && pos == PT_TRAP) { |
544 | if (kbuf) | 550 | if (kbuf) |
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c index 47b06bad24ad..906daeda59a8 100644 --- a/arch/powerpc/mm/slb.c +++ b/arch/powerpc/mm/slb.c | |||
@@ -124,6 +124,12 @@ void slb_flush_and_rebolt(void) | |||
124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; | 124 | ksp_vsid_data = get_slb_shadow()->save_area[2].vsid; |
125 | } | 125 | } |
126 | 126 | ||
127 | /* | ||
128 | * We can't take a PMU exception in the following code, so hard | ||
129 | * disable interrupts. | ||
130 | */ | ||
131 | hard_irq_disable(); | ||
132 | |||
127 | /* We need to do this all in asm, so we're sure we don't touch | 133 | /* We need to do this all in asm, so we're sure we don't touch |
128 | * the stack between the slbia and rebolting it. */ | 134 | * the stack between the slbia and rebolting it. */ |
129 | asm volatile("isync\n" | 135 | asm volatile("isync\n" |
diff --git a/arch/powerpc/platforms/cell/iommu.c b/arch/powerpc/platforms/cell/iommu.c index 20ea0e118f24..d75ccded7f10 100644 --- a/arch/powerpc/platforms/cell/iommu.c +++ b/arch/powerpc/platforms/cell/iommu.c | |||
@@ -802,17 +802,24 @@ static int __init cell_iommu_init_disabled(void) | |||
802 | 802 | ||
803 | static u64 cell_iommu_get_fixed_address(struct device *dev) | 803 | static u64 cell_iommu_get_fixed_address(struct device *dev) |
804 | { | 804 | { |
805 | u64 cpu_addr, size, best_size, pci_addr = OF_BAD_ADDR; | 805 | u64 cpu_addr, size, best_size, dev_addr = OF_BAD_ADDR; |
806 | struct device_node *np; | 806 | struct device_node *np; |
807 | const u32 *ranges = NULL; | 807 | const u32 *ranges = NULL; |
808 | int i, len, best; | 808 | int i, len, best, naddr, nsize, pna, range_size; |
809 | 809 | ||
810 | np = of_node_get(dev->archdata.of_node); | 810 | np = of_node_get(dev->archdata.of_node); |
811 | while (np) { | 811 | while (1) { |
812 | naddr = of_n_addr_cells(np); | ||
813 | nsize = of_n_size_cells(np); | ||
814 | np = of_get_next_parent(np); | ||
815 | if (!np) | ||
816 | break; | ||
817 | |||
812 | ranges = of_get_property(np, "dma-ranges", &len); | 818 | ranges = of_get_property(np, "dma-ranges", &len); |
813 | if (ranges) | 819 | |
820 | /* Ignore empty ranges, they imply no translation required */ | ||
821 | if (ranges && len > 0) | ||
814 | break; | 822 | break; |
815 | np = of_get_next_parent(np); | ||
816 | } | 823 | } |
817 | 824 | ||
818 | if (!ranges) { | 825 | if (!ranges) { |
@@ -822,15 +829,17 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) | |||
822 | 829 | ||
823 | len /= sizeof(u32); | 830 | len /= sizeof(u32); |
824 | 831 | ||
832 | pna = of_n_addr_cells(np); | ||
833 | range_size = naddr + nsize + pna; | ||
834 | |||
825 | /* dma-ranges format: | 835 | /* dma-ranges format: |
826 | * 1 cell: pci space | 836 | * child addr : naddr cells |
827 | * 2 cells: pci address | 837 | * parent addr : pna cells |
828 | * 2 cells: parent address | 838 | * size : nsize cells |
829 | * 2 cells: size | ||
830 | */ | 839 | */ |
831 | for (i = 0, best = -1, best_size = 0; i < len; i += 7) { | 840 | for (i = 0, best = -1, best_size = 0; i < len; i += range_size) { |
832 | cpu_addr = of_translate_dma_address(np, ranges +i + 3); | 841 | cpu_addr = of_translate_dma_address(np, ranges + i + naddr); |
833 | size = of_read_number(ranges + i + 5, 2); | 842 | size = of_read_number(ranges + i + naddr + pna, nsize); |
834 | 843 | ||
835 | if (cpu_addr == 0 && size > best_size) { | 844 | if (cpu_addr == 0 && size > best_size) { |
836 | best = i; | 845 | best = i; |
@@ -838,15 +847,15 @@ static u64 cell_iommu_get_fixed_address(struct device *dev) | |||
838 | } | 847 | } |
839 | } | 848 | } |
840 | 849 | ||
841 | if (best >= 0) | 850 | if (best >= 0) { |
842 | pci_addr = of_read_number(ranges + best + 1, 2); | 851 | dev_addr = of_read_number(ranges + best, naddr); |
843 | else | 852 | } else |
844 | dev_dbg(dev, "iommu: no suitable range found!\n"); | 853 | dev_dbg(dev, "iommu: no suitable range found!\n"); |
845 | 854 | ||
846 | out: | 855 | out: |
847 | of_node_put(np); | 856 | of_node_put(np); |
848 | 857 | ||
849 | return pci_addr; | 858 | return dev_addr; |
850 | } | 859 | } |
851 | 860 | ||
852 | static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) | 861 | static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) |
diff --git a/arch/powerpc/platforms/cell/setup.c b/arch/powerpc/platforms/cell/setup.c index dda34650cb07..5c531e8f9f6f 100644 --- a/arch/powerpc/platforms/cell/setup.c +++ b/arch/powerpc/platforms/cell/setup.c | |||
@@ -81,6 +81,42 @@ static void cell_progress(char *s, unsigned short hex) | |||
81 | printk("*** %04x : %s\n", hex, s ? s : ""); | 81 | printk("*** %04x : %s\n", hex, s ? s : ""); |
82 | } | 82 | } |
83 | 83 | ||
84 | static void cell_fixup_pcie_rootcomplex(struct pci_dev *dev) | ||
85 | { | ||
86 | struct pci_controller *hose; | ||
87 | const char *s; | ||
88 | int i; | ||
89 | |||
90 | if (!machine_is(cell)) | ||
91 | return; | ||
92 | |||
93 | /* We're searching for a direct child of the PHB */ | ||
94 | if (dev->bus->self != NULL || dev->devfn != 0) | ||
95 | return; | ||
96 | |||
97 | hose = pci_bus_to_host(dev->bus); | ||
98 | if (hose == NULL) | ||
99 | return; | ||
100 | |||
101 | /* Only on PCIE */ | ||
102 | if (!of_device_is_compatible(hose->dn, "pciex")) | ||
103 | return; | ||
104 | |||
105 | /* And only on axon */ | ||
106 | s = of_get_property(hose->dn, "model", NULL); | ||
107 | if (!s || strcmp(s, "Axon") != 0) | ||
108 | return; | ||
109 | |||
110 | for (i = 0; i < PCI_BRIDGE_RESOURCES; i++) { | ||
111 | dev->resource[i].start = dev->resource[i].end = 0; | ||
112 | dev->resource[i].flags = 0; | ||
113 | } | ||
114 | |||
115 | printk(KERN_DEBUG "PCI: Hiding resources on Axon PCIE RC %s\n", | ||
116 | pci_name(dev)); | ||
117 | } | ||
118 | DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, cell_fixup_pcie_rootcomplex); | ||
119 | |||
84 | static int __init cell_publish_devices(void) | 120 | static int __init cell_publish_devices(void) |
85 | { | 121 | { |
86 | int node; | 122 | int node; |
diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c index 7e8efaade2ea..5efdfe9f5e76 100644 --- a/arch/s390/lib/uaccess_pt.c +++ b/arch/s390/lib/uaccess_pt.c | |||
@@ -406,6 +406,8 @@ int futex_atomic_cmpxchg_pt(int __user *uaddr, int oldval, int newval) | |||
406 | { | 406 | { |
407 | int ret; | 407 | int ret; |
408 | 408 | ||
409 | if (!current->mm) | ||
410 | return -EFAULT; | ||
409 | spin_lock(¤t->mm->page_table_lock); | 411 | spin_lock(¤t->mm->page_table_lock); |
410 | uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr); | 412 | uaddr = (int __user *) __dat_user_addr((unsigned long) uaddr); |
411 | if (!uaddr) { | 413 | if (!uaddr) { |
diff --git a/arch/sh/Kconfig b/arch/sh/Kconfig index 95b7534e9e3c..12720489e458 100644 --- a/arch/sh/Kconfig +++ b/arch/sh/Kconfig | |||
@@ -580,6 +580,7 @@ config SH_TIMER_IRQ | |||
580 | CPU_SUBTYPE_SH7763 | 580 | CPU_SUBTYPE_SH7763 |
581 | default "86" if CPU_SUBTYPE_SH7619 | 581 | default "86" if CPU_SUBTYPE_SH7619 |
582 | default "140" if CPU_SUBTYPE_SH7206 | 582 | default "140" if CPU_SUBTYPE_SH7206 |
583 | default "142" if CPU_SUBTYPE_SH7203 | ||
583 | default "16" | 584 | default "16" |
584 | 585 | ||
585 | config SH_PCLK_FREQ | 586 | config SH_PCLK_FREQ |
diff --git a/arch/sh/Makefile b/arch/sh/Makefile index c510c225144f..cffc92b1bf2e 100644 --- a/arch/sh/Makefile +++ b/arch/sh/Makefile | |||
@@ -154,7 +154,11 @@ drivers-$(CONFIG_OPROFILE) += arch/sh/oprofile/ | |||
154 | 154 | ||
155 | boot := arch/sh/boot | 155 | boot := arch/sh/boot |
156 | 156 | ||
157 | ifneq ($(KBUILD_SRC),) | ||
157 | incdir-prefix := $(srctree)/include/asm-sh/ | 158 | incdir-prefix := $(srctree)/include/asm-sh/ |
159 | else | ||
160 | incdir-prefix := | ||
161 | endif | ||
158 | 162 | ||
159 | # Update machine arch and proc symlinks if something which affects | 163 | # Update machine arch and proc symlinks if something which affects |
160 | # them changed. We use .arch and .mach to indicate when they were | 164 | # them changed. We use .arch and .mach to indicate when they were |
@@ -182,7 +186,7 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \ | |||
182 | $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi | 186 | $(Q)if [ ! -d include/asm-sh ]; then mkdir -p include/asm-sh; fi |
183 | $(Q)rm -f include/asm-sh/mach | 187 | $(Q)rm -f include/asm-sh/mach |
184 | $(Q)for i in $(incdir-y); do \ | 188 | $(Q)for i in $(incdir-y); do \ |
185 | if [ -d $(incdir-prefix)$$i ]; then \ | 189 | if [ -d $(srctree)/include/asm-sh/$$i ]; then \ |
186 | echo -n ' SYMLINK include/asm-sh/mach -> '; \ | 190 | echo -n ' SYMLINK include/asm-sh/mach -> '; \ |
187 | echo -e "include/asm-sh/$$i"; \ | 191 | echo -e "include/asm-sh/$$i"; \ |
188 | ln -fsn $(incdir-prefix)$$i \ | 192 | ln -fsn $(incdir-prefix)$$i \ |
@@ -191,7 +195,7 @@ include/asm-sh/.mach: $(wildcard include/config/sh/*.h) \ | |||
191 | if [ ! -d include/asm-sh/mach ]; then \ | 195 | if [ ! -d include/asm-sh/mach ]; then \ |
192 | echo -n ' SYMLINK include/asm-sh/mach -> '; \ | 196 | echo -n ' SYMLINK include/asm-sh/mach -> '; \ |
193 | echo -e 'include/asm-sh'; \ | 197 | echo -e 'include/asm-sh'; \ |
194 | ln -fsn $(incdir-prefix) include/asm-sh/mach; \ | 198 | ln -fsn $(incdir-prefix)../asm-sh include/asm-sh/mach; \ |
195 | fi; \ | 199 | fi; \ |
196 | fi; \ | 200 | fi; \ |
197 | done | 201 | done |
diff --git a/arch/sh/boot/Makefile b/arch/sh/boot/Makefile index 59f552c13349..3dda24daa0a8 100644 --- a/arch/sh/boot/Makefile +++ b/arch/sh/boot/Makefile | |||
@@ -32,12 +32,12 @@ $(obj)/zImage: $(obj)/compressed/vmlinux FORCE | |||
32 | $(obj)/compressed/vmlinux: FORCE | 32 | $(obj)/compressed/vmlinux: FORCE |
33 | $(Q)$(MAKE) $(build)=$(obj)/compressed $@ | 33 | $(Q)$(MAKE) $(build)=$(obj)/compressed $@ |
34 | 34 | ||
35 | KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%8x" \ | 35 | KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%08x" \ |
36 | $$[$(CONFIG_PAGE_OFFSET) + \ | 36 | $$[$(CONFIG_PAGE_OFFSET) + \ |
37 | $(CONFIG_MEMORY_START) + \ | 37 | $(CONFIG_MEMORY_START) + \ |
38 | $(CONFIG_ZERO_PAGE_OFFSET)]') | 38 | $(CONFIG_ZERO_PAGE_OFFSET)]') |
39 | 39 | ||
40 | KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%8x" \ | 40 | KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%08x" \ |
41 | $$[$(CONFIG_PAGE_OFFSET) + \ | 41 | $$[$(CONFIG_PAGE_OFFSET) + \ |
42 | $(CONFIG_MEMORY_START) + \ | 42 | $(CONFIG_MEMORY_START) + \ |
43 | $(CONFIG_ZERO_PAGE_OFFSET)+0x1000]') | 43 | $(CONFIG_ZERO_PAGE_OFFSET)+0x1000]') |
diff --git a/arch/sh/kernel/cpu/sh2/entry.S b/arch/sh/kernel/cpu/sh2/entry.S index 7a26569e7956..0fc89069d8c7 100644 --- a/arch/sh/kernel/cpu/sh2/entry.S +++ b/arch/sh/kernel/cpu/sh2/entry.S | |||
@@ -267,7 +267,6 @@ ENTRY(sh_bios_handler) | |||
267 | 267 | ||
268 | ENTRY(address_error_trap_handler) | 268 | ENTRY(address_error_trap_handler) |
269 | mov r15,r4 ! regs | 269 | mov r15,r4 ! regs |
270 | add #4,r4 | ||
271 | mov #OFF_PC,r0 | 270 | mov #OFF_PC,r0 |
272 | mov.l @(r0,r15),r6 ! pc | 271 | mov.l @(r0,r15),r6 ! pc |
273 | mov.l 1f,r0 | 272 | mov.l 1f,r0 |
diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 94075e1a1e61..5d039d168f57 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c | |||
@@ -179,7 +179,7 @@ void smp_send_stop(void) | |||
179 | } | 179 | } |
180 | 180 | ||
181 | struct smp_fn_call_struct smp_fn_call = { | 181 | struct smp_fn_call_struct smp_fn_call = { |
182 | .lock = SPIN_LOCK_UNLOCKED, | 182 | .lock = __SPIN_LOCK_UNLOCKED(smp_fn_call.lock), |
183 | .finished = ATOMIC_INIT(0), | 183 | .finished = ATOMIC_INIT(0), |
184 | }; | 184 | }; |
185 | 185 | ||
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 7a9db353f198..1c445c7bdab7 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c | |||
@@ -271,7 +271,7 @@ async_xor_zero_sum(struct page *dest, struct page **src_list, | |||
271 | 271 | ||
272 | BUG_ON(src_cnt <= 1); | 272 | BUG_ON(src_cnt <= 1); |
273 | 273 | ||
274 | if (device) { | 274 | if (device && src_cnt <= device->max_xor) { |
275 | dma_addr_t *dma_src = (dma_addr_t *) src_list; | 275 | dma_addr_t *dma_src = (dma_addr_t *) src_list; |
276 | unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0; | 276 | unsigned long dma_prep_flags = cb_fn ? DMA_PREP_INTERRUPT : 0; |
277 | int i; | 277 | int i; |
diff --git a/drivers/acpi/asus_acpi.c b/drivers/acpi/asus_acpi.c index d25ef961415c..44ad90c03c2e 100644 --- a/drivers/acpi/asus_acpi.c +++ b/drivers/acpi/asus_acpi.c | |||
@@ -610,7 +610,7 @@ write_led(const char __user * buffer, unsigned long count, | |||
610 | (led_out) ? (hotk->status | ledmask) : (hotk->status & ~ledmask); | 610 | (led_out) ? (hotk->status | ledmask) : (hotk->status & ~ledmask); |
611 | 611 | ||
612 | if (invert) /* invert target value */ | 612 | if (invert) /* invert target value */ |
613 | led_out = !led_out & 0x1; | 613 | led_out = !led_out; |
614 | 614 | ||
615 | if (!write_acpi_int(hotk->handle, ledname, led_out, NULL)) | 615 | if (!write_acpi_int(hotk->handle, ledname, led_out, NULL)) |
616 | printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", | 616 | printk(KERN_WARNING "Asus ACPI: LED (%s) write failed\n", |
diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c index f6215e809808..d5729d5dc190 100644 --- a/drivers/acpi/battery.c +++ b/drivers/acpi/battery.c | |||
@@ -293,13 +293,12 @@ static int extract_package(struct acpi_battery *battery, | |||
293 | strncpy(ptr, (u8 *)&element->integer.value, | 293 | strncpy(ptr, (u8 *)&element->integer.value, |
294 | sizeof(acpi_integer)); | 294 | sizeof(acpi_integer)); |
295 | ptr[sizeof(acpi_integer)] = 0; | 295 | ptr[sizeof(acpi_integer)] = 0; |
296 | } else return -EFAULT; | 296 | } else |
297 | *ptr = 0; /* don't have value */ | ||
297 | } else { | 298 | } else { |
298 | if (element->type == ACPI_TYPE_INTEGER) { | 299 | int *x = (int *)((u8 *)battery + offsets[i].offset); |
299 | int *x = (int *)((u8 *)battery + | 300 | *x = (element->type == ACPI_TYPE_INTEGER) ? |
300 | offsets[i].offset); | 301 | element->integer.value : -1; |
301 | *x = element->integer.value; | ||
302 | } else return -EFAULT; | ||
303 | } | 302 | } |
304 | } | 303 | } |
305 | return 0; | 304 | return 0; |
diff --git a/drivers/acpi/dock.c b/drivers/acpi/dock.c index 307cef65c247..fa44fb96fc34 100644 --- a/drivers/acpi/dock.c +++ b/drivers/acpi/dock.c | |||
@@ -710,6 +710,7 @@ static ssize_t write_undock(struct device *dev, struct device_attribute *attr, | |||
710 | if (!count) | 710 | if (!count) |
711 | return -EINVAL; | 711 | return -EINVAL; |
712 | 712 | ||
713 | begin_undock(dock_station); | ||
713 | ret = handle_eject_request(dock_station, ACPI_NOTIFY_EJECT_REQUEST); | 714 | ret = handle_eject_request(dock_station, ACPI_NOTIFY_EJECT_REQUEST); |
714 | return ret ? ret: count; | 715 | return ret ? ret: count; |
715 | } | 716 | } |
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c index e7e197e3a4ff..7222a18a0319 100644 --- a/drivers/acpi/ec.c +++ b/drivers/acpi/ec.c | |||
@@ -129,7 +129,6 @@ static struct acpi_ec { | |||
129 | struct mutex lock; | 129 | struct mutex lock; |
130 | wait_queue_head_t wait; | 130 | wait_queue_head_t wait; |
131 | struct list_head list; | 131 | struct list_head list; |
132 | atomic_t irq_count; | ||
133 | u8 handlers_installed; | 132 | u8 handlers_installed; |
134 | } *boot_ec, *first_ec; | 133 | } *boot_ec, *first_ec; |
135 | 134 | ||
@@ -182,8 +181,6 @@ static int acpi_ec_wait(struct acpi_ec *ec, enum ec_event event, int force_poll) | |||
182 | { | 181 | { |
183 | int ret = 0; | 182 | int ret = 0; |
184 | 183 | ||
185 | atomic_set(&ec->irq_count, 0); | ||
186 | |||
187 | if (unlikely(event == ACPI_EC_EVENT_OBF_1 && | 184 | if (unlikely(event == ACPI_EC_EVENT_OBF_1 && |
188 | test_bit(EC_FLAGS_NO_OBF1_GPE, &ec->flags))) | 185 | test_bit(EC_FLAGS_NO_OBF1_GPE, &ec->flags))) |
189 | force_poll = 1; | 186 | force_poll = 1; |
@@ -230,7 +227,6 @@ static int acpi_ec_wait(struct acpi_ec *ec, enum ec_event event, int force_poll) | |||
230 | while (time_before(jiffies, delay)) { | 227 | while (time_before(jiffies, delay)) { |
231 | if (acpi_ec_check_status(ec, event)) | 228 | if (acpi_ec_check_status(ec, event)) |
232 | goto end; | 229 | goto end; |
233 | msleep(5); | ||
234 | } | 230 | } |
235 | } | 231 | } |
236 | pr_err(PREFIX "acpi_ec_wait timeout," | 232 | pr_err(PREFIX "acpi_ec_wait timeout," |
@@ -533,13 +529,6 @@ static u32 acpi_ec_gpe_handler(void *data) | |||
533 | struct acpi_ec *ec = data; | 529 | struct acpi_ec *ec = data; |
534 | 530 | ||
535 | pr_debug(PREFIX "~~~> interrupt\n"); | 531 | pr_debug(PREFIX "~~~> interrupt\n"); |
536 | atomic_inc(&ec->irq_count); | ||
537 | if (atomic_read(&ec->irq_count) > 5) { | ||
538 | pr_err(PREFIX "GPE storm detected, disabling EC GPE\n"); | ||
539 | acpi_disable_gpe(NULL, ec->gpe, ACPI_ISR); | ||
540 | clear_bit(EC_FLAGS_GPE_MODE, &ec->flags); | ||
541 | return ACPI_INTERRUPT_HANDLED; | ||
542 | } | ||
543 | clear_bit(EC_FLAGS_WAIT_GPE, &ec->flags); | 532 | clear_bit(EC_FLAGS_WAIT_GPE, &ec->flags); |
544 | if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags)) | 533 | if (test_bit(EC_FLAGS_GPE_MODE, &ec->flags)) |
545 | wake_up(&ec->wait); | 534 | wake_up(&ec->wait); |
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c index 6f3b217699e9..e8e2d8869236 100644 --- a/drivers/acpi/processor_idle.c +++ b/drivers/acpi/processor_idle.c | |||
@@ -216,8 +216,10 @@ static void acpi_safe_halt(void) | |||
216 | * test NEED_RESCHED: | 216 | * test NEED_RESCHED: |
217 | */ | 217 | */ |
218 | smp_mb(); | 218 | smp_mb(); |
219 | if (!need_resched()) | 219 | if (!need_resched()) { |
220 | safe_halt(); | 220 | safe_halt(); |
221 | local_irq_disable(); | ||
222 | } | ||
221 | current_thread_info()->status |= TS_POLLING; | 223 | current_thread_info()->status |= TS_POLLING; |
222 | } | 224 | } |
223 | 225 | ||
@@ -421,7 +423,9 @@ static void acpi_processor_idle(void) | |||
421 | else | 423 | else |
422 | acpi_safe_halt(); | 424 | acpi_safe_halt(); |
423 | 425 | ||
424 | local_irq_enable(); | 426 | if (irqs_disabled()) |
427 | local_irq_enable(); | ||
428 | |||
425 | return; | 429 | return; |
426 | } | 430 | } |
427 | 431 | ||
@@ -530,7 +534,9 @@ static void acpi_processor_idle(void) | |||
530 | * skew otherwise. | 534 | * skew otherwise. |
531 | */ | 535 | */ |
532 | sleep_ticks = 0xFFFFFFFF; | 536 | sleep_ticks = 0xFFFFFFFF; |
533 | local_irq_enable(); | 537 | if (irqs_disabled()) |
538 | local_irq_enable(); | ||
539 | |||
534 | break; | 540 | break; |
535 | 541 | ||
536 | case ACPI_STATE_C2: | 542 | case ACPI_STATE_C2: |
diff --git a/drivers/acpi/video.c b/drivers/acpi/video.c index 1bc0c74f2755..12fb44f16766 100644 --- a/drivers/acpi/video.c +++ b/drivers/acpi/video.c | |||
@@ -807,40 +807,11 @@ static void acpi_video_bus_find_cap(struct acpi_video_bus *video) | |||
807 | static int acpi_video_bus_check(struct acpi_video_bus *video) | 807 | static int acpi_video_bus_check(struct acpi_video_bus *video) |
808 | { | 808 | { |
809 | acpi_status status = -ENOENT; | 809 | acpi_status status = -ENOENT; |
810 | long device_id; | 810 | |
811 | struct device *dev; | ||
812 | struct acpi_device *device; | ||
813 | 811 | ||
814 | if (!video) | 812 | if (!video) |
815 | return -EINVAL; | 813 | return -EINVAL; |
816 | 814 | ||
817 | device = video->device; | ||
818 | |||
819 | status = | ||
820 | acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id); | ||
821 | |||
822 | if (!ACPI_SUCCESS(status)) | ||
823 | return -ENODEV; | ||
824 | |||
825 | /* We need to attempt to determine whether the _ADR refers to a | ||
826 | PCI device or not. There's no terribly good way to do this, | ||
827 | so the best we can hope for is to assume that there'll never | ||
828 | be a video device in the host bridge */ | ||
829 | if (device_id >= 0x10000) { | ||
830 | /* It looks like a PCI device. Does it exist? */ | ||
831 | dev = acpi_get_physical_device(device->handle); | ||
832 | } else { | ||
833 | /* It doesn't look like a PCI device. Does its parent | ||
834 | exist? */ | ||
835 | acpi_handle phandle; | ||
836 | if (acpi_get_parent(device->handle, &phandle)) | ||
837 | return -ENODEV; | ||
838 | dev = acpi_get_physical_device(phandle); | ||
839 | } | ||
840 | if (!dev) | ||
841 | return -ENODEV; | ||
842 | put_device(dev); | ||
843 | |||
844 | /* Since there is no HID, CID and so on for VGA driver, we have | 815 | /* Since there is no HID, CID and so on for VGA driver, we have |
845 | * to check well known required nodes. | 816 | * to check well known required nodes. |
846 | */ | 817 | */ |
@@ -1366,37 +1337,8 @@ acpi_video_bus_write_DOS(struct file *file, | |||
1366 | 1337 | ||
1367 | static int acpi_video_bus_add_fs(struct acpi_device *device) | 1338 | static int acpi_video_bus_add_fs(struct acpi_device *device) |
1368 | { | 1339 | { |
1369 | long device_id; | ||
1370 | int status; | ||
1371 | struct proc_dir_entry *entry = NULL; | 1340 | struct proc_dir_entry *entry = NULL; |
1372 | struct acpi_video_bus *video; | 1341 | struct acpi_video_bus *video; |
1373 | struct device *dev; | ||
1374 | |||
1375 | status = | ||
1376 | acpi_evaluate_integer(device->handle, "_ADR", NULL, &device_id); | ||
1377 | |||
1378 | if (!ACPI_SUCCESS(status)) | ||
1379 | return -ENODEV; | ||
1380 | |||
1381 | /* We need to attempt to determine whether the _ADR refers to a | ||
1382 | PCI device or not. There's no terribly good way to do this, | ||
1383 | so the best we can hope for is to assume that there'll never | ||
1384 | be a video device in the host bridge */ | ||
1385 | if (device_id >= 0x10000) { | ||
1386 | /* It looks like a PCI device. Does it exist? */ | ||
1387 | dev = acpi_get_physical_device(device->handle); | ||
1388 | } else { | ||
1389 | /* It doesn't look like a PCI device. Does its parent | ||
1390 | exist? */ | ||
1391 | acpi_handle phandle; | ||
1392 | if (acpi_get_parent(device->handle, &phandle)) | ||
1393 | return -ENODEV; | ||
1394 | dev = acpi_get_physical_device(phandle); | ||
1395 | } | ||
1396 | if (!dev) | ||
1397 | return -ENODEV; | ||
1398 | put_device(dev); | ||
1399 | |||
1400 | 1342 | ||
1401 | 1343 | ||
1402 | video = acpi_driver_data(device); | 1344 | video = acpi_driver_data(device); |
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig index e469647330de..25aba69b59b4 100644 --- a/drivers/ata/Kconfig +++ b/drivers/ata/Kconfig | |||
@@ -30,6 +30,7 @@ config ATA_NONSTANDARD | |||
30 | config ATA_ACPI | 30 | config ATA_ACPI |
31 | bool | 31 | bool |
32 | depends on ACPI && PCI | 32 | depends on ACPI && PCI |
33 | select ACPI_DOCK | ||
33 | default y | 34 | default y |
34 | help | 35 | help |
35 | This option adds support for ATA-related ACPI objects. | 36 | This option adds support for ATA-related ACPI objects. |
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig index b6d230b3209f..0d1d2133d9bc 100644 --- a/drivers/block/Kconfig +++ b/drivers/block/Kconfig | |||
@@ -44,16 +44,6 @@ config MAC_FLOPPY | |||
44 | If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) | 44 | If you have a SWIM-3 (Super Woz Integrated Machine 3; from Apple) |
45 | floppy controller, say Y here. Most commonly found in PowerMacs. | 45 | floppy controller, say Y here. Most commonly found in PowerMacs. |
46 | 46 | ||
47 | config BLK_DEV_PS2 | ||
48 | tristate "PS/2 ESDI hard disk support" | ||
49 | depends on MCA && MCA_LEGACY && BROKEN | ||
50 | help | ||
51 | Say Y here if you have a PS/2 machine with a MCA bus and an ESDI | ||
52 | hard disk. | ||
53 | |||
54 | To compile this driver as a module, choose M here: the | ||
55 | module will be called ps2esdi. | ||
56 | |||
57 | config AMIGA_Z2RAM | 47 | config AMIGA_Z2RAM |
58 | tristate "Amiga Zorro II ramdisk support" | 48 | tristate "Amiga Zorro II ramdisk support" |
59 | depends on ZORRO | 49 | depends on ZORRO |
diff --git a/drivers/block/Makefile b/drivers/block/Makefile index 01c972415cb2..5e584306be99 100644 --- a/drivers/block/Makefile +++ b/drivers/block/Makefile | |||
@@ -13,7 +13,6 @@ obj-$(CONFIG_ATARI_FLOPPY) += ataflop.o | |||
13 | obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o | 13 | obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o |
14 | obj-$(CONFIG_BLK_DEV_RAM) += brd.o | 14 | obj-$(CONFIG_BLK_DEV_RAM) += brd.o |
15 | obj-$(CONFIG_BLK_DEV_LOOP) += loop.o | 15 | obj-$(CONFIG_BLK_DEV_LOOP) += loop.o |
16 | obj-$(CONFIG_BLK_DEV_PS2) += ps2esdi.o | ||
17 | obj-$(CONFIG_BLK_DEV_XD) += xd.o | 16 | obj-$(CONFIG_BLK_DEV_XD) += xd.o |
18 | obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o | 17 | obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o |
19 | obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o | 18 | obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o |
diff --git a/drivers/block/ps2esdi.c b/drivers/block/ps2esdi.c deleted file mode 100644 index 3c796e236253..000000000000 --- a/drivers/block/ps2esdi.c +++ /dev/null | |||
@@ -1,1079 +0,0 @@ | |||
1 | /* ps2esdi driver based on assembler code by Arindam Banerji, | ||
2 | written by Peter De Schrijver */ | ||
3 | /* Reassuring note to IBM : This driver was NOT developed by vice-versa | ||
4 | engineering the PS/2's BIOS */ | ||
5 | /* Dedicated to Wannes, Tofke, Ykke, Godot, Killroy and all those | ||
6 | other lovely fish out there... */ | ||
7 | /* This code was written during the long and boring WINA | ||
8 | elections 1994 */ | ||
9 | /* Thanks to Arindam Banerij for giving me the source of his driver */ | ||
10 | /* This code may be freely distributed and modified in any way, | ||
11 | as long as these notes remain intact */ | ||
12 | |||
13 | /* Revised: 05/07/94 by Arindam Banerji (axb@cse.nd.edu) */ | ||
14 | /* Revised: 09/08/94 by Peter De Schrijver (stud11@cc4.kuleuven.ac.be) | ||
15 | Thanks to Arindam Banerij for sending me the docs of the adapter */ | ||
16 | |||
17 | /* BA Modified for ThinkPad 720 by Boris Ashkinazi */ | ||
18 | /* (bash@vnet.ibm.com) 08/08/95 */ | ||
19 | |||
20 | /* Modified further for ThinkPad-720C by Uri Blumenthal */ | ||
21 | /* (uri@watson.ibm.com) Sep 11, 1995 */ | ||
22 | |||
23 | /* TODO : | ||
24 | + Timeouts | ||
25 | + Get disk parameters | ||
26 | + DMA above 16MB | ||
27 | + reset after read/write error | ||
28 | */ | ||
29 | |||
30 | #define DEVICE_NAME "PS/2 ESDI" | ||
31 | |||
32 | #include <linux/major.h> | ||
33 | #include <linux/errno.h> | ||
34 | #include <linux/wait.h> | ||
35 | #include <linux/interrupt.h> | ||
36 | #include <linux/fs.h> | ||
37 | #include <linux/kernel.h> | ||
38 | #include <linux/genhd.h> | ||
39 | #include <linux/ps2esdi.h> | ||
40 | #include <linux/blkdev.h> | ||
41 | #include <linux/mca-legacy.h> | ||
42 | #include <linux/init.h> | ||
43 | #include <linux/ioport.h> | ||
44 | #include <linux/module.h> | ||
45 | #include <linux/hdreg.h> | ||
46 | |||
47 | #include <asm/system.h> | ||
48 | #include <asm/io.h> | ||
49 | #include <asm/dma.h> | ||
50 | #include <asm/mca_dma.h> | ||
51 | #include <asm/uaccess.h> | ||
52 | |||
53 | #define PS2ESDI_IRQ 14 | ||
54 | #define MAX_HD 2 | ||
55 | #define MAX_RETRIES 5 | ||
56 | #define MAX_16BIT 65536 | ||
57 | #define ESDI_TIMEOUT 0xf000 | ||
58 | #define ESDI_STAT_TIMEOUT 4 | ||
59 | |||
60 | #define TYPE_0_CMD_BLK_LENGTH 2 | ||
61 | #define TYPE_1_CMD_BLK_LENGTH 4 | ||
62 | |||
63 | static void reset_ctrl(void); | ||
64 | |||
65 | static int ps2esdi_geninit(void); | ||
66 | |||
67 | static void do_ps2esdi_request(struct request_queue * q); | ||
68 | |||
69 | static void ps2esdi_readwrite(int cmd, struct request *req); | ||
70 | |||
71 | static void ps2esdi_fill_cmd_block(u_short * cmd_blk, u_short cmd, | ||
72 | u_short cyl, u_short head, u_short sector, u_short length, u_char drive); | ||
73 | |||
74 | static int ps2esdi_out_cmd_blk(u_short * cmd_blk); | ||
75 | |||
76 | static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode); | ||
77 | |||
78 | static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id); | ||
79 | static void (*current_int_handler) (u_int) = NULL; | ||
80 | static void ps2esdi_normal_interrupt_handler(u_int); | ||
81 | static void ps2esdi_initial_reset_int_handler(u_int); | ||
82 | static void ps2esdi_geometry_int_handler(u_int); | ||
83 | static int ps2esdi_getgeo(struct block_device *bdev, struct hd_geometry *geo); | ||
84 | |||
85 | static int ps2esdi_read_status_words(int num_words, int max_words, u_short * buffer); | ||
86 | |||
87 | static void dump_cmd_complete_status(u_int int_ret_code); | ||
88 | |||
89 | static void ps2esdi_get_device_cfg(void); | ||
90 | |||
91 | static void ps2esdi_reset_timer(unsigned long unused); | ||
92 | |||
93 | static u_int dma_arb_level; /* DMA arbitration level */ | ||
94 | |||
95 | static DECLARE_WAIT_QUEUE_HEAD(ps2esdi_int); | ||
96 | |||
97 | static int no_int_yet; | ||
98 | static int ps2esdi_drives; | ||
99 | static u_short io_base; | ||
100 | static DEFINE_TIMER(esdi_timer, ps2esdi_reset_timer, 0, 0); | ||
101 | static int reset_status; | ||
102 | static int ps2esdi_slot = -1; | ||
103 | static int tp720esdi = 0; /* Is it Integrated ESDI of ThinkPad-720? */ | ||
104 | static int intg_esdi = 0; /* If integrated adapter */ | ||
105 | struct ps2esdi_i_struct { | ||
106 | unsigned int head, sect, cyl, wpcom, lzone, ctl; | ||
107 | }; | ||
108 | static DEFINE_SPINLOCK(ps2esdi_lock); | ||
109 | static struct request_queue *ps2esdi_queue; | ||
110 | static struct request *current_req; | ||
111 | |||
112 | #if 0 | ||
113 | #if 0 /* try both - I don't know which one is better... UB */ | ||
114 | static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = | ||
115 | { | ||
116 | {4, 48, 1553, 0, 0, 0}, | ||
117 | {0, 0, 0, 0, 0, 0}}; | ||
118 | #else | ||
119 | static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = | ||
120 | { | ||
121 | {64, 32, 161, 0, 0, 0}, | ||
122 | {0, 0, 0, 0, 0, 0}}; | ||
123 | #endif | ||
124 | #endif | ||
125 | static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] = | ||
126 | { | ||
127 | {0, 0, 0, 0, 0, 0}, | ||
128 | {0, 0, 0, 0, 0, 0}}; | ||
129 | |||
130 | static struct block_device_operations ps2esdi_fops = | ||
131 | { | ||
132 | .owner = THIS_MODULE, | ||
133 | .getgeo = ps2esdi_getgeo, | ||
134 | }; | ||
135 | |||
136 | static struct gendisk *ps2esdi_gendisk[2]; | ||
137 | |||
138 | /* initialization routine called by ll_rw_blk.c */ | ||
139 | static int __init ps2esdi_init(void) | ||
140 | { | ||
141 | |||
142 | int error = 0; | ||
143 | |||
144 | /* register the device - pass the name and major number */ | ||
145 | if (register_blkdev(PS2ESDI_MAJOR, "ed")) | ||
146 | return -EBUSY; | ||
147 | |||
148 | /* set up some global information - indicating device specific info */ | ||
149 | ps2esdi_queue = blk_init_queue(do_ps2esdi_request, &ps2esdi_lock); | ||
150 | if (!ps2esdi_queue) { | ||
151 | unregister_blkdev(PS2ESDI_MAJOR, "ed"); | ||
152 | return -ENOMEM; | ||
153 | } | ||
154 | |||
155 | /* some minor housekeeping - setup the global gendisk structure */ | ||
156 | error = ps2esdi_geninit(); | ||
157 | if (error) { | ||
158 | printk(KERN_WARNING "PS2ESDI: error initialising" | ||
159 | " device, releasing resources\n"); | ||
160 | unregister_blkdev(PS2ESDI_MAJOR, "ed"); | ||
161 | blk_cleanup_queue(ps2esdi_queue); | ||
162 | return error; | ||
163 | } | ||
164 | return 0; | ||
165 | } /* ps2esdi_init */ | ||
166 | |||
167 | #ifndef MODULE | ||
168 | |||
169 | module_init(ps2esdi_init); | ||
170 | |||
171 | #else | ||
172 | |||
173 | static int cyl[MAX_HD] = {-1,-1}; | ||
174 | static int head[MAX_HD] = {-1, -1}; | ||
175 | static int sect[MAX_HD] = {-1, -1}; | ||
176 | |||
177 | module_param(tp720esdi, bool, 0); | ||
178 | module_param_array(cyl, int, NULL, 0); | ||
179 | module_param_array(head, int, NULL, 0); | ||
180 | module_param_array(sect, int, NULL, 0); | ||
181 | MODULE_LICENSE("GPL"); | ||
182 | |||
183 | int init_module(void) { | ||
184 | int drive; | ||
185 | |||
186 | for(drive = 0; drive < MAX_HD; drive++) { | ||
187 | struct ps2esdi_i_struct *info = &ps2esdi_info[drive]; | ||
188 | |||
189 | if (cyl[drive] != -1) { | ||
190 | info->cyl = info->lzone = cyl[drive]; | ||
191 | info->wpcom = 0; | ||
192 | } | ||
193 | if (head[drive] != -1) { | ||
194 | info->head = head[drive]; | ||
195 | info->ctl = (head[drive] > 8 ? 8 : 0); | ||
196 | } | ||
197 | if (sect[drive] != -1) info->sect = sect[drive]; | ||
198 | } | ||
199 | return ps2esdi_init(); | ||
200 | } | ||
201 | |||
202 | void | ||
203 | cleanup_module(void) { | ||
204 | int i; | ||
205 | if(ps2esdi_slot) { | ||
206 | mca_mark_as_unused(ps2esdi_slot); | ||
207 | mca_set_adapter_procfn(ps2esdi_slot, NULL, NULL); | ||
208 | } | ||
209 | release_region(io_base, 4); | ||
210 | free_dma(dma_arb_level); | ||
211 | free_irq(PS2ESDI_IRQ, &ps2esdi_gendisk); | ||
212 | unregister_blkdev(PS2ESDI_MAJOR, "ed"); | ||
213 | blk_cleanup_queue(ps2esdi_queue); | ||
214 | for (i = 0; i < ps2esdi_drives; i++) { | ||
215 | del_gendisk(ps2esdi_gendisk[i]); | ||
216 | put_disk(ps2esdi_gendisk[i]); | ||
217 | } | ||
218 | } | ||
219 | #endif /* MODULE */ | ||
220 | |||
221 | /* handles boot time command line parameters */ | ||
222 | void __init tp720_setup(char *str, int *ints) | ||
223 | { | ||
224 | /* no params, just sets the tp720esdi flag if it exists */ | ||
225 | |||
226 | printk("%s: TP 720 ESDI flag set\n", DEVICE_NAME); | ||
227 | tp720esdi = 1; | ||
228 | } | ||
229 | |||
230 | void __init ed_setup(char *str, int *ints) | ||
231 | { | ||
232 | int hdind = 0; | ||
233 | |||
234 | /* handles 3 parameters only - corresponding to | ||
235 | 1. Number of cylinders | ||
236 | 2. Number of heads | ||
237 | 3. Sectors/track | ||
238 | */ | ||
239 | |||
240 | if (ints[0] != 3) | ||
241 | return; | ||
242 | |||
243 | /* print out the information - seen at boot time */ | ||
244 | printk("%s: ints[0]=%d ints[1]=%d ints[2]=%d ints[3]=%d\n", | ||
245 | DEVICE_NAME, ints[0], ints[1], ints[2], ints[3]); | ||
246 | |||
247 | /* set the index into device specific information table */ | ||
248 | if (ps2esdi_info[0].head != 0) | ||
249 | hdind = 1; | ||
250 | |||
251 | /* set up all the device information */ | ||
252 | ps2esdi_info[hdind].head = ints[2]; | ||
253 | ps2esdi_info[hdind].sect = ints[3]; | ||
254 | ps2esdi_info[hdind].cyl = ints[1]; | ||
255 | ps2esdi_info[hdind].wpcom = 0; | ||
256 | ps2esdi_info[hdind].lzone = ints[1]; | ||
257 | ps2esdi_info[hdind].ctl = (ints[2] > 8 ? 8 : 0); | ||
258 | #if 0 /* this may be needed for PS2/Mod.80, but it hurts ThinkPad! */ | ||
259 | ps2esdi_drives = hdind + 1; /* increment index for the next time */ | ||
260 | #endif | ||
261 | } /* ed_setup */ | ||
262 | |||
263 | static int ps2esdi_getinfo(char *buf, int slot, void *d) | ||
264 | { | ||
265 | int len = 0; | ||
266 | |||
267 | len += sprintf(buf + len, "DMA Arbitration Level: %d\n", | ||
268 | dma_arb_level); | ||
269 | len += sprintf(buf + len, "IO Port: %x\n", io_base); | ||
270 | len += sprintf(buf + len, "IRQ: 14\n"); | ||
271 | len += sprintf(buf + len, "Drives: %d\n", ps2esdi_drives); | ||
272 | |||
273 | return len; | ||
274 | } | ||
275 | |||
276 | /* ps2 esdi specific initialization - called thru the gendisk chain */ | ||
277 | static int __init ps2esdi_geninit(void) | ||
278 | { | ||
279 | /* | ||
280 | The first part contains the initialization code | ||
281 | for the ESDI disk subsystem. All we really do | ||
282 | is search for the POS registers of the controller | ||
283 | to do some simple setup operations. First, we | ||
284 | must ensure that the controller is installed, | ||
285 | enabled, and configured as PRIMARY. Then we must | ||
286 | determine the DMA arbitration level being used by | ||
287 | the controller so we can handle data transfer | ||
288 | operations properly. If all of this works, then | ||
289 | we will set the INIT_FLAG to a non-zero value. | ||
290 | */ | ||
291 | |||
292 | int slot = 0, i, reset_start, reset_end; | ||
293 | u_char status; | ||
294 | unsigned short adapterID; | ||
295 | int error = 0; | ||
296 | |||
297 | if ((slot = mca_find_adapter(INTG_ESDI_ID, 0)) != MCA_NOTFOUND) { | ||
298 | adapterID = INTG_ESDI_ID; | ||
299 | printk("%s: integrated ESDI adapter found in slot %d\n", | ||
300 | DEVICE_NAME, slot+1); | ||
301 | #ifndef MODULE | ||
302 | mca_set_adapter_name(slot, "PS/2 Integrated ESDI"); | ||
303 | #endif | ||
304 | } else if ((slot = mca_find_adapter(NRML_ESDI_ID, 0)) != -1) { | ||
305 | adapterID = NRML_ESDI_ID; | ||
306 | printk("%s: normal ESDI adapter found in slot %d\n", | ||
307 | DEVICE_NAME, slot+1); | ||
308 | mca_set_adapter_name(slot, "PS/2 ESDI"); | ||
309 | } else { | ||
310 | return -ENODEV; | ||
311 | } | ||
312 | |||
313 | ps2esdi_slot = slot; | ||
314 | mca_mark_as_used(slot); | ||
315 | mca_set_adapter_procfn(slot, (MCA_ProcFn) ps2esdi_getinfo, NULL); | ||
316 | |||
317 | /* Found the slot - read the POS register 2 to get the necessary | ||
318 | configuration and status information. POS register 2 has the | ||
319 | following information : | ||
320 | Bit Function | ||
321 | 7 reserved = 0 | ||
322 | 6 arbitration method | ||
323 | 0 - fairness enabled | ||
324 | 1 - fairness disabled, linear priority assignment | ||
325 | 5-2 arbitration level | ||
326 | 1 alternate address | ||
327 | 1 alternate address | ||
328 | 0 - use addresses 0x3510 - 0x3517 | ||
329 | 0 adapter enable | ||
330 | */ | ||
331 | |||
332 | status = mca_read_stored_pos(slot, 2); | ||
333 | /* is it enabled ? */ | ||
334 | if (!(status & STATUS_ENABLED)) { | ||
335 | printk("%s: ESDI adapter disabled\n", DEVICE_NAME); | ||
336 | error = -ENODEV; | ||
337 | goto err_out1; | ||
338 | } | ||
339 | /* try to grab IRQ, and try to grab a slow IRQ if it fails, so we can | ||
340 | share with the SCSI driver */ | ||
341 | if (request_irq(PS2ESDI_IRQ, ps2esdi_interrupt_handler, | ||
342 | IRQF_DISABLED | IRQF_SHARED, "PS/2 ESDI", &ps2esdi_gendisk) | ||
343 | && request_irq(PS2ESDI_IRQ, ps2esdi_interrupt_handler, | ||
344 | IRQF_SHARED, "PS/2 ESDI", &ps2esdi_gendisk) | ||
345 | ) { | ||
346 | printk("%s: Unable to get IRQ %d\n", DEVICE_NAME, PS2ESDI_IRQ); | ||
347 | error = -EBUSY; | ||
348 | goto err_out1; | ||
349 | } | ||
350 | if (status & STATUS_ALTERNATE) | ||
351 | io_base = ALT_IO_BASE; | ||
352 | else | ||
353 | io_base = PRIMARY_IO_BASE; | ||
354 | |||
355 | if (!request_region(io_base, 4, "ed")) { | ||
356 | printk(KERN_WARNING"Unable to request region 0x%x\n", io_base); | ||
357 | error = -EBUSY; | ||
358 | goto err_out2; | ||
359 | } | ||
360 | /* get the dma arbitration level */ | ||
361 | dma_arb_level = (status >> 2) & 0xf; | ||
362 | |||
363 | /* BA */ | ||
364 | printk("%s: DMA arbitration level : %d\n", | ||
365 | DEVICE_NAME, dma_arb_level); | ||
366 | |||
367 | LITE_ON; | ||
368 | current_int_handler = ps2esdi_initial_reset_int_handler; | ||
369 | reset_ctrl(); | ||
370 | reset_status = 0; | ||
371 | reset_start = jiffies; | ||
372 | while (!reset_status) { | ||
373 | init_timer(&esdi_timer); | ||
374 | esdi_timer.expires = jiffies + HZ; | ||
375 | esdi_timer.data = 0; | ||
376 | add_timer(&esdi_timer); | ||
377 | sleep_on(&ps2esdi_int); | ||
378 | } | ||
379 | reset_end = jiffies; | ||
380 | LITE_OFF; | ||
381 | printk("%s: reset interrupt after %d jiffies, %u.%02u secs\n", | ||
382 | DEVICE_NAME, reset_end - reset_start, (reset_end - reset_start) / HZ, | ||
383 | (reset_end - reset_start) % HZ); | ||
384 | |||
385 | |||
386 | /* Integrated ESDI Disk and Controller has only one drive! */ | ||
387 | if (adapterID == INTG_ESDI_ID) {/* if not "normal" PS2 ESDI adapter */ | ||
388 | ps2esdi_drives = 1; /* then we have only one physical disk! */ intg_esdi = 1; | ||
389 | } | ||
390 | |||
391 | |||
392 | |||
393 | /* finally this part sets up some global data structures etc. */ | ||
394 | |||
395 | ps2esdi_get_device_cfg(); | ||
396 | |||
397 | /* some annoyance in the above routine returns TWO drives? | ||
398 | Is something else happining in the background? | ||
399 | Regaurdless we fix the # of drives again. AJK */ | ||
400 | /* Integrated ESDI Disk and Controller has only one drive! */ | ||
401 | if (adapterID == INTG_ESDI_ID) /* if not "normal" PS2 ESDI adapter */ | ||
402 | ps2esdi_drives = 1; /* Not three or two, ONE DAMNIT! */ | ||
403 | |||
404 | current_int_handler = ps2esdi_normal_interrupt_handler; | ||
405 | |||
406 | if (request_dma(dma_arb_level, "ed") !=0) { | ||
407 | printk(KERN_WARNING "PS2ESDI: Can't request dma-channel %d\n" | ||
408 | ,(int) dma_arb_level); | ||
409 | error = -EBUSY; | ||
410 | goto err_out3; | ||
411 | } | ||
412 | blk_queue_max_sectors(ps2esdi_queue, 128); | ||
413 | |||
414 | error = -ENOMEM; | ||
415 | for (i = 0; i < ps2esdi_drives; i++) { | ||
416 | struct gendisk *disk = alloc_disk(64); | ||
417 | if (!disk) | ||
418 | goto err_out4; | ||
419 | disk->major = PS2ESDI_MAJOR; | ||
420 | disk->first_minor = i<<6; | ||
421 | sprintf(disk->disk_name, "ed%c", 'a'+i); | ||
422 | disk->fops = &ps2esdi_fops; | ||
423 | ps2esdi_gendisk[i] = disk; | ||
424 | } | ||
425 | |||
426 | for (i = 0; i < ps2esdi_drives; i++) { | ||
427 | struct gendisk *disk = ps2esdi_gendisk[i]; | ||
428 | set_capacity(disk, ps2esdi_info[i].head * ps2esdi_info[i].sect * | ||
429 | ps2esdi_info[i].cyl); | ||
430 | disk->queue = ps2esdi_queue; | ||
431 | disk->private_data = &ps2esdi_info[i]; | ||
432 | add_disk(disk); | ||
433 | } | ||
434 | return 0; | ||
435 | err_out4: | ||
436 | while (i--) | ||
437 | put_disk(ps2esdi_gendisk[i]); | ||
438 | err_out3: | ||
439 | release_region(io_base, 4); | ||
440 | err_out2: | ||
441 | free_irq(PS2ESDI_IRQ, &ps2esdi_gendisk); | ||
442 | err_out1: | ||
443 | if(ps2esdi_slot) { | ||
444 | mca_mark_as_unused(ps2esdi_slot); | ||
445 | mca_set_adapter_procfn(ps2esdi_slot, NULL, NULL); | ||
446 | } | ||
447 | return error; | ||
448 | } | ||
449 | |||
450 | static void __init ps2esdi_get_device_cfg(void) | ||
451 | { | ||
452 | u_short cmd_blk[TYPE_0_CMD_BLK_LENGTH]; | ||
453 | |||
454 | /*BA */ printk("%s: Drive 0\n", DEVICE_NAME); | ||
455 | current_int_handler = ps2esdi_geometry_int_handler; | ||
456 | cmd_blk[0] = CMD_GET_DEV_CONFIG | 0x600; | ||
457 | cmd_blk[1] = 0; | ||
458 | no_int_yet = TRUE; | ||
459 | ps2esdi_out_cmd_blk(cmd_blk); | ||
460 | if (no_int_yet) | ||
461 | sleep_on(&ps2esdi_int); | ||
462 | |||
463 | if (ps2esdi_drives > 1) { | ||
464 | printk("%s: Drive 1\n", DEVICE_NAME); /*BA */ | ||
465 | cmd_blk[0] = CMD_GET_DEV_CONFIG | (1 << 5) | 0x600; | ||
466 | cmd_blk[1] = 0; | ||
467 | no_int_yet = TRUE; | ||
468 | ps2esdi_out_cmd_blk(cmd_blk); | ||
469 | if (no_int_yet) | ||
470 | sleep_on(&ps2esdi_int); | ||
471 | } /* if second physical drive is present */ | ||
472 | return; | ||
473 | } | ||
474 | |||
475 | /* strategy routine that handles most of the IO requests */ | ||
476 | static void do_ps2esdi_request(struct request_queue * q) | ||
477 | { | ||
478 | struct request *req; | ||
479 | /* since, this routine is called with interrupts cleared - they | ||
480 | must be before it finishes */ | ||
481 | |||
482 | req = elv_next_request(q); | ||
483 | if (!req) | ||
484 | return; | ||
485 | |||
486 | #if 0 | ||
487 | printk("%s:got request. device : %s command : %d sector : %ld count : %ld, buffer: %p\n", | ||
488 | DEVICE_NAME, | ||
489 | req->rq_disk->disk_name, | ||
490 | req->cmd, req->sector, | ||
491 | req->current_nr_sectors, req->buffer); | ||
492 | #endif | ||
493 | |||
494 | /* check for above 16Mb dmas */ | ||
495 | if (isa_virt_to_bus(req->buffer + req->current_nr_sectors * 512) > 16 * MB) { | ||
496 | printk("%s: DMA above 16MB not supported\n", DEVICE_NAME); | ||
497 | end_request(req, FAIL); | ||
498 | return; | ||
499 | } | ||
500 | |||
501 | if (req->sector+req->current_nr_sectors > get_capacity(req->rq_disk)) { | ||
502 | printk("Grrr. error. ps2esdi_drives: %d, %llu %llu\n", | ||
503 | ps2esdi_drives, req->sector, | ||
504 | (unsigned long long)get_capacity(req->rq_disk)); | ||
505 | end_request(req, FAIL); | ||
506 | return; | ||
507 | } | ||
508 | |||
509 | switch (rq_data_dir(req)) { | ||
510 | case READ: | ||
511 | ps2esdi_readwrite(READ, req); | ||
512 | break; | ||
513 | case WRITE: | ||
514 | ps2esdi_readwrite(WRITE, req); | ||
515 | break; | ||
516 | default: | ||
517 | printk("%s: Unknown command\n", req->rq_disk->disk_name); | ||
518 | end_request(req, FAIL); | ||
519 | break; | ||
520 | } /* handle different commands */ | ||
521 | } /* main strategy routine */ | ||
522 | |||
523 | /* resets the ESDI adapter */ | ||
524 | static void reset_ctrl(void) | ||
525 | { | ||
526 | |||
527 | u_long expire; | ||
528 | u_short status; | ||
529 | |||
530 | /* enable interrupts on the controller */ | ||
531 | status = inb(ESDI_INTRPT); | ||
532 | outb((status & 0xe0) | ATT_EOI, ESDI_ATTN); /* to be sure we don't have | ||
533 | any interrupt pending... */ | ||
534 | outb_p(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
535 | |||
536 | /* read the ESDI status port - if the controller is not busy, | ||
537 | simply do a soft reset (fast) - otherwise we'll have to do a | ||
538 | hard (slow) reset. */ | ||
539 | if (!(inb_p(ESDI_STATUS) & STATUS_BUSY)) { | ||
540 | /*BA */ printk("%s: soft reset...\n", DEVICE_NAME); | ||
541 | outb_p(CTRL_SOFT_RESET, ESDI_ATTN); | ||
542 | } | ||
543 | /* soft reset */ | ||
544 | else { | ||
545 | /*BA */ | ||
546 | printk("%s: hard reset...\n", DEVICE_NAME); | ||
547 | outb_p(CTRL_HARD_RESET, ESDI_CONTROL); | ||
548 | expire = jiffies + 2*HZ; | ||
549 | while (time_before(jiffies, expire)); | ||
550 | outb_p(1, ESDI_CONTROL); | ||
551 | } /* hard reset */ | ||
552 | |||
553 | |||
554 | } /* reset the controller */ | ||
555 | |||
556 | /* called by the strategy routine to handle read and write requests */ | ||
557 | static void ps2esdi_readwrite(int cmd, struct request *req) | ||
558 | { | ||
559 | struct ps2esdi_i_struct *p = req->rq_disk->private_data; | ||
560 | unsigned block = req->sector; | ||
561 | unsigned count = req->current_nr_sectors; | ||
562 | int drive = p - ps2esdi_info; | ||
563 | u_short track, head, cylinder, sector; | ||
564 | u_short cmd_blk[TYPE_1_CMD_BLK_LENGTH]; | ||
565 | |||
566 | /* do some relevant arithmatic */ | ||
567 | track = block / p->sect; | ||
568 | head = track % p->head; | ||
569 | cylinder = track / p->head; | ||
570 | sector = block % p->sect; | ||
571 | |||
572 | #if 0 | ||
573 | printk("%s: cyl=%d head=%d sect=%d\n", DEVICE_NAME, cylinder, head, sector); | ||
574 | #endif | ||
575 | /* call the routine that actually fills out a command block */ | ||
576 | ps2esdi_fill_cmd_block | ||
577 | (cmd_blk, | ||
578 | (cmd == READ) ? CMD_READ : CMD_WRITE, | ||
579 | cylinder, head, sector, count, drive); | ||
580 | |||
581 | /* send the command block to the controller */ | ||
582 | current_req = req; | ||
583 | spin_unlock_irq(&ps2esdi_lock); | ||
584 | if (ps2esdi_out_cmd_blk(cmd_blk)) { | ||
585 | spin_lock_irq(&ps2esdi_lock); | ||
586 | printk("%s: Controller failed\n", DEVICE_NAME); | ||
587 | if ((++req->errors) >= MAX_RETRIES) | ||
588 | end_request(req, FAIL); | ||
589 | } | ||
590 | /* check for failure to put out the command block */ | ||
591 | else { | ||
592 | spin_lock_irq(&ps2esdi_lock); | ||
593 | #if 0 | ||
594 | printk("%s: waiting for xfer\n", DEVICE_NAME); | ||
595 | #endif | ||
596 | /* turn disk lights on */ | ||
597 | LITE_ON; | ||
598 | } | ||
599 | |||
600 | } /* ps2esdi_readwrite */ | ||
601 | |||
602 | /* fill out the command block */ | ||
603 | static void ps2esdi_fill_cmd_block(u_short * cmd_blk, u_short cmd, | ||
604 | u_short cyl, u_short head, u_short sector, u_short length, u_char drive) | ||
605 | { | ||
606 | |||
607 | cmd_blk[0] = (drive << 5) | cmd; | ||
608 | cmd_blk[1] = length; | ||
609 | cmd_blk[2] = ((cyl & 0x1f) << 11) | (head << 5) | sector; | ||
610 | cmd_blk[3] = (cyl & 0x3E0) >> 5; | ||
611 | |||
612 | } /* fill out the command block */ | ||
613 | |||
614 | /* write a command block to the controller */ | ||
615 | static int ps2esdi_out_cmd_blk(u_short * cmd_blk) | ||
616 | { | ||
617 | |||
618 | int i; | ||
619 | unsigned long jif; | ||
620 | u_char status; | ||
621 | |||
622 | /* enable interrupts */ | ||
623 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
624 | |||
625 | /* do not write to the controller, if it is busy */ | ||
626 | for (jif = jiffies + ESDI_STAT_TIMEOUT; | ||
627 | time_after(jif, jiffies) && | ||
628 | (inb(ESDI_STATUS) & STATUS_BUSY); ) | ||
629 | ; | ||
630 | |||
631 | #if 0 | ||
632 | printk("%s: i(1)=%ld\n", DEVICE_NAME, jif); | ||
633 | #endif | ||
634 | |||
635 | /* if device is still busy - then just time out */ | ||
636 | if (inb(ESDI_STATUS) & STATUS_BUSY) { | ||
637 | printk("%s: ps2esdi_out_cmd timed out (1)\n", DEVICE_NAME); | ||
638 | return ERROR; | ||
639 | } /* timeout ??? */ | ||
640 | /* Set up the attention register in the controller */ | ||
641 | outb(((*cmd_blk) & 0xE0) | 1, ESDI_ATTN); | ||
642 | |||
643 | #if 0 | ||
644 | printk("%s: sending %d words to controller\n", DEVICE_NAME, (((*cmd_blk) >> 14) + 1) << 1); | ||
645 | #endif | ||
646 | |||
647 | /* one by one send each word out */ | ||
648 | for (i = (((*cmd_blk) >> 14) + 1) << 1; i; i--) { | ||
649 | status = inb(ESDI_STATUS); | ||
650 | for (jif = jiffies + ESDI_STAT_TIMEOUT; | ||
651 | time_after(jif, jiffies) && (status & STATUS_BUSY) && | ||
652 | (status & STATUS_CMD_INF); status = inb(ESDI_STATUS)); | ||
653 | if ((status & (STATUS_BUSY | STATUS_CMD_INF)) == STATUS_BUSY) { | ||
654 | #if 0 | ||
655 | printk("%s: sending %04X\n", DEVICE_NAME, *cmd_blk); | ||
656 | #endif | ||
657 | outw(*cmd_blk++, ESDI_CMD_INT); | ||
658 | } else { | ||
659 | printk("%s: ps2esdi_out_cmd timed out while sending command (status=%02X)\n", | ||
660 | DEVICE_NAME, status); | ||
661 | return ERROR; | ||
662 | } | ||
663 | } /* send all words out */ | ||
664 | return OK; | ||
665 | } /* send out the commands */ | ||
666 | |||
667 | |||
668 | /* prepare for dma - do all the necessary setup */ | ||
669 | static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode) | ||
670 | { | ||
671 | unsigned long flags = claim_dma_lock(); | ||
672 | |||
673 | mca_disable_dma(dma_arb_level); | ||
674 | |||
675 | mca_set_dma_addr(dma_arb_level, isa_virt_to_bus(buffer)); | ||
676 | |||
677 | mca_set_dma_count(dma_arb_level, length * 512 / 2); | ||
678 | |||
679 | mca_set_dma_mode(dma_arb_level, dma_xmode); | ||
680 | |||
681 | mca_enable_dma(dma_arb_level); | ||
682 | |||
683 | release_dma_lock(flags); | ||
684 | |||
685 | } /* prepare for dma */ | ||
686 | |||
687 | |||
688 | |||
689 | static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id) | ||
690 | { | ||
691 | u_int int_ret_code; | ||
692 | |||
693 | if (inb(ESDI_STATUS) & STATUS_INTR) { | ||
694 | int_ret_code = inb(ESDI_INTRPT); | ||
695 | if (current_int_handler) { | ||
696 | /* Disable adapter interrupts till processing is finished */ | ||
697 | outb(CTRL_DISABLE_INTR, ESDI_CONTROL); | ||
698 | current_int_handler(int_ret_code); | ||
699 | } else | ||
700 | printk("%s: help ! No interrupt handler.\n", DEVICE_NAME); | ||
701 | } else { | ||
702 | return IRQ_NONE; | ||
703 | } | ||
704 | return IRQ_HANDLED; | ||
705 | } | ||
706 | |||
707 | static void ps2esdi_initial_reset_int_handler(u_int int_ret_code) | ||
708 | { | ||
709 | |||
710 | switch (int_ret_code & 0xf) { | ||
711 | case INT_RESET: | ||
712 | /*BA */ | ||
713 | printk("%s: initial reset completed.\n", DEVICE_NAME); | ||
714 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
715 | wake_up(&ps2esdi_int); | ||
716 | break; | ||
717 | case INT_ATTN_ERROR: | ||
718 | printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME, | ||
719 | int_ret_code); | ||
720 | printk("%s: status: %02x\n", DEVICE_NAME, inb(ESDI_STATUS)); | ||
721 | break; | ||
722 | default: | ||
723 | printk("%s: initial reset handler received interrupt: %02X\n", | ||
724 | DEVICE_NAME, int_ret_code); | ||
725 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
726 | break; | ||
727 | } | ||
728 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
729 | } | ||
730 | |||
731 | |||
732 | static void ps2esdi_geometry_int_handler(u_int int_ret_code) | ||
733 | { | ||
734 | u_int status, drive_num; | ||
735 | unsigned long rba; | ||
736 | int i; | ||
737 | |||
738 | drive_num = int_ret_code >> 5; | ||
739 | switch (int_ret_code & 0xf) { | ||
740 | case INT_CMD_COMPLETE: | ||
741 | for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--); | ||
742 | if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) { | ||
743 | printk("%s: timeout reading status word\n", DEVICE_NAME); | ||
744 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
745 | break; | ||
746 | } | ||
747 | status = inw(ESDI_STT_INT); | ||
748 | if ((status & 0x1F) == CMD_GET_DEV_CONFIG) { | ||
749 | #define REPLY_WORDS 5 /* we already read word 0 */ | ||
750 | u_short reply[REPLY_WORDS]; | ||
751 | |||
752 | if (ps2esdi_read_status_words((status >> 8) - 1, REPLY_WORDS, reply)) { | ||
753 | /*BA */ | ||
754 | printk("%s: Device Configuration Status for drive %u\n", | ||
755 | DEVICE_NAME, drive_num); | ||
756 | |||
757 | printk("%s: Spares/cyls: %u", DEVICE_NAME, reply[0] >> 8); | ||
758 | |||
759 | printk | ||
760 | ("Config bits: %s%s%s%s%s\n", | ||
761 | (reply[0] & CONFIG_IS) ? "Invalid Secondary, " : "", | ||
762 | ((reply[0] & CONFIG_ZD) && !(reply[0] & CONFIG_IS)) | ||
763 | ? "Zero Defect, " : "Defects Present, ", | ||
764 | (reply[0] & CONFIG_SF) ? "Skewed Format, " : "", | ||
765 | (reply[0] & CONFIG_FR) ? "Removable, " : "Non-Removable, ", | ||
766 | (reply[0] & CONFIG_RT) ? "No Retries" : "Retries"); | ||
767 | |||
768 | rba = reply[1] | ((unsigned long) reply[2] << 16); | ||
769 | printk("%s: Number of RBA's: %lu\n", DEVICE_NAME, rba); | ||
770 | |||
771 | printk("%s: Physical number of cylinders: %u, Sectors/Track: %u, Heads: %u\n", | ||
772 | DEVICE_NAME, reply[3], reply[4] >> 8, reply[4] & 0xff); | ||
773 | |||
774 | if (!ps2esdi_info[drive_num].head) { | ||
775 | ps2esdi_info[drive_num].head = 64; | ||
776 | ps2esdi_info[drive_num].sect = 32; | ||
777 | ps2esdi_info[drive_num].cyl = rba / (64 * 32); | ||
778 | ps2esdi_info[drive_num].wpcom = 0; | ||
779 | ps2esdi_info[drive_num].lzone = ps2esdi_info[drive_num].cyl; | ||
780 | ps2esdi_info[drive_num].ctl = 8; | ||
781 | if (tp720esdi) { /* store the retrieved parameters */ | ||
782 | ps2esdi_info[0].head = reply[4] & 0Xff; | ||
783 | ps2esdi_info[0].sect = reply[4] >> 8; | ||
784 | ps2esdi_info[0].cyl = reply[3]; | ||
785 | ps2esdi_info[0].wpcom = 0; | ||
786 | ps2esdi_info[0].lzone = reply[3]; | ||
787 | } else { | ||
788 | if (!intg_esdi) | ||
789 | ps2esdi_drives++; | ||
790 | } | ||
791 | } | ||
792 | #ifdef OBSOLETE | ||
793 | if (!ps2esdi_info[drive_num].head) { | ||
794 | ps2esdi_info[drive_num].head = reply[4] & 0Xff; | ||
795 | ps2esdi_info[drive_num].sect = reply[4] >> 8; | ||
796 | ps2esdi_info[drive_num].cyl = reply[3]; | ||
797 | ps2esdi_info[drive_num].wpcom = 0; | ||
798 | ps2esdi_info[drive_num].lzone = reply[3]; | ||
799 | if (tp720esdi) { /* store the retrieved parameters */ | ||
800 | ps2esdi_info[0].head = reply[4] & 0Xff; | ||
801 | ps2esdi_info[0].sect = reply[4] >> 8; | ||
802 | ps2esdi_info[0].cyl = reply[3]; | ||
803 | ps2esdi_info[0].wpcom = 0; | ||
804 | ps2esdi_info[0].lzone = reply[3]; | ||
805 | } else { | ||
806 | ps2esdi_drives++; | ||
807 | } | ||
808 | } | ||
809 | #endif | ||
810 | |||
811 | } else | ||
812 | printk("%s: failed while getting device config\n", DEVICE_NAME); | ||
813 | #undef REPLY_WORDS | ||
814 | } else | ||
815 | printk("%s: command %02X unknown by geometry handler\n", | ||
816 | DEVICE_NAME, status & 0x1f); | ||
817 | |||
818 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
819 | break; | ||
820 | |||
821 | case INT_ATTN_ERROR: | ||
822 | printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME, | ||
823 | int_ret_code); | ||
824 | printk("%s: Device not available\n", DEVICE_NAME); | ||
825 | break; | ||
826 | case INT_CMD_ECC: | ||
827 | case INT_CMD_RETRY: | ||
828 | case INT_CMD_ECC_RETRY: | ||
829 | case INT_CMD_WARNING: | ||
830 | case INT_CMD_ABORT: | ||
831 | case INT_CMD_FAILED: | ||
832 | case INT_DMA_ERR: | ||
833 | case INT_CMD_BLK_ERR: | ||
834 | /*BA */ printk("%s: Whaa. Error occurred...\n", DEVICE_NAME); | ||
835 | dump_cmd_complete_status(int_ret_code); | ||
836 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
837 | break; | ||
838 | default: | ||
839 | printk("%s: Unknown interrupt reason: %02X\n", | ||
840 | DEVICE_NAME, int_ret_code & 0xf); | ||
841 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
842 | break; | ||
843 | } | ||
844 | |||
845 | wake_up(&ps2esdi_int); | ||
846 | no_int_yet = FALSE; | ||
847 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
848 | |||
849 | } | ||
850 | |||
851 | static void ps2esdi_normal_interrupt_handler(u_int int_ret_code) | ||
852 | { | ||
853 | unsigned long flags; | ||
854 | u_int status; | ||
855 | u_int ending; | ||
856 | int i; | ||
857 | |||
858 | switch (int_ret_code & 0x0f) { | ||
859 | case INT_TRANSFER_REQ: | ||
860 | ps2esdi_prep_dma(current_req->buffer, | ||
861 | current_req->current_nr_sectors, | ||
862 | (rq_data_dir(current_req) == READ) | ||
863 | ? MCA_DMA_MODE_16 | MCA_DMA_MODE_WRITE | MCA_DMA_MODE_XFER | ||
864 | : MCA_DMA_MODE_16 | MCA_DMA_MODE_READ); | ||
865 | outb(CTRL_ENABLE_DMA | CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
866 | ending = -1; | ||
867 | break; | ||
868 | |||
869 | case INT_ATTN_ERROR: | ||
870 | printk("%s: Attention error. interrupt status : %02X\n", DEVICE_NAME, | ||
871 | int_ret_code); | ||
872 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
873 | ending = FAIL; | ||
874 | break; | ||
875 | |||
876 | case INT_CMD_COMPLETE: | ||
877 | for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--); | ||
878 | if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) { | ||
879 | printk("%s: timeout reading status word\n", DEVICE_NAME); | ||
880 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
881 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
882 | if ((++current_req->errors) >= MAX_RETRIES) | ||
883 | ending = FAIL; | ||
884 | else | ||
885 | ending = -1; | ||
886 | break; | ||
887 | } | ||
888 | status = inw(ESDI_STT_INT); | ||
889 | switch (status & 0x1F) { | ||
890 | case (CMD_READ & 0xff): | ||
891 | case (CMD_WRITE & 0xff): | ||
892 | LITE_OFF; | ||
893 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
894 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
895 | ending = SUCCES; | ||
896 | break; | ||
897 | default: | ||
898 | printk("%s: interrupt for unknown command %02X\n", | ||
899 | DEVICE_NAME, status & 0x1f); | ||
900 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
901 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
902 | ending = -1; | ||
903 | break; | ||
904 | } | ||
905 | break; | ||
906 | case INT_CMD_ECC: | ||
907 | case INT_CMD_RETRY: | ||
908 | case INT_CMD_ECC_RETRY: | ||
909 | LITE_OFF; | ||
910 | dump_cmd_complete_status(int_ret_code); | ||
911 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
912 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
913 | ending = SUCCES; | ||
914 | break; | ||
915 | case INT_CMD_WARNING: | ||
916 | case INT_CMD_ABORT: | ||
917 | case INT_CMD_FAILED: | ||
918 | case INT_DMA_ERR: | ||
919 | LITE_OFF; | ||
920 | dump_cmd_complete_status(int_ret_code); | ||
921 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
922 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
923 | if ((++current_req->errors) >= MAX_RETRIES) | ||
924 | ending = FAIL; | ||
925 | else | ||
926 | ending = -1; | ||
927 | break; | ||
928 | |||
929 | case INT_CMD_BLK_ERR: | ||
930 | dump_cmd_complete_status(int_ret_code); | ||
931 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
932 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
933 | ending = FAIL; | ||
934 | break; | ||
935 | |||
936 | case INT_CMD_FORMAT: | ||
937 | printk("%s: huh ? Who issued this format command ?\n" | ||
938 | ,DEVICE_NAME); | ||
939 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
940 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
941 | ending = -1; | ||
942 | break; | ||
943 | |||
944 | case INT_RESET: | ||
945 | /* BA printk("%s: reset completed.\n", DEVICE_NAME) */ ; | ||
946 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
947 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
948 | ending = -1; | ||
949 | break; | ||
950 | |||
951 | default: | ||
952 | printk("%s: Unknown interrupt reason: %02X\n", | ||
953 | DEVICE_NAME, int_ret_code & 0xf); | ||
954 | outb((int_ret_code & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
955 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
956 | ending = -1; | ||
957 | break; | ||
958 | } | ||
959 | if(ending != -1) { | ||
960 | spin_lock_irqsave(&ps2esdi_lock, flags); | ||
961 | end_request(current_req, ending); | ||
962 | current_req = NULL; | ||
963 | do_ps2esdi_request(ps2esdi_queue); | ||
964 | spin_unlock_irqrestore(&ps2esdi_lock, flags); | ||
965 | } | ||
966 | } /* handle interrupts */ | ||
967 | |||
968 | |||
969 | |||
970 | static int ps2esdi_read_status_words(int num_words, | ||
971 | int max_words, | ||
972 | u_short * buffer) | ||
973 | { | ||
974 | int i; | ||
975 | |||
976 | for (; max_words && num_words; max_words--, num_words--, buffer++) { | ||
977 | for (i = ESDI_TIMEOUT; i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL); i--); | ||
978 | if (!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) { | ||
979 | printk("%s: timeout reading status word\n", DEVICE_NAME); | ||
980 | return FAIL; | ||
981 | } | ||
982 | *buffer = inw(ESDI_STT_INT); | ||
983 | } | ||
984 | return SUCCES; | ||
985 | } | ||
986 | |||
987 | |||
988 | |||
989 | |||
990 | static void dump_cmd_complete_status(u_int int_ret_code) | ||
991 | { | ||
992 | #define WAIT_FOR_STATUS \ | ||
993 | for(i=ESDI_TIMEOUT;i && !(inb(ESDI_STATUS) & STATUS_STAT_AVAIL);i--); \ | ||
994 | if(!(inb(ESDI_STATUS) & STATUS_STAT_AVAIL)) { \ | ||
995 | printk("%s: timeout reading status word\n",DEVICE_NAME); \ | ||
996 | return; \ | ||
997 | } | ||
998 | |||
999 | int i, word_count; | ||
1000 | u_short stat_word; | ||
1001 | u_long rba; | ||
1002 | |||
1003 | printk("%s: Device: %u, interrupt ID: %02X\n", | ||
1004 | DEVICE_NAME, int_ret_code >> 5, | ||
1005 | int_ret_code & 0xf); | ||
1006 | |||
1007 | WAIT_FOR_STATUS; | ||
1008 | stat_word = inw(ESDI_STT_INT); | ||
1009 | word_count = (stat_word >> 8) - 1; | ||
1010 | printk("%s: %u status words, command: %02X\n", DEVICE_NAME, word_count, | ||
1011 | stat_word & 0xff); | ||
1012 | |||
1013 | if (word_count--) { | ||
1014 | WAIT_FOR_STATUS; | ||
1015 | stat_word = inw(ESDI_STT_INT); | ||
1016 | printk("%s: command status code: %02X, command error code: %02X\n", | ||
1017 | DEVICE_NAME, stat_word >> 8, stat_word & 0xff); | ||
1018 | } | ||
1019 | if (word_count--) { | ||
1020 | WAIT_FOR_STATUS; | ||
1021 | stat_word = inw(ESDI_STT_INT); | ||
1022 | printk("%s: device error code: %s%s%s%s%s,%02X\n", DEVICE_NAME, | ||
1023 | (stat_word & 0x1000) ? "Ready, " : "Not Ready, ", | ||
1024 | (stat_word & 0x0800) ? "Selected, " : "Not Selected, ", | ||
1025 | (stat_word & 0x0400) ? "Write Fault, " : "", | ||
1026 | (stat_word & 0x0200) ? "Track 0, " : "", | ||
1027 | (stat_word & 0x0100) ? "Seek or command complete, " : "", | ||
1028 | stat_word >> 8); | ||
1029 | } | ||
1030 | if (word_count--) { | ||
1031 | WAIT_FOR_STATUS; | ||
1032 | stat_word = inw(ESDI_STT_INT); | ||
1033 | printk("%s: Blocks to do: %u", DEVICE_NAME, stat_word); | ||
1034 | } | ||
1035 | if (word_count -= 2) { | ||
1036 | WAIT_FOR_STATUS; | ||
1037 | rba = inw(ESDI_STT_INT); | ||
1038 | WAIT_FOR_STATUS; | ||
1039 | rba |= inw(ESDI_STT_INT) << 16; | ||
1040 | printk(", Last Cyl: %u Head: %u Sector: %u\n", | ||
1041 | (u_short) ((rba & 0x1ff80000) >> 11), | ||
1042 | (u_short) ((rba & 0x7E0) >> 5), (u_short) (rba & 0x1f)); | ||
1043 | } else | ||
1044 | printk("\n"); | ||
1045 | |||
1046 | if (word_count--) { | ||
1047 | WAIT_FOR_STATUS; | ||
1048 | stat_word = inw(ESDI_STT_INT); | ||
1049 | printk("%s: Blocks required ECC: %u", DEVICE_NAME, stat_word); | ||
1050 | } | ||
1051 | printk("\n"); | ||
1052 | |||
1053 | #undef WAIT_FOR_STATUS | ||
1054 | |||
1055 | } | ||
1056 | |||
1057 | static int ps2esdi_getgeo(struct block_device *bdev, struct hd_geometry *geo) | ||
1058 | { | ||
1059 | struct ps2esdi_i_struct *p = bdev->bd_disk->private_data; | ||
1060 | |||
1061 | geo->heads = p->head; | ||
1062 | geo->sectors = p->sect; | ||
1063 | geo->cylinders = p->cyl; | ||
1064 | return 0; | ||
1065 | } | ||
1066 | |||
1067 | static void ps2esdi_reset_timer(unsigned long unused) | ||
1068 | { | ||
1069 | |||
1070 | int status; | ||
1071 | |||
1072 | status = inb(ESDI_INTRPT); | ||
1073 | if ((status & 0xf) == INT_RESET) { | ||
1074 | outb((status & 0xe0) | ATT_EOI, ESDI_ATTN); | ||
1075 | outb(CTRL_ENABLE_INTR, ESDI_CONTROL); | ||
1076 | reset_status = 1; | ||
1077 | } | ||
1078 | wake_up(&ps2esdi_int); | ||
1079 | } | ||
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c index d352dbb4ccf7..e5a0e97cfdda 100644 --- a/drivers/char/drm/ati_pcigart.c +++ b/drivers/char/drm/ati_pcigart.c | |||
@@ -35,42 +35,23 @@ | |||
35 | 35 | ||
36 | # define ATI_PCIGART_PAGE_SIZE 4096 /**< PCI GART page size */ | 36 | # define ATI_PCIGART_PAGE_SIZE 4096 /**< PCI GART page size */ |
37 | 37 | ||
38 | static void *drm_ati_alloc_pcigart_table(int order) | 38 | static int drm_ati_alloc_pcigart_table(struct drm_device *dev, |
39 | struct drm_ati_pcigart_info *gart_info) | ||
39 | { | 40 | { |
40 | unsigned long address; | 41 | gart_info->table_handle = drm_pci_alloc(dev, gart_info->table_size, |
41 | struct page *page; | 42 | PAGE_SIZE, |
42 | int i; | 43 | gart_info->table_mask); |
43 | 44 | if (gart_info->table_handle == NULL) | |
44 | DRM_DEBUG("%d order\n", order); | 45 | return -ENOMEM; |
45 | |||
46 | address = __get_free_pages(GFP_KERNEL | __GFP_COMP, | ||
47 | order); | ||
48 | if (address == 0UL) { | ||
49 | return NULL; | ||
50 | } | ||
51 | |||
52 | page = virt_to_page(address); | ||
53 | 46 | ||
54 | for (i = 0; i < order; i++, page++) | 47 | return 0; |
55 | SetPageReserved(page); | ||
56 | |||
57 | DRM_DEBUG("returning 0x%08lx\n", address); | ||
58 | return (void *)address; | ||
59 | } | 48 | } |
60 | 49 | ||
61 | static void drm_ati_free_pcigart_table(void *address, int order) | 50 | static void drm_ati_free_pcigart_table(struct drm_device *dev, |
51 | struct drm_ati_pcigart_info *gart_info) | ||
62 | { | 52 | { |
63 | struct page *page; | 53 | drm_pci_free(dev, gart_info->table_handle); |
64 | int i; | 54 | gart_info->table_handle = NULL; |
65 | int num_pages = 1 << order; | ||
66 | DRM_DEBUG("\n"); | ||
67 | |||
68 | page = virt_to_page((unsigned long)address); | ||
69 | |||
70 | for (i = 0; i < num_pages; i++, page++) | ||
71 | ClearPageReserved(page); | ||
72 | |||
73 | free_pages((unsigned long)address, order); | ||
74 | } | 55 | } |
75 | 56 | ||
76 | int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) | 57 | int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) |
@@ -78,8 +59,7 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info | |||
78 | struct drm_sg_mem *entry = dev->sg; | 59 | struct drm_sg_mem *entry = dev->sg; |
79 | unsigned long pages; | 60 | unsigned long pages; |
80 | int i; | 61 | int i; |
81 | int order; | 62 | int max_pages; |
82 | int num_pages, max_pages; | ||
83 | 63 | ||
84 | /* we need to support large memory configurations */ | 64 | /* we need to support large memory configurations */ |
85 | if (!entry) { | 65 | if (!entry) { |
@@ -87,15 +67,7 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info | |||
87 | return 0; | 67 | return 0; |
88 | } | 68 | } |
89 | 69 | ||
90 | order = drm_order((gart_info->table_size + (PAGE_SIZE-1)) / PAGE_SIZE); | ||
91 | num_pages = 1 << order; | ||
92 | |||
93 | if (gart_info->bus_addr) { | 70 | if (gart_info->bus_addr) { |
94 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { | ||
95 | pci_unmap_single(dev->pdev, gart_info->bus_addr, | ||
96 | num_pages * PAGE_SIZE, | ||
97 | PCI_DMA_TODEVICE); | ||
98 | } | ||
99 | 71 | ||
100 | max_pages = (gart_info->table_size / sizeof(u32)); | 72 | max_pages = (gart_info->table_size / sizeof(u32)); |
101 | pages = (entry->pages <= max_pages) | 73 | pages = (entry->pages <= max_pages) |
@@ -112,10 +84,9 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info | |||
112 | gart_info->bus_addr = 0; | 84 | gart_info->bus_addr = 0; |
113 | } | 85 | } |
114 | 86 | ||
115 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN | 87 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN && |
116 | && gart_info->addr) { | 88 | gart_info->table_handle) { |
117 | drm_ati_free_pcigart_table(gart_info->addr, order); | 89 | drm_ati_free_pcigart_table(dev, gart_info); |
118 | gart_info->addr = NULL; | ||
119 | } | 90 | } |
120 | 91 | ||
121 | return 1; | 92 | return 1; |
@@ -127,11 +98,10 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga | |||
127 | struct drm_sg_mem *entry = dev->sg; | 98 | struct drm_sg_mem *entry = dev->sg; |
128 | void *address = NULL; | 99 | void *address = NULL; |
129 | unsigned long pages; | 100 | unsigned long pages; |
130 | u32 *pci_gart, page_base, bus_address = 0; | 101 | u32 *pci_gart, page_base; |
102 | dma_addr_t bus_address = 0; | ||
131 | int i, j, ret = 0; | 103 | int i, j, ret = 0; |
132 | int order; | ||
133 | int max_pages; | 104 | int max_pages; |
134 | int num_pages; | ||
135 | 105 | ||
136 | if (!entry) { | 106 | if (!entry) { |
137 | DRM_ERROR("no scatter/gather memory!\n"); | 107 | DRM_ERROR("no scatter/gather memory!\n"); |
@@ -141,31 +111,14 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga | |||
141 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { | 111 | if (gart_info->gart_table_location == DRM_ATI_GART_MAIN) { |
142 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); | 112 | DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n"); |
143 | 113 | ||
144 | order = drm_order((gart_info->table_size + | 114 | ret = drm_ati_alloc_pcigart_table(dev, gart_info); |
145 | (PAGE_SIZE-1)) / PAGE_SIZE); | 115 | if (ret) { |
146 | num_pages = 1 << order; | ||
147 | address = drm_ati_alloc_pcigart_table(order); | ||
148 | if (!address) { | ||
149 | DRM_ERROR("cannot allocate PCI GART page!\n"); | 116 | DRM_ERROR("cannot allocate PCI GART page!\n"); |
150 | goto done; | 117 | goto done; |
151 | } | 118 | } |
152 | 119 | ||
153 | if (!dev->pdev) { | 120 | address = gart_info->table_handle->vaddr; |
154 | DRM_ERROR("PCI device unknown!\n"); | 121 | bus_address = gart_info->table_handle->busaddr; |
155 | goto done; | ||
156 | } | ||
157 | |||
158 | bus_address = pci_map_single(dev->pdev, address, | ||
159 | num_pages * PAGE_SIZE, | ||
160 | PCI_DMA_TODEVICE); | ||
161 | if (bus_address == 0) { | ||
162 | DRM_ERROR("unable to map PCIGART pages!\n"); | ||
163 | order = drm_order((gart_info->table_size + | ||
164 | (PAGE_SIZE-1)) / PAGE_SIZE); | ||
165 | drm_ati_free_pcigart_table(address, order); | ||
166 | address = NULL; | ||
167 | goto done; | ||
168 | } | ||
169 | } else { | 122 | } else { |
170 | address = gart_info->addr; | 123 | address = gart_info->addr; |
171 | bus_address = gart_info->bus_addr; | 124 | bus_address = gart_info->bus_addr; |
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h index a6789f25009b..8ea9dd1717a9 100644 --- a/drivers/char/drm/drmP.h +++ b/drivers/char/drm/drmP.h | |||
@@ -54,6 +54,7 @@ | |||
54 | #include <linux/pci.h> | 54 | #include <linux/pci.h> |
55 | #include <linux/jiffies.h> | 55 | #include <linux/jiffies.h> |
56 | #include <linux/smp_lock.h> /* For (un)lock_kernel */ | 56 | #include <linux/smp_lock.h> /* For (un)lock_kernel */ |
57 | #include <linux/dma-mapping.h> | ||
57 | #include <linux/mm.h> | 58 | #include <linux/mm.h> |
58 | #include <linux/cdev.h> | 59 | #include <linux/cdev.h> |
59 | #include <linux/mutex.h> | 60 | #include <linux/mutex.h> |
@@ -551,6 +552,8 @@ struct drm_ati_pcigart_info { | |||
551 | int gart_reg_if; | 552 | int gart_reg_if; |
552 | void *addr; | 553 | void *addr; |
553 | dma_addr_t bus_addr; | 554 | dma_addr_t bus_addr; |
555 | dma_addr_t table_mask; | ||
556 | struct drm_dma_handle *table_handle; | ||
554 | drm_local_map_t mapping; | 557 | drm_local_map_t mapping; |
555 | int table_size; | 558 | int table_size; |
556 | }; | 559 | }; |
diff --git a/drivers/char/drm/drm_fops.c b/drivers/char/drm/drm_fops.c index 3992f73299cc..f09d4b5002b0 100644 --- a/drivers/char/drm/drm_fops.c +++ b/drivers/char/drm/drm_fops.c | |||
@@ -326,6 +326,7 @@ int drm_release(struct inode *inode, struct file *filp) | |||
326 | struct drm_file *file_priv = filp->private_data; | 326 | struct drm_file *file_priv = filp->private_data; |
327 | struct drm_device *dev = file_priv->head->dev; | 327 | struct drm_device *dev = file_priv->head->dev; |
328 | int retcode = 0; | 328 | int retcode = 0; |
329 | unsigned long irqflags; | ||
329 | 330 | ||
330 | lock_kernel(); | 331 | lock_kernel(); |
331 | 332 | ||
@@ -357,9 +358,11 @@ int drm_release(struct inode *inode, struct file *filp) | |||
357 | */ | 358 | */ |
358 | 359 | ||
359 | do{ | 360 | do{ |
360 | spin_lock(&dev->lock.spinlock); | 361 | spin_lock_irqsave(&dev->lock.spinlock, |
362 | irqflags); | ||
361 | locked = dev->lock.idle_has_lock; | 363 | locked = dev->lock.idle_has_lock; |
362 | spin_unlock(&dev->lock.spinlock); | 364 | spin_unlock_irqrestore(&dev->lock.spinlock, |
365 | irqflags); | ||
363 | if (locked) | 366 | if (locked) |
364 | break; | 367 | break; |
365 | schedule(); | 368 | schedule(); |
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c index bea2a7d5b2b2..12dcdd1832f0 100644 --- a/drivers/char/drm/drm_lock.c +++ b/drivers/char/drm/drm_lock.c | |||
@@ -53,6 +53,7 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) | |||
53 | DECLARE_WAITQUEUE(entry, current); | 53 | DECLARE_WAITQUEUE(entry, current); |
54 | struct drm_lock *lock = data; | 54 | struct drm_lock *lock = data; |
55 | int ret = 0; | 55 | int ret = 0; |
56 | unsigned long irqflags; | ||
56 | 57 | ||
57 | ++file_priv->lock_count; | 58 | ++file_priv->lock_count; |
58 | 59 | ||
@@ -71,9 +72,9 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) | |||
71 | return -EINVAL; | 72 | return -EINVAL; |
72 | 73 | ||
73 | add_wait_queue(&dev->lock.lock_queue, &entry); | 74 | add_wait_queue(&dev->lock.lock_queue, &entry); |
74 | spin_lock(&dev->lock.spinlock); | 75 | spin_lock_irqsave(&dev->lock.spinlock, irqflags); |
75 | dev->lock.user_waiters++; | 76 | dev->lock.user_waiters++; |
76 | spin_unlock(&dev->lock.spinlock); | 77 | spin_unlock_irqrestore(&dev->lock.spinlock, irqflags); |
77 | for (;;) { | 78 | for (;;) { |
78 | __set_current_state(TASK_INTERRUPTIBLE); | 79 | __set_current_state(TASK_INTERRUPTIBLE); |
79 | if (!dev->lock.hw_lock) { | 80 | if (!dev->lock.hw_lock) { |
@@ -95,9 +96,9 @@ int drm_lock(struct drm_device *dev, void *data, struct drm_file *file_priv) | |||
95 | break; | 96 | break; |
96 | } | 97 | } |
97 | } | 98 | } |
98 | spin_lock(&dev->lock.spinlock); | 99 | spin_lock_irqsave(&dev->lock.spinlock, irqflags); |
99 | dev->lock.user_waiters--; | 100 | dev->lock.user_waiters--; |
100 | spin_unlock(&dev->lock.spinlock); | 101 | spin_unlock_irqrestore(&dev->lock.spinlock, irqflags); |
101 | __set_current_state(TASK_RUNNING); | 102 | __set_current_state(TASK_RUNNING); |
102 | remove_wait_queue(&dev->lock.lock_queue, &entry); | 103 | remove_wait_queue(&dev->lock.lock_queue, &entry); |
103 | 104 | ||
@@ -198,8 +199,9 @@ int drm_lock_take(struct drm_lock_data *lock_data, | |||
198 | { | 199 | { |
199 | unsigned int old, new, prev; | 200 | unsigned int old, new, prev; |
200 | volatile unsigned int *lock = &lock_data->hw_lock->lock; | 201 | volatile unsigned int *lock = &lock_data->hw_lock->lock; |
202 | unsigned long irqflags; | ||
201 | 203 | ||
202 | spin_lock(&lock_data->spinlock); | 204 | spin_lock_irqsave(&lock_data->spinlock, irqflags); |
203 | do { | 205 | do { |
204 | old = *lock; | 206 | old = *lock; |
205 | if (old & _DRM_LOCK_HELD) | 207 | if (old & _DRM_LOCK_HELD) |
@@ -211,7 +213,7 @@ int drm_lock_take(struct drm_lock_data *lock_data, | |||
211 | } | 213 | } |
212 | prev = cmpxchg(lock, old, new); | 214 | prev = cmpxchg(lock, old, new); |
213 | } while (prev != old); | 215 | } while (prev != old); |
214 | spin_unlock(&lock_data->spinlock); | 216 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
215 | 217 | ||
216 | if (_DRM_LOCKING_CONTEXT(old) == context) { | 218 | if (_DRM_LOCKING_CONTEXT(old) == context) { |
217 | if (old & _DRM_LOCK_HELD) { | 219 | if (old & _DRM_LOCK_HELD) { |
@@ -272,15 +274,16 @@ int drm_lock_free(struct drm_lock_data *lock_data, unsigned int context) | |||
272 | { | 274 | { |
273 | unsigned int old, new, prev; | 275 | unsigned int old, new, prev; |
274 | volatile unsigned int *lock = &lock_data->hw_lock->lock; | 276 | volatile unsigned int *lock = &lock_data->hw_lock->lock; |
277 | unsigned long irqflags; | ||
275 | 278 | ||
276 | spin_lock(&lock_data->spinlock); | 279 | spin_lock_irqsave(&lock_data->spinlock, irqflags); |
277 | if (lock_data->kernel_waiters != 0) { | 280 | if (lock_data->kernel_waiters != 0) { |
278 | drm_lock_transfer(lock_data, 0); | 281 | drm_lock_transfer(lock_data, 0); |
279 | lock_data->idle_has_lock = 1; | 282 | lock_data->idle_has_lock = 1; |
280 | spin_unlock(&lock_data->spinlock); | 283 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
281 | return 1; | 284 | return 1; |
282 | } | 285 | } |
283 | spin_unlock(&lock_data->spinlock); | 286 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
284 | 287 | ||
285 | do { | 288 | do { |
286 | old = *lock; | 289 | old = *lock; |
@@ -344,19 +347,20 @@ static int drm_notifier(void *priv) | |||
344 | void drm_idlelock_take(struct drm_lock_data *lock_data) | 347 | void drm_idlelock_take(struct drm_lock_data *lock_data) |
345 | { | 348 | { |
346 | int ret = 0; | 349 | int ret = 0; |
350 | unsigned long irqflags; | ||
347 | 351 | ||
348 | spin_lock(&lock_data->spinlock); | 352 | spin_lock_irqsave(&lock_data->spinlock, irqflags); |
349 | lock_data->kernel_waiters++; | 353 | lock_data->kernel_waiters++; |
350 | if (!lock_data->idle_has_lock) { | 354 | if (!lock_data->idle_has_lock) { |
351 | 355 | ||
352 | spin_unlock(&lock_data->spinlock); | 356 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
353 | ret = drm_lock_take(lock_data, DRM_KERNEL_CONTEXT); | 357 | ret = drm_lock_take(lock_data, DRM_KERNEL_CONTEXT); |
354 | spin_lock(&lock_data->spinlock); | 358 | spin_lock_irqsave(&lock_data->spinlock, irqflags); |
355 | 359 | ||
356 | if (ret == 1) | 360 | if (ret == 1) |
357 | lock_data->idle_has_lock = 1; | 361 | lock_data->idle_has_lock = 1; |
358 | } | 362 | } |
359 | spin_unlock(&lock_data->spinlock); | 363 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
360 | } | 364 | } |
361 | EXPORT_SYMBOL(drm_idlelock_take); | 365 | EXPORT_SYMBOL(drm_idlelock_take); |
362 | 366 | ||
@@ -364,8 +368,9 @@ void drm_idlelock_release(struct drm_lock_data *lock_data) | |||
364 | { | 368 | { |
365 | unsigned int old, prev; | 369 | unsigned int old, prev; |
366 | volatile unsigned int *lock = &lock_data->hw_lock->lock; | 370 | volatile unsigned int *lock = &lock_data->hw_lock->lock; |
371 | unsigned long irqflags; | ||
367 | 372 | ||
368 | spin_lock(&lock_data->spinlock); | 373 | spin_lock_irqsave(&lock_data->spinlock, irqflags); |
369 | if (--lock_data->kernel_waiters == 0) { | 374 | if (--lock_data->kernel_waiters == 0) { |
370 | if (lock_data->idle_has_lock) { | 375 | if (lock_data->idle_has_lock) { |
371 | do { | 376 | do { |
@@ -376,7 +381,7 @@ void drm_idlelock_release(struct drm_lock_data *lock_data) | |||
376 | lock_data->idle_has_lock = 0; | 381 | lock_data->idle_has_lock = 0; |
377 | } | 382 | } |
378 | } | 383 | } |
379 | spin_unlock(&lock_data->spinlock); | 384 | spin_unlock_irqrestore(&lock_data->spinlock, irqflags); |
380 | } | 385 | } |
381 | EXPORT_SYMBOL(drm_idlelock_release); | 386 | EXPORT_SYMBOL(drm_idlelock_release); |
382 | 387 | ||
diff --git a/drivers/char/drm/drm_pciids.h b/drivers/char/drm/drm_pciids.h index 715b361f0c2b..a6a499f97e22 100644 --- a/drivers/char/drm/drm_pciids.h +++ b/drivers/char/drm/drm_pciids.h | |||
@@ -205,9 +205,9 @@ | |||
205 | {0x1002, 0x71D6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 205 | {0x1002, 0x71D6, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
206 | {0x1002, 0x71DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \ | 206 | {0x1002, 0x71DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \ |
207 | {0x1002, 0x71DE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 207 | {0x1002, 0x71DE, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
208 | {0x1002, 0x7200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_NEW_MEMMAP}, \ | 208 | {0x1002, 0x7200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_NEW_MEMMAP}, \ |
209 | {0x1002, 0x7210, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 209 | {0x1002, 0x7210, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
210 | {0x1002, 0x7211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV530|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 210 | {0x1002, 0x7211, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV515|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
211 | {0x1002, 0x7240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ | 211 | {0x1002, 0x7240, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ |
212 | {0x1002, 0x7243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ | 212 | {0x1002, 0x7243, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ |
213 | {0x1002, 0x7244, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ | 213 | {0x1002, 0x7244, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_R580|RADEON_NEW_MEMMAP}, \ |
@@ -238,6 +238,7 @@ | |||
238 | {0x1002, 0x7834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \ | 238 | {0x1002, 0x7834, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_NEW_MEMMAP}, \ |
239 | {0x1002, 0x7835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ | 239 | {0x1002, 0x7835, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS300|RADEON_IS_IGP|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ |
240 | {0x1002, 0x791e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ | 240 | {0x1002, 0x791e, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ |
241 | {0x1002, 0x791f, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RS690|RADEON_IS_IGP|RADEON_NEW_MEMMAP|RADEON_IS_IGPGART}, \ | ||
241 | {0, 0, 0} | 242 | {0, 0, 0} |
242 | 243 | ||
243 | #define r128_PCI_IDS \ | 244 | #define r128_PCI_IDS \ |
diff --git a/drivers/char/drm/r128_cce.c b/drivers/char/drm/r128_cce.c index 892e0a589846..f36adbd3aaf5 100644 --- a/drivers/char/drm/r128_cce.c +++ b/drivers/char/drm/r128_cce.c | |||
@@ -558,6 +558,7 @@ static int r128_do_init_cce(struct drm_device * dev, drm_r128_init_t * init) | |||
558 | #if __OS_HAS_AGP | 558 | #if __OS_HAS_AGP |
559 | if (dev_priv->is_pci) { | 559 | if (dev_priv->is_pci) { |
560 | #endif | 560 | #endif |
561 | dev_priv->gart_info.table_mask = DMA_BIT_MASK(32); | ||
561 | dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN; | 562 | dev_priv->gart_info.gart_table_location = DRM_ATI_GART_MAIN; |
562 | dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE; | 563 | dev_priv->gart_info.table_size = R128_PCIGART_TABLE_SIZE; |
563 | dev_priv->gart_info.addr = NULL; | 564 | dev_priv->gart_info.addr = NULL; |
diff --git a/drivers/char/drm/radeon_cp.c b/drivers/char/drm/radeon_cp.c index 833abc7e55fb..9072e4a1894e 100644 --- a/drivers/char/drm/radeon_cp.c +++ b/drivers/char/drm/radeon_cp.c | |||
@@ -1807,6 +1807,7 @@ static int radeon_do_init_cp(struct drm_device * dev, drm_radeon_init_t * init) | |||
1807 | } else | 1807 | } else |
1808 | #endif | 1808 | #endif |
1809 | { | 1809 | { |
1810 | dev_priv->gart_info.table_mask = DMA_BIT_MASK(32); | ||
1810 | /* if we have an offset set from userspace */ | 1811 | /* if we have an offset set from userspace */ |
1811 | if (dev_priv->pcigart_offset_set) { | 1812 | if (dev_priv->pcigart_offset_set) { |
1812 | dev_priv->gart_info.bus_addr = | 1813 | dev_priv->gart_info.bus_addr = |
diff --git a/drivers/char/drm/via_dma.c b/drivers/char/drm/via_dma.c index 94baec692b57..7a339dba6a69 100644 --- a/drivers/char/drm/via_dma.c +++ b/drivers/char/drm/via_dma.c | |||
@@ -126,6 +126,8 @@ via_cmdbuf_wait(drm_via_private_t * dev_priv, unsigned int size) | |||
126 | hw_addr, cur_addr, next_addr); | 126 | hw_addr, cur_addr, next_addr); |
127 | return -1; | 127 | return -1; |
128 | } | 128 | } |
129 | if ((cur_addr < hw_addr) && (next_addr >= hw_addr)) | ||
130 | msleep(1); | ||
129 | } while ((cur_addr < hw_addr) && (next_addr >= hw_addr)); | 131 | } while ((cur_addr < hw_addr) && (next_addr >= hw_addr)); |
130 | return 0; | 132 | return 0; |
131 | } | 133 | } |
@@ -416,27 +418,50 @@ static int via_hook_segment(drm_via_private_t * dev_priv, | |||
416 | int paused, count; | 418 | int paused, count; |
417 | volatile uint32_t *paused_at = dev_priv->last_pause_ptr; | 419 | volatile uint32_t *paused_at = dev_priv->last_pause_ptr; |
418 | uint32_t reader,ptr; | 420 | uint32_t reader,ptr; |
421 | uint32_t diff; | ||
419 | 422 | ||
420 | paused = 0; | 423 | paused = 0; |
421 | via_flush_write_combine(); | 424 | via_flush_write_combine(); |
422 | (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1); | 425 | (void) *(volatile uint32_t *)(via_get_dma(dev_priv) -1); |
426 | |||
423 | *paused_at = pause_addr_lo; | 427 | *paused_at = pause_addr_lo; |
424 | via_flush_write_combine(); | 428 | via_flush_write_combine(); |
425 | (void) *paused_at; | 429 | (void) *paused_at; |
430 | |||
426 | reader = *(dev_priv->hw_addr_ptr); | 431 | reader = *(dev_priv->hw_addr_ptr); |
427 | ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + | 432 | ptr = ((volatile char *)paused_at - dev_priv->dma_ptr) + |
428 | dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4; | 433 | dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr + 4; |
434 | |||
429 | dev_priv->last_pause_ptr = via_get_dma(dev_priv) - 1; | 435 | dev_priv->last_pause_ptr = via_get_dma(dev_priv) - 1; |
430 | 436 | ||
431 | if ((ptr - reader) <= dev_priv->dma_diff ) { | 437 | /* |
432 | count = 10000000; | 438 | * If there is a possibility that the command reader will |
433 | while (!(paused = (VIA_READ(0x41c) & 0x80000000)) && count--); | 439 | * miss the new pause address and pause on the old one, |
440 | * In that case we need to program the new start address | ||
441 | * using PCI. | ||
442 | */ | ||
443 | |||
444 | diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff; | ||
445 | count = 10000000; | ||
446 | while(diff == 0 && count--) { | ||
447 | paused = (VIA_READ(0x41c) & 0x80000000); | ||
448 | if (paused) | ||
449 | break; | ||
450 | reader = *(dev_priv->hw_addr_ptr); | ||
451 | diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff; | ||
434 | } | 452 | } |
435 | 453 | ||
454 | paused = VIA_READ(0x41c) & 0x80000000; | ||
455 | |||
436 | if (paused && !no_pci_fire) { | 456 | if (paused && !no_pci_fire) { |
437 | reader = *(dev_priv->hw_addr_ptr); | 457 | reader = *(dev_priv->hw_addr_ptr); |
438 | if ((ptr - reader) == dev_priv->dma_diff) { | 458 | diff = (uint32_t) (ptr - reader) - dev_priv->dma_diff; |
439 | 459 | diff &= (dev_priv->dma_high - 1); | |
460 | if (diff != 0 && diff < (dev_priv->dma_high >> 1)) { | ||
461 | DRM_ERROR("Paused at incorrect address. " | ||
462 | "0x%08x, 0x%08x 0x%08x\n", | ||
463 | ptr, reader, dev_priv->dma_diff); | ||
464 | } else if (diff == 0) { | ||
440 | /* | 465 | /* |
441 | * There is a concern that these writes may stall the PCI bus | 466 | * There is a concern that these writes may stall the PCI bus |
442 | * if the GPU is not idle. However, idling the GPU first | 467 | * if the GPU is not idle. However, idling the GPU first |
@@ -577,6 +602,7 @@ static void via_cmdbuf_jump(drm_via_private_t * dev_priv) | |||
577 | uint32_t pause_addr_lo, pause_addr_hi; | 602 | uint32_t pause_addr_lo, pause_addr_hi; |
578 | uint32_t jump_addr_lo, jump_addr_hi; | 603 | uint32_t jump_addr_lo, jump_addr_hi; |
579 | volatile uint32_t *last_pause_ptr; | 604 | volatile uint32_t *last_pause_ptr; |
605 | uint32_t dma_low_save1, dma_low_save2; | ||
580 | 606 | ||
581 | agp_base = dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr; | 607 | agp_base = dev_priv->dma_offset + (uint32_t) dev_priv->agpAddr; |
582 | via_align_cmd(dev_priv, HC_HAGPBpID_JUMP, 0, &jump_addr_hi, | 608 | via_align_cmd(dev_priv, HC_HAGPBpID_JUMP, 0, &jump_addr_hi, |
@@ -603,8 +629,29 @@ static void via_cmdbuf_jump(drm_via_private_t * dev_priv) | |||
603 | &pause_addr_lo, 0); | 629 | &pause_addr_lo, 0); |
604 | 630 | ||
605 | *last_pause_ptr = pause_addr_lo; | 631 | *last_pause_ptr = pause_addr_lo; |
632 | dma_low_save1 = dev_priv->dma_low; | ||
606 | 633 | ||
607 | via_hook_segment( dev_priv, jump_addr_hi, jump_addr_lo, 0); | 634 | /* |
635 | * Now, set a trap that will pause the regulator if it tries to rerun the old | ||
636 | * command buffer. (Which may happen if via_hook_segment detecs a command regulator pause | ||
637 | * and reissues the jump command over PCI, while the regulator has already taken the jump | ||
638 | * and actually paused at the current buffer end). | ||
639 | * There appears to be no other way to detect this condition, since the hw_addr_pointer | ||
640 | * does not seem to get updated immediately when a jump occurs. | ||
641 | */ | ||
642 | |||
643 | last_pause_ptr = | ||
644 | via_align_cmd(dev_priv, HC_HAGPBpID_PAUSE, 0, &pause_addr_hi, | ||
645 | &pause_addr_lo, 0) - 1; | ||
646 | via_align_cmd(dev_priv, HC_HAGPBpID_PAUSE, 0, &pause_addr_hi, | ||
647 | &pause_addr_lo, 0); | ||
648 | *last_pause_ptr = pause_addr_lo; | ||
649 | |||
650 | dma_low_save2 = dev_priv->dma_low; | ||
651 | dev_priv->dma_low = dma_low_save1; | ||
652 | via_hook_segment(dev_priv, jump_addr_hi, jump_addr_lo, 0); | ||
653 | dev_priv->dma_low = dma_low_save2; | ||
654 | via_hook_segment(dev_priv, pause_addr_hi, pause_addr_lo, 0); | ||
608 | } | 655 | } |
609 | 656 | ||
610 | 657 | ||
diff --git a/drivers/char/drm/via_dmablit.c b/drivers/char/drm/via_dmablit.c index 33c5197b73c4..409e00afdd07 100644 --- a/drivers/char/drm/via_dmablit.c +++ b/drivers/char/drm/via_dmablit.c | |||
@@ -603,7 +603,7 @@ via_build_sg_info(struct drm_device *dev, drm_via_sg_info_t *vsg, drm_via_dmabli | |||
603 | * (Not a big limitation anyway.) | 603 | * (Not a big limitation anyway.) |
604 | */ | 604 | */ |
605 | 605 | ||
606 | if ((xfer->mem_stride - xfer->line_length) >= PAGE_SIZE) { | 606 | if ((xfer->mem_stride - xfer->line_length) > 2*PAGE_SIZE) { |
607 | DRM_ERROR("Too large system memory stride. Stride: %d, " | 607 | DRM_ERROR("Too large system memory stride. Stride: %d, " |
608 | "Length: %d\n", xfer->mem_stride, xfer->line_length); | 608 | "Length: %d\n", xfer->mem_stride, xfer->line_length); |
609 | return -EINVAL; | 609 | return -EINVAL; |
diff --git a/drivers/char/rocket.c b/drivers/char/rocket.c index 72f289279d8f..f585bc8579e9 100644 --- a/drivers/char/rocket.c +++ b/drivers/char/rocket.c | |||
@@ -83,6 +83,7 @@ | |||
83 | #include <linux/pci.h> | 83 | #include <linux/pci.h> |
84 | #include <asm/uaccess.h> | 84 | #include <asm/uaccess.h> |
85 | #include <asm/atomic.h> | 85 | #include <asm/atomic.h> |
86 | #include <asm/unaligned.h> | ||
86 | #include <linux/bitops.h> | 87 | #include <linux/bitops.h> |
87 | #include <linux/spinlock.h> | 88 | #include <linux/spinlock.h> |
88 | #include <linux/init.h> | 89 | #include <linux/init.h> |
@@ -1312,7 +1313,7 @@ static int rp_tiocmset(struct tty_struct *tty, struct file *file, | |||
1312 | if (clear & TIOCM_DTR) | 1313 | if (clear & TIOCM_DTR) |
1313 | info->channel.TxControl[3] &= ~SET_DTR; | 1314 | info->channel.TxControl[3] &= ~SET_DTR; |
1314 | 1315 | ||
1315 | sOutDW(info->channel.IndexAddr, *(DWord_t *) & (info->channel.TxControl[0])); | 1316 | out32(info->channel.IndexAddr, info->channel.TxControl); |
1316 | return 0; | 1317 | return 0; |
1317 | } | 1318 | } |
1318 | 1319 | ||
@@ -1748,7 +1749,7 @@ static int rp_write(struct tty_struct *tty, | |||
1748 | 1749 | ||
1749 | /* Write remaining data into the port's xmit_buf */ | 1750 | /* Write remaining data into the port's xmit_buf */ |
1750 | while (1) { | 1751 | while (1) { |
1751 | if (info->tty == 0) /* Seemingly obligatory check... */ | 1752 | if (!info->tty) /* Seemingly obligatory check... */ |
1752 | goto end; | 1753 | goto end; |
1753 | 1754 | ||
1754 | c = min(count, min(XMIT_BUF_SIZE - info->xmit_cnt - 1, XMIT_BUF_SIZE - info->xmit_head)); | 1755 | c = min(count, min(XMIT_BUF_SIZE - info->xmit_cnt - 1, XMIT_BUF_SIZE - info->xmit_head)); |
@@ -2798,7 +2799,7 @@ static int sReadAiopNumChan(WordIO_t io) | |||
2798 | static Byte_t R[4] = { 0x00, 0x00, 0x34, 0x12 }; | 2799 | static Byte_t R[4] = { 0x00, 0x00, 0x34, 0x12 }; |
2799 | 2800 | ||
2800 | /* write to chan 0 SRAM */ | 2801 | /* write to chan 0 SRAM */ |
2801 | sOutDW((DWordIO_t) io + _INDX_ADDR, *((DWord_t *) & R[0])); | 2802 | out32((DWordIO_t) io + _INDX_ADDR, R); |
2802 | sOutW(io + _INDX_ADDR, 0); /* read from SRAM, chan 0 */ | 2803 | sOutW(io + _INDX_ADDR, 0); /* read from SRAM, chan 0 */ |
2803 | x = sInW(io + _INDX_DATA); | 2804 | x = sInW(io + _INDX_DATA); |
2804 | sOutW(io + _INDX_ADDR, 0x4000); /* read from SRAM, chan 4 */ | 2805 | sOutW(io + _INDX_ADDR, 0x4000); /* read from SRAM, chan 4 */ |
@@ -2864,7 +2865,7 @@ static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum, | |||
2864 | R[1] = RData[i + 1] + 0x10 * ChanNum; | 2865 | R[1] = RData[i + 1] + 0x10 * ChanNum; |
2865 | R[2] = RData[i + 2]; | 2866 | R[2] = RData[i + 2]; |
2866 | R[3] = RData[i + 3]; | 2867 | R[3] = RData[i + 3]; |
2867 | sOutDW(ChP->IndexAddr, *((DWord_t *) & R[0])); | 2868 | out32(ChP->IndexAddr, R); |
2868 | } | 2869 | } |
2869 | 2870 | ||
2870 | ChR = ChP->R; | 2871 | ChR = ChP->R; |
@@ -2887,43 +2888,43 @@ static int sInitChan(CONTROLLER_T * CtlP, CHANNEL_T * ChP, int AiopNum, | |||
2887 | ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8); | 2888 | ChP->BaudDiv[1] = (Byte_t) ((ChOff + _BAUD) >> 8); |
2888 | ChP->BaudDiv[2] = (Byte_t) brd9600; | 2889 | ChP->BaudDiv[2] = (Byte_t) brd9600; |
2889 | ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8); | 2890 | ChP->BaudDiv[3] = (Byte_t) (brd9600 >> 8); |
2890 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->BaudDiv[0]); | 2891 | out32(ChP->IndexAddr, ChP->BaudDiv); |
2891 | 2892 | ||
2892 | ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL); | 2893 | ChP->TxControl[0] = (Byte_t) (ChOff + _TX_CTRL); |
2893 | ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8); | 2894 | ChP->TxControl[1] = (Byte_t) ((ChOff + _TX_CTRL) >> 8); |
2894 | ChP->TxControl[2] = 0; | 2895 | ChP->TxControl[2] = 0; |
2895 | ChP->TxControl[3] = 0; | 2896 | ChP->TxControl[3] = 0; |
2896 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); | 2897 | out32(ChP->IndexAddr, ChP->TxControl); |
2897 | 2898 | ||
2898 | ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL); | 2899 | ChP->RxControl[0] = (Byte_t) (ChOff + _RX_CTRL); |
2899 | ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8); | 2900 | ChP->RxControl[1] = (Byte_t) ((ChOff + _RX_CTRL) >> 8); |
2900 | ChP->RxControl[2] = 0; | 2901 | ChP->RxControl[2] = 0; |
2901 | ChP->RxControl[3] = 0; | 2902 | ChP->RxControl[3] = 0; |
2902 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); | 2903 | out32(ChP->IndexAddr, ChP->RxControl); |
2903 | 2904 | ||
2904 | ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS); | 2905 | ChP->TxEnables[0] = (Byte_t) (ChOff + _TX_ENBLS); |
2905 | ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8); | 2906 | ChP->TxEnables[1] = (Byte_t) ((ChOff + _TX_ENBLS) >> 8); |
2906 | ChP->TxEnables[2] = 0; | 2907 | ChP->TxEnables[2] = 0; |
2907 | ChP->TxEnables[3] = 0; | 2908 | ChP->TxEnables[3] = 0; |
2908 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxEnables[0]); | 2909 | out32(ChP->IndexAddr, ChP->TxEnables); |
2909 | 2910 | ||
2910 | ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1); | 2911 | ChP->TxCompare[0] = (Byte_t) (ChOff + _TXCMP1); |
2911 | ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8); | 2912 | ChP->TxCompare[1] = (Byte_t) ((ChOff + _TXCMP1) >> 8); |
2912 | ChP->TxCompare[2] = 0; | 2913 | ChP->TxCompare[2] = 0; |
2913 | ChP->TxCompare[3] = 0; | 2914 | ChP->TxCompare[3] = 0; |
2914 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxCompare[0]); | 2915 | out32(ChP->IndexAddr, ChP->TxCompare); |
2915 | 2916 | ||
2916 | ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1); | 2917 | ChP->TxReplace1[0] = (Byte_t) (ChOff + _TXREP1B1); |
2917 | ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8); | 2918 | ChP->TxReplace1[1] = (Byte_t) ((ChOff + _TXREP1B1) >> 8); |
2918 | ChP->TxReplace1[2] = 0; | 2919 | ChP->TxReplace1[2] = 0; |
2919 | ChP->TxReplace1[3] = 0; | 2920 | ChP->TxReplace1[3] = 0; |
2920 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxReplace1[0]); | 2921 | out32(ChP->IndexAddr, ChP->TxReplace1); |
2921 | 2922 | ||
2922 | ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2); | 2923 | ChP->TxReplace2[0] = (Byte_t) (ChOff + _TXREP2); |
2923 | ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8); | 2924 | ChP->TxReplace2[1] = (Byte_t) ((ChOff + _TXREP2) >> 8); |
2924 | ChP->TxReplace2[2] = 0; | 2925 | ChP->TxReplace2[2] = 0; |
2925 | ChP->TxReplace2[3] = 0; | 2926 | ChP->TxReplace2[3] = 0; |
2926 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxReplace2[0]); | 2927 | out32(ChP->IndexAddr, ChP->TxReplace2); |
2927 | 2928 | ||
2928 | ChP->TxFIFOPtrs = ChOff + _TXF_OUTP; | 2929 | ChP->TxFIFOPtrs = ChOff + _TXF_OUTP; |
2929 | ChP->TxFIFO = ChOff + _TX_FIFO; | 2930 | ChP->TxFIFO = ChOff + _TX_FIFO; |
@@ -2979,7 +2980,7 @@ static void sStopRxProcessor(CHANNEL_T * ChP) | |||
2979 | R[1] = ChP->R[1]; | 2980 | R[1] = ChP->R[1]; |
2980 | R[2] = 0x0a; | 2981 | R[2] = 0x0a; |
2981 | R[3] = ChP->R[3]; | 2982 | R[3] = ChP->R[3]; |
2982 | sOutDW(ChP->IndexAddr, *(DWord_t *) & R[0]); | 2983 | out32(ChP->IndexAddr, R); |
2983 | } | 2984 | } |
2984 | 2985 | ||
2985 | /*************************************************************************** | 2986 | /*************************************************************************** |
@@ -3094,13 +3095,13 @@ static int sWriteTxPrioByte(CHANNEL_T * ChP, Byte_t Data) | |||
3094 | *WordPtr = ChP->TxPrioBuf; /* data byte address */ | 3095 | *WordPtr = ChP->TxPrioBuf; /* data byte address */ |
3095 | 3096 | ||
3096 | DWBuf[2] = Data; /* data byte value */ | 3097 | DWBuf[2] = Data; /* data byte value */ |
3097 | sOutDW(IndexAddr, *((DWord_t *) (&DWBuf[0]))); /* write it out */ | 3098 | out32(IndexAddr, DWBuf); /* write it out */ |
3098 | 3099 | ||
3099 | *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */ | 3100 | *WordPtr = ChP->TxPrioCnt; /* Tx priority count address */ |
3100 | 3101 | ||
3101 | DWBuf[2] = PRI_PEND + 1; /* indicate 1 byte pending */ | 3102 | DWBuf[2] = PRI_PEND + 1; /* indicate 1 byte pending */ |
3102 | DWBuf[3] = 0; /* priority buffer pointer */ | 3103 | DWBuf[3] = 0; /* priority buffer pointer */ |
3103 | sOutDW(IndexAddr, *((DWord_t *) (&DWBuf[0]))); /* write it out */ | 3104 | out32(IndexAddr, DWBuf); /* write it out */ |
3104 | } else { /* write it to Tx FIFO */ | 3105 | } else { /* write it to Tx FIFO */ |
3105 | 3106 | ||
3106 | sWriteTxByte(sGetTxRxDataIO(ChP), Data); | 3107 | sWriteTxByte(sGetTxRxDataIO(ChP), Data); |
@@ -3147,11 +3148,11 @@ static void sEnInterrupts(CHANNEL_T * ChP, Word_t Flags) | |||
3147 | ChP->RxControl[2] |= | 3148 | ChP->RxControl[2] |= |
3148 | ((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); | 3149 | ((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); |
3149 | 3150 | ||
3150 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); | 3151 | out32(ChP->IndexAddr, ChP->RxControl); |
3151 | 3152 | ||
3152 | ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN); | 3153 | ChP->TxControl[2] |= ((Byte_t) Flags & TXINT_EN); |
3153 | 3154 | ||
3154 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); | 3155 | out32(ChP->IndexAddr, ChP->TxControl); |
3155 | 3156 | ||
3156 | if (Flags & CHANINT_EN) { | 3157 | if (Flags & CHANINT_EN) { |
3157 | Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum]; | 3158 | Mask = sInB(ChP->IntMask) | sBitMapSetTbl[ChP->ChanNum]; |
@@ -3190,9 +3191,9 @@ static void sDisInterrupts(CHANNEL_T * ChP, Word_t Flags) | |||
3190 | 3191 | ||
3191 | ChP->RxControl[2] &= | 3192 | ChP->RxControl[2] &= |
3192 | ~((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); | 3193 | ~((Byte_t) Flags & (RXINT_EN | SRCINT_EN | MCINT_EN)); |
3193 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->RxControl[0]); | 3194 | out32(ChP->IndexAddr, ChP->RxControl); |
3194 | ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN); | 3195 | ChP->TxControl[2] &= ~((Byte_t) Flags & TXINT_EN); |
3195 | sOutDW(ChP->IndexAddr, *(DWord_t *) & ChP->TxControl[0]); | 3196 | out32(ChP->IndexAddr, ChP->TxControl); |
3196 | 3197 | ||
3197 | if (Flags & CHANINT_EN) { | 3198 | if (Flags & CHANINT_EN) { |
3198 | Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum]; | 3199 | Mask = sInB(ChP->IntMask) & sBitMapClrTbl[ChP->ChanNum]; |
diff --git a/drivers/char/rocket_int.h b/drivers/char/rocket_int.h index f3a75791b811..b01d38125a8f 100644 --- a/drivers/char/rocket_int.h +++ b/drivers/char/rocket_int.h | |||
@@ -26,7 +26,6 @@ typedef unsigned int ByteIO_t; | |||
26 | typedef unsigned int Word_t; | 26 | typedef unsigned int Word_t; |
27 | typedef unsigned int WordIO_t; | 27 | typedef unsigned int WordIO_t; |
28 | 28 | ||
29 | typedef unsigned long DWord_t; | ||
30 | typedef unsigned int DWordIO_t; | 29 | typedef unsigned int DWordIO_t; |
31 | 30 | ||
32 | /* | 31 | /* |
@@ -38,7 +37,6 @@ typedef unsigned int DWordIO_t; | |||
38 | * instruction. | 37 | * instruction. |
39 | */ | 38 | */ |
40 | 39 | ||
41 | #ifdef ROCKET_DEBUG_IO | ||
42 | static inline void sOutB(unsigned short port, unsigned char value) | 40 | static inline void sOutB(unsigned short port, unsigned char value) |
43 | { | 41 | { |
44 | #ifdef ROCKET_DEBUG_IO | 42 | #ifdef ROCKET_DEBUG_IO |
@@ -55,12 +53,13 @@ static inline void sOutW(unsigned short port, unsigned short value) | |||
55 | outw_p(value, port); | 53 | outw_p(value, port); |
56 | } | 54 | } |
57 | 55 | ||
58 | static inline void sOutDW(unsigned short port, unsigned long value) | 56 | static inline void out32(unsigned short port, Byte_t *p) |
59 | { | 57 | { |
58 | u32 value = le32_to_cpu(get_unaligned((__le32 *)p)); | ||
60 | #ifdef ROCKET_DEBUG_IO | 59 | #ifdef ROCKET_DEBUG_IO |
61 | printk(KERN_DEBUG "sOutDW(%x, %lx)...\n", port, value); | 60 | printk(KERN_DEBUG "out32(%x, %lx)...\n", port, value); |
62 | #endif | 61 | #endif |
63 | outl_p(cpu_to_le32(value), port); | 62 | outl_p(value, port); |
64 | } | 63 | } |
65 | 64 | ||
66 | static inline unsigned char sInB(unsigned short port) | 65 | static inline unsigned char sInB(unsigned short port) |
@@ -73,14 +72,6 @@ static inline unsigned short sInW(unsigned short port) | |||
73 | return inw_p(port); | 72 | return inw_p(port); |
74 | } | 73 | } |
75 | 74 | ||
76 | #else /* !ROCKET_DEBUG_IO */ | ||
77 | #define sOutB(a, b) outb_p(b, a) | ||
78 | #define sOutW(a, b) outw_p(b, a) | ||
79 | #define sOutDW(port, value) outl_p(cpu_to_le32(value), port) | ||
80 | #define sInB(a) (inb_p(a)) | ||
81 | #define sInW(a) (inw_p(a)) | ||
82 | #endif /* ROCKET_DEBUG_IO */ | ||
83 | |||
84 | /* This is used to move arrays of bytes so byte swapping isn't appropriate. */ | 75 | /* This is used to move arrays of bytes so byte swapping isn't appropriate. */ |
85 | #define sOutStrW(port, addr, count) if (count) outsw(port, addr, count) | 76 | #define sOutStrW(port, addr, count) if (count) outsw(port, addr, count) |
86 | #define sInStrW(port, addr, count) if (count) insw(port, addr, count) | 77 | #define sInStrW(port, addr, count) if (count) insw(port, addr, count) |
@@ -390,7 +381,7 @@ Call: sClrBreak(ChP) | |||
390 | #define sClrBreak(ChP) \ | 381 | #define sClrBreak(ChP) \ |
391 | do { \ | 382 | do { \ |
392 | (ChP)->TxControl[3] &= ~SETBREAK; \ | 383 | (ChP)->TxControl[3] &= ~SETBREAK; \ |
393 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 384 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
394 | } while (0) | 385 | } while (0) |
395 | 386 | ||
396 | /*************************************************************************** | 387 | /*************************************************************************** |
@@ -402,7 +393,7 @@ Call: sClrDTR(ChP) | |||
402 | #define sClrDTR(ChP) \ | 393 | #define sClrDTR(ChP) \ |
403 | do { \ | 394 | do { \ |
404 | (ChP)->TxControl[3] &= ~SET_DTR; \ | 395 | (ChP)->TxControl[3] &= ~SET_DTR; \ |
405 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 396 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
406 | } while (0) | 397 | } while (0) |
407 | 398 | ||
408 | /*************************************************************************** | 399 | /*************************************************************************** |
@@ -415,7 +406,7 @@ Call: sClrRTS(ChP) | |||
415 | do { \ | 406 | do { \ |
416 | if ((ChP)->rtsToggle) break; \ | 407 | if ((ChP)->rtsToggle) break; \ |
417 | (ChP)->TxControl[3] &= ~SET_RTS; \ | 408 | (ChP)->TxControl[3] &= ~SET_RTS; \ |
418 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 409 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
419 | } while (0) | 410 | } while (0) |
420 | 411 | ||
421 | /*************************************************************************** | 412 | /*************************************************************************** |
@@ -489,7 +480,7 @@ Call: sDisCTSFlowCtl(ChP) | |||
489 | #define sDisCTSFlowCtl(ChP) \ | 480 | #define sDisCTSFlowCtl(ChP) \ |
490 | do { \ | 481 | do { \ |
491 | (ChP)->TxControl[2] &= ~CTSFC_EN; \ | 482 | (ChP)->TxControl[2] &= ~CTSFC_EN; \ |
492 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 483 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
493 | } while (0) | 484 | } while (0) |
494 | 485 | ||
495 | /*************************************************************************** | 486 | /*************************************************************************** |
@@ -501,7 +492,7 @@ Call: sDisIXANY(ChP) | |||
501 | #define sDisIXANY(ChP) \ | 492 | #define sDisIXANY(ChP) \ |
502 | do { \ | 493 | do { \ |
503 | (ChP)->R[0x0e] = 0x86; \ | 494 | (ChP)->R[0x0e] = 0x86; \ |
504 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x0c]); \ | 495 | out32((ChP)->IndexAddr,&(ChP)->R[0x0c]); \ |
505 | } while (0) | 496 | } while (0) |
506 | 497 | ||
507 | /*************************************************************************** | 498 | /*************************************************************************** |
@@ -515,7 +506,7 @@ Comments: Function sSetParity() can be used in place of functions sEnParity(), | |||
515 | #define sDisParity(ChP) \ | 506 | #define sDisParity(ChP) \ |
516 | do { \ | 507 | do { \ |
517 | (ChP)->TxControl[2] &= ~PARITY_EN; \ | 508 | (ChP)->TxControl[2] &= ~PARITY_EN; \ |
518 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 509 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
519 | } while (0) | 510 | } while (0) |
520 | 511 | ||
521 | /*************************************************************************** | 512 | /*************************************************************************** |
@@ -527,7 +518,7 @@ Call: sDisRTSToggle(ChP) | |||
527 | #define sDisRTSToggle(ChP) \ | 518 | #define sDisRTSToggle(ChP) \ |
528 | do { \ | 519 | do { \ |
529 | (ChP)->TxControl[2] &= ~RTSTOG_EN; \ | 520 | (ChP)->TxControl[2] &= ~RTSTOG_EN; \ |
530 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 521 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
531 | (ChP)->rtsToggle = 0; \ | 522 | (ChP)->rtsToggle = 0; \ |
532 | } while (0) | 523 | } while (0) |
533 | 524 | ||
@@ -540,7 +531,7 @@ Call: sDisRxFIFO(ChP) | |||
540 | #define sDisRxFIFO(ChP) \ | 531 | #define sDisRxFIFO(ChP) \ |
541 | do { \ | 532 | do { \ |
542 | (ChP)->R[0x32] = 0x0a; \ | 533 | (ChP)->R[0x32] = 0x0a; \ |
543 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x30]); \ | 534 | out32((ChP)->IndexAddr,&(ChP)->R[0x30]); \ |
544 | } while (0) | 535 | } while (0) |
545 | 536 | ||
546 | /*************************************************************************** | 537 | /*************************************************************************** |
@@ -567,7 +558,7 @@ Call: sDisTransmit(ChP) | |||
567 | #define sDisTransmit(ChP) \ | 558 | #define sDisTransmit(ChP) \ |
568 | do { \ | 559 | do { \ |
569 | (ChP)->TxControl[3] &= ~TX_ENABLE; \ | 560 | (ChP)->TxControl[3] &= ~TX_ENABLE; \ |
570 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 561 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
571 | } while (0) | 562 | } while (0) |
572 | 563 | ||
573 | /*************************************************************************** | 564 | /*************************************************************************** |
@@ -579,7 +570,7 @@ Call: sDisTxSoftFlowCtl(ChP) | |||
579 | #define sDisTxSoftFlowCtl(ChP) \ | 570 | #define sDisTxSoftFlowCtl(ChP) \ |
580 | do { \ | 571 | do { \ |
581 | (ChP)->R[0x06] = 0x8a; \ | 572 | (ChP)->R[0x06] = 0x8a; \ |
582 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ | 573 | out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \ |
583 | } while (0) | 574 | } while (0) |
584 | 575 | ||
585 | /*************************************************************************** | 576 | /*************************************************************************** |
@@ -604,7 +595,7 @@ Call: sEnCTSFlowCtl(ChP) | |||
604 | #define sEnCTSFlowCtl(ChP) \ | 595 | #define sEnCTSFlowCtl(ChP) \ |
605 | do { \ | 596 | do { \ |
606 | (ChP)->TxControl[2] |= CTSFC_EN; \ | 597 | (ChP)->TxControl[2] |= CTSFC_EN; \ |
607 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 598 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
608 | } while (0) | 599 | } while (0) |
609 | 600 | ||
610 | /*************************************************************************** | 601 | /*************************************************************************** |
@@ -616,7 +607,7 @@ Call: sEnIXANY(ChP) | |||
616 | #define sEnIXANY(ChP) \ | 607 | #define sEnIXANY(ChP) \ |
617 | do { \ | 608 | do { \ |
618 | (ChP)->R[0x0e] = 0x21; \ | 609 | (ChP)->R[0x0e] = 0x21; \ |
619 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x0c]); \ | 610 | out32((ChP)->IndexAddr,&(ChP)->R[0x0c]); \ |
620 | } while (0) | 611 | } while (0) |
621 | 612 | ||
622 | /*************************************************************************** | 613 | /*************************************************************************** |
@@ -633,7 +624,7 @@ Warnings: Before enabling parity odd or even parity should be chosen using | |||
633 | #define sEnParity(ChP) \ | 624 | #define sEnParity(ChP) \ |
634 | do { \ | 625 | do { \ |
635 | (ChP)->TxControl[2] |= PARITY_EN; \ | 626 | (ChP)->TxControl[2] |= PARITY_EN; \ |
636 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 627 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
637 | } while (0) | 628 | } while (0) |
638 | 629 | ||
639 | /*************************************************************************** | 630 | /*************************************************************************** |
@@ -647,10 +638,10 @@ Comments: This function will disable RTS flow control and clear the RTS | |||
647 | #define sEnRTSToggle(ChP) \ | 638 | #define sEnRTSToggle(ChP) \ |
648 | do { \ | 639 | do { \ |
649 | (ChP)->RxControl[2] &= ~RTSFC_EN; \ | 640 | (ChP)->RxControl[2] &= ~RTSFC_EN; \ |
650 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ | 641 | out32((ChP)->IndexAddr,(ChP)->RxControl); \ |
651 | (ChP)->TxControl[2] |= RTSTOG_EN; \ | 642 | (ChP)->TxControl[2] |= RTSTOG_EN; \ |
652 | (ChP)->TxControl[3] &= ~SET_RTS; \ | 643 | (ChP)->TxControl[3] &= ~SET_RTS; \ |
653 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 644 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
654 | (ChP)->rtsToggle = 1; \ | 645 | (ChP)->rtsToggle = 1; \ |
655 | } while (0) | 646 | } while (0) |
656 | 647 | ||
@@ -663,7 +654,7 @@ Call: sEnRxFIFO(ChP) | |||
663 | #define sEnRxFIFO(ChP) \ | 654 | #define sEnRxFIFO(ChP) \ |
664 | do { \ | 655 | do { \ |
665 | (ChP)->R[0x32] = 0x08; \ | 656 | (ChP)->R[0x32] = 0x08; \ |
666 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x30]); \ | 657 | out32((ChP)->IndexAddr,&(ChP)->R[0x30]); \ |
667 | } while (0) | 658 | } while (0) |
668 | 659 | ||
669 | /*************************************************************************** | 660 | /*************************************************************************** |
@@ -684,7 +675,7 @@ Warnings: This function must be called after valid microcode has been | |||
684 | #define sEnRxProcessor(ChP) \ | 675 | #define sEnRxProcessor(ChP) \ |
685 | do { \ | 676 | do { \ |
686 | (ChP)->RxControl[2] |= RXPROC_EN; \ | 677 | (ChP)->RxControl[2] |= RXPROC_EN; \ |
687 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ | 678 | out32((ChP)->IndexAddr,(ChP)->RxControl); \ |
688 | } while (0) | 679 | } while (0) |
689 | 680 | ||
690 | /*************************************************************************** | 681 | /*************************************************************************** |
@@ -708,7 +699,7 @@ Call: sEnTransmit(ChP) | |||
708 | #define sEnTransmit(ChP) \ | 699 | #define sEnTransmit(ChP) \ |
709 | do { \ | 700 | do { \ |
710 | (ChP)->TxControl[3] |= TX_ENABLE; \ | 701 | (ChP)->TxControl[3] |= TX_ENABLE; \ |
711 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 702 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
712 | } while (0) | 703 | } while (0) |
713 | 704 | ||
714 | /*************************************************************************** | 705 | /*************************************************************************** |
@@ -720,7 +711,7 @@ Call: sEnTxSoftFlowCtl(ChP) | |||
720 | #define sEnTxSoftFlowCtl(ChP) \ | 711 | #define sEnTxSoftFlowCtl(ChP) \ |
721 | do { \ | 712 | do { \ |
722 | (ChP)->R[0x06] = 0xc5; \ | 713 | (ChP)->R[0x06] = 0xc5; \ |
723 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ | 714 | out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \ |
724 | } while (0) | 715 | } while (0) |
725 | 716 | ||
726 | /*************************************************************************** | 717 | /*************************************************************************** |
@@ -927,7 +918,7 @@ Call: sSendBreak(ChP) | |||
927 | #define sSendBreak(ChP) \ | 918 | #define sSendBreak(ChP) \ |
928 | do { \ | 919 | do { \ |
929 | (ChP)->TxControl[3] |= SETBREAK; \ | 920 | (ChP)->TxControl[3] |= SETBREAK; \ |
930 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 921 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
931 | } while (0) | 922 | } while (0) |
932 | 923 | ||
933 | /*************************************************************************** | 924 | /*************************************************************************** |
@@ -941,7 +932,7 @@ Call: sSetBaud(ChP,Divisor) | |||
941 | do { \ | 932 | do { \ |
942 | (ChP)->BaudDiv[2] = (Byte_t)(DIVISOR); \ | 933 | (ChP)->BaudDiv[2] = (Byte_t)(DIVISOR); \ |
943 | (ChP)->BaudDiv[3] = (Byte_t)((DIVISOR) >> 8); \ | 934 | (ChP)->BaudDiv[3] = (Byte_t)((DIVISOR) >> 8); \ |
944 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->BaudDiv[0]); \ | 935 | out32((ChP)->IndexAddr,(ChP)->BaudDiv); \ |
945 | } while (0) | 936 | } while (0) |
946 | 937 | ||
947 | /*************************************************************************** | 938 | /*************************************************************************** |
@@ -953,7 +944,7 @@ Call: sSetData7(ChP) | |||
953 | #define sSetData7(ChP) \ | 944 | #define sSetData7(ChP) \ |
954 | do { \ | 945 | do { \ |
955 | (ChP)->TxControl[2] &= ~DATA8BIT; \ | 946 | (ChP)->TxControl[2] &= ~DATA8BIT; \ |
956 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 947 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
957 | } while (0) | 948 | } while (0) |
958 | 949 | ||
959 | /*************************************************************************** | 950 | /*************************************************************************** |
@@ -965,7 +956,7 @@ Call: sSetData8(ChP) | |||
965 | #define sSetData8(ChP) \ | 956 | #define sSetData8(ChP) \ |
966 | do { \ | 957 | do { \ |
967 | (ChP)->TxControl[2] |= DATA8BIT; \ | 958 | (ChP)->TxControl[2] |= DATA8BIT; \ |
968 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 959 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
969 | } while (0) | 960 | } while (0) |
970 | 961 | ||
971 | /*************************************************************************** | 962 | /*************************************************************************** |
@@ -977,7 +968,7 @@ Call: sSetDTR(ChP) | |||
977 | #define sSetDTR(ChP) \ | 968 | #define sSetDTR(ChP) \ |
978 | do { \ | 969 | do { \ |
979 | (ChP)->TxControl[3] |= SET_DTR; \ | 970 | (ChP)->TxControl[3] |= SET_DTR; \ |
980 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 971 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
981 | } while (0) | 972 | } while (0) |
982 | 973 | ||
983 | /*************************************************************************** | 974 | /*************************************************************************** |
@@ -994,7 +985,7 @@ Warnings: This function has no effect unless parity is enabled with function | |||
994 | #define sSetEvenParity(ChP) \ | 985 | #define sSetEvenParity(ChP) \ |
995 | do { \ | 986 | do { \ |
996 | (ChP)->TxControl[2] |= EVEN_PAR; \ | 987 | (ChP)->TxControl[2] |= EVEN_PAR; \ |
997 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 988 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
998 | } while (0) | 989 | } while (0) |
999 | 990 | ||
1000 | /*************************************************************************** | 991 | /*************************************************************************** |
@@ -1011,7 +1002,7 @@ Warnings: This function has no effect unless parity is enabled with function | |||
1011 | #define sSetOddParity(ChP) \ | 1002 | #define sSetOddParity(ChP) \ |
1012 | do { \ | 1003 | do { \ |
1013 | (ChP)->TxControl[2] &= ~EVEN_PAR; \ | 1004 | (ChP)->TxControl[2] &= ~EVEN_PAR; \ |
1014 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 1005 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
1015 | } while (0) | 1006 | } while (0) |
1016 | 1007 | ||
1017 | /*************************************************************************** | 1008 | /*************************************************************************** |
@@ -1024,7 +1015,7 @@ Call: sSetRTS(ChP) | |||
1024 | do { \ | 1015 | do { \ |
1025 | if ((ChP)->rtsToggle) break; \ | 1016 | if ((ChP)->rtsToggle) break; \ |
1026 | (ChP)->TxControl[3] |= SET_RTS; \ | 1017 | (ChP)->TxControl[3] |= SET_RTS; \ |
1027 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 1018 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
1028 | } while (0) | 1019 | } while (0) |
1029 | 1020 | ||
1030 | /*************************************************************************** | 1021 | /*************************************************************************** |
@@ -1050,7 +1041,7 @@ Comments: An interrupt will be generated when the trigger level is reached | |||
1050 | do { \ | 1041 | do { \ |
1051 | (ChP)->RxControl[2] &= ~TRIG_MASK; \ | 1042 | (ChP)->RxControl[2] &= ~TRIG_MASK; \ |
1052 | (ChP)->RxControl[2] |= LEVEL; \ | 1043 | (ChP)->RxControl[2] |= LEVEL; \ |
1053 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->RxControl[0]); \ | 1044 | out32((ChP)->IndexAddr,(ChP)->RxControl); \ |
1054 | } while (0) | 1045 | } while (0) |
1055 | 1046 | ||
1056 | /*************************************************************************** | 1047 | /*************************************************************************** |
@@ -1062,7 +1053,7 @@ Call: sSetStop1(ChP) | |||
1062 | #define sSetStop1(ChP) \ | 1053 | #define sSetStop1(ChP) \ |
1063 | do { \ | 1054 | do { \ |
1064 | (ChP)->TxControl[2] &= ~STOP2; \ | 1055 | (ChP)->TxControl[2] &= ~STOP2; \ |
1065 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 1056 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
1066 | } while (0) | 1057 | } while (0) |
1067 | 1058 | ||
1068 | /*************************************************************************** | 1059 | /*************************************************************************** |
@@ -1074,7 +1065,7 @@ Call: sSetStop2(ChP) | |||
1074 | #define sSetStop2(ChP) \ | 1065 | #define sSetStop2(ChP) \ |
1075 | do { \ | 1066 | do { \ |
1076 | (ChP)->TxControl[2] |= STOP2; \ | 1067 | (ChP)->TxControl[2] |= STOP2; \ |
1077 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->TxControl[0]); \ | 1068 | out32((ChP)->IndexAddr,(ChP)->TxControl); \ |
1078 | } while (0) | 1069 | } while (0) |
1079 | 1070 | ||
1080 | /*************************************************************************** | 1071 | /*************************************************************************** |
@@ -1087,7 +1078,7 @@ Call: sSetTxXOFFChar(ChP,Ch) | |||
1087 | #define sSetTxXOFFChar(ChP,CH) \ | 1078 | #define sSetTxXOFFChar(ChP,CH) \ |
1088 | do { \ | 1079 | do { \ |
1089 | (ChP)->R[0x07] = (CH); \ | 1080 | (ChP)->R[0x07] = (CH); \ |
1090 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x04]); \ | 1081 | out32((ChP)->IndexAddr,&(ChP)->R[0x04]); \ |
1091 | } while (0) | 1082 | } while (0) |
1092 | 1083 | ||
1093 | /*************************************************************************** | 1084 | /*************************************************************************** |
@@ -1100,7 +1091,7 @@ Call: sSetTxXONChar(ChP,Ch) | |||
1100 | #define sSetTxXONChar(ChP,CH) \ | 1091 | #define sSetTxXONChar(ChP,CH) \ |
1101 | do { \ | 1092 | do { \ |
1102 | (ChP)->R[0x0b] = (CH); \ | 1093 | (ChP)->R[0x0b] = (CH); \ |
1103 | sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0x08]); \ | 1094 | out32((ChP)->IndexAddr,&(ChP)->R[0x08]); \ |
1104 | } while (0) | 1095 | } while (0) |
1105 | 1096 | ||
1106 | /*************************************************************************** | 1097 | /*************************************************************************** |
@@ -1113,7 +1104,7 @@ Comments: This function is used to start a Rx processor after it was | |||
1113 | will restart both the Rx processor and software input flow control. | 1104 | will restart both the Rx processor and software input flow control. |
1114 | 1105 | ||
1115 | */ | 1106 | */ |
1116 | #define sStartRxProcessor(ChP) sOutDW((ChP)->IndexAddr,*(DWord_t *)&(ChP)->R[0]) | 1107 | #define sStartRxProcessor(ChP) out32((ChP)->IndexAddr,&(ChP)->R[0]) |
1117 | 1108 | ||
1118 | /*************************************************************************** | 1109 | /*************************************************************************** |
1119 | Function: sWriteTxByte | 1110 | Function: sWriteTxByte |
diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index ad2f938597e2..72692309398a 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c | |||
@@ -123,6 +123,11 @@ static dma_addr_t get_ndar(struct fsl_dma_chan *fsl_chan) | |||
123 | return DMA_IN(fsl_chan, &fsl_chan->reg_base->ndar, 64); | 123 | return DMA_IN(fsl_chan, &fsl_chan->reg_base->ndar, 64); |
124 | } | 124 | } |
125 | 125 | ||
126 | static u32 get_bcr(struct fsl_dma_chan *fsl_chan) | ||
127 | { | ||
128 | return DMA_IN(fsl_chan, &fsl_chan->reg_base->bcr, 32); | ||
129 | } | ||
130 | |||
126 | static int dma_is_idle(struct fsl_dma_chan *fsl_chan) | 131 | static int dma_is_idle(struct fsl_dma_chan *fsl_chan) |
127 | { | 132 | { |
128 | u32 sr = get_sr(fsl_chan); | 133 | u32 sr = get_sr(fsl_chan); |
@@ -426,6 +431,9 @@ fsl_dma_prep_interrupt(struct dma_chan *chan) | |||
426 | new->async_tx.cookie = -EBUSY; | 431 | new->async_tx.cookie = -EBUSY; |
427 | new->async_tx.ack = 0; | 432 | new->async_tx.ack = 0; |
428 | 433 | ||
434 | /* Insert the link descriptor to the LD ring */ | ||
435 | list_add_tail(&new->node, &new->async_tx.tx_list); | ||
436 | |||
429 | /* Set End-of-link to the last link descriptor of new list*/ | 437 | /* Set End-of-link to the last link descriptor of new list*/ |
430 | set_ld_eol(fsl_chan, new); | 438 | set_ld_eol(fsl_chan, new); |
431 | 439 | ||
@@ -701,6 +709,23 @@ static irqreturn_t fsl_dma_chan_do_interrupt(int irq, void *data) | |||
701 | if (stat & FSL_DMA_SR_TE) | 709 | if (stat & FSL_DMA_SR_TE) |
702 | dev_err(fsl_chan->dev, "Transfer Error!\n"); | 710 | dev_err(fsl_chan->dev, "Transfer Error!\n"); |
703 | 711 | ||
712 | /* Programming Error | ||
713 | * The DMA_INTERRUPT async_tx is a NULL transfer, which will | ||
714 | * triger a PE interrupt. | ||
715 | */ | ||
716 | if (stat & FSL_DMA_SR_PE) { | ||
717 | dev_dbg(fsl_chan->dev, "event: Programming Error INT\n"); | ||
718 | if (get_bcr(fsl_chan) == 0) { | ||
719 | /* BCR register is 0, this is a DMA_INTERRUPT async_tx. | ||
720 | * Now, update the completed cookie, and continue the | ||
721 | * next uncompleted transfer. | ||
722 | */ | ||
723 | fsl_dma_update_completed_cookie(fsl_chan); | ||
724 | fsl_chan_xfer_ld_queue(fsl_chan); | ||
725 | } | ||
726 | stat &= ~FSL_DMA_SR_PE; | ||
727 | } | ||
728 | |||
704 | /* If the link descriptor segment transfer finishes, | 729 | /* If the link descriptor segment transfer finishes, |
705 | * we will recycle the used descriptor. | 730 | * we will recycle the used descriptor. |
706 | */ | 731 | */ |
@@ -841,6 +866,11 @@ static int fsl_dma_self_test(struct fsl_dma_chan *fsl_chan) | |||
841 | tx3 = fsl_dma_prep_memcpy(chan, dma_dest, dma_src, test_size / 4, 0); | 866 | tx3 = fsl_dma_prep_memcpy(chan, dma_dest, dma_src, test_size / 4, 0); |
842 | async_tx_ack(tx3); | 867 | async_tx_ack(tx3); |
843 | 868 | ||
869 | /* Interrupt tx test */ | ||
870 | tx1 = fsl_dma_prep_interrupt(chan); | ||
871 | async_tx_ack(tx1); | ||
872 | cookie = fsl_dma_tx_submit(tx1); | ||
873 | |||
844 | /* Test exchanging the prepared tx sort */ | 874 | /* Test exchanging the prepared tx sort */ |
845 | cookie = fsl_dma_tx_submit(tx3); | 875 | cookie = fsl_dma_tx_submit(tx3); |
846 | cookie = fsl_dma_tx_submit(tx2); | 876 | cookie = fsl_dma_tx_submit(tx2); |
diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h index ba78c42121ba..fddd6aee2a63 100644 --- a/drivers/dma/fsldma.h +++ b/drivers/dma/fsldma.h | |||
@@ -40,6 +40,7 @@ | |||
40 | #define FSL_DMA_MR_EOTIE 0x00000080 | 40 | #define FSL_DMA_MR_EOTIE 0x00000080 |
41 | 41 | ||
42 | #define FSL_DMA_SR_CH 0x00000020 | 42 | #define FSL_DMA_SR_CH 0x00000020 |
43 | #define FSL_DMA_SR_PE 0x00000010 | ||
43 | #define FSL_DMA_SR_CB 0x00000004 | 44 | #define FSL_DMA_SR_CB 0x00000004 |
44 | #define FSL_DMA_SR_TE 0x00000080 | 45 | #define FSL_DMA_SR_TE 0x00000080 |
45 | #define FSL_DMA_SR_EOSI 0x00000002 | 46 | #define FSL_DMA_SR_EOSI 0x00000002 |
diff --git a/drivers/firewire/fw-transaction.c b/drivers/firewire/fw-transaction.c index 99529e59a0b1..e6f1bda38940 100644 --- a/drivers/firewire/fw-transaction.c +++ b/drivers/firewire/fw-transaction.c | |||
@@ -736,6 +736,12 @@ fw_core_handle_response(struct fw_card *card, struct fw_packet *p) | |||
736 | break; | 736 | break; |
737 | } | 737 | } |
738 | 738 | ||
739 | /* | ||
740 | * The response handler may be executed while the request handler | ||
741 | * is still pending. Cancel the request handler. | ||
742 | */ | ||
743 | card->driver->cancel_packet(card, &t->packet); | ||
744 | |||
739 | t->callback(card, rcode, data, data_length, t->callback_data); | 745 | t->callback(card, rcode, data, data_length, t->callback_data); |
740 | } | 746 | } |
741 | EXPORT_SYMBOL(fw_core_handle_response); | 747 | EXPORT_SYMBOL(fw_core_handle_response); |
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index d73a768e176e..f0b00ec1e47e 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c | |||
@@ -968,7 +968,7 @@ int hid_input_report(struct hid_device *hid, int type, u8 *data, int size, int i | |||
968 | size--; | 968 | size--; |
969 | } | 969 | } |
970 | 970 | ||
971 | /* dump the report descriptor */ | 971 | /* dump the report */ |
972 | dbg_hid("report %d (size %u) = ", n, size); | 972 | dbg_hid("report %d (size %u) = ", n, size); |
973 | for (i = 0; i < size; i++) | 973 | for (i = 0; i < size; i++) |
974 | dbg_hid_line(" %02x", data[i]); | 974 | dbg_hid_line(" %02x", data[i]); |
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c index 5a38fb27d69f..c3eb3f13e2ca 100644 --- a/drivers/hid/hid-input.c +++ b/drivers/hid/hid-input.c | |||
@@ -98,18 +98,16 @@ struct hidinput_key_translation { | |||
98 | 98 | ||
99 | static struct hidinput_key_translation apple_fn_keys[] = { | 99 | static struct hidinput_key_translation apple_fn_keys[] = { |
100 | { KEY_BACKSPACE, KEY_DELETE }, | 100 | { KEY_BACKSPACE, KEY_DELETE }, |
101 | { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, | 101 | { KEY_F1, KEY_BRIGHTNESSDOWN, APPLE_FLAG_FKEY }, |
102 | { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY }, | 102 | { KEY_F2, KEY_BRIGHTNESSUP, APPLE_FLAG_FKEY }, |
103 | { KEY_F3, KEY_CYCLEWINDOWS, APPLE_FLAG_FKEY }, /* Exposé */ | 103 | { KEY_F3, KEY_FN_F5, APPLE_FLAG_FKEY }, /* Exposé */ |
104 | { KEY_F4, KEY_FN_F4, APPLE_FLAG_FKEY }, /* Dashboard */ | 104 | { KEY_F4, KEY_FN_F4, APPLE_FLAG_FKEY }, /* Dashboard */ |
105 | { KEY_F5, KEY_FN_F5 }, | 105 | { KEY_F7, KEY_PREVIOUSSONG, APPLE_FLAG_FKEY }, |
106 | { KEY_F6, KEY_FN_F6 }, | 106 | { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY }, |
107 | { KEY_F7, KEY_BACK, APPLE_FLAG_FKEY }, | 107 | { KEY_F9, KEY_NEXTSONG, APPLE_FLAG_FKEY }, |
108 | { KEY_F8, KEY_PLAYPAUSE, APPLE_FLAG_FKEY }, | 108 | { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY }, |
109 | { KEY_F9, KEY_FORWARD, APPLE_FLAG_FKEY }, | 109 | { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY }, |
110 | { KEY_F10, KEY_MUTE, APPLE_FLAG_FKEY }, | 110 | { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY }, |
111 | { KEY_F11, KEY_VOLUMEDOWN, APPLE_FLAG_FKEY }, | ||
112 | { KEY_F12, KEY_VOLUMEUP, APPLE_FLAG_FKEY }, | ||
113 | { KEY_UP, KEY_PAGEUP }, | 111 | { KEY_UP, KEY_PAGEUP }, |
114 | { KEY_DOWN, KEY_PAGEDOWN }, | 112 | { KEY_DOWN, KEY_PAGEDOWN }, |
115 | { KEY_LEFT, KEY_HOME }, | 113 | { KEY_LEFT, KEY_HOME }, |
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c index b38e559b7a46..d95979f0e028 100644 --- a/drivers/hid/usbhid/hid-core.c +++ b/drivers/hid/usbhid/hid-core.c | |||
@@ -278,7 +278,7 @@ static int hid_submit_ctrl(struct hid_device *hid) | |||
278 | usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0); | 278 | usbhid->urbctrl->pipe = usb_rcvctrlpipe(hid_to_usb_dev(hid), 0); |
279 | maxpacket = usb_maxpacket(hid_to_usb_dev(hid), usbhid->urbctrl->pipe, 0); | 279 | maxpacket = usb_maxpacket(hid_to_usb_dev(hid), usbhid->urbctrl->pipe, 0); |
280 | if (maxpacket > 0) { | 280 | if (maxpacket > 0) { |
281 | padlen = (len + maxpacket - 1) / maxpacket; | 281 | padlen = DIV_ROUND_UP(len, maxpacket); |
282 | padlen *= maxpacket; | 282 | padlen *= maxpacket; |
283 | if (padlen > usbhid->bufsize) | 283 | if (padlen > usbhid->bufsize) |
284 | padlen = usbhid->bufsize; | 284 | padlen = usbhid->bufsize; |
diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c index e6d05f6b1c1c..e29a057cbea2 100644 --- a/drivers/hid/usbhid/hid-quirks.c +++ b/drivers/hid/usbhid/hid-quirks.c | |||
@@ -345,6 +345,9 @@ | |||
345 | #define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 | 345 | #define USB_VENDOR_ID_NATIONAL_SEMICONDUCTOR 0x0400 |
346 | #define USB_DEVICE_ID_N_S_HARMONY 0xc359 | 346 | #define USB_DEVICE_ID_N_S_HARMONY 0xc359 |
347 | 347 | ||
348 | #define USB_VENDOR_ID_NATSU 0x08b7 | ||
349 | #define USB_DEVICE_ID_NATSU_GAMEPAD 0x0001 | ||
350 | |||
348 | #define USB_VENDOR_ID_NEC 0x073e | 351 | #define USB_VENDOR_ID_NEC 0x073e |
349 | #define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301 | 352 | #define USB_DEVICE_ID_NEC_USB_GAME_PAD 0x0301 |
350 | 353 | ||
@@ -426,6 +429,7 @@ static const struct hid_blacklist { | |||
426 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, | 429 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_DRIVING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, |
427 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, | 430 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FLYING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, |
428 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, | 431 | { USB_VENDOR_ID_HAPP, USB_DEVICE_ID_UGCI_FIGHTING, HID_QUIRK_BADPAD | HID_QUIRK_MULTI_INPUT }, |
432 | { USB_VENDOR_ID_NATSU, USB_DEVICE_ID_NATSU_GAMEPAD, HID_QUIRK_BADPAD }, | ||
429 | { USB_VENDOR_ID_NEC, USB_DEVICE_ID_NEC_USB_GAME_PAD, HID_QUIRK_BADPAD }, | 433 | { USB_VENDOR_ID_NEC, USB_DEVICE_ID_NEC_USB_GAME_PAD, HID_QUIRK_BADPAD }, |
430 | { USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD, HID_QUIRK_BADPAD }, | 434 | { USB_VENDOR_ID_SAITEK, USB_DEVICE_ID_SAITEK_RUMBLEPAD, HID_QUIRK_BADPAD }, |
431 | { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD }, | 435 | { USB_VENDOR_ID_TOPMAX, USB_DEVICE_ID_TOPMAX_COBRAPAD, HID_QUIRK_BADPAD }, |
@@ -624,7 +628,7 @@ static const struct hid_blacklist { | |||
624 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, | 628 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, |
625 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_JIS, HID_QUIRK_APPLE_HAS_FN }, | 629 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_JIS, HID_QUIRK_APPLE_HAS_FN }, |
626 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, | 630 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ANSI, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, |
627 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE | HID_QUIRK_APPLE_ISO_KEYBOARD }, | 631 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, |
628 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, | 632 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER4_HF_JIS, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_IGNORE_MOUSE }, |
629 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI, HID_QUIRK_APPLE_HAS_FN }, | 633 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ANSI, HID_QUIRK_APPLE_HAS_FN }, |
630 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, | 634 | { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_ISO, HID_QUIRK_APPLE_HAS_FN | HID_QUIRK_APPLE_ISO_KEYBOARD }, |
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig index 368879ff5d8c..4dc76bc45c9d 100644 --- a/drivers/hwmon/Kconfig +++ b/drivers/hwmon/Kconfig | |||
@@ -337,8 +337,9 @@ config SENSORS_IBMPEX | |||
337 | help | 337 | help |
338 | If you say yes here you get support for the temperature and | 338 | If you say yes here you get support for the temperature and |
339 | power sensors in various IBM System X servers that support | 339 | power sensors in various IBM System X servers that support |
340 | PowerExecutive. So far this includes the x3550, x3650, x3655, | 340 | PowerExecutive. So far this includes the x3350, x3550, x3650, |
341 | x3755, and certain HS20 blades. | 341 | x3655, and x3755; the x3800, x3850, and x3950 models that have |
342 | PCI Express; and some of the HS2x, LS2x, and QS2x blades. | ||
342 | 343 | ||
343 | This driver can also be built as a module. If so, the module | 344 | This driver can also be built as a module. If so, the module |
344 | will be called ibmpex. | 345 | will be called ibmpex. |
diff --git a/drivers/hwmon/ibmpex.c b/drivers/hwmon/ibmpex.c index 9c9cdb0685e4..4e9b19c6732f 100644 --- a/drivers/hwmon/ibmpex.c +++ b/drivers/hwmon/ibmpex.c | |||
@@ -327,10 +327,14 @@ static int is_temp_sensor(const char *sensor_id, int len) | |||
327 | return 0; | 327 | return 0; |
328 | } | 328 | } |
329 | 329 | ||
330 | static int power_sensor_multiplier(const char *sensor_id, int len) | 330 | static int power_sensor_multiplier(struct ibmpex_bmc_data *data, |
331 | const char *sensor_id, int len) | ||
331 | { | 332 | { |
332 | int i; | 333 | int i; |
333 | 334 | ||
335 | if (data->sensor_major == 2) | ||
336 | return 1000000; | ||
337 | |||
334 | for (i = PEX_SENSOR_TYPE_LEN; i < len - 1; i++) | 338 | for (i = PEX_SENSOR_TYPE_LEN; i < len - 1; i++) |
335 | if (!memcmp(&sensor_id[i], watt_sensor_sig, PEX_MULT_LEN)) | 339 | if (!memcmp(&sensor_id[i], watt_sensor_sig, PEX_MULT_LEN)) |
336 | return 1000000; | 340 | return 1000000; |
@@ -398,14 +402,15 @@ static int ibmpex_find_sensors(struct ibmpex_bmc_data *data) | |||
398 | num_power++; | 402 | num_power++; |
399 | sensor_counter = num_power; | 403 | sensor_counter = num_power; |
400 | data->sensors[i].multiplier = | 404 | data->sensors[i].multiplier = |
401 | power_sensor_multiplier(data->rx_msg_data, | 405 | power_sensor_multiplier(data, |
402 | data->rx_msg_len); | 406 | data->rx_msg_data, |
407 | data->rx_msg_len); | ||
403 | } else if (is_temp_sensor(data->rx_msg_data, | 408 | } else if (is_temp_sensor(data->rx_msg_data, |
404 | data->rx_msg_len)) { | 409 | data->rx_msg_len)) { |
405 | sensor_type = TEMP_SENSOR; | 410 | sensor_type = TEMP_SENSOR; |
406 | num_temp++; | 411 | num_temp++; |
407 | sensor_counter = num_temp; | 412 | sensor_counter = num_temp; |
408 | data->sensors[i].multiplier = 1; | 413 | data->sensors[i].multiplier = 1000; |
409 | } else | 414 | } else |
410 | continue; | 415 | continue; |
411 | 416 | ||
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c index 0518a2e948cf..4c86a8d84b4c 100644 --- a/drivers/ide/ide-taskfile.c +++ b/drivers/ide/ide-taskfile.c | |||
@@ -423,6 +423,25 @@ void task_end_request(ide_drive_t *drive, struct request *rq, u8 stat) | |||
423 | } | 423 | } |
424 | 424 | ||
425 | /* | 425 | /* |
426 | * We got an interrupt on a task_in case, but no errors and no DRQ. | ||
427 | * | ||
428 | * It might be a spurious irq (shared irq), but it might be a | ||
429 | * command that had no output. | ||
430 | */ | ||
431 | static ide_startstop_t task_in_unexpected(ide_drive_t *drive, struct request *rq, u8 stat) | ||
432 | { | ||
433 | /* Command all done? */ | ||
434 | if (OK_STAT(stat, READY_STAT, BUSY_STAT)) { | ||
435 | task_end_request(drive, rq, stat); | ||
436 | return ide_stopped; | ||
437 | } | ||
438 | |||
439 | /* Assume it was a spurious irq */ | ||
440 | ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL); | ||
441 | return ide_started; | ||
442 | } | ||
443 | |||
444 | /* | ||
426 | * Handler for command with PIO data-in phase (Read/Read Multiple). | 445 | * Handler for command with PIO data-in phase (Read/Read Multiple). |
427 | */ | 446 | */ |
428 | static ide_startstop_t task_in_intr(ide_drive_t *drive) | 447 | static ide_startstop_t task_in_intr(ide_drive_t *drive) |
@@ -431,18 +450,17 @@ static ide_startstop_t task_in_intr(ide_drive_t *drive) | |||
431 | struct request *rq = HWGROUP(drive)->rq; | 450 | struct request *rq = HWGROUP(drive)->rq; |
432 | u8 stat = ide_read_status(drive); | 451 | u8 stat = ide_read_status(drive); |
433 | 452 | ||
434 | /* new way for dealing with premature shared PCI interrupts */ | 453 | /* Error? */ |
435 | if (!OK_STAT(stat, DRQ_STAT, BAD_R_STAT)) { | 454 | if (stat & ERR_STAT) |
436 | if (stat & (ERR_STAT | DRQ_STAT)) | 455 | return task_error(drive, rq, __FUNCTION__, stat); |
437 | return task_error(drive, rq, __FUNCTION__, stat); | 456 | |
438 | /* No data yet, so wait for another IRQ. */ | 457 | /* Didn't want any data? Odd. */ |
439 | ide_set_handler(drive, &task_in_intr, WAIT_WORSTCASE, NULL); | 458 | if (!(stat & DRQ_STAT)) |
440 | return ide_started; | 459 | return task_in_unexpected(drive, rq, stat); |
441 | } | ||
442 | 460 | ||
443 | ide_pio_datablock(drive, rq, 0); | 461 | ide_pio_datablock(drive, rq, 0); |
444 | 462 | ||
445 | /* If it was the last datablock check status and finish transfer. */ | 463 | /* Are we done? Check status and finish transfer. */ |
446 | if (!hwif->nleft) { | 464 | if (!hwif->nleft) { |
447 | stat = wait_drive_not_busy(drive); | 465 | stat = wait_drive_not_busy(drive); |
448 | if (!OK_STAT(stat, 0, BAD_STAT)) | 466 | if (!OK_STAT(stat, 0, BAD_STAT)) |
diff --git a/drivers/input/misc/cobalt_btns.c b/drivers/input/misc/cobalt_btns.c index 4833b1a82623..5511ef006a66 100644 --- a/drivers/input/misc/cobalt_btns.c +++ b/drivers/input/misc/cobalt_btns.c | |||
@@ -1,7 +1,7 @@ | |||
1 | /* | 1 | /* |
2 | * Cobalt button interface driver. | 2 | * Cobalt button interface driver. |
3 | * | 3 | * |
4 | * Copyright (C) 2007 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> | 4 | * Copyright (C) 2007-2008 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> |
5 | * | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | 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 | 7 | * it under the terms of the GNU General Public License as published by |
@@ -15,7 +15,7 @@ | |||
15 | * | 15 | * |
16 | * You should have received a copy of the GNU General Public License | 16 | * You should have received a copy of the GNU General Public License |
17 | * along with this program; if not, write to the Free Software | 17 | * along with this program; if not, write to the Free Software |
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | 18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
19 | */ | 19 | */ |
20 | #include <linux/init.h> | 20 | #include <linux/init.h> |
21 | #include <linux/input-polldev.h> | 21 | #include <linux/input-polldev.h> |
@@ -55,7 +55,7 @@ static void handle_buttons(struct input_polled_dev *dev) | |||
55 | status = ~readl(bdev->reg) >> 24; | 55 | status = ~readl(bdev->reg) >> 24; |
56 | 56 | ||
57 | for (i = 0; i < ARRAY_SIZE(bdev->keymap); i++) { | 57 | for (i = 0; i < ARRAY_SIZE(bdev->keymap); i++) { |
58 | if (status & (1UL << i)) { | 58 | if (status & (1U << i)) { |
59 | if (++bdev->count[i] == BUTTONS_COUNT_THRESHOLD) { | 59 | if (++bdev->count[i] == BUTTONS_COUNT_THRESHOLD) { |
60 | input_event(input, EV_MSC, MSC_SCAN, i); | 60 | input_event(input, EV_MSC, MSC_SCAN, i); |
61 | input_report_key(input, bdev->keymap[i], 1); | 61 | input_report_key(input, bdev->keymap[i], 1); |
@@ -97,16 +97,16 @@ static int __devinit cobalt_buttons_probe(struct platform_device *pdev) | |||
97 | input->name = "Cobalt buttons"; | 97 | input->name = "Cobalt buttons"; |
98 | input->phys = "cobalt/input0"; | 98 | input->phys = "cobalt/input0"; |
99 | input->id.bustype = BUS_HOST; | 99 | input->id.bustype = BUS_HOST; |
100 | input->cdev.dev = &pdev->dev; | 100 | input->dev.parent = &pdev->dev; |
101 | 101 | ||
102 | input->keycode = pdev->keymap; | 102 | input->keycode = bdev->keymap; |
103 | input->keycodemax = ARRAY_SIZE(pdev->keymap); | 103 | input->keycodemax = ARRAY_SIZE(bdev->keymap); |
104 | input->keycodesize = sizeof(unsigned short); | 104 | input->keycodesize = sizeof(unsigned short); |
105 | 105 | ||
106 | input_set_capability(input, EV_MSC, MSC_SCAN); | 106 | input_set_capability(input, EV_MSC, MSC_SCAN); |
107 | __set_bit(EV_KEY, input->evbit); | 107 | __set_bit(EV_KEY, input->evbit); |
108 | for (i = 0; i < ARRAY_SIZE(buttons_map); i++) | 108 | for (i = 0; i < ARRAY_SIZE(cobalt_map); i++) |
109 | __set_bit(input->keycode[i], input->keybit); | 109 | __set_bit(bdev->keymap[i], input->keybit); |
110 | __clear_bit(KEY_RESERVED, input->keybit); | 110 | __clear_bit(KEY_RESERVED, input->keybit); |
111 | 111 | ||
112 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); | 112 | res = platform_get_resource(pdev, IORESOURCE_MEM, 0); |
diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c index b346a3b418ea..385e32bcf6a6 100644 --- a/drivers/input/mouse/alps.c +++ b/drivers/input/mouse/alps.c | |||
@@ -116,8 +116,8 @@ static void alps_process_packet(struct psmouse *psmouse) | |||
116 | } | 116 | } |
117 | 117 | ||
118 | if (priv->i->flags & ALPS_FW_BK_1) { | 118 | if (priv->i->flags & ALPS_FW_BK_1) { |
119 | back = packet[2] & 4; | 119 | back = packet[0] & 0x10; |
120 | forward = packet[0] & 0x10; | 120 | forward = packet[2] & 4; |
121 | } | 121 | } |
122 | 122 | ||
123 | if (priv->i->flags & ALPS_FW_BK_2) { | 123 | if (priv->i->flags & ALPS_FW_BK_2) { |
@@ -483,6 +483,7 @@ int alps_init(struct psmouse *psmouse) | |||
483 | dev2->id.vendor = 0x0002; | 483 | dev2->id.vendor = 0x0002; |
484 | dev2->id.product = PSMOUSE_ALPS; | 484 | dev2->id.product = PSMOUSE_ALPS; |
485 | dev2->id.version = 0x0000; | 485 | dev2->id.version = 0x0000; |
486 | dev2->dev.parent = &psmouse->ps2dev.serio->dev; | ||
486 | 487 | ||
487 | dev2->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL); | 488 | dev2->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL); |
488 | dev2->relbit[BIT_WORD(REL_X)] |= BIT_MASK(REL_X) | BIT_MASK(REL_Y); | 489 | dev2->relbit[BIT_WORD(REL_X)] |= BIT_MASK(REL_X) | BIT_MASK(REL_Y); |
diff --git a/drivers/input/serio/i8042-snirm.h b/drivers/input/serio/i8042-snirm.h new file mode 100644 index 000000000000..409a9341143d --- /dev/null +++ b/drivers/input/serio/i8042-snirm.h | |||
@@ -0,0 +1,75 @@ | |||
1 | #ifndef _I8042_SNIRM_H | ||
2 | #define _I8042_SNIRM_H | ||
3 | |||
4 | #include <asm/sni.h> | ||
5 | |||
6 | /* | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | /* | ||
13 | * Names. | ||
14 | */ | ||
15 | |||
16 | #define I8042_KBD_PHYS_DESC "onboard/serio0" | ||
17 | #define I8042_AUX_PHYS_DESC "onboard/serio1" | ||
18 | #define I8042_MUX_PHYS_DESC "onboard/serio%d" | ||
19 | |||
20 | /* | ||
21 | * IRQs. | ||
22 | */ | ||
23 | static int i8042_kbd_irq; | ||
24 | static int i8042_aux_irq; | ||
25 | #define I8042_KBD_IRQ i8042_kbd_irq | ||
26 | #define I8042_AUX_IRQ i8042_aux_irq | ||
27 | |||
28 | static void __iomem *kbd_iobase; | ||
29 | |||
30 | #define I8042_COMMAND_REG (kbd_iobase + 0x64UL) | ||
31 | #define I8042_DATA_REG (kbd_iobase + 0x60UL) | ||
32 | |||
33 | static inline int i8042_read_data(void) | ||
34 | { | ||
35 | return readb(kbd_iobase + 0x60UL); | ||
36 | } | ||
37 | |||
38 | static inline int i8042_read_status(void) | ||
39 | { | ||
40 | return readb(kbd_iobase + 0x64UL); | ||
41 | } | ||
42 | |||
43 | static inline void i8042_write_data(int val) | ||
44 | { | ||
45 | writeb(val, kbd_iobase + 0x60UL); | ||
46 | } | ||
47 | |||
48 | static inline void i8042_write_command(int val) | ||
49 | { | ||
50 | writeb(val, kbd_iobase + 0x64UL); | ||
51 | } | ||
52 | static inline int i8042_platform_init(void) | ||
53 | { | ||
54 | /* RM200 is strange ... */ | ||
55 | if (sni_brd_type == SNI_BRD_RM200) { | ||
56 | kbd_iobase = ioremap(0x16000000, 4); | ||
57 | i8042_kbd_irq = 33; | ||
58 | i8042_aux_irq = 44; | ||
59 | } else { | ||
60 | kbd_iobase = ioremap(0x14000000, 4); | ||
61 | i8042_kbd_irq = 1; | ||
62 | i8042_aux_irq = 12; | ||
63 | } | ||
64 | if (!kbd_iobase) | ||
65 | return -ENOMEM; | ||
66 | |||
67 | return 0; | ||
68 | } | ||
69 | |||
70 | static inline void i8042_platform_exit(void) | ||
71 | { | ||
72 | |||
73 | } | ||
74 | |||
75 | #endif /* _I8042_SNIRM_H */ | ||
diff --git a/drivers/input/serio/i8042-x86ia64io.h b/drivers/input/serio/i8042-x86ia64io.h index 662e84482c26..60931aceb828 100644 --- a/drivers/input/serio/i8042-x86ia64io.h +++ b/drivers/input/serio/i8042-x86ia64io.h | |||
@@ -277,6 +277,13 @@ static struct dmi_system_id __initdata i8042_dmi_nomux_table[] = { | |||
277 | DMI_MATCH(DMI_PRODUCT_NAME, "M636/A737 platform"), | 277 | DMI_MATCH(DMI_PRODUCT_NAME, "M636/A737 platform"), |
278 | }, | 278 | }, |
279 | }, | 279 | }, |
280 | { | ||
281 | .ident = "Lenovo 3000 n100", | ||
282 | .matches = { | ||
283 | DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), | ||
284 | DMI_MATCH(DMI_PRODUCT_VERSION, "3000 N100"), | ||
285 | }, | ||
286 | }, | ||
280 | { } | 287 | { } |
281 | }; | 288 | }; |
282 | 289 | ||
diff --git a/drivers/input/serio/i8042.c b/drivers/input/serio/i8042.c index 2763394869d2..65a74cfc187b 100644 --- a/drivers/input/serio/i8042.c +++ b/drivers/input/serio/i8042.c | |||
@@ -1151,7 +1151,6 @@ static int __devinit i8042_setup_kbd(void) | |||
1151 | static int __devinit i8042_probe(struct platform_device *dev) | 1151 | static int __devinit i8042_probe(struct platform_device *dev) |
1152 | { | 1152 | { |
1153 | int error; | 1153 | int error; |
1154 | char param; | ||
1155 | 1154 | ||
1156 | error = i8042_controller_selftest(); | 1155 | error = i8042_controller_selftest(); |
1157 | if (error) | 1156 | if (error) |
@@ -1174,7 +1173,7 @@ static int __devinit i8042_probe(struct platform_device *dev) | |||
1174 | } | 1173 | } |
1175 | #ifdef CONFIG_X86 | 1174 | #ifdef CONFIG_X86 |
1176 | if (i8042_dritek) { | 1175 | if (i8042_dritek) { |
1177 | param = 0x90; | 1176 | char param = 0x90; |
1178 | error = i8042_command(¶m, 0x1059); | 1177 | error = i8042_command(¶m, 0x1059); |
1179 | if (error) | 1178 | if (error) |
1180 | goto out_fail; | 1179 | goto out_fail; |
diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index c972e5d03a3f..cbc1beb66574 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h | |||
@@ -18,6 +18,8 @@ | |||
18 | #include "i8042-jazzio.h" | 18 | #include "i8042-jazzio.h" |
19 | #elif defined(CONFIG_SGI_HAS_I8042) | 19 | #elif defined(CONFIG_SGI_HAS_I8042) |
20 | #include "i8042-ip22io.h" | 20 | #include "i8042-ip22io.h" |
21 | #elif defined(CONFIG_SNI_RM) | ||
22 | #include "i8042-snirm.h" | ||
21 | #elif defined(CONFIG_PPC) | 23 | #elif defined(CONFIG_PPC) |
22 | #include "i8042-ppcio.h" | 24 | #include "i8042-ppcio.h" |
23 | #elif defined(CONFIG_SPARC) | 25 | #elif defined(CONFIG_SPARC) |
diff --git a/drivers/input/tablet/wacom.h b/drivers/input/tablet/wacom.h index 6542edb6f76e..acf9830698cb 100644 --- a/drivers/input/tablet/wacom.h +++ b/drivers/input/tablet/wacom.h | |||
@@ -11,7 +11,7 @@ | |||
11 | * Copyright (c) 2000 Daniel Egger <egger@suse.de> | 11 | * Copyright (c) 2000 Daniel Egger <egger@suse.de> |
12 | * Copyright (c) 2001 Frederic Lepied <flepied@mandrakesoft.com> | 12 | * Copyright (c) 2001 Frederic Lepied <flepied@mandrakesoft.com> |
13 | * Copyright (c) 2004 Panagiotis Issaris <panagiotis.issaris@mech.kuleuven.ac.be> | 13 | * Copyright (c) 2004 Panagiotis Issaris <panagiotis.issaris@mech.kuleuven.ac.be> |
14 | * Copyright (c) 2002-2007 Ping Cheng <pingc@wacom.com> | 14 | * Copyright (c) 2002-2008 Ping Cheng <pingc@wacom.com> |
15 | * | 15 | * |
16 | * ChangeLog: | 16 | * ChangeLog: |
17 | * v0.1 (vp) - Initial release | 17 | * v0.1 (vp) - Initial release |
@@ -65,6 +65,7 @@ | |||
65 | * - and wacom_wac.c deals with Wacom specific code | 65 | * - and wacom_wac.c deals with Wacom specific code |
66 | * - Support Intuos3 4x6 | 66 | * - Support Intuos3 4x6 |
67 | * v1.47 (pc) - Added support for Bamboo | 67 | * v1.47 (pc) - Added support for Bamboo |
68 | * v1.48 (pc) - Added support for Bamboo1, BambooFun, and Cintiq 12WX | ||
68 | */ | 69 | */ |
69 | 70 | ||
70 | /* | 71 | /* |
@@ -85,7 +86,7 @@ | |||
85 | /* | 86 | /* |
86 | * Version Information | 87 | * Version Information |
87 | */ | 88 | */ |
88 | #define DRIVER_VERSION "v1.47" | 89 | #define DRIVER_VERSION "v1.48" |
89 | #define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" | 90 | #define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" |
90 | #define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" | 91 | #define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" |
91 | #define DRIVER_LICENSE "GPL" | 92 | #define DRIVER_LICENSE "GPL" |
@@ -125,6 +126,7 @@ extern void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac | |||
125 | extern void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | 126 | extern void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac); |
126 | extern void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | 127 | extern void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac); |
127 | extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | 128 | extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac); |
129 | extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac); | ||
128 | extern __u16 wacom_le16_to_cpu(unsigned char *data); | 130 | extern __u16 wacom_le16_to_cpu(unsigned char *data); |
129 | extern __u16 wacom_be16_to_cpu(unsigned char *data); | 131 | extern __u16 wacom_be16_to_cpu(unsigned char *data); |
130 | extern struct wacom_features * get_wacom_feature(const struct usb_device_id *id); | 132 | extern struct wacom_features * get_wacom_feature(const struct usb_device_id *id); |
diff --git a/drivers/input/tablet/wacom_sys.c b/drivers/input/tablet/wacom_sys.c index d64b1ea136b3..41caaef8e2d7 100644 --- a/drivers/input/tablet/wacom_sys.c +++ b/drivers/input/tablet/wacom_sys.c | |||
@@ -171,6 +171,7 @@ void input_dev_i3s(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
171 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | | 171 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_0) | |
172 | BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3); | 172 | BIT_MASK(BTN_1) | BIT_MASK(BTN_2) | BIT_MASK(BTN_3); |
173 | input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0); | 173 | input_set_abs_params(input_dev, ABS_RX, 0, 4096, 0, 0); |
174 | input_set_abs_params(input_dev, ABS_Z, -900, 899, 0, 0); | ||
174 | } | 175 | } |
175 | 176 | ||
176 | void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 177 | void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
@@ -180,6 +181,11 @@ void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | |||
180 | input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0); | 181 | input_set_abs_params(input_dev, ABS_RY, 0, 4096, 0, 0); |
181 | } | 182 | } |
182 | 183 | ||
184 | void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | ||
185 | { | ||
186 | input_dev->keybit[BIT_WORD(BTN_LEFT)] |= BIT_MASK(BTN_8) | BIT_MASK(BTN_9); | ||
187 | } | ||
188 | |||
183 | void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) | 189 | void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) |
184 | { | 190 | { |
185 | input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL); | 191 | input_dev->evbit[0] |= BIT_MASK(EV_MSC) | BIT_MASK(EV_REL); |
diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c index fc03ba256f4c..ffe33842143f 100644 --- a/drivers/input/tablet/wacom_wac.c +++ b/drivers/input/tablet/wacom_wac.c | |||
@@ -163,7 +163,9 @@ static int wacom_graphire_irq(struct wacom_wac *wacom, void *wcombo) | |||
163 | } | 163 | } |
164 | 164 | ||
165 | id = STYLUS_DEVICE_ID; | 165 | id = STYLUS_DEVICE_ID; |
166 | if (data[1] & 0x80) { /* in prox */ | 166 | if ((data[1] & 0x80) && ((data[1] & 0x07) || data[2] || data[3] || data[4] |
167 | || data[5] || data[6] || (data[7] & 0x07))) { | ||
168 | /* in prox and not a pad data */ | ||
167 | 169 | ||
168 | switch ((data[1] >> 5) & 3) { | 170 | switch ((data[1] >> 5) & 3) { |
169 | 171 | ||
@@ -233,7 +235,6 @@ static int wacom_graphire_irq(struct wacom_wac *wacom, void *wcombo) | |||
233 | if (data[7] & 0xf8) { | 235 | if (data[7] & 0xf8) { |
234 | wacom_input_sync(wcombo); /* sync last event */ | 236 | wacom_input_sync(wcombo); /* sync last event */ |
235 | wacom->id[1] = 1; | 237 | wacom->id[1] = 1; |
236 | wacom->serial[1] = (data[7] & 0xf8); | ||
237 | wacom_report_key(wcombo, BTN_0, (data[7] & 0x40)); | 238 | wacom_report_key(wcombo, BTN_0, (data[7] & 0x40)); |
238 | wacom_report_key(wcombo, BTN_4, (data[7] & 0x80)); | 239 | wacom_report_key(wcombo, BTN_4, (data[7] & 0x80)); |
239 | rw = ((data[7] & 0x18) >> 3) - ((data[7] & 0x20) >> 3); | 240 | rw = ((data[7] & 0x18) >> 3) - ((data[7] & 0x20) >> 3); |
@@ -252,10 +253,9 @@ static int wacom_graphire_irq(struct wacom_wac *wacom, void *wcombo) | |||
252 | } | 253 | } |
253 | break; | 254 | break; |
254 | case WACOM_MO: | 255 | case WACOM_MO: |
255 | if ((data[7] & 0xf8) || (data[8] & 0x80)) { | 256 | if ((data[7] & 0xf8) || (data[8] & 0xff)) { |
256 | wacom_input_sync(wcombo); /* sync last event */ | 257 | wacom_input_sync(wcombo); /* sync last event */ |
257 | wacom->id[1] = 1; | 258 | wacom->id[1] = 1; |
258 | wacom->serial[1] = (data[7] & 0xf8); | ||
259 | wacom_report_key(wcombo, BTN_0, (data[7] & 0x08)); | 259 | wacom_report_key(wcombo, BTN_0, (data[7] & 0x08)); |
260 | wacom_report_key(wcombo, BTN_1, (data[7] & 0x20)); | 260 | wacom_report_key(wcombo, BTN_1, (data[7] & 0x20)); |
261 | wacom_report_key(wcombo, BTN_4, (data[7] & 0x10)); | 261 | wacom_report_key(wcombo, BTN_4, (data[7] & 0x10)); |
@@ -434,10 +434,12 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo) | |||
434 | wacom_report_key(wcombo, BTN_5, (data[6] & 0x02)); | 434 | wacom_report_key(wcombo, BTN_5, (data[6] & 0x02)); |
435 | wacom_report_key(wcombo, BTN_6, (data[6] & 0x04)); | 435 | wacom_report_key(wcombo, BTN_6, (data[6] & 0x04)); |
436 | wacom_report_key(wcombo, BTN_7, (data[6] & 0x08)); | 436 | wacom_report_key(wcombo, BTN_7, (data[6] & 0x08)); |
437 | wacom_report_key(wcombo, BTN_8, (data[5] & 0x10)); | ||
438 | wacom_report_key(wcombo, BTN_9, (data[6] & 0x10)); | ||
437 | wacom_report_abs(wcombo, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); | 439 | wacom_report_abs(wcombo, ABS_RX, ((data[1] & 0x1f) << 8) | data[2]); |
438 | wacom_report_abs(wcombo, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); | 440 | wacom_report_abs(wcombo, ABS_RY, ((data[3] & 0x1f) << 8) | data[4]); |
439 | 441 | ||
440 | if((data[5] & 0x0f) | (data[6] & 0x0f) | (data[1] & 0x1f) | | 442 | if ((data[5] & 0x1f) | (data[6] & 0x1f) | (data[1] & 0x1f) | |
441 | data[2] | (data[3] & 0x1f) | data[4]) | 443 | data[2] | (data[3] & 0x1f) | data[4]) |
442 | wacom_report_key(wcombo, wacom->tool[1], 1); | 444 | wacom_report_key(wcombo, wacom->tool[1], 1); |
443 | else | 445 | else |
@@ -481,13 +483,11 @@ static int wacom_intuos_irq(struct wacom_wac *wacom, void *wcombo) | |||
481 | if (data[1] & 0x02) { | 483 | if (data[1] & 0x02) { |
482 | /* Rotation packet */ | 484 | /* Rotation packet */ |
483 | if (wacom->features->type >= INTUOS3S) { | 485 | if (wacom->features->type >= INTUOS3S) { |
484 | /* I3 marker pen rotation reported as wheel | 486 | /* I3 marker pen rotation */ |
485 | * due to valuator limitation | ||
486 | */ | ||
487 | t = (data[6] << 3) | ((data[7] >> 5) & 7); | 487 | t = (data[6] << 3) | ((data[7] >> 5) & 7); |
488 | t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : | 488 | t = (data[7] & 0x20) ? ((t > 900) ? ((t-1) / 2 - 1350) : |
489 | ((t-1) / 2 + 450)) : (450 - t / 2) ; | 489 | ((t-1) / 2 + 450)) : (450 - t / 2) ; |
490 | wacom_report_abs(wcombo, ABS_WHEEL, t); | 490 | wacom_report_abs(wcombo, ABS_Z, t); |
491 | } else { | 491 | } else { |
492 | /* 4D mouse rotation packet */ | 492 | /* 4D mouse rotation packet */ |
493 | t = (data[6] << 3) | ((data[7] >> 5) & 7); | 493 | t = (data[6] << 3) | ((data[7] >> 5) & 7); |
@@ -558,6 +558,7 @@ int wacom_wac_irq(struct wacom_wac *wacom_wac, void *wcombo) | |||
558 | case INTUOS3: | 558 | case INTUOS3: |
559 | case INTUOS3L: | 559 | case INTUOS3L: |
560 | case CINTIQ: | 560 | case CINTIQ: |
561 | case WACOM_BEE: | ||
561 | return (wacom_intuos_irq(wacom_wac, wcombo)); | 562 | return (wacom_intuos_irq(wacom_wac, wcombo)); |
562 | break; | 563 | break; |
563 | default: | 564 | default: |
@@ -577,6 +578,8 @@ void wacom_init_input_dev(struct input_dev *input_dev, struct wacom_wac *wacom_w | |||
577 | case GRAPHIRE: | 578 | case GRAPHIRE: |
578 | input_dev_g(input_dev, wacom_wac); | 579 | input_dev_g(input_dev, wacom_wac); |
579 | break; | 580 | break; |
581 | case WACOM_BEE: | ||
582 | input_dev_bee(input_dev, wacom_wac); | ||
580 | case INTUOS3: | 583 | case INTUOS3: |
581 | case INTUOS3L: | 584 | case INTUOS3L: |
582 | case CINTIQ: | 585 | case CINTIQ: |
@@ -607,12 +610,15 @@ static struct wacom_features wacom_features[] = { | |||
607 | { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 63, GRAPHIRE }, | 610 | { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 63, GRAPHIRE }, |
608 | { "Wacom Graphire4 4x5", 8, 10208, 7424, 511, 63, WACOM_G4 }, | 611 | { "Wacom Graphire4 4x5", 8, 10208, 7424, 511, 63, WACOM_G4 }, |
609 | { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 }, | 612 | { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 63, WACOM_G4 }, |
613 | { "Wacom BambooFun 4x5", 9, 14760, 9225, 511, 63, WACOM_MO }, | ||
614 | { "Wacom BambooFun 6x8", 9, 21648, 13530, 511, 63, WACOM_MO }, | ||
610 | { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE }, | 615 | { "Wacom Volito", 8, 5104, 3712, 511, 63, GRAPHIRE }, |
611 | { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE }, | 616 | { "Wacom PenStation2", 8, 3250, 2320, 255, 63, GRAPHIRE }, |
612 | { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE }, | 617 | { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 63, GRAPHIRE }, |
613 | { "Wacom Volito2 2x3", 8, 3248, 2320, 511, 63, GRAPHIRE }, | 618 | { "Wacom Volito2 2x3", 8, 3248, 2320, 511, 63, GRAPHIRE }, |
614 | { "Wacom PenPartner2", 8, 3250, 2320, 255, 63, GRAPHIRE }, | 619 | { "Wacom PenPartner2", 8, 3250, 2320, 511, 63, GRAPHIRE }, |
615 | { "Wacom Bamboo", 9, 14760, 9225, 511, 63, WACOM_MO }, | 620 | { "Wacom Bamboo", 9, 14760, 9225, 511, 63, WACOM_MO }, |
621 | { "Wacom Bamboo1", 8, 5104, 3712, 511, 63, GRAPHIRE }, | ||
616 | { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 31, INTUOS }, | 622 | { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 31, INTUOS }, |
617 | { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, | 623 | { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, |
618 | { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 31, INTUOS }, | 624 | { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 31, INTUOS }, |
@@ -643,6 +649,7 @@ static struct wacom_features wacom_features[] = { | |||
643 | { "Wacom Intuos3 6x11", 10, 54204, 31750, 1023, 63, INTUOS3 }, | 649 | { "Wacom Intuos3 6x11", 10, 54204, 31750, 1023, 63, INTUOS3 }, |
644 | { "Wacom Intuos3 4x6", 10, 31496, 19685, 1023, 63, INTUOS3S }, | 650 | { "Wacom Intuos3 4x6", 10, 31496, 19685, 1023, 63, INTUOS3S }, |
645 | { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ }, | 651 | { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 63, CINTIQ }, |
652 | { "Wacom Cintiq 12WX", 10, 53020, 33440, 1023, 63, WACOM_BEE }, | ||
646 | { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, | 653 | { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 31, INTUOS }, |
647 | { } | 654 | { } |
648 | }; | 655 | }; |
@@ -656,12 +663,15 @@ static struct usb_device_id wacom_ids[] = { | |||
656 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x14) }, | 663 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x14) }, |
657 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x15) }, | 664 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x15) }, |
658 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, | 665 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) }, |
666 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x17) }, | ||
667 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x18) }, | ||
659 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, | 668 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) }, |
660 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, | 669 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) }, |
661 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, | 670 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) }, |
662 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x63) }, | 671 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x63) }, |
663 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x64) }, | 672 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x64) }, |
664 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x65) }, | 673 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x65) }, |
674 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x69) }, | ||
665 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x20) }, | 675 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x20) }, |
666 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x21) }, | 676 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x21) }, |
667 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x22) }, | 677 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x22) }, |
@@ -692,6 +702,7 @@ static struct usb_device_id wacom_ids[] = { | |||
692 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB5) }, | 702 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB5) }, |
693 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB7) }, | 703 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB7) }, |
694 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, | 704 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, |
705 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC6) }, | ||
695 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, | 706 | { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, |
696 | { } | 707 | { } |
697 | }; | 708 | }; |
diff --git a/drivers/input/tablet/wacom_wac.h b/drivers/input/tablet/wacom_wac.h index a302e229bb8a..3342bc05847d 100644 --- a/drivers/input/tablet/wacom_wac.h +++ b/drivers/input/tablet/wacom_wac.h | |||
@@ -25,6 +25,7 @@ enum { | |||
25 | INTUOS3, | 25 | INTUOS3, |
26 | INTUOS3L, | 26 | INTUOS3L, |
27 | CINTIQ, | 27 | CINTIQ, |
28 | WACOM_BEE, | ||
28 | WACOM_MO, | 29 | WACOM_MO, |
29 | MAX_TYPE | 30 | MAX_TYPE |
30 | }; | 31 | }; |
diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index 58934a40f5ce..57a1c28bf122 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c | |||
@@ -213,7 +213,7 @@ static int ads7846_read12_ser(struct device *dev, unsigned command) | |||
213 | struct ads7846 *ts = dev_get_drvdata(dev); | 213 | struct ads7846 *ts = dev_get_drvdata(dev); |
214 | struct ser_req *req = kzalloc(sizeof *req, GFP_KERNEL); | 214 | struct ser_req *req = kzalloc(sizeof *req, GFP_KERNEL); |
215 | int status; | 215 | int status; |
216 | int sample; | 216 | int uninitialized_var(sample); |
217 | int use_internal; | 217 | int use_internal; |
218 | 218 | ||
219 | if (!req) | 219 | if (!req) |
diff --git a/drivers/md/md.c b/drivers/md/md.c index ccbbf63727cc..61ccbd2683fa 100644 --- a/drivers/md/md.c +++ b/drivers/md/md.c | |||
@@ -1864,17 +1864,6 @@ static struct rdev_sysfs_entry rdev_state = | |||
1864 | __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store); | 1864 | __ATTR(state, S_IRUGO|S_IWUSR, state_show, state_store); |
1865 | 1865 | ||
1866 | static ssize_t | 1866 | static ssize_t |
1867 | super_show(mdk_rdev_t *rdev, char *page) | ||
1868 | { | ||
1869 | if (rdev->sb_loaded && rdev->sb_size) { | ||
1870 | memcpy(page, page_address(rdev->sb_page), rdev->sb_size); | ||
1871 | return rdev->sb_size; | ||
1872 | } else | ||
1873 | return 0; | ||
1874 | } | ||
1875 | static struct rdev_sysfs_entry rdev_super = __ATTR_RO(super); | ||
1876 | |||
1877 | static ssize_t | ||
1878 | errors_show(mdk_rdev_t *rdev, char *page) | 1867 | errors_show(mdk_rdev_t *rdev, char *page) |
1879 | { | 1868 | { |
1880 | return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors)); | 1869 | return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors)); |
@@ -2060,7 +2049,6 @@ __ATTR(size, S_IRUGO|S_IWUSR, rdev_size_show, rdev_size_store); | |||
2060 | 2049 | ||
2061 | static struct attribute *rdev_default_attrs[] = { | 2050 | static struct attribute *rdev_default_attrs[] = { |
2062 | &rdev_state.attr, | 2051 | &rdev_state.attr, |
2063 | &rdev_super.attr, | ||
2064 | &rdev_errors.attr, | 2052 | &rdev_errors.attr, |
2065 | &rdev_slot.attr, | 2053 | &rdev_slot.attr, |
2066 | &rdev_offset.attr, | 2054 | &rdev_offset.attr, |
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c index 2d6f1a51359c..c574cf5efb5c 100644 --- a/drivers/md/raid5.c +++ b/drivers/md/raid5.c | |||
@@ -1143,7 +1143,7 @@ static void raid5_end_read_request(struct bio * bi, int error) | |||
1143 | rdev = conf->disks[i].rdev; | 1143 | rdev = conf->disks[i].rdev; |
1144 | printk(KERN_INFO "raid5:%s: read error corrected (%lu sectors at %llu on %s)\n", | 1144 | printk(KERN_INFO "raid5:%s: read error corrected (%lu sectors at %llu on %s)\n", |
1145 | mdname(conf->mddev), STRIPE_SECTORS, | 1145 | mdname(conf->mddev), STRIPE_SECTORS, |
1146 | (unsigned long long)sh->sector + rdev->data_offset, | 1146 | (unsigned long long)(sh->sector + rdev->data_offset), |
1147 | bdevname(rdev->bdev, b)); | 1147 | bdevname(rdev->bdev, b)); |
1148 | clear_bit(R5_ReadError, &sh->dev[i].flags); | 1148 | clear_bit(R5_ReadError, &sh->dev[i].flags); |
1149 | clear_bit(R5_ReWrite, &sh->dev[i].flags); | 1149 | clear_bit(R5_ReWrite, &sh->dev[i].flags); |
@@ -1160,13 +1160,13 @@ static void raid5_end_read_request(struct bio * bi, int error) | |||
1160 | if (conf->mddev->degraded) | 1160 | if (conf->mddev->degraded) |
1161 | printk(KERN_WARNING "raid5:%s: read error not correctable (sector %llu on %s).\n", | 1161 | printk(KERN_WARNING "raid5:%s: read error not correctable (sector %llu on %s).\n", |
1162 | mdname(conf->mddev), | 1162 | mdname(conf->mddev), |
1163 | (unsigned long long)sh->sector + rdev->data_offset, | 1163 | (unsigned long long)(sh->sector + rdev->data_offset), |
1164 | bdn); | 1164 | bdn); |
1165 | else if (test_bit(R5_ReWrite, &sh->dev[i].flags)) | 1165 | else if (test_bit(R5_ReWrite, &sh->dev[i].flags)) |
1166 | /* Oh, no!!! */ | 1166 | /* Oh, no!!! */ |
1167 | printk(KERN_WARNING "raid5:%s: read error NOT corrected!! (sector %llu on %s).\n", | 1167 | printk(KERN_WARNING "raid5:%s: read error NOT corrected!! (sector %llu on %s).\n", |
1168 | mdname(conf->mddev), | 1168 | mdname(conf->mddev), |
1169 | (unsigned long long)sh->sector + rdev->data_offset, | 1169 | (unsigned long long)(sh->sector + rdev->data_offset), |
1170 | bdn); | 1170 | bdn); |
1171 | else if (atomic_read(&rdev->read_errors) | 1171 | else if (atomic_read(&rdev->read_errors) |
1172 | > conf->max_nr_stripes) | 1172 | > conf->max_nr_stripes) |
diff --git a/drivers/media/dvb/dvb-usb/opera1.c b/drivers/media/dvb/dvb-usb/opera1.c index 21935bf7059e..302cc67407c3 100644 --- a/drivers/media/dvb/dvb-usb/opera1.c +++ b/drivers/media/dvb/dvb-usb/opera1.c | |||
@@ -478,9 +478,9 @@ static int opera1_xilinx_load_firmware(struct usb_device *dev, | |||
478 | err("could not restart the USB controller CPU."); | 478 | err("could not restart the USB controller CPU."); |
479 | ret = -EINVAL; | 479 | ret = -EINVAL; |
480 | } | 480 | } |
481 | kfree(p); | ||
482 | } | 481 | } |
483 | } | 482 | } |
483 | kfree(p); | ||
484 | if (fw) { | 484 | if (fw) { |
485 | release_firmware(fw); | 485 | release_firmware(fw); |
486 | } | 486 | } |
diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig index 37072a21d8c9..1832966f53f3 100644 --- a/drivers/media/video/Kconfig +++ b/drivers/media/video/Kconfig | |||
@@ -305,7 +305,7 @@ comment "MPEG video encoders" | |||
305 | 305 | ||
306 | config VIDEO_CX2341X | 306 | config VIDEO_CX2341X |
307 | tristate "Conexant CX2341x MPEG encoders" | 307 | tristate "Conexant CX2341x MPEG encoders" |
308 | depends on VIDEO_V4L2 && EXPERIMENTAL | 308 | depends on VIDEO_V4L2 && EXPERIMENTAL && VIDEO_V4L2_COMMON |
309 | ---help--- | 309 | ---help--- |
310 | Support for the Conexant CX23416 MPEG encoders | 310 | Support for the Conexant CX23416 MPEG encoders |
311 | and CX23415 MPEG encoder/decoders. | 311 | and CX23415 MPEG encoder/decoders. |
@@ -382,7 +382,7 @@ endmenu # encoder / decoder chips | |||
382 | 382 | ||
383 | config VIDEO_VIVI | 383 | config VIDEO_VIVI |
384 | tristate "Virtual Video Driver" | 384 | tristate "Virtual Video Driver" |
385 | depends on VIDEO_V4L2 && !SPARC32 && !SPARC64 | 385 | depends on VIDEO_DEV && VIDEO_V4L2 && !SPARC32 && !SPARC64 |
386 | select VIDEOBUF_VMALLOC | 386 | select VIDEOBUF_VMALLOC |
387 | default n | 387 | default n |
388 | ---help--- | 388 | ---help--- |
diff --git a/drivers/media/video/bt8xx/bttv-driver.c b/drivers/media/video/bt8xx/bttv-driver.c index 5404fcc5276d..a080c149cc6c 100644 --- a/drivers/media/video/bt8xx/bttv-driver.c +++ b/drivers/media/video/bt8xx/bttv-driver.c | |||
@@ -3389,7 +3389,6 @@ static struct video_device bttv_video_template = | |||
3389 | .vidiocgmbuf = vidiocgmbuf, | 3389 | .vidiocgmbuf = vidiocgmbuf, |
3390 | #endif | 3390 | #endif |
3391 | .vidioc_g_crop = bttv_g_crop, | 3391 | .vidioc_g_crop = bttv_g_crop, |
3392 | .vidioc_g_crop = bttv_g_crop, | ||
3393 | .vidioc_s_crop = bttv_s_crop, | 3392 | .vidioc_s_crop = bttv_s_crop, |
3394 | .vidioc_g_fbuf = bttv_g_fbuf, | 3393 | .vidioc_g_fbuf = bttv_g_fbuf, |
3395 | .vidioc_s_fbuf = bttv_s_fbuf, | 3394 | .vidioc_s_fbuf = bttv_s_fbuf, |
diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c index e6b7f518c56e..8c9a8adf52de 100644 --- a/drivers/media/video/cx88/cx88-cards.c +++ b/drivers/media/video/cx88/cx88-cards.c | |||
@@ -2196,6 +2196,11 @@ struct cx88_core *cx88_core_create(struct pci_dev *pci, int nr) | |||
2196 | cx88_reset(core); | 2196 | cx88_reset(core); |
2197 | cx88_card_setup_pre_i2c(core); | 2197 | cx88_card_setup_pre_i2c(core); |
2198 | cx88_i2c_init(core, pci); | 2198 | cx88_i2c_init(core, pci); |
2199 | |||
2200 | /* load tuner module, if needed */ | ||
2201 | if (TUNER_ABSENT != core->board.tuner_type) | ||
2202 | request_module("tuner"); | ||
2203 | |||
2199 | cx88_call_i2c_clients (core, TUNER_SET_STANDBY, NULL); | 2204 | cx88_call_i2c_clients (core, TUNER_SET_STANDBY, NULL); |
2200 | cx88_card_setup(core); | 2205 | cx88_card_setup(core); |
2201 | cx88_ir_init(core, pci); | 2206 | cx88_ir_init(core, pci); |
diff --git a/drivers/media/video/cx88/cx88-video.c b/drivers/media/video/cx88/cx88-video.c index 7f1931aed207..227179620d13 100644 --- a/drivers/media/video/cx88/cx88-video.c +++ b/drivers/media/video/cx88/cx88-video.c | |||
@@ -1826,8 +1826,6 @@ static int __devinit cx8800_initdev(struct pci_dev *pci_dev, | |||
1826 | cx_set(MO_PCI_INTMSK, core->pci_irqmask); | 1826 | cx_set(MO_PCI_INTMSK, core->pci_irqmask); |
1827 | 1827 | ||
1828 | /* load and configure helper modules */ | 1828 | /* load and configure helper modules */ |
1829 | if (TUNER_ABSENT != core->board.tuner_type) | ||
1830 | request_module("tuner"); | ||
1831 | 1829 | ||
1832 | if (core->board.audio_chip == AUDIO_CHIP_WM8775) | 1830 | if (core->board.audio_chip == AUDIO_CHIP_WM8775) |
1833 | request_module("wm8775"); | 1831 | request_module("wm8775"); |
diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c index 7d1537cab867..c1caaa855b99 100644 --- a/drivers/media/video/em28xx/em28xx-core.c +++ b/drivers/media/video/em28xx/em28xx-core.c | |||
@@ -267,7 +267,7 @@ static int em28xx_write_ac97(struct em28xx *dev, u8 reg, u8 *val) | |||
267 | for (i = 0; i < 10; i++) { | 267 | for (i = 0; i < 10; i++) { |
268 | if ((ret = em28xx_read_reg(dev, AC97BUSY_REG)) < 0) | 268 | if ((ret = em28xx_read_reg(dev, AC97BUSY_REG)) < 0) |
269 | return ret; | 269 | return ret; |
270 | if (!((u8) ret) & 0x01) | 270 | if (!(ret & 0x01)) |
271 | return 0; | 271 | return 0; |
272 | msleep(5); | 272 | msleep(5); |
273 | } | 273 | } |
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c index d42f120354e5..948ca35e7ee8 100644 --- a/drivers/media/video/ivtv/ivtv-driver.c +++ b/drivers/media/video/ivtv/ivtv-driver.c | |||
@@ -54,7 +54,6 @@ | |||
54 | #include "ivtv-vbi.h" | 54 | #include "ivtv-vbi.h" |
55 | #include "ivtv-routing.h" | 55 | #include "ivtv-routing.h" |
56 | #include "ivtv-gpio.h" | 56 | #include "ivtv-gpio.h" |
57 | #include "ivtv-yuv.h" | ||
58 | 57 | ||
59 | #include <media/tveeprom.h> | 58 | #include <media/tveeprom.h> |
60 | #include <media/saa7115.h> | 59 | #include <media/saa7115.h> |
@@ -700,6 +699,9 @@ static int __devinit ivtv_init_struct1(struct ivtv *itv) | |||
700 | itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; | 699 | itv->vbi.in.type = V4L2_BUF_TYPE_SLICED_VBI_CAPTURE; |
701 | itv->vbi.sliced_in = &itv->vbi.in.fmt.sliced; | 700 | itv->vbi.sliced_in = &itv->vbi.in.fmt.sliced; |
702 | 701 | ||
702 | /* Init the sg table for osd/yuv output */ | ||
703 | sg_init_table(itv->udma.SGlist, IVTV_DMA_SG_OSD_ENT); | ||
704 | |||
703 | /* OSD */ | 705 | /* OSD */ |
704 | itv->osd_global_alpha_state = 1; | 706 | itv->osd_global_alpha_state = 1; |
705 | itv->osd_global_alpha = 255; | 707 | itv->osd_global_alpha = 255; |
@@ -1053,9 +1055,6 @@ static int __devinit ivtv_probe(struct pci_dev *dev, | |||
1053 | goto free_io; | 1055 | goto free_io; |
1054 | } | 1056 | } |
1055 | 1057 | ||
1056 | /* Check yuv output filter table */ | ||
1057 | if (itv->has_cx23415) ivtv_yuv_filter_check(itv); | ||
1058 | |||
1059 | ivtv_gpio_init(itv); | 1058 | ivtv_gpio_init(itv); |
1060 | 1059 | ||
1061 | /* active i2c */ | 1060 | /* active i2c */ |
diff --git a/drivers/media/video/ivtv/ivtv-firmware.c b/drivers/media/video/ivtv/ivtv-firmware.c index 425eb1063904..6dba55b7e25a 100644 --- a/drivers/media/video/ivtv/ivtv-firmware.c +++ b/drivers/media/video/ivtv/ivtv-firmware.c | |||
@@ -22,6 +22,7 @@ | |||
22 | #include "ivtv-driver.h" | 22 | #include "ivtv-driver.h" |
23 | #include "ivtv-mailbox.h" | 23 | #include "ivtv-mailbox.h" |
24 | #include "ivtv-firmware.h" | 24 | #include "ivtv-firmware.h" |
25 | #include "ivtv-yuv.h" | ||
25 | #include <linux/firmware.h> | 26 | #include <linux/firmware.h> |
26 | 27 | ||
27 | #define IVTV_MASK_SPU_ENABLE 0xFFFFFFFE | 28 | #define IVTV_MASK_SPU_ENABLE 0xFFFFFFFE |
@@ -225,11 +226,14 @@ int ivtv_firmware_init(struct ivtv *itv) | |||
225 | return 0; | 226 | return 0; |
226 | 227 | ||
227 | itv->dec_mbox.mbox = ivtv_search_mailbox(itv->dec_mem, IVTV_DECODER_SIZE); | 228 | itv->dec_mbox.mbox = ivtv_search_mailbox(itv->dec_mem, IVTV_DECODER_SIZE); |
228 | if (itv->dec_mbox.mbox == NULL) | 229 | if (itv->dec_mbox.mbox == NULL) { |
229 | IVTV_ERR("Decoder mailbox not found\n"); | 230 | IVTV_ERR("Decoder mailbox not found\n"); |
230 | else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) { | 231 | } else if (itv->has_cx23415 && ivtv_vapi(itv, CX2341X_DEC_PING_FW, 0)) { |
231 | IVTV_ERR("Decoder firmware dead!\n"); | 232 | IVTV_ERR("Decoder firmware dead!\n"); |
232 | itv->dec_mbox.mbox = NULL; | 233 | itv->dec_mbox.mbox = NULL; |
234 | } else { | ||
235 | /* Firmware okay, so check yuv output filter table */ | ||
236 | ivtv_yuv_filter_check(itv); | ||
233 | } | 237 | } |
234 | return itv->dec_mbox.mbox ? 0 : -ENODEV; | 238 | return itv->dec_mbox.mbox ? 0 : -ENODEV; |
235 | } | 239 | } |
diff --git a/drivers/media/video/saa7134/saa7134-cards.c b/drivers/media/video/saa7134/saa7134-cards.c index 262830da08c8..6f5744286e8c 100644 --- a/drivers/media/video/saa7134/saa7134-cards.c +++ b/drivers/media/video/saa7134/saa7134-cards.c | |||
@@ -2484,27 +2484,28 @@ struct saa7134_board saa7134_boards[] = { | |||
2484 | .tuner_addr = ADDR_UNSET, | 2484 | .tuner_addr = ADDR_UNSET, |
2485 | .radio_addr = ADDR_UNSET, | 2485 | .radio_addr = ADDR_UNSET, |
2486 | .gpiomask = 0x080200000, | 2486 | .gpiomask = 0x080200000, |
2487 | .inputs = {{ | 2487 | .inputs = { { |
2488 | .name = name_tv, | 2488 | .name = name_tv, |
2489 | .vmux = 4, | 2489 | .vmux = 4, |
2490 | .amux = TV, | 2490 | .amux = TV, |
2491 | .tv = 1, | 2491 | .tv = 1, |
2492 | },{ | 2492 | }, { |
2493 | .name = name_comp1, | 2493 | .name = name_comp1, |
2494 | .vmux = 1, | 2494 | .vmux = 1, |
2495 | .amux = LINE2, | 2495 | .amux = LINE2, |
2496 | },{ | 2496 | }, { |
2497 | .name = name_comp2, | 2497 | .name = name_comp2, |
2498 | .vmux = 0, | 2498 | .vmux = 0, |
2499 | .amux = LINE2, | 2499 | .amux = LINE2, |
2500 | },{ | 2500 | }, { |
2501 | .name = name_svideo, | 2501 | .name = name_svideo, |
2502 | .vmux = 8, | 2502 | .vmux = 8, |
2503 | .amux = LINE2, | 2503 | .amux = LINE2, |
2504 | }}, | 2504 | } }, |
2505 | .radio = { | 2505 | .radio = { |
2506 | .name = name_radio, | 2506 | .name = name_radio, |
2507 | .amux = LINE1, | 2507 | .amux = TV, |
2508 | .gpio = 0x0200000, | ||
2508 | }, | 2509 | }, |
2509 | }, | 2510 | }, |
2510 | [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = { | 2511 | [SAA7134_BOARD_ASUSTeK_P7131_DUAL] = { |
diff --git a/drivers/media/video/saa7134/saa7134-core.c b/drivers/media/video/saa7134/saa7134-core.c index 52baa4f7f7dd..58ab163fdbd7 100644 --- a/drivers/media/video/saa7134/saa7134-core.c +++ b/drivers/media/video/saa7134/saa7134-core.c | |||
@@ -1022,12 +1022,13 @@ static int __devinit saa7134_initdev(struct pci_dev *pci_dev, | |||
1022 | saa7134_i2c_register(dev); | 1022 | saa7134_i2c_register(dev); |
1023 | 1023 | ||
1024 | /* initialize hardware #2 */ | 1024 | /* initialize hardware #2 */ |
1025 | if (TUNER_ABSENT != dev->tuner_type) | ||
1026 | request_module("tuner"); | ||
1025 | saa7134_board_init2(dev); | 1027 | saa7134_board_init2(dev); |
1028 | |||
1026 | saa7134_hwinit2(dev); | 1029 | saa7134_hwinit2(dev); |
1027 | 1030 | ||
1028 | /* load i2c helpers */ | 1031 | /* load i2c helpers */ |
1029 | if (TUNER_ABSENT != dev->tuner_type) | ||
1030 | request_module("tuner"); | ||
1031 | if (card_is_empress(dev)) { | 1032 | if (card_is_empress(dev)) { |
1032 | request_module("saa6752hs"); | 1033 | request_module("saa6752hs"); |
1033 | } | 1034 | } |
diff --git a/drivers/media/video/tvp5150.c b/drivers/media/video/tvp5150.c index 445eba4174d7..d28318cb2b8d 100644 --- a/drivers/media/video/tvp5150.c +++ b/drivers/media/video/tvp5150.c | |||
@@ -672,7 +672,7 @@ static int tvp5150_set_vbi(struct i2c_client *c, | |||
672 | if (std == V4L2_STD_ALL) { | 672 | if (std == V4L2_STD_ALL) { |
673 | tvp5150_err("VBI can't be configured without knowing number of lines\n"); | 673 | tvp5150_err("VBI can't be configured without knowing number of lines\n"); |
674 | return 0; | 674 | return 0; |
675 | } else if (std && V4L2_STD_625_50) { | 675 | } else if (std & V4L2_STD_625_50) { |
676 | /* Don't follow NTSC Line number convension */ | 676 | /* Don't follow NTSC Line number convension */ |
677 | line += 3; | 677 | line += 3; |
678 | } | 678 | } |
@@ -719,7 +719,7 @@ static int tvp5150_get_vbi(struct i2c_client *c, | |||
719 | if (std == V4L2_STD_ALL) { | 719 | if (std == V4L2_STD_ALL) { |
720 | tvp5150_err("VBI can't be configured without knowing number of lines\n"); | 720 | tvp5150_err("VBI can't be configured without knowing number of lines\n"); |
721 | return 0; | 721 | return 0; |
722 | } else if (std && V4L2_STD_625_50) { | 722 | } else if (std & V4L2_STD_625_50) { |
723 | /* Don't follow NTSC Line number convension */ | 723 | /* Don't follow NTSC Line number convension */ |
724 | line += 3; | 724 | line += 3; |
725 | } | 725 | } |
diff --git a/drivers/media/video/usbvideo/usbvideo.c b/drivers/media/video/usbvideo/usbvideo.c index fb434b5602a3..5d363be7bc73 100644 --- a/drivers/media/video/usbvideo/usbvideo.c +++ b/drivers/media/video/usbvideo/usbvideo.c | |||
@@ -1034,6 +1034,11 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd) | |||
1034 | info("%s: iface=%d. endpoint=$%02x paletteBits=$%08lx", | 1034 | info("%s: iface=%d. endpoint=$%02x paletteBits=$%08lx", |
1035 | __FUNCTION__, uvd->iface, uvd->video_endp, uvd->paletteBits); | 1035 | __FUNCTION__, uvd->iface, uvd->video_endp, uvd->paletteBits); |
1036 | } | 1036 | } |
1037 | if (uvd->dev == NULL) { | ||
1038 | err("%s: uvd->dev == NULL", __FUNCTION__); | ||
1039 | return -EINVAL; | ||
1040 | } | ||
1041 | uvd->vdev.dev=&(uvd->dev->dev); | ||
1037 | if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { | 1042 | if (video_register_device(&uvd->vdev, VFL_TYPE_GRABBER, video_nr) == -1) { |
1038 | err("%s: video_register_device failed", __FUNCTION__); | 1043 | err("%s: video_register_device failed", __FUNCTION__); |
1039 | return -EPIPE; | 1044 | return -EPIPE; |
@@ -1041,10 +1046,6 @@ int usbvideo_RegisterVideoDevice(struct uvd *uvd) | |||
1041 | if (uvd->debug > 1) { | 1046 | if (uvd->debug > 1) { |
1042 | info("%s: video_register_device() successful", __FUNCTION__); | 1047 | info("%s: video_register_device() successful", __FUNCTION__); |
1043 | } | 1048 | } |
1044 | if (uvd->dev == NULL) { | ||
1045 | err("%s: uvd->dev == NULL", __FUNCTION__); | ||
1046 | return -EINVAL; | ||
1047 | } | ||
1048 | 1049 | ||
1049 | info("%s on /dev/video%d: canvas=%s videosize=%s", | 1050 | info("%s on /dev/video%d: canvas=%s videosize=%s", |
1050 | (uvd->handle != NULL) ? uvd->handle->drvName : "???", | 1051 | (uvd->handle != NULL) ? uvd->handle->drvName : "???", |
diff --git a/drivers/media/video/v4l1-compat.c b/drivers/media/video/v4l1-compat.c index dcf22a3b672a..50e1ff9f2be5 100644 --- a/drivers/media/video/v4l1-compat.c +++ b/drivers/media/video/v4l1-compat.c | |||
@@ -303,7 +303,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
303 | { | 303 | { |
304 | struct video_capability *cap = arg; | 304 | struct video_capability *cap = arg; |
305 | 305 | ||
306 | cap2 = kzalloc(sizeof(*cap2),GFP_KERNEL); | 306 | cap2 = kzalloc(sizeof(*cap2), GFP_KERNEL); |
307 | if (!cap2) { | ||
308 | err = -ENOMEM; | ||
309 | break; | ||
310 | } | ||
307 | memset(cap, 0, sizeof(*cap)); | 311 | memset(cap, 0, sizeof(*cap)); |
308 | memset(&fbuf2, 0, sizeof(fbuf2)); | 312 | memset(&fbuf2, 0, sizeof(fbuf2)); |
309 | 313 | ||
@@ -426,7 +430,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
426 | { | 430 | { |
427 | struct video_window *win = arg; | 431 | struct video_window *win = arg; |
428 | 432 | ||
429 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | 433 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); |
434 | if (!fmt2) { | ||
435 | err = -ENOMEM; | ||
436 | break; | ||
437 | } | ||
430 | memset(win,0,sizeof(*win)); | 438 | memset(win,0,sizeof(*win)); |
431 | 439 | ||
432 | fmt2->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; | 440 | fmt2->type = V4L2_BUF_TYPE_VIDEO_OVERLAY; |
@@ -464,7 +472,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
464 | struct video_window *win = arg; | 472 | struct video_window *win = arg; |
465 | int err1,err2; | 473 | int err1,err2; |
466 | 474 | ||
467 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | 475 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); |
476 | if (!fmt2) { | ||
477 | err = -ENOMEM; | ||
478 | break; | ||
479 | } | ||
468 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 480 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
469 | drv(inode, file, VIDIOC_STREAMOFF, &fmt2->type); | 481 | drv(inode, file, VIDIOC_STREAMOFF, &fmt2->type); |
470 | err1 = drv(inode, file, VIDIOC_G_FMT, fmt2); | 482 | err1 = drv(inode, file, VIDIOC_G_FMT, fmt2); |
@@ -586,6 +598,12 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
586 | { | 598 | { |
587 | struct video_picture *pict = arg; | 599 | struct video_picture *pict = arg; |
588 | 600 | ||
601 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); | ||
602 | if (!fmt2) { | ||
603 | err = -ENOMEM; | ||
604 | break; | ||
605 | } | ||
606 | |||
589 | pict->brightness = get_v4l_control(inode, file, | 607 | pict->brightness = get_v4l_control(inode, file, |
590 | V4L2_CID_BRIGHTNESS,drv); | 608 | V4L2_CID_BRIGHTNESS,drv); |
591 | pict->hue = get_v4l_control(inode, file, | 609 | pict->hue = get_v4l_control(inode, file, |
@@ -597,7 +615,6 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
597 | pict->whiteness = get_v4l_control(inode, file, | 615 | pict->whiteness = get_v4l_control(inode, file, |
598 | V4L2_CID_WHITENESS, drv); | 616 | V4L2_CID_WHITENESS, drv); |
599 | 617 | ||
600 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | ||
601 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 618 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
602 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); | 619 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); |
603 | if (err < 0) { | 620 | if (err < 0) { |
@@ -617,6 +634,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
617 | struct video_picture *pict = arg; | 634 | struct video_picture *pict = arg; |
618 | int mem_err = 0, ovl_err = 0; | 635 | int mem_err = 0, ovl_err = 0; |
619 | 636 | ||
637 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); | ||
638 | if (!fmt2) { | ||
639 | err = -ENOMEM; | ||
640 | break; | ||
641 | } | ||
620 | memset(&fbuf2, 0, sizeof(fbuf2)); | 642 | memset(&fbuf2, 0, sizeof(fbuf2)); |
621 | 643 | ||
622 | set_v4l_control(inode, file, | 644 | set_v4l_control(inode, file, |
@@ -636,7 +658,6 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
636 | * different pixel formats for memory vs overlay. | 658 | * different pixel formats for memory vs overlay. |
637 | */ | 659 | */ |
638 | 660 | ||
639 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | ||
640 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 661 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
641 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); | 662 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); |
642 | /* If VIDIOC_G_FMT failed, then the driver likely doesn't | 663 | /* If VIDIOC_G_FMT failed, then the driver likely doesn't |
@@ -890,7 +911,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
890 | { | 911 | { |
891 | struct video_mmap *mm = arg; | 912 | struct video_mmap *mm = arg; |
892 | 913 | ||
893 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | 914 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); |
915 | if (!fmt2) { | ||
916 | err = -ENOMEM; | ||
917 | break; | ||
918 | } | ||
894 | memset(&buf2,0,sizeof(buf2)); | 919 | memset(&buf2,0,sizeof(buf2)); |
895 | 920 | ||
896 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; | 921 | fmt2->type = V4L2_BUF_TYPE_VIDEO_CAPTURE; |
@@ -986,7 +1011,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
986 | { | 1011 | { |
987 | struct vbi_format *fmt = arg; | 1012 | struct vbi_format *fmt = arg; |
988 | 1013 | ||
989 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | 1014 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); |
1015 | if (!fmt2) { | ||
1016 | err = -ENOMEM; | ||
1017 | break; | ||
1018 | } | ||
990 | fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; | 1019 | fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; |
991 | 1020 | ||
992 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); | 1021 | err = drv(inode, file, VIDIOC_G_FMT, fmt2); |
@@ -1018,8 +1047,11 @@ v4l_compat_translate_ioctl(struct inode *inode, | |||
1018 | break; | 1047 | break; |
1019 | } | 1048 | } |
1020 | 1049 | ||
1021 | fmt2 = kzalloc(sizeof(*fmt2),GFP_KERNEL); | 1050 | fmt2 = kzalloc(sizeof(*fmt2), GFP_KERNEL); |
1022 | 1051 | if (!fmt2) { | |
1052 | err = -ENOMEM; | ||
1053 | break; | ||
1054 | } | ||
1023 | fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; | 1055 | fmt2->type = V4L2_BUF_TYPE_VBI_CAPTURE; |
1024 | fmt2->fmt.vbi.samples_per_line = fmt->samples_per_line; | 1056 | fmt2->fmt.vbi.samples_per_line = fmt->samples_per_line; |
1025 | fmt2->fmt.vbi.sampling_rate = fmt->sampling_rate; | 1057 | fmt2->fmt.vbi.sampling_rate = fmt->sampling_rate; |
diff --git a/drivers/memstick/core/memstick.c b/drivers/memstick/core/memstick.c index de80dba12f9b..946e3d3506ac 100644 --- a/drivers/memstick/core/memstick.c +++ b/drivers/memstick/core/memstick.c | |||
@@ -276,8 +276,6 @@ void memstick_init_req_sg(struct memstick_request *mrq, unsigned char tpc, | |||
276 | mrq->need_card_int = 1; | 276 | mrq->need_card_int = 1; |
277 | else | 277 | else |
278 | mrq->need_card_int = 0; | 278 | mrq->need_card_int = 0; |
279 | |||
280 | mrq->get_int_reg = 0; | ||
281 | } | 279 | } |
282 | EXPORT_SYMBOL(memstick_init_req_sg); | 280 | EXPORT_SYMBOL(memstick_init_req_sg); |
283 | 281 | ||
@@ -311,8 +309,6 @@ void memstick_init_req(struct memstick_request *mrq, unsigned char tpc, | |||
311 | mrq->need_card_int = 1; | 309 | mrq->need_card_int = 1; |
312 | else | 310 | else |
313 | mrq->need_card_int = 0; | 311 | mrq->need_card_int = 0; |
314 | |||
315 | mrq->get_int_reg = 0; | ||
316 | } | 312 | } |
317 | EXPORT_SYMBOL(memstick_init_req); | 313 | EXPORT_SYMBOL(memstick_init_req); |
318 | 314 | ||
@@ -342,6 +338,7 @@ static int h_memstick_read_dev_id(struct memstick_dev *card, | |||
342 | card->id.class = id_reg.class; | 338 | card->id.class = id_reg.class; |
343 | } | 339 | } |
344 | complete(&card->mrq_complete); | 340 | complete(&card->mrq_complete); |
341 | dev_dbg(&card->dev, "if_mode = %02x\n", id_reg.if_mode); | ||
345 | return -EAGAIN; | 342 | return -EAGAIN; |
346 | } | 343 | } |
347 | } | 344 | } |
@@ -422,7 +419,6 @@ static void memstick_power_on(struct memstick_host *host) | |||
422 | { | 419 | { |
423 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); | 420 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); |
424 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); | 421 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); |
425 | msleep(1); | ||
426 | } | 422 | } |
427 | 423 | ||
428 | static void memstick_check(struct work_struct *work) | 424 | static void memstick_check(struct work_struct *work) |
@@ -579,7 +575,8 @@ EXPORT_SYMBOL(memstick_suspend_host); | |||
579 | void memstick_resume_host(struct memstick_host *host) | 575 | void memstick_resume_host(struct memstick_host *host) |
580 | { | 576 | { |
581 | mutex_lock(&host->lock); | 577 | mutex_lock(&host->lock); |
582 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); | 578 | if (host->card) |
579 | memstick_power_on(host); | ||
583 | mutex_unlock(&host->lock); | 580 | mutex_unlock(&host->lock); |
584 | memstick_detect_change(host); | 581 | memstick_detect_change(host); |
585 | } | 582 | } |
diff --git a/drivers/memstick/core/mspro_block.c b/drivers/memstick/core/mspro_block.c index 1d637e4561d3..557dbbba5cb2 100644 --- a/drivers/memstick/core/mspro_block.c +++ b/drivers/memstick/core/mspro_block.c | |||
@@ -133,6 +133,7 @@ struct mspro_devinfo { | |||
133 | struct mspro_block_data { | 133 | struct mspro_block_data { |
134 | struct memstick_dev *card; | 134 | struct memstick_dev *card; |
135 | unsigned int usage_count; | 135 | unsigned int usage_count; |
136 | unsigned int caps; | ||
136 | struct gendisk *disk; | 137 | struct gendisk *disk; |
137 | struct request_queue *queue; | 138 | struct request_queue *queue; |
138 | spinlock_t q_lock; | 139 | spinlock_t q_lock; |
@@ -577,7 +578,6 @@ static int h_mspro_block_wait_for_ced(struct memstick_dev *card, | |||
577 | static int h_mspro_block_transfer_data(struct memstick_dev *card, | 578 | static int h_mspro_block_transfer_data(struct memstick_dev *card, |
578 | struct memstick_request **mrq) | 579 | struct memstick_request **mrq) |
579 | { | 580 | { |
580 | struct memstick_host *host = card->host; | ||
581 | struct mspro_block_data *msb = memstick_get_drvdata(card); | 581 | struct mspro_block_data *msb = memstick_get_drvdata(card); |
582 | unsigned char t_val = 0; | 582 | unsigned char t_val = 0; |
583 | struct scatterlist t_sg = { 0 }; | 583 | struct scatterlist t_sg = { 0 }; |
@@ -591,12 +591,12 @@ static int h_mspro_block_transfer_data(struct memstick_dev *card, | |||
591 | switch ((*mrq)->tpc) { | 591 | switch ((*mrq)->tpc) { |
592 | case MS_TPC_WRITE_REG: | 592 | case MS_TPC_WRITE_REG: |
593 | memstick_init_req(*mrq, MS_TPC_SET_CMD, &msb->transfer_cmd, 1); | 593 | memstick_init_req(*mrq, MS_TPC_SET_CMD, &msb->transfer_cmd, 1); |
594 | (*mrq)->get_int_reg = 1; | 594 | (*mrq)->need_card_int = 1; |
595 | return 0; | 595 | return 0; |
596 | case MS_TPC_SET_CMD: | 596 | case MS_TPC_SET_CMD: |
597 | t_val = (*mrq)->int_reg; | 597 | t_val = (*mrq)->int_reg; |
598 | memstick_init_req(*mrq, MS_TPC_GET_INT, NULL, 1); | 598 | memstick_init_req(*mrq, MS_TPC_GET_INT, NULL, 1); |
599 | if (host->caps & MEMSTICK_CAP_AUTO_GET_INT) | 599 | if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT) |
600 | goto has_int_reg; | 600 | goto has_int_reg; |
601 | return 0; | 601 | return 0; |
602 | case MS_TPC_GET_INT: | 602 | case MS_TPC_GET_INT: |
@@ -646,12 +646,12 @@ has_int_reg: | |||
646 | ? MS_TPC_READ_LONG_DATA | 646 | ? MS_TPC_READ_LONG_DATA |
647 | : MS_TPC_WRITE_LONG_DATA, | 647 | : MS_TPC_WRITE_LONG_DATA, |
648 | &t_sg); | 648 | &t_sg); |
649 | (*mrq)->get_int_reg = 1; | 649 | (*mrq)->need_card_int = 1; |
650 | return 0; | 650 | return 0; |
651 | case MS_TPC_READ_LONG_DATA: | 651 | case MS_TPC_READ_LONG_DATA: |
652 | case MS_TPC_WRITE_LONG_DATA: | 652 | case MS_TPC_WRITE_LONG_DATA: |
653 | msb->current_page++; | 653 | msb->current_page++; |
654 | if (host->caps & MEMSTICK_CAP_AUTO_GET_INT) { | 654 | if (msb->caps & MEMSTICK_CAP_AUTO_GET_INT) { |
655 | t_val = (*mrq)->int_reg; | 655 | t_val = (*mrq)->int_reg; |
656 | goto has_int_reg; | 656 | goto has_int_reg; |
657 | } else { | 657 | } else { |
@@ -816,12 +816,13 @@ static int mspro_block_wait_for_ced(struct memstick_dev *card) | |||
816 | return card->current_mrq.error; | 816 | return card->current_mrq.error; |
817 | } | 817 | } |
818 | 818 | ||
819 | static int mspro_block_switch_to_parallel(struct memstick_dev *card) | 819 | static int mspro_block_set_interface(struct memstick_dev *card, |
820 | unsigned char sys_reg) | ||
820 | { | 821 | { |
821 | struct memstick_host *host = card->host; | 822 | struct memstick_host *host = card->host; |
822 | struct mspro_block_data *msb = memstick_get_drvdata(card); | 823 | struct mspro_block_data *msb = memstick_get_drvdata(card); |
823 | struct mspro_param_register param = { | 824 | struct mspro_param_register param = { |
824 | .system = MEMSTICK_SYS_PAR4, | 825 | .system = sys_reg, |
825 | .data_count = 0, | 826 | .data_count = 0, |
826 | .data_address = 0, | 827 | .data_address = 0, |
827 | .tpc_param = 0 | 828 | .tpc_param = 0 |
@@ -833,41 +834,70 @@ static int mspro_block_switch_to_parallel(struct memstick_dev *card) | |||
833 | sizeof(param)); | 834 | sizeof(param)); |
834 | memstick_new_req(host); | 835 | memstick_new_req(host); |
835 | wait_for_completion(&card->mrq_complete); | 836 | wait_for_completion(&card->mrq_complete); |
836 | if (card->current_mrq.error) | 837 | return card->current_mrq.error; |
837 | return card->current_mrq.error; | 838 | } |
839 | |||
840 | static int mspro_block_switch_interface(struct memstick_dev *card) | ||
841 | { | ||
842 | struct memstick_host *host = card->host; | ||
843 | struct mspro_block_data *msb = memstick_get_drvdata(card); | ||
844 | int rc = 0; | ||
845 | |||
846 | if (msb->caps & MEMSTICK_CAP_PAR4) | ||
847 | rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR4); | ||
848 | else | ||
849 | return 0; | ||
850 | |||
851 | if (rc) { | ||
852 | printk(KERN_WARNING | ||
853 | "%s: could not switch to 4-bit mode, error %d\n", | ||
854 | card->dev.bus_id, rc); | ||
855 | return 0; | ||
856 | } | ||
838 | 857 | ||
839 | msb->system = MEMSTICK_SYS_PAR4; | 858 | msb->system = MEMSTICK_SYS_PAR4; |
840 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); | 859 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_PAR4); |
860 | printk(KERN_INFO "%s: switching to 4-bit parallel mode\n", | ||
861 | card->dev.bus_id); | ||
862 | |||
863 | if (msb->caps & MEMSTICK_CAP_PAR8) { | ||
864 | rc = mspro_block_set_interface(card, MEMSTICK_SYS_PAR8); | ||
865 | |||
866 | if (!rc) { | ||
867 | msb->system = MEMSTICK_SYS_PAR8; | ||
868 | host->set_param(host, MEMSTICK_INTERFACE, | ||
869 | MEMSTICK_PAR8); | ||
870 | printk(KERN_INFO | ||
871 | "%s: switching to 8-bit parallel mode\n", | ||
872 | card->dev.bus_id); | ||
873 | } else | ||
874 | printk(KERN_WARNING | ||
875 | "%s: could not switch to 8-bit mode, error %d\n", | ||
876 | card->dev.bus_id, rc); | ||
877 | } | ||
841 | 878 | ||
842 | card->next_request = h_mspro_block_req_init; | 879 | card->next_request = h_mspro_block_req_init; |
843 | msb->mrq_handler = h_mspro_block_default; | 880 | msb->mrq_handler = h_mspro_block_default; |
844 | memstick_init_req(&card->current_mrq, MS_TPC_GET_INT, NULL, 1); | 881 | memstick_init_req(&card->current_mrq, MS_TPC_GET_INT, NULL, 1); |
845 | memstick_new_req(card->host); | 882 | memstick_new_req(card->host); |
846 | wait_for_completion(&card->mrq_complete); | 883 | wait_for_completion(&card->mrq_complete); |
884 | rc = card->current_mrq.error; | ||
847 | 885 | ||
848 | if (card->current_mrq.error) { | 886 | if (rc) { |
887 | printk(KERN_WARNING | ||
888 | "%s: interface error, trying to fall back to serial\n", | ||
889 | card->dev.bus_id); | ||
849 | msb->system = MEMSTICK_SYS_SERIAL; | 890 | msb->system = MEMSTICK_SYS_SERIAL; |
850 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); | 891 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_OFF); |
851 | msleep(1000); | 892 | msleep(10); |
852 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); | 893 | host->set_param(host, MEMSTICK_POWER, MEMSTICK_POWER_ON); |
853 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); | 894 | host->set_param(host, MEMSTICK_INTERFACE, MEMSTICK_SERIAL); |
854 | 895 | ||
855 | if (memstick_set_rw_addr(card)) | 896 | rc = memstick_set_rw_addr(card); |
856 | return card->current_mrq.error; | 897 | if (!rc) |
857 | 898 | rc = mspro_block_set_interface(card, msb->system); | |
858 | param.system = msb->system; | ||
859 | |||
860 | card->next_request = h_mspro_block_req_init; | ||
861 | msb->mrq_handler = h_mspro_block_default; | ||
862 | memstick_init_req(&card->current_mrq, MS_TPC_WRITE_REG, ¶m, | ||
863 | sizeof(param)); | ||
864 | memstick_new_req(host); | ||
865 | wait_for_completion(&card->mrq_complete); | ||
866 | |||
867 | return -EFAULT; | ||
868 | } | 899 | } |
869 | 900 | return rc; | |
870 | return 0; | ||
871 | } | 901 | } |
872 | 902 | ||
873 | /* Memory allocated for attributes by this function should be freed by | 903 | /* Memory allocated for attributes by this function should be freed by |
@@ -1052,16 +1082,18 @@ static int mspro_block_init_card(struct memstick_dev *card) | |||
1052 | if (memstick_set_rw_addr(card)) | 1082 | if (memstick_set_rw_addr(card)) |
1053 | return -EIO; | 1083 | return -EIO; |
1054 | 1084 | ||
1055 | if (host->caps & MEMSTICK_CAP_PAR4) { | 1085 | msb->caps = host->caps; |
1056 | if (mspro_block_switch_to_parallel(card)) | 1086 | rc = mspro_block_switch_interface(card); |
1057 | printk(KERN_WARNING "%s: could not switch to " | 1087 | if (rc) |
1058 | "parallel interface\n", card->dev.bus_id); | 1088 | return rc; |
1059 | } | ||
1060 | 1089 | ||
1090 | msleep(200); | ||
1061 | rc = mspro_block_wait_for_ced(card); | 1091 | rc = mspro_block_wait_for_ced(card); |
1062 | if (rc) | 1092 | if (rc) |
1063 | return rc; | 1093 | return rc; |
1064 | dev_dbg(&card->dev, "card activated\n"); | 1094 | dev_dbg(&card->dev, "card activated\n"); |
1095 | if (msb->system != MEMSTICK_SYS_SERIAL) | ||
1096 | msb->caps |= MEMSTICK_CAP_AUTO_GET_INT; | ||
1065 | 1097 | ||
1066 | card->next_request = h_mspro_block_req_init; | 1098 | card->next_request = h_mspro_block_req_init; |
1067 | msb->mrq_handler = h_mspro_block_get_ro; | 1099 | msb->mrq_handler = h_mspro_block_get_ro; |
diff --git a/drivers/memstick/host/jmb38x_ms.c b/drivers/memstick/host/jmb38x_ms.c index 03fe8783b1ee..8770a5fac3b6 100644 --- a/drivers/memstick/host/jmb38x_ms.c +++ b/drivers/memstick/host/jmb38x_ms.c | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/spinlock.h> | 12 | #include <linux/spinlock.h> |
13 | #include <linux/interrupt.h> | 13 | #include <linux/interrupt.h> |
14 | #include <linux/pci.h> | 14 | #include <linux/pci.h> |
15 | #include <linux/dma-mapping.h> | ||
15 | #include <linux/delay.h> | 16 | #include <linux/delay.h> |
16 | #include <linux/highmem.h> | 17 | #include <linux/highmem.h> |
17 | #include <linux/memstick.h> | 18 | #include <linux/memstick.h> |
@@ -56,8 +57,6 @@ struct jmb38x_ms_host { | |||
56 | unsigned long timeout_jiffies; | 57 | unsigned long timeout_jiffies; |
57 | struct timer_list timer; | 58 | struct timer_list timer; |
58 | struct memstick_request *req; | 59 | struct memstick_request *req; |
59 | unsigned char eject:1, | ||
60 | use_dma:1; | ||
61 | unsigned char cmd_flags; | 60 | unsigned char cmd_flags; |
62 | unsigned char io_pos; | 61 | unsigned char io_pos; |
63 | unsigned int io_word[2]; | 62 | unsigned int io_word[2]; |
@@ -94,9 +93,22 @@ struct jmb38x_ms { | |||
94 | #define HOST_CONTROL_IF_PAR4 0x1 | 93 | #define HOST_CONTROL_IF_PAR4 0x1 |
95 | #define HOST_CONTROL_IF_PAR8 0x3 | 94 | #define HOST_CONTROL_IF_PAR8 0x3 |
96 | 95 | ||
96 | #define STATUS_BUSY 0x00080000 | ||
97 | #define STATUS_MS_DAT7 0x00040000 | ||
98 | #define STATUS_MS_DAT6 0x00020000 | ||
99 | #define STATUS_MS_DAT5 0x00010000 | ||
100 | #define STATUS_MS_DAT4 0x00008000 | ||
101 | #define STATUS_MS_DAT3 0x00004000 | ||
102 | #define STATUS_MS_DAT2 0x00002000 | ||
103 | #define STATUS_MS_DAT1 0x00001000 | ||
104 | #define STATUS_MS_DAT0 0x00000800 | ||
97 | #define STATUS_HAS_MEDIA 0x00000400 | 105 | #define STATUS_HAS_MEDIA 0x00000400 |
98 | #define STATUS_FIFO_EMPTY 0x00000200 | 106 | #define STATUS_FIFO_EMPTY 0x00000200 |
99 | #define STATUS_FIFO_FULL 0x00000100 | 107 | #define STATUS_FIFO_FULL 0x00000100 |
108 | #define STATUS_MS_CED 0x00000080 | ||
109 | #define STATUS_MS_ERR 0x00000040 | ||
110 | #define STATUS_MS_BRQ 0x00000020 | ||
111 | #define STATUS_MS_CNK 0x00000001 | ||
100 | 112 | ||
101 | #define INT_STATUS_TPC_ERR 0x00080000 | 113 | #define INT_STATUS_TPC_ERR 0x00080000 |
102 | #define INT_STATUS_CRC_ERR 0x00040000 | 114 | #define INT_STATUS_CRC_ERR 0x00040000 |
@@ -119,11 +131,17 @@ struct jmb38x_ms { | |||
119 | #define PAD_PU_PD_ON_MS_SOCK0 0x5f8f0000 | 131 | #define PAD_PU_PD_ON_MS_SOCK0 0x5f8f0000 |
120 | #define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 | 132 | #define PAD_PU_PD_ON_MS_SOCK1 0x0f0f0000 |
121 | 133 | ||
134 | #define CLOCK_CONTROL_40MHZ 0x00000001 | ||
135 | #define CLOCK_CONTROL_50MHZ 0x00000002 | ||
136 | #define CLOCK_CONTROL_60MHZ 0x00000008 | ||
137 | #define CLOCK_CONTROL_62_5MHZ 0x0000000c | ||
138 | #define CLOCK_CONTROL_OFF 0x00000000 | ||
139 | |||
122 | enum { | 140 | enum { |
123 | CMD_READY = 0x01, | 141 | CMD_READY = 0x01, |
124 | FIFO_READY = 0x02, | 142 | FIFO_READY = 0x02, |
125 | REG_DATA = 0x04, | 143 | REG_DATA = 0x04, |
126 | AUTO_GET_INT = 0x08 | 144 | DMA_DATA = 0x08 |
127 | }; | 145 | }; |
128 | 146 | ||
129 | static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, | 147 | static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, |
@@ -273,7 +291,7 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host) | |||
273 | { | 291 | { |
274 | unsigned int length; | 292 | unsigned int length; |
275 | unsigned int off; | 293 | unsigned int off; |
276 | unsigned int t_size, p_off, p_cnt; | 294 | unsigned int t_size, p_cnt; |
277 | unsigned char *buf; | 295 | unsigned char *buf; |
278 | struct page *pg; | 296 | struct page *pg; |
279 | unsigned long flags = 0; | 297 | unsigned long flags = 0; |
@@ -287,6 +305,8 @@ static int jmb38x_ms_transfer_data(struct jmb38x_ms_host *host) | |||
287 | } | 305 | } |
288 | 306 | ||
289 | while (length) { | 307 | while (length) { |
308 | unsigned int uninitialized_var(p_off); | ||
309 | |||
290 | if (host->req->long_data) { | 310 | if (host->req->long_data) { |
291 | pg = nth_page(sg_page(&host->req->sg), | 311 | pg = nth_page(sg_page(&host->req->sg), |
292 | off >> PAGE_SHIFT); | 312 | off >> PAGE_SHIFT); |
@@ -364,28 +384,27 @@ static int jmb38x_ms_issue_cmd(struct memstick_host *msh) | |||
364 | cmd |= TPC_DIR; | 384 | cmd |= TPC_DIR; |
365 | if (host->req->need_card_int) | 385 | if (host->req->need_card_int) |
366 | cmd |= TPC_WAIT_INT; | 386 | cmd |= TPC_WAIT_INT; |
367 | if (host->req->get_int_reg) | ||
368 | cmd |= TPC_GET_INT; | ||
369 | 387 | ||
370 | data = host->req->data; | 388 | data = host->req->data; |
371 | 389 | ||
372 | host->use_dma = !no_dma; | 390 | if (!no_dma) |
391 | host->cmd_flags |= DMA_DATA; | ||
373 | 392 | ||
374 | if (host->req->long_data) { | 393 | if (host->req->long_data) { |
375 | data_len = host->req->sg.length; | 394 | data_len = host->req->sg.length; |
376 | } else { | 395 | } else { |
377 | data_len = host->req->data_len; | 396 | data_len = host->req->data_len; |
378 | host->use_dma = 0; | 397 | host->cmd_flags &= ~DMA_DATA; |
379 | } | 398 | } |
380 | 399 | ||
381 | if (data_len <= 8) { | 400 | if (data_len <= 8) { |
382 | cmd &= ~(TPC_DATA_SEL | 0xf); | 401 | cmd &= ~(TPC_DATA_SEL | 0xf); |
383 | host->cmd_flags |= REG_DATA; | 402 | host->cmd_flags |= REG_DATA; |
384 | cmd |= data_len & 0xf; | 403 | cmd |= data_len & 0xf; |
385 | host->use_dma = 0; | 404 | host->cmd_flags &= ~DMA_DATA; |
386 | } | 405 | } |
387 | 406 | ||
388 | if (host->use_dma) { | 407 | if (host->cmd_flags & DMA_DATA) { |
389 | if (1 != pci_map_sg(host->chip->pdev, &host->req->sg, 1, | 408 | if (1 != pci_map_sg(host->chip->pdev, &host->req->sg, 1, |
390 | host->req->data_dir == READ | 409 | host->req->data_dir == READ |
391 | ? PCI_DMA_FROMDEVICE | 410 | ? PCI_DMA_FROMDEVICE |
@@ -448,13 +467,12 @@ static void jmb38x_ms_complete_cmd(struct memstick_host *msh, int last) | |||
448 | readl(host->addr + INT_STATUS)); | 467 | readl(host->addr + INT_STATUS)); |
449 | dev_dbg(msh->cdev.dev, "c hstatus %08x\n", readl(host->addr + STATUS)); | 468 | dev_dbg(msh->cdev.dev, "c hstatus %08x\n", readl(host->addr + STATUS)); |
450 | 469 | ||
451 | if (host->req->get_int_reg) { | 470 | host->req->int_reg = readl(host->addr + STATUS) & 0xff; |
452 | t_val = readl(host->addr + TPC_P0); | 471 | |
453 | host->req->int_reg = (t_val & 0xff); | 472 | writel(0, host->addr + BLOCK); |
454 | } | 473 | writel(0, host->addr + DMA_CONTROL); |
455 | 474 | ||
456 | if (host->use_dma) { | 475 | if (host->cmd_flags & DMA_DATA) { |
457 | writel(0, host->addr + DMA_CONTROL); | ||
458 | pci_unmap_sg(host->chip->pdev, &host->req->sg, 1, | 476 | pci_unmap_sg(host->chip->pdev, &host->req->sg, 1, |
459 | host->req->data_dir == READ | 477 | host->req->data_dir == READ |
460 | ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); | 478 | ? PCI_DMA_FROMDEVICE : PCI_DMA_TODEVICE); |
@@ -506,7 +524,7 @@ static irqreturn_t jmb38x_ms_isr(int irq, void *dev_id) | |||
506 | else | 524 | else |
507 | host->req->error = -ETIME; | 525 | host->req->error = -ETIME; |
508 | } else { | 526 | } else { |
509 | if (host->use_dma) { | 527 | if (host->cmd_flags & DMA_DATA) { |
510 | if (irq_status & INT_STATUS_EOTRAN) | 528 | if (irq_status & INT_STATUS_EOTRAN) |
511 | host->cmd_flags |= FIFO_READY; | 529 | host->cmd_flags |= FIFO_READY; |
512 | } else { | 530 | } else { |
@@ -595,19 +613,18 @@ static void jmb38x_ms_reset(struct jmb38x_ms_host *host) | |||
595 | { | 613 | { |
596 | unsigned int host_ctl = readl(host->addr + HOST_CONTROL); | 614 | unsigned int host_ctl = readl(host->addr + HOST_CONTROL); |
597 | 615 | ||
598 | writel(host_ctl | HOST_CONTROL_RESET_REQ | HOST_CONTROL_RESET, | 616 | writel(HOST_CONTROL_RESET_REQ, host->addr + HOST_CONTROL); |
599 | host->addr + HOST_CONTROL); | ||
600 | 617 | ||
601 | while (HOST_CONTROL_RESET_REQ | 618 | while (HOST_CONTROL_RESET_REQ |
602 | & (host_ctl = readl(host->addr + HOST_CONTROL))) { | 619 | & (host_ctl = readl(host->addr + HOST_CONTROL))) { |
603 | ndelay(100); | 620 | ndelay(20); |
604 | dev_dbg(&host->chip->pdev->dev, "reset\n"); | 621 | dev_dbg(&host->chip->pdev->dev, "reset %08x\n", host_ctl); |
605 | } | 622 | } |
606 | 623 | ||
607 | writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE); | 624 | writel(HOST_CONTROL_RESET, host->addr + HOST_CONTROL); |
625 | mmiowb(); | ||
608 | writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE); | 626 | writel(INT_STATUS_ALL, host->addr + INT_SIGNAL_ENABLE); |
609 | 627 | writel(INT_STATUS_ALL, host->addr + INT_STATUS_ENABLE); | |
610 | dev_dbg(&host->chip->pdev->dev, "reset\n"); | ||
611 | } | 628 | } |
612 | 629 | ||
613 | static void jmb38x_ms_set_param(struct memstick_host *msh, | 630 | static void jmb38x_ms_set_param(struct memstick_host *msh, |
@@ -615,10 +632,8 @@ static void jmb38x_ms_set_param(struct memstick_host *msh, | |||
615 | int value) | 632 | int value) |
616 | { | 633 | { |
617 | struct jmb38x_ms_host *host = memstick_priv(msh); | 634 | struct jmb38x_ms_host *host = memstick_priv(msh); |
618 | unsigned int host_ctl; | 635 | unsigned int host_ctl = readl(host->addr + HOST_CONTROL); |
619 | unsigned long flags; | 636 | unsigned int clock_ctl = CLOCK_CONTROL_40MHZ, clock_delay = 0; |
620 | |||
621 | spin_lock_irqsave(&host->lock, flags); | ||
622 | 637 | ||
623 | switch (param) { | 638 | switch (param) { |
624 | case MEMSTICK_POWER: | 639 | case MEMSTICK_POWER: |
@@ -626,60 +641,57 @@ static void jmb38x_ms_set_param(struct memstick_host *msh, | |||
626 | jmb38x_ms_reset(host); | 641 | jmb38x_ms_reset(host); |
627 | 642 | ||
628 | writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 | 643 | writel(host->id ? PAD_PU_PD_ON_MS_SOCK1 |
629 | : PAD_PU_PD_ON_MS_SOCK0, | 644 | : PAD_PU_PD_ON_MS_SOCK0, |
630 | host->addr + PAD_PU_PD); | 645 | host->addr + PAD_PU_PD); |
631 | 646 | ||
632 | writel(PAD_OUTPUT_ENABLE_MS, | 647 | writel(PAD_OUTPUT_ENABLE_MS, |
633 | host->addr + PAD_OUTPUT_ENABLE); | 648 | host->addr + PAD_OUTPUT_ENABLE); |
634 | 649 | ||
635 | host_ctl = readl(host->addr + HOST_CONTROL); | 650 | host_ctl = 7; |
636 | host_ctl |= 7; | 651 | host_ctl |= HOST_CONTROL_POWER_EN |
637 | writel(host_ctl | (HOST_CONTROL_POWER_EN | 652 | | HOST_CONTROL_CLOCK_EN; |
638 | | HOST_CONTROL_CLOCK_EN), | 653 | writel(host_ctl, host->addr + HOST_CONTROL); |
639 | host->addr + HOST_CONTROL); | ||
640 | 654 | ||
641 | dev_dbg(&host->chip->pdev->dev, "power on\n"); | 655 | dev_dbg(&host->chip->pdev->dev, "power on\n"); |
642 | } else if (value == MEMSTICK_POWER_OFF) { | 656 | } else if (value == MEMSTICK_POWER_OFF) { |
643 | writel(readl(host->addr + HOST_CONTROL) | 657 | host_ctl &= ~(HOST_CONTROL_POWER_EN |
644 | & ~(HOST_CONTROL_POWER_EN | 658 | | HOST_CONTROL_CLOCK_EN); |
645 | | HOST_CONTROL_CLOCK_EN), | 659 | writel(host_ctl, host->addr + HOST_CONTROL); |
646 | host->addr + HOST_CONTROL); | ||
647 | writel(0, host->addr + PAD_OUTPUT_ENABLE); | 660 | writel(0, host->addr + PAD_OUTPUT_ENABLE); |
648 | writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD); | 661 | writel(PAD_PU_PD_OFF, host->addr + PAD_PU_PD); |
649 | dev_dbg(&host->chip->pdev->dev, "power off\n"); | 662 | dev_dbg(&host->chip->pdev->dev, "power off\n"); |
650 | } | 663 | } |
651 | break; | 664 | break; |
652 | case MEMSTICK_INTERFACE: | 665 | case MEMSTICK_INTERFACE: |
653 | /* jmb38x_ms_reset(host); */ | ||
654 | |||
655 | host_ctl = readl(host->addr + HOST_CONTROL); | ||
656 | host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); | 666 | host_ctl &= ~(3 << HOST_CONTROL_IF_SHIFT); |
657 | /* host_ctl |= 7; */ | ||
658 | 667 | ||
659 | if (value == MEMSTICK_SERIAL) { | 668 | if (value == MEMSTICK_SERIAL) { |
660 | host_ctl &= ~HOST_CONTROL_FAST_CLK; | 669 | host_ctl &= ~HOST_CONTROL_FAST_CLK; |
661 | host_ctl |= HOST_CONTROL_IF_SERIAL | 670 | host_ctl |= HOST_CONTROL_IF_SERIAL |
662 | << HOST_CONTROL_IF_SHIFT; | 671 | << HOST_CONTROL_IF_SHIFT; |
663 | host_ctl |= HOST_CONTROL_REI; | 672 | host_ctl |= HOST_CONTROL_REI; |
664 | writel(0, host->addr + CLOCK_DELAY); | 673 | clock_ctl = CLOCK_CONTROL_40MHZ; |
674 | clock_delay = 0; | ||
665 | } else if (value == MEMSTICK_PAR4) { | 675 | } else if (value == MEMSTICK_PAR4) { |
666 | host_ctl |= HOST_CONTROL_FAST_CLK; | 676 | host_ctl |= HOST_CONTROL_FAST_CLK; |
667 | host_ctl |= HOST_CONTROL_IF_PAR4 | 677 | host_ctl |= HOST_CONTROL_IF_PAR4 |
668 | << HOST_CONTROL_IF_SHIFT; | 678 | << HOST_CONTROL_IF_SHIFT; |
669 | host_ctl &= ~HOST_CONTROL_REI; | 679 | host_ctl &= ~HOST_CONTROL_REI; |
670 | writel(4, host->addr + CLOCK_DELAY); | 680 | clock_ctl = CLOCK_CONTROL_40MHZ; |
681 | clock_delay = 4; | ||
671 | } else if (value == MEMSTICK_PAR8) { | 682 | } else if (value == MEMSTICK_PAR8) { |
672 | host_ctl |= HOST_CONTROL_FAST_CLK; | 683 | host_ctl |= HOST_CONTROL_FAST_CLK; |
673 | host_ctl |= HOST_CONTROL_IF_PAR8 | 684 | host_ctl |= HOST_CONTROL_IF_PAR8 |
674 | << HOST_CONTROL_IF_SHIFT; | 685 | << HOST_CONTROL_IF_SHIFT; |
675 | host_ctl &= ~HOST_CONTROL_REI; | 686 | host_ctl &= ~HOST_CONTROL_REI; |
676 | writel(4, host->addr + CLOCK_DELAY); | 687 | clock_ctl = CLOCK_CONTROL_60MHZ; |
688 | clock_delay = 0; | ||
677 | } | 689 | } |
678 | writel(host_ctl, host->addr + HOST_CONTROL); | 690 | writel(host_ctl, host->addr + HOST_CONTROL); |
691 | writel(clock_ctl, host->addr + CLOCK_CONTROL); | ||
692 | writel(clock_delay, host->addr + CLOCK_DELAY); | ||
679 | break; | 693 | break; |
680 | }; | 694 | }; |
681 | |||
682 | spin_unlock_irqrestore(&host->lock, flags); | ||
683 | } | 695 | } |
684 | 696 | ||
685 | #ifdef CONFIG_PM | 697 | #ifdef CONFIG_PM |
@@ -772,13 +784,10 @@ static struct memstick_host *jmb38x_ms_alloc_host(struct jmb38x_ms *jm, int cnt) | |||
772 | snprintf(host->host_id, DEVICE_ID_SIZE, DRIVER_NAME ":slot%d", | 784 | snprintf(host->host_id, DEVICE_ID_SIZE, DRIVER_NAME ":slot%d", |
773 | host->id); | 785 | host->id); |
774 | host->irq = jm->pdev->irq; | 786 | host->irq = jm->pdev->irq; |
775 | host->timeout_jiffies = msecs_to_jiffies(4000); | 787 | host->timeout_jiffies = msecs_to_jiffies(1000); |
776 | msh->request = jmb38x_ms_request; | 788 | msh->request = jmb38x_ms_request; |
777 | msh->set_param = jmb38x_ms_set_param; | 789 | msh->set_param = jmb38x_ms_set_param; |
778 | /* | 790 | |
779 | msh->caps = MEMSTICK_CAP_AUTO_GET_INT | MEMSTICK_CAP_PAR4 | ||
780 | | MEMSTICK_CAP_PAR8; | ||
781 | */ | ||
782 | msh->caps = MEMSTICK_CAP_PAR4 | MEMSTICK_CAP_PAR8; | 791 | msh->caps = MEMSTICK_CAP_PAR4 | MEMSTICK_CAP_PAR8; |
783 | 792 | ||
784 | setup_timer(&host->timer, jmb38x_ms_abort, (unsigned long)msh); | 793 | setup_timer(&host->timer, jmb38x_ms_abort, (unsigned long)msh); |
diff --git a/drivers/memstick/host/tifm_ms.c b/drivers/memstick/host/tifm_ms.c index 2b5bf52a8302..eb150dfb637f 100644 --- a/drivers/memstick/host/tifm_ms.c +++ b/drivers/memstick/host/tifm_ms.c | |||
@@ -340,11 +340,20 @@ static void tifm_ms_complete_cmd(struct tifm_ms *host) | |||
340 | 340 | ||
341 | del_timer(&host->timer); | 341 | del_timer(&host->timer); |
342 | 342 | ||
343 | if (host->use_dma) | 343 | host->req->int_reg = readl(sock->addr + SOCK_MS_STATUS) & 0xff; |
344 | host->req->int_reg = (host->req->int_reg & 1) | ||
345 | | ((host->req->int_reg << 4) & 0xe0); | ||
346 | |||
347 | writel(TIFM_FIFO_INT_SETALL, | ||
348 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); | ||
349 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); | ||
350 | |||
351 | if (host->use_dma) { | ||
344 | tifm_unmap_sg(sock, &host->req->sg, 1, | 352 | tifm_unmap_sg(sock, &host->req->sg, 1, |
345 | host->req->data_dir == READ | 353 | host->req->data_dir == READ |
346 | ? PCI_DMA_FROMDEVICE | 354 | ? PCI_DMA_FROMDEVICE |
347 | : PCI_DMA_TODEVICE); | 355 | : PCI_DMA_TODEVICE); |
356 | } | ||
348 | 357 | ||
349 | writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), | 358 | writel((~TIFM_CTRL_LED) & readl(sock->addr + SOCK_CONTROL), |
350 | sock->addr + SOCK_CONTROL); | 359 | sock->addr + SOCK_CONTROL); |
@@ -424,12 +433,6 @@ static void tifm_ms_card_event(struct tifm_dev *sock) | |||
424 | else if (host_status & TIFM_MS_STAT_CRC) | 433 | else if (host_status & TIFM_MS_STAT_CRC) |
425 | host->req->error = -EILSEQ; | 434 | host->req->error = -EILSEQ; |
426 | 435 | ||
427 | if (host->req->error) { | ||
428 | writel(TIFM_FIFO_INT_SETALL, | ||
429 | sock->addr + SOCK_DMA_FIFO_INT_ENABLE_CLEAR); | ||
430 | writel(TIFM_DMA_RESET, sock->addr + SOCK_DMA_CONTROL); | ||
431 | } | ||
432 | |||
433 | if (host_status & TIFM_MS_STAT_RDY) | 436 | if (host_status & TIFM_MS_STAT_RDY) |
434 | host->cmd_flags |= CMD_READY; | 437 | host->cmd_flags |= CMD_READY; |
435 | 438 | ||
diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c index 6b6df8679585..c6be6eba7dc3 100644 --- a/drivers/message/fusion/mptbase.c +++ b/drivers/message/fusion/mptbase.c | |||
@@ -1430,6 +1430,98 @@ mpt_get_product_name(u16 vendor, u16 device, u8 revision, char *prod_name) | |||
1430 | sprintf(prod_name, "%s", product_str); | 1430 | sprintf(prod_name, "%s", product_str); |
1431 | } | 1431 | } |
1432 | 1432 | ||
1433 | /** | ||
1434 | * mpt_mapresources - map in memory mapped io | ||
1435 | * @ioc: Pointer to pointer to IOC adapter | ||
1436 | * | ||
1437 | **/ | ||
1438 | static int | ||
1439 | mpt_mapresources(MPT_ADAPTER *ioc) | ||
1440 | { | ||
1441 | u8 __iomem *mem; | ||
1442 | int ii; | ||
1443 | unsigned long mem_phys; | ||
1444 | unsigned long port; | ||
1445 | u32 msize; | ||
1446 | u32 psize; | ||
1447 | u8 revision; | ||
1448 | int r = -ENODEV; | ||
1449 | struct pci_dev *pdev; | ||
1450 | |||
1451 | pdev = ioc->pcidev; | ||
1452 | ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM); | ||
1453 | if (pci_enable_device_mem(pdev)) { | ||
1454 | printk(MYIOC_s_ERR_FMT "pci_enable_device_mem() " | ||
1455 | "failed\n", ioc->name); | ||
1456 | return r; | ||
1457 | } | ||
1458 | if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) { | ||
1459 | printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with " | ||
1460 | "MEM failed\n", ioc->name); | ||
1461 | return r; | ||
1462 | } | ||
1463 | |||
1464 | pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision); | ||
1465 | |||
1466 | if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK) | ||
1467 | && !pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) { | ||
1468 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT | ||
1469 | ": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n", | ||
1470 | ioc->name)); | ||
1471 | } else if (!pci_set_dma_mask(pdev, DMA_32BIT_MASK) | ||
1472 | && !pci_set_consistent_dma_mask(pdev, DMA_32BIT_MASK)) { | ||
1473 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT | ||
1474 | ": 32 BIT PCI BUS DMA ADDRESSING SUPPORTED\n", | ||
1475 | ioc->name)); | ||
1476 | } else { | ||
1477 | printk(MYIOC_s_WARN_FMT "no suitable DMA mask for %s\n", | ||
1478 | ioc->name, pci_name(pdev)); | ||
1479 | pci_release_selected_regions(pdev, ioc->bars); | ||
1480 | return r; | ||
1481 | } | ||
1482 | |||
1483 | mem_phys = msize = 0; | ||
1484 | port = psize = 0; | ||
1485 | for (ii = 0; ii < DEVICE_COUNT_RESOURCE; ii++) { | ||
1486 | if (pci_resource_flags(pdev, ii) & PCI_BASE_ADDRESS_SPACE_IO) { | ||
1487 | if (psize) | ||
1488 | continue; | ||
1489 | /* Get I/O space! */ | ||
1490 | port = pci_resource_start(pdev, ii); | ||
1491 | psize = pci_resource_len(pdev, ii); | ||
1492 | } else { | ||
1493 | if (msize) | ||
1494 | continue; | ||
1495 | /* Get memmap */ | ||
1496 | mem_phys = pci_resource_start(pdev, ii); | ||
1497 | msize = pci_resource_len(pdev, ii); | ||
1498 | } | ||
1499 | } | ||
1500 | ioc->mem_size = msize; | ||
1501 | |||
1502 | mem = NULL; | ||
1503 | /* Get logical ptr for PciMem0 space */ | ||
1504 | /*mem = ioremap(mem_phys, msize);*/ | ||
1505 | mem = ioremap(mem_phys, msize); | ||
1506 | if (mem == NULL) { | ||
1507 | printk(MYIOC_s_ERR_FMT ": ERROR - Unable to map adapter" | ||
1508 | " memory!\n", ioc->name); | ||
1509 | return -EINVAL; | ||
1510 | } | ||
1511 | ioc->memmap = mem; | ||
1512 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %lx\n", | ||
1513 | ioc->name, mem, mem_phys)); | ||
1514 | |||
1515 | ioc->mem_phys = mem_phys; | ||
1516 | ioc->chip = (SYSIF_REGS __iomem *)mem; | ||
1517 | |||
1518 | /* Save Port IO values in case we need to do downloadboot */ | ||
1519 | ioc->pio_mem_phys = port; | ||
1520 | ioc->pio_chip = (SYSIF_REGS __iomem *)port; | ||
1521 | |||
1522 | return 0; | ||
1523 | } | ||
1524 | |||
1433 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ | 1525 | /*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/ |
1434 | /** | 1526 | /** |
1435 | * mpt_attach - Install a PCI intelligent MPT adapter. | 1527 | * mpt_attach - Install a PCI intelligent MPT adapter. |
@@ -1452,13 +1544,6 @@ int | |||
1452 | mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | 1544 | mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) |
1453 | { | 1545 | { |
1454 | MPT_ADAPTER *ioc; | 1546 | MPT_ADAPTER *ioc; |
1455 | u8 __iomem *mem; | ||
1456 | u8 __iomem *pmem; | ||
1457 | unsigned long mem_phys; | ||
1458 | unsigned long port; | ||
1459 | u32 msize; | ||
1460 | u32 psize; | ||
1461 | int ii; | ||
1462 | u8 cb_idx; | 1547 | u8 cb_idx; |
1463 | int r = -ENODEV; | 1548 | int r = -ENODEV; |
1464 | u8 revision; | 1549 | u8 revision; |
@@ -1468,52 +1553,32 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1468 | struct proc_dir_entry *dent, *ent; | 1553 | struct proc_dir_entry *dent, *ent; |
1469 | #endif | 1554 | #endif |
1470 | 1555 | ||
1471 | if (mpt_debug_level) | ||
1472 | printk(KERN_INFO MYNAM ": mpt_debug_level=%xh\n", mpt_debug_level); | ||
1473 | |||
1474 | ioc = kzalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC); | 1556 | ioc = kzalloc(sizeof(MPT_ADAPTER), GFP_ATOMIC); |
1475 | if (ioc == NULL) { | 1557 | if (ioc == NULL) { |
1476 | printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n"); | 1558 | printk(KERN_ERR MYNAM ": ERROR - Insufficient memory to add adapter!\n"); |
1477 | return -ENOMEM; | 1559 | return -ENOMEM; |
1478 | } | 1560 | } |
1479 | ioc->debug_level = mpt_debug_level; | 1561 | |
1480 | ioc->id = mpt_ids++; | 1562 | ioc->id = mpt_ids++; |
1481 | sprintf(ioc->name, "ioc%d", ioc->id); | 1563 | sprintf(ioc->name, "ioc%d", ioc->id); |
1482 | 1564 | ||
1483 | ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM); | 1565 | /* |
1484 | if (pci_enable_device_mem(pdev)) { | 1566 | * set initial debug level |
1485 | printk(MYIOC_s_ERR_FMT "pci_enable_device_mem() " | 1567 | * (refer to mptdebug.h) |
1486 | "failed\n", ioc->name); | 1568 | * |
1487 | kfree(ioc); | 1569 | */ |
1488 | return r; | 1570 | ioc->debug_level = mpt_debug_level; |
1489 | } | 1571 | if (mpt_debug_level) |
1490 | if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) { | 1572 | printk(KERN_INFO "mpt_debug_level=%xh\n", mpt_debug_level); |
1491 | printk(MYIOC_s_ERR_FMT "pci_request_selected_regions() with " | ||
1492 | "MEM failed\n", ioc->name); | ||
1493 | kfree(ioc); | ||
1494 | return r; | ||
1495 | } | ||
1496 | 1573 | ||
1497 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": mpt_adapter_install\n", ioc->name)); | 1574 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT ": mpt_adapter_install\n", ioc->name)); |
1498 | 1575 | ||
1499 | if (!pci_set_dma_mask(pdev, DMA_64BIT_MASK)) { | 1576 | ioc->pcidev = pdev; |
1500 | dprintk(ioc, printk(MYIOC_s_INFO_FMT | 1577 | if (mpt_mapresources(ioc)) { |
1501 | ": 64 BIT PCI BUS DMA ADDRESSING SUPPORTED\n", ioc->name)); | ||
1502 | } else if (pci_set_dma_mask(pdev, DMA_32BIT_MASK)) { | ||
1503 | printk(MYIOC_s_WARN_FMT ": 32 BIT PCI BUS DMA ADDRESSING NOT SUPPORTED\n", | ||
1504 | ioc->name); | ||
1505 | kfree(ioc); | 1578 | kfree(ioc); |
1506 | return r; | 1579 | return r; |
1507 | } | 1580 | } |
1508 | 1581 | ||
1509 | if (!pci_set_consistent_dma_mask(pdev, DMA_64BIT_MASK)) { | ||
1510 | dprintk(ioc, printk(MYIOC_s_INFO_FMT | ||
1511 | ": Using 64 bit consistent mask\n", ioc->name)); | ||
1512 | } else { | ||
1513 | dprintk(ioc, printk(MYIOC_s_INFO_FMT | ||
1514 | ": Not using 64 bit consistent mask\n", ioc->name)); | ||
1515 | } | ||
1516 | |||
1517 | ioc->alloc_total = sizeof(MPT_ADAPTER); | 1582 | ioc->alloc_total = sizeof(MPT_ADAPTER); |
1518 | ioc->req_sz = MPT_DEFAULT_FRAME_SIZE; /* avoid div by zero! */ | 1583 | ioc->req_sz = MPT_DEFAULT_FRAME_SIZE; /* avoid div by zero! */ |
1519 | ioc->reply_sz = MPT_REPLY_FRAME_SIZE; | 1584 | ioc->reply_sz = MPT_REPLY_FRAME_SIZE; |
@@ -1551,48 +1616,9 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1551 | /* Find lookup slot. */ | 1616 | /* Find lookup slot. */ |
1552 | INIT_LIST_HEAD(&ioc->list); | 1617 | INIT_LIST_HEAD(&ioc->list); |
1553 | 1618 | ||
1554 | mem_phys = msize = 0; | ||
1555 | port = psize = 0; | ||
1556 | for (ii=0; ii < DEVICE_COUNT_RESOURCE; ii++) { | ||
1557 | if (pci_resource_flags(pdev, ii) & PCI_BASE_ADDRESS_SPACE_IO) { | ||
1558 | if (psize) | ||
1559 | continue; | ||
1560 | /* Get I/O space! */ | ||
1561 | port = pci_resource_start(pdev, ii); | ||
1562 | psize = pci_resource_len(pdev,ii); | ||
1563 | } else { | ||
1564 | if (msize) | ||
1565 | continue; | ||
1566 | /* Get memmap */ | ||
1567 | mem_phys = pci_resource_start(pdev, ii); | ||
1568 | msize = pci_resource_len(pdev,ii); | ||
1569 | } | ||
1570 | } | ||
1571 | ioc->mem_size = msize; | ||
1572 | |||
1573 | mem = NULL; | ||
1574 | /* Get logical ptr for PciMem0 space */ | ||
1575 | /*mem = ioremap(mem_phys, msize);*/ | ||
1576 | mem = ioremap(mem_phys, msize); | ||
1577 | if (mem == NULL) { | ||
1578 | printk(MYIOC_s_ERR_FMT "Unable to map adapter memory!\n", ioc->name); | ||
1579 | kfree(ioc); | ||
1580 | return -EINVAL; | ||
1581 | } | ||
1582 | ioc->memmap = mem; | ||
1583 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "mem = %p, mem_phys = %lx\n", ioc->name, mem, mem_phys)); | ||
1584 | |||
1585 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n", | 1619 | dinitprintk(ioc, printk(MYIOC_s_INFO_FMT "facts @ %p, pfacts[0] @ %p\n", |
1586 | ioc->name, &ioc->facts, &ioc->pfacts[0])); | 1620 | ioc->name, &ioc->facts, &ioc->pfacts[0])); |
1587 | 1621 | ||
1588 | ioc->mem_phys = mem_phys; | ||
1589 | ioc->chip = (SYSIF_REGS __iomem *)mem; | ||
1590 | |||
1591 | /* Save Port IO values in case we need to do downloadboot */ | ||
1592 | ioc->pio_mem_phys = port; | ||
1593 | pmem = (u8 __iomem *)port; | ||
1594 | ioc->pio_chip = (SYSIF_REGS __iomem *)pmem; | ||
1595 | |||
1596 | pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision); | 1622 | pci_read_config_byte(pdev, PCI_CLASS_REVISION, &revision); |
1597 | mpt_get_product_name(pdev->vendor, pdev->device, revision, ioc->prod_name); | 1623 | mpt_get_product_name(pdev->vendor, pdev->device, revision, ioc->prod_name); |
1598 | 1624 | ||
@@ -1688,7 +1714,9 @@ mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) | |||
1688 | list_del(&ioc->list); | 1714 | list_del(&ioc->list); |
1689 | if (ioc->alt_ioc) | 1715 | if (ioc->alt_ioc) |
1690 | ioc->alt_ioc->alt_ioc = NULL; | 1716 | ioc->alt_ioc->alt_ioc = NULL; |
1691 | iounmap(mem); | 1717 | iounmap(ioc->memmap); |
1718 | if (r != -5) | ||
1719 | pci_release_selected_regions(pdev, ioc->bars); | ||
1692 | kfree(ioc); | 1720 | kfree(ioc); |
1693 | pci_set_drvdata(pdev, NULL); | 1721 | pci_set_drvdata(pdev, NULL); |
1694 | return r; | 1722 | return r; |
@@ -1784,13 +1812,10 @@ mpt_suspend(struct pci_dev *pdev, pm_message_t state) | |||
1784 | u32 device_state; | 1812 | u32 device_state; |
1785 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); | 1813 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); |
1786 | 1814 | ||
1787 | device_state=pci_choose_state(pdev, state); | 1815 | device_state = pci_choose_state(pdev, state); |
1788 | 1816 | printk(MYIOC_s_INFO_FMT "pci-suspend: pdev=0x%p, slot=%s, Entering " | |
1789 | printk(MYIOC_s_INFO_FMT | 1817 | "operating state [D%d]\n", ioc->name, pdev, pci_name(pdev), |
1790 | "pci-suspend: pdev=0x%p, slot=%s, Entering operating state [D%d]\n", | 1818 | device_state); |
1791 | ioc->name, pdev, pci_name(pdev), device_state); | ||
1792 | |||
1793 | pci_save_state(pdev); | ||
1794 | 1819 | ||
1795 | /* put ioc into READY_STATE */ | 1820 | /* put ioc into READY_STATE */ |
1796 | if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) { | 1821 | if(SendIocReset(ioc, MPI_FUNCTION_IOC_MESSAGE_UNIT_RESET, CAN_SLEEP)) { |
@@ -1805,10 +1830,14 @@ mpt_suspend(struct pci_dev *pdev, pm_message_t state) | |||
1805 | /* Clear any lingering interrupt */ | 1830 | /* Clear any lingering interrupt */ |
1806 | CHIPREG_WRITE32(&ioc->chip->IntStatus, 0); | 1831 | CHIPREG_WRITE32(&ioc->chip->IntStatus, 0); |
1807 | 1832 | ||
1833 | free_irq(ioc->pci_irq, ioc); | ||
1834 | if (mpt_msi_enable) | ||
1835 | pci_disable_msi(ioc->pcidev); | ||
1836 | ioc->pci_irq = -1; | ||
1837 | pci_save_state(pdev); | ||
1808 | pci_disable_device(pdev); | 1838 | pci_disable_device(pdev); |
1809 | pci_release_selected_regions(pdev, ioc->bars); | 1839 | pci_release_selected_regions(pdev, ioc->bars); |
1810 | pci_set_power_state(pdev, device_state); | 1840 | pci_set_power_state(pdev, device_state); |
1811 | |||
1812 | return 0; | 1841 | return 0; |
1813 | } | 1842 | } |
1814 | 1843 | ||
@@ -1823,48 +1852,54 @@ mpt_resume(struct pci_dev *pdev) | |||
1823 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); | 1852 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); |
1824 | u32 device_state = pdev->current_state; | 1853 | u32 device_state = pdev->current_state; |
1825 | int recovery_state; | 1854 | int recovery_state; |
1855 | int err; | ||
1826 | 1856 | ||
1827 | printk(MYIOC_s_INFO_FMT | 1857 | printk(MYIOC_s_INFO_FMT "pci-resume: pdev=0x%p, slot=%s, Previous " |
1828 | "pci-resume: pdev=0x%p, slot=%s, Previous operating state [D%d]\n", | 1858 | "operating state [D%d]\n", ioc->name, pdev, pci_name(pdev), |
1829 | ioc->name, pdev, pci_name(pdev), device_state); | 1859 | device_state); |
1830 | 1860 | ||
1831 | pci_set_power_state(pdev, 0); | 1861 | pci_set_power_state(pdev, PCI_D0); |
1862 | pci_enable_wake(pdev, PCI_D0, 0); | ||
1832 | pci_restore_state(pdev); | 1863 | pci_restore_state(pdev); |
1833 | if (ioc->facts.Flags & MPI_IOCFACTS_FLAGS_FW_DOWNLOAD_BOOT) { | 1864 | ioc->pcidev = pdev; |
1834 | ioc->bars = pci_select_bars(ioc->pcidev, IORESOURCE_MEM | | 1865 | err = mpt_mapresources(ioc); |
1835 | IORESOURCE_IO); | 1866 | if (err) |
1836 | if (pci_enable_device(pdev)) | 1867 | return err; |
1837 | return 0; | ||
1838 | } else { | ||
1839 | ioc->bars = pci_select_bars(pdev, IORESOURCE_MEM); | ||
1840 | if (pci_enable_device_mem(pdev)) | ||
1841 | return 0; | ||
1842 | } | ||
1843 | if (pci_request_selected_regions(pdev, ioc->bars, "mpt")) | ||
1844 | return 0; | ||
1845 | 1868 | ||
1846 | /* enable interrupts */ | 1869 | printk(MYIOC_s_INFO_FMT "pci-resume: ioc-state=0x%x,doorbell=0x%x\n", |
1847 | CHIPREG_WRITE32(&ioc->chip->IntMask, MPI_HIM_DIM); | 1870 | ioc->name, (mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT), |
1848 | ioc->active = 1; | 1871 | CHIPREG_READ32(&ioc->chip->Doorbell)); |
1849 | 1872 | ||
1850 | printk(MYIOC_s_INFO_FMT | 1873 | /* |
1851 | "pci-resume: ioc-state=0x%x,doorbell=0x%x\n", | 1874 | * Errata workaround for SAS pci express: |
1852 | ioc->name, | 1875 | * Upon returning to the D0 state, the contents of the doorbell will be |
1853 | (mpt_GetIocState(ioc, 1) >> MPI_IOC_STATE_SHIFT), | 1876 | * stale data, and this will incorrectly signal to the host driver that |
1854 | CHIPREG_READ32(&ioc->chip->Doorbell)); | 1877 | * the firmware is ready to process mpt commands. The workaround is |
1878 | * to issue a diagnostic reset. | ||
1879 | */ | ||
1880 | if (ioc->bus_type == SAS && (pdev->device == | ||
1881 | MPI_MANUFACTPAGE_DEVID_SAS1068E || pdev->device == | ||
1882 | MPI_MANUFACTPAGE_DEVID_SAS1064E)) { | ||
1883 | if (KickStart(ioc, 1, CAN_SLEEP) < 0) { | ||
1884 | printk(MYIOC_s_WARN_FMT "pci-resume: Cannot recover\n", | ||
1885 | ioc->name); | ||
1886 | goto out; | ||
1887 | } | ||
1888 | } | ||
1855 | 1889 | ||
1856 | /* bring ioc to operational state */ | 1890 | /* bring ioc to operational state */ |
1857 | if ((recovery_state = mpt_do_ioc_recovery(ioc, | 1891 | printk(MYIOC_s_INFO_FMT "Sending mpt_do_ioc_recovery\n", ioc->name); |
1858 | MPT_HOSTEVENT_IOC_RECOVER, CAN_SLEEP)) != 0) { | 1892 | recovery_state = mpt_do_ioc_recovery(ioc, MPT_HOSTEVENT_IOC_BRINGUP, |
1859 | printk(MYIOC_s_INFO_FMT | 1893 | CAN_SLEEP); |
1860 | "pci-resume: Cannot recover, error:[%x]\n", | 1894 | if (recovery_state != 0) |
1861 | ioc->name, recovery_state); | 1895 | printk(MYIOC_s_WARN_FMT "pci-resume: Cannot recover, " |
1862 | } else { | 1896 | "error:[%x]\n", ioc->name, recovery_state); |
1897 | else | ||
1863 | printk(MYIOC_s_INFO_FMT | 1898 | printk(MYIOC_s_INFO_FMT |
1864 | "pci-resume: success\n", ioc->name); | 1899 | "pci-resume: success\n", ioc->name); |
1865 | } | 1900 | out: |
1866 | |||
1867 | return 0; | 1901 | return 0; |
1902 | |||
1868 | } | 1903 | } |
1869 | #endif | 1904 | #endif |
1870 | 1905 | ||
@@ -1903,6 +1938,7 @@ mpt_signal_reset(u8 index, MPT_ADAPTER *ioc, int reset_phase) | |||
1903 | * -3 if READY but PrimeIOCFifos Failed | 1938 | * -3 if READY but PrimeIOCFifos Failed |
1904 | * -4 if READY but IOCInit Failed | 1939 | * -4 if READY but IOCInit Failed |
1905 | * -5 if failed to enable_device and/or request_selected_regions | 1940 | * -5 if failed to enable_device and/or request_selected_regions |
1941 | * -6 if failed to upload firmware | ||
1906 | */ | 1942 | */ |
1907 | static int | 1943 | static int |
1908 | mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | 1944 | mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) |
@@ -2097,7 +2133,7 @@ mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) | |||
2097 | } else { | 2133 | } else { |
2098 | printk(MYIOC_s_WARN_FMT | 2134 | printk(MYIOC_s_WARN_FMT |
2099 | "firmware upload failure!\n", ioc->name); | 2135 | "firmware upload failure!\n", ioc->name); |
2100 | ret = -5; | 2136 | ret = -6; |
2101 | } | 2137 | } |
2102 | } | 2138 | } |
2103 | } | 2139 | } |
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 0c252f60c4c1..c207bda6723b 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -1170,6 +1170,10 @@ mptscsih_shutdown(struct pci_dev *pdev) | |||
1170 | int | 1170 | int |
1171 | mptscsih_suspend(struct pci_dev *pdev, pm_message_t state) | 1171 | mptscsih_suspend(struct pci_dev *pdev, pm_message_t state) |
1172 | { | 1172 | { |
1173 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); | ||
1174 | |||
1175 | scsi_block_requests(ioc->sh); | ||
1176 | flush_scheduled_work(); | ||
1173 | mptscsih_shutdown(pdev); | 1177 | mptscsih_shutdown(pdev); |
1174 | return mpt_suspend(pdev,state); | 1178 | return mpt_suspend(pdev,state); |
1175 | } | 1179 | } |
@@ -1183,7 +1187,12 @@ mptscsih_suspend(struct pci_dev *pdev, pm_message_t state) | |||
1183 | int | 1187 | int |
1184 | mptscsih_resume(struct pci_dev *pdev) | 1188 | mptscsih_resume(struct pci_dev *pdev) |
1185 | { | 1189 | { |
1186 | return mpt_resume(pdev); | 1190 | MPT_ADAPTER *ioc = pci_get_drvdata(pdev); |
1191 | int rc; | ||
1192 | |||
1193 | rc = mpt_resume(pdev); | ||
1194 | scsi_unblock_requests(ioc->sh); | ||
1195 | return rc; | ||
1187 | } | 1196 | } |
1188 | 1197 | ||
1189 | #endif | 1198 | #endif |
diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c index 7f4836b8e71e..5fa4ba0d9934 100644 --- a/drivers/pci/hotplug/pciehp_core.c +++ b/drivers/pci/hotplug/pciehp_core.c | |||
@@ -467,7 +467,7 @@ static int pciehp_probe(struct pcie_device *dev, const struct pcie_port_service_ | |||
467 | t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset); | 467 | t_slot = pciehp_find_slot(ctrl, ctrl->slot_device_offset); |
468 | 468 | ||
469 | t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */ | 469 | t_slot->hpc_ops->get_adapter_status(t_slot, &value); /* Check if slot is occupied */ |
470 | if (value) { | 470 | if (value && pciehp_force) { |
471 | rc = pciehp_enable_slot(t_slot); | 471 | rc = pciehp_enable_slot(t_slot); |
472 | if (rc) /* -ENODEV: shouldn't happen, but deal with it */ | 472 | if (rc) /* -ENODEV: shouldn't happen, but deal with it */ |
473 | value = 0; | 473 | value = 0; |
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig index 82f5ad9c3af4..9e7de63b26ef 100644 --- a/drivers/rtc/Kconfig +++ b/drivers/rtc/Kconfig | |||
@@ -16,7 +16,7 @@ menuconfig RTC_CLASS | |||
16 | probably want to enable one or more of the interfaces below. | 16 | probably want to enable one or more of the interfaces below. |
17 | 17 | ||
18 | This driver can also be built as a module. If so, the module | 18 | This driver can also be built as a module. If so, the module |
19 | will be called rtc-class. | 19 | will be called rtc-core. |
20 | 20 | ||
21 | if RTC_CLASS | 21 | if RTC_CLASS |
22 | 22 | ||
diff --git a/drivers/rtc/rtc-at91sam9.c b/drivers/rtc/rtc-at91sam9.c index bbf10ecf416c..56728a2a3385 100644 --- a/drivers/rtc/rtc-at91sam9.c +++ b/drivers/rtc/rtc-at91sam9.c | |||
@@ -274,7 +274,7 @@ static irqreturn_t at91_rtc_interrupt(int irq, void *_rtc) | |||
274 | * SR clears it, so we must only read it in this irq handler! | 274 | * SR clears it, so we must only read it in this irq handler! |
275 | */ | 275 | */ |
276 | mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); | 276 | mr = rtt_readl(rtc, MR) & (AT91_RTT_ALMIEN | AT91_RTT_RTTINCIEN); |
277 | sr = rtt_readl(rtc, SR) & mr; | 277 | sr = rtt_readl(rtc, SR) & (mr >> 16); |
278 | if (!sr) | 278 | if (!sr) |
279 | return IRQ_NONE; | 279 | return IRQ_NONE; |
280 | 280 | ||
@@ -321,6 +321,10 @@ static int __init at91_rtc_probe(struct platform_device *pdev) | |||
321 | if (!rtc) | 321 | if (!rtc) |
322 | return -ENOMEM; | 322 | return -ENOMEM; |
323 | 323 | ||
324 | /* platform setup code should have handled this; sigh */ | ||
325 | if (!device_can_wakeup(&pdev->dev)) | ||
326 | device_init_wakeup(&pdev->dev, 1); | ||
327 | |||
324 | platform_set_drvdata(pdev, rtc); | 328 | platform_set_drvdata(pdev, rtc); |
325 | rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS); | 329 | rtc->rtt = (void __force __iomem *) (AT91_VA_BASE_SYS - AT91_BASE_SYS); |
326 | rtc->rtt += r->start; | 330 | rtc->rtt += r->start; |
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig index c46666a24809..b9d374082b65 100644 --- a/drivers/scsi/Kconfig +++ b/drivers/scsi/Kconfig | |||
@@ -325,7 +325,7 @@ menuconfig SCSI_LOWLEVEL | |||
325 | depends on SCSI!=n | 325 | depends on SCSI!=n |
326 | default y | 326 | default y |
327 | 327 | ||
328 | if SCSI_LOWLEVEL | 328 | if SCSI_LOWLEVEL && SCSI |
329 | 329 | ||
330 | config ISCSI_TCP | 330 | config ISCSI_TCP |
331 | tristate "iSCSI Initiator over TCP/IP" | 331 | tristate "iSCSI Initiator over TCP/IP" |
diff --git a/drivers/scsi/a100u2w.c b/drivers/scsi/a100u2w.c index f608d4a1d6da..792b2e807bf3 100644 --- a/drivers/scsi/a100u2w.c +++ b/drivers/scsi/a100u2w.c | |||
@@ -674,12 +674,13 @@ static struct orc_scb *__orc_alloc_scb(struct orc_host * host) | |||
674 | for (index = 0; index < 32; index++) { | 674 | for (index = 0; index < 32; index++) { |
675 | if ((host->allocation_map[channel][i] >> index) & 0x01) { | 675 | if ((host->allocation_map[channel][i] >> index) & 0x01) { |
676 | host->allocation_map[channel][i] &= ~(1 << index); | 676 | host->allocation_map[channel][i] &= ~(1 << index); |
677 | break; | 677 | idx = index + 32 * i; |
678 | /* | ||
679 | * Translate the index to a structure instance | ||
680 | */ | ||
681 | return host->scb_virt + idx; | ||
678 | } | 682 | } |
679 | } | 683 | } |
680 | idx = index + 32 * i; | ||
681 | /* Translate the index to a structure instance */ | ||
682 | return (struct orc_scb *) ((unsigned long) host->scb_virt + (idx * sizeof(struct orc_scb))); | ||
683 | } | 684 | } |
684 | return NULL; | 685 | return NULL; |
685 | } | 686 | } |
diff --git a/drivers/scsi/advansys.c b/drivers/scsi/advansys.c index 3c2d6888bb8c..8591585e5cc5 100644 --- a/drivers/scsi/advansys.c +++ b/drivers/scsi/advansys.c | |||
@@ -6439,7 +6439,7 @@ static int AdvLoadMicrocode(AdvPortAddr iop_base, unsigned char *buf, int size, | |||
6439 | i += 2; | 6439 | i += 2; |
6440 | len += 2; | 6440 | len += 2; |
6441 | } else { | 6441 | } else { |
6442 | unsigned char off = buf[i] * 2; | 6442 | unsigned int off = buf[i] * 2; |
6443 | unsigned short word = (buf[off + 1] << 8) | buf[off]; | 6443 | unsigned short word = (buf[off + 1] << 8) | buf[off]; |
6444 | AdvWriteWordAutoIncLram(iop_base, word); | 6444 | AdvWriteWordAutoIncLram(iop_base, word); |
6445 | len += 2; | 6445 | len += 2; |
diff --git a/drivers/scsi/arcmsr/arcmsr.h b/drivers/scsi/arcmsr/arcmsr.h index 0393707bdfce..3288be2e49f8 100644 --- a/drivers/scsi/arcmsr/arcmsr.h +++ b/drivers/scsi/arcmsr/arcmsr.h | |||
@@ -341,13 +341,13 @@ struct MessageUnit_B | |||
341 | uint32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; | 341 | uint32_t done_qbuffer[ARCMSR_MAX_HBB_POSTQUEUE]; |
342 | uint32_t postq_index; | 342 | uint32_t postq_index; |
343 | uint32_t doneq_index; | 343 | uint32_t doneq_index; |
344 | uint32_t __iomem *drv2iop_doorbell_reg; | 344 | void __iomem *drv2iop_doorbell_reg; |
345 | uint32_t __iomem *drv2iop_doorbell_mask_reg; | 345 | void __iomem *drv2iop_doorbell_mask_reg; |
346 | uint32_t __iomem *iop2drv_doorbell_reg; | 346 | void __iomem *iop2drv_doorbell_reg; |
347 | uint32_t __iomem *iop2drv_doorbell_mask_reg; | 347 | void __iomem *iop2drv_doorbell_mask_reg; |
348 | uint32_t __iomem *msgcode_rwbuffer_reg; | 348 | void __iomem *msgcode_rwbuffer_reg; |
349 | uint32_t __iomem *ioctl_wbuffer_reg; | 349 | void __iomem *ioctl_wbuffer_reg; |
350 | uint32_t __iomem *ioctl_rbuffer_reg; | 350 | void __iomem *ioctl_rbuffer_reg; |
351 | }; | 351 | }; |
352 | 352 | ||
353 | /* | 353 | /* |
diff --git a/drivers/scsi/gdth.c b/drivers/scsi/gdth.c index 27ebd336409b..0b2080d33575 100644 --- a/drivers/scsi/gdth.c +++ b/drivers/scsi/gdth.c | |||
@@ -493,6 +493,12 @@ int __gdth_execute(struct scsi_device *sdev, gdth_cmd_str *gdtcmd, char *cmnd, | |||
493 | if (!scp) | 493 | if (!scp) |
494 | return -ENOMEM; | 494 | return -ENOMEM; |
495 | 495 | ||
496 | scp->sense_buffer = kzalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL); | ||
497 | if (!scp->sense_buffer) { | ||
498 | kfree(scp); | ||
499 | return -ENOMEM; | ||
500 | } | ||
501 | |||
496 | scp->device = sdev; | 502 | scp->device = sdev; |
497 | memset(&cmndinfo, 0, sizeof(cmndinfo)); | 503 | memset(&cmndinfo, 0, sizeof(cmndinfo)); |
498 | 504 | ||
@@ -513,6 +519,7 @@ int __gdth_execute(struct scsi_device *sdev, gdth_cmd_str *gdtcmd, char *cmnd, | |||
513 | rval = cmndinfo.status; | 519 | rval = cmndinfo.status; |
514 | if (info) | 520 | if (info) |
515 | *info = cmndinfo.info; | 521 | *info = cmndinfo.info; |
522 | kfree(scp->sense_buffer); | ||
516 | kfree(scp); | 523 | kfree(scp); |
517 | return rval; | 524 | return rval; |
518 | } | 525 | } |
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index ba21d97d1855..f40898dc2d14 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -2162,10 +2162,15 @@ void sdev_evt_send(struct scsi_device *sdev, struct scsi_event *evt) | |||
2162 | { | 2162 | { |
2163 | unsigned long flags; | 2163 | unsigned long flags; |
2164 | 2164 | ||
2165 | #if 0 | ||
2166 | /* FIXME: currently this check eliminates all media change events | ||
2167 | * for polled devices. Need to update to discriminate between AN | ||
2168 | * and polled events */ | ||
2165 | if (!test_bit(evt->evt_type, sdev->supported_events)) { | 2169 | if (!test_bit(evt->evt_type, sdev->supported_events)) { |
2166 | kfree(evt); | 2170 | kfree(evt); |
2167 | return; | 2171 | return; |
2168 | } | 2172 | } |
2173 | #endif | ||
2169 | 2174 | ||
2170 | spin_lock_irqsave(&sdev->list_lock, flags); | 2175 | spin_lock_irqsave(&sdev->list_lock, flags); |
2171 | list_add_tail(&evt->node, &sdev->event_list); | 2176 | list_add_tail(&evt->node, &sdev->event_list); |
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index ed83cdb6e67d..b9b09a704584 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c | |||
@@ -294,6 +294,7 @@ static void scsi_device_dev_release_usercontext(struct work_struct *work) | |||
294 | } | 294 | } |
295 | 295 | ||
296 | if (sdev->request_queue) { | 296 | if (sdev->request_queue) { |
297 | bsg_unregister_queue(sdev->request_queue); | ||
297 | sdev->request_queue->queuedata = NULL; | 298 | sdev->request_queue->queuedata = NULL; |
298 | /* user context needed to free queue */ | 299 | /* user context needed to free queue */ |
299 | scsi_free_queue(sdev->request_queue); | 300 | scsi_free_queue(sdev->request_queue); |
@@ -857,7 +858,6 @@ void __scsi_remove_device(struct scsi_device *sdev) | |||
857 | if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) | 858 | if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) |
858 | return; | 859 | return; |
859 | 860 | ||
860 | bsg_unregister_queue(sdev->request_queue); | ||
861 | class_device_unregister(&sdev->sdev_classdev); | 861 | class_device_unregister(&sdev->sdev_classdev); |
862 | transport_remove_device(dev); | 862 | transport_remove_device(dev); |
863 | device_del(dev); | 863 | device_del(dev); |
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 7aee64dbfbeb..5fe7aaed904c 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -1654,6 +1654,7 @@ static int sd_probe(struct device *dev) | |||
1654 | sdkp->disk = gd; | 1654 | sdkp->disk = gd; |
1655 | sdkp->index = index; | 1655 | sdkp->index = index; |
1656 | sdkp->openers = 0; | 1656 | sdkp->openers = 0; |
1657 | sdkp->previous_state = 1; | ||
1657 | 1658 | ||
1658 | if (!sdp->timeout) { | 1659 | if (!sdp->timeout) { |
1659 | if (sdp->type != TYPE_MOD) | 1660 | if (sdp->type != TYPE_MOD) |
diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c index 208565bdbe8e..7ee86d4a7618 100644 --- a/drivers/scsi/sr.c +++ b/drivers/scsi/sr.c | |||
@@ -623,6 +623,7 @@ static int sr_probe(struct device *dev) | |||
623 | cd->disk = disk; | 623 | cd->disk = disk; |
624 | cd->capacity = 0x1fffff; | 624 | cd->capacity = 0x1fffff; |
625 | cd->device->changed = 1; /* force recheck CD type */ | 625 | cd->device->changed = 1; /* force recheck CD type */ |
626 | cd->previous_state = 1; | ||
626 | cd->use = 1; | 627 | cd->use = 1; |
627 | cd->readcd_known = 0; | 628 | cd->readcd_known = 0; |
628 | cd->readcd_cdda = 0; | 629 | cd->readcd_cdda = 0; |
diff --git a/drivers/serial/sh-sci.c b/drivers/serial/sh-sci.c index a8c116b80bff..9d244d1644e1 100644 --- a/drivers/serial/sh-sci.c +++ b/drivers/serial/sh-sci.c | |||
@@ -414,12 +414,12 @@ static void sci_init_pins_scif(struct uart_port *port, unsigned int cflag) | |||
414 | defined(CONFIG_CPU_SUBTYPE_SH7785) | 414 | defined(CONFIG_CPU_SUBTYPE_SH7785) |
415 | static inline int scif_txroom(struct uart_port *port) | 415 | static inline int scif_txroom(struct uart_port *port) |
416 | { | 416 | { |
417 | return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0x7f); | 417 | return SCIF_TXROOM_MAX - (sci_in(port, SCTFDR) & 0xff); |
418 | } | 418 | } |
419 | 419 | ||
420 | static inline int scif_rxroom(struct uart_port *port) | 420 | static inline int scif_rxroom(struct uart_port *port) |
421 | { | 421 | { |
422 | return sci_in(port, SCRFDR) & 0x7f; | 422 | return sci_in(port, SCRFDR) & 0xff; |
423 | } | 423 | } |
424 | #else | 424 | #else |
425 | static inline int scif_txroom(struct uart_port *port) | 425 | static inline int scif_txroom(struct uart_port *port) |
diff --git a/drivers/thermal/Kconfig b/drivers/thermal/Kconfig index 3ab313ed441c..17e71d56f31e 100644 --- a/drivers/thermal/Kconfig +++ b/drivers/thermal/Kconfig | |||
@@ -4,8 +4,6 @@ | |||
4 | 4 | ||
5 | menuconfig THERMAL | 5 | menuconfig THERMAL |
6 | bool "Generic Thermal sysfs driver" | 6 | bool "Generic Thermal sysfs driver" |
7 | select HWMON | ||
8 | default y | ||
9 | help | 7 | help |
10 | Generic Thermal Sysfs driver offers a generic mechanism for | 8 | Generic Thermal Sysfs driver offers a generic mechanism for |
11 | thermal management. Usually it's made up of one or more thermal | 9 | thermal management. Usually it's made up of one or more thermal |
diff --git a/drivers/thermal/thermal.c b/drivers/thermal/thermal.c index 41bd4c805ace..8b86e53ccf7a 100644 --- a/drivers/thermal/thermal.c +++ b/drivers/thermal/thermal.c | |||
@@ -30,10 +30,8 @@ | |||
30 | #include <linux/idr.h> | 30 | #include <linux/idr.h> |
31 | #include <linux/thermal.h> | 31 | #include <linux/thermal.h> |
32 | #include <linux/spinlock.h> | 32 | #include <linux/spinlock.h> |
33 | #include <linux/hwmon.h> | ||
34 | #include <linux/hwmon-sysfs.h> | ||
35 | 33 | ||
36 | MODULE_AUTHOR("Zhang Rui"); | 34 | MODULE_AUTHOR("Zhang Rui") |
37 | MODULE_DESCRIPTION("Generic thermal management sysfs support"); | 35 | MODULE_DESCRIPTION("Generic thermal management sysfs support"); |
38 | MODULE_LICENSE("GPL"); | 36 | MODULE_LICENSE("GPL"); |
39 | 37 | ||
@@ -58,9 +56,6 @@ static LIST_HEAD(thermal_tz_list); | |||
58 | static LIST_HEAD(thermal_cdev_list); | 56 | static LIST_HEAD(thermal_cdev_list); |
59 | static DEFINE_MUTEX(thermal_list_lock); | 57 | static DEFINE_MUTEX(thermal_list_lock); |
60 | 58 | ||
61 | static struct device *thermal_hwmon; | ||
62 | #define MAX_THERMAL_ZONES 10 | ||
63 | |||
64 | static int get_idr(struct idr *idr, struct mutex *lock, int *id) | 59 | static int get_idr(struct idr *idr, struct mutex *lock, int *id) |
65 | { | 60 | { |
66 | int err; | 61 | int err; |
@@ -92,67 +87,7 @@ static void release_idr(struct idr *idr, struct mutex *lock, int id) | |||
92 | mutex_unlock(lock); | 87 | mutex_unlock(lock); |
93 | } | 88 | } |
94 | 89 | ||
95 | /* hwmon sys I/F*/ | 90 | /* sys I/F for thermal zone */ |
96 | static ssize_t | ||
97 | name_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
98 | { | ||
99 | return sprintf(buf, "thermal_sys_class\n"); | ||
100 | } | ||
101 | |||
102 | static ssize_t | ||
103 | temp_input_show(struct device *dev, struct device_attribute *attr, char *buf) | ||
104 | { | ||
105 | struct thermal_zone_device *tz; | ||
106 | struct sensor_device_attribute *sensor_attr | ||
107 | = to_sensor_dev_attr(attr); | ||
108 | |||
109 | list_for_each_entry(tz, &thermal_tz_list, node) | ||
110 | if (tz->id == sensor_attr->index) | ||
111 | return tz->ops->get_temp(tz, buf); | ||
112 | |||
113 | return -ENODEV; | ||
114 | } | ||
115 | |||
116 | static ssize_t | ||
117 | temp_crit_show(struct device *dev, struct device_attribute *attr, | ||
118 | char *buf) | ||
119 | { | ||
120 | struct thermal_zone_device *tz; | ||
121 | struct sensor_device_attribute *sensor_attr | ||
122 | = to_sensor_dev_attr(attr); | ||
123 | |||
124 | list_for_each_entry(tz, &thermal_tz_list, node) | ||
125 | if (tz->id == sensor_attr->index) | ||
126 | return tz->ops->get_trip_temp(tz, 0, buf); | ||
127 | |||
128 | return -ENODEV; | ||
129 | } | ||
130 | |||
131 | static DEVICE_ATTR(name, 0444, name_show, NULL); | ||
132 | static struct sensor_device_attribute sensor_attrs[] = { | ||
133 | SENSOR_ATTR(temp1_input, 0444, temp_input_show, NULL, 0), | ||
134 | SENSOR_ATTR(temp1_crit, 0444, temp_crit_show, NULL, 0), | ||
135 | SENSOR_ATTR(temp2_input, 0444, temp_input_show, NULL, 1), | ||
136 | SENSOR_ATTR(temp2_crit, 0444, temp_crit_show, NULL, 1), | ||
137 | SENSOR_ATTR(temp3_input, 0444, temp_input_show, NULL, 2), | ||
138 | SENSOR_ATTR(temp3_crit, 0444, temp_crit_show, NULL, 2), | ||
139 | SENSOR_ATTR(temp4_input, 0444, temp_input_show, NULL, 3), | ||
140 | SENSOR_ATTR(temp4_crit, 0444, temp_crit_show, NULL, 3), | ||
141 | SENSOR_ATTR(temp5_input, 0444, temp_input_show, NULL, 4), | ||
142 | SENSOR_ATTR(temp5_crit, 0444, temp_crit_show, NULL, 4), | ||
143 | SENSOR_ATTR(temp6_input, 0444, temp_input_show, NULL, 5), | ||
144 | SENSOR_ATTR(temp6_crit, 0444, temp_crit_show, NULL, 5), | ||
145 | SENSOR_ATTR(temp7_input, 0444, temp_input_show, NULL, 6), | ||
146 | SENSOR_ATTR(temp7_crit, 0444, temp_crit_show, NULL, 6), | ||
147 | SENSOR_ATTR(temp8_input, 0444, temp_input_show, NULL, 7), | ||
148 | SENSOR_ATTR(temp8_crit, 0444, temp_crit_show, NULL, 7), | ||
149 | SENSOR_ATTR(temp9_input, 0444, temp_input_show, NULL, 8), | ||
150 | SENSOR_ATTR(temp9_crit, 0444, temp_crit_show, NULL, 8), | ||
151 | SENSOR_ATTR(temp10_input, 0444, temp_input_show, NULL, 9), | ||
152 | SENSOR_ATTR(temp10_crit, 0444, temp_crit_show, NULL, 9), | ||
153 | }; | ||
154 | |||
155 | /* thermal zone sys I/F */ | ||
156 | 91 | ||
157 | #define to_thermal_zone(_dev) \ | 92 | #define to_thermal_zone(_dev) \ |
158 | container_of(_dev, struct thermal_zone_device, device) | 93 | container_of(_dev, struct thermal_zone_device, device) |
@@ -279,7 +214,7 @@ do { \ | |||
279 | device_remove_file(_dev, &trip_point_attrs[_index * 2 + 1]); \ | 214 | device_remove_file(_dev, &trip_point_attrs[_index * 2 + 1]); \ |
280 | } while (0) | 215 | } while (0) |
281 | 216 | ||
282 | /* cooling device sys I/F */ | 217 | /* sys I/F for cooling device */ |
283 | #define to_cooling_device(_dev) \ | 218 | #define to_cooling_device(_dev) \ |
284 | container_of(_dev, struct thermal_cooling_device, device) | 219 | container_of(_dev, struct thermal_cooling_device, device) |
285 | 220 | ||
@@ -512,9 +447,6 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, | |||
512 | struct thermal_zone_device *pos; | 447 | struct thermal_zone_device *pos; |
513 | int result; | 448 | int result; |
514 | 449 | ||
515 | if (!type) | ||
516 | return ERR_PTR(-EINVAL); | ||
517 | |||
518 | if (strlen(type) >= THERMAL_NAME_LENGTH) | 450 | if (strlen(type) >= THERMAL_NAME_LENGTH) |
519 | return ERR_PTR(-EINVAL); | 451 | return ERR_PTR(-EINVAL); |
520 | 452 | ||
@@ -545,9 +477,11 @@ struct thermal_cooling_device *thermal_cooling_device_register(char *type, | |||
545 | } | 477 | } |
546 | 478 | ||
547 | /* sys I/F */ | 479 | /* sys I/F */ |
548 | result = device_create_file(&cdev->device, &dev_attr_cdev_type); | 480 | if (type) { |
549 | if (result) | 481 | result = device_create_file(&cdev->device, &dev_attr_cdev_type); |
550 | goto unregister; | 482 | if (result) |
483 | goto unregister; | ||
484 | } | ||
551 | 485 | ||
552 | result = device_create_file(&cdev->device, &dev_attr_max_state); | 486 | result = device_create_file(&cdev->device, &dev_attr_max_state); |
553 | if (result) | 487 | if (result) |
@@ -613,8 +547,8 @@ void thermal_cooling_device_unregister(struct | |||
613 | tz->ops->unbind(tz, cdev); | 547 | tz->ops->unbind(tz, cdev); |
614 | } | 548 | } |
615 | mutex_unlock(&thermal_list_lock); | 549 | mutex_unlock(&thermal_list_lock); |
616 | 550 | if (cdev->type[0]) | |
617 | device_remove_file(&cdev->device, &dev_attr_cdev_type); | 551 | device_remove_file(&cdev->device, &dev_attr_cdev_type); |
618 | device_remove_file(&cdev->device, &dev_attr_max_state); | 552 | device_remove_file(&cdev->device, &dev_attr_max_state); |
619 | device_remove_file(&cdev->device, &dev_attr_cur_state); | 553 | device_remove_file(&cdev->device, &dev_attr_cur_state); |
620 | 554 | ||
@@ -646,9 +580,6 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, | |||
646 | int result; | 580 | int result; |
647 | int count; | 581 | int count; |
648 | 582 | ||
649 | if (!type) | ||
650 | return ERR_PTR(-EINVAL); | ||
651 | |||
652 | if (strlen(type) >= THERMAL_NAME_LENGTH) | 583 | if (strlen(type) >= THERMAL_NAME_LENGTH) |
653 | return ERR_PTR(-EINVAL); | 584 | return ERR_PTR(-EINVAL); |
654 | 585 | ||
@@ -670,13 +601,6 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, | |||
670 | kfree(tz); | 601 | kfree(tz); |
671 | return ERR_PTR(result); | 602 | return ERR_PTR(result); |
672 | } | 603 | } |
673 | if (tz->id >= MAX_THERMAL_ZONES) { | ||
674 | printk(KERN_ERR PREFIX | ||
675 | "Too many thermal zones\n"); | ||
676 | release_idr(&thermal_tz_idr, &thermal_idr_lock, tz->id); | ||
677 | kfree(tz); | ||
678 | return ERR_PTR(-EINVAL); | ||
679 | } | ||
680 | 604 | ||
681 | strcpy(tz->type, type); | 605 | strcpy(tz->type, type); |
682 | tz->ops = ops; | 606 | tz->ops = ops; |
@@ -691,27 +615,12 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, | |||
691 | return ERR_PTR(result); | 615 | return ERR_PTR(result); |
692 | } | 616 | } |
693 | 617 | ||
694 | /* hwmon sys I/F */ | ||
695 | result = device_create_file(thermal_hwmon, | ||
696 | &sensor_attrs[tz->id * 2].dev_attr); | ||
697 | if (result) | ||
698 | goto unregister; | ||
699 | |||
700 | if (trips > 0) { | ||
701 | char buf[40]; | ||
702 | result = tz->ops->get_trip_type(tz, 0, buf); | ||
703 | if (result > 0 && !strcmp(buf, "critical\n")) { | ||
704 | result = device_create_file(thermal_hwmon, | ||
705 | &sensor_attrs[tz->id * 2 + 1].dev_attr); | ||
706 | if (result) | ||
707 | goto unregister; | ||
708 | } | ||
709 | } | ||
710 | |||
711 | /* sys I/F */ | 618 | /* sys I/F */ |
712 | result = device_create_file(&tz->device, &dev_attr_type); | 619 | if (type) { |
713 | if (result) | 620 | result = device_create_file(&tz->device, &dev_attr_type); |
714 | goto unregister; | 621 | if (result) |
622 | goto unregister; | ||
623 | } | ||
715 | 624 | ||
716 | result = device_create_file(&tz->device, &dev_attr_temp); | 625 | result = device_create_file(&tz->device, &dev_attr_temp); |
717 | if (result) | 626 | if (result) |
@@ -778,17 +687,8 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz) | |||
778 | tz->ops->unbind(tz, cdev); | 687 | tz->ops->unbind(tz, cdev); |
779 | mutex_unlock(&thermal_list_lock); | 688 | mutex_unlock(&thermal_list_lock); |
780 | 689 | ||
781 | device_remove_file(thermal_hwmon, | 690 | if (tz->type[0]) |
782 | &sensor_attrs[tz->id * 2].dev_attr); | 691 | device_remove_file(&tz->device, &dev_attr_type); |
783 | if (tz->trips > 0) { | ||
784 | char buf[40]; | ||
785 | if (tz->ops->get_trip_type(tz, 0, buf) > 0) | ||
786 | if (!strcmp(buf, "critical\n")) | ||
787 | device_remove_file(thermal_hwmon, | ||
788 | &sensor_attrs[tz->id * 2 + 1].dev_attr); | ||
789 | } | ||
790 | |||
791 | device_remove_file(&tz->device, &dev_attr_type); | ||
792 | device_remove_file(&tz->device, &dev_attr_temp); | 692 | device_remove_file(&tz->device, &dev_attr_temp); |
793 | if (tz->ops->get_mode) | 693 | if (tz->ops->get_mode) |
794 | device_remove_file(&tz->device, &dev_attr_mode); | 694 | device_remove_file(&tz->device, &dev_attr_mode); |
@@ -805,19 +705,6 @@ void thermal_zone_device_unregister(struct thermal_zone_device *tz) | |||
805 | 705 | ||
806 | EXPORT_SYMBOL(thermal_zone_device_unregister); | 706 | EXPORT_SYMBOL(thermal_zone_device_unregister); |
807 | 707 | ||
808 | static void thermal_exit(void) | ||
809 | { | ||
810 | if (thermal_hwmon) { | ||
811 | device_remove_file(thermal_hwmon, &dev_attr_name); | ||
812 | hwmon_device_unregister(thermal_hwmon); | ||
813 | } | ||
814 | class_unregister(&thermal_class); | ||
815 | idr_destroy(&thermal_tz_idr); | ||
816 | idr_destroy(&thermal_cdev_idr); | ||
817 | mutex_destroy(&thermal_idr_lock); | ||
818 | mutex_destroy(&thermal_list_lock); | ||
819 | } | ||
820 | |||
821 | static int __init thermal_init(void) | 708 | static int __init thermal_init(void) |
822 | { | 709 | { |
823 | int result = 0; | 710 | int result = 0; |
@@ -829,21 +716,17 @@ static int __init thermal_init(void) | |||
829 | mutex_destroy(&thermal_idr_lock); | 716 | mutex_destroy(&thermal_idr_lock); |
830 | mutex_destroy(&thermal_list_lock); | 717 | mutex_destroy(&thermal_list_lock); |
831 | } | 718 | } |
832 | |||
833 | thermal_hwmon = hwmon_device_register(NULL); | ||
834 | if (IS_ERR(thermal_hwmon)) { | ||
835 | result = PTR_ERR(thermal_hwmon); | ||
836 | thermal_hwmon = NULL; | ||
837 | printk(KERN_ERR PREFIX | ||
838 | "unable to register hwmon device\n"); | ||
839 | thermal_exit(); | ||
840 | return result; | ||
841 | } | ||
842 | |||
843 | result = device_create_file(thermal_hwmon, &dev_attr_name); | ||
844 | |||
845 | return result; | 719 | return result; |
846 | } | 720 | } |
847 | 721 | ||
722 | static void __exit thermal_exit(void) | ||
723 | { | ||
724 | class_unregister(&thermal_class); | ||
725 | idr_destroy(&thermal_tz_idr); | ||
726 | idr_destroy(&thermal_cdev_idr); | ||
727 | mutex_destroy(&thermal_idr_lock); | ||
728 | mutex_destroy(&thermal_list_lock); | ||
729 | } | ||
730 | |||
848 | subsys_initcall(thermal_init); | 731 | subsys_initcall(thermal_init); |
849 | module_exit(thermal_exit); | 732 | module_exit(thermal_exit); |
diff --git a/drivers/usb/storage/isd200.c b/drivers/usb/storage/isd200.c index 2ae1e8673b19..9d3f28b92cbe 100644 --- a/drivers/usb/storage/isd200.c +++ b/drivers/usb/storage/isd200.c | |||
@@ -1469,6 +1469,7 @@ static void isd200_free_info_ptrs(void *info_) | |||
1469 | if (info) { | 1469 | if (info) { |
1470 | kfree(info->id); | 1470 | kfree(info->id); |
1471 | kfree(info->RegsBuf); | 1471 | kfree(info->RegsBuf); |
1472 | kfree(info->srb.sense_buffer); | ||
1472 | } | 1473 | } |
1473 | } | 1474 | } |
1474 | 1475 | ||
@@ -1494,7 +1495,9 @@ static int isd200_init_info(struct us_data *us) | |||
1494 | kzalloc(sizeof(struct hd_driveid), GFP_KERNEL); | 1495 | kzalloc(sizeof(struct hd_driveid), GFP_KERNEL); |
1495 | info->RegsBuf = (unsigned char *) | 1496 | info->RegsBuf = (unsigned char *) |
1496 | kmalloc(sizeof(info->ATARegs), GFP_KERNEL); | 1497 | kmalloc(sizeof(info->ATARegs), GFP_KERNEL); |
1497 | if (!info->id || !info->RegsBuf) { | 1498 | info->srb.sense_buffer = |
1499 | kmalloc(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL); | ||
1500 | if (!info->id || !info->RegsBuf || !info->srb.sense_buffer) { | ||
1498 | isd200_free_info_ptrs(info); | 1501 | isd200_free_info_ptrs(info); |
1499 | kfree(info); | 1502 | kfree(info); |
1500 | retStatus = ISD200_ERROR; | 1503 | retStatus = ISD200_ERROR; |
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig index e0b0580705e4..1bd5fb30237d 100644 --- a/drivers/video/Kconfig +++ b/drivers/video/Kconfig | |||
@@ -1893,6 +1893,20 @@ config FB_XILINX | |||
1893 | framebuffer. ML300 carries a 640*480 LCD display on the board, | 1893 | framebuffer. ML300 carries a 640*480 LCD display on the board, |
1894 | ML403 uses a standard DB15 VGA connector. | 1894 | ML403 uses a standard DB15 VGA connector. |
1895 | 1895 | ||
1896 | config FB_METRONOME | ||
1897 | tristate "Metronome display controller support" | ||
1898 | depends on FB && ARCH_PXA && MMU | ||
1899 | select FB_SYS_FILLRECT | ||
1900 | select FB_SYS_COPYAREA | ||
1901 | select FB_SYS_IMAGEBLIT | ||
1902 | select FB_SYS_FOPS | ||
1903 | select FB_DEFERRED_IO | ||
1904 | help | ||
1905 | This enables support for the Metronome display controller. Tested | ||
1906 | with an E-Ink 800x600 display and Gumstix Connex through an AMLCD | ||
1907 | interface. Please read <file:Documentation/fb/metronomefb.txt> | ||
1908 | for more information. | ||
1909 | |||
1896 | config FB_VIRTUAL | 1910 | config FB_VIRTUAL |
1897 | tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)" | 1911 | tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)" |
1898 | depends on FB | 1912 | depends on FB |
diff --git a/drivers/video/Makefile b/drivers/video/Makefile index 03371c789039..11c0e5e05f21 100644 --- a/drivers/video/Makefile +++ b/drivers/video/Makefile | |||
@@ -103,6 +103,7 @@ obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o | |||
103 | obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o | 103 | obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o |
104 | obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o | 104 | obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o |
105 | obj-$(CONFIG_FB_MAXINE) += maxinefb.o | 105 | obj-$(CONFIG_FB_MAXINE) += maxinefb.o |
106 | obj-$(CONFIG_FB_METRONOME) += metronomefb.o | ||
106 | obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o | 107 | obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o |
107 | obj-$(CONFIG_FB_IMX) += imxfb.o | 108 | obj-$(CONFIG_FB_IMX) += imxfb.o |
108 | obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o | 109 | obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o |
diff --git a/drivers/video/fb_defio.c b/drivers/video/fb_defio.c index 0f8cfb988c90..24843fdd5395 100644 --- a/drivers/video/fb_defio.c +++ b/drivers/video/fb_defio.c | |||
@@ -4,7 +4,7 @@ | |||
4 | * Copyright (C) 2006 Jaya Kumar | 4 | * Copyright (C) 2006 Jaya Kumar |
5 | * | 5 | * |
6 | * This file is subject to the terms and conditions of the GNU General Public | 6 | * This file is subject to the terms and conditions of the GNU General Public |
7 | * License. See the file COPYING in the main directory of this archive | 7 | * License. See the file COPYING in the main directory of this archive |
8 | * for more details. | 8 | * for more details. |
9 | */ | 9 | */ |
10 | 10 | ||
@@ -31,7 +31,7 @@ static int fb_deferred_io_fault(struct vm_area_struct *vma, | |||
31 | unsigned long offset; | 31 | unsigned long offset; |
32 | struct page *page; | 32 | struct page *page; |
33 | struct fb_info *info = vma->vm_private_data; | 33 | struct fb_info *info = vma->vm_private_data; |
34 | /* info->screen_base is in System RAM */ | 34 | /* info->screen_base is virtual memory */ |
35 | void *screen_base = (void __force *) info->screen_base; | 35 | void *screen_base = (void __force *) info->screen_base; |
36 | 36 | ||
37 | offset = vmf->pgoff << PAGE_SHIFT; | 37 | offset = vmf->pgoff << PAGE_SHIFT; |
@@ -43,6 +43,15 @@ static int fb_deferred_io_fault(struct vm_area_struct *vma, | |||
43 | return VM_FAULT_SIGBUS; | 43 | return VM_FAULT_SIGBUS; |
44 | 44 | ||
45 | get_page(page); | 45 | get_page(page); |
46 | |||
47 | if (vma->vm_file) | ||
48 | page->mapping = vma->vm_file->f_mapping; | ||
49 | else | ||
50 | printk(KERN_ERR "no mapping available\n"); | ||
51 | |||
52 | BUG_ON(!page->mapping); | ||
53 | page->index = vmf->pgoff; | ||
54 | |||
46 | vmf->page = page; | 55 | vmf->page = page; |
47 | return 0; | 56 | return 0; |
48 | } | 57 | } |
@@ -138,11 +147,20 @@ EXPORT_SYMBOL_GPL(fb_deferred_io_init); | |||
138 | 147 | ||
139 | void fb_deferred_io_cleanup(struct fb_info *info) | 148 | void fb_deferred_io_cleanup(struct fb_info *info) |
140 | { | 149 | { |
150 | void *screen_base = (void __force *) info->screen_base; | ||
141 | struct fb_deferred_io *fbdefio = info->fbdefio; | 151 | struct fb_deferred_io *fbdefio = info->fbdefio; |
152 | struct page *page; | ||
153 | int i; | ||
142 | 154 | ||
143 | BUG_ON(!fbdefio); | 155 | BUG_ON(!fbdefio); |
144 | cancel_delayed_work(&info->deferred_work); | 156 | cancel_delayed_work(&info->deferred_work); |
145 | flush_scheduled_work(); | 157 | flush_scheduled_work(); |
158 | |||
159 | /* clear out the mapping that we setup */ | ||
160 | for (i = 0 ; i < info->fix.smem_len; i += PAGE_SIZE) { | ||
161 | page = vmalloc_to_page(screen_base + i); | ||
162 | page->mapping = NULL; | ||
163 | } | ||
146 | } | 164 | } |
147 | EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); | 165 | EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); |
148 | 166 | ||
diff --git a/drivers/video/i810/i810_main.c b/drivers/video/i810/i810_main.c index 1d13dd099af8..a24e680d2b9c 100644 --- a/drivers/video/i810/i810_main.c +++ b/drivers/video/i810/i810_main.c | |||
@@ -1476,7 +1476,7 @@ static int i810fb_cursor(struct fb_info *info, struct fb_cursor *cursor) | |||
1476 | struct i810fb_par *par = info->par; | 1476 | struct i810fb_par *par = info->par; |
1477 | u8 __iomem *mmio = par->mmio_start_virtual; | 1477 | u8 __iomem *mmio = par->mmio_start_virtual; |
1478 | 1478 | ||
1479 | if (!(par->dev_flags & LOCKUP)) | 1479 | if (par->dev_flags & LOCKUP) |
1480 | return -ENXIO; | 1480 | return -ENXIO; |
1481 | 1481 | ||
1482 | if (cursor->image.width > 64 || cursor->image.height > 64) | 1482 | if (cursor->image.width > 64 || cursor->image.height > 64) |
diff --git a/drivers/video/metronomefb.c b/drivers/video/metronomefb.c new file mode 100644 index 000000000000..e9a89fd82757 --- /dev/null +++ b/drivers/video/metronomefb.c | |||
@@ -0,0 +1,999 @@ | |||
1 | /* | ||
2 | * linux/drivers/video/metronomefb.c -- FB driver for Metronome controller | ||
3 | * | ||
4 | * Copyright (C) 2008, Jaya Kumar | ||
5 | * | ||
6 | * This file is subject to the terms and conditions of the GNU General Public | ||
7 | * License. See the file COPYING in the main directory of this archive for | ||
8 | * more details. | ||
9 | * | ||
10 | * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven. | ||
11 | * | ||
12 | * This work was made possible by help and equipment support from E-Ink | ||
13 | * Corporation. http://support.eink.com/community | ||
14 | * | ||
15 | * This driver is written to be used with the Metronome display controller. | ||
16 | * It was tested with an E-Ink 800x600 Vizplex EPD on a Gumstix Connex board | ||
17 | * using the Lyre interface board. | ||
18 | * | ||
19 | * General notes: | ||
20 | * - User must set metronomefb_enable=1 to enable it. | ||
21 | * - See Documentation/fb/metronomefb.txt for how metronome works. | ||
22 | */ | ||
23 | #include <linux/module.h> | ||
24 | #include <linux/kernel.h> | ||
25 | #include <linux/errno.h> | ||
26 | #include <linux/string.h> | ||
27 | #include <linux/mm.h> | ||
28 | #include <linux/slab.h> | ||
29 | #include <linux/vmalloc.h> | ||
30 | #include <linux/delay.h> | ||
31 | #include <linux/interrupt.h> | ||
32 | #include <linux/fb.h> | ||
33 | #include <linux/init.h> | ||
34 | #include <linux/platform_device.h> | ||
35 | #include <linux/list.h> | ||
36 | #include <linux/firmware.h> | ||
37 | #include <linux/dma-mapping.h> | ||
38 | #include <linux/uaccess.h> | ||
39 | #include <linux/irq.h> | ||
40 | |||
41 | #include <asm/arch/pxa-regs.h> | ||
42 | #include <asm/unaligned.h> | ||
43 | |||
44 | #define DEBUG 1 | ||
45 | #ifdef DEBUG | ||
46 | #define DPRINTK(f, a...) printk(KERN_DEBUG "%s: " f, __func__ , ## a) | ||
47 | #else | ||
48 | #define DPRINTK(f, a...) | ||
49 | #endif | ||
50 | |||
51 | |||
52 | /* Display specific information */ | ||
53 | #define DPY_W 832 | ||
54 | #define DPY_H 622 | ||
55 | |||
56 | struct metromem_desc { | ||
57 | u32 mFDADR0; | ||
58 | u32 mFSADR0; | ||
59 | u32 mFIDR0; | ||
60 | u32 mLDCMD0; | ||
61 | }; | ||
62 | |||
63 | struct metromem_cmd { | ||
64 | u16 opcode; | ||
65 | u16 args[((64-2)/2)]; | ||
66 | u16 csum; | ||
67 | }; | ||
68 | |||
69 | struct metronomefb_par { | ||
70 | unsigned char *metromem; | ||
71 | struct metromem_desc *metromem_desc; | ||
72 | struct metromem_cmd *metromem_cmd; | ||
73 | unsigned char *metromem_wfm; | ||
74 | unsigned char *metromem_img; | ||
75 | u16 *metromem_img_csum; | ||
76 | u16 *csum_table; | ||
77 | int metromemsize; | ||
78 | dma_addr_t metromem_dma; | ||
79 | dma_addr_t metromem_desc_dma; | ||
80 | struct fb_info *info; | ||
81 | wait_queue_head_t waitq; | ||
82 | u8 frame_count; | ||
83 | }; | ||
84 | |||
85 | /* frame differs from image. frame includes non-visible pixels */ | ||
86 | struct epd_frame { | ||
87 | int fw; /* frame width */ | ||
88 | int fh; /* frame height */ | ||
89 | }; | ||
90 | |||
91 | static struct epd_frame epd_frame_table[] = { | ||
92 | { | ||
93 | .fw = 832, | ||
94 | .fh = 622 | ||
95 | }, | ||
96 | }; | ||
97 | |||
98 | static struct fb_fix_screeninfo metronomefb_fix __devinitdata = { | ||
99 | .id = "metronomefb", | ||
100 | .type = FB_TYPE_PACKED_PIXELS, | ||
101 | .visual = FB_VISUAL_STATIC_PSEUDOCOLOR, | ||
102 | .xpanstep = 0, | ||
103 | .ypanstep = 0, | ||
104 | .ywrapstep = 0, | ||
105 | .line_length = DPY_W, | ||
106 | .accel = FB_ACCEL_NONE, | ||
107 | }; | ||
108 | |||
109 | static struct fb_var_screeninfo metronomefb_var __devinitdata = { | ||
110 | .xres = DPY_W, | ||
111 | .yres = DPY_H, | ||
112 | .xres_virtual = DPY_W, | ||
113 | .yres_virtual = DPY_H, | ||
114 | .bits_per_pixel = 8, | ||
115 | .grayscale = 1, | ||
116 | .nonstd = 1, | ||
117 | .red = { 4, 3, 0 }, | ||
118 | .green = { 0, 0, 0 }, | ||
119 | .blue = { 0, 0, 0 }, | ||
120 | .transp = { 0, 0, 0 }, | ||
121 | }; | ||
122 | |||
123 | static unsigned int metronomefb_enable; | ||
124 | |||
125 | struct waveform_hdr { | ||
126 | u8 stuff[32]; | ||
127 | |||
128 | u8 wmta[3]; | ||
129 | u8 fvsn; | ||
130 | |||
131 | u8 luts; | ||
132 | u8 mc; | ||
133 | u8 trc; | ||
134 | u8 stuff3; | ||
135 | |||
136 | u8 endb; | ||
137 | u8 swtb; | ||
138 | u8 stuff2a[2]; | ||
139 | |||
140 | u8 stuff2b[3]; | ||
141 | u8 wfm_cs; | ||
142 | } __attribute__ ((packed)); | ||
143 | |||
144 | /* main metronomefb functions */ | ||
145 | static u8 calc_cksum(int start, int end, u8 *mem) | ||
146 | { | ||
147 | u8 tmp = 0; | ||
148 | int i; | ||
149 | |||
150 | for (i = start; i < end; i++) | ||
151 | tmp += mem[i]; | ||
152 | |||
153 | return tmp; | ||
154 | } | ||
155 | |||
156 | static u16 calc_img_cksum(u16 *start, int length) | ||
157 | { | ||
158 | u16 tmp = 0; | ||
159 | |||
160 | while (length--) | ||
161 | tmp += *start++; | ||
162 | |||
163 | return tmp; | ||
164 | } | ||
165 | |||
166 | /* here we decode the incoming waveform file and populate metromem */ | ||
167 | #define EXP_WFORM_SIZE 47001 | ||
168 | static int load_waveform(u8 *mem, size_t size, u8 *metromem, int m, int t, | ||
169 | u8 *frame_count) | ||
170 | { | ||
171 | int tta; | ||
172 | int wmta; | ||
173 | int trn = 0; | ||
174 | int i; | ||
175 | unsigned char v; | ||
176 | u8 cksum; | ||
177 | int cksum_idx; | ||
178 | int wfm_idx, owfm_idx; | ||
179 | int mem_idx = 0; | ||
180 | struct waveform_hdr *wfm_hdr; | ||
181 | |||
182 | if (size != EXP_WFORM_SIZE) { | ||
183 | printk(KERN_ERR "Error: unexpected size %d != %d\n", size, | ||
184 | EXP_WFORM_SIZE); | ||
185 | return -EINVAL; | ||
186 | } | ||
187 | |||
188 | wfm_hdr = (struct waveform_hdr *) mem; | ||
189 | |||
190 | if (wfm_hdr->fvsn != 1) { | ||
191 | printk(KERN_ERR "Error: bad fvsn %x\n", wfm_hdr->fvsn); | ||
192 | return -EINVAL; | ||
193 | } | ||
194 | if (wfm_hdr->luts != 0) { | ||
195 | printk(KERN_ERR "Error: bad luts %x\n", wfm_hdr->luts); | ||
196 | return -EINVAL; | ||
197 | } | ||
198 | cksum = calc_cksum(32, 47, mem); | ||
199 | if (cksum != wfm_hdr->wfm_cs) { | ||
200 | printk(KERN_ERR "Error: bad cksum %x != %x\n", cksum, | ||
201 | wfm_hdr->wfm_cs); | ||
202 | return -EINVAL; | ||
203 | } | ||
204 | wfm_hdr->mc += 1; | ||
205 | wfm_hdr->trc += 1; | ||
206 | for (i = 0; i < 5; i++) { | ||
207 | if (*(wfm_hdr->stuff2a + i) != 0) { | ||
208 | printk(KERN_ERR "Error: unexpected value in padding\n"); | ||
209 | return -EINVAL; | ||
210 | } | ||
211 | } | ||
212 | |||
213 | /* calculating trn. trn is something used to index into | ||
214 | the waveform. presumably selecting the right one for the | ||
215 | desired temperature. it works out the offset of the first | ||
216 | v that exceeds the specified temperature */ | ||
217 | if ((sizeof(*wfm_hdr) + wfm_hdr->trc) > size) | ||
218 | return -EINVAL; | ||
219 | |||
220 | for (i = sizeof(*wfm_hdr); i <= sizeof(*wfm_hdr) + wfm_hdr->trc; i++) { | ||
221 | if (mem[i] > t) { | ||
222 | trn = i - sizeof(*wfm_hdr) - 1; | ||
223 | break; | ||
224 | } | ||
225 | } | ||
226 | |||
227 | /* check temperature range table checksum */ | ||
228 | cksum_idx = sizeof(*wfm_hdr) + wfm_hdr->trc + 1; | ||
229 | if (cksum_idx > size) | ||
230 | return -EINVAL; | ||
231 | cksum = calc_cksum(sizeof(*wfm_hdr), cksum_idx, mem); | ||
232 | if (cksum != mem[cksum_idx]) { | ||
233 | printk(KERN_ERR "Error: bad temperature range table cksum" | ||
234 | " %x != %x\n", cksum, mem[cksum_idx]); | ||
235 | return -EINVAL; | ||
236 | } | ||
237 | |||
238 | /* check waveform mode table address checksum */ | ||
239 | wmta = le32_to_cpu(get_unaligned((__le32 *) wfm_hdr->wmta)); | ||
240 | wmta &= 0x00FFFFFF; | ||
241 | cksum_idx = wmta + m*4 + 3; | ||
242 | if (cksum_idx > size) | ||
243 | return -EINVAL; | ||
244 | cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem); | ||
245 | if (cksum != mem[cksum_idx]) { | ||
246 | printk(KERN_ERR "Error: bad mode table address cksum" | ||
247 | " %x != %x\n", cksum, mem[cksum_idx]); | ||
248 | return -EINVAL; | ||
249 | } | ||
250 | |||
251 | /* check waveform temperature table address checksum */ | ||
252 | tta = le32_to_cpu(get_unaligned((int *) (mem + wmta + m*4))); | ||
253 | tta &= 0x00FFFFFF; | ||
254 | cksum_idx = tta + trn*4 + 3; | ||
255 | if (cksum_idx > size) | ||
256 | return -EINVAL; | ||
257 | cksum = calc_cksum(cksum_idx - 3, cksum_idx, mem); | ||
258 | if (cksum != mem[cksum_idx]) { | ||
259 | printk(KERN_ERR "Error: bad temperature table address cksum" | ||
260 | " %x != %x\n", cksum, mem[cksum_idx]); | ||
261 | return -EINVAL; | ||
262 | } | ||
263 | |||
264 | /* here we do the real work of putting the waveform into the | ||
265 | metromem buffer. this does runlength decoding of the waveform */ | ||
266 | wfm_idx = le32_to_cpu(get_unaligned((__le32 *) (mem + tta + trn*4))); | ||
267 | wfm_idx &= 0x00FFFFFF; | ||
268 | owfm_idx = wfm_idx; | ||
269 | if (wfm_idx > size) | ||
270 | return -EINVAL; | ||
271 | while (wfm_idx < size) { | ||
272 | unsigned char rl; | ||
273 | v = mem[wfm_idx++]; | ||
274 | if (v == wfm_hdr->swtb) { | ||
275 | while (((v = mem[wfm_idx++]) != wfm_hdr->swtb) && | ||
276 | wfm_idx < size) | ||
277 | metromem[mem_idx++] = v; | ||
278 | |||
279 | continue; | ||
280 | } | ||
281 | |||
282 | if (v == wfm_hdr->endb) | ||
283 | break; | ||
284 | |||
285 | rl = mem[wfm_idx++]; | ||
286 | for (i = 0; i <= rl; i++) | ||
287 | metromem[mem_idx++] = v; | ||
288 | } | ||
289 | |||
290 | cksum_idx = wfm_idx; | ||
291 | if (cksum_idx > size) | ||
292 | return -EINVAL; | ||
293 | cksum = calc_cksum(owfm_idx, cksum_idx, mem); | ||
294 | if (cksum != mem[cksum_idx]) { | ||
295 | printk(KERN_ERR "Error: bad waveform data cksum" | ||
296 | " %x != %x\n", cksum, mem[cksum_idx]); | ||
297 | return -EINVAL; | ||
298 | } | ||
299 | *frame_count = (mem_idx/64); | ||
300 | |||
301 | return 0; | ||
302 | } | ||
303 | |||
304 | /* register offsets for gpio control */ | ||
305 | #define LED_GPIO_PIN 51 | ||
306 | #define STDBY_GPIO_PIN 48 | ||
307 | #define RST_GPIO_PIN 49 | ||
308 | #define RDY_GPIO_PIN 32 | ||
309 | #define ERR_GPIO_PIN 17 | ||
310 | #define PCBPWR_GPIO_PIN 16 | ||
311 | |||
312 | #define AF_SEL_GPIO_N 0x3 | ||
313 | #define GAFR0_U_OFFSET(pin) ((pin - 16) * 2) | ||
314 | #define GAFR1_L_OFFSET(pin) ((pin - 32) * 2) | ||
315 | #define GAFR1_U_OFFSET(pin) ((pin - 48) * 2) | ||
316 | #define GPDR1_OFFSET(pin) (pin - 32) | ||
317 | #define GPCR1_OFFSET(pin) (pin - 32) | ||
318 | #define GPSR1_OFFSET(pin) (pin - 32) | ||
319 | #define GPCR0_OFFSET(pin) (pin) | ||
320 | #define GPSR0_OFFSET(pin) (pin) | ||
321 | |||
322 | static void metronome_set_gpio_output(int pin, int val) | ||
323 | { | ||
324 | u8 index; | ||
325 | |||
326 | index = pin >> 4; | ||
327 | |||
328 | switch (index) { | ||
329 | case 1: | ||
330 | if (val) | ||
331 | GPSR0 |= (1 << GPSR0_OFFSET(pin)); | ||
332 | else | ||
333 | GPCR0 |= (1 << GPCR0_OFFSET(pin)); | ||
334 | break; | ||
335 | case 2: | ||
336 | break; | ||
337 | case 3: | ||
338 | if (val) | ||
339 | GPSR1 |= (1 << GPSR1_OFFSET(pin)); | ||
340 | else | ||
341 | GPCR1 |= (1 << GPCR1_OFFSET(pin)); | ||
342 | break; | ||
343 | default: | ||
344 | printk(KERN_ERR "unimplemented\n"); | ||
345 | } | ||
346 | } | ||
347 | |||
348 | static void __devinit metronome_init_gpio_pin(int pin, int dir) | ||
349 | { | ||
350 | u8 index; | ||
351 | /* dir 0 is output, 1 is input | ||
352 | - do 2 things here: | ||
353 | - set gpio alternate function to standard gpio | ||
354 | - set gpio direction to input or output */ | ||
355 | |||
356 | index = pin >> 4; | ||
357 | switch (index) { | ||
358 | case 1: | ||
359 | GAFR0_U &= ~(AF_SEL_GPIO_N << GAFR0_U_OFFSET(pin)); | ||
360 | |||
361 | if (dir) | ||
362 | GPDR0 &= ~(1 << pin); | ||
363 | else | ||
364 | GPDR0 |= (1 << pin); | ||
365 | break; | ||
366 | case 2: | ||
367 | GAFR1_L &= ~(AF_SEL_GPIO_N << GAFR1_L_OFFSET(pin)); | ||
368 | |||
369 | if (dir) | ||
370 | GPDR1 &= ~(1 << GPDR1_OFFSET(pin)); | ||
371 | else | ||
372 | GPDR1 |= (1 << GPDR1_OFFSET(pin)); | ||
373 | break; | ||
374 | case 3: | ||
375 | GAFR1_U &= ~(AF_SEL_GPIO_N << GAFR1_U_OFFSET(pin)); | ||
376 | |||
377 | if (dir) | ||
378 | GPDR1 &= ~(1 << GPDR1_OFFSET(pin)); | ||
379 | else | ||
380 | GPDR1 |= (1 << GPDR1_OFFSET(pin)); | ||
381 | break; | ||
382 | default: | ||
383 | printk(KERN_ERR "unimplemented\n"); | ||
384 | } | ||
385 | } | ||
386 | |||
387 | static void __devinit metronome_init_gpio_regs(void) | ||
388 | { | ||
389 | metronome_init_gpio_pin(LED_GPIO_PIN, 0); | ||
390 | metronome_set_gpio_output(LED_GPIO_PIN, 0); | ||
391 | |||
392 | metronome_init_gpio_pin(STDBY_GPIO_PIN, 0); | ||
393 | metronome_set_gpio_output(STDBY_GPIO_PIN, 0); | ||
394 | |||
395 | metronome_init_gpio_pin(RST_GPIO_PIN, 0); | ||
396 | metronome_set_gpio_output(RST_GPIO_PIN, 0); | ||
397 | |||
398 | metronome_init_gpio_pin(RDY_GPIO_PIN, 1); | ||
399 | |||
400 | metronome_init_gpio_pin(ERR_GPIO_PIN, 1); | ||
401 | |||
402 | metronome_init_gpio_pin(PCBPWR_GPIO_PIN, 0); | ||
403 | metronome_set_gpio_output(PCBPWR_GPIO_PIN, 0); | ||
404 | } | ||
405 | |||
406 | static void metronome_disable_lcd_controller(struct metronomefb_par *par) | ||
407 | { | ||
408 | LCSR = 0xffffffff; /* Clear LCD Status Register */ | ||
409 | LCCR0 |= LCCR0_DIS; /* Disable LCD Controller */ | ||
410 | |||
411 | /* we reset and just wait for things to settle */ | ||
412 | msleep(200); | ||
413 | } | ||
414 | |||
415 | static void metronome_enable_lcd_controller(struct metronomefb_par *par) | ||
416 | { | ||
417 | LCSR = 0xffffffff; | ||
418 | FDADR0 = par->metromem_desc_dma; | ||
419 | LCCR0 |= LCCR0_ENB; | ||
420 | } | ||
421 | |||
422 | static void __devinit metronome_init_lcdc_regs(struct metronomefb_par *par) | ||
423 | { | ||
424 | /* here we do: | ||
425 | - disable the lcd controller | ||
426 | - setup lcd control registers | ||
427 | - setup dma descriptor | ||
428 | - reenable lcd controller | ||
429 | */ | ||
430 | |||
431 | /* disable the lcd controller */ | ||
432 | metronome_disable_lcd_controller(par); | ||
433 | |||
434 | /* setup lcd control registers */ | ||
435 | LCCR0 = LCCR0_LDM | LCCR0_SFM | LCCR0_IUM | LCCR0_EFM | LCCR0_PAS | ||
436 | | LCCR0_QDM | LCCR0_BM | LCCR0_OUM; | ||
437 | |||
438 | LCCR1 = (epd_frame_table[0].fw/2 - 1) /* pixels per line */ | ||
439 | | (27 << 10) /* hsync pulse width - 1 */ | ||
440 | | (33 << 16) /* eol pixel count */ | ||
441 | | (33 << 24); /* bol pixel count */ | ||
442 | |||
443 | LCCR2 = (epd_frame_table[0].fh - 1) /* lines per panel */ | ||
444 | | (24 << 10) /* vsync pulse width - 1 */ | ||
445 | | (2 << 16) /* eof pixel count */ | ||
446 | | (0 << 24); /* bof pixel count */ | ||
447 | |||
448 | LCCR3 = 2 /* pixel clock divisor */ | ||
449 | | (24 << 8) /* AC Bias pin freq */ | ||
450 | | LCCR3_16BPP /* BPP */ | ||
451 | | LCCR3_PCP; /* PCP falling edge */ | ||
452 | |||
453 | /* setup dma descriptor */ | ||
454 | par->metromem_desc->mFDADR0 = par->metromem_desc_dma; | ||
455 | par->metromem_desc->mFSADR0 = par->metromem_dma; | ||
456 | par->metromem_desc->mFIDR0 = 0; | ||
457 | par->metromem_desc->mLDCMD0 = epd_frame_table[0].fw | ||
458 | * epd_frame_table[0].fh; | ||
459 | /* reenable lcd controller */ | ||
460 | metronome_enable_lcd_controller(par); | ||
461 | } | ||
462 | |||
463 | static int metronome_display_cmd(struct metronomefb_par *par) | ||
464 | { | ||
465 | int i; | ||
466 | u16 cs; | ||
467 | u16 opcode; | ||
468 | static u8 borderval; | ||
469 | u8 *ptr; | ||
470 | |||
471 | /* setup display command | ||
472 | we can't immediately set the opcode since the controller | ||
473 | will try parse the command before we've set it all up | ||
474 | so we just set cs here and set the opcode at the end */ | ||
475 | |||
476 | ptr = par->metromem; | ||
477 | |||
478 | if (par->metromem_cmd->opcode == 0xCC40) | ||
479 | opcode = cs = 0xCC41; | ||
480 | else | ||
481 | opcode = cs = 0xCC40; | ||
482 | |||
483 | /* set the args ( 2 bytes ) for display */ | ||
484 | i = 0; | ||
485 | par->metromem_cmd->args[i] = 1 << 3 /* border update */ | ||
486 | | ((borderval++ % 4) & 0x0F) << 4 | ||
487 | | (par->frame_count - 1) << 8; | ||
488 | cs += par->metromem_cmd->args[i++]; | ||
489 | |||
490 | /* the rest are 0 */ | ||
491 | memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2); | ||
492 | |||
493 | par->metromem_cmd->csum = cs; | ||
494 | par->metromem_cmd->opcode = opcode; /* display cmd */ | ||
495 | |||
496 | i = wait_event_interruptible_timeout(par->waitq, (GPLR1 & 0x01), HZ); | ||
497 | return i; | ||
498 | } | ||
499 | |||
500 | static int __devinit metronome_powerup_cmd(struct metronomefb_par *par) | ||
501 | { | ||
502 | int i; | ||
503 | u16 cs; | ||
504 | |||
505 | /* setup power up command */ | ||
506 | par->metromem_cmd->opcode = 0x1234; /* pwr up pseudo cmd */ | ||
507 | cs = par->metromem_cmd->opcode; | ||
508 | |||
509 | /* set pwr1,2,3 to 1024 */ | ||
510 | for (i = 0; i < 3; i++) { | ||
511 | par->metromem_cmd->args[i] = 1024; | ||
512 | cs += par->metromem_cmd->args[i]; | ||
513 | } | ||
514 | |||
515 | /* the rest are 0 */ | ||
516 | memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2); | ||
517 | |||
518 | par->metromem_cmd->csum = cs; | ||
519 | |||
520 | msleep(1); | ||
521 | metronome_set_gpio_output(RST_GPIO_PIN, 1); | ||
522 | |||
523 | msleep(1); | ||
524 | metronome_set_gpio_output(STDBY_GPIO_PIN, 1); | ||
525 | |||
526 | i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ); | ||
527 | return i; | ||
528 | } | ||
529 | |||
530 | static int __devinit metronome_config_cmd(struct metronomefb_par *par) | ||
531 | { | ||
532 | int i; | ||
533 | u16 cs; | ||
534 | |||
535 | /* setup config command | ||
536 | we can't immediately set the opcode since the controller | ||
537 | will try parse the command before we've set it all up | ||
538 | so we just set cs here and set the opcode at the end */ | ||
539 | |||
540 | cs = 0xCC10; | ||
541 | |||
542 | /* set the 12 args ( 8 bytes ) for config. see spec for meanings */ | ||
543 | i = 0; | ||
544 | par->metromem_cmd->args[i] = 15 /* sdlew */ | ||
545 | | 2 << 8 /* sdosz */ | ||
546 | | 0 << 11 /* sdor */ | ||
547 | | 0 << 12 /* sdces */ | ||
548 | | 0 << 15; /* sdcer */ | ||
549 | cs += par->metromem_cmd->args[i++]; | ||
550 | |||
551 | par->metromem_cmd->args[i] = 42 /* gdspl */ | ||
552 | | 1 << 8 /* gdr1 */ | ||
553 | | 1 << 9 /* sdshr */ | ||
554 | | 0 << 15; /* gdspp */ | ||
555 | cs += par->metromem_cmd->args[i++]; | ||
556 | |||
557 | par->metromem_cmd->args[i] = 18 /* gdspw */ | ||
558 | | 0 << 15; /* dispc */ | ||
559 | cs += par->metromem_cmd->args[i++]; | ||
560 | |||
561 | par->metromem_cmd->args[i] = 599 /* vdlc */ | ||
562 | | 0 << 11 /* dsi */ | ||
563 | | 0 << 12; /* dsic */ | ||
564 | cs += par->metromem_cmd->args[i++]; | ||
565 | |||
566 | /* the rest are 0 */ | ||
567 | memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2); | ||
568 | |||
569 | par->metromem_cmd->csum = cs; | ||
570 | par->metromem_cmd->opcode = 0xCC10; /* config cmd */ | ||
571 | |||
572 | i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ); | ||
573 | return i; | ||
574 | } | ||
575 | |||
576 | static int __devinit metronome_init_cmd(struct metronomefb_par *par) | ||
577 | { | ||
578 | int i; | ||
579 | u16 cs; | ||
580 | |||
581 | /* setup init command | ||
582 | we can't immediately set the opcode since the controller | ||
583 | will try parse the command before we've set it all up | ||
584 | so we just set cs here and set the opcode at the end */ | ||
585 | |||
586 | cs = 0xCC20; | ||
587 | |||
588 | /* set the args ( 2 bytes ) for init */ | ||
589 | i = 0; | ||
590 | par->metromem_cmd->args[i] = 0; | ||
591 | cs += par->metromem_cmd->args[i++]; | ||
592 | |||
593 | /* the rest are 0 */ | ||
594 | memset((u8 *) (par->metromem_cmd->args + i), 0, (32-i)*2); | ||
595 | |||
596 | par->metromem_cmd->csum = cs; | ||
597 | par->metromem_cmd->opcode = 0xCC20; /* init cmd */ | ||
598 | |||
599 | i = wait_event_timeout(par->waitq, (GPLR1 & 0x01), HZ); | ||
600 | return i; | ||
601 | } | ||
602 | |||
603 | static int __devinit metronome_init_regs(struct metronomefb_par *par) | ||
604 | { | ||
605 | int res; | ||
606 | |||
607 | metronome_init_gpio_regs(); | ||
608 | metronome_init_lcdc_regs(par); | ||
609 | |||
610 | res = metronome_powerup_cmd(par); | ||
611 | if (res) | ||
612 | return res; | ||
613 | |||
614 | res = metronome_config_cmd(par); | ||
615 | if (res) | ||
616 | return res; | ||
617 | |||
618 | res = metronome_init_cmd(par); | ||
619 | if (res) | ||
620 | return res; | ||
621 | |||
622 | return res; | ||
623 | } | ||
624 | |||
625 | static void metronomefb_dpy_update(struct metronomefb_par *par) | ||
626 | { | ||
627 | u16 cksum; | ||
628 | unsigned char *buf = (unsigned char __force *)par->info->screen_base; | ||
629 | |||
630 | /* copy from vm to metromem */ | ||
631 | memcpy(par->metromem_img, buf, DPY_W*DPY_H); | ||
632 | |||
633 | cksum = calc_img_cksum((u16 *) par->metromem_img, | ||
634 | (epd_frame_table[0].fw * DPY_H)/2); | ||
635 | *((u16 *) (par->metromem_img) + | ||
636 | (epd_frame_table[0].fw * DPY_H)/2) = cksum; | ||
637 | metronome_display_cmd(par); | ||
638 | } | ||
639 | |||
640 | static u16 metronomefb_dpy_update_page(struct metronomefb_par *par, int index) | ||
641 | { | ||
642 | int i; | ||
643 | u16 csum = 0; | ||
644 | u16 *buf = (u16 __force *) (par->info->screen_base + index); | ||
645 | u16 *img = (u16 *) (par->metromem_img + index); | ||
646 | |||
647 | /* swizzle from vm to metromem and recalc cksum at the same time*/ | ||
648 | for (i = 0; i < PAGE_SIZE/2; i++) { | ||
649 | *(img + i) = (buf[i] << 5) & 0xE0E0; | ||
650 | csum += *(img + i); | ||
651 | } | ||
652 | return csum; | ||
653 | } | ||
654 | |||
655 | /* this is called back from the deferred io workqueue */ | ||
656 | static void metronomefb_dpy_deferred_io(struct fb_info *info, | ||
657 | struct list_head *pagelist) | ||
658 | { | ||
659 | u16 cksum; | ||
660 | struct page *cur; | ||
661 | struct fb_deferred_io *fbdefio = info->fbdefio; | ||
662 | struct metronomefb_par *par = info->par; | ||
663 | |||
664 | /* walk the written page list and swizzle the data */ | ||
665 | list_for_each_entry(cur, &fbdefio->pagelist, lru) { | ||
666 | cksum = metronomefb_dpy_update_page(par, | ||
667 | (cur->index << PAGE_SHIFT)); | ||
668 | par->metromem_img_csum -= par->csum_table[cur->index]; | ||
669 | par->csum_table[cur->index] = cksum; | ||
670 | par->metromem_img_csum += cksum; | ||
671 | } | ||
672 | |||
673 | metronome_display_cmd(par); | ||
674 | } | ||
675 | |||
676 | static void metronomefb_fillrect(struct fb_info *info, | ||
677 | const struct fb_fillrect *rect) | ||
678 | { | ||
679 | struct metronomefb_par *par = info->par; | ||
680 | |||
681 | cfb_fillrect(info, rect); | ||
682 | metronomefb_dpy_update(par); | ||
683 | } | ||
684 | |||
685 | static void metronomefb_copyarea(struct fb_info *info, | ||
686 | const struct fb_copyarea *area) | ||
687 | { | ||
688 | struct metronomefb_par *par = info->par; | ||
689 | |||
690 | cfb_copyarea(info, area); | ||
691 | metronomefb_dpy_update(par); | ||
692 | } | ||
693 | |||
694 | static void metronomefb_imageblit(struct fb_info *info, | ||
695 | const struct fb_image *image) | ||
696 | { | ||
697 | struct metronomefb_par *par = info->par; | ||
698 | |||
699 | cfb_imageblit(info, image); | ||
700 | metronomefb_dpy_update(par); | ||
701 | } | ||
702 | |||
703 | /* | ||
704 | * this is the slow path from userspace. they can seek and write to | ||
705 | * the fb. it is based on fb_sys_write | ||
706 | */ | ||
707 | static ssize_t metronomefb_write(struct fb_info *info, const char __user *buf, | ||
708 | size_t count, loff_t *ppos) | ||
709 | { | ||
710 | struct metronomefb_par *par = info->par; | ||
711 | unsigned long p = *ppos; | ||
712 | void *dst; | ||
713 | int err = 0; | ||
714 | unsigned long total_size; | ||
715 | |||
716 | if (info->state != FBINFO_STATE_RUNNING) | ||
717 | return -EPERM; | ||
718 | |||
719 | total_size = info->fix.smem_len; | ||
720 | |||
721 | if (p > total_size) | ||
722 | return -EFBIG; | ||
723 | |||
724 | if (count > total_size) { | ||
725 | err = -EFBIG; | ||
726 | count = total_size; | ||
727 | } | ||
728 | |||
729 | if (count + p > total_size) { | ||
730 | if (!err) | ||
731 | err = -ENOSPC; | ||
732 | |||
733 | count = total_size - p; | ||
734 | } | ||
735 | |||
736 | dst = (void __force *) (info->screen_base + p); | ||
737 | |||
738 | if (copy_from_user(dst, buf, count)) | ||
739 | err = -EFAULT; | ||
740 | |||
741 | if (!err) | ||
742 | *ppos += count; | ||
743 | |||
744 | metronomefb_dpy_update(par); | ||
745 | |||
746 | return (err) ? err : count; | ||
747 | } | ||
748 | |||
749 | static struct fb_ops metronomefb_ops = { | ||
750 | .owner = THIS_MODULE, | ||
751 | .fb_write = metronomefb_write, | ||
752 | .fb_fillrect = metronomefb_fillrect, | ||
753 | .fb_copyarea = metronomefb_copyarea, | ||
754 | .fb_imageblit = metronomefb_imageblit, | ||
755 | }; | ||
756 | |||
757 | static struct fb_deferred_io metronomefb_defio = { | ||
758 | .delay = HZ, | ||
759 | .deferred_io = metronomefb_dpy_deferred_io, | ||
760 | }; | ||
761 | |||
762 | static irqreturn_t metronome_handle_irq(int irq, void *dev_id) | ||
763 | { | ||
764 | struct fb_info *info = dev_id; | ||
765 | struct metronomefb_par *par = info->par; | ||
766 | |||
767 | wake_up_interruptible(&par->waitq); | ||
768 | return IRQ_HANDLED; | ||
769 | } | ||
770 | |||
771 | static int __devinit metronomefb_probe(struct platform_device *dev) | ||
772 | { | ||
773 | struct fb_info *info; | ||
774 | int retval = -ENOMEM; | ||
775 | int videomemorysize; | ||
776 | unsigned char *videomemory; | ||
777 | struct metronomefb_par *par; | ||
778 | const struct firmware *fw_entry; | ||
779 | int cmd_size, wfm_size, img_size, padding_size, totalsize; | ||
780 | int i; | ||
781 | |||
782 | /* we have two blocks of memory. | ||
783 | info->screen_base which is vm, and is the fb used by apps. | ||
784 | par->metromem which is physically contiguous memory and | ||
785 | contains the display controller commands, waveform, | ||
786 | processed image data and padding. this is the data pulled | ||
787 | by the pxa255's LCD controller and pushed to Metronome */ | ||
788 | |||
789 | videomemorysize = (DPY_W*DPY_H); | ||
790 | videomemory = vmalloc(videomemorysize); | ||
791 | if (!videomemory) | ||
792 | return retval; | ||
793 | |||
794 | memset(videomemory, 0, videomemorysize); | ||
795 | |||
796 | info = framebuffer_alloc(sizeof(struct metronomefb_par), &dev->dev); | ||
797 | if (!info) | ||
798 | goto err_vfree; | ||
799 | |||
800 | info->screen_base = (char __iomem *) videomemory; | ||
801 | info->fbops = &metronomefb_ops; | ||
802 | |||
803 | info->var = metronomefb_var; | ||
804 | info->fix = metronomefb_fix; | ||
805 | info->fix.smem_len = videomemorysize; | ||
806 | par = info->par; | ||
807 | par->info = info; | ||
808 | init_waitqueue_head(&par->waitq); | ||
809 | |||
810 | /* this table caches per page csum values. */ | ||
811 | par->csum_table = vmalloc(videomemorysize/PAGE_SIZE); | ||
812 | if (!par->csum_table) | ||
813 | goto err_csum_table; | ||
814 | |||
815 | /* the metromem buffer is divided as follows: | ||
816 | command | CRC | padding | ||
817 | 16kb waveform data | CRC | padding | ||
818 | image data | CRC | ||
819 | and an extra 256 bytes for dma descriptors | ||
820 | eg: IW=832 IH=622 WS=128 | ||
821 | */ | ||
822 | |||
823 | cmd_size = 1 * epd_frame_table[0].fw; | ||
824 | wfm_size = ((16*1024 + 2 + epd_frame_table[0].fw - 1) | ||
825 | / epd_frame_table[0].fw) * epd_frame_table[0].fw; | ||
826 | img_size = epd_frame_table[0].fh * epd_frame_table[0].fw; | ||
827 | padding_size = 4 * epd_frame_table[0].fw; | ||
828 | totalsize = cmd_size + wfm_size + img_size + padding_size; | ||
829 | par->metromemsize = PAGE_ALIGN(totalsize + 256); | ||
830 | DPRINTK("desired memory size = %d\n", par->metromemsize); | ||
831 | dev->dev.coherent_dma_mask = 0xffffffffull; | ||
832 | par->metromem = dma_alloc_writecombine(&dev->dev, par->metromemsize, | ||
833 | &par->metromem_dma, GFP_KERNEL); | ||
834 | if (!par->metromem) { | ||
835 | printk(KERN_ERR | ||
836 | "metronomefb: unable to allocate dma buffer\n"); | ||
837 | goto err_vfree; | ||
838 | } | ||
839 | |||
840 | info->fix.smem_start = par->metromem_dma; | ||
841 | par->metromem_cmd = (struct metromem_cmd *) par->metromem; | ||
842 | par->metromem_wfm = par->metromem + cmd_size; | ||
843 | par->metromem_img = par->metromem + cmd_size + wfm_size; | ||
844 | par->metromem_img_csum = (u16 *) (par->metromem_img + | ||
845 | (epd_frame_table[0].fw * DPY_H)); | ||
846 | DPRINTK("img offset=0x%x\n", cmd_size + wfm_size); | ||
847 | par->metromem_desc = (struct metromem_desc *) (par->metromem + cmd_size | ||
848 | + wfm_size + img_size + padding_size); | ||
849 | par->metromem_desc_dma = par->metromem_dma + cmd_size + wfm_size | ||
850 | + img_size + padding_size; | ||
851 | |||
852 | /* load the waveform in. assume mode 3, temp 31 for now */ | ||
853 | /* a) request the waveform file from userspace | ||
854 | b) process waveform and decode into metromem */ | ||
855 | |||
856 | retval = request_firmware(&fw_entry, "waveform.wbf", &dev->dev); | ||
857 | if (retval < 0) { | ||
858 | printk(KERN_ERR "metronomefb: couldn't get waveform\n"); | ||
859 | goto err_dma_free; | ||
860 | } | ||
861 | |||
862 | retval = load_waveform((u8 *) fw_entry->data, fw_entry->size, | ||
863 | par->metromem_wfm, 3, 31, &par->frame_count); | ||
864 | if (retval < 0) { | ||
865 | printk(KERN_ERR "metronomefb: couldn't process waveform\n"); | ||
866 | goto err_ld_wfm; | ||
867 | } | ||
868 | release_firmware(fw_entry); | ||
869 | |||
870 | retval = request_irq(IRQ_GPIO(RDY_GPIO_PIN), metronome_handle_irq, | ||
871 | IRQF_DISABLED, "Metronome", info); | ||
872 | if (retval) { | ||
873 | dev_err(&dev->dev, "request_irq failed: %d\n", retval); | ||
874 | goto err_ld_wfm; | ||
875 | } | ||
876 | set_irq_type(IRQ_GPIO(RDY_GPIO_PIN), IRQT_FALLING); | ||
877 | |||
878 | retval = metronome_init_regs(par); | ||
879 | if (retval < 0) | ||
880 | goto err_free_irq; | ||
881 | |||
882 | info->flags = FBINFO_FLAG_DEFAULT; | ||
883 | |||
884 | info->fbdefio = &metronomefb_defio; | ||
885 | fb_deferred_io_init(info); | ||
886 | |||
887 | retval = fb_alloc_cmap(&info->cmap, 8, 0); | ||
888 | if (retval < 0) { | ||
889 | printk(KERN_ERR "Failed to allocate colormap\n"); | ||
890 | goto err_fb_rel; | ||
891 | } | ||
892 | |||
893 | /* set cmap */ | ||
894 | for (i = 0; i < 8; i++) | ||
895 | info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16; | ||
896 | memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8); | ||
897 | memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8); | ||
898 | |||
899 | retval = register_framebuffer(info); | ||
900 | if (retval < 0) | ||
901 | goto err_cmap; | ||
902 | |||
903 | platform_set_drvdata(dev, info); | ||
904 | |||
905 | printk(KERN_INFO | ||
906 | "fb%d: Metronome frame buffer device, using %dK of video" | ||
907 | " memory\n", info->node, videomemorysize >> 10); | ||
908 | |||
909 | return 0; | ||
910 | |||
911 | err_cmap: | ||
912 | fb_dealloc_cmap(&info->cmap); | ||
913 | err_fb_rel: | ||
914 | framebuffer_release(info); | ||
915 | err_free_irq: | ||
916 | free_irq(IRQ_GPIO(RDY_GPIO_PIN), info); | ||
917 | err_ld_wfm: | ||
918 | release_firmware(fw_entry); | ||
919 | err_dma_free: | ||
920 | dma_free_writecombine(&dev->dev, par->metromemsize, par->metromem, | ||
921 | par->metromem_dma); | ||
922 | err_csum_table: | ||
923 | vfree(par->csum_table); | ||
924 | err_vfree: | ||
925 | vfree(videomemory); | ||
926 | return retval; | ||
927 | } | ||
928 | |||
929 | static int __devexit metronomefb_remove(struct platform_device *dev) | ||
930 | { | ||
931 | struct fb_info *info = platform_get_drvdata(dev); | ||
932 | |||
933 | if (info) { | ||
934 | struct metronomefb_par *par = info->par; | ||
935 | fb_deferred_io_cleanup(info); | ||
936 | dma_free_writecombine(&dev->dev, par->metromemsize, | ||
937 | par->metromem, par->metromem_dma); | ||
938 | fb_dealloc_cmap(&info->cmap); | ||
939 | vfree(par->csum_table); | ||
940 | unregister_framebuffer(info); | ||
941 | vfree((void __force *)info->screen_base); | ||
942 | free_irq(IRQ_GPIO(RDY_GPIO_PIN), info); | ||
943 | framebuffer_release(info); | ||
944 | } | ||
945 | return 0; | ||
946 | } | ||
947 | |||
948 | static struct platform_driver metronomefb_driver = { | ||
949 | .probe = metronomefb_probe, | ||
950 | .remove = metronomefb_remove, | ||
951 | .driver = { | ||
952 | .name = "metronomefb", | ||
953 | }, | ||
954 | }; | ||
955 | |||
956 | static struct platform_device *metronomefb_device; | ||
957 | |||
958 | static int __init metronomefb_init(void) | ||
959 | { | ||
960 | int ret; | ||
961 | |||
962 | if (!metronomefb_enable) { | ||
963 | printk(KERN_ERR | ||
964 | "Use metronomefb_enable to enable the device\n"); | ||
965 | return -ENXIO; | ||
966 | } | ||
967 | |||
968 | ret = platform_driver_register(&metronomefb_driver); | ||
969 | if (!ret) { | ||
970 | metronomefb_device = platform_device_alloc("metronomefb", 0); | ||
971 | if (metronomefb_device) | ||
972 | ret = platform_device_add(metronomefb_device); | ||
973 | else | ||
974 | ret = -ENOMEM; | ||
975 | |||
976 | if (ret) { | ||
977 | platform_device_put(metronomefb_device); | ||
978 | platform_driver_unregister(&metronomefb_driver); | ||
979 | } | ||
980 | } | ||
981 | return ret; | ||
982 | |||
983 | } | ||
984 | |||
985 | static void __exit metronomefb_exit(void) | ||
986 | { | ||
987 | platform_device_unregister(metronomefb_device); | ||
988 | platform_driver_unregister(&metronomefb_driver); | ||
989 | } | ||
990 | |||
991 | module_param(metronomefb_enable, uint, 0); | ||
992 | MODULE_PARM_DESC(metronomefb_enable, "Enable communication with Metronome"); | ||
993 | |||
994 | module_init(metronomefb_init); | ||
995 | module_exit(metronomefb_exit); | ||
996 | |||
997 | MODULE_DESCRIPTION("fbdev driver for Metronome controller"); | ||
998 | MODULE_AUTHOR("Jaya Kumar"); | ||
999 | MODULE_LICENSE("GPL"); | ||
@@ -996,6 +996,14 @@ put_rq: | |||
996 | /* everything turned out well, dispose of the aiocb. */ | 996 | /* everything turned out well, dispose of the aiocb. */ |
997 | ret = __aio_put_req(ctx, iocb); | 997 | ret = __aio_put_req(ctx, iocb); |
998 | 998 | ||
999 | /* | ||
1000 | * We have to order our ring_info tail store above and test | ||
1001 | * of the wait list below outside the wait lock. This is | ||
1002 | * like in wake_up_bit() where clearing a bit has to be | ||
1003 | * ordered with the unlocked test. | ||
1004 | */ | ||
1005 | smp_mb(); | ||
1006 | |||
999 | if (waitqueue_active(&ctx->wait)) | 1007 | if (waitqueue_active(&ctx->wait)) |
1000 | wake_up(&ctx->wait); | 1008 | wake_up(&ctx->wait); |
1001 | 1009 | ||
@@ -1194,6 +1194,8 @@ EXPORT_SYMBOL(bio_hw_segments); | |||
1194 | EXPORT_SYMBOL(bio_add_page); | 1194 | EXPORT_SYMBOL(bio_add_page); |
1195 | EXPORT_SYMBOL(bio_add_pc_page); | 1195 | EXPORT_SYMBOL(bio_add_pc_page); |
1196 | EXPORT_SYMBOL(bio_get_nr_vecs); | 1196 | EXPORT_SYMBOL(bio_get_nr_vecs); |
1197 | EXPORT_SYMBOL(bio_map_user); | ||
1198 | EXPORT_SYMBOL(bio_unmap_user); | ||
1197 | EXPORT_SYMBOL(bio_map_kern); | 1199 | EXPORT_SYMBOL(bio_map_kern); |
1198 | EXPORT_SYMBOL(bio_pair_release); | 1200 | EXPORT_SYMBOL(bio_pair_release); |
1199 | EXPORT_SYMBOL(bio_split); | 1201 | EXPORT_SYMBOL(bio_split); |
diff --git a/fs/buffer.c b/fs/buffer.c index ddfdd2c80bf9..7ba58386beee 100644 --- a/fs/buffer.c +++ b/fs/buffer.c | |||
@@ -3213,7 +3213,7 @@ static int buffer_cpu_notify(struct notifier_block *self, | |||
3213 | } | 3213 | } |
3214 | 3214 | ||
3215 | /** | 3215 | /** |
3216 | * bh_uptodate_or_lock: Test whether the buffer is uptodate | 3216 | * bh_uptodate_or_lock - Test whether the buffer is uptodate |
3217 | * @bh: struct buffer_head | 3217 | * @bh: struct buffer_head |
3218 | * | 3218 | * |
3219 | * Return true if the buffer is up-to-date and false, | 3219 | * Return true if the buffer is up-to-date and false, |
@@ -3232,7 +3232,7 @@ int bh_uptodate_or_lock(struct buffer_head *bh) | |||
3232 | EXPORT_SYMBOL(bh_uptodate_or_lock); | 3232 | EXPORT_SYMBOL(bh_uptodate_or_lock); |
3233 | 3233 | ||
3234 | /** | 3234 | /** |
3235 | * bh_submit_read: Submit a locked buffer for reading | 3235 | * bh_submit_read - Submit a locked buffer for reading |
3236 | * @bh: struct buffer_head | 3236 | * @bh: struct buffer_head |
3237 | * | 3237 | * |
3238 | * Returns zero on success and -EIO on error. | 3238 | * Returns zero on success and -EIO on error. |
diff --git a/fs/dquot.c b/fs/dquot.c index 9c7feb62eed1..41b9dbd68b0e 100644 --- a/fs/dquot.c +++ b/fs/dquot.c | |||
@@ -1522,8 +1522,8 @@ int vfs_quota_off(struct super_block *sb, int type) | |||
1522 | truncate_inode_pages(&toputinode[cnt]->i_data, 0); | 1522 | truncate_inode_pages(&toputinode[cnt]->i_data, 0); |
1523 | mutex_unlock(&toputinode[cnt]->i_mutex); | 1523 | mutex_unlock(&toputinode[cnt]->i_mutex); |
1524 | mark_inode_dirty(toputinode[cnt]); | 1524 | mark_inode_dirty(toputinode[cnt]); |
1525 | iput(toputinode[cnt]); | ||
1526 | } | 1525 | } |
1526 | iput(toputinode[cnt]); | ||
1527 | mutex_unlock(&dqopt->dqonoff_mutex); | 1527 | mutex_unlock(&dqopt->dqonoff_mutex); |
1528 | } | 1528 | } |
1529 | if (sb->s_bdev) | 1529 | if (sb->s_bdev) |
diff --git a/fs/ecryptfs/dentry.c b/fs/ecryptfs/dentry.c index 841a032050a7..5e596583946c 100644 --- a/fs/ecryptfs/dentry.c +++ b/fs/ecryptfs/dentry.c | |||
@@ -80,8 +80,8 @@ static void ecryptfs_d_release(struct dentry *dentry) | |||
80 | { | 80 | { |
81 | if (ecryptfs_dentry_to_private(dentry)) { | 81 | if (ecryptfs_dentry_to_private(dentry)) { |
82 | if (ecryptfs_dentry_to_lower(dentry)) { | 82 | if (ecryptfs_dentry_to_lower(dentry)) { |
83 | mntput(ecryptfs_dentry_to_lower_mnt(dentry)); | ||
84 | dput(ecryptfs_dentry_to_lower(dentry)); | 83 | dput(ecryptfs_dentry_to_lower(dentry)); |
84 | mntput(ecryptfs_dentry_to_lower_mnt(dentry)); | ||
85 | } | 85 | } |
86 | kmem_cache_free(ecryptfs_dentry_info_cache, | 86 | kmem_cache_free(ecryptfs_dentry_info_cache, |
87 | ecryptfs_dentry_to_private(dentry)); | 87 | ecryptfs_dentry_to_private(dentry)); |
diff --git a/fs/ext3/acl.c b/fs/ext3/acl.c index d34e9967430a..a754d1848173 100644 --- a/fs/ext3/acl.c +++ b/fs/ext3/acl.c | |||
@@ -37,7 +37,7 @@ ext3_acl_from_disk(const void *value, size_t size) | |||
37 | return ERR_PTR(-EINVAL); | 37 | return ERR_PTR(-EINVAL); |
38 | if (count == 0) | 38 | if (count == 0) |
39 | return NULL; | 39 | return NULL; |
40 | acl = posix_acl_alloc(count, GFP_KERNEL); | 40 | acl = posix_acl_alloc(count, GFP_NOFS); |
41 | if (!acl) | 41 | if (!acl) |
42 | return ERR_PTR(-ENOMEM); | 42 | return ERR_PTR(-ENOMEM); |
43 | for (n=0; n < count; n++) { | 43 | for (n=0; n < count; n++) { |
@@ -91,7 +91,7 @@ ext3_acl_to_disk(const struct posix_acl *acl, size_t *size) | |||
91 | 91 | ||
92 | *size = ext3_acl_size(acl->a_count); | 92 | *size = ext3_acl_size(acl->a_count); |
93 | ext_acl = kmalloc(sizeof(ext3_acl_header) + acl->a_count * | 93 | ext_acl = kmalloc(sizeof(ext3_acl_header) + acl->a_count * |
94 | sizeof(ext3_acl_entry), GFP_KERNEL); | 94 | sizeof(ext3_acl_entry), GFP_NOFS); |
95 | if (!ext_acl) | 95 | if (!ext_acl) |
96 | return ERR_PTR(-ENOMEM); | 96 | return ERR_PTR(-ENOMEM); |
97 | ext_acl->a_version = cpu_to_le32(EXT3_ACL_VERSION); | 97 | ext_acl->a_version = cpu_to_le32(EXT3_ACL_VERSION); |
@@ -187,7 +187,7 @@ ext3_get_acl(struct inode *inode, int type) | |||
187 | } | 187 | } |
188 | retval = ext3_xattr_get(inode, name_index, "", NULL, 0); | 188 | retval = ext3_xattr_get(inode, name_index, "", NULL, 0); |
189 | if (retval > 0) { | 189 | if (retval > 0) { |
190 | value = kmalloc(retval, GFP_KERNEL); | 190 | value = kmalloc(retval, GFP_NOFS); |
191 | if (!value) | 191 | if (!value) |
192 | return ERR_PTR(-ENOMEM); | 192 | return ERR_PTR(-ENOMEM); |
193 | retval = ext3_xattr_get(inode, name_index, "", value, retval); | 193 | retval = ext3_xattr_get(inode, name_index, "", value, retval); |
@@ -335,7 +335,7 @@ ext3_init_acl(handle_t *handle, struct inode *inode, struct inode *dir) | |||
335 | if (error) | 335 | if (error) |
336 | goto cleanup; | 336 | goto cleanup; |
337 | } | 337 | } |
338 | clone = posix_acl_clone(acl, GFP_KERNEL); | 338 | clone = posix_acl_clone(acl, GFP_NOFS); |
339 | error = -ENOMEM; | 339 | error = -ENOMEM; |
340 | if (!clone) | 340 | if (!clone) |
341 | goto cleanup; | 341 | goto cleanup; |
diff --git a/fs/ext3/resize.c b/fs/ext3/resize.c index 9397d779c43d..0e97b6e07cb0 100644 --- a/fs/ext3/resize.c +++ b/fs/ext3/resize.c | |||
@@ -485,7 +485,7 @@ static int add_new_gdb(handle_t *handle, struct inode *inode, | |||
485 | goto exit_dindj; | 485 | goto exit_dindj; |
486 | 486 | ||
487 | n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *), | 487 | n_group_desc = kmalloc((gdb_num + 1) * sizeof(struct buffer_head *), |
488 | GFP_KERNEL); | 488 | GFP_NOFS); |
489 | if (!n_group_desc) { | 489 | if (!n_group_desc) { |
490 | err = -ENOMEM; | 490 | err = -ENOMEM; |
491 | ext3_warning (sb, __FUNCTION__, | 491 | ext3_warning (sb, __FUNCTION__, |
@@ -568,7 +568,7 @@ static int reserve_backup_gdb(handle_t *handle, struct inode *inode, | |||
568 | int res, i; | 568 | int res, i; |
569 | int err; | 569 | int err; |
570 | 570 | ||
571 | primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_KERNEL); | 571 | primary = kmalloc(reserved_gdb * sizeof(*primary), GFP_NOFS); |
572 | if (!primary) | 572 | if (!primary) |
573 | return -ENOMEM; | 573 | return -ENOMEM; |
574 | 574 | ||
diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c index fb89c299bece..a6ea4d6a8bb2 100644 --- a/fs/ext3/xattr.c +++ b/fs/ext3/xattr.c | |||
@@ -728,7 +728,7 @@ ext3_xattr_block_set(handle_t *handle, struct inode *inode, | |||
728 | ce = NULL; | 728 | ce = NULL; |
729 | } | 729 | } |
730 | ea_bdebug(bs->bh, "cloning"); | 730 | ea_bdebug(bs->bh, "cloning"); |
731 | s->base = kmalloc(bs->bh->b_size, GFP_KERNEL); | 731 | s->base = kmalloc(bs->bh->b_size, GFP_NOFS); |
732 | error = -ENOMEM; | 732 | error = -ENOMEM; |
733 | if (s->base == NULL) | 733 | if (s->base == NULL) |
734 | goto cleanup; | 734 | goto cleanup; |
@@ -740,7 +740,7 @@ ext3_xattr_block_set(handle_t *handle, struct inode *inode, | |||
740 | } | 740 | } |
741 | } else { | 741 | } else { |
742 | /* Allocate a buffer where we construct the new block. */ | 742 | /* Allocate a buffer where we construct the new block. */ |
743 | s->base = kzalloc(sb->s_blocksize, GFP_KERNEL); | 743 | s->base = kzalloc(sb->s_blocksize, GFP_NOFS); |
744 | /* assert(header == s->base) */ | 744 | /* assert(header == s->base) */ |
745 | error = -ENOMEM; | 745 | error = -ENOMEM; |
746 | if (s->base == NULL) | 746 | if (s->base == NULL) |
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index c0076077d338..06557679ca41 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c | |||
@@ -751,7 +751,7 @@ int generic_osync_inode(struct inode *inode, struct address_space *mapping, int | |||
751 | EXPORT_SYMBOL(generic_osync_inode); | 751 | EXPORT_SYMBOL(generic_osync_inode); |
752 | 752 | ||
753 | /** | 753 | /** |
754 | * writeback_acquire: attempt to get exclusive writeback access to a device | 754 | * writeback_acquire - attempt to get exclusive writeback access to a device |
755 | * @bdi: the device's backing_dev_info structure | 755 | * @bdi: the device's backing_dev_info structure |
756 | * | 756 | * |
757 | * It is a waste of resources to have more than one pdflush thread blocked on | 757 | * It is a waste of resources to have more than one pdflush thread blocked on |
@@ -768,7 +768,7 @@ int writeback_acquire(struct backing_dev_info *bdi) | |||
768 | } | 768 | } |
769 | 769 | ||
770 | /** | 770 | /** |
771 | * writeback_in_progress: determine whether there is writeback in progress | 771 | * writeback_in_progress - determine whether there is writeback in progress |
772 | * @bdi: the device's backing_dev_info structure. | 772 | * @bdi: the device's backing_dev_info structure. |
773 | * | 773 | * |
774 | * Determine whether there is writeback in progress against a backing device. | 774 | * Determine whether there is writeback in progress against a backing device. |
@@ -779,7 +779,7 @@ int writeback_in_progress(struct backing_dev_info *bdi) | |||
779 | } | 779 | } |
780 | 780 | ||
781 | /** | 781 | /** |
782 | * writeback_release: relinquish exclusive writeback access against a device. | 782 | * writeback_release - relinquish exclusive writeback access against a device. |
783 | * @bdi: the device's backing_dev_info structure | 783 | * @bdi: the device's backing_dev_info structure |
784 | */ | 784 | */ |
785 | void writeback_release(struct backing_dev_info *bdi) | 785 | void writeback_release(struct backing_dev_info *bdi) |
diff --git a/fs/isofs/compress.c b/fs/isofs/compress.c index 37dbd6404787..defb932eee9a 100644 --- a/fs/isofs/compress.c +++ b/fs/isofs/compress.c | |||
@@ -72,6 +72,17 @@ static int zisofs_readpage(struct file *file, struct page *page) | |||
72 | offset = index & ~zisofs_block_page_mask; | 72 | offset = index & ~zisofs_block_page_mask; |
73 | blockindex = offset >> zisofs_block_page_shift; | 73 | blockindex = offset >> zisofs_block_page_shift; |
74 | maxpage = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; | 74 | maxpage = (inode->i_size + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT; |
75 | |||
76 | /* | ||
77 | * If this page is wholly outside i_size we just return zero; | ||
78 | * do_generic_file_read() will handle this for us | ||
79 | */ | ||
80 | if (page->index >= maxpage) { | ||
81 | SetPageUptodate(page); | ||
82 | unlock_page(page); | ||
83 | return 0; | ||
84 | } | ||
85 | |||
75 | maxpage = min(zisofs_block_pages, maxpage-offset); | 86 | maxpage = min(zisofs_block_pages, maxpage-offset); |
76 | 87 | ||
77 | for ( i = 0 ; i < maxpage ; i++, offset++ ) { | 88 | for ( i = 0 ; i < maxpage ; i++, offset++ ) { |
diff --git a/fs/jbd/journal.c b/fs/jbd/journal.c index 3943a8905eb2..9816293442ab 100644 --- a/fs/jbd/journal.c +++ b/fs/jbd/journal.c | |||
@@ -697,13 +697,14 @@ fail: | |||
697 | */ | 697 | */ |
698 | 698 | ||
699 | /** | 699 | /** |
700 | * journal_t * journal_init_dev() - creates an initialises a journal structure | 700 | * journal_t * journal_init_dev() - creates and initialises a journal structure |
701 | * @bdev: Block device on which to create the journal | 701 | * @bdev: Block device on which to create the journal |
702 | * @fs_dev: Device which hold journalled filesystem for this journal. | 702 | * @fs_dev: Device which hold journalled filesystem for this journal. |
703 | * @start: Block nr Start of journal. | 703 | * @start: Block nr Start of journal. |
704 | * @len: Length of the journal in blocks. | 704 | * @len: Length of the journal in blocks. |
705 | * @blocksize: blocksize of journalling device | 705 | * @blocksize: blocksize of journalling device |
706 | * @returns: a newly created journal_t * | 706 | * |
707 | * Returns: a newly created journal_t * | ||
707 | * | 708 | * |
708 | * journal_init_dev creates a journal which maps a fixed contiguous | 709 | * journal_init_dev creates a journal which maps a fixed contiguous |
709 | * range of blocks on an arbitrary block device. | 710 | * range of blocks on an arbitrary block device. |
diff --git a/fs/jbd/recovery.c b/fs/jbd/recovery.c index 2b8edf4d6eaa..43bc5e5ed064 100644 --- a/fs/jbd/recovery.c +++ b/fs/jbd/recovery.c | |||
@@ -478,7 +478,7 @@ static int do_one_pass(journal_t *journal, | |||
478 | memcpy(nbh->b_data, obh->b_data, | 478 | memcpy(nbh->b_data, obh->b_data, |
479 | journal->j_blocksize); | 479 | journal->j_blocksize); |
480 | if (flags & JFS_FLAG_ESCAPE) { | 480 | if (flags & JFS_FLAG_ESCAPE) { |
481 | *((__be32 *)bh->b_data) = | 481 | *((__be32 *)nbh->b_data) = |
482 | cpu_to_be32(JFS_MAGIC_NUMBER); | 482 | cpu_to_be32(JFS_MAGIC_NUMBER); |
483 | } | 483 | } |
484 | 484 | ||
diff --git a/fs/jbd/transaction.c b/fs/jbd/transaction.c index c6cbb6cd59b2..2c9e8f5d13aa 100644 --- a/fs/jbd/transaction.c +++ b/fs/jbd/transaction.c | |||
@@ -1426,7 +1426,8 @@ int journal_stop(handle_t *handle) | |||
1426 | return err; | 1426 | return err; |
1427 | } | 1427 | } |
1428 | 1428 | ||
1429 | /**int journal_force_commit() - force any uncommitted transactions | 1429 | /** |
1430 | * int journal_force_commit() - force any uncommitted transactions | ||
1430 | * @journal: journal to force | 1431 | * @journal: journal to force |
1431 | * | 1432 | * |
1432 | * For synchronous operations: force any uncommitted transactions | 1433 | * For synchronous operations: force any uncommitted transactions |
@@ -1903,13 +1904,12 @@ zap_buffer_unlocked: | |||
1903 | } | 1904 | } |
1904 | 1905 | ||
1905 | /** | 1906 | /** |
1906 | * void journal_invalidatepage() | 1907 | * void journal_invalidatepage() - invalidate a journal page |
1907 | * @journal: journal to use for flush... | 1908 | * @journal: journal to use for flush |
1908 | * @page: page to flush | 1909 | * @page: page to flush |
1909 | * @offset: length of page to invalidate. | 1910 | * @offset: length of page to invalidate. |
1910 | * | 1911 | * |
1911 | * Reap page buffers containing data after offset in page. | 1912 | * Reap page buffers containing data after offset in page. |
1912 | * | ||
1913 | */ | 1913 | */ |
1914 | void journal_invalidatepage(journal_t *journal, | 1914 | void journal_invalidatepage(journal_t *journal, |
1915 | struct page *page, | 1915 | struct page *page, |
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c index 146411387ada..5d0405a9e7ca 100644 --- a/fs/jbd2/recovery.c +++ b/fs/jbd2/recovery.c | |||
@@ -535,7 +535,7 @@ static int do_one_pass(journal_t *journal, | |||
535 | memcpy(nbh->b_data, obh->b_data, | 535 | memcpy(nbh->b_data, obh->b_data, |
536 | journal->j_blocksize); | 536 | journal->j_blocksize); |
537 | if (flags & JBD2_FLAG_ESCAPE) { | 537 | if (flags & JBD2_FLAG_ESCAPE) { |
538 | *((__be32 *)bh->b_data) = | 538 | *((__be32 *)nbh->b_data) = |
539 | cpu_to_be32(JBD2_MAGIC_NUMBER); | 539 | cpu_to_be32(JBD2_MAGIC_NUMBER); |
540 | } | 540 | } |
541 | 541 | ||
diff --git a/fs/locks.c b/fs/locks.c index f36f0e61558d..d83fab1b77b5 100644 --- a/fs/locks.c +++ b/fs/locks.c | |||
@@ -1275,13 +1275,13 @@ out: | |||
1275 | EXPORT_SYMBOL(__break_lease); | 1275 | EXPORT_SYMBOL(__break_lease); |
1276 | 1276 | ||
1277 | /** | 1277 | /** |
1278 | * lease_get_mtime | 1278 | * lease_get_mtime - get the last modified time of an inode |
1279 | * @inode: the inode | 1279 | * @inode: the inode |
1280 | * @time: pointer to a timespec which will contain the last modified time | 1280 | * @time: pointer to a timespec which will contain the last modified time |
1281 | * | 1281 | * |
1282 | * This is to force NFS clients to flush their caches for files with | 1282 | * This is to force NFS clients to flush their caches for files with |
1283 | * exclusive leases. The justification is that if someone has an | 1283 | * exclusive leases. The justification is that if someone has an |
1284 | * exclusive lease, then they could be modifiying it. | 1284 | * exclusive lease, then they could be modifying it. |
1285 | */ | 1285 | */ |
1286 | void lease_get_mtime(struct inode *inode, struct timespec *time) | 1286 | void lease_get_mtime(struct inode *inode, struct timespec *time) |
1287 | { | 1287 | { |
diff --git a/fs/namei.c b/fs/namei.c index 941c8e8228c0..6b7a0eef4090 100644 --- a/fs/namei.c +++ b/fs/namei.c | |||
@@ -1364,13 +1364,13 @@ static int __lookup_one_len(const char *name, struct qstr *this, | |||
1364 | } | 1364 | } |
1365 | 1365 | ||
1366 | /** | 1366 | /** |
1367 | * lookup_one_len: filesystem helper to lookup single pathname component | 1367 | * lookup_one_len - filesystem helper to lookup single pathname component |
1368 | * @name: pathname component to lookup | 1368 | * @name: pathname component to lookup |
1369 | * @base: base directory to lookup from | 1369 | * @base: base directory to lookup from |
1370 | * @len: maximum length @len should be interpreted to | 1370 | * @len: maximum length @len should be interpreted to |
1371 | * | 1371 | * |
1372 | * Note that this routine is purely a helper for filesystem useage and should | 1372 | * Note that this routine is purely a helper for filesystem usage and should |
1373 | * not be called by generic code. Also note that by using this function to | 1373 | * not be called by generic code. Also note that by using this function the |
1374 | * nameidata argument is passed to the filesystem methods and a filesystem | 1374 | * nameidata argument is passed to the filesystem methods and a filesystem |
1375 | * using this helper needs to be prepared for that. | 1375 | * using this helper needs to be prepared for that. |
1376 | */ | 1376 | */ |
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 3d7d9631e125..5a70be589bbe 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -533,7 +533,10 @@ readpage_async_filler(void *data, struct page *page) | |||
533 | 533 | ||
534 | if (len < PAGE_CACHE_SIZE) | 534 | if (len < PAGE_CACHE_SIZE) |
535 | zero_user_segment(page, len, PAGE_CACHE_SIZE); | 535 | zero_user_segment(page, len, PAGE_CACHE_SIZE); |
536 | nfs_pageio_add_request(desc->pgio, new); | 536 | if (!nfs_pageio_add_request(desc->pgio, new)) { |
537 | error = desc->pgio->pg_error; | ||
538 | goto out_unlock; | ||
539 | } | ||
537 | return 0; | 540 | return 0; |
538 | out_error: | 541 | out_error: |
539 | error = PTR_ERR(new); | 542 | error = PTR_ERR(new); |
diff --git a/fs/nfs/write.c b/fs/nfs/write.c index 80c61fdb2720..bed63416a55b 100644 --- a/fs/nfs/write.c +++ b/fs/nfs/write.c | |||
@@ -39,6 +39,7 @@ static struct nfs_page * nfs_update_request(struct nfs_open_context*, | |||
39 | unsigned int, unsigned int); | 39 | unsigned int, unsigned int); |
40 | static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc, | 40 | static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc, |
41 | struct inode *inode, int ioflags); | 41 | struct inode *inode, int ioflags); |
42 | static void nfs_redirty_request(struct nfs_page *req); | ||
42 | static const struct rpc_call_ops nfs_write_partial_ops; | 43 | static const struct rpc_call_ops nfs_write_partial_ops; |
43 | static const struct rpc_call_ops nfs_write_full_ops; | 44 | static const struct rpc_call_ops nfs_write_full_ops; |
44 | static const struct rpc_call_ops nfs_commit_ops; | 45 | static const struct rpc_call_ops nfs_commit_ops; |
@@ -288,7 +289,12 @@ static int nfs_page_async_flush(struct nfs_pageio_descriptor *pgio, | |||
288 | BUG(); | 289 | BUG(); |
289 | } | 290 | } |
290 | spin_unlock(&inode->i_lock); | 291 | spin_unlock(&inode->i_lock); |
291 | nfs_pageio_add_request(pgio, req); | 292 | if (!nfs_pageio_add_request(pgio, req)) { |
293 | nfs_redirty_request(req); | ||
294 | nfs_end_page_writeback(page); | ||
295 | nfs_clear_page_tag_locked(req); | ||
296 | return pgio->pg_error; | ||
297 | } | ||
292 | return 0; | 298 | return 0; |
293 | } | 299 | } |
294 | 300 | ||
diff --git a/fs/proc/base.c b/fs/proc/base.c index 770de444eba0..81d7d145292a 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c | |||
@@ -1036,6 +1036,26 @@ static const struct file_operations proc_loginuid_operations = { | |||
1036 | .read = proc_loginuid_read, | 1036 | .read = proc_loginuid_read, |
1037 | .write = proc_loginuid_write, | 1037 | .write = proc_loginuid_write, |
1038 | }; | 1038 | }; |
1039 | |||
1040 | static ssize_t proc_sessionid_read(struct file * file, char __user * buf, | ||
1041 | size_t count, loff_t *ppos) | ||
1042 | { | ||
1043 | struct inode * inode = file->f_path.dentry->d_inode; | ||
1044 | struct task_struct *task = get_proc_task(inode); | ||
1045 | ssize_t length; | ||
1046 | char tmpbuf[TMPBUFLEN]; | ||
1047 | |||
1048 | if (!task) | ||
1049 | return -ESRCH; | ||
1050 | length = scnprintf(tmpbuf, TMPBUFLEN, "%u", | ||
1051 | audit_get_sessionid(task)); | ||
1052 | put_task_struct(task); | ||
1053 | return simple_read_from_buffer(buf, count, ppos, tmpbuf, length); | ||
1054 | } | ||
1055 | |||
1056 | static const struct file_operations proc_sessionid_operations = { | ||
1057 | .read = proc_sessionid_read, | ||
1058 | }; | ||
1039 | #endif | 1059 | #endif |
1040 | 1060 | ||
1041 | #ifdef CONFIG_FAULT_INJECTION | 1061 | #ifdef CONFIG_FAULT_INJECTION |
@@ -2319,6 +2339,7 @@ static const struct pid_entry tgid_base_stuff[] = { | |||
2319 | REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), | 2339 | REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), |
2320 | #ifdef CONFIG_AUDITSYSCALL | 2340 | #ifdef CONFIG_AUDITSYSCALL |
2321 | REG("loginuid", S_IWUSR|S_IRUGO, loginuid), | 2341 | REG("loginuid", S_IWUSR|S_IRUGO, loginuid), |
2342 | REG("sessionid", S_IRUSR, sessionid), | ||
2322 | #endif | 2343 | #endif |
2323 | #ifdef CONFIG_FAULT_INJECTION | 2344 | #ifdef CONFIG_FAULT_INJECTION |
2324 | REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), | 2345 | REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), |
@@ -2649,6 +2670,7 @@ static const struct pid_entry tid_base_stuff[] = { | |||
2649 | REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), | 2670 | REG("oom_adj", S_IRUGO|S_IWUSR, oom_adjust), |
2650 | #ifdef CONFIG_AUDITSYSCALL | 2671 | #ifdef CONFIG_AUDITSYSCALL |
2651 | REG("loginuid", S_IWUSR|S_IRUGO, loginuid), | 2672 | REG("loginuid", S_IWUSR|S_IRUGO, loginuid), |
2673 | REG("sessionid", S_IRUSR, sessionid), | ||
2652 | #endif | 2674 | #endif |
2653 | #ifdef CONFIG_FAULT_INJECTION | 2675 | #ifdef CONFIG_FAULT_INJECTION |
2654 | REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), | 2676 | REG("make-it-fail", S_IRUGO|S_IWUSR, fault_inject), |
diff --git a/fs/romfs/inode.c b/fs/romfs/inode.c index 00b6f0a518c8..3f13d491c7c7 100644 --- a/fs/romfs/inode.c +++ b/fs/romfs/inode.c | |||
@@ -340,8 +340,9 @@ static struct dentry * | |||
340 | romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | 340 | romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) |
341 | { | 341 | { |
342 | unsigned long offset, maxoff; | 342 | unsigned long offset, maxoff; |
343 | int fslen, res; | 343 | long res; |
344 | struct inode *inode; | 344 | int fslen; |
345 | struct inode *inode = NULL; | ||
345 | char fsname[ROMFS_MAXFN]; /* XXX dynamic? */ | 346 | char fsname[ROMFS_MAXFN]; /* XXX dynamic? */ |
346 | struct romfs_inode ri; | 347 | struct romfs_inode ri; |
347 | const char *name; /* got from dentry */ | 348 | const char *name; /* got from dentry */ |
@@ -351,7 +352,7 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | |||
351 | offset = dir->i_ino & ROMFH_MASK; | 352 | offset = dir->i_ino & ROMFH_MASK; |
352 | lock_kernel(); | 353 | lock_kernel(); |
353 | if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) | 354 | if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) |
354 | goto out; | 355 | goto error; |
355 | 356 | ||
356 | maxoff = romfs_maxsize(dir->i_sb); | 357 | maxoff = romfs_maxsize(dir->i_sb); |
357 | offset = be32_to_cpu(ri.spec) & ROMFH_MASK; | 358 | offset = be32_to_cpu(ri.spec) & ROMFH_MASK; |
@@ -364,9 +365,9 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | |||
364 | 365 | ||
365 | for(;;) { | 366 | for(;;) { |
366 | if (!offset || offset >= maxoff) | 367 | if (!offset || offset >= maxoff) |
367 | goto out0; | 368 | goto success; /* negative success */ |
368 | if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) | 369 | if (romfs_copyfrom(dir, &ri, offset, ROMFH_SIZE) <= 0) |
369 | goto out; | 370 | goto error; |
370 | 371 | ||
371 | /* try to match the first 16 bytes of name */ | 372 | /* try to match the first 16 bytes of name */ |
372 | fslen = romfs_strnlen(dir, offset+ROMFH_SIZE, ROMFH_SIZE); | 373 | fslen = romfs_strnlen(dir, offset+ROMFH_SIZE, ROMFH_SIZE); |
@@ -397,23 +398,14 @@ romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) | |||
397 | inode = romfs_iget(dir->i_sb, offset); | 398 | inode = romfs_iget(dir->i_sb, offset); |
398 | if (IS_ERR(inode)) { | 399 | if (IS_ERR(inode)) { |
399 | res = PTR_ERR(inode); | 400 | res = PTR_ERR(inode); |
400 | goto out; | 401 | goto error; |
401 | } | 402 | } |
402 | 403 | ||
403 | /* | 404 | success: |
404 | * it's a bit funky, _lookup needs to return an error code | 405 | d_add(dentry, inode); |
405 | * (negative) or a NULL, both as a dentry. ENOENT should not | ||
406 | * be returned, instead we need to create a negative dentry by | ||
407 | * d_add(dentry, NULL); and return 0 as no error. | ||
408 | * (Although as I see, it only matters on writable file | ||
409 | * systems). | ||
410 | */ | ||
411 | |||
412 | out0: inode = NULL; | ||
413 | res = 0; | 406 | res = 0; |
414 | d_add (dentry, inode); | 407 | error: |
415 | 408 | unlock_kernel(); | |
416 | out: unlock_kernel(); | ||
417 | return ERR_PTR(res); | 409 | return ERR_PTR(res); |
418 | } | 410 | } |
419 | 411 | ||
diff --git a/fs/super.c b/fs/super.c index 010446d8c40a..d0a941a4e620 100644 --- a/fs/super.c +++ b/fs/super.c | |||
@@ -556,11 +556,11 @@ out: | |||
556 | } | 556 | } |
557 | 557 | ||
558 | /** | 558 | /** |
559 | * mark_files_ro | 559 | * mark_files_ro - mark all files read-only |
560 | * @sb: superblock in question | 560 | * @sb: superblock in question |
561 | * | 561 | * |
562 | * All files are marked read/only. We don't care about pending | 562 | * All files are marked read-only. We don't care about pending |
563 | * delete files so this should be used in 'force' mode only | 563 | * delete files so this should be used in 'force' mode only. |
564 | */ | 564 | */ |
565 | 565 | ||
566 | static void mark_files_ro(struct super_block *sb) | 566 | static void mark_files_ro(struct super_block *sb) |
diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c index 1fca381f0ce2..1e7598fb9787 100644 --- a/fs/ufs/balloc.c +++ b/fs/ufs/balloc.c | |||
@@ -315,8 +315,8 @@ static void ufs_change_blocknr(struct inode *inode, sector_t beg, | |||
315 | } | 315 | } |
316 | 316 | ||
317 | UFSD(" change from %llu to %llu, pos %u\n", | 317 | UFSD(" change from %llu to %llu, pos %u\n", |
318 | (unsigned long long)pos + oldb, | 318 | (unsigned long long)(pos + oldb), |
319 | (unsigned long long)pos + newb, pos); | 319 | (unsigned long long)(pos + newb), pos); |
320 | 320 | ||
321 | bh->b_blocknr = newb + pos; | 321 | bh->b_blocknr = newb + pos; |
322 | unmap_underlying_metadata(bh->b_bdev, | 322 | unmap_underlying_metadata(bh->b_bdev, |
diff --git a/include/asm-arm/arch-at91/at91cap9.h b/include/asm-arm/arch-at91/at91cap9.h index 73e1fcf4a0aa..bac83adb5050 100644 --- a/include/asm-arm/arch-at91/at91cap9.h +++ b/include/asm-arm/arch-at91/at91cap9.h | |||
@@ -97,12 +97,17 @@ | |||
97 | #define AT91_PIOD (0xfffff800 - AT91_BASE_SYS) | 97 | #define AT91_PIOD (0xfffff800 - AT91_BASE_SYS) |
98 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) | 98 | #define AT91_PMC (0xfffffc00 - AT91_BASE_SYS) |
99 | #define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS) | 99 | #define AT91_RSTC (0xfffffd00 - AT91_BASE_SYS) |
100 | #define AT91_SHDC (0xfffffd10 - AT91_BASE_SYS) | 100 | #define AT91_SHDWC (0xfffffd10 - AT91_BASE_SYS) |
101 | #define AT91_RTT (0xfffffd20 - AT91_BASE_SYS) | 101 | #define AT91_RTT (0xfffffd20 - AT91_BASE_SYS) |
102 | #define AT91_PIT (0xfffffd30 - AT91_BASE_SYS) | 102 | #define AT91_PIT (0xfffffd30 - AT91_BASE_SYS) |
103 | #define AT91_WDT (0xfffffd40 - AT91_BASE_SYS) | 103 | #define AT91_WDT (0xfffffd40 - AT91_BASE_SYS) |
104 | #define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) | 104 | #define AT91_GPBR (0xfffffd50 - AT91_BASE_SYS) |
105 | 105 | ||
106 | #define AT91_USART0 AT91CAP9_BASE_US0 | ||
107 | #define AT91_USART1 AT91CAP9_BASE_US1 | ||
108 | #define AT91_USART2 AT91CAP9_BASE_US2 | ||
109 | |||
110 | |||
106 | /* | 111 | /* |
107 | * Internal Memory. | 112 | * Internal Memory. |
108 | */ | 113 | */ |
diff --git a/include/asm-arm/arch-omap/dsp_common.h b/include/asm-arm/arch-omap/dsp_common.h index c61f868f24ee..da97736f3efa 100644 --- a/include/asm-arm/arch-omap/dsp_common.h +++ b/include/asm-arm/arch-omap/dsp_common.h | |||
@@ -24,11 +24,17 @@ | |||
24 | #ifndef ASM_ARCH_DSP_COMMON_H | 24 | #ifndef ASM_ARCH_DSP_COMMON_H |
25 | #define ASM_ARCH_DSP_COMMON_H | 25 | #define ASM_ARCH_DSP_COMMON_H |
26 | 26 | ||
27 | #ifdef CONFIG_ARCH_OMAP1 | 27 | #if defined(CONFIG_ARCH_OMAP1) && defined(CONFIG_OMAP_MMU_FWK) |
28 | extern void omap_dsp_request_mpui(void); | 28 | extern void omap_dsp_request_mpui(void); |
29 | extern void omap_dsp_release_mpui(void); | 29 | extern void omap_dsp_release_mpui(void); |
30 | extern int omap_dsp_request_mem(void); | 30 | extern int omap_dsp_request_mem(void); |
31 | extern int omap_dsp_release_mem(void); | 31 | extern int omap_dsp_release_mem(void); |
32 | #else | ||
33 | static inline int omap_dsp_request_mem(void) | ||
34 | { | ||
35 | return 0; | ||
36 | } | ||
37 | #define omap_dsp_release_mem() do {} while (0) | ||
32 | #endif | 38 | #endif |
33 | 39 | ||
34 | #endif /* ASM_ARCH_DSP_COMMON_H */ | 40 | #endif /* ASM_ARCH_DSP_COMMON_H */ |
diff --git a/include/asm-arm/arch-s3c2410/irqs.h b/include/asm-arm/arch-s3c2410/irqs.h index d858b3eb5547..f5435d8c3769 100644 --- a/include/asm-arm/arch-s3c2410/irqs.h +++ b/include/asm-arm/arch-s3c2410/irqs.h | |||
@@ -85,7 +85,7 @@ | |||
85 | #define IRQ_EINT23 S3C2410_IRQ(51) | 85 | #define IRQ_EINT23 S3C2410_IRQ(51) |
86 | 86 | ||
87 | 87 | ||
88 | #define IRQ_EINT(x) S3C2410_IRQ((x >= 4) ? (IRQ_EINT4 + (x) - 4) : (S3C2410_IRQ(0) + (x))) | 88 | #define IRQ_EINT(x) (((x) >= 4) ? (IRQ_EINT4 + (x) - 4) : (IRQ_EINT0 + (x))) |
89 | 89 | ||
90 | #define IRQ_LCD_FIFO S3C2410_IRQ(52) | 90 | #define IRQ_LCD_FIFO S3C2410_IRQ(52) |
91 | #define IRQ_LCD_FRAME S3C2410_IRQ(53) | 91 | #define IRQ_LCD_FRAME S3C2410_IRQ(53) |
diff --git a/include/asm-sh/byteorder.h b/include/asm-sh/byteorder.h index 0eb9904b6545..4c13e6117563 100644 --- a/include/asm-sh/byteorder.h +++ b/include/asm-sh/byteorder.h | |||
@@ -11,13 +11,13 @@ | |||
11 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) | 11 | static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) |
12 | { | 12 | { |
13 | __asm__( | 13 | __asm__( |
14 | #ifdef CONFIG_SUPERH32 | 14 | #ifdef __SH5__ |
15 | "byterev %0, %0\n\t" | ||
16 | "shari %0, 32, %0" | ||
17 | #else | ||
15 | "swap.b %0, %0\n\t" | 18 | "swap.b %0, %0\n\t" |
16 | "swap.w %0, %0\n\t" | 19 | "swap.w %0, %0\n\t" |
17 | "swap.b %0, %0" | 20 | "swap.b %0, %0" |
18 | #else | ||
19 | "byterev %0, %0\n\t" | ||
20 | "shari %0, 32, %0" | ||
21 | #endif | 21 | #endif |
22 | : "=r" (x) | 22 | : "=r" (x) |
23 | : "0" (x)); | 23 | : "0" (x)); |
@@ -28,12 +28,11 @@ static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) | |||
28 | static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) | 28 | static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) |
29 | { | 29 | { |
30 | __asm__( | 30 | __asm__( |
31 | #ifdef CONFIG_SUPERH32 | 31 | #ifdef __SH5__ |
32 | "swap.b %0, %0" | ||
33 | #else | ||
34 | "byterev %0, %0\n\t" | 32 | "byterev %0, %0\n\t" |
35 | "shari %0, 32, %0" | 33 | "shari %0, 32, %0" |
36 | 34 | #else | |
35 | "swap.b %0, %0" | ||
37 | #endif | 36 | #endif |
38 | : "=r" (x) | 37 | : "=r" (x) |
39 | : "0" (x)); | 38 | : "0" (x)); |
diff --git a/include/asm-sh/posix_types.h b/include/asm-sh/posix_types.h index 4b9d11c9fc77..4eeb723aee7e 100644 --- a/include/asm-sh/posix_types.h +++ b/include/asm-sh/posix_types.h | |||
@@ -4,4 +4,10 @@ | |||
4 | # else | 4 | # else |
5 | # include "posix_types_64.h" | 5 | # include "posix_types_64.h" |
6 | # endif | 6 | # endif |
7 | #else | ||
8 | # ifdef __SH5__ | ||
9 | # include "posix_types_64.h" | ||
10 | # else | ||
11 | # include "posix_types_32.h" | ||
12 | # endif | ||
7 | #endif /* __KERNEL__ */ | 13 | #endif /* __KERNEL__ */ |
diff --git a/include/linux/Kbuild b/include/linux/Kbuild index 0fac822c1157..4108b38ebb16 100644 --- a/include/linux/Kbuild +++ b/include/linux/Kbuild | |||
@@ -127,7 +127,6 @@ header-y += pkt_sched.h | |||
127 | header-y += posix_types.h | 127 | header-y += posix_types.h |
128 | header-y += ppdev.h | 128 | header-y += ppdev.h |
129 | header-y += prctl.h | 129 | header-y += prctl.h |
130 | header-y += ps2esdi.h | ||
131 | header-y += qnxtypes.h | 130 | header-y += qnxtypes.h |
132 | header-y += quotaio_v1.h | 131 | header-y += quotaio_v1.h |
133 | header-y += quotaio_v2.h | 132 | header-y += quotaio_v2.h |
diff --git a/include/linux/jbd.h b/include/linux/jbd.h index b18fd3b9b835..423f58272188 100644 --- a/include/linux/jbd.h +++ b/include/linux/jbd.h | |||
@@ -348,8 +348,7 @@ static inline void jbd_unlock_bh_journal_head(struct buffer_head *bh) | |||
348 | struct jbd_revoke_table_s; | 348 | struct jbd_revoke_table_s; |
349 | 349 | ||
350 | /** | 350 | /** |
351 | * struct handle_s - The handle_s type is the concrete type associated with | 351 | * struct handle_s - this is the concrete type associated with handle_t. |
352 | * handle_t. | ||
353 | * @h_transaction: Which compound transaction is this update a part of? | 352 | * @h_transaction: Which compound transaction is this update a part of? |
354 | * @h_buffer_credits: Number of remaining buffers we are allowed to dirty. | 353 | * @h_buffer_credits: Number of remaining buffers we are allowed to dirty. |
355 | * @h_ref: Reference count on this handle | 354 | * @h_ref: Reference count on this handle |
@@ -358,12 +357,7 @@ struct jbd_revoke_table_s; | |||
358 | * @h_jdata: flag to force data journaling | 357 | * @h_jdata: flag to force data journaling |
359 | * @h_aborted: flag indicating fatal error on handle | 358 | * @h_aborted: flag indicating fatal error on handle |
360 | * @h_lockdep_map: lockdep info for debugging lock problems | 359 | * @h_lockdep_map: lockdep info for debugging lock problems |
361 | **/ | ||
362 | |||
363 | /* Docbook can't yet cope with the bit fields, but will leave the documentation | ||
364 | * in so it can be fixed later. | ||
365 | */ | 360 | */ |
366 | |||
367 | struct handle_s | 361 | struct handle_s |
368 | { | 362 | { |
369 | /* Which compound transaction is this update a part of? */ | 363 | /* Which compound transaction is this update a part of? */ |
@@ -558,8 +552,7 @@ struct transaction_s | |||
558 | }; | 552 | }; |
559 | 553 | ||
560 | /** | 554 | /** |
561 | * struct journal_s - The journal_s type is the concrete type associated with | 555 | * struct journal_s - this is the concrete type associated with journal_t. |
562 | * journal_t. | ||
563 | * @j_flags: General journaling state flags | 556 | * @j_flags: General journaling state flags |
564 | * @j_errno: Is there an outstanding uncleared error on the journal (from a | 557 | * @j_errno: Is there an outstanding uncleared error on the journal (from a |
565 | * prior abort)? | 558 | * prior abort)? |
diff --git a/include/linux/memstick.h b/include/linux/memstick.h index b7ee25888836..3e686ec6a967 100644 --- a/include/linux/memstick.h +++ b/include/linux/memstick.h | |||
@@ -239,7 +239,6 @@ struct memstick_request { | |||
239 | unsigned char tpc; | 239 | unsigned char tpc; |
240 | unsigned char data_dir:1, | 240 | unsigned char data_dir:1, |
241 | need_card_int:1, | 241 | need_card_int:1, |
242 | get_int_reg:1, | ||
243 | long_data:1; | 242 | long_data:1; |
244 | unsigned char int_reg; | 243 | unsigned char int_reg; |
245 | int error; | 244 | int error; |
diff --git a/include/linux/ps2esdi.h b/include/linux/ps2esdi.h deleted file mode 100644 index c0e050b1dfe9..000000000000 --- a/include/linux/ps2esdi.h +++ /dev/null | |||
@@ -1,98 +0,0 @@ | |||
1 | #ifndef _PS2ESDI_H_ | ||
2 | #define _PS2ESDI_H_ | ||
3 | |||
4 | #define NRML_ESDI_ID 0xddff | ||
5 | #define INTG_ESDI_ID 0xdf9f | ||
6 | |||
7 | #define PRIMARY_IO_BASE 0x3510 | ||
8 | #define ALT_IO_BASE 0x3518 | ||
9 | |||
10 | #define ESDI_CMD_INT (io_base+0) | ||
11 | #define ESDI_STT_INT (io_base+0) | ||
12 | #define ESDI_CONTROL (io_base+2) | ||
13 | #define ESDI_STATUS (io_base+2) | ||
14 | #define ESDI_ATTN (io_base+3) | ||
15 | #define ESDI_INTRPT (io_base+3) | ||
16 | |||
17 | #define STATUS_ENABLED 0x01 | ||
18 | #define STATUS_ALTERNATE 0x02 | ||
19 | #define STATUS_BUSY 0x10 | ||
20 | #define STATUS_STAT_AVAIL 0x08 | ||
21 | #define STATUS_INTR 0x01 | ||
22 | #define STATUS_RESET_FAIL 0xea | ||
23 | #define STATUS_CMD_INF 0x04 | ||
24 | |||
25 | #define CTRL_SOFT_RESET 0xe4 | ||
26 | #define CTRL_HARD_RESET 0x80 | ||
27 | #define CTRL_EOI 0xe2 | ||
28 | #define CTRL_ENABLE_DMA 0x02 | ||
29 | #define CTRL_ENABLE_INTR 0x01 | ||
30 | #define CTRL_DISABLE_INTR 0x00 | ||
31 | |||
32 | #define ATT_EOI 0x02 | ||
33 | |||
34 | /* bits of word 0 of configuration status block. more info see p.38 of tech ref */ | ||
35 | #define CONFIG_IS 0x10 /* Invalid Secondary */ | ||
36 | #define CONFIG_ZD 0x08 /* Zero Defect */ | ||
37 | #define CONFIG_SF 0x04 /* Skewed Format */ | ||
38 | #define CONFIG_FR 0x02 /* Removable */ | ||
39 | #define CONFIG_RT 0x01 /* Retries */ | ||
40 | |||
41 | #define PORT_SYS_A 0x92 | ||
42 | #define PORT_DMA_FN 0x18 | ||
43 | #define PORT_DMA_EX 0x1a | ||
44 | |||
45 | #define ON (unsigned char)0x40 | ||
46 | #define OFF (unsigned char)~ON | ||
47 | #define LITE_ON outb(inb(PORT_SYS_A) | ON,PORT_SYS_A) | ||
48 | #define LITE_OFF outb((inb(PORT_SYS_A) & OFF),PORT_SYS_A) | ||
49 | |||
50 | #define FAIL 0 | ||
51 | #define SUCCES 1 | ||
52 | |||
53 | #define INT_CMD_COMPLETE 0x01 | ||
54 | #define INT_CMD_ECC 0x03 | ||
55 | #define INT_CMD_RETRY 0x05 | ||
56 | #define INT_CMD_FORMAT 0x06 | ||
57 | #define INT_CMD_ECC_RETRY 0x07 | ||
58 | #define INT_CMD_WARNING 0x08 | ||
59 | #define INT_CMD_ABORT 0x09 | ||
60 | #define INT_RESET 0x0A | ||
61 | #define INT_TRANSFER_REQ 0x0B | ||
62 | #define INT_CMD_FAILED 0x0C | ||
63 | #define INT_DMA_ERR 0x0D | ||
64 | #define INT_CMD_BLK_ERR 0x0E | ||
65 | #define INT_ATTN_ERROR 0x0F | ||
66 | |||
67 | #define DMA_MASK_CHAN 0x90 | ||
68 | #define DMA_UNMASK_CHAN 0xA0 | ||
69 | #define DMA_WRITE_ADDR 0x20 | ||
70 | #define DMA_WRITE_TC 0x40 | ||
71 | #define DMA_WRITE_MODE 0x70 | ||
72 | |||
73 | #define CMD_GET_DEV_CONFIG 0x09 | ||
74 | #define CMD_READ 0x4601 | ||
75 | #define CMD_WRITE 0x4602 | ||
76 | #define DMA_READ_16 0x4C | ||
77 | #define DMA_WRITE_16 0x44 | ||
78 | |||
79 | |||
80 | #define MB 1024*1024 | ||
81 | #define SECT_SIZE 512 | ||
82 | |||
83 | #define ERROR 1 | ||
84 | #define OK 0 | ||
85 | |||
86 | #define HDIO_GETGEO 0x0301 | ||
87 | |||
88 | #define FALSE 0 | ||
89 | #define TRUE !FALSE | ||
90 | |||
91 | struct ps2esdi_geometry { | ||
92 | unsigned char heads; | ||
93 | unsigned char sectors; | ||
94 | unsigned short cylinders; | ||
95 | unsigned long start; | ||
96 | }; | ||
97 | |||
98 | #endif /* _PS2ESDI_H_ */ | ||
diff --git a/include/linux/rcupreempt.h b/include/linux/rcupreempt.h index 01152ed532c8..d038aa6e5ee1 100644 --- a/include/linux/rcupreempt.h +++ b/include/linux/rcupreempt.h | |||
@@ -87,15 +87,15 @@ DECLARE_PER_CPU(long, dynticks_progress_counter); | |||
87 | 87 | ||
88 | static inline void rcu_enter_nohz(void) | 88 | static inline void rcu_enter_nohz(void) |
89 | { | 89 | { |
90 | smp_mb(); /* CPUs seeing ++ must see prior RCU read-side crit sects */ | ||
90 | __get_cpu_var(dynticks_progress_counter)++; | 91 | __get_cpu_var(dynticks_progress_counter)++; |
91 | WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); | 92 | WARN_ON(__get_cpu_var(dynticks_progress_counter) & 0x1); |
92 | mb(); | ||
93 | } | 93 | } |
94 | 94 | ||
95 | static inline void rcu_exit_nohz(void) | 95 | static inline void rcu_exit_nohz(void) |
96 | { | 96 | { |
97 | mb(); | ||
98 | __get_cpu_var(dynticks_progress_counter)++; | 97 | __get_cpu_var(dynticks_progress_counter)++; |
98 | smp_mb(); /* CPUs seeing ++ must see later RCU read-side crit sects */ | ||
99 | WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); | 99 | WARN_ON(!(__get_cpu_var(dynticks_progress_counter) & 0x1)); |
100 | } | 100 | } |
101 | 101 | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index 11d8e9a74eff..3625fcaf5d0f 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -929,6 +929,9 @@ struct sched_entity { | |||
929 | u64 vruntime; | 929 | u64 vruntime; |
930 | u64 prev_sum_exec_runtime; | 930 | u64 prev_sum_exec_runtime; |
931 | 931 | ||
932 | u64 last_wakeup; | ||
933 | u64 avg_overlap; | ||
934 | |||
932 | #ifdef CONFIG_SCHEDSTATS | 935 | #ifdef CONFIG_SCHEDSTATS |
933 | u64 wait_start; | 936 | u64 wait_start; |
934 | u64 wait_max; | 937 | u64 wait_max; |
diff --git a/include/linux/security.h b/include/linux/security.h index b07357ca2137..c673dfd4dffc 100644 --- a/include/linux/security.h +++ b/include/linux/security.h | |||
@@ -57,7 +57,6 @@ extern int cap_inode_need_killpriv(struct dentry *dentry); | |||
57 | extern int cap_inode_killpriv(struct dentry *dentry); | 57 | extern int cap_inode_killpriv(struct dentry *dentry); |
58 | extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); | 58 | extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); |
59 | extern void cap_task_reparent_to_init (struct task_struct *p); | 59 | extern void cap_task_reparent_to_init (struct task_struct *p); |
60 | extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid); | ||
61 | extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); | 60 | extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); |
62 | extern int cap_task_setioprio (struct task_struct *p, int ioprio); | 61 | extern int cap_task_setioprio (struct task_struct *p, int ioprio); |
63 | extern int cap_task_setnice (struct task_struct *p, int nice); | 62 | extern int cap_task_setnice (struct task_struct *p, int nice); |
@@ -2187,7 +2186,7 @@ static inline int security_task_kill (struct task_struct *p, | |||
2187 | struct siginfo *info, int sig, | 2186 | struct siginfo *info, int sig, |
2188 | u32 secid) | 2187 | u32 secid) |
2189 | { | 2188 | { |
2190 | return cap_task_kill(p, info, sig, secid); | 2189 | return 0; |
2191 | } | 2190 | } |
2192 | 2191 | ||
2193 | static inline int security_task_wait (struct task_struct *p) | 2192 | static inline int security_task_wait (struct task_struct *p) |
diff --git a/include/linux/topology.h b/include/linux/topology.h index 2352f46160d3..2d8dac8799cf 100644 --- a/include/linux/topology.h +++ b/include/linux/topology.h | |||
@@ -138,7 +138,6 @@ | |||
138 | | SD_BALANCE_FORK \ | 138 | | SD_BALANCE_FORK \ |
139 | | SD_BALANCE_EXEC \ | 139 | | SD_BALANCE_EXEC \ |
140 | | SD_WAKE_AFFINE \ | 140 | | SD_WAKE_AFFINE \ |
141 | | SD_WAKE_IDLE \ | ||
142 | | SD_SHARE_PKG_RESOURCES\ | 141 | | SD_SHARE_PKG_RESOURCES\ |
143 | | BALANCE_FOR_MC_POWER, \ | 142 | | BALANCE_FOR_MC_POWER, \ |
144 | .last_balance = jiffies, \ | 143 | .last_balance = jiffies, \ |
diff --git a/kernel/relay.c b/kernel/relay.c index d080b9d161a7..4c035a8a248c 100644 --- a/kernel/relay.c +++ b/kernel/relay.c | |||
@@ -1066,7 +1066,7 @@ static int subbuf_splice_actor(struct file *in, | |||
1066 | unsigned int flags, | 1066 | unsigned int flags, |
1067 | int *nonpad_ret) | 1067 | int *nonpad_ret) |
1068 | { | 1068 | { |
1069 | unsigned int pidx, poff, total_len, subbuf_pages, ret; | 1069 | unsigned int pidx, poff, total_len, subbuf_pages, nr_pages, ret; |
1070 | struct rchan_buf *rbuf = in->private_data; | 1070 | struct rchan_buf *rbuf = in->private_data; |
1071 | unsigned int subbuf_size = rbuf->chan->subbuf_size; | 1071 | unsigned int subbuf_size = rbuf->chan->subbuf_size; |
1072 | uint64_t pos = (uint64_t) *ppos; | 1072 | uint64_t pos = (uint64_t) *ppos; |
@@ -1097,8 +1097,9 @@ static int subbuf_splice_actor(struct file *in, | |||
1097 | subbuf_pages = rbuf->chan->alloc_size >> PAGE_SHIFT; | 1097 | subbuf_pages = rbuf->chan->alloc_size >> PAGE_SHIFT; |
1098 | pidx = (read_start / PAGE_SIZE) % subbuf_pages; | 1098 | pidx = (read_start / PAGE_SIZE) % subbuf_pages; |
1099 | poff = read_start & ~PAGE_MASK; | 1099 | poff = read_start & ~PAGE_MASK; |
1100 | nr_pages = min_t(unsigned int, subbuf_pages, PIPE_BUFFERS); | ||
1100 | 1101 | ||
1101 | for (total_len = 0; spd.nr_pages < subbuf_pages; spd.nr_pages++) { | 1102 | for (total_len = 0; spd.nr_pages < nr_pages; spd.nr_pages++) { |
1102 | unsigned int this_len, this_end, private; | 1103 | unsigned int this_len, this_end, private; |
1103 | unsigned int cur_pos = read_start + total_len; | 1104 | unsigned int cur_pos = read_start + total_len; |
1104 | 1105 | ||
diff --git a/kernel/sched.c b/kernel/sched.c index d1ad69b270ca..3f7c5eb254e2 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
@@ -1396,6 +1396,12 @@ task_hot(struct task_struct *p, u64 now, struct sched_domain *sd) | |||
1396 | { | 1396 | { |
1397 | s64 delta; | 1397 | s64 delta; |
1398 | 1398 | ||
1399 | /* | ||
1400 | * Buddy candidates are cache hot: | ||
1401 | */ | ||
1402 | if (&p->se == cfs_rq_of(&p->se)->next) | ||
1403 | return 1; | ||
1404 | |||
1399 | if (p->sched_class != &fair_sched_class) | 1405 | if (p->sched_class != &fair_sched_class) |
1400 | return 0; | 1406 | return 0; |
1401 | 1407 | ||
@@ -1855,10 +1861,11 @@ out_activate: | |||
1855 | schedstat_inc(p, se.nr_wakeups_remote); | 1861 | schedstat_inc(p, se.nr_wakeups_remote); |
1856 | update_rq_clock(rq); | 1862 | update_rq_clock(rq); |
1857 | activate_task(rq, p, 1); | 1863 | activate_task(rq, p, 1); |
1858 | check_preempt_curr(rq, p); | ||
1859 | success = 1; | 1864 | success = 1; |
1860 | 1865 | ||
1861 | out_running: | 1866 | out_running: |
1867 | check_preempt_curr(rq, p); | ||
1868 | |||
1862 | p->state = TASK_RUNNING; | 1869 | p->state = TASK_RUNNING; |
1863 | #ifdef CONFIG_SMP | 1870 | #ifdef CONFIG_SMP |
1864 | if (p->sched_class->task_wake_up) | 1871 | if (p->sched_class->task_wake_up) |
@@ -1892,6 +1899,8 @@ static void __sched_fork(struct task_struct *p) | |||
1892 | p->se.exec_start = 0; | 1899 | p->se.exec_start = 0; |
1893 | p->se.sum_exec_runtime = 0; | 1900 | p->se.sum_exec_runtime = 0; |
1894 | p->se.prev_sum_exec_runtime = 0; | 1901 | p->se.prev_sum_exec_runtime = 0; |
1902 | p->se.last_wakeup = 0; | ||
1903 | p->se.avg_overlap = 0; | ||
1895 | 1904 | ||
1896 | #ifdef CONFIG_SCHEDSTATS | 1905 | #ifdef CONFIG_SCHEDSTATS |
1897 | p->se.wait_start = 0; | 1906 | p->se.wait_start = 0; |
diff --git a/kernel/sched_debug.c b/kernel/sched_debug.c index 4b5e24cf2f4a..ef358ba07683 100644 --- a/kernel/sched_debug.c +++ b/kernel/sched_debug.c | |||
@@ -288,6 +288,7 @@ void proc_sched_show_task(struct task_struct *p, struct seq_file *m) | |||
288 | PN(se.exec_start); | 288 | PN(se.exec_start); |
289 | PN(se.vruntime); | 289 | PN(se.vruntime); |
290 | PN(se.sum_exec_runtime); | 290 | PN(se.sum_exec_runtime); |
291 | PN(se.avg_overlap); | ||
291 | 292 | ||
292 | nr_switches = p->nvcsw + p->nivcsw; | 293 | nr_switches = p->nvcsw + p->nivcsw; |
293 | 294 | ||
diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index f2cc59080efa..b85cac4b5e25 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c | |||
@@ -73,13 +73,13 @@ unsigned int sysctl_sched_batch_wakeup_granularity = 10000000UL; | |||
73 | 73 | ||
74 | /* | 74 | /* |
75 | * SCHED_OTHER wake-up granularity. | 75 | * SCHED_OTHER wake-up granularity. |
76 | * (default: 10 msec * (1 + ilog(ncpus)), units: nanoseconds) | 76 | * (default: 5 msec * (1 + ilog(ncpus)), units: nanoseconds) |
77 | * | 77 | * |
78 | * This option delays the preemption effects of decoupled workloads | 78 | * This option delays the preemption effects of decoupled workloads |
79 | * and reduces their over-scheduling. Synchronous workloads will still | 79 | * and reduces their over-scheduling. Synchronous workloads will still |
80 | * have immediate wakeup/sleep latencies. | 80 | * have immediate wakeup/sleep latencies. |
81 | */ | 81 | */ |
82 | unsigned int sysctl_sched_wakeup_granularity = 10000000UL; | 82 | unsigned int sysctl_sched_wakeup_granularity = 5000000UL; |
83 | 83 | ||
84 | const_debug unsigned int sysctl_sched_migration_cost = 500000UL; | 84 | const_debug unsigned int sysctl_sched_migration_cost = 500000UL; |
85 | 85 | ||
@@ -556,6 +556,21 @@ enqueue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int wakeup) | |||
556 | account_entity_enqueue(cfs_rq, se); | 556 | account_entity_enqueue(cfs_rq, se); |
557 | } | 557 | } |
558 | 558 | ||
559 | static void update_avg(u64 *avg, u64 sample) | ||
560 | { | ||
561 | s64 diff = sample - *avg; | ||
562 | *avg += diff >> 3; | ||
563 | } | ||
564 | |||
565 | static void update_avg_stats(struct cfs_rq *cfs_rq, struct sched_entity *se) | ||
566 | { | ||
567 | if (!se->last_wakeup) | ||
568 | return; | ||
569 | |||
570 | update_avg(&se->avg_overlap, se->sum_exec_runtime - se->last_wakeup); | ||
571 | se->last_wakeup = 0; | ||
572 | } | ||
573 | |||
559 | static void | 574 | static void |
560 | dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) | 575 | dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) |
561 | { | 576 | { |
@@ -566,6 +581,7 @@ dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) | |||
566 | 581 | ||
567 | update_stats_dequeue(cfs_rq, se); | 582 | update_stats_dequeue(cfs_rq, se); |
568 | if (sleep) { | 583 | if (sleep) { |
584 | update_avg_stats(cfs_rq, se); | ||
569 | #ifdef CONFIG_SCHEDSTATS | 585 | #ifdef CONFIG_SCHEDSTATS |
570 | if (entity_is_task(se)) { | 586 | if (entity_is_task(se)) { |
571 | struct task_struct *tsk = task_of(se); | 587 | struct task_struct *tsk = task_of(se); |
@@ -980,96 +996,121 @@ static inline int wake_idle(int cpu, struct task_struct *p) | |||
980 | #endif | 996 | #endif |
981 | 997 | ||
982 | #ifdef CONFIG_SMP | 998 | #ifdef CONFIG_SMP |
983 | static int select_task_rq_fair(struct task_struct *p, int sync) | 999 | |
1000 | static const struct sched_class fair_sched_class; | ||
1001 | |||
1002 | static int | ||
1003 | wake_affine(struct rq *rq, struct sched_domain *this_sd, struct rq *this_rq, | ||
1004 | struct task_struct *p, int prev_cpu, int this_cpu, int sync, | ||
1005 | int idx, unsigned long load, unsigned long this_load, | ||
1006 | unsigned int imbalance) | ||
984 | { | 1007 | { |
985 | int cpu, this_cpu; | 1008 | struct task_struct *curr = this_rq->curr; |
986 | struct rq *rq; | 1009 | unsigned long tl = this_load; |
987 | struct sched_domain *sd, *this_sd = NULL; | 1010 | unsigned long tl_per_task; |
988 | int new_cpu; | 1011 | |
1012 | if (!(this_sd->flags & SD_WAKE_AFFINE)) | ||
1013 | return 0; | ||
1014 | |||
1015 | /* | ||
1016 | * If the currently running task will sleep within | ||
1017 | * a reasonable amount of time then attract this newly | ||
1018 | * woken task: | ||
1019 | */ | ||
1020 | if (sync && curr->sched_class == &fair_sched_class) { | ||
1021 | if (curr->se.avg_overlap < sysctl_sched_migration_cost && | ||
1022 | p->se.avg_overlap < sysctl_sched_migration_cost) | ||
1023 | return 1; | ||
1024 | } | ||
989 | 1025 | ||
990 | cpu = task_cpu(p); | 1026 | schedstat_inc(p, se.nr_wakeups_affine_attempts); |
991 | rq = task_rq(p); | 1027 | tl_per_task = cpu_avg_load_per_task(this_cpu); |
992 | this_cpu = smp_processor_id(); | ||
993 | new_cpu = cpu; | ||
994 | 1028 | ||
995 | if (cpu == this_cpu) | 1029 | /* |
996 | goto out_set_cpu; | 1030 | * If sync wakeup then subtract the (maximum possible) |
1031 | * effect of the currently running task from the load | ||
1032 | * of the current CPU: | ||
1033 | */ | ||
1034 | if (sync) | ||
1035 | tl -= current->se.load.weight; | ||
1036 | |||
1037 | if ((tl <= load && tl + target_load(prev_cpu, idx) <= tl_per_task) || | ||
1038 | 100*(tl + p->se.load.weight) <= imbalance*load) { | ||
1039 | /* | ||
1040 | * This domain has SD_WAKE_AFFINE and | ||
1041 | * p is cache cold in this domain, and | ||
1042 | * there is no bad imbalance. | ||
1043 | */ | ||
1044 | schedstat_inc(this_sd, ttwu_move_affine); | ||
1045 | schedstat_inc(p, se.nr_wakeups_affine); | ||
997 | 1046 | ||
1047 | return 1; | ||
1048 | } | ||
1049 | return 0; | ||
1050 | } | ||
1051 | |||
1052 | static int select_task_rq_fair(struct task_struct *p, int sync) | ||
1053 | { | ||
1054 | struct sched_domain *sd, *this_sd = NULL; | ||
1055 | int prev_cpu, this_cpu, new_cpu; | ||
1056 | unsigned long load, this_load; | ||
1057 | struct rq *rq, *this_rq; | ||
1058 | unsigned int imbalance; | ||
1059 | int idx; | ||
1060 | |||
1061 | prev_cpu = task_cpu(p); | ||
1062 | rq = task_rq(p); | ||
1063 | this_cpu = smp_processor_id(); | ||
1064 | this_rq = cpu_rq(this_cpu); | ||
1065 | new_cpu = prev_cpu; | ||
1066 | |||
1067 | /* | ||
1068 | * 'this_sd' is the first domain that both | ||
1069 | * this_cpu and prev_cpu are present in: | ||
1070 | */ | ||
998 | for_each_domain(this_cpu, sd) { | 1071 | for_each_domain(this_cpu, sd) { |
999 | if (cpu_isset(cpu, sd->span)) { | 1072 | if (cpu_isset(prev_cpu, sd->span)) { |
1000 | this_sd = sd; | 1073 | this_sd = sd; |
1001 | break; | 1074 | break; |
1002 | } | 1075 | } |
1003 | } | 1076 | } |
1004 | 1077 | ||
1005 | if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed))) | 1078 | if (unlikely(!cpu_isset(this_cpu, p->cpus_allowed))) |
1006 | goto out_set_cpu; | 1079 | goto out; |
1007 | 1080 | ||
1008 | /* | 1081 | /* |
1009 | * Check for affine wakeup and passive balancing possibilities. | 1082 | * Check for affine wakeup and passive balancing possibilities. |
1010 | */ | 1083 | */ |
1011 | if (this_sd) { | 1084 | if (!this_sd) |
1012 | int idx = this_sd->wake_idx; | 1085 | goto out; |
1013 | unsigned int imbalance; | ||
1014 | unsigned long load, this_load; | ||
1015 | |||
1016 | imbalance = 100 + (this_sd->imbalance_pct - 100) / 2; | ||
1017 | |||
1018 | load = source_load(cpu, idx); | ||
1019 | this_load = target_load(this_cpu, idx); | ||
1020 | |||
1021 | new_cpu = this_cpu; /* Wake to this CPU if we can */ | ||
1022 | |||
1023 | if (this_sd->flags & SD_WAKE_AFFINE) { | ||
1024 | unsigned long tl = this_load; | ||
1025 | unsigned long tl_per_task; | ||
1026 | |||
1027 | /* | ||
1028 | * Attract cache-cold tasks on sync wakeups: | ||
1029 | */ | ||
1030 | if (sync && !task_hot(p, rq->clock, this_sd)) | ||
1031 | goto out_set_cpu; | ||
1032 | |||
1033 | schedstat_inc(p, se.nr_wakeups_affine_attempts); | ||
1034 | tl_per_task = cpu_avg_load_per_task(this_cpu); | ||
1035 | |||
1036 | /* | ||
1037 | * If sync wakeup then subtract the (maximum possible) | ||
1038 | * effect of the currently running task from the load | ||
1039 | * of the current CPU: | ||
1040 | */ | ||
1041 | if (sync) | ||
1042 | tl -= current->se.load.weight; | ||
1043 | |||
1044 | if ((tl <= load && | ||
1045 | tl + target_load(cpu, idx) <= tl_per_task) || | ||
1046 | 100*(tl + p->se.load.weight) <= imbalance*load) { | ||
1047 | /* | ||
1048 | * This domain has SD_WAKE_AFFINE and | ||
1049 | * p is cache cold in this domain, and | ||
1050 | * there is no bad imbalance. | ||
1051 | */ | ||
1052 | schedstat_inc(this_sd, ttwu_move_affine); | ||
1053 | schedstat_inc(p, se.nr_wakeups_affine); | ||
1054 | goto out_set_cpu; | ||
1055 | } | ||
1056 | } | ||
1057 | 1086 | ||
1058 | /* | 1087 | idx = this_sd->wake_idx; |
1059 | * Start passive balancing when half the imbalance_pct | 1088 | |
1060 | * limit is reached. | 1089 | imbalance = 100 + (this_sd->imbalance_pct - 100) / 2; |
1061 | */ | 1090 | |
1062 | if (this_sd->flags & SD_WAKE_BALANCE) { | 1091 | load = source_load(prev_cpu, idx); |
1063 | if (imbalance*this_load <= 100*load) { | 1092 | this_load = target_load(this_cpu, idx); |
1064 | schedstat_inc(this_sd, ttwu_move_balance); | 1093 | |
1065 | schedstat_inc(p, se.nr_wakeups_passive); | 1094 | if (wake_affine(rq, this_sd, this_rq, p, prev_cpu, this_cpu, sync, idx, |
1066 | goto out_set_cpu; | 1095 | load, this_load, imbalance)) |
1067 | } | 1096 | return this_cpu; |
1097 | |||
1098 | if (prev_cpu == this_cpu) | ||
1099 | goto out; | ||
1100 | |||
1101 | /* | ||
1102 | * Start passive balancing when half the imbalance_pct | ||
1103 | * limit is reached. | ||
1104 | */ | ||
1105 | if (this_sd->flags & SD_WAKE_BALANCE) { | ||
1106 | if (imbalance*this_load <= 100*load) { | ||
1107 | schedstat_inc(this_sd, ttwu_move_balance); | ||
1108 | schedstat_inc(p, se.nr_wakeups_passive); | ||
1109 | return this_cpu; | ||
1068 | } | 1110 | } |
1069 | } | 1111 | } |
1070 | 1112 | ||
1071 | new_cpu = cpu; /* Could not wake to this_cpu. Wake to cpu instead */ | 1113 | out: |
1072 | out_set_cpu: | ||
1073 | return wake_idle(new_cpu, p); | 1114 | return wake_idle(new_cpu, p); |
1074 | } | 1115 | } |
1075 | #endif /* CONFIG_SMP */ | 1116 | #endif /* CONFIG_SMP */ |
@@ -1092,6 +1133,10 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p) | |||
1092 | return; | 1133 | return; |
1093 | } | 1134 | } |
1094 | 1135 | ||
1136 | se->last_wakeup = se->sum_exec_runtime; | ||
1137 | if (unlikely(se == pse)) | ||
1138 | return; | ||
1139 | |||
1095 | cfs_rq_of(pse)->next = pse; | 1140 | cfs_rq_of(pse)->next = pse; |
1096 | 1141 | ||
1097 | /* | 1142 | /* |
diff --git a/kernel/time/clocksource.c b/kernel/time/clocksource.c index 548c436a776b..278534bbca95 100644 --- a/kernel/time/clocksource.c +++ b/kernel/time/clocksource.c | |||
@@ -141,13 +141,8 @@ static void clocksource_watchdog(unsigned long data) | |||
141 | } | 141 | } |
142 | 142 | ||
143 | if (!list_empty(&watchdog_list)) { | 143 | if (!list_empty(&watchdog_list)) { |
144 | /* Cycle through CPUs to check if the CPUs stay synchronized to | 144 | __mod_timer(&watchdog_timer, |
145 | * each other. */ | 145 | watchdog_timer.expires + WATCHDOG_INTERVAL); |
146 | int next_cpu = next_cpu(raw_smp_processor_id(), cpu_online_map); | ||
147 | if (next_cpu >= NR_CPUS) | ||
148 | next_cpu = first_cpu(cpu_online_map); | ||
149 | watchdog_timer.expires += WATCHDOG_INTERVAL; | ||
150 | add_timer_on(&watchdog_timer, next_cpu); | ||
151 | } | 146 | } |
152 | spin_unlock(&watchdog_lock); | 147 | spin_unlock(&watchdog_lock); |
153 | } | 148 | } |
@@ -169,7 +164,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) | |||
169 | if (!started && watchdog) { | 164 | if (!started && watchdog) { |
170 | watchdog_last = watchdog->read(); | 165 | watchdog_last = watchdog->read(); |
171 | watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; | 166 | watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; |
172 | add_timer_on(&watchdog_timer, first_cpu(cpu_online_map)); | 167 | add_timer(&watchdog_timer); |
173 | } | 168 | } |
174 | } else { | 169 | } else { |
175 | if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) | 170 | if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) |
@@ -190,8 +185,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) | |||
190 | watchdog_last = watchdog->read(); | 185 | watchdog_last = watchdog->read(); |
191 | watchdog_timer.expires = | 186 | watchdog_timer.expires = |
192 | jiffies + WATCHDOG_INTERVAL; | 187 | jiffies + WATCHDOG_INTERVAL; |
193 | add_timer_on(&watchdog_timer, | 188 | add_timer(&watchdog_timer); |
194 | first_cpu(cpu_online_map)); | ||
195 | } | 189 | } |
196 | } | 190 | } |
197 | } | 191 | } |
diff --git a/mm/filemap.c b/mm/filemap.c index df343d1e6345..07e9d9258b48 100644 --- a/mm/filemap.c +++ b/mm/filemap.c | |||
@@ -343,7 +343,7 @@ int sync_page_range(struct inode *inode, struct address_space *mapping, | |||
343 | EXPORT_SYMBOL(sync_page_range); | 343 | EXPORT_SYMBOL(sync_page_range); |
344 | 344 | ||
345 | /** | 345 | /** |
346 | * sync_page_range_nolock | 346 | * sync_page_range_nolock - write & wait on all pages in the passed range without locking |
347 | * @inode: target inode | 347 | * @inode: target inode |
348 | * @mapping: target address_space | 348 | * @mapping: target address_space |
349 | * @pos: beginning offset in pages to write | 349 | * @pos: beginning offset in pages to write |
@@ -611,7 +611,10 @@ int __lock_page_killable(struct page *page) | |||
611 | sync_page_killable, TASK_KILLABLE); | 611 | sync_page_killable, TASK_KILLABLE); |
612 | } | 612 | } |
613 | 613 | ||
614 | /* | 614 | /** |
615 | * __lock_page_nosync - get a lock on the page, without calling sync_page() | ||
616 | * @page: the page to lock | ||
617 | * | ||
615 | * Variant of lock_page that does not require the caller to hold a reference | 618 | * Variant of lock_page that does not require the caller to hold a reference |
616 | * on the page's mapping. | 619 | * on the page's mapping. |
617 | */ | 620 | */ |
@@ -1538,9 +1541,20 @@ repeat: | |||
1538 | return page; | 1541 | return page; |
1539 | } | 1542 | } |
1540 | 1543 | ||
1541 | /* | 1544 | /** |
1545 | * read_cache_page_async - read into page cache, fill it if needed | ||
1546 | * @mapping: the page's address_space | ||
1547 | * @index: the page index | ||
1548 | * @filler: function to perform the read | ||
1549 | * @data: destination for read data | ||
1550 | * | ||
1542 | * Same as read_cache_page, but don't wait for page to become unlocked | 1551 | * Same as read_cache_page, but don't wait for page to become unlocked |
1543 | * after submitting it to the filler. | 1552 | * after submitting it to the filler. |
1553 | * | ||
1554 | * Read into the page cache. If a page already exists, and PageUptodate() is | ||
1555 | * not set, try to fill the page but don't wait for it to become unlocked. | ||
1556 | * | ||
1557 | * If the page does not get brought uptodate, return -EIO. | ||
1544 | */ | 1558 | */ |
1545 | struct page *read_cache_page_async(struct address_space *mapping, | 1559 | struct page *read_cache_page_async(struct address_space *mapping, |
1546 | pgoff_t index, | 1560 | pgoff_t index, |
diff --git a/mm/fremap.c b/mm/fremap.c index 69a37c2bdf81..07a9c82ce1a3 100644 --- a/mm/fremap.c +++ b/mm/fremap.c | |||
@@ -113,7 +113,7 @@ static int populate_range(struct mm_struct *mm, struct vm_area_struct *vma, | |||
113 | * mmap()/mremap() it does not create any new vmas. The new mappings are | 113 | * mmap()/mremap() it does not create any new vmas. The new mappings are |
114 | * also safe across swapout. | 114 | * also safe across swapout. |
115 | * | 115 | * |
116 | * NOTE: the 'prot' parameter right now is ignored (but must be zero), | 116 | * NOTE: the @prot parameter right now is ignored (but must be zero), |
117 | * and the vma's default protection is used. Arbitrary protections | 117 | * and the vma's default protection is used. Arbitrary protections |
118 | * might be implemented in the future. | 118 | * might be implemented in the future. |
119 | */ | 119 | */ |
diff --git a/mm/highmem.c b/mm/highmem.c index 35d47733cde4..7da4a7b6af11 100644 --- a/mm/highmem.c +++ b/mm/highmem.c | |||
@@ -104,8 +104,9 @@ static void flush_all_zero_pkmaps(void) | |||
104 | flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP)); | 104 | flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP)); |
105 | } | 105 | } |
106 | 106 | ||
107 | /* Flush all unused kmap mappings in order to remove stray | 107 | /** |
108 | mappings. */ | 108 | * kmap_flush_unused - flush all unused kmap mappings in order to remove stray mappings |
109 | */ | ||
109 | void kmap_flush_unused(void) | 110 | void kmap_flush_unused(void) |
110 | { | 111 | { |
111 | spin_lock(&kmap_lock); | 112 | spin_lock(&kmap_lock); |
@@ -163,6 +164,14 @@ start: | |||
163 | return vaddr; | 164 | return vaddr; |
164 | } | 165 | } |
165 | 166 | ||
167 | /** | ||
168 | * kmap_high - map a highmem page into memory | ||
169 | * @page: &struct page to map | ||
170 | * | ||
171 | * Returns the page's virtual memory address. | ||
172 | * | ||
173 | * We cannot call this from interrupts, as it may block. | ||
174 | */ | ||
166 | void *kmap_high(struct page *page) | 175 | void *kmap_high(struct page *page) |
167 | { | 176 | { |
168 | unsigned long vaddr; | 177 | unsigned long vaddr; |
@@ -170,8 +179,6 @@ void *kmap_high(struct page *page) | |||
170 | /* | 179 | /* |
171 | * For highmem pages, we can't trust "virtual" until | 180 | * For highmem pages, we can't trust "virtual" until |
172 | * after we have the lock. | 181 | * after we have the lock. |
173 | * | ||
174 | * We cannot call this from interrupts, as it may block | ||
175 | */ | 182 | */ |
176 | spin_lock(&kmap_lock); | 183 | spin_lock(&kmap_lock); |
177 | vaddr = (unsigned long)page_address(page); | 184 | vaddr = (unsigned long)page_address(page); |
@@ -185,6 +192,10 @@ void *kmap_high(struct page *page) | |||
185 | 192 | ||
186 | EXPORT_SYMBOL(kmap_high); | 193 | EXPORT_SYMBOL(kmap_high); |
187 | 194 | ||
195 | /** | ||
196 | * kunmap_high - map a highmem page into memory | ||
197 | * @page: &struct page to unmap | ||
198 | */ | ||
188 | void kunmap_high(struct page *page) | 199 | void kunmap_high(struct page *page) |
189 | { | 200 | { |
190 | unsigned long vaddr; | 201 | unsigned long vaddr; |
@@ -259,6 +270,12 @@ static struct page_address_slot *page_slot(struct page *page) | |||
259 | return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)]; | 270 | return &page_address_htable[hash_ptr(page, PA_HASH_ORDER)]; |
260 | } | 271 | } |
261 | 272 | ||
273 | /** | ||
274 | * page_address - get the mapped virtual address of a page | ||
275 | * @page: &struct page to get the virtual address of | ||
276 | * | ||
277 | * Returns the page's virtual address. | ||
278 | */ | ||
262 | void *page_address(struct page *page) | 279 | void *page_address(struct page *page) |
263 | { | 280 | { |
264 | unsigned long flags; | 281 | unsigned long flags; |
@@ -288,6 +305,11 @@ done: | |||
288 | 305 | ||
289 | EXPORT_SYMBOL(page_address); | 306 | EXPORT_SYMBOL(page_address); |
290 | 307 | ||
308 | /** | ||
309 | * set_page_address - set a page's virtual address | ||
310 | * @page: &struct page to set | ||
311 | * @virtual: virtual address to use | ||
312 | */ | ||
291 | void set_page_address(struct page *page, void *virtual) | 313 | void set_page_address(struct page *page, void *virtual) |
292 | { | 314 | { |
293 | unsigned long flags; | 315 | unsigned long flags; |
diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 8b9f6cae938e..9b648bd63451 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c | |||
@@ -1079,7 +1079,7 @@ static void mem_cgroup_move_task(struct cgroup_subsys *ss, | |||
1079 | * Only thread group leaders are allowed to migrate, the mm_struct is | 1079 | * Only thread group leaders are allowed to migrate, the mm_struct is |
1080 | * in effect owned by the leader | 1080 | * in effect owned by the leader |
1081 | */ | 1081 | */ |
1082 | if (p->tgid != p->pid) | 1082 | if (!thread_group_leader(p)) |
1083 | goto out; | 1083 | goto out; |
1084 | 1084 | ||
1085 | css_get(&mem->css); | 1085 | css_get(&mem->css); |
diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 44b2da11bf43..f255eda693b0 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c | |||
@@ -37,6 +37,7 @@ static DEFINE_SPINLOCK(zone_scan_mutex); | |||
37 | * badness - calculate a numeric value for how bad this task has been | 37 | * badness - calculate a numeric value for how bad this task has been |
38 | * @p: task struct of which task we should calculate | 38 | * @p: task struct of which task we should calculate |
39 | * @uptime: current uptime in seconds | 39 | * @uptime: current uptime in seconds |
40 | * @mem: target memory controller | ||
40 | * | 41 | * |
41 | * The formula used is relatively simple and documented inline in the | 42 | * The formula used is relatively simple and documented inline in the |
42 | * function. The main rationale is that we want to select a good task | 43 | * function. The main rationale is that we want to select a good task |
@@ -264,6 +265,9 @@ static struct task_struct *select_bad_process(unsigned long *ppoints, | |||
264 | } | 265 | } |
265 | 266 | ||
266 | /** | 267 | /** |
268 | * dump_tasks - dump current memory state of all system tasks | ||
269 | * @mem: target memory controller | ||
270 | * | ||
267 | * Dumps the current memory state of all system tasks, excluding kernel threads. | 271 | * Dumps the current memory state of all system tasks, excluding kernel threads. |
268 | * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj | 272 | * State information includes task's pid, uid, tgid, vm size, rss, cpu, oom_adj |
269 | * score, and name. | 273 | * score, and name. |
@@ -298,7 +302,7 @@ static void dump_tasks(const struct mem_cgroup *mem) | |||
298 | } while_each_thread(g, p); | 302 | } while_each_thread(g, p); |
299 | } | 303 | } |
300 | 304 | ||
301 | /** | 305 | /* |
302 | * Send SIGKILL to the selected process irrespective of CAP_SYS_RAW_IO | 306 | * Send SIGKILL to the selected process irrespective of CAP_SYS_RAW_IO |
303 | * flag though it's unlikely that we select a process with CAP_SYS_RAW_IO | 307 | * flag though it's unlikely that we select a process with CAP_SYS_RAW_IO |
304 | * set. | 308 | * set. |
@@ -504,6 +508,9 @@ void clear_zonelist_oom(struct zonelist *zonelist) | |||
504 | 508 | ||
505 | /** | 509 | /** |
506 | * out_of_memory - kill the "best" process when we run out of memory | 510 | * out_of_memory - kill the "best" process when we run out of memory |
511 | * @zonelist: zonelist pointer | ||
512 | * @gfp_mask: memory allocation flags | ||
513 | * @order: amount of memory being requested as a power of 2 | ||
507 | * | 514 | * |
508 | * If we run out of memory, we have the choice between either | 515 | * If we run out of memory, we have the choice between either |
509 | * killing a random task (bad), letting the system crash (worse) | 516 | * killing a random task (bad), letting the system crash (worse) |
diff --git a/mm/pagewalk.c b/mm/pagewalk.c index b4f27d22da91..1cf1417ef8b7 100644 --- a/mm/pagewalk.c +++ b/mm/pagewalk.c | |||
@@ -77,11 +77,11 @@ static int walk_pud_range(pgd_t *pgd, unsigned long addr, unsigned long end, | |||
77 | 77 | ||
78 | /** | 78 | /** |
79 | * walk_page_range - walk a memory map's page tables with a callback | 79 | * walk_page_range - walk a memory map's page tables with a callback |
80 | * @mm - memory map to walk | 80 | * @mm: memory map to walk |
81 | * @addr - starting address | 81 | * @addr: starting address |
82 | * @end - ending address | 82 | * @end: ending address |
83 | * @walk - set of callbacks to invoke for each level of the tree | 83 | * @walk: set of callbacks to invoke for each level of the tree |
84 | * @private - private data passed to the callback function | 84 | * @private: private data passed to the callback function |
85 | * | 85 | * |
86 | * Recursively walk the page table for the memory area in a VMA, | 86 | * Recursively walk the page table for the memory area in a VMA, |
87 | * calling supplied callbacks. Callbacks are called in-order (first | 87 | * calling supplied callbacks. Callbacks are called in-order (first |
diff --git a/mm/readahead.c b/mm/readahead.c index c9c50ca1ec38..8762e8988972 100644 --- a/mm/readahead.c +++ b/mm/readahead.c | |||
@@ -443,9 +443,10 @@ EXPORT_SYMBOL_GPL(page_cache_sync_readahead); | |||
443 | * pagecache pages | 443 | * pagecache pages |
444 | * | 444 | * |
445 | * page_cache_async_ondemand() should be called when a page is used which | 445 | * page_cache_async_ondemand() should be called when a page is used which |
446 | * has the PG_readahead flag: this is a marker to suggest that the application | 446 | * has the PG_readahead flag; this is a marker to suggest that the application |
447 | * has used up enough of the readahead window that we should start pulling in | 447 | * has used up enough of the readahead window that we should start pulling in |
448 | * more pages. */ | 448 | * more pages. |
449 | */ | ||
449 | void | 450 | void |
450 | page_cache_async_readahead(struct address_space *mapping, | 451 | page_cache_async_readahead(struct address_space *mapping, |
451 | struct file_ra_state *ra, struct file *filp, | 452 | struct file_ra_state *ra, struct file *filp, |
@@ -335,6 +335,7 @@ static int page_referenced_anon(struct page *page, | |||
335 | /** | 335 | /** |
336 | * page_referenced_file - referenced check for object-based rmap | 336 | * page_referenced_file - referenced check for object-based rmap |
337 | * @page: the page we're checking references on. | 337 | * @page: the page we're checking references on. |
338 | * @mem_cont: target memory controller | ||
338 | * | 339 | * |
339 | * For an object-based mapped page, find all the places it is mapped and | 340 | * For an object-based mapped page, find all the places it is mapped and |
340 | * check/clear the referenced flag. This is done by following the page->mapping | 341 | * check/clear the referenced flag. This is done by following the page->mapping |
@@ -402,6 +403,7 @@ static int page_referenced_file(struct page *page, | |||
402 | * page_referenced - test if the page was referenced | 403 | * page_referenced - test if the page was referenced |
403 | * @page: the page to test | 404 | * @page: the page to test |
404 | * @is_locked: caller holds lock on the page | 405 | * @is_locked: caller holds lock on the page |
406 | * @mem_cont: target memory controller | ||
405 | * | 407 | * |
406 | * Quick test_and_clear_referenced for all mappings to a page, | 408 | * Quick test_and_clear_referenced for all mappings to a page, |
407 | * returns the number of ptes which referenced the page. | 409 | * returns the number of ptes which referenced the page. |
@@ -506,7 +508,7 @@ int page_mkclean(struct page *page) | |||
506 | EXPORT_SYMBOL_GPL(page_mkclean); | 508 | EXPORT_SYMBOL_GPL(page_mkclean); |
507 | 509 | ||
508 | /** | 510 | /** |
509 | * page_set_anon_rmap - setup new anonymous rmap | 511 | * __page_set_anon_rmap - setup new anonymous rmap |
510 | * @page: the page to add the mapping to | 512 | * @page: the page to add the mapping to |
511 | * @vma: the vm area in which the mapping is added | 513 | * @vma: the vm area in which the mapping is added |
512 | * @address: the user virtual address mapped | 514 | * @address: the user virtual address mapped |
@@ -530,7 +532,7 @@ static void __page_set_anon_rmap(struct page *page, | |||
530 | } | 532 | } |
531 | 533 | ||
532 | /** | 534 | /** |
533 | * page_set_anon_rmap - sanity check anonymous rmap addition | 535 | * __page_check_anon_rmap - sanity check anonymous rmap addition |
534 | * @page: the page to add the mapping to | 536 | * @page: the page to add the mapping to |
535 | * @vma: the vm area in which the mapping is added | 537 | * @vma: the vm area in which the mapping is added |
536 | * @address: the user virtual address mapped | 538 | * @address: the user virtual address mapped |
@@ -583,7 +585,7 @@ void page_add_anon_rmap(struct page *page, | |||
583 | } | 585 | } |
584 | } | 586 | } |
585 | 587 | ||
586 | /* | 588 | /** |
587 | * page_add_new_anon_rmap - add pte mapping to a new anonymous page | 589 | * page_add_new_anon_rmap - add pte mapping to a new anonymous page |
588 | * @page: the page to add the mapping to | 590 | * @page: the page to add the mapping to |
589 | * @vma: the vm area in which the mapping is added | 591 | * @vma: the vm area in which the mapping is added |
@@ -623,6 +625,8 @@ void page_add_file_rmap(struct page *page) | |||
623 | /** | 625 | /** |
624 | * page_dup_rmap - duplicate pte mapping to a page | 626 | * page_dup_rmap - duplicate pte mapping to a page |
625 | * @page: the page to add the mapping to | 627 | * @page: the page to add the mapping to |
628 | * @vma: the vm area being duplicated | ||
629 | * @address: the user virtual address mapped | ||
626 | * | 630 | * |
627 | * For copy_page_range only: minimal extract from page_add_file_rmap / | 631 | * For copy_page_range only: minimal extract from page_add_file_rmap / |
628 | * page_add_anon_rmap, avoiding unnecessary tests (already checked) so it's | 632 | * page_add_anon_rmap, avoiding unnecessary tests (already checked) so it's |
@@ -642,6 +646,7 @@ void page_dup_rmap(struct page *page, struct vm_area_struct *vma, unsigned long | |||
642 | /** | 646 | /** |
643 | * page_remove_rmap - take down pte mapping from a page | 647 | * page_remove_rmap - take down pte mapping from a page |
644 | * @page: page to remove mapping from | 648 | * @page: page to remove mapping from |
649 | * @vma: the vm area in which the mapping is removed | ||
645 | * | 650 | * |
646 | * The caller needs to hold the pte lock. | 651 | * The caller needs to hold the pte lock. |
647 | */ | 652 | */ |
@@ -890,6 +895,7 @@ static int try_to_unmap_anon(struct page *page, int migration) | |||
890 | /** | 895 | /** |
891 | * try_to_unmap_file - unmap file page using the object-based rmap method | 896 | * try_to_unmap_file - unmap file page using the object-based rmap method |
892 | * @page: the page to unmap | 897 | * @page: the page to unmap |
898 | * @migration: migration flag | ||
893 | * | 899 | * |
894 | * Find all the mappings of a page using the mapping pointer and the vma chains | 900 | * Find all the mappings of a page using the mapping pointer and the vma chains |
895 | * contained in the address_space struct it points to. | 901 | * contained in the address_space struct it points to. |
@@ -986,6 +992,7 @@ out: | |||
986 | /** | 992 | /** |
987 | * try_to_unmap - try to remove all page table mappings to a page | 993 | * try_to_unmap - try to remove all page table mappings to a page |
988 | * @page: the page to get unmapped | 994 | * @page: the page to get unmapped |
995 | * @migration: migration flag | ||
989 | * | 996 | * |
990 | * Tries to remove all the page table entries which are mapping this | 997 | * Tries to remove all the page table entries which are mapping this |
991 | * page, used in the pageout path. Caller must hold the page lock. | 998 | * page, used in the pageout path. Caller must hold the page lock. |
diff --git a/mm/shmem.c b/mm/shmem.c index 3372bc579e89..f514dd392cd9 100644 --- a/mm/shmem.c +++ b/mm/shmem.c | |||
@@ -244,9 +244,8 @@ static void shmem_free_inode(struct super_block *sb) | |||
244 | } | 244 | } |
245 | } | 245 | } |
246 | 246 | ||
247 | /* | 247 | /** |
248 | * shmem_recalc_inode - recalculate the size of an inode | 248 | * shmem_recalc_inode - recalculate the size of an inode |
249 | * | ||
250 | * @inode: inode to recalc | 249 | * @inode: inode to recalc |
251 | * | 250 | * |
252 | * We have to calculate the free blocks since the mm can drop | 251 | * We have to calculate the free blocks since the mm can drop |
@@ -270,9 +269,8 @@ static void shmem_recalc_inode(struct inode *inode) | |||
270 | } | 269 | } |
271 | } | 270 | } |
272 | 271 | ||
273 | /* | 272 | /** |
274 | * shmem_swp_entry - find the swap vector position in the info structure | 273 | * shmem_swp_entry - find the swap vector position in the info structure |
275 | * | ||
276 | * @info: info structure for the inode | 274 | * @info: info structure for the inode |
277 | * @index: index of the page to find | 275 | * @index: index of the page to find |
278 | * @page: optional page to add to the structure. Has to be preset to | 276 | * @page: optional page to add to the structure. Has to be preset to |
@@ -374,13 +372,13 @@ static void shmem_swp_set(struct shmem_inode_info *info, swp_entry_t *entry, uns | |||
374 | } | 372 | } |
375 | } | 373 | } |
376 | 374 | ||
377 | /* | 375 | /** |
378 | * shmem_swp_alloc - get the position of the swap entry for the page. | 376 | * shmem_swp_alloc - get the position of the swap entry for the page. |
379 | * If it does not exist allocate the entry. | ||
380 | * | ||
381 | * @info: info structure for the inode | 377 | * @info: info structure for the inode |
382 | * @index: index of the page to find | 378 | * @index: index of the page to find |
383 | * @sgp: check and recheck i_size? skip allocation? | 379 | * @sgp: check and recheck i_size? skip allocation? |
380 | * | ||
381 | * If the entry does not exist, allocate it. | ||
384 | */ | 382 | */ |
385 | static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp) | 383 | static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp) |
386 | { | 384 | { |
@@ -440,9 +438,8 @@ static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long | |||
440 | return entry; | 438 | return entry; |
441 | } | 439 | } |
442 | 440 | ||
443 | /* | 441 | /** |
444 | * shmem_free_swp - free some swap entries in a directory | 442 | * shmem_free_swp - free some swap entries in a directory |
445 | * | ||
446 | * @dir: pointer to the directory | 443 | * @dir: pointer to the directory |
447 | * @edir: pointer after last entry of the directory | 444 | * @edir: pointer after last entry of the directory |
448 | * @punch_lock: pointer to spinlock when needed for the holepunch case | 445 | * @punch_lock: pointer to spinlock when needed for the holepunch case |
@@ -2022,7 +2019,7 @@ static const struct inode_operations shmem_symlink_inode_operations = { | |||
2022 | }; | 2019 | }; |
2023 | 2020 | ||
2024 | #ifdef CONFIG_TMPFS_POSIX_ACL | 2021 | #ifdef CONFIG_TMPFS_POSIX_ACL |
2025 | /** | 2022 | /* |
2026 | * Superblocks without xattr inode operations will get security.* xattr | 2023 | * Superblocks without xattr inode operations will get security.* xattr |
2027 | * support from the VFS "for free". As soon as we have any other xattrs | 2024 | * support from the VFS "for free". As soon as we have any other xattrs |
2028 | * like ACLs, we also need to implement the security.* handlers at | 2025 | * like ACLs, we also need to implement the security.* handlers at |
@@ -2561,12 +2558,11 @@ out4: | |||
2561 | } | 2558 | } |
2562 | module_init(init_tmpfs) | 2559 | module_init(init_tmpfs) |
2563 | 2560 | ||
2564 | /* | 2561 | /** |
2565 | * shmem_file_setup - get an unlinked file living in tmpfs | 2562 | * shmem_file_setup - get an unlinked file living in tmpfs |
2566 | * | ||
2567 | * @name: name for dentry (to be seen in /proc/<pid>/maps | 2563 | * @name: name for dentry (to be seen in /proc/<pid>/maps |
2568 | * @size: size to be set for the file | 2564 | * @size: size to be set for the file |
2569 | * | 2565 | * @flags: vm_flags |
2570 | */ | 2566 | */ |
2571 | struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) | 2567 | struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) |
2572 | { | 2568 | { |
@@ -2621,9 +2617,8 @@ put_memory: | |||
2621 | return ERR_PTR(error); | 2617 | return ERR_PTR(error); |
2622 | } | 2618 | } |
2623 | 2619 | ||
2624 | /* | 2620 | /** |
2625 | * shmem_zero_setup - setup a shared anonymous mapping | 2621 | * shmem_zero_setup - setup a shared anonymous mapping |
2626 | * | ||
2627 | * @vma: the vma to be mmapped is prepared by do_mmap_pgoff | 2622 | * @vma: the vma to be mmapped is prepared by do_mmap_pgoff |
2628 | */ | 2623 | */ |
2629 | int shmem_zero_setup(struct vm_area_struct *vma) | 2624 | int shmem_zero_setup(struct vm_area_struct *vma) |
@@ -3624,12 +3624,11 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags) | |||
3624 | EXPORT_SYMBOL(kmem_cache_alloc); | 3624 | EXPORT_SYMBOL(kmem_cache_alloc); |
3625 | 3625 | ||
3626 | /** | 3626 | /** |
3627 | * kmem_ptr_validate - check if an untrusted pointer might | 3627 | * kmem_ptr_validate - check if an untrusted pointer might be a slab entry. |
3628 | * be a slab entry. | ||
3629 | * @cachep: the cache we're checking against | 3628 | * @cachep: the cache we're checking against |
3630 | * @ptr: pointer to validate | 3629 | * @ptr: pointer to validate |
3631 | * | 3630 | * |
3632 | * This verifies that the untrusted pointer looks sane: | 3631 | * This verifies that the untrusted pointer looks sane; |
3633 | * it is _not_ a guarantee that the pointer is actually | 3632 | * it is _not_ a guarantee that the pointer is actually |
3634 | * part of the slab cache in question, but it at least | 3633 | * part of the slab cache in question, but it at least |
3635 | * validates that the pointer can be dereferenced and | 3634 | * validates that the pointer can be dereferenced and |
@@ -1536,9 +1536,15 @@ new_slab: | |||
1536 | * That is only possible if certain conditions are met that are being | 1536 | * That is only possible if certain conditions are met that are being |
1537 | * checked when a slab is created. | 1537 | * checked when a slab is created. |
1538 | */ | 1538 | */ |
1539 | if (!(gfpflags & __GFP_NORETRY) && (s->flags & __PAGE_ALLOC_FALLBACK)) | 1539 | if (!(gfpflags & __GFP_NORETRY) && |
1540 | return kmalloc_large(s->objsize, gfpflags); | 1540 | (s->flags & __PAGE_ALLOC_FALLBACK)) { |
1541 | 1541 | if (gfpflags & __GFP_WAIT) | |
1542 | local_irq_enable(); | ||
1543 | object = kmalloc_large(s->objsize, gfpflags); | ||
1544 | if (gfpflags & __GFP_WAIT) | ||
1545 | local_irq_disable(); | ||
1546 | return object; | ||
1547 | } | ||
1542 | return NULL; | 1548 | return NULL; |
1543 | debug: | 1549 | debug: |
1544 | if (!alloc_debug_processing(s, c->page, object, addr)) | 1550 | if (!alloc_debug_processing(s, c->page, object, addr)) |
@@ -78,12 +78,11 @@ void put_page(struct page *page) | |||
78 | EXPORT_SYMBOL(put_page); | 78 | EXPORT_SYMBOL(put_page); |
79 | 79 | ||
80 | /** | 80 | /** |
81 | * put_pages_list(): release a list of pages | 81 | * put_pages_list() - release a list of pages |
82 | * @pages: list of pages threaded on page->lru | ||
82 | * | 83 | * |
83 | * Release a list of pages which are strung together on page.lru. Currently | 84 | * Release a list of pages which are strung together on page.lru. Currently |
84 | * used by read_cache_pages() and related error recovery code. | 85 | * used by read_cache_pages() and related error recovery code. |
85 | * | ||
86 | * @pages: list of pages threaded on page->lru | ||
87 | */ | 86 | */ |
88 | void put_pages_list(struct list_head *pages) | 87 | void put_pages_list(struct list_head *pages) |
89 | { | 88 | { |
diff --git a/mm/swap_state.c b/mm/swap_state.c index ec42f01a8d02..50757ee3f9f3 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c | |||
@@ -115,6 +115,7 @@ void __delete_from_swap_cache(struct page *page) | |||
115 | /** | 115 | /** |
116 | * add_to_swap - allocate swap space for a page | 116 | * add_to_swap - allocate swap space for a page |
117 | * @page: page we want to move to swap | 117 | * @page: page we want to move to swap |
118 | * @gfp_mask: memory allocation flags | ||
118 | * | 119 | * |
119 | * Allocate swap space for the page and add the page to the | 120 | * Allocate swap space for the page and add the page to the |
120 | * swap cache. Caller needs to hold the page lock. | 121 | * swap cache. Caller needs to hold the page lock. |
@@ -315,6 +316,7 @@ struct page *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, | |||
315 | /** | 316 | /** |
316 | * swapin_readahead - swap in pages in hope we need them soon | 317 | * swapin_readahead - swap in pages in hope we need them soon |
317 | * @entry: swap entry of this memory | 318 | * @entry: swap entry of this memory |
319 | * @gfp_mask: memory allocation flags | ||
318 | * @vma: user vma this address belongs to | 320 | * @vma: user vma this address belongs to |
319 | * @addr: target address for mempolicy | 321 | * @addr: target address for mempolicy |
320 | * | 322 | * |
diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c index 702083638c16..f0f55875dd6a 100644 --- a/mm/tiny-shmem.c +++ b/mm/tiny-shmem.c | |||
@@ -39,12 +39,11 @@ static int __init init_tmpfs(void) | |||
39 | } | 39 | } |
40 | module_init(init_tmpfs) | 40 | module_init(init_tmpfs) |
41 | 41 | ||
42 | /* | 42 | /** |
43 | * shmem_file_setup - get an unlinked file living in tmpfs | 43 | * shmem_file_setup - get an unlinked file living in tmpfs |
44 | * | ||
45 | * @name: name for dentry (to be seen in /proc/<pid>/maps | 44 | * @name: name for dentry (to be seen in /proc/<pid>/maps |
46 | * @size: size to be set for the file | 45 | * @size: size to be set for the file |
47 | * | 46 | * @flags: vm_flags |
48 | */ | 47 | */ |
49 | struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) | 48 | struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) |
50 | { | 49 | { |
@@ -95,9 +94,8 @@ put_memory: | |||
95 | return ERR_PTR(error); | 94 | return ERR_PTR(error); |
96 | } | 95 | } |
97 | 96 | ||
98 | /* | 97 | /** |
99 | * shmem_zero_setup - setup a shared anonymous mapping | 98 | * shmem_zero_setup - setup a shared anonymous mapping |
100 | * | ||
101 | * @vma: the vma to be mmapped is prepared by do_mmap_pgoff | 99 | * @vma: the vma to be mmapped is prepared by do_mmap_pgoff |
102 | */ | 100 | */ |
103 | int shmem_zero_setup(struct vm_area_struct *vma) | 101 | int shmem_zero_setup(struct vm_area_struct *vma) |
diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 950c0be9ca81..ecf91f8034bf 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c | |||
@@ -757,7 +757,8 @@ finished: | |||
757 | * @vma: vma to cover (map full range of vma) | 757 | * @vma: vma to cover (map full range of vma) |
758 | * @addr: vmalloc memory | 758 | * @addr: vmalloc memory |
759 | * @pgoff: number of pages into addr before first page to map | 759 | * @pgoff: number of pages into addr before first page to map |
760 | * @returns: 0 for success, -Exxx on failure | 760 | * |
761 | * Returns: 0 for success, -Exxx on failure | ||
761 | * | 762 | * |
762 | * This function checks that addr is a valid vmalloc'ed area, and | 763 | * This function checks that addr is a valid vmalloc'ed area, and |
763 | * that it is big enough to cover the vma. Will return failure if | 764 | * that it is big enough to cover the vma. Will return failure if |
@@ -829,7 +830,8 @@ static int f(pte_t *pte, pgtable_t table, unsigned long addr, void *data) | |||
829 | /** | 830 | /** |
830 | * alloc_vm_area - allocate a range of kernel address space | 831 | * alloc_vm_area - allocate a range of kernel address space |
831 | * @size: size of the area | 832 | * @size: size of the area |
832 | * @returns: NULL on failure, vm_struct on success | 833 | * |
834 | * Returns: NULL on failure, vm_struct on success | ||
833 | * | 835 | * |
834 | * This function reserves a range of kernel address space, and | 836 | * This function reserves a range of kernel address space, and |
835 | * allocates pagetables to map that range. No actual mappings | 837 | * allocates pagetables to map that range. No actual mappings |
diff --git a/net/core/sock.c b/net/core/sock.c index 09cb3a74de7f..2654c147c004 100644 --- a/net/core/sock.c +++ b/net/core/sock.c | |||
@@ -1621,7 +1621,7 @@ static void sock_def_readable(struct sock *sk, int len) | |||
1621 | { | 1621 | { |
1622 | read_lock(&sk->sk_callback_lock); | 1622 | read_lock(&sk->sk_callback_lock); |
1623 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) | 1623 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) |
1624 | wake_up_interruptible(sk->sk_sleep); | 1624 | wake_up_interruptible_sync(sk->sk_sleep); |
1625 | sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN); | 1625 | sk_wake_async(sk, SOCK_WAKE_WAITD, POLL_IN); |
1626 | read_unlock(&sk->sk_callback_lock); | 1626 | read_unlock(&sk->sk_callback_lock); |
1627 | } | 1627 | } |
@@ -1635,7 +1635,7 @@ static void sock_def_write_space(struct sock *sk) | |||
1635 | */ | 1635 | */ |
1636 | if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) { | 1636 | if ((atomic_read(&sk->sk_wmem_alloc) << 1) <= sk->sk_sndbuf) { |
1637 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) | 1637 | if (sk->sk_sleep && waitqueue_active(sk->sk_sleep)) |
1638 | wake_up_interruptible(sk->sk_sleep); | 1638 | wake_up_interruptible_sync(sk->sk_sleep); |
1639 | 1639 | ||
1640 | /* Should agree with poll, otherwise some programs break */ | 1640 | /* Should agree with poll, otherwise some programs break */ |
1641 | if (sock_writeable(sk)) | 1641 | if (sock_writeable(sk)) |
diff --git a/security/capability.c b/security/capability.c index 9e99f36a8b5c..2c6e06d18fab 100644 --- a/security/capability.c +++ b/security/capability.c | |||
@@ -40,7 +40,6 @@ static struct security_operations capability_ops = { | |||
40 | .inode_need_killpriv = cap_inode_need_killpriv, | 40 | .inode_need_killpriv = cap_inode_need_killpriv, |
41 | .inode_killpriv = cap_inode_killpriv, | 41 | .inode_killpriv = cap_inode_killpriv, |
42 | 42 | ||
43 | .task_kill = cap_task_kill, | ||
44 | .task_setscheduler = cap_task_setscheduler, | 43 | .task_setscheduler = cap_task_setscheduler, |
45 | .task_setioprio = cap_task_setioprio, | 44 | .task_setioprio = cap_task_setioprio, |
46 | .task_setnice = cap_task_setnice, | 45 | .task_setnice = cap_task_setnice, |
diff --git a/security/commoncap.c b/security/commoncap.c index bb0c095f5761..06d5c9469ba3 100644 --- a/security/commoncap.c +++ b/security/commoncap.c | |||
@@ -540,41 +540,6 @@ int cap_task_setnice (struct task_struct *p, int nice) | |||
540 | return cap_safe_nice(p); | 540 | return cap_safe_nice(p); |
541 | } | 541 | } |
542 | 542 | ||
543 | int cap_task_kill(struct task_struct *p, struct siginfo *info, | ||
544 | int sig, u32 secid) | ||
545 | { | ||
546 | if (info != SEND_SIG_NOINFO && (is_si_special(info) || SI_FROMKERNEL(info))) | ||
547 | return 0; | ||
548 | |||
549 | /* | ||
550 | * Running a setuid root program raises your capabilities. | ||
551 | * Killing your own setuid root processes was previously | ||
552 | * allowed. | ||
553 | * We must preserve legacy signal behavior in this case. | ||
554 | */ | ||
555 | if (p->uid == current->uid) | ||
556 | return 0; | ||
557 | |||
558 | /* sigcont is permitted within same session */ | ||
559 | if (sig == SIGCONT && (task_session_nr(current) == task_session_nr(p))) | ||
560 | return 0; | ||
561 | |||
562 | if (secid) | ||
563 | /* | ||
564 | * Signal sent as a particular user. | ||
565 | * Capabilities are ignored. May be wrong, but it's the | ||
566 | * only thing we can do at the moment. | ||
567 | * Used only by usb drivers? | ||
568 | */ | ||
569 | return 0; | ||
570 | if (cap_issubset(p->cap_permitted, current->cap_permitted)) | ||
571 | return 0; | ||
572 | if (capable(CAP_KILL)) | ||
573 | return 0; | ||
574 | |||
575 | return -EPERM; | ||
576 | } | ||
577 | |||
578 | /* | 543 | /* |
579 | * called from kernel/sys.c for prctl(PR_CABSET_DROP) | 544 | * called from kernel/sys.c for prctl(PR_CABSET_DROP) |
580 | * done without task_capability_lock() because it introduces | 545 | * done without task_capability_lock() because it introduces |
@@ -605,11 +570,6 @@ int cap_task_setnice (struct task_struct *p, int nice) | |||
605 | { | 570 | { |
606 | return 0; | 571 | return 0; |
607 | } | 572 | } |
608 | int cap_task_kill(struct task_struct *p, struct siginfo *info, | ||
609 | int sig, u32 secid) | ||
610 | { | ||
611 | return 0; | ||
612 | } | ||
613 | #endif | 573 | #endif |
614 | 574 | ||
615 | void cap_task_reparent_to_init (struct task_struct *p) | 575 | void cap_task_reparent_to_init (struct task_struct *p) |
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index 4bf4807f2d44..41a049f50f58 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c | |||
@@ -800,7 +800,8 @@ static void selinux_sb_clone_mnt_opts(const struct super_block *oldsb, | |||
800 | mutex_unlock(&newsbsec->lock); | 800 | mutex_unlock(&newsbsec->lock); |
801 | } | 801 | } |
802 | 802 | ||
803 | int selinux_parse_opts_str(char *options, struct security_mnt_opts *opts) | 803 | static int selinux_parse_opts_str(char *options, |
804 | struct security_mnt_opts *opts) | ||
804 | { | 805 | { |
805 | char *p; | 806 | char *p; |
806 | char *context = NULL, *defcontext = NULL; | 807 | char *context = NULL, *defcontext = NULL; |
diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 0241fd359675..732ba27923c4 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c | |||
@@ -1117,11 +1117,6 @@ static int smack_task_movememory(struct task_struct *p) | |||
1117 | static int smack_task_kill(struct task_struct *p, struct siginfo *info, | 1117 | static int smack_task_kill(struct task_struct *p, struct siginfo *info, |
1118 | int sig, u32 secid) | 1118 | int sig, u32 secid) |
1119 | { | 1119 | { |
1120 | int rc; | ||
1121 | |||
1122 | rc = cap_task_kill(p, info, sig, secid); | ||
1123 | if (rc != 0) | ||
1124 | return rc; | ||
1125 | /* | 1120 | /* |
1126 | * Special cases where signals really ought to go through | 1121 | * Special cases where signals really ought to go through |
1127 | * in spite of policy. Stephen Smalley suggests it may | 1122 | * in spite of policy. Stephen Smalley suggests it may |
@@ -1508,7 +1503,7 @@ static int smack_shm_associate(struct shmid_kernel *shp, int shmflg) | |||
1508 | */ | 1503 | */ |
1509 | static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd) | 1504 | static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd) |
1510 | { | 1505 | { |
1511 | char *ssp = smack_of_shm(shp); | 1506 | char *ssp; |
1512 | int may; | 1507 | int may; |
1513 | 1508 | ||
1514 | switch (cmd) { | 1509 | switch (cmd) { |
@@ -1532,6 +1527,7 @@ static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd) | |||
1532 | return -EINVAL; | 1527 | return -EINVAL; |
1533 | } | 1528 | } |
1534 | 1529 | ||
1530 | ssp = smack_of_shm(shp); | ||
1535 | return smk_curacc(ssp, may); | 1531 | return smk_curacc(ssp, may); |
1536 | } | 1532 | } |
1537 | 1533 | ||
@@ -1616,7 +1612,7 @@ static int smack_sem_associate(struct sem_array *sma, int semflg) | |||
1616 | */ | 1612 | */ |
1617 | static int smack_sem_semctl(struct sem_array *sma, int cmd) | 1613 | static int smack_sem_semctl(struct sem_array *sma, int cmd) |
1618 | { | 1614 | { |
1619 | char *ssp = smack_of_sem(sma); | 1615 | char *ssp; |
1620 | int may; | 1616 | int may; |
1621 | 1617 | ||
1622 | switch (cmd) { | 1618 | switch (cmd) { |
@@ -1645,6 +1641,7 @@ static int smack_sem_semctl(struct sem_array *sma, int cmd) | |||
1645 | return -EINVAL; | 1641 | return -EINVAL; |
1646 | } | 1642 | } |
1647 | 1643 | ||
1644 | ssp = smack_of_sem(sma); | ||
1648 | return smk_curacc(ssp, may); | 1645 | return smk_curacc(ssp, may); |
1649 | } | 1646 | } |
1650 | 1647 | ||
@@ -1730,7 +1727,7 @@ static int smack_msg_queue_associate(struct msg_queue *msq, int msqflg) | |||
1730 | */ | 1727 | */ |
1731 | static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) | 1728 | static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) |
1732 | { | 1729 | { |
1733 | char *msp = smack_of_msq(msq); | 1730 | char *msp; |
1734 | int may; | 1731 | int may; |
1735 | 1732 | ||
1736 | switch (cmd) { | 1733 | switch (cmd) { |
@@ -1752,6 +1749,7 @@ static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) | |||
1752 | return -EINVAL; | 1749 | return -EINVAL; |
1753 | } | 1750 | } |
1754 | 1751 | ||
1752 | msp = smack_of_msq(msq); | ||
1755 | return smk_curacc(msp, may); | 1753 | return smk_curacc(msp, may); |
1756 | } | 1754 | } |
1757 | 1755 | ||