aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/fb/cmap_xfbdev.txt53
-rw-r--r--Documentation/fb/metronomefb.txt38
-rw-r--r--Documentation/input/notifier.txt52
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--Documentation/mca.txt17
-rw-r--r--MAINTAINERS2
-rw-r--r--arch/arm/Kconfig1
-rw-r--r--arch/arm/kernel/signal.c4
-rw-r--r--arch/arm/mach-iop32x/glantank.c12
-rw-r--r--arch/arm/mach-omap1/time.c12
-rw-r--r--arch/arm/mm/proc-xscale.S4
-rw-r--r--arch/arm/plat-omap/Kconfig1
-rw-r--r--arch/arm/plat-omap/Makefile5
-rw-r--r--arch/arm/plat-omap/dma.c9
-rw-r--r--arch/arm/plat-omap/gpio.c3
-rw-r--r--arch/powerpc/boot/Makefile4
-rwxr-xr-xarch/powerpc/boot/wrapper4
-rw-r--r--arch/powerpc/configs/cell_defconfig141
-rw-r--r--arch/powerpc/configs/celleb_defconfig117
-rw-r--r--arch/powerpc/configs/chrp32_defconfig165
-rw-r--r--arch/powerpc/configs/g5_defconfig137
-rw-r--r--arch/powerpc/configs/iseries_defconfig99
-rw-r--r--arch/powerpc/configs/pmac32_defconfig195
-rw-r--r--arch/powerpc/configs/ppc64_defconfig169
-rw-r--r--arch/powerpc/configs/ps3_defconfig103
-rw-r--r--arch/powerpc/configs/pseries_defconfig136
-rw-r--r--arch/powerpc/kernel/process.c6
-rw-r--r--arch/powerpc/kernel/ptrace.c10
-rw-r--r--arch/powerpc/mm/slb.c6
-rw-r--r--arch/powerpc/platforms/cell/iommu.c41
-rw-r--r--arch/powerpc/platforms/cell/setup.c36
-rw-r--r--arch/s390/lib/uaccess_pt.c2
-rw-r--r--arch/sh/Kconfig1
-rw-r--r--arch/sh/Makefile8
-rw-r--r--arch/sh/boot/Makefile4
-rw-r--r--arch/sh/kernel/cpu/sh2/entry.S1
-rw-r--r--arch/sh/kernel/smp.c2
-rw-r--r--crypto/async_tx/async_xor.c2
-rw-r--r--drivers/acpi/asus_acpi.c2
-rw-r--r--drivers/acpi/battery.c11
-rw-r--r--drivers/acpi/dock.c1
-rw-r--r--drivers/acpi/ec.c11
-rw-r--r--drivers/acpi/processor_idle.c12
-rw-r--r--drivers/acpi/video.c60
-rw-r--r--drivers/ata/Kconfig1
-rw-r--r--drivers/block/Kconfig10
-rw-r--r--drivers/block/Makefile1
-rw-r--r--drivers/block/ps2esdi.c1079
-rw-r--r--drivers/char/drm/ati_pcigart.c91
-rw-r--r--drivers/char/drm/drmP.h3
-rw-r--r--drivers/char/drm/drm_fops.c7
-rw-r--r--drivers/char/drm/drm_lock.c35
-rw-r--r--drivers/char/drm/drm_pciids.h7
-rw-r--r--drivers/char/drm/r128_cce.c1
-rw-r--r--drivers/char/drm/radeon_cp.c1
-rw-r--r--drivers/char/drm/via_dma.c59
-rw-r--r--drivers/char/drm/via_dmablit.c2
-rw-r--r--drivers/char/rocket.c37
-rw-r--r--drivers/char/rocket_int.h83
-rw-r--r--drivers/dma/fsldma.c30
-rw-r--r--drivers/dma/fsldma.h1
-rw-r--r--drivers/firewire/fw-transaction.c6
-rw-r--r--drivers/hid/hid-core.c2
-rw-r--r--drivers/hid/hid-input.c22
-rw-r--r--drivers/hid/usbhid/hid-core.c2
-rw-r--r--drivers/hid/usbhid/hid-quirks.c6
-rw-r--r--drivers/hwmon/Kconfig5
-rw-r--r--drivers/hwmon/ibmpex.c13
-rw-r--r--drivers/ide/ide-taskfile.c36
-rw-r--r--drivers/input/misc/cobalt_btns.c16
-rw-r--r--drivers/input/mouse/alps.c5
-rw-r--r--drivers/input/serio/i8042-snirm.h75
-rw-r--r--drivers/input/serio/i8042-x86ia64io.h7
-rw-r--r--drivers/input/serio/i8042.c3
-rw-r--r--drivers/input/serio/i8042.h2
-rw-r--r--drivers/input/tablet/wacom.h6
-rw-r--r--drivers/input/tablet/wacom_sys.c6
-rw-r--r--drivers/input/tablet/wacom_wac.c31
-rw-r--r--drivers/input/tablet/wacom_wac.h1
-rw-r--r--drivers/input/touchscreen/ads7846.c2
-rw-r--r--drivers/md/md.c12
-rw-r--r--drivers/md/raid5.c6
-rw-r--r--drivers/media/dvb/dvb-usb/opera1.c2
-rw-r--r--drivers/media/video/Kconfig4
-rw-r--r--drivers/media/video/bt8xx/bttv-driver.c1
-rw-r--r--drivers/media/video/cx88/cx88-cards.c5
-rw-r--r--drivers/media/video/cx88/cx88-video.c2
-rw-r--r--drivers/media/video/em28xx/em28xx-core.c2
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c7
-rw-r--r--drivers/media/video/ivtv/ivtv-firmware.c8
-rw-r--r--drivers/media/video/saa7134/saa7134-cards.c41
-rw-r--r--drivers/media/video/saa7134/saa7134-core.c5
-rw-r--r--drivers/media/video/tvp5150.c4
-rw-r--r--drivers/media/video/usbvideo/usbvideo.c9
-rw-r--r--drivers/media/video/v4l1-compat.c50
-rw-r--r--drivers/memstick/core/memstick.c9
-rw-r--r--drivers/memstick/core/mspro_block.c94
-rw-r--r--drivers/memstick/host/jmb38x_ms.c113
-rw-r--r--drivers/memstick/host/tifm_ms.c17
-rw-r--r--drivers/message/fusion/mptbase.c276
-rw-r--r--drivers/message/fusion/mptscsih.c11
-rw-r--r--drivers/pci/hotplug/pciehp_core.c2
-rw-r--r--drivers/rtc/Kconfig2
-rw-r--r--drivers/rtc/rtc-at91sam9.c6
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/a100u2w.c9
-rw-r--r--drivers/scsi/advansys.c2
-rw-r--r--drivers/scsi/arcmsr/arcmsr.h14
-rw-r--r--drivers/scsi/gdth.c7
-rw-r--r--drivers/scsi/scsi_lib.c5
-rw-r--r--drivers/scsi/scsi_sysfs.c2
-rw-r--r--drivers/scsi/sd.c1
-rw-r--r--drivers/scsi/sr.c1
-rw-r--r--drivers/serial/sh-sci.c4
-rw-r--r--drivers/thermal/Kconfig2
-rw-r--r--drivers/thermal/thermal.c169
-rw-r--r--drivers/usb/storage/isd200.c5
-rw-r--r--drivers/video/Kconfig14
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/fb_defio.c22
-rw-r--r--drivers/video/i810/i810_main.c2
-rw-r--r--drivers/video/metronomefb.c999
-rw-r--r--fs/aio.c8
-rw-r--r--fs/bio.c2
-rw-r--r--fs/buffer.c4
-rw-r--r--fs/dquot.c2
-rw-r--r--fs/ecryptfs/dentry.c2
-rw-r--r--fs/ext3/acl.c8
-rw-r--r--fs/ext3/resize.c4
-rw-r--r--fs/ext3/xattr.c4
-rw-r--r--fs/fs-writeback.c6
-rw-r--r--fs/isofs/compress.c11
-rw-r--r--fs/jbd/journal.c5
-rw-r--r--fs/jbd/recovery.c2
-rw-r--r--fs/jbd/transaction.c8
-rw-r--r--fs/jbd2/recovery.c2
-rw-r--r--fs/locks.c4
-rw-r--r--fs/namei.c6
-rw-r--r--fs/nfs/read.c5
-rw-r--r--fs/nfs/write.c8
-rw-r--r--fs/proc/base.c22
-rw-r--r--fs/romfs/inode.c30
-rw-r--r--fs/super.c6
-rw-r--r--fs/ufs/balloc.c4
-rw-r--r--include/asm-arm/arch-at91/at91cap9.h7
-rw-r--r--include/asm-arm/arch-omap/dsp_common.h8
-rw-r--r--include/asm-arm/arch-s3c2410/irqs.h2
-rw-r--r--include/asm-sh/byteorder.h15
-rw-r--r--include/asm-sh/posix_types.h6
-rw-r--r--include/linux/Kbuild1
-rw-r--r--include/linux/jbd.h11
-rw-r--r--include/linux/memstick.h1
-rw-r--r--include/linux/ps2esdi.h98
-rw-r--r--include/linux/rcupreempt.h4
-rw-r--r--include/linux/sched.h3
-rw-r--r--include/linux/security.h3
-rw-r--r--include/linux/topology.h1
-rw-r--r--kernel/relay.c5
-rw-r--r--kernel/sched.c11
-rw-r--r--kernel/sched_debug.c1
-rw-r--r--kernel/sched_fair.c191
-rw-r--r--kernel/time/clocksource.c14
-rw-r--r--mm/filemap.c20
-rw-r--r--mm/fremap.c2
-rw-r--r--mm/highmem.c30
-rw-r--r--mm/memcontrol.c2
-rw-r--r--mm/oom_kill.c9
-rw-r--r--mm/pagewalk.c10
-rw-r--r--mm/readahead.c5
-rw-r--r--mm/rmap.c13
-rw-r--r--mm/shmem.c25
-rw-r--r--mm/slab.c5
-rw-r--r--mm/slub.c12
-rw-r--r--mm/swap.c5
-rw-r--r--mm/swap_state.c2
-rw-r--r--mm/tiny-shmem.c8
-rw-r--r--mm/vmalloc.c6
-rw-r--r--net/core/sock.c4
-rw-r--r--security/capability.c1
-rw-r--r--security/commoncap.c40
-rw-r--r--security/selinux/hooks.c3
-rw-r--r--security/smack/smack_lsm.c14
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 @@
1Understanding fbdev's cmap
2--------------------------
3
4These 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
7struct 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}
14struct fb_fix_screeninfo {
15 .visual = FB_VISUAL_STATIC_PSEUDOCOLOR,
16}
17for (i = 0; i < 8; i++)
18 info->cmap.red[i] = (((2*i)+1)*(0xFFFF))/16;
19memcpy(info->cmap.green, info->cmap.red, sizeof(u16)*8);
20memcpy(info->cmap.blue, info->cmap.red, sizeof(u16)*8);
21
22*. X11 apps do something like the following when trying to use grayscale.
23for (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}
32There's also named equivalents like gray1..x provided you have an rgb.txt.
33
34Somewhere in X's callchain, this results in a call to X code that handles the
35colormap. For example, Xfbdev hits the following:
36
37xc-011010/programs/Xserver/dix/colormap.c:
38
39FindBestPixel(pentFirst, size, prgb, channel)
40
41dr = (long) pent->co.local.red - prgb->red;
42dg = (long) pent->co.local.green - prgb->green;
43db = (long) pent->co.local.blue - prgb->blue;
44sq = dr * dr;
45UnsignedToBigNum (sq, &sum);
46BigNumAdd (&sum, &temp, &sum);
47
48co.local.red are entries that were brought in through FBIOGETCMAP which come
49directly from the info->cmap.red that was listed above. The prgb is the rgb
50that the app wants to match to. The above code is doing what looks like a least
51squares matching function. That's why the cmap entries can't be set to the left
52hand 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 -----------
3Maintained by Jaya Kumar <jayakumar.lkml.gmail.com>
4Last revised: Nov 20, 2007
5
6Metronomefb is a driver for the Metronome display controller. The controller
7is from E-Ink Corporation. It is intended to be used to drive the E-Ink
8Vizplex display media. E-Ink hosts some details of this controller and the
9display media here http://www.e-ink.com/products/matrix/metronome.html .
10
11Metronome is interfaced to the host CPU through the AMLCD interface. The
12host CPU generates the control information and the image in a framebuffer
13which is then delivered to the AMLCD interface by a host specific method.
14Currently, that's implemented for the PXA's LCDC controller. The display and
15error status are each pulled through individual GPIOs.
16
17Metronomefb was written for the PXA255/gumstix/lyre combination and
18therefore currently has board set specific code in it. If other boards based on
19other architectures are available, then the host specific code can be separated
20and abstracted out.
21
22Metronomefb requires waveform information which is delivered via the AMLCD
23interface to the metronome controller. The waveform information is expected to
24be delivered from userspace via the firmware class interface. The waveform file
25can be compressed as long as your udev or hotplug script is aware of the need
26to uncompress it before delivering it. metronomefb will ask for waveform.wbf
27which would typically go into /lib/firmware/waveform.wbf depending on your
28udev/hotplug setup. I have only tested with a single waveform file which was
29originally labeled 23P01201_60_WT0107_MTC. I do not know what it stands for.
30Caution should be exercised when manipulating the waveform as there may be
31a possibility that it could have some permanent effects on the display media.
32I neither have access to nor know exactly what the waveform does in terms of
33the physical media.
34
35Metronomefb uses the deferred IO interface so that it can provide a memory
36mappable frame buffer. It has been tested with tinyx (Xfbdev). It is known
37to 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 @@
1Keyboard notifier
2
3One can use register_keyboard_notifier to get called back on keyboard
4events (see kbd_keycode() function for details). The passed structure is
5keyboard_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
22For each kind of event but the last, the callback may return NOTIFY_STOP in
23order to "eat" the event: the notify loop is stopped and the keyboard event is
24dropped.
25
26In a rough C snippet, we have:
27
28kbd_keycode(keycode) {
29 ...
30 params.value = keycode;
31 if (notifier_call_chain(KBD_KEYCODE,&params) == NOTIFY_STOP)
32 || !bound) {
33 notifier_call_chain(KBD_UNBOUND_KEYCODE,&params);
34 return;
35 }
36
37 if (unicode) {
38 param.value = unicode;
39 if (notifier_call_chain(KBD_UNICODE,&params) == NOTIFY_STOP)
40 return;
41 emit unicode;
42 return;
43 }
44
45 params.value = keysym;
46 if (notifier_call_chain(KBD_KEYSYM,&params) == NOTIFY_STOP)
47 return;
48 apply keysym;
49 notifier_call_chain(KBD_POST_KEYSYM,&params);
50}
51
52NOTE: 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
144Currently, there are a number of MCA-specific device drivers. 144Currently, there are a number of MCA-specific device drivers.
145 145
1461) PS/2 ESDI 1461) 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
1532) 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
1623) 3c523 1552) 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
1674) SMC Ultra/MCA and IBM Adapter/A 1603) 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
1735) NE/2 1664) 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
1806) Future Domain MCS-600/700, OEM'd IBM Fast SCSI Adapter/A and 1735) 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
453ARM/ATMEL AT91RM9200 ARM ARCHITECTURE 453ARM/ATMEL AT91RM9200 ARM ARCHITECTURE
454P: Andrew Victor 454P: Andrew Victor
455M: andrew@sanpeople.com 455M: linux@maxim.org.za
456L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only) 456L: linux-arm-kernel@lists.arm.linux.org.uk (subscribers-only)
457W: http://maxim.org.za/at91_26.html 457W: http://maxim.org.za/at91_26.html
458S: Maintained 458S: 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
172static struct f75375s_platform_data glantank_f75375s = {
173 .pwm = { 255, 255 },
174 .pwm_enable = { 0, 0 },
175};
176
170static struct i2c_board_info __initdata glantank_i2c_devices[] = { 177static 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
177static void glantank_power_off(void) 189static 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
135static 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 */
140static int omap_mpu_set_next_event(unsigned long cycles, 147static 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
164static struct clock_event_device clockevent_mpu_timer1 = { 172static 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 */
116ENTRY(cpu_xscale_proc_init) 116ENTRY(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
12config ARCH_OMAP1 12config ARCH_OMAP1
13 bool "TI OMAP1" 13 bool "TI OMAP1"
14 select GENERIC_CLOCKEVENTS
15 14
16config ARCH_OMAP2 15config 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
15obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o 15obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o
16 16
17obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
17 18
18obj-$(CONFIG_CPU_FREQ) += cpu-omap.o 19obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
19obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o 20obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
20obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o 21obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
21obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o 22obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
22obj-$(CONFIG_I2C_OMAP) += i2c.o 23obj-$(CONFIG_I2C_OMAP) += i2c.o
24
25# OMAP mailbox framework
26obj-$(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 */
1254int omap_dma_chain_a_transfer(int chain_id, int src_start, int dest_start, 1254int 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}
1372EXPORT_SYMBOL(omap_dma_chain_a_transfer); 1372EXPORT_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)
1134static void gpio_unmask_irq(unsigned int irq) 1134static 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
1143static struct irq_chip gpio_irq_chip = { 1142static 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
253image-$(CONFIG_TQM8541) += cuImage.tqm8541 253image-$(CONFIG_TQM8541) += cuImage.tqm8541
254image-$(CONFIG_TQM8555) += cuImage.tqm8555 254image-$(CONFIG_TQM8555) += cuImage.tqm8555
255image-$(CONFIG_TQM8560) += cuImage.tqm8560 255image-$(CONFIG_TQM8560) += cuImage.tqm8560
256image-$(CONFIG_SBC8548) += cuImage.tqm8548 256image-$(CONFIG_SBC8548) += cuImage.sbc8548
257image-$(CONFIG_SBC8560) += cuImage.tqm8560 257image-$(CONFIG_SBC8560) += cuImage.sbc8560
258 258
259# Board ports in arch/powerpc/platform/embedded6xx/Kconfig 259# Board ports in arch/powerpc/platform/embedded6xx/Kconfig
260image-$(CONFIG_STORCENTER) += cuImage.storcenter 260image-$(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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_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
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_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
81CONFIG_CPUSETS=y 80CONFIG_CPUSETS=y
82CONFIG_FAIR_GROUP_SCHED=y 81# CONFIG_GROUP_SCHED is not set
83CONFIG_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
86CONFIG_SYSFS_DEPRECATED=y 86CONFIG_SYSFS_DEPRECATED=y
87CONFIG_SYSFS_DEPRECATED_V2=y
87CONFIG_PROC_PID_CPUSET=y 88CONFIG_PROC_PID_CPUSET=y
88# CONFIG_RELAY is not set 89# CONFIG_RELAY is not set
90CONFIG_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
89CONFIG_BLK_DEV_INITRD=y 95CONFIG_BLK_DEV_INITRD=y
90CONFIG_INITRAMFS_SOURCE="" 96CONFIG_INITRAMFS_SOURCE=""
91CONFIG_CC_OPTIMIZE_FOR_SIZE=y 97CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -99,11 +105,13 @@ CONFIG_HOTPLUG=y
99CONFIG_PRINTK=y 105CONFIG_PRINTK=y
100CONFIG_BUG=y 106CONFIG_BUG=y
101CONFIG_ELF_CORE=y 107CONFIG_ELF_CORE=y
108# CONFIG_COMPAT_BRK is not set
102CONFIG_BASE_FULL=y 109CONFIG_BASE_FULL=y
103CONFIG_FUTEX=y 110CONFIG_FUTEX=y
104CONFIG_ANON_INODES=y 111CONFIG_ANON_INODES=y
105CONFIG_EPOLL=y 112CONFIG_EPOLL=y
106CONFIG_SIGNALFD=y 113CONFIG_SIGNALFD=y
114CONFIG_TIMERFD=y
107CONFIG_EVENTFD=y 115CONFIG_EVENTFD=y
108CONFIG_SHMEM=y 116CONFIG_SHMEM=y
109CONFIG_VM_EVENT_COUNTERS=y 117CONFIG_VM_EVENT_COUNTERS=y
@@ -111,6 +119,15 @@ CONFIG_SLUB_DEBUG=y
111# CONFIG_SLAB is not set 119# CONFIG_SLAB is not set
112CONFIG_SLUB=y 120CONFIG_SLUB=y
113# CONFIG_SLOB is not set 121# CONFIG_SLOB is not set
122CONFIG_PROFILING=y
123# CONFIG_MARKERS is not set
124CONFIG_OPROFILE=m
125CONFIG_HAVE_OPROFILE=y
126# CONFIG_KPROBES is not set
127CONFIG_HAVE_KPROBES=y
128CONFIG_HAVE_KRETPROBES=y
129CONFIG_PROC_PAGE_MONITOR=y
130CONFIG_SLABINFO=y
114CONFIG_RT_MUTEXES=y 131CONFIG_RT_MUTEXES=y
115# CONFIG_TINY_SHMEM is not set 132# CONFIG_TINY_SHMEM is not set
116CONFIG_BASE_SMALL=0 133CONFIG_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
140CONFIG_DEFAULT_IOSCHED="anticipatory" 157CONFIG_DEFAULT_IOSCHED="anticipatory"
158CONFIG_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
163CONFIG_PS3_HTAB_SIZE=20 181CONFIG_PS3_HTAB_SIZE=20
164# CONFIG_PS3_DYNAMIC_DMA is not set 182# CONFIG_PS3_DYNAMIC_DMA is not set
165CONFIG_PS3_USE_LPAR_ADDR=y
166CONFIG_PS3_VUART=y 183CONFIG_PS3_VUART=y
167CONFIG_PS3_PS3AV=y 184CONFIG_PS3_PS3AV=y
168CONFIG_PS3_SYS_MANAGER=m 185CONFIG_PS3_SYS_MANAGER=y
169CONFIG_PS3_STORAGE=y 186CONFIG_PS3_STORAGE=y
170CONFIG_PS3_DISK=y 187CONFIG_PS3_DISK=y
171CONFIG_PS3_ROM=m 188CONFIG_PS3_ROM=m
172CONFIG_PS3_FLASH=m 189CONFIG_PS3_FLASH=m
190CONFIG_PS3_LPM=m
173CONFIG_PPC_CELL=y 191CONFIG_PPC_CELL=y
174CONFIG_PPC_CELL_NATIVE=y 192CONFIG_PPC_CELL_NATIVE=y
175CONFIG_PPC_IBM_CELL_BLADE=y 193CONFIG_PPC_IBM_CELL_BLADE=y
@@ -183,10 +201,12 @@ CONFIG_CBE_RAS=y
183CONFIG_CBE_THERM=m 201CONFIG_CBE_THERM=m
184CONFIG_CBE_CPUFREQ=m 202CONFIG_CBE_CPUFREQ=m
185CONFIG_CBE_CPUFREQ_PMI=m 203CONFIG_CBE_CPUFREQ_PMI=m
204CONFIG_OPROFILE_CELL=y
186# CONFIG_PQ2ADS is not set 205# CONFIG_PQ2ADS is not set
187CONFIG_PPC_NATIVE=y 206CONFIG_PPC_NATIVE=y
188CONFIG_UDBG_RTAS_CONSOLE=y 207CONFIG_UDBG_RTAS_CONSOLE=y
189CONFIG_PPC_UDBG_BEAT=y 208CONFIG_PPC_UDBG_BEAT=y
209# CONFIG_IPIC is not set
190CONFIG_MPIC=y 210CONFIG_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
223CONFIG_AXON_RAM=m 242CONFIG_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
237CONFIG_HZ=250 256CONFIG_HZ=250
257# CONFIG_SCHED_HRTICK is not set
238CONFIG_PREEMPT_NONE=y 258CONFIG_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
241CONFIG_PREEMPT_BKL=y
242CONFIG_BINFMT_ELF=y 261CONFIG_BINFMT_ELF=y
262CONFIG_COMPAT_BINFMT_ELF=y
243CONFIG_BINFMT_MISC=m 263CONFIG_BINFMT_MISC=m
244CONFIG_FORCE_MAX_ZONEORDER=9 264CONFIG_FORCE_MAX_ZONEORDER=9
245CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 265CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
246# CONFIG_IOMMU_VMERGE is not set 266# CONFIG_IOMMU_VMERGE is not set
267CONFIG_IOMMU_HELPER=y
247CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 268CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
269CONFIG_ARCH_HAS_WALK_MEMORY=y
270CONFIG_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
250CONFIG_IRQ_ALL_CPUS=y 273CONFIG_IRQ_ALL_CPUS=y
@@ -267,6 +290,7 @@ CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y
267CONFIG_SPARSEMEM_VMEMMAP=y 290CONFIG_SPARSEMEM_VMEMMAP=y
268CONFIG_MEMORY_HOTPLUG=y 291CONFIG_MEMORY_HOTPLUG=y
269CONFIG_MEMORY_HOTPLUG_SPARSE=y 292CONFIG_MEMORY_HOTPLUG_SPARSE=y
293CONFIG_MEMORY_HOTREMOVE=y
270CONFIG_SPLIT_PTLOCK_CPUS=4 294CONFIG_SPLIT_PTLOCK_CPUS=4
271CONFIG_MIGRATION=y 295CONFIG_MIGRATION=y
272CONFIG_RESOURCES_64BIT=y 296CONFIG_RESOURCES_64BIT=y
@@ -276,12 +300,12 @@ CONFIG_ARCH_MEMORY_PROBE=y
276CONFIG_NODES_SPAN_OTHER_NODES=y 300CONFIG_NODES_SPAN_OTHER_NODES=y
277CONFIG_PPC_HAS_HASH_64K=y 301CONFIG_PPC_HAS_HASH_64K=y
278CONFIG_PPC_64K_PAGES=y 302CONFIG_PPC_64K_PAGES=y
303# CONFIG_PPC_SUBPAGE_PROT is not set
279CONFIG_SCHED_SMT=y 304CONFIG_SCHED_SMT=y
280CONFIG_PROC_DEVICETREE=y 305CONFIG_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
283CONFIG_SECCOMP=y 308CONFIG_SECCOMP=y
284# CONFIG_WANT_DEVICE_TREE is not set
285CONFIG_ISA_DMA_API=y 309CONFIG_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
322CONFIG_INET=y 347CONFIG_INET=y
323CONFIG_IP_MULTICAST=y 348CONFIG_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
369CONFIG_NETFILTER=y 394CONFIG_NETFILTER=y
370# CONFIG_NETFILTER_DEBUG is not set 395# CONFIG_NETFILTER_DEBUG is not set
396CONFIG_NETFILTER_ADVANCED=y
371 397
372# 398#
373# Core Netfilter Configuration 399# Core Netfilter Configuration
@@ -375,7 +401,6 @@ CONFIG_NETFILTER=y
375CONFIG_NETFILTER_NETLINK=m 401CONFIG_NETFILTER_NETLINK=m
376CONFIG_NETFILTER_NETLINK_QUEUE=m 402CONFIG_NETFILTER_NETLINK_QUEUE=m
377CONFIG_NETFILTER_NETLINK_LOG=m 403CONFIG_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
380CONFIG_NETFILTER_XTABLES=m 405CONFIG_NETFILTER_XTABLES=m
381CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 406CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
@@ -383,20 +408,25 @@ CONFIG_NETFILTER_XT_TARGET_DSCP=m
383CONFIG_NETFILTER_XT_TARGET_MARK=m 408CONFIG_NETFILTER_XT_TARGET_MARK=m
384CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 409CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
385CONFIG_NETFILTER_XT_TARGET_NFLOG=m 410CONFIG_NETFILTER_XT_TARGET_NFLOG=m
411CONFIG_NETFILTER_XT_TARGET_RATEEST=m
386# CONFIG_NETFILTER_XT_TARGET_TRACE is not set 412# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
387CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 413CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
414CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
388CONFIG_NETFILTER_XT_MATCH_COMMENT=m 415CONFIG_NETFILTER_XT_MATCH_COMMENT=m
389CONFIG_NETFILTER_XT_MATCH_DCCP=m 416CONFIG_NETFILTER_XT_MATCH_DCCP=m
390CONFIG_NETFILTER_XT_MATCH_DSCP=m 417CONFIG_NETFILTER_XT_MATCH_DSCP=m
391CONFIG_NETFILTER_XT_MATCH_ESP=m 418CONFIG_NETFILTER_XT_MATCH_ESP=m
419CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
392CONFIG_NETFILTER_XT_MATCH_LENGTH=m 420CONFIG_NETFILTER_XT_MATCH_LENGTH=m
393CONFIG_NETFILTER_XT_MATCH_LIMIT=m 421CONFIG_NETFILTER_XT_MATCH_LIMIT=m
394CONFIG_NETFILTER_XT_MATCH_MAC=m 422CONFIG_NETFILTER_XT_MATCH_MAC=m
395CONFIG_NETFILTER_XT_MATCH_MARK=m 423CONFIG_NETFILTER_XT_MATCH_MARK=m
424CONFIG_NETFILTER_XT_MATCH_OWNER=m
396CONFIG_NETFILTER_XT_MATCH_POLICY=m 425CONFIG_NETFILTER_XT_MATCH_POLICY=m
397CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 426CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
398CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 427CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
399CONFIG_NETFILTER_XT_MATCH_QUOTA=m 428CONFIG_NETFILTER_XT_MATCH_QUOTA=m
429CONFIG_NETFILTER_XT_MATCH_RATEEST=m
400CONFIG_NETFILTER_XT_MATCH_REALM=m 430CONFIG_NETFILTER_XT_MATCH_REALM=m
401CONFIG_NETFILTER_XT_MATCH_SCTP=m 431CONFIG_NETFILTER_XT_MATCH_SCTP=m
402CONFIG_NETFILTER_XT_MATCH_STATISTIC=m 432CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
@@ -411,20 +441,16 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
411# 441#
412CONFIG_IP_NF_QUEUE=m 442CONFIG_IP_NF_QUEUE=m
413CONFIG_IP_NF_IPTABLES=m 443CONFIG_IP_NF_IPTABLES=m
414CONFIG_IP_NF_MATCH_IPRANGE=m
415CONFIG_IP_NF_MATCH_TOS=m
416CONFIG_IP_NF_MATCH_RECENT=m 444CONFIG_IP_NF_MATCH_RECENT=m
417CONFIG_IP_NF_MATCH_ECN=m 445CONFIG_IP_NF_MATCH_ECN=m
418CONFIG_IP_NF_MATCH_AH=m 446CONFIG_IP_NF_MATCH_AH=m
419CONFIG_IP_NF_MATCH_TTL=m 447CONFIG_IP_NF_MATCH_TTL=m
420CONFIG_IP_NF_MATCH_OWNER=m
421CONFIG_IP_NF_MATCH_ADDRTYPE=m 448CONFIG_IP_NF_MATCH_ADDRTYPE=m
422CONFIG_IP_NF_FILTER=m 449CONFIG_IP_NF_FILTER=m
423CONFIG_IP_NF_TARGET_REJECT=m 450CONFIG_IP_NF_TARGET_REJECT=m
424CONFIG_IP_NF_TARGET_LOG=m 451CONFIG_IP_NF_TARGET_LOG=m
425CONFIG_IP_NF_TARGET_ULOG=m 452CONFIG_IP_NF_TARGET_ULOG=m
426CONFIG_IP_NF_MANGLE=m 453CONFIG_IP_NF_MANGLE=m
427CONFIG_IP_NF_TARGET_TOS=m
428CONFIG_IP_NF_TARGET_ECN=m 454CONFIG_IP_NF_TARGET_ECN=m
429CONFIG_IP_NF_TARGET_TTL=m 455CONFIG_IP_NF_TARGET_TTL=m
430CONFIG_IP_NF_RAW=m 456CONFIG_IP_NF_RAW=m
@@ -433,7 +459,7 @@ CONFIG_IP_NF_ARPFILTER=m
433CONFIG_IP_NF_ARP_MANGLE=m 459CONFIG_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 497CONFIG_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
505CONFIG_BLK_DEV_RAM=y 532CONFIG_BLK_DEV_RAM=y
506CONFIG_BLK_DEV_RAM_COUNT=16 533CONFIG_BLK_DEV_RAM_COUNT=16
507CONFIG_BLK_DEV_RAM_SIZE=131072 534CONFIG_BLK_DEV_RAM_SIZE=131072
508CONFIG_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
511CONFIG_MISC_DEVICES=y 538CONFIG_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
544CONFIG_HAVE_IDE=y
516CONFIG_IDE=y 545CONFIG_IDE=y
517CONFIG_BLK_DEV_IDE=y 546CONFIG_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
523CONFIG_BLK_DEV_IDEDISK=y 552CONFIG_BLK_DEV_IDEDISK=y
@@ -534,12 +563,12 @@ CONFIG_IDE_PROC_FS=y
534# 563#
535CONFIG_IDE_GENERIC=y 564CONFIG_IDE_GENERIC=y
536# CONFIG_BLK_DEV_PLATFORM is not set 565# CONFIG_BLK_DEV_PLATFORM is not set
566CONFIG_BLK_DEV_IDEDMA_SFF=y
537 567
538# 568#
539# PCI IDE chipsets support 569# PCI IDE chipsets support
540# 570#
541CONFIG_BLK_DEV_IDEPCI=y 571CONFIG_BLK_DEV_IDEPCI=y
542CONFIG_IDEPCI_SHARE_IRQ=y
543CONFIG_IDEPCI_PCIBUS_ORDER=y 572CONFIG_IDEPCI_PCIBUS_ORDER=y
544# CONFIG_BLK_DEV_OFFBOARD is not set 573# CONFIG_BLK_DEV_OFFBOARD is not set
545CONFIG_BLK_DEV_GENERIC=y 574CONFIG_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
573CONFIG_BLK_DEV_CELLEB=y 602CONFIG_BLK_DEV_CELLEB=y
574# CONFIG_IDE_ARM is not set
575CONFIG_BLK_DEV_IDEDMA=y 603CONFIG_BLK_DEV_IDEDMA=y
576CONFIG_IDE_ARCH_OBSOLETE_INIT=y 604CONFIG_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
707CONFIG_MD=y 738CONFIG_MD=y
708CONFIG_BLK_DEV_MD=m 739CONFIG_BLK_DEV_MD=m
@@ -748,7 +779,6 @@ CONFIG_MACVLAN=m
748# CONFIG_EQUALIZER is not set 779# CONFIG_EQUALIZER is not set
749CONFIG_TUN=y 780CONFIG_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
754CONFIG_NET_ETHERNET=y 784CONFIG_NET_ETHERNET=y
@@ -773,6 +803,9 @@ CONFIG_E1000=m
773CONFIG_E1000_NAPI=y 803CONFIG_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
789CONFIG_SPIDER_NET=y 822CONFIG_SPIDER_NET=y
790CONFIG_GELIC_NET=m 823CONFIG_GELIC_NET=m
824CONFIG_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
793CONFIG_NETDEV_10000=y 827CONFIG_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
1001CONFIG_WATCHDOG=y 1036CONFIG_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
1082CONFIG_USB_ARCH_HAS_EHCI=y 1117CONFIG_USB_ARCH_HAS_EHCI=y
1083CONFIG_USB=m 1118CONFIG_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#
1097CONFIG_USB_EHCI_HCD=m 1133CONFIG_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
1101CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1136CONFIG_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
1103CONFIG_USB_OHCI_HCD=m 1139CONFIG_USB_OHCI_HCD=m
1104CONFIG_USB_OHCI_HCD_PPC_OF=y 1140CONFIG_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
1192CONFIG_INFINIBAND=m 1217CONFIG_INFINIBAND=m
1193CONFIG_INFINIBAND_USER_MAD=m 1218CONFIG_INFINIBAND_USER_MAD=m
@@ -1198,6 +1223,7 @@ CONFIG_INFINIBAND_MTHCA=m
1198CONFIG_INFINIBAND_MTHCA_DEBUG=y 1223CONFIG_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
1201CONFIG_INFINIBAND_IPOIB=m 1227CONFIG_INFINIBAND_IPOIB=m
1202# CONFIG_INFINIBAND_IPOIB_CM is not set 1228# CONFIG_INFINIBAND_IPOIB_CM is not set
1203CONFIG_INFINIBAND_IPOIB_DEBUG=y 1229CONFIG_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
1213CONFIG_EDAC_MM_EDAC=y 1239CONFIG_EDAC_MM_EDAC=y
1240CONFIG_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 1270CONFIG_DNOTIFY=y
1243# CONFIG_ROMFS_FS is not set
1244CONFIG_INOTIFY=y 1271CONFIG_INOTIFY=y
1245CONFIG_INOTIFY_USER=y 1272CONFIG_INOTIFY_USER=y
1246# CONFIG_QUOTA is not set 1273# CONFIG_QUOTA is not set
1247CONFIG_DNOTIFY=y
1248# CONFIG_AUTOFS_FS is not set 1274# CONFIG_AUTOFS_FS is not set
1249CONFIG_AUTOFS4_FS=m 1275CONFIG_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
1300CONFIG_NETWORK_FILESYSTEMS=y 1328CONFIG_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
1404CONFIG_HAS_IOMEM=y 1431CONFIG_HAS_IOMEM=y
1405CONFIG_HAS_IOPORT=y 1432CONFIG_HAS_IOPORT=y
1406CONFIG_HAS_DMA=y 1433CONFIG_HAS_DMA=y
1407CONFIG_INSTRUMENTATION=y
1408CONFIG_PROFILING=y
1409CONFIG_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
1465CONFIG_CRYPTO=y 1488CONFIG_CRYPTO=y
1466CONFIG_CRYPTO_ALGAPI=y 1489CONFIG_CRYPTO_ALGAPI=y
1490CONFIG_CRYPTO_AEAD=m
1467CONFIG_CRYPTO_BLKCIPHER=m 1491CONFIG_CRYPTO_BLKCIPHER=m
1492# CONFIG_CRYPTO_SEQIV is not set
1468CONFIG_CRYPTO_HASH=y 1493CONFIG_CRYPTO_HASH=y
1469CONFIG_CRYPTO_MANAGER=y 1494CONFIG_CRYPTO_MANAGER=y
1470CONFIG_CRYPTO_HMAC=y 1495CONFIG_CRYPTO_HMAC=y
@@ -1483,6 +1508,9 @@ CONFIG_CRYPTO_CBC=m
1483CONFIG_CRYPTO_PCBC=m 1508CONFIG_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
1487CONFIG_CRYPTO_DES=m 1515CONFIG_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
1500CONFIG_CRYPTO_DEFLATE=m 1529CONFIG_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 1534CONFIG_CRYPTO_AUTHENC=m
1535# CONFIG_CRYPTO_LZO is not set
1506CONFIG_CRYPTO_HW=y 1536CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_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
75CONFIG_IKCONFIG=y 74CONFIG_IKCONFIG=y
76CONFIG_IKCONFIG_PROC=y 75CONFIG_IKCONFIG_PROC=y
77CONFIG_LOG_BUF_SHIFT=15 76CONFIG_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
80CONFIG_SYSFS_DEPRECATED=y 81CONFIG_SYSFS_DEPRECATED=y
82CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 83# CONFIG_RELAY is not set
84CONFIG_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
82CONFIG_BLK_DEV_INITRD=y 89CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 90CONFIG_INITRAMFS_SOURCE=""
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 91CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -92,11 +99,13 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 99CONFIG_PRINTK=y
93CONFIG_BUG=y 100CONFIG_BUG=y
94CONFIG_ELF_CORE=y 101CONFIG_ELF_CORE=y
102# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 103CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 104CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 105CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 106CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 107CONFIG_SIGNALFD=y
108CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 109CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 110CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 111CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +113,14 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 113# CONFIG_SLAB is not set
105CONFIG_SLUB=y 114CONFIG_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
118CONFIG_HAVE_OPROFILE=y
119# CONFIG_KPROBES is not set
120CONFIG_HAVE_KPROBES=y
121CONFIG_HAVE_KRETPROBES=y
122CONFIG_PROC_PAGE_MONITOR=y
123CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 124CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 125# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 126CONFIG_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
133CONFIG_DEFAULT_IOSCHED="anticipatory" 150CONFIG_DEFAULT_IOSCHED="anticipatory"
151CONFIG_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
164CONFIG_PPC_NATIVE=y 182CONFIG_PPC_NATIVE=y
165CONFIG_UDBG_RTAS_CONSOLE=y 183CONFIG_UDBG_RTAS_CONSOLE=y
166CONFIG_PPC_UDBG_BEAT=y 184CONFIG_PPC_UDBG_BEAT=y
185# CONFIG_IPIC is not set
167CONFIG_MPIC=y 186CONFIG_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
177CONFIG_PPC_INDIRECT_IO=y 196CONFIG_PPC_INDIRECT_IO=y
178CONFIG_GENERIC_IOMAP=y 197CONFIG_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
194CONFIG_HZ=250 212CONFIG_HZ=250
213# CONFIG_SCHED_HRTICK is not set
195CONFIG_PREEMPT_NONE=y 214CONFIG_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
198CONFIG_PREEMPT_BKL=y
199CONFIG_BINFMT_ELF=y 217CONFIG_BINFMT_ELF=y
218CONFIG_COMPAT_BINFMT_ELF=y
200CONFIG_BINFMT_MISC=m 219CONFIG_BINFMT_MISC=m
201CONFIG_FORCE_MAX_ZONEORDER=13 220CONFIG_FORCE_MAX_ZONEORDER=13
202CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 221CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
203# CONFIG_IOMMU_VMERGE is not set 222# CONFIG_IOMMU_VMERGE is not set
223CONFIG_IOMMU_HELPER=y
204CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 224CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
225CONFIG_ARCH_HAS_WALK_MEMORY=y
226CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
205CONFIG_KEXEC=y 227CONFIG_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
223CONFIG_SPARSEMEM_VMEMMAP=y 245CONFIG_SPARSEMEM_VMEMMAP=y
224CONFIG_MEMORY_HOTPLUG=y 246CONFIG_MEMORY_HOTPLUG=y
225CONFIG_MEMORY_HOTPLUG_SPARSE=y 247CONFIG_MEMORY_HOTPLUG_SPARSE=y
248# CONFIG_MEMORY_HOTREMOVE is not set
226CONFIG_SPLIT_PTLOCK_CPUS=4 249CONFIG_SPLIT_PTLOCK_CPUS=4
227CONFIG_MIGRATION=y 250CONFIG_MIGRATION=y
228CONFIG_RESOURCES_64BIT=y 251CONFIG_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
239CONFIG_SECCOMP=y 262CONFIG_SECCOMP=y
240# CONFIG_WANT_DEVICE_TREE is not set
241CONFIG_ISA_DMA_API=y 263CONFIG_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
277CONFIG_INET=y 300CONFIG_INET=y
278CONFIG_IP_MULTICAST=y 301CONFIG_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
321CONFIG_NETFILTER=y 344CONFIG_NETFILTER=y
322# CONFIG_NETFILTER_DEBUG is not set 345# CONFIG_NETFILTER_DEBUG is not set
346CONFIG_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
408CONFIG_BLK_DEV_RAM=y 433CONFIG_BLK_DEV_RAM=y
409CONFIG_BLK_DEV_RAM_COUNT=16 434CONFIG_BLK_DEV_RAM_COUNT=16
410CONFIG_BLK_DEV_RAM_SIZE=131072 435CONFIG_BLK_DEV_RAM_SIZE=131072
411CONFIG_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
414CONFIG_MISC_DEVICES=y 439CONFIG_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
445CONFIG_HAVE_IDE=y
419CONFIG_IDE=y 446CONFIG_IDE=y
420CONFIG_BLK_DEV_IDE=y 447CONFIG_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
426CONFIG_BLK_DEV_IDEDISK=y 453CONFIG_BLK_DEV_IDEDISK=y
427CONFIG_IDEDISK_MULTI_MODE=y 454CONFIG_IDEDISK_MULTI_MODE=y
428CONFIG_BLK_DEV_IDECD=m 455CONFIG_BLK_DEV_IDECD=m
456CONFIG_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#
438CONFIG_IDE_GENERIC=y 466CONFIG_IDE_GENERIC=y
439# CONFIG_BLK_DEV_PLATFORM is not set 467# CONFIG_BLK_DEV_PLATFORM is not set
468CONFIG_BLK_DEV_IDEDMA_SFF=y
440 469
441# 470#
442# PCI IDE chipsets support 471# PCI IDE chipsets support
443# 472#
444CONFIG_BLK_DEV_IDEPCI=y 473CONFIG_BLK_DEV_IDEPCI=y
445CONFIG_IDEPCI_SHARE_IRQ=y
446CONFIG_IDEPCI_PCIBUS_ORDER=y 474CONFIG_IDEPCI_PCIBUS_ORDER=y
447# CONFIG_BLK_DEV_OFFBOARD is not set 475# CONFIG_BLK_DEV_OFFBOARD is not set
448CONFIG_BLK_DEV_GENERIC=y 476CONFIG_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
476CONFIG_BLK_DEV_CELLEB=y 504CONFIG_BLK_DEV_CELLEB=y
477# CONFIG_IDE_ARM is not set
478CONFIG_BLK_DEV_IDEDMA=y 505CONFIG_BLK_DEV_IDEDMA=y
479CONFIG_IDE_ARCH_OBSOLETE_INIT=y 506CONFIG_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
595CONFIG_NET_ETHERNET=y 622CONFIG_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
827CONFIG_WATCHDOG=y 858CONFIG_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
905CONFIG_USB_ARCH_HAS_EHCI=y 936CONFIG_USB_ARCH_HAS_EHCI=y
906CONFIG_USB=y 937CONFIG_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#
920CONFIG_USB_EHCI_HCD=m 952CONFIG_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
924CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 955CONFIG_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
926CONFIG_USB_OHCI_HCD=m 958CONFIG_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 1066CONFIG_DNOTIFY=y
1045# CONFIG_ROMFS_FS is not set
1046CONFIG_INOTIFY=y 1067CONFIG_INOTIFY=y
1047CONFIG_INOTIFY_USER=y 1068CONFIG_INOTIFY_USER=y
1048# CONFIG_QUOTA is not set 1069# CONFIG_QUOTA is not set
1049CONFIG_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
1102CONFIG_NETWORK_FILESYSTEMS=y 1124CONFIG_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
1206CONFIG_HAS_IOMEM=y 1227CONFIG_HAS_IOMEM=y
1207CONFIG_HAS_IOPORT=y 1228CONFIG_HAS_IOPORT=y
1208CONFIG_HAS_DMA=y 1229CONFIG_HAS_DMA=y
1209CONFIG_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
1266CONFIG_CRYPTO=y 1284CONFIG_CRYPTO=y
1267CONFIG_CRYPTO_ALGAPI=y 1285CONFIG_CRYPTO_ALGAPI=y
1286CONFIG_CRYPTO_AEAD=m
1268CONFIG_CRYPTO_BLKCIPHER=m 1287CONFIG_CRYPTO_BLKCIPHER=m
1288# CONFIG_CRYPTO_SEQIV is not set
1269CONFIG_CRYPTO_HASH=y 1289CONFIG_CRYPTO_HASH=y
1270CONFIG_CRYPTO_MANAGER=y 1290CONFIG_CRYPTO_MANAGER=y
1271CONFIG_CRYPTO_HMAC=y 1291CONFIG_CRYPTO_HMAC=y
@@ -1284,6 +1304,9 @@ CONFIG_CRYPTO_CBC=m
1284CONFIG_CRYPTO_PCBC=m 1304CONFIG_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
1288CONFIG_CRYPTO_DES=m 1311CONFIG_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
1299CONFIG_CRYPTO_KHAZAD=m 1322CONFIG_CRYPTO_KHAZAD=m
1300CONFIG_CRYPTO_ANUBIS=m 1323CONFIG_CRYPTO_ANUBIS=m
1301# CONFIG_CRYPTO_SEED is not set 1324# CONFIG_CRYPTO_SEED is not set
1325# CONFIG_CRYPTO_SALSA20 is not set
1302CONFIG_CRYPTO_DEFLATE=m 1326CONFIG_CRYPTO_DEFLATE=m
1303CONFIG_CRYPTO_MICHAEL_MIC=m 1327CONFIG_CRYPTO_MICHAEL_MIC=m
1304CONFIG_CRYPTO_CRC32C=m 1328CONFIG_CRYPTO_CRC32C=m
1305# CONFIG_CRYPTO_CAMELLIA is not set 1329# CONFIG_CRYPTO_CAMELLIA is not set
1306CONFIG_CRYPTO_TEST=m 1330CONFIG_CRYPTO_TEST=m
1307# CONFIG_CRYPTO_AUTHENC is not set 1331CONFIG_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
30CONFIG_GENERIC_TIME_VSYSCALL=y 30CONFIG_GENERIC_TIME_VSYSCALL=y
31CONFIG_GENERIC_CLOCKEVENTS=y 31CONFIG_GENERIC_CLOCKEVENTS=y
32CONFIG_GENERIC_HARDIRQS=y 32CONFIG_GENERIC_HARDIRQS=y
33# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
33CONFIG_IRQ_PER_CPU=y 34CONFIG_IRQ_PER_CPU=y
34CONFIG_RWSEM_XCHGADD_ALGORITHM=y 35CONFIG_RWSEM_XCHGADD_ALGORITHM=y
35CONFIG_ARCH_HAS_ILOG2_U32=y 36CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -67,16 +68,22 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 68CONFIG_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
73CONFIG_IKCONFIG=y 72CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 73CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=15 74CONFIG_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
78CONFIG_SYSFS_DEPRECATED=y 79CONFIG_SYSFS_DEPRECATED=y
80CONFIG_SYSFS_DEPRECATED_V2=y
79# CONFIG_RELAY is not set 81# CONFIG_RELAY is not set
82CONFIG_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
80CONFIG_BLK_DEV_INITRD=y 87CONFIG_BLK_DEV_INITRD=y
81CONFIG_INITRAMFS_SOURCE="" 88CONFIG_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
90CONFIG_PRINTK=y 97CONFIG_PRINTK=y
91CONFIG_BUG=y 98CONFIG_BUG=y
92CONFIG_ELF_CORE=y 99CONFIG_ELF_CORE=y
100# CONFIG_COMPAT_BRK is not set
93CONFIG_BASE_FULL=y 101CONFIG_BASE_FULL=y
94CONFIG_FUTEX=y 102CONFIG_FUTEX=y
95CONFIG_ANON_INODES=y 103CONFIG_ANON_INODES=y
96CONFIG_EPOLL=y 104CONFIG_EPOLL=y
97CONFIG_SIGNALFD=y 105CONFIG_SIGNALFD=y
106CONFIG_TIMERFD=y
98CONFIG_EVENTFD=y 107CONFIG_EVENTFD=y
99CONFIG_SHMEM=y 108CONFIG_SHMEM=y
100CONFIG_VM_EVENT_COUNTERS=y 109CONFIG_VM_EVENT_COUNTERS=y
@@ -102,6 +111,14 @@ CONFIG_SLUB_DEBUG=y
102# CONFIG_SLAB is not set 111# CONFIG_SLAB is not set
103CONFIG_SLUB=y 112CONFIG_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
116CONFIG_HAVE_OPROFILE=y
117# CONFIG_KPROBES is not set
118CONFIG_HAVE_KPROBES=y
119CONFIG_HAVE_KRETPROBES=y
120CONFIG_PROC_PAGE_MONITOR=y
121CONFIG_SLABINFO=y
105CONFIG_RT_MUTEXES=y 122CONFIG_RT_MUTEXES=y
106# CONFIG_TINY_SHMEM is not set 123# CONFIG_TINY_SHMEM is not set
107CONFIG_BASE_SMALL=0 124CONFIG_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
132CONFIG_DEFAULT_IOSCHED="anticipatory" 149CONFIG_DEFAULT_IOSCHED="anticipatory"
150CONFIG_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
141CONFIG_CLASSIC32=y 159CONFIG_CLASSIC32=y
142CONFIG_PPC_CHRP=y 160CONFIG_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
151CONFIG_PPC_NATIVE=y 169CONFIG_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
153CONFIG_MPIC=y 172CONFIG_MPIC=y
154# CONFIG_MPIC_WEIRD is not set 173# CONFIG_MPIC_WEIRD is not set
155CONFIG_PPC_I8259=y 174CONFIG_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
181CONFIG_HZ=250 199CONFIG_HZ=250
200# CONFIG_SCHED_HRTICK is not set
182CONFIG_PREEMPT_NONE=y 201CONFIG_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
185CONFIG_PREEMPT_BKL=y
186CONFIG_BINFMT_ELF=y 204CONFIG_BINFMT_ELF=y
187CONFIG_BINFMT_MISC=y 205CONFIG_BINFMT_MISC=y
206# CONFIG_IOMMU_HELPER is not set
188CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 207CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
208CONFIG_ARCH_HAS_WALK_MEMORY=y
209CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
189# CONFIG_KEXEC is not set 210# CONFIG_KEXEC is not set
190CONFIG_IRQ_ALL_CPUS=y 211CONFIG_IRQ_ALL_CPUS=y
191CONFIG_ARCH_FLATMEM_ENABLE=y 212CONFIG_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
209CONFIG_SECCOMP=y 230CONFIG_SECCOMP=y
210# CONFIG_WANT_DEVICE_TREE is not set
211CONFIG_ISA_DMA_API=y 231CONFIG_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
287CONFIG_NETFILTER=y 307CONFIG_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 314CONFIG_NETFILTER_NETLINK=m
294CONFIG_NF_CONNTRACK_ENABLED=m 315CONFIG_NETFILTER_NETLINK_LOG=m
295CONFIG_NF_CONNTRACK=m 316CONFIG_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
302CONFIG_NF_CONNTRACK_FTP=m 317CONFIG_NF_CONNTRACK_FTP=m
303# CONFIG_NF_CONNTRACK_H323 is not set
304CONFIG_NF_CONNTRACK_IRC=m 318CONFIG_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
308CONFIG_NF_CONNTRACK_SIP=m 319CONFIG_NF_CONNTRACK_SIP=m
309CONFIG_NF_CONNTRACK_TFTP=m 320CONFIG_NF_CT_NETLINK=m
310CONFIG_NETFILTER_XTABLES=m 321CONFIG_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#
345CONFIG_NF_CONNTRACK_IPV4=m 332CONFIG_NF_CONNTRACK_IPV4=m
346CONFIG_NF_CONNTRACK_PROC_COMPAT=y 333CONFIG_NF_CONNTRACK_PROC_COMPAT=y
347# CONFIG_IP_NF_QUEUE is not set
348CONFIG_IP_NF_IPTABLES=m 334CONFIG_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
357CONFIG_IP_NF_FILTER=m 335CONFIG_IP_NF_FILTER=m
358CONFIG_IP_NF_TARGET_REJECT=m 336CONFIG_IP_NF_TARGET_REJECT=m
359CONFIG_IP_NF_TARGET_LOG=m 337CONFIG_IP_NF_TARGET_LOG=m
@@ -361,20 +339,14 @@ CONFIG_IP_NF_TARGET_LOG=m
361CONFIG_NF_NAT=m 339CONFIG_NF_NAT=m
362CONFIG_NF_NAT_NEEDED=y 340CONFIG_NF_NAT_NEEDED=y
363CONFIG_IP_NF_TARGET_MASQUERADE=m 341CONFIG_IP_NF_TARGET_MASQUERADE=m
364CONFIG_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
368CONFIG_NF_NAT_FTP=m 342CONFIG_NF_NAT_FTP=m
369CONFIG_NF_NAT_IRC=m 343CONFIG_NF_NAT_IRC=m
370CONFIG_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
374CONFIG_NF_NAT_SIP=m 348CONFIG_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
445CONFIG_BLK_DEV_RAM=y 418CONFIG_BLK_DEV_RAM=y
446CONFIG_BLK_DEV_RAM_COUNT=16 419CONFIG_BLK_DEV_RAM_COUNT=16
447CONFIG_BLK_DEV_RAM_SIZE=4096 420CONFIG_BLK_DEV_RAM_SIZE=4096
448CONFIG_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
451CONFIG_MISC_DEVICES=y 424CONFIG_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
430CONFIG_HAVE_IDE=y
456CONFIG_IDE=y 431CONFIG_IDE=y
457CONFIG_BLK_DEV_IDE=y 432CONFIG_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
463CONFIG_BLK_DEV_IDEDISK=y 438CONFIG_BLK_DEV_IDEDISK=y
464CONFIG_IDEDISK_MULTI_MODE=y 439CONFIG_IDEDISK_MULTI_MODE=y
465CONFIG_BLK_DEV_IDECD=y 440CONFIG_BLK_DEV_IDECD=y
441CONFIG_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#
475CONFIG_IDE_GENERIC=y 451CONFIG_IDE_GENERIC=y
476# CONFIG_BLK_DEV_PLATFORM is not set 452# CONFIG_BLK_DEV_PLATFORM is not set
453CONFIG_BLK_DEV_IDEDMA_SFF=y
477 454
478# 455#
479# PCI IDE chipsets support 456# PCI IDE chipsets support
480# 457#
481CONFIG_BLK_DEV_IDEPCI=y 458CONFIG_BLK_DEV_IDEPCI=y
482CONFIG_IDEPCI_SHARE_IRQ=y
483CONFIG_IDEPCI_PCIBUS_ORDER=y 459CONFIG_IDEPCI_PCIBUS_ORDER=y
484# CONFIG_BLK_DEV_OFFBOARD is not set 460# CONFIG_BLK_DEV_OFFBOARD is not set
485CONFIG_BLK_DEV_GENERIC=y 461CONFIG_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
511CONFIG_BLK_DEV_VIA82CXXX=y 487CONFIG_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
604CONFIG_SCSI_SYM53C8XX_2=y 580CONFIG_SCSI_SYM53C8XX_2=y
@@ -607,7 +583,6 @@ CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16
607CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 583CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64
608CONFIG_SCSI_SYM53C8XX_MMIO=y 584CONFIG_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
646CONFIG_NET_ETHERNET=y 620CONFIG_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
759CONFIG_SLHC=m 738CONFIG_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
838CONFIG_HW_CONSOLE=y 816CONFIG_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
1083CONFIG_USB_ARCH_HAS_EHCI=y 1061CONFIG_USB_ARCH_HAS_EHCI=y
1084CONFIG_USB=y 1062CONFIG_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#
1098CONFIG_USB_EHCI_HCD=m 1077CONFIG_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
1103CONFIG_USB_OHCI_HCD=y 1082CONFIG_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 1187CONFIG_DNOTIFY=y
1219# CONFIG_ROMFS_FS is not set
1220CONFIG_INOTIFY=y 1188CONFIG_INOTIFY=y
1221CONFIG_INOTIFY_USER=y 1189CONFIG_INOTIFY_USER=y
1222# CONFIG_QUOTA is not set 1190# CONFIG_QUOTA is not set
1223CONFIG_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
1274CONFIG_NETWORK_FILESYSTEMS=y 1243CONFIG_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
1360CONFIG_HAS_IOMEM=y 1328CONFIG_HAS_IOMEM=y
1361CONFIG_HAS_IOPORT=y 1329CONFIG_HAS_IOPORT=y
1362CONFIG_HAS_DMA=y 1330CONFIG_HAS_DMA=y
1363CONFIG_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
1398CONFIG_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
1420CONFIG_CRYPTO=y 1385CONFIG_CRYPTO=y
1421CONFIG_CRYPTO_ALGAPI=m 1386CONFIG_CRYPTO_ALGAPI=m
1422CONFIG_CRYPTO_BLKCIPHER=m 1387CONFIG_CRYPTO_BLKCIPHER=m
1388# CONFIG_CRYPTO_SEQIV is not set
1423CONFIG_CRYPTO_MANAGER=m 1389CONFIG_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
1437CONFIG_CRYPTO_PCBC=m 1403CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -27,6 +27,7 @@ CONFIG_GENERIC_TIME=y
27CONFIG_GENERIC_TIME_VSYSCALL=y 27CONFIG_GENERIC_TIME_VSYSCALL=y
28CONFIG_GENERIC_CLOCKEVENTS=y 28CONFIG_GENERIC_CLOCKEVENTS=y
29CONFIG_GENERIC_HARDIRQS=y 29CONFIG_GENERIC_HARDIRQS=y
30CONFIG_HAVE_SETUP_PER_CPU_AREA=y
30CONFIG_IRQ_PER_CPU=y 31CONFIG_IRQ_PER_CPU=y
31CONFIG_RWSEM_XCHGADD_ALGORITHM=y 32CONFIG_RWSEM_XCHGADD_ALGORITHM=y
32CONFIG_ARCH_HAS_ILOG2_U32=y 33CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -48,7 +49,9 @@ CONFIG_GENERIC_TBSYNC=y
48CONFIG_AUDIT_ARCH=y 49CONFIG_AUDIT_ARCH=y
49CONFIG_GENERIC_BUG=y 50CONFIG_GENERIC_BUG=y
50# CONFIG_DEFAULT_UIMAGE is not set 51# CONFIG_DEFAULT_UIMAGE is not set
51CONFIG_PPC64_SWSUSP=y 52CONFIG_HIBERNATE_64=y
53CONFIG_ARCH_HIBERNATION_POSSIBLE=y
54CONFIG_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
68CONFIG_POSIX_MQUEUE=y 71CONFIG_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
74CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
75CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
76CONFIG_LOG_BUF_SHIFT=17 77CONFIG_LOG_BUF_SHIFT=17
77# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
78CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
79CONFIG_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
81CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
82# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_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
83CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
84CONFIG_INITRAMFS_SOURCE="" 91CONFIG_INITRAMFS_SOURCE=""
85CONFIG_CC_OPTIMIZE_FOR_SIZE=y 92CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -93,11 +100,13 @@ CONFIG_HOTPLUG=y
93CONFIG_PRINTK=y 100CONFIG_PRINTK=y
94CONFIG_BUG=y 101CONFIG_BUG=y
95CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
96CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
97CONFIG_FUTEX=y 105CONFIG_FUTEX=y
98CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
99CONFIG_EPOLL=y 107CONFIG_EPOLL=y
100CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
101CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
102CONFIG_SHMEM=y 111CONFIG_SHMEM=y
103CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -105,6 +114,15 @@ CONFIG_SLUB_DEBUG=y
105# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
106CONFIG_SLUB=y 115CONFIG_SLUB=y
107# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117CONFIG_PROFILING=y
118# CONFIG_MARKERS is not set
119CONFIG_OPROFILE=y
120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set
122CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y
124CONFIG_PROC_PAGE_MONITOR=y
125CONFIG_SLABINFO=y
108CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
109# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
110CONFIG_BASE_SMALL=0 128CONFIG_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
134CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_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
147CONFIG_PPC_PMAC=y 166CONFIG_PPC_PMAC=y
148CONFIG_PPC_PMAC64=y 167CONFIG_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
157CONFIG_PPC_NATIVE=y 176CONFIG_PPC_NATIVE=y
177# CONFIG_IPIC is not set
158CONFIG_MPIC=y 178CONFIG_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#
187CONFIG_CPU_FREQ_PMAC64=y 207CONFIG_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
202CONFIG_HZ=250 221CONFIG_HZ=250
222# CONFIG_SCHED_HRTICK is not set
203CONFIG_PREEMPT_NONE=y 223CONFIG_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
207CONFIG_BINFMT_ELF=y 226CONFIG_BINFMT_ELF=y
227CONFIG_COMPAT_BINFMT_ELF=y
208# CONFIG_BINFMT_MISC is not set 228# CONFIG_BINFMT_MISC is not set
209CONFIG_FORCE_MAX_ZONEORDER=13 229CONFIG_FORCE_MAX_ZONEORDER=13
210CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 230CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
211CONFIG_IOMMU_VMERGE=y 231CONFIG_IOMMU_VMERGE=y
232CONFIG_IOMMU_HELPER=y
212# CONFIG_HOTPLUG_CPU is not set 233# CONFIG_HOTPLUG_CPU is not set
213CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 234CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
235CONFIG_ARCH_HAS_WALK_MEMORY=y
236CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
214CONFIG_KEXEC=y 237CONFIG_KEXEC=y
215# CONFIG_CRASH_DUMP is not set 238# CONFIG_CRASH_DUMP is not set
216CONFIG_IRQ_ALL_CPUS=y 239CONFIG_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
237CONFIG_PROC_DEVICETREE=y 260CONFIG_PROC_DEVICETREE=y
238# CONFIG_CMDLINE_BOOL is not set 261# CONFIG_CMDLINE_BOOL is not set
262CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
239# CONFIG_PM is not set 263# CONFIG_PM is not set
240CONFIG_SUSPEND_SMP_POSSIBLE=y
241CONFIG_HIBERNATION_SMP_POSSIBLE=y
242CONFIG_SECCOMP=y 264CONFIG_SECCOMP=y
243# CONFIG_WANT_DEVICE_TREE is not set
244CONFIG_ISA_DMA_API=y 265CONFIG_ISA_DMA_API=y
245 266
246# 267#
@@ -276,6 +297,7 @@ CONFIG_XFRM=y
276CONFIG_XFRM_USER=m 297CONFIG_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
279CONFIG_NET_KEY=m 301CONFIG_NET_KEY=m
280# CONFIG_NET_KEY_MIGRATE is not set 302# CONFIG_NET_KEY_MIGRATE is not set
281CONFIG_INET=y 303CONFIG_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
311CONFIG_NETFILTER=y 333CONFIG_NETFILTER=y
312# CONFIG_NETFILTER_DEBUG is not set 334# CONFIG_NETFILTER_DEBUG is not set
335CONFIG_NETFILTER_ADVANCED=y
313 336
314# 337#
315# Core Netfilter Configuration 338# Core Netfilter Configuration
316# 339#
317# CONFIG_NETFILTER_NETLINK is not set 340CONFIG_NETFILTER_NETLINK=m
318CONFIG_NF_CONNTRACK_ENABLED=m 341CONFIG_NETFILTER_NETLINK_QUEUE=m
342CONFIG_NETFILTER_NETLINK_LOG=m
319CONFIG_NF_CONNTRACK=m 343CONFIG_NF_CONNTRACK=m
320# CONFIG_NF_CT_ACCT is not set 344# CONFIG_NF_CT_ACCT is not set
321CONFIG_NF_CONNTRACK_MARK=y 345CONFIG_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
333CONFIG_NF_CONNTRACK_TFTP=m 357CONFIG_NF_CONNTRACK_TFTP=m
358CONFIG_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
409CONFIG_BLK_DEV_RAM=y 435CONFIG_BLK_DEV_RAM=y
410CONFIG_BLK_DEV_RAM_COUNT=16 436CONFIG_BLK_DEV_RAM_COUNT=16
411CONFIG_BLK_DEV_RAM_SIZE=65536 437CONFIG_BLK_DEV_RAM_SIZE=65536
412CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024 438# CONFIG_BLK_DEV_XIP is not set
413CONFIG_CDROM_PKTCDVD=m 439CONFIG_CDROM_PKTCDVD=m
414CONFIG_CDROM_PKTCDVD_BUFFERS=8 440CONFIG_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
449CONFIG_HAVE_IDE=y
422CONFIG_IDE=y 450CONFIG_IDE=y
423CONFIG_BLK_DEV_IDE=y 451CONFIG_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
429CONFIG_BLK_DEV_IDEDISK=y 457CONFIG_BLK_DEV_IDEDISK=y
430# CONFIG_IDEDISK_MULTI_MODE is not set 458# CONFIG_IDEDISK_MULTI_MODE is not set
431CONFIG_BLK_DEV_IDECD=y 459CONFIG_BLK_DEV_IDECD=y
460CONFIG_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#
441CONFIG_IDE_GENERIC=y 470CONFIG_IDE_GENERIC=y
442# CONFIG_BLK_DEV_PLATFORM is not set 471# CONFIG_BLK_DEV_PLATFORM is not set
472CONFIG_BLK_DEV_IDEDMA_SFF=y
443 473
444# 474#
445# PCI IDE chipsets support 475# PCI IDE chipsets support
446# 476#
447CONFIG_BLK_DEV_IDEPCI=y 477CONFIG_BLK_DEV_IDEPCI=y
448# CONFIG_IDEPCI_SHARE_IRQ is not set
449CONFIG_IDEPCI_PCIBUS_ORDER=y 478CONFIG_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
478CONFIG_BLK_DEV_IDE_PMAC=y 507CONFIG_BLK_DEV_IDE_PMAC=y
479CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 508CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
480CONFIG_BLK_DEV_IDEDMA_PMAC=y 509CONFIG_BLK_DEV_IDEDMA_PMAC=y
481# CONFIG_IDE_ARM is not set
482CONFIG_BLK_DEV_IDEDMA=y 510CONFIG_BLK_DEV_IDEDMA=y
483CONFIG_IDE_ARCH_OBSOLETE_INIT=y 511CONFIG_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
613CONFIG_MD=y 644CONFIG_MD=y
614CONFIG_BLK_DEV_MD=y 645CONFIG_BLK_DEV_MD=y
615CONFIG_MD_LINEAR=y 646CONFIG_MD_LINEAR=y
@@ -676,7 +707,6 @@ CONFIG_BONDING=m
676# CONFIG_EQUALIZER is not set 707# CONFIG_EQUALIZER is not set
677CONFIG_TUN=m 708CONFIG_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
682CONFIG_NET_ETHERNET=y 712CONFIG_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
729CONFIG_TR=y 763CONFIG_TR=y
730CONFIG_IBMOL=y 764CONFIG_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
772CONFIG_SLHC=m 806CONFIG_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
834CONFIG_HW_CONSOLE=y 867CONFIG_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
1192CONFIG_USB_ARCH_HAS_EHCI=y 1233CONFIG_USB_ARCH_HAS_EHCI=y
1193CONFIG_USB=y 1234CONFIG_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#
1207CONFIG_USB_EHCI_HCD=y 1249CONFIG_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
1212CONFIG_USB_OHCI_HCD=y 1254CONFIG_USB_OHCI_HCD=y
1213CONFIG_USB_OHCI_HCD_PPC_OF=y 1255CONFIG_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#
1266CONFIG_USB_SERIAL=m 1304CONFIG_USB_SERIAL=m
1305CONFIG_USB_EZUSB=y
1267CONFIG_USB_SERIAL_GENERIC=y 1306CONFIG_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
1284CONFIG_USB_SERIAL_EDGEPORT_TI=m 1323CONFIG_USB_SERIAL_EDGEPORT_TI=m
1285CONFIG_USB_SERIAL_GARMIN=m 1324CONFIG_USB_SERIAL_GARMIN=m
1286CONFIG_USB_SERIAL_IPW=m 1325CONFIG_USB_SERIAL_IPW=m
1326# CONFIG_USB_SERIAL_IUU is not set
1287CONFIG_USB_SERIAL_KEYSPAN_PDA=m 1327CONFIG_USB_SERIAL_KEYSPAN_PDA=m
1288CONFIG_USB_SERIAL_KEYSPAN=m 1328CONFIG_USB_SERIAL_KEYSPAN=m
1289CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1329CONFIG_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
1317CONFIG_USB_SERIAL_OMNINET=m 1357CONFIG_USB_SERIAL_OMNINET=m
1318# CONFIG_USB_SERIAL_DEBUG is not set 1358# CONFIG_USB_SERIAL_DEBUG is not set
1319CONFIG_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 1429CONFIG_DNOTIFY=y
1397# CONFIG_ROMFS_FS is not set
1398CONFIG_INOTIFY=y 1430CONFIG_INOTIFY=y
1399CONFIG_INOTIFY_USER=y 1431CONFIG_INOTIFY_USER=y
1400# CONFIG_QUOTA is not set 1432# CONFIG_QUOTA is not set
1401CONFIG_DNOTIFY=y
1402CONFIG_AUTOFS_FS=m 1433CONFIG_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
1448CONFIG_CRAMFS=y 1479CONFIG_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
1454CONFIG_NETWORK_FILESYSTEMS=y 1487CONFIG_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
1547CONFIG_NLS_UTF8=y 1580CONFIG_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
1564CONFIG_HAS_IOMEM=y 1596CONFIG_HAS_IOMEM=y
1565CONFIG_HAS_IOPORT=y 1597CONFIG_HAS_IOPORT=y
1566CONFIG_HAS_DMA=y 1598CONFIG_HAS_DMA=y
1567CONFIG_INSTRUMENTATION=y
1568CONFIG_PROFILING=y
1569CONFIG_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
1602CONFIG_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
1622CONFIG_CRYPTO=y 1650CONFIG_CRYPTO=y
1623CONFIG_CRYPTO_ALGAPI=y 1651CONFIG_CRYPTO_ALGAPI=y
1652CONFIG_CRYPTO_AEAD=m
1624CONFIG_CRYPTO_BLKCIPHER=y 1653CONFIG_CRYPTO_BLKCIPHER=y
1654# CONFIG_CRYPTO_SEQIV is not set
1625CONFIG_CRYPTO_HASH=y 1655CONFIG_CRYPTO_HASH=y
1626CONFIG_CRYPTO_MANAGER=y 1656CONFIG_CRYPTO_MANAGER=y
1627CONFIG_CRYPTO_HMAC=y 1657CONFIG_CRYPTO_HMAC=y
@@ -1640,6 +1670,9 @@ CONFIG_CRYPTO_CBC=y
1640CONFIG_CRYPTO_PCBC=m 1670CONFIG_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
1644CONFIG_CRYPTO_DES=y 1677CONFIG_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
1655CONFIG_CRYPTO_KHAZAD=m 1688CONFIG_CRYPTO_KHAZAD=m
1656CONFIG_CRYPTO_ANUBIS=m 1689CONFIG_CRYPTO_ANUBIS=m
1657# CONFIG_CRYPTO_SEED is not set 1690# CONFIG_CRYPTO_SEED is not set
1691# CONFIG_CRYPTO_SALSA20 is not set
1658CONFIG_CRYPTO_DEFLATE=m 1692CONFIG_CRYPTO_DEFLATE=m
1659CONFIG_CRYPTO_MICHAEL_MIC=m 1693CONFIG_CRYPTO_MICHAEL_MIC=m
1660CONFIG_CRYPTO_CRC32C=m 1694CONFIG_CRYPTO_CRC32C=m
1661# CONFIG_CRYPTO_CAMELLIA is not set 1695# CONFIG_CRYPTO_CAMELLIA is not set
1662CONFIG_CRYPTO_TEST=m 1696CONFIG_CRYPTO_TEST=m
1663# CONFIG_CRYPTO_AUTHENC is not set 1697CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -68,8 +69,6 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 69CONFIG_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
73CONFIG_AUDIT=y 72CONFIG_AUDIT=y
74CONFIG_AUDITSYSCALL=y 73CONFIG_AUDITSYSCALL=y
75CONFIG_AUDIT_TREE=y 74CONFIG_AUDIT_TREE=y
@@ -77,11 +76,17 @@ CONFIG_IKCONFIG=y
77CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
78CONFIG_LOG_BUF_SHIFT=17 77CONFIG_LOG_BUF_SHIFT=17
79# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
80CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
81CONFIG_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
83CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
84# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_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
85CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
86CONFIG_INITRAMFS_SOURCE="" 91CONFIG_INITRAMFS_SOURCE=""
87CONFIG_CC_OPTIMIZE_FOR_SIZE=y 92CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -95,11 +100,13 @@ CONFIG_HOTPLUG=y
95CONFIG_PRINTK=y 100CONFIG_PRINTK=y
96CONFIG_BUG=y 101CONFIG_BUG=y
97CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
98CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
99CONFIG_FUTEX=y 105CONFIG_FUTEX=y
100CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
101CONFIG_EPOLL=y 107CONFIG_EPOLL=y
102CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
103CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
104CONFIG_SHMEM=y 111CONFIG_SHMEM=y
105CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -107,6 +114,14 @@ CONFIG_SLUB_DEBUG=y
107# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
108CONFIG_SLUB=y 115CONFIG_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
119CONFIG_HAVE_OPROFILE=y
120# CONFIG_KPROBES is not set
121CONFIG_HAVE_KPROBES=y
122CONFIG_HAVE_KRETPROBES=y
123CONFIG_PROC_PAGE_MONITOR=y
124CONFIG_SLABINFO=y
110CONFIG_RT_MUTEXES=y 125CONFIG_RT_MUTEXES=y
111# CONFIG_TINY_SHMEM is not set 126# CONFIG_TINY_SHMEM is not set
112CONFIG_BASE_SMALL=0 127CONFIG_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
136CONFIG_DEFAULT_IOSCHED="anticipatory" 151CONFIG_DEFAULT_IOSCHED="anticipatory"
152CONFIG_CLASSIC_RCU=y
137 153
138# 154#
139# Platform support 155# Platform support
@@ -153,8 +169,8 @@ CONFIG_VIODASD=y
153CONFIG_VIOCD=m 169CONFIG_VIOCD=m
154CONFIG_VIOTAPE=m 170CONFIG_VIOTAPE=m
155CONFIG_VIOPATH=y 171CONFIG_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
176CONFIG_PPC_INDIRECT_IO=y 193CONFIG_PPC_INDIRECT_IO=y
177CONFIG_GENERIC_IOMAP=y 194CONFIG_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
193CONFIG_HZ=250 209CONFIG_HZ=250
210# CONFIG_SCHED_HRTICK is not set
194CONFIG_PREEMPT_NONE=y 211CONFIG_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
198CONFIG_BINFMT_ELF=y 214CONFIG_BINFMT_ELF=y
215CONFIG_COMPAT_BINFMT_ELF=y
199# CONFIG_BINFMT_MISC is not set 216# CONFIG_BINFMT_MISC is not set
200CONFIG_FORCE_MAX_ZONEORDER=13 217CONFIG_FORCE_MAX_ZONEORDER=13
201CONFIG_IOMMU_VMERGE=y 218CONFIG_IOMMU_VMERGE=y
219CONFIG_IOMMU_HELPER=y
202CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 220CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
221CONFIG_ARCH_HAS_WALK_MEMORY=y
222CONFIG_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
205CONFIG_IRQ_ALL_CPUS=y 225CONFIG_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
229CONFIG_SECCOMP=y 249CONFIG_SECCOMP=y
230# CONFIG_WANT_DEVICE_TREE is not set
231CONFIG_ISA_DMA_API=y 250CONFIG_ISA_DMA_API=y
232 251
233# 252#
@@ -263,6 +282,7 @@ CONFIG_XFRM=y
263CONFIG_XFRM_USER=m 282CONFIG_XFRM_USER=m
264CONFIG_XFRM_SUB_POLICY=y 283CONFIG_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
266CONFIG_NET_KEY=m 286CONFIG_NET_KEY=m
267# CONFIG_NET_KEY_MIGRATE is not set 287# CONFIG_NET_KEY_MIGRATE is not set
268CONFIG_INET=y 288CONFIG_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
298CONFIG_NETFILTER=y 318CONFIG_NETFILTER=y
299# CONFIG_NETFILTER_DEBUG is not set 319# CONFIG_NETFILTER_DEBUG is not set
320CONFIG_NETFILTER_ADVANCED=y
300 321
301# 322#
302# Core Netfilter Configuration 323# Core Netfilter Configuration
303# 324#
304# CONFIG_NETFILTER_NETLINK is not set 325CONFIG_NETFILTER_NETLINK=m
305CONFIG_NF_CONNTRACK_ENABLED=m 326CONFIG_NETFILTER_NETLINK_QUEUE=m
327CONFIG_NETFILTER_NETLINK_LOG=m
306CONFIG_NF_CONNTRACK=m 328CONFIG_NF_CONNTRACK=m
307# CONFIG_NF_CT_ACCT is not set 329# CONFIG_NF_CT_ACCT is not set
308CONFIG_NF_CONNTRACK_MARK=y 330CONFIG_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
320CONFIG_NF_CONNTRACK_TFTP=m 342CONFIG_NF_CONNTRACK_TFTP=m
343CONFIG_NF_CT_NETLINK=m
321CONFIG_NETFILTER_XTABLES=m 344CONFIG_NETFILTER_XTABLES=m
322CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 345CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
323CONFIG_NETFILTER_XT_TARGET_CONNMARK=m 346CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
@@ -326,8 +349,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
326CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 349CONFIG_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
352CONFIG_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
355CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
331CONFIG_NETFILTER_XT_MATCH_COMMENT=m 356CONFIG_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
337CONFIG_NETFILTER_XT_MATCH_DSCP=m 362CONFIG_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
365CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
340CONFIG_NETFILTER_XT_MATCH_LENGTH=m 366CONFIG_NETFILTER_XT_MATCH_LENGTH=m
341CONFIG_NETFILTER_XT_MATCH_LIMIT=m 367CONFIG_NETFILTER_XT_MATCH_LIMIT=m
342CONFIG_NETFILTER_XT_MATCH_MAC=m 368CONFIG_NETFILTER_XT_MATCH_MAC=m
343CONFIG_NETFILTER_XT_MATCH_MARK=m 369CONFIG_NETFILTER_XT_MATCH_MARK=m
370CONFIG_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
346CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 373CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
347# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 374# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
375CONFIG_NETFILTER_XT_MATCH_RATEEST=m
348CONFIG_NETFILTER_XT_MATCH_REALM=m 376CONFIG_NETFILTER_XT_MATCH_REALM=m
349CONFIG_NETFILTER_XT_MATCH_SCTP=m 377CONFIG_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
362CONFIG_NF_CONNTRACK_PROC_COMPAT=y 390CONFIG_NF_CONNTRACK_PROC_COMPAT=y
363CONFIG_IP_NF_QUEUE=m 391CONFIG_IP_NF_QUEUE=m
364CONFIG_IP_NF_IPTABLES=m 392CONFIG_IP_NF_IPTABLES=m
365CONFIG_IP_NF_MATCH_IPRANGE=m
366CONFIG_IP_NF_MATCH_TOS=m
367CONFIG_IP_NF_MATCH_RECENT=m 393CONFIG_IP_NF_MATCH_RECENT=m
368CONFIG_IP_NF_MATCH_ECN=m 394CONFIG_IP_NF_MATCH_ECN=m
369# CONFIG_IP_NF_MATCH_AH is not set 395# CONFIG_IP_NF_MATCH_AH is not set
370CONFIG_IP_NF_MATCH_TTL=m 396CONFIG_IP_NF_MATCH_TTL=m
371CONFIG_IP_NF_MATCH_OWNER=m
372CONFIG_IP_NF_MATCH_ADDRTYPE=m 397CONFIG_IP_NF_MATCH_ADDRTYPE=m
373CONFIG_IP_NF_FILTER=m 398CONFIG_IP_NF_FILTER=m
374CONFIG_IP_NF_TARGET_REJECT=m 399CONFIG_IP_NF_TARGET_REJECT=m
@@ -379,7 +404,6 @@ CONFIG_NF_NAT_NEEDED=y
379CONFIG_IP_NF_TARGET_MASQUERADE=m 404CONFIG_IP_NF_TARGET_MASQUERADE=m
380CONFIG_IP_NF_TARGET_REDIRECT=m 405CONFIG_IP_NF_TARGET_REDIRECT=m
381CONFIG_IP_NF_TARGET_NETMAP=m 406CONFIG_IP_NF_TARGET_NETMAP=m
382CONFIG_IP_NF_TARGET_SAME=m
383# CONFIG_NF_NAT_SNMP_BASIC is not set 407# CONFIG_NF_NAT_SNMP_BASIC is not set
384CONFIG_NF_NAT_FTP=m 408CONFIG_NF_NAT_FTP=m
385CONFIG_NF_NAT_IRC=m 409CONFIG_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
391CONFIG_IP_NF_MANGLE=m 415CONFIG_IP_NF_MANGLE=m
392CONFIG_IP_NF_TARGET_TOS=m
393CONFIG_IP_NF_TARGET_ECN=m 416CONFIG_IP_NF_TARGET_ECN=m
394CONFIG_IP_NF_TARGET_TTL=m 417CONFIG_IP_NF_TARGET_TTL=m
395CONFIG_IP_NF_TARGET_CLUSTERIP=m 418CONFIG_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
470CONFIG_BLK_DEV_RAM=y 494CONFIG_BLK_DEV_RAM=y
471CONFIG_BLK_DEV_RAM_COUNT=16 495CONFIG_BLK_DEV_RAM_COUNT=16
472CONFIG_BLK_DEV_RAM_SIZE=65536 496CONFIG_BLK_DEV_RAM_SIZE=65536
473CONFIG_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
476CONFIG_MISC_DEVICES=y 500CONFIG_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
506CONFIG_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
519CONFIG_SCSI_SAS_ATTRS=m 545CONFIG_SCSI_SAS_ATTRS=m
520CONFIG_SCSI_SAS_LIBSAS=m 546CONFIG_SCSI_SAS_LIBSAS=m
547CONFIG_SCSI_SAS_HOST_SMP=y
521CONFIG_SCSI_SAS_LIBSAS_DEBUG=y 548CONFIG_SCSI_SAS_LIBSAS_DEBUG=y
522CONFIG_SCSI_SRP_ATTRS=m 549CONFIG_SCSI_SRP_ATTRS=m
523CONFIG_SCSI_LOWLEVEL=y 550CONFIG_SCSI_LOWLEVEL=y
@@ -543,6 +570,7 @@ CONFIG_SCSI_LOWLEVEL=y
543CONFIG_SCSI_IBMVSCSI=m 570CONFIG_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
590CONFIG_TUN=m 618CONFIG_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
595CONFIG_NET_ETHERNET=y 622CONFIG_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
659CONFIG_TR=y 691CONFIG_TR=y
660CONFIG_IBMOL=y 692CONFIG_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
684CONFIG_SLHC=m 716CONFIG_SLHC=m
685# CONFIG_NET_FC is not set 717# CONFIG_NET_FC is not set
686# CONFIG_SHAPER is not set
687CONFIG_NETCONSOLE=y 718CONFIG_NETCONSOLE=y
688# CONFIG_NETCONSOLE_DYNAMIC is not set 719# CONFIG_NETCONSOLE_DYNAMIC is not set
689CONFIG_NETPOLL=y 720CONFIG_NETPOLL=y
@@ -734,6 +765,7 @@ CONFIG_VT_CONSOLE=y
734CONFIG_HW_CONSOLE=y 765CONFIG_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
869CONFIG_GFS2_FS_LOCKING_NOLOCK=m 904CONFIG_GFS2_FS_LOCKING_NOLOCK=m
870CONFIG_GFS2_FS_LOCKING_DLM=m 905CONFIG_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 907CONFIG_DNOTIFY=y
873# CONFIG_ROMFS_FS is not set
874CONFIG_INOTIFY=y 908CONFIG_INOTIFY=y
875CONFIG_INOTIFY_USER=y 909CONFIG_INOTIFY_USER=y
876# CONFIG_QUOTA is not set 910# CONFIG_QUOTA is not set
877CONFIG_DNOTIFY=y
878CONFIG_AUTOFS_FS=m 911CONFIG_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
925CONFIG_CRAMFS=y 958CONFIG_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
931CONFIG_NETWORK_FILESYSTEMS=y 966CONFIG_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
1010CONFIG_DLM=m 1045CONFIG_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
1031CONFIG_HAS_IOMEM=y 1065CONFIG_HAS_IOMEM=y
1032CONFIG_HAS_IOPORT=y 1066CONFIG_HAS_IOPORT=y
1033CONFIG_HAS_DMA=y 1067CONFIG_HAS_DMA=y
1034CONFIG_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
1073CONFIG_DEBUG_STACKOVERFLOW=y 1104CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1089,6 +1120,7 @@ CONFIG_CRYPTO=y
1089CONFIG_CRYPTO_ALGAPI=y 1120CONFIG_CRYPTO_ALGAPI=y
1090CONFIG_CRYPTO_AEAD=m 1121CONFIG_CRYPTO_AEAD=m
1091CONFIG_CRYPTO_BLKCIPHER=y 1122CONFIG_CRYPTO_BLKCIPHER=y
1123# CONFIG_CRYPTO_SEQIV is not set
1092CONFIG_CRYPTO_HASH=y 1124CONFIG_CRYPTO_HASH=y
1093CONFIG_CRYPTO_MANAGER=y 1125CONFIG_CRYPTO_MANAGER=y
1094CONFIG_CRYPTO_HMAC=y 1126CONFIG_CRYPTO_HMAC=y
@@ -1107,6 +1139,9 @@ CONFIG_CRYPTO_CBC=y
1107CONFIG_CRYPTO_PCBC=m 1139CONFIG_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
1111CONFIG_CRYPTO_DES=y 1146CONFIG_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
1122CONFIG_CRYPTO_KHAZAD=m 1157CONFIG_CRYPTO_KHAZAD=m
1123CONFIG_CRYPTO_ANUBIS=m 1158CONFIG_CRYPTO_ANUBIS=m
1124CONFIG_CRYPTO_SEED=m 1159CONFIG_CRYPTO_SEED=m
1160# CONFIG_CRYPTO_SALSA20 is not set
1125CONFIG_CRYPTO_DEFLATE=m 1161CONFIG_CRYPTO_DEFLATE=m
1126CONFIG_CRYPTO_MICHAEL_MIC=m 1162CONFIG_CRYPTO_MICHAEL_MIC=m
1127CONFIG_CRYPTO_CRC32C=m 1163CONFIG_CRYPTO_CRC32C=m
1128# CONFIG_CRYPTO_CAMELLIA is not set 1164# CONFIG_CRYPTO_CAMELLIA is not set
1129CONFIG_CRYPTO_TEST=m 1165CONFIG_CRYPTO_TEST=m
1130CONFIG_CRYPTO_AUTHENC=m 1166CONFIG_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
29CONFIG_GENERIC_TIME_VSYSCALL=y 29CONFIG_GENERIC_TIME_VSYSCALL=y
30CONFIG_GENERIC_CLOCKEVENTS=y 30CONFIG_GENERIC_CLOCKEVENTS=y
31CONFIG_GENERIC_HARDIRQS=y 31CONFIG_GENERIC_HARDIRQS=y
32# CONFIG_HAVE_SETUP_PER_CPU_AREA is not set
32CONFIG_IRQ_PER_CPU=y 33CONFIG_IRQ_PER_CPU=y
33CONFIG_RWSEM_XCHGADD_ALGORITHM=y 34CONFIG_RWSEM_XCHGADD_ALGORITHM=y
34CONFIG_ARCH_HAS_ILOG2_U32=y 35CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -49,6 +50,9 @@ CONFIG_AUDIT_ARCH=y
49CONFIG_GENERIC_BUG=y 50CONFIG_GENERIC_BUG=y
50CONFIG_SYS_SUPPORTS_APM_EMULATION=y 51CONFIG_SYS_SUPPORTS_APM_EMULATION=y
51# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
53CONFIG_HIBERNATE_32=y
54CONFIG_ARCH_HIBERNATION_POSSIBLE=y
55CONFIG_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
54CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 58CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
@@ -67,18 +71,22 @@ CONFIG_SYSVIPC_SYSCTL=y
67CONFIG_POSIX_MQUEUE=y 71CONFIG_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
73CONFIG_IKCONFIG=y 75CONFIG_IKCONFIG=y
74CONFIG_IKCONFIG_PROC=y 76CONFIG_IKCONFIG_PROC=y
75CONFIG_LOG_BUF_SHIFT=14 77CONFIG_LOG_BUF_SHIFT=14
76# CONFIG_CGROUPS is not set 78# CONFIG_CGROUPS is not set
77CONFIG_FAIR_GROUP_SCHED=y 79# CONFIG_GROUP_SCHED is not set
78CONFIG_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
80CONFIG_SYSFS_DEPRECATED=y 82CONFIG_SYSFS_DEPRECATED=y
83CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 84# CONFIG_RELAY is not set
85CONFIG_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
82CONFIG_BLK_DEV_INITRD=y 90CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 91CONFIG_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
92CONFIG_PRINTK=y 100CONFIG_PRINTK=y
93CONFIG_BUG=y 101CONFIG_BUG=y
94CONFIG_ELF_CORE=y 102CONFIG_ELF_CORE=y
103# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 104CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 105CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 106CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 107CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 108CONFIG_SIGNALFD=y
109CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 110CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 111CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 112CONFIG_VM_EVENT_COUNTERS=y
@@ -104,6 +114,15 @@ CONFIG_SLUB_DEBUG=y
104# CONFIG_SLAB is not set 114# CONFIG_SLAB is not set
105CONFIG_SLUB=y 115CONFIG_SLUB=y
106# CONFIG_SLOB is not set 116# CONFIG_SLOB is not set
117CONFIG_PROFILING=y
118# CONFIG_MARKERS is not set
119CONFIG_OPROFILE=y
120CONFIG_HAVE_OPROFILE=y
121# CONFIG_KPROBES is not set
122CONFIG_HAVE_KPROBES=y
123CONFIG_HAVE_KRETPROBES=y
124CONFIG_PROC_PAGE_MONITOR=y
125CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 126CONFIG_RT_MUTEXES=y
108# CONFIG_TINY_SHMEM is not set 127# CONFIG_TINY_SHMEM is not set
109CONFIG_BASE_SMALL=0 128CONFIG_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
133CONFIG_DEFAULT_IOSCHED="anticipatory" 152CONFIG_DEFAULT_IOSCHED="anticipatory"
153CONFIG_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
142CONFIG_CLASSIC32=y 162CONFIG_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
148CONFIG_PPC_PMAC=y 168CONFIG_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
153CONFIG_PPC_NATIVE=y 173CONFIG_PPC_NATIVE=y
174# CONFIG_IPIC is not set
154CONFIG_MPIC=y 175CONFIG_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
181CONFIG_CPU_FREQ_PMAC=y 202CONFIG_CPU_FREQ_PMAC=y
182CONFIG_PPC601_SYNC_FIX=y 203CONFIG_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
199CONFIG_HZ=250 219CONFIG_HZ=250
220# CONFIG_SCHED_HRTICK is not set
200CONFIG_PREEMPT_NONE=y 221CONFIG_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
203CONFIG_BINFMT_ELF=y 224CONFIG_BINFMT_ELF=y
204CONFIG_BINFMT_MISC=m 225CONFIG_BINFMT_MISC=m
226# CONFIG_IOMMU_HELPER is not set
205CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
228CONFIG_ARCH_HAS_WALK_MEMORY=y
229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
206# CONFIG_KEXEC is not set 230# CONFIG_KEXEC is not set
207CONFIG_ARCH_FLATMEM_ENABLE=y 231CONFIG_ARCH_FLATMEM_ENABLE=y
208CONFIG_ARCH_POPULATES_NODE_MAP=y 232CONFIG_ARCH_POPULATES_NODE_MAP=y
@@ -221,19 +245,19 @@ CONFIG_BOUNCE=y
221CONFIG_VIRT_TO_BUS=y 245CONFIG_VIRT_TO_BUS=y
222CONFIG_PROC_DEVICETREE=y 246CONFIG_PROC_DEVICETREE=y
223# CONFIG_CMDLINE_BOOL is not set 247# CONFIG_CMDLINE_BOOL is not set
248CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
224CONFIG_PM=y 249CONFIG_PM=y
225# CONFIG_PM_LEGACY is not set 250# CONFIG_PM_LEGACY is not set
226CONFIG_PM_DEBUG=y 251CONFIG_PM_DEBUG=y
227# CONFIG_PM_VERBOSE is not set 252# CONFIG_PM_VERBOSE is not set
253CONFIG_CAN_PM_TRACE=y
228CONFIG_PM_SLEEP=y 254CONFIG_PM_SLEEP=y
229CONFIG_SUSPEND_UP_POSSIBLE=y
230CONFIG_SUSPEND=y 255CONFIG_SUSPEND=y
231CONFIG_HIBERNATION_UP_POSSIBLE=y 256CONFIG_SUSPEND_FREEZER=y
232CONFIG_HIBERNATION=y 257CONFIG_HIBERNATION=y
233CONFIG_PM_STD_PARTITION="" 258CONFIG_PM_STD_PARTITION=""
234CONFIG_APM_EMULATION=y 259CONFIG_APM_EMULATION=y
235CONFIG_SECCOMP=y 260CONFIG_SECCOMP=y
236# CONFIG_WANT_DEVICE_TREE is not set
237CONFIG_ISA_DMA_API=y 261CONFIG_ISA_DMA_API=y
238 262
239# 263#
@@ -300,6 +324,7 @@ CONFIG_XFRM=y
300CONFIG_XFRM_USER=y 324CONFIG_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
303CONFIG_NET_KEY=y 328CONFIG_NET_KEY=y
304# CONFIG_NET_KEY_MIGRATE is not set 329# CONFIG_NET_KEY_MIGRATE is not set
305CONFIG_INET=y 330CONFIG_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
335CONFIG_NETFILTER=y 360CONFIG_NETFILTER=y
336# CONFIG_NETFILTER_DEBUG is not set 361# CONFIG_NETFILTER_DEBUG is not set
362CONFIG_NETFILTER_ADVANCED=y
337 363
338# 364#
339# Core Netfilter Configuration 365# Core Netfilter Configuration
340# 366#
341# CONFIG_NETFILTER_NETLINK is not set 367CONFIG_NETFILTER_NETLINK=m
342CONFIG_NF_CONNTRACK_ENABLED=m 368CONFIG_NETFILTER_NETLINK_QUEUE=m
369CONFIG_NETFILTER_NETLINK_LOG=m
343CONFIG_NF_CONNTRACK=m 370CONFIG_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
357CONFIG_NF_CONNTRACK_TFTP=m 384CONFIG_NF_CONNTRACK_TFTP=m
385CONFIG_NF_CT_NETLINK=m
358CONFIG_NETFILTER_XTABLES=m 386CONFIG_NETFILTER_XTABLES=m
359CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 387CONFIG_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
363CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 391CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
364CONFIG_NETFILTER_XT_TARGET_NFLOG=m 392CONFIG_NETFILTER_XT_TARGET_NFLOG=m
365CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 393CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
394CONFIG_NETFILTER_XT_TARGET_RATEEST=m
366CONFIG_NETFILTER_XT_TARGET_TRACE=m 395CONFIG_NETFILTER_XT_TARGET_TRACE=m
367CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 396CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
397CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
368CONFIG_NETFILTER_XT_MATCH_COMMENT=m 398CONFIG_NETFILTER_XT_MATCH_COMMENT=m
369# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set 399# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
370CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 400CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -374,14 +404,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
374CONFIG_NETFILTER_XT_MATCH_DSCP=m 404CONFIG_NETFILTER_XT_MATCH_DSCP=m
375CONFIG_NETFILTER_XT_MATCH_ESP=m 405CONFIG_NETFILTER_XT_MATCH_ESP=m
376CONFIG_NETFILTER_XT_MATCH_HELPER=m 406CONFIG_NETFILTER_XT_MATCH_HELPER=m
407CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
377CONFIG_NETFILTER_XT_MATCH_LENGTH=m 408CONFIG_NETFILTER_XT_MATCH_LENGTH=m
378CONFIG_NETFILTER_XT_MATCH_LIMIT=m 409CONFIG_NETFILTER_XT_MATCH_LIMIT=m
379CONFIG_NETFILTER_XT_MATCH_MAC=m 410CONFIG_NETFILTER_XT_MATCH_MAC=m
380CONFIG_NETFILTER_XT_MATCH_MARK=m 411CONFIG_NETFILTER_XT_MATCH_MARK=m
412CONFIG_NETFILTER_XT_MATCH_OWNER=m
381CONFIG_NETFILTER_XT_MATCH_POLICY=m 413CONFIG_NETFILTER_XT_MATCH_POLICY=m
382CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 414CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
383CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 415CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
384# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set 416# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
417CONFIG_NETFILTER_XT_MATCH_RATEEST=m
385CONFIG_NETFILTER_XT_MATCH_REALM=m 418CONFIG_NETFILTER_XT_MATCH_REALM=m
386CONFIG_NETFILTER_XT_MATCH_SCTP=m 419CONFIG_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
399CONFIG_NF_CONNTRACK_PROC_COMPAT=y 432CONFIG_NF_CONNTRACK_PROC_COMPAT=y
400# CONFIG_IP_NF_QUEUE is not set 433# CONFIG_IP_NF_QUEUE is not set
401CONFIG_IP_NF_IPTABLES=m 434CONFIG_IP_NF_IPTABLES=m
402CONFIG_IP_NF_MATCH_IPRANGE=m
403CONFIG_IP_NF_MATCH_TOS=m
404CONFIG_IP_NF_MATCH_RECENT=m 435CONFIG_IP_NF_MATCH_RECENT=m
405CONFIG_IP_NF_MATCH_ECN=m 436CONFIG_IP_NF_MATCH_ECN=m
406CONFIG_IP_NF_MATCH_AH=m 437CONFIG_IP_NF_MATCH_AH=m
407CONFIG_IP_NF_MATCH_TTL=m 438CONFIG_IP_NF_MATCH_TTL=m
408CONFIG_IP_NF_MATCH_OWNER=m
409CONFIG_IP_NF_MATCH_ADDRTYPE=m 439CONFIG_IP_NF_MATCH_ADDRTYPE=m
410CONFIG_IP_NF_FILTER=m 440CONFIG_IP_NF_FILTER=m
411CONFIG_IP_NF_TARGET_REJECT=m 441CONFIG_IP_NF_TARGET_REJECT=m
@@ -416,7 +446,6 @@ CONFIG_NF_NAT_NEEDED=y
416CONFIG_IP_NF_TARGET_MASQUERADE=m 446CONFIG_IP_NF_TARGET_MASQUERADE=m
417CONFIG_IP_NF_TARGET_REDIRECT=m 447CONFIG_IP_NF_TARGET_REDIRECT=m
418CONFIG_IP_NF_TARGET_NETMAP=m 448CONFIG_IP_NF_TARGET_NETMAP=m
419CONFIG_IP_NF_TARGET_SAME=m
420# CONFIG_NF_NAT_SNMP_BASIC is not set 449# CONFIG_NF_NAT_SNMP_BASIC is not set
421CONFIG_NF_NAT_FTP=m 450CONFIG_NF_NAT_FTP=m
422CONFIG_NF_NAT_IRC=m 451CONFIG_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
428CONFIG_IP_NF_MANGLE=m 457CONFIG_IP_NF_MANGLE=m
429CONFIG_IP_NF_TARGET_TOS=m
430CONFIG_IP_NF_TARGET_ECN=m 458CONFIG_IP_NF_TARGET_ECN=m
431CONFIG_IP_NF_TARGET_TTL=m 459CONFIG_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
444CONFIG_IP_DCCP_CCID2=m 472CONFIG_IP_DCCP_CCID2=m
445# CONFIG_IP_DCCP_CCID2_DEBUG is not set 473# CONFIG_IP_DCCP_CCID2_DEBUG is not set
446CONFIG_IP_DCCP_CCID3=m 474CONFIG_IP_DCCP_CCID3=m
447CONFIG_IP_DCCP_TFRC_LIB=m
448# CONFIG_IP_DCCP_CCID3_DEBUG is not set 475# CONFIG_IP_DCCP_CCID3_DEBUG is not set
449CONFIG_IP_DCCP_CCID3_RTO=100 476CONFIG_IP_DCCP_CCID3_RTO=100
477CONFIG_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
477CONFIG_IRDA=m 506CONFIG_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
563CONFIG_NL80211=y 583CONFIG_NL80211=y
564CONFIG_WIRELESS_EXT=y 584CONFIG_WIRELESS_EXT=y
565CONFIG_MAC80211=m 585CONFIG_MAC80211=m
566CONFIG_MAC80211_RCSIMPLE=y 586
587#
588# Rate control algorithm selection
589#
590CONFIG_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#
601CONFIG_MAC80211_RC_DEFAULT="pid"
602CONFIG_MAC80211_RC_PID=y
603# CONFIG_MAC80211_RC_SIMPLE is not set
567CONFIG_MAC80211_LEDS=y 604CONFIG_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
569CONFIG_IEEE80211=m 607CONFIG_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
610CONFIG_BLK_DEV_RAM=y 648CONFIG_BLK_DEV_RAM=y
611CONFIG_BLK_DEV_RAM_COUNT=16 649CONFIG_BLK_DEV_RAM_COUNT=16
612CONFIG_BLK_DEV_RAM_SIZE=4096 650CONFIG_BLK_DEV_RAM_SIZE=4096
613CONFIG_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
616CONFIG_MISC_DEVICES=y 654CONFIG_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
660CONFIG_HAVE_IDE=y
621CONFIG_IDE=y 661CONFIG_IDE=y
622CONFIG_BLK_DEV_IDE=y 662CONFIG_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
628CONFIG_BLK_DEV_IDEDISK=y 668CONFIG_BLK_DEV_IDEDISK=y
@@ -630,6 +670,7 @@ CONFIG_BLK_DEV_IDEDISK=y
630CONFIG_BLK_DEV_IDECS=m 670CONFIG_BLK_DEV_IDECS=m
631# CONFIG_BLK_DEV_DELKIN is not set 671# CONFIG_BLK_DEV_DELKIN is not set
632CONFIG_BLK_DEV_IDECD=y 672CONFIG_BLK_DEV_IDECD=y
673CONFIG_BLK_DEV_IDECD_VERBOSE_ERRORS=y
633# CONFIG_BLK_DEV_IDETAPE is not set 674# CONFIG_BLK_DEV_IDETAPE is not set
634CONFIG_BLK_DEV_IDEFLOPPY=y 675CONFIG_BLK_DEV_IDEFLOPPY=y
635CONFIG_BLK_DEV_IDESCSI=y 676CONFIG_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
685CONFIG_BLK_DEV_IDEDMA_SFF=y
644 686
645# 687#
646# PCI IDE chipsets support 688# PCI IDE chipsets support
647# 689#
648CONFIG_BLK_DEV_IDEPCI=y 690CONFIG_BLK_DEV_IDEPCI=y
649CONFIG_IDEPCI_SHARE_IRQ=y
650CONFIG_IDEPCI_PCIBUS_ORDER=y 691CONFIG_IDEPCI_PCIBUS_ORDER=y
651# CONFIG_BLK_DEV_OFFBOARD is not set 692# CONFIG_BLK_DEV_OFFBOARD is not set
652CONFIG_BLK_DEV_GENERIC=y 693CONFIG_BLK_DEV_GENERIC=y
@@ -680,7 +721,6 @@ CONFIG_BLK_DEV_SL82C105=y
680CONFIG_BLK_DEV_IDE_PMAC=y 721CONFIG_BLK_DEV_IDE_PMAC=y
681CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 722CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
682CONFIG_BLK_DEV_IDEDMA_PMAC=y 723CONFIG_BLK_DEV_IDEDMA_PMAC=y
683# CONFIG_IDE_ARM is not set
684CONFIG_BLK_DEV_IDEDMA=y 724CONFIG_BLK_DEV_IDEDMA=y
685CONFIG_IDE_ARCH_OBSOLETE_INIT=y 725CONFIG_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
758CONFIG_SCSI_SYM53C8XX_2=y 799CONFIG_SCSI_SYM53C8XX_2=y
759CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 800CONFIG_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
849CONFIG_TUN=m 890CONFIG_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
854CONFIG_NET_ETHERNET=y 894CONFIG_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
942CONFIG_PRISM54=m 987CONFIG_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
946CONFIG_P54_COMMON=m 993CONFIG_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
951CONFIG_B43=m 1000CONFIG_B43=m
952CONFIG_B43_PCI_AUTOSELECT=y 1001CONFIG_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
955CONFIG_B43_LEDS=y 1004CONFIG_B43_LEDS=y
956# CONFIG_B43_DEBUG is not set 1005# CONFIG_B43_DEBUG is not set
957CONFIG_B43_DMA=y
958CONFIG_B43_PIO=y
959CONFIG_B43_DMA_AND_PIO_MODE=y
960# CONFIG_B43_DMA_MODE is not set
961# CONFIG_B43_PIO_MODE is not set
962CONFIG_B43LEGACY=m 1006CONFIG_B43LEGACY=m
963CONFIG_B43LEGACY_PCI_AUTOSELECT=y 1007CONFIG_B43LEGACY_PCI_AUTOSELECT=y
964CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y 1008CONFIG_B43LEGACY_PCICORE_AUTOSELECT=y
1009CONFIG_B43LEGACY_LEDS=y
965CONFIG_B43LEGACY_DEBUG=y 1010CONFIG_B43LEGACY_DEBUG=y
966CONFIG_B43LEGACY_DMA=y 1011CONFIG_B43LEGACY_DMA=y
967CONFIG_B43LEGACY_PIO=y 1012CONFIG_B43LEGACY_PIO=y
968CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y 1013CONFIG_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
1006CONFIG_SLHC=y 1052CONFIG_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
1068CONFIG_HW_CONSOLE=y 1113CONFIG_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
1110CONFIG_DEVPORT=y 1157CONFIG_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
1180CONFIG_BATTERY_PMU=y 1225CONFIG_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
1188CONFIG_SSB=m 1234CONFIG_SSB=m
1189CONFIG_SSB_PCIHOST_POSSIBLE=y 1235CONFIG_SSB_PCIHOST_POSSIBLE=y
1190CONFIG_SSB_PCIHOST=y 1236CONFIG_SSB_PCIHOST=y
1237CONFIG_SSB_B43_PCI_BRIDGE=y
1191CONFIG_SSB_PCMCIAHOST_POSSIBLE=y 1238CONFIG_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
1482CONFIG_USB_ARCH_HAS_EHCI=y 1536CONFIG_USB_ARCH_HAS_EHCI=y
1483CONFIG_USB=y 1537CONFIG_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#
1499CONFIG_USB_EHCI_HCD=m 1554CONFIG_USB_EHCI_HCD=m
1500CONFIG_USB_EHCI_SPLIT_ISO=y
1501CONFIG_USB_EHCI_ROOT_HUB_TT=y 1555CONFIG_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
1504CONFIG_USB_OHCI_HCD=y 1559CONFIG_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#
1554CONFIG_USB_SERIAL=m 1605CONFIG_USB_SERIAL=m
1606CONFIG_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
1575CONFIG_USB_SERIAL_KEYSPAN_PDA=m 1628CONFIG_USB_SERIAL_KEYSPAN_PDA=m
1576CONFIG_USB_SERIAL_KEYSPAN=m 1629CONFIG_USB_SERIAL_KEYSPAN=m
1577CONFIG_USB_SERIAL_KEYSPAN_MPR=y 1630CONFIG_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
1606CONFIG_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
1641CONFIG_NEW_LEDS=y 1686CONFIG_NEW_LEDS=y
1642CONFIG_LEDS_CLASS=y 1687CONFIG_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 1729CONFIG_DNOTIFY=y
1684# CONFIG_ROMFS_FS is not set
1685CONFIG_INOTIFY=y 1730CONFIG_INOTIFY=y
1686CONFIG_INOTIFY_USER=y 1731CONFIG_INOTIFY_USER=y
1687# CONFIG_QUOTA is not set 1732# CONFIG_QUOTA is not set
1688CONFIG_DNOTIFY=y
1689# CONFIG_AUTOFS_FS is not set 1733# CONFIG_AUTOFS_FS is not set
1690CONFIG_AUTOFS4_FS=m 1734CONFIG_AUTOFS4_FS=m
1691CONFIG_FUSE_FS=m 1735CONFIG_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
1740CONFIG_NETWORK_FILESYSTEMS=y 1786CONFIG_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
1829CONFIG_NLS_UTF8=m 1875CONFIG_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
1850CONFIG_HAS_IOMEM=y 1895CONFIG_HAS_IOMEM=y
1851CONFIG_HAS_IOPORT=y 1896CONFIG_HAS_IOPORT=y
1852CONFIG_HAS_DMA=y 1897CONFIG_HAS_DMA=y
1853CONFIG_INSTRUMENTATION=y
1854CONFIG_PROFILING=y
1855CONFIG_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
1909CONFIG_CRYPTO=y 1950CONFIG_CRYPTO=y
1910CONFIG_CRYPTO_ALGAPI=y 1951CONFIG_CRYPTO_ALGAPI=y
1952CONFIG_CRYPTO_AEAD=y
1911CONFIG_CRYPTO_BLKCIPHER=y 1953CONFIG_CRYPTO_BLKCIPHER=y
1954# CONFIG_CRYPTO_SEQIV is not set
1912CONFIG_CRYPTO_HASH=y 1955CONFIG_CRYPTO_HASH=y
1913CONFIG_CRYPTO_MANAGER=y 1956CONFIG_CRYPTO_MANAGER=y
1914CONFIG_CRYPTO_HMAC=y 1957CONFIG_CRYPTO_HMAC=y
@@ -1927,6 +1970,9 @@ CONFIG_CRYPTO_CBC=y
1927CONFIG_CRYPTO_PCBC=m 1970CONFIG_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
1931CONFIG_CRYPTO_DES=y 1977CONFIG_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
1942CONFIG_CRYPTO_KHAZAD=m 1988CONFIG_CRYPTO_KHAZAD=m
1943CONFIG_CRYPTO_ANUBIS=m 1989CONFIG_CRYPTO_ANUBIS=m
1944# CONFIG_CRYPTO_SEED is not set 1990# CONFIG_CRYPTO_SEED is not set
1991# CONFIG_CRYPTO_SALSA20 is not set
1945CONFIG_CRYPTO_DEFLATE=m 1992CONFIG_CRYPTO_DEFLATE=m
1946CONFIG_CRYPTO_MICHAEL_MIC=m 1993CONFIG_CRYPTO_MICHAEL_MIC=m
1947CONFIG_CRYPTO_CRC32C=m 1994CONFIG_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 1997CONFIG_CRYPTO_AUTHENC=y
1998# CONFIG_CRYPTO_LZO is not set
1951CONFIG_CRYPTO_HW=y 1999CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -49,7 +50,9 @@ CONFIG_GENERIC_TBSYNC=y
49CONFIG_AUDIT_ARCH=y 50CONFIG_AUDIT_ARCH=y
50CONFIG_GENERIC_BUG=y 51CONFIG_GENERIC_BUG=y
51# CONFIG_DEFAULT_UIMAGE is not set 52# CONFIG_DEFAULT_UIMAGE is not set
52CONFIG_PPC64_SWSUSP=y 53CONFIG_HIBERNATE_64=y
54CONFIG_ARCH_HIBERNATION_POSSIBLE=y
55CONFIG_ARCH_SUSPEND_POSSIBLE=y
53# CONFIG_PPC_DCR_NATIVE is not set 56# CONFIG_PPC_DCR_NATIVE is not set
54CONFIG_PPC_DCR_MMIO=y 57CONFIG_PPC_DCR_MMIO=y
55CONFIG_PPC_DCR=y 58CONFIG_PPC_DCR=y
@@ -72,8 +75,6 @@ CONFIG_POSIX_MQUEUE=y
72CONFIG_TASKSTATS=y 75CONFIG_TASKSTATS=y
73CONFIG_TASK_DELAY_ACCT=y 76CONFIG_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
78CONFIG_IKCONFIG=y 79CONFIG_IKCONFIG=y
79CONFIG_IKCONFIG_PROC=y 80CONFIG_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
84CONFIG_CPUSETS=y 85CONFIG_CPUSETS=y
85CONFIG_FAIR_GROUP_SCHED=y 86# CONFIG_GROUP_SCHED is not set
86CONFIG_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
89CONFIG_SYSFS_DEPRECATED=y 91CONFIG_SYSFS_DEPRECATED=y
92CONFIG_SYSFS_DEPRECATED_V2=y
90CONFIG_PROC_PID_CPUSET=y 93CONFIG_PROC_PID_CPUSET=y
91CONFIG_RELAY=y 94CONFIG_RELAY=y
95CONFIG_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
92CONFIG_BLK_DEV_INITRD=y 100CONFIG_BLK_DEV_INITRD=y
93CONFIG_INITRAMFS_SOURCE="" 101CONFIG_INITRAMFS_SOURCE=""
94CONFIG_CC_OPTIMIZE_FOR_SIZE=y 102CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -102,11 +110,13 @@ CONFIG_HOTPLUG=y
102CONFIG_PRINTK=y 110CONFIG_PRINTK=y
103CONFIG_BUG=y 111CONFIG_BUG=y
104CONFIG_ELF_CORE=y 112CONFIG_ELF_CORE=y
113# CONFIG_COMPAT_BRK is not set
105CONFIG_BASE_FULL=y 114CONFIG_BASE_FULL=y
106CONFIG_FUTEX=y 115CONFIG_FUTEX=y
107CONFIG_ANON_INODES=y 116CONFIG_ANON_INODES=y
108CONFIG_EPOLL=y 117CONFIG_EPOLL=y
109CONFIG_SIGNALFD=y 118CONFIG_SIGNALFD=y
119CONFIG_TIMERFD=y
110CONFIG_EVENTFD=y 120CONFIG_EVENTFD=y
111CONFIG_SHMEM=y 121CONFIG_SHMEM=y
112CONFIG_VM_EVENT_COUNTERS=y 122CONFIG_VM_EVENT_COUNTERS=y
@@ -114,6 +124,15 @@ CONFIG_SLUB_DEBUG=y
114# CONFIG_SLAB is not set 124# CONFIG_SLAB is not set
115CONFIG_SLUB=y 125CONFIG_SLUB=y
116# CONFIG_SLOB is not set 126# CONFIG_SLOB is not set
127CONFIG_PROFILING=y
128# CONFIG_MARKERS is not set
129CONFIG_OPROFILE=y
130CONFIG_HAVE_OPROFILE=y
131# CONFIG_KPROBES is not set
132CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y
134CONFIG_PROC_PAGE_MONITOR=y
135CONFIG_SLABINFO=y
117CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
118# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
119CONFIG_BASE_SMALL=0 138CONFIG_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
143CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y
144 164
145# 165#
146# Platform support 166# Platform support
@@ -163,8 +183,8 @@ CONFIG_VIODASD=y
163CONFIG_VIOCD=m 183CONFIG_VIOCD=m
164CONFIG_VIOTAPE=m 184CONFIG_VIOTAPE=m
165CONFIG_VIOPATH=y 185CONFIG_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
168CONFIG_PPC_PMAC=y 188CONFIG_PPC_PMAC=y
169CONFIG_PPC_PMAC64=y 189CONFIG_PPC_PMAC64=y
170CONFIG_PPC_MAPLE=y 190CONFIG_PPC_MAPLE=y
@@ -176,7 +196,6 @@ CONFIG_PPC_PASEMI=y
176CONFIG_PPC_PASEMI_IOMMU=y 196CONFIG_PPC_PASEMI_IOMMU=y
177# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set 197# CONFIG_PPC_PASEMI_IOMMU_DMA_FORCE is not set
178CONFIG_PPC_PASEMI_MDIO=y 198CONFIG_PPC_PASEMI_MDIO=y
179CONFIG_ELECTRA_IDE=y
180CONFIG_PPC_CELLEB=y 199CONFIG_PPC_CELLEB=y
181# CONFIG_PPC_PS3 is not set 200# CONFIG_PPC_PS3 is not set
182CONFIG_PPC_CELL=y 201CONFIG_PPC_CELL=y
@@ -193,11 +212,13 @@ CONFIG_CBE_RAS=y
193CONFIG_CBE_THERM=m 212CONFIG_CBE_THERM=m
194CONFIG_CBE_CPUFREQ=m 213CONFIG_CBE_CPUFREQ=m
195CONFIG_CBE_CPUFREQ_PMI=m 214CONFIG_CBE_CPUFREQ_PMI=m
215CONFIG_OPROFILE_CELL=y
196# CONFIG_PQ2ADS is not set 216# CONFIG_PQ2ADS is not set
197CONFIG_PPC_NATIVE=y 217CONFIG_PPC_NATIVE=y
198CONFIG_UDBG_RTAS_CONSOLE=y 218CONFIG_UDBG_RTAS_CONSOLE=y
199CONFIG_PPC_UDBG_BEAT=y 219CONFIG_PPC_UDBG_BEAT=y
200CONFIG_XICS=y 220CONFIG_XICS=y
221# CONFIG_IPIC is not set
201CONFIG_MPIC=y 222CONFIG_MPIC=y
202# CONFIG_MPIC_WEIRD is not set 223# CONFIG_MPIC_WEIRD is not set
203CONFIG_PPC_I8259=y 224CONFIG_PPC_I8259=y
@@ -236,7 +257,6 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=y
236# 257#
237CONFIG_CPU_FREQ_PMAC64=y 258CONFIG_CPU_FREQ_PMAC64=y
238CONFIG_PPC_PASEMI_CPUFREQ=y 259CONFIG_PPC_PASEMI_CPUFREQ=y
239# CONFIG_CPM2 is not set
240CONFIG_AXON_RAM=m 260CONFIG_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
254CONFIG_HZ=250 274CONFIG_HZ=250
275# CONFIG_SCHED_HRTICK is not set
255CONFIG_PREEMPT_NONE=y 276CONFIG_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
259CONFIG_BINFMT_ELF=y 279CONFIG_BINFMT_ELF=y
280CONFIG_COMPAT_BINFMT_ELF=y
260CONFIG_BINFMT_MISC=m 281CONFIG_BINFMT_MISC=m
261CONFIG_FORCE_MAX_ZONEORDER=13 282CONFIG_FORCE_MAX_ZONEORDER=13
262CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 283CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
263CONFIG_IOMMU_VMERGE=y 284CONFIG_IOMMU_VMERGE=y
285CONFIG_IOMMU_HELPER=y
264CONFIG_HOTPLUG_CPU=y 286CONFIG_HOTPLUG_CPU=y
265CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 287CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
288CONFIG_ARCH_HAS_WALK_MEMORY=y
289CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
266CONFIG_KEXEC=y 290CONFIG_KEXEC=y
267# CONFIG_CRASH_DUMP is not set 291# CONFIG_CRASH_DUMP is not set
268CONFIG_IRQ_ALL_CPUS=y 292CONFIG_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
295CONFIG_PROC_DEVICETREE=y 319CONFIG_PROC_DEVICETREE=y
296# CONFIG_CMDLINE_BOOL is not set 320# CONFIG_CMDLINE_BOOL is not set
321CONFIG_ARCH_WANTS_FREEZER_CONTROL=y
297# CONFIG_PM is not set 322# CONFIG_PM is not set
298CONFIG_SUSPEND_SMP_POSSIBLE=y
299CONFIG_HIBERNATION_SMP_POSSIBLE=y
300CONFIG_SECCOMP=y 323CONFIG_SECCOMP=y
301# CONFIG_WANT_DEVICE_TREE is not set
302CONFIG_ISA_DMA_API=y 324CONFIG_ISA_DMA_API=y
303 325
304# 326#
@@ -352,6 +374,7 @@ CONFIG_XFRM=y
352CONFIG_XFRM_USER=m 374CONFIG_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
355CONFIG_NET_KEY=m 378CONFIG_NET_KEY=m
356# CONFIG_NET_KEY_MIGRATE is not set 379# CONFIG_NET_KEY_MIGRATE is not set
357CONFIG_INET=y 380CONFIG_INET=y
@@ -375,7 +398,7 @@ CONFIG_INET_TUNNEL=y
375CONFIG_INET_XFRM_MODE_TRANSPORT=y 398CONFIG_INET_XFRM_MODE_TRANSPORT=y
376CONFIG_INET_XFRM_MODE_TUNNEL=y 399CONFIG_INET_XFRM_MODE_TUNNEL=y
377CONFIG_INET_XFRM_MODE_BEET=y 400CONFIG_INET_XFRM_MODE_BEET=y
378CONFIG_INET_LRO=m 401CONFIG_INET_LRO=y
379CONFIG_INET_DIAG=y 402CONFIG_INET_DIAG=y
380CONFIG_INET_TCP_DIAG=y 403CONFIG_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
390CONFIG_NETFILTER=y 413CONFIG_NETFILTER=y
391# CONFIG_NETFILTER_DEBUG is not set 414# CONFIG_NETFILTER_DEBUG is not set
415CONFIG_NETFILTER_ADVANCED=y
392 416
393# 417#
394# Core Netfilter Configuration 418# Core Netfilter Configuration
395# 419#
396CONFIG_NETFILTER_NETLINK=y 420CONFIG_NETFILTER_NETLINK=m
397CONFIG_NETFILTER_NETLINK_QUEUE=m 421CONFIG_NETFILTER_NETLINK_QUEUE=m
398CONFIG_NETFILTER_NETLINK_LOG=m 422CONFIG_NETFILTER_NETLINK_LOG=m
399CONFIG_NF_CONNTRACK_ENABLED=m
400CONFIG_NF_CONNTRACK=m 423CONFIG_NF_CONNTRACK=m
401CONFIG_NF_CT_ACCT=y 424CONFIG_NF_CT_ACCT=y
402CONFIG_NF_CONNTRACK_MARK=y 425CONFIG_NF_CONNTRACK_MARK=y
@@ -422,8 +445,10 @@ CONFIG_NETFILTER_XT_TARGET_MARK=m
422CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 445CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
423CONFIG_NETFILTER_XT_TARGET_NFLOG=m 446CONFIG_NETFILTER_XT_TARGET_NFLOG=m
424CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 447CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
448CONFIG_NETFILTER_XT_TARGET_RATEEST=m
425CONFIG_NETFILTER_XT_TARGET_TRACE=m 449CONFIG_NETFILTER_XT_TARGET_TRACE=m
426CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 450CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
451CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
427CONFIG_NETFILTER_XT_MATCH_COMMENT=m 452CONFIG_NETFILTER_XT_MATCH_COMMENT=m
428CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 453CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
429CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m 454CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
@@ -433,14 +458,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
433CONFIG_NETFILTER_XT_MATCH_DSCP=m 458CONFIG_NETFILTER_XT_MATCH_DSCP=m
434CONFIG_NETFILTER_XT_MATCH_ESP=m 459CONFIG_NETFILTER_XT_MATCH_ESP=m
435CONFIG_NETFILTER_XT_MATCH_HELPER=m 460CONFIG_NETFILTER_XT_MATCH_HELPER=m
461CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
436CONFIG_NETFILTER_XT_MATCH_LENGTH=m 462CONFIG_NETFILTER_XT_MATCH_LENGTH=m
437CONFIG_NETFILTER_XT_MATCH_LIMIT=m 463CONFIG_NETFILTER_XT_MATCH_LIMIT=m
438CONFIG_NETFILTER_XT_MATCH_MAC=m 464CONFIG_NETFILTER_XT_MATCH_MAC=m
439CONFIG_NETFILTER_XT_MATCH_MARK=m 465CONFIG_NETFILTER_XT_MATCH_MARK=m
466CONFIG_NETFILTER_XT_MATCH_OWNER=m
440CONFIG_NETFILTER_XT_MATCH_POLICY=m 467CONFIG_NETFILTER_XT_MATCH_POLICY=m
441CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 468CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
442CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 469CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
443CONFIG_NETFILTER_XT_MATCH_QUOTA=m 470CONFIG_NETFILTER_XT_MATCH_QUOTA=m
471CONFIG_NETFILTER_XT_MATCH_RATEEST=m
444CONFIG_NETFILTER_XT_MATCH_REALM=m 472CONFIG_NETFILTER_XT_MATCH_REALM=m
445CONFIG_NETFILTER_XT_MATCH_SCTP=m 473CONFIG_NETFILTER_XT_MATCH_SCTP=m
446CONFIG_NETFILTER_XT_MATCH_STATE=m 474CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -458,13 +486,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
458CONFIG_NF_CONNTRACK_PROC_COMPAT=y 486CONFIG_NF_CONNTRACK_PROC_COMPAT=y
459CONFIG_IP_NF_QUEUE=m 487CONFIG_IP_NF_QUEUE=m
460CONFIG_IP_NF_IPTABLES=m 488CONFIG_IP_NF_IPTABLES=m
461CONFIG_IP_NF_MATCH_IPRANGE=m
462CONFIG_IP_NF_MATCH_TOS=m
463CONFIG_IP_NF_MATCH_RECENT=m 489CONFIG_IP_NF_MATCH_RECENT=m
464CONFIG_IP_NF_MATCH_ECN=m 490CONFIG_IP_NF_MATCH_ECN=m
465CONFIG_IP_NF_MATCH_AH=m 491CONFIG_IP_NF_MATCH_AH=m
466CONFIG_IP_NF_MATCH_TTL=m 492CONFIG_IP_NF_MATCH_TTL=m
467CONFIG_IP_NF_MATCH_OWNER=m
468CONFIG_IP_NF_MATCH_ADDRTYPE=m 493CONFIG_IP_NF_MATCH_ADDRTYPE=m
469CONFIG_IP_NF_FILTER=m 494CONFIG_IP_NF_FILTER=m
470CONFIG_IP_NF_TARGET_REJECT=m 495CONFIG_IP_NF_TARGET_REJECT=m
@@ -475,7 +500,6 @@ CONFIG_NF_NAT_NEEDED=y
475CONFIG_IP_NF_TARGET_MASQUERADE=m 500CONFIG_IP_NF_TARGET_MASQUERADE=m
476CONFIG_IP_NF_TARGET_REDIRECT=m 501CONFIG_IP_NF_TARGET_REDIRECT=m
477CONFIG_IP_NF_TARGET_NETMAP=m 502CONFIG_IP_NF_TARGET_NETMAP=m
478CONFIG_IP_NF_TARGET_SAME=m
479CONFIG_NF_NAT_SNMP_BASIC=m 503CONFIG_NF_NAT_SNMP_BASIC=m
480CONFIG_NF_NAT_PROTO_GRE=m 504CONFIG_NF_NAT_PROTO_GRE=m
481CONFIG_NF_NAT_FTP=m 505CONFIG_NF_NAT_FTP=m
@@ -486,7 +510,6 @@ CONFIG_NF_NAT_PPTP=m
486CONFIG_NF_NAT_H323=m 510CONFIG_NF_NAT_H323=m
487CONFIG_NF_NAT_SIP=m 511CONFIG_NF_NAT_SIP=m
488CONFIG_IP_NF_MANGLE=m 512CONFIG_IP_NF_MANGLE=m
489CONFIG_IP_NF_TARGET_TOS=m
490CONFIG_IP_NF_TARGET_ECN=m 513CONFIG_IP_NF_TARGET_ECN=m
491CONFIG_IP_NF_TARGET_TTL=m 514CONFIG_IP_NF_TARGET_TTL=m
492CONFIG_IP_NF_TARGET_CLUSTERIP=m 515CONFIG_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
563CONFIG_BLK_DEV_RAM=y 587CONFIG_BLK_DEV_RAM=y
564CONFIG_BLK_DEV_RAM_COUNT=16 588CONFIG_BLK_DEV_RAM_COUNT=16
565CONFIG_BLK_DEV_RAM_SIZE=65536 589CONFIG_BLK_DEV_RAM_SIZE=65536
566CONFIG_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
569CONFIG_MISC_DEVICES=y 593CONFIG_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
599CONFIG_HAVE_IDE=y
574CONFIG_IDE=y 600CONFIG_IDE=y
575CONFIG_BLK_DEV_IDE=y 601CONFIG_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
581CONFIG_BLK_DEV_IDEDISK=y 607CONFIG_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
585CONFIG_BLK_DEV_IDECD=y 611CONFIG_BLK_DEV_IDECD=y
612CONFIG_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#
595CONFIG_IDE_GENERIC=y 622CONFIG_IDE_GENERIC=y
596# CONFIG_BLK_DEV_PLATFORM is not set 623# CONFIG_BLK_DEV_PLATFORM is not set
624CONFIG_BLK_DEV_IDEDMA_SFF=y
597 625
598# 626#
599# PCI IDE chipsets support 627# PCI IDE chipsets support
600# 628#
601CONFIG_BLK_DEV_IDEPCI=y 629CONFIG_BLK_DEV_IDEPCI=y
602CONFIG_IDEPCI_SHARE_IRQ=y
603CONFIG_IDEPCI_PCIBUS_ORDER=y 630CONFIG_IDEPCI_PCIBUS_ORDER=y
604# CONFIG_BLK_DEV_OFFBOARD is not set 631# CONFIG_BLK_DEV_OFFBOARD is not set
605CONFIG_BLK_DEV_GENERIC=y 632CONFIG_BLK_DEV_GENERIC=y
@@ -634,7 +661,6 @@ CONFIG_BLK_DEV_CELLEB=y
634CONFIG_BLK_DEV_IDE_PMAC=y 661CONFIG_BLK_DEV_IDE_PMAC=y
635CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y 662CONFIG_BLK_DEV_IDE_PMAC_ATA100FIRST=y
636CONFIG_BLK_DEV_IDEDMA_PMAC=y 663CONFIG_BLK_DEV_IDEDMA_PMAC=y
637# CONFIG_IDE_ARM is not set
638CONFIG_BLK_DEV_IDEDMA=y 664CONFIG_BLK_DEV_IDEDMA=y
639CONFIG_IDE_ARCH_OBSOLETE_INIT=y 665CONFIG_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
701CONFIG_SCSI_IBMVSCSI=y 727CONFIG_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
705CONFIG_SCSI_SYM53C8XX_2=y 732CONFIG_SCSI_SYM53C8XX_2=y
706CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 733CONFIG_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
777CONFIG_PATA_WINBOND=y 805CONFIG_PATA_WINBOND=y
778CONFIG_PATA_PLATFORM=y 806CONFIG_PATA_PLATFORM=y
807# CONFIG_PATA_OF_PLATFORM is not set
779CONFIG_PATA_SCC=y 808CONFIG_PATA_SCC=y
780CONFIG_MD=y 809CONFIG_MD=y
781CONFIG_BLK_DEV_MD=y 810CONFIG_BLK_DEV_MD=y
@@ -847,7 +876,6 @@ CONFIG_BONDING=m
847# CONFIG_EQUALIZER is not set 876# CONFIG_EQUALIZER is not set
848CONFIG_TUN=m 877CONFIG_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
852CONFIG_PHYLIB=y 880CONFIG_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
864CONFIG_BROADCOM_PHY=m 892CONFIG_BROADCOM_PHY=m
865# CONFIG_ICPLUS_PHY is not set 893# CONFIG_ICPLUS_PHY is not set
866CONFIG_FIXED_PHY=m 894# CONFIG_REALTEK_PHY is not set
867CONFIG_FIXED_MII_10_FDX=y 895# CONFIG_FIXED_PHY is not set
868CONFIG_FIXED_MII_100_FDX=y
869# CONFIG_FIXED_MII_1000_FDX is not set
870CONFIG_FIXED_MII_AMNT=1
871# CONFIG_MDIO_BITBANG is not set 896# CONFIG_MDIO_BITBANG is not set
872CONFIG_NET_ETHERNET=y 897CONFIG_NET_ETHERNET=y
873CONFIG_MII=y 898CONFIG_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
940CONFIG_PASEMI_MAC=y 969CONFIG_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
943CONFIG_TR=y 973CONFIG_TR=y
944CONFIG_IBMOL=y 974CONFIG_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
978CONFIG_SLHC=m 1008CONFIG_SLHC=m
979# CONFIG_NET_FC is not set 1009# CONFIG_NET_FC is not set
980# CONFIG_SHAPER is not set
981CONFIG_NETCONSOLE=y 1010CONFIG_NETCONSOLE=y
982# CONFIG_NETCONSOLE_DYNAMIC is not set 1011# CONFIG_NETCONSOLE_DYNAMIC is not set
983CONFIG_NETPOLL=y 1012CONFIG_NETPOLL=y
@@ -1056,6 +1085,7 @@ CONFIG_VT_CONSOLE=y
1056CONFIG_HW_CONSOLE=y 1085CONFIG_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
1106CONFIG_RAW_DRIVER=y 1137CONFIG_RAW_DRIVER=y
1107CONFIG_MAX_RAW_DEVS=256 1138CONFIG_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
1447CONFIG_USB_ARCH_HAS_EHCI=y 1485CONFIG_USB_ARCH_HAS_EHCI=y
1448CONFIG_USB=y 1486CONFIG_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#
1462CONFIG_USB_EHCI_HCD=y 1501CONFIG_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
1465CONFIG_USB_EHCI_TT_NEWSCHED=y 1503CONFIG_USB_EHCI_TT_NEWSCHED=y
1466CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 1504CONFIG_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
1468CONFIG_USB_OHCI_HCD=y 1507CONFIG_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
1555CONFIG_INFINIBAND=m 1583CONFIG_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
1562CONFIG_INFINIBAND_EHCA=m 1590CONFIG_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
1565CONFIG_INFINIBAND_IPOIB=m 1594CONFIG_INFINIBAND_IPOIB=m
1566# CONFIG_INFINIBAND_IPOIB_CM is not set 1595# CONFIG_INFINIBAND_IPOIB_CM is not set
1567CONFIG_INFINIBAND_IPOIB_DEBUG=y 1596CONFIG_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
1577CONFIG_EDAC_MM_EDAC=y 1606CONFIG_EDAC_MM_EDAC=y
1578CONFIG_EDAC_PASEMI=y 1607CONFIG_EDAC_PASEMI=y
1608# CONFIG_EDAC_CELL is not set
1579CONFIG_RTC_LIB=y 1609CONFIG_RTC_LIB=y
1580CONFIG_RTC_CLASS=y 1610CONFIG_RTC_CLASS=y
1611
1612#
1613# Conflicting RTC option has been selected, check GEN_RTC and RTC
1614#
1581CONFIG_RTC_HCTOSYS=y 1615CONFIG_RTC_HCTOSYS=y
1582CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 1616CONFIG_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 1705CONFIG_DNOTIFY=y
1669# CONFIG_ROMFS_FS is not set
1670CONFIG_INOTIFY=y 1706CONFIG_INOTIFY=y
1671CONFIG_INOTIFY_USER=y 1707CONFIG_INOTIFY_USER=y
1672# CONFIG_QUOTA is not set 1708# CONFIG_QUOTA is not set
1673CONFIG_DNOTIFY=y
1674# CONFIG_AUTOFS_FS is not set 1709# CONFIG_AUTOFS_FS is not set
1675CONFIG_AUTOFS4_FS=m 1710CONFIG_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
1720CONFIG_CRAMFS=y 1755CONFIG_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
1726CONFIG_NETWORK_FILESYSTEMS=y 1763CONFIG_NETWORK_FILESYSTEMS=y
@@ -1821,7 +1858,6 @@ CONFIG_NLS_KOI8_R=m
1821CONFIG_NLS_KOI8_U=m 1858CONFIG_NLS_KOI8_U=m
1822CONFIG_NLS_UTF8=m 1859CONFIG_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
1835CONFIG_LIBCRC32C=m 1871CONFIG_LIBCRC32C=m
1836CONFIG_ZLIB_INFLATE=y 1872CONFIG_ZLIB_INFLATE=y
1837CONFIG_ZLIB_DEFLATE=m 1873CONFIG_ZLIB_DEFLATE=m
1874CONFIG_LZO_COMPRESS=m
1875CONFIG_LZO_DECOMPRESS=m
1838CONFIG_TEXTSEARCH=y 1876CONFIG_TEXTSEARCH=y
1839CONFIG_TEXTSEARCH_KMP=m 1877CONFIG_TEXTSEARCH_KMP=m
1840CONFIG_TEXTSEARCH_BM=m 1878CONFIG_TEXTSEARCH_BM=m
@@ -1843,11 +1881,6 @@ CONFIG_PLIST=y
1843CONFIG_HAS_IOMEM=y 1881CONFIG_HAS_IOMEM=y
1844CONFIG_HAS_IOPORT=y 1882CONFIG_HAS_IOPORT=y
1845CONFIG_HAS_DMA=y 1883CONFIG_HAS_DMA=y
1846CONFIG_INSTRUMENTATION=y
1847CONFIG_PROFILING=y
1848CONFIG_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
1881CONFIG_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
1886CONFIG_DEBUG_STACKOVERFLOW=y 1920CONFIG_DEBUG_STACKOVERFLOW=y
@@ -1908,7 +1942,9 @@ CONFIG_ASYNC_MEMCPY=y
1908CONFIG_ASYNC_XOR=y 1942CONFIG_ASYNC_XOR=y
1909CONFIG_CRYPTO=y 1943CONFIG_CRYPTO=y
1910CONFIG_CRYPTO_ALGAPI=y 1944CONFIG_CRYPTO_ALGAPI=y
1945CONFIG_CRYPTO_AEAD=m
1911CONFIG_CRYPTO_BLKCIPHER=y 1946CONFIG_CRYPTO_BLKCIPHER=y
1947CONFIG_CRYPTO_SEQIV=m
1912CONFIG_CRYPTO_HASH=y 1948CONFIG_CRYPTO_HASH=y
1913CONFIG_CRYPTO_MANAGER=y 1949CONFIG_CRYPTO_MANAGER=y
1914CONFIG_CRYPTO_HMAC=y 1950CONFIG_CRYPTO_HMAC=y
@@ -1921,12 +1957,15 @@ CONFIG_CRYPTO_SHA256=m
1921CONFIG_CRYPTO_SHA512=m 1957CONFIG_CRYPTO_SHA512=m
1922CONFIG_CRYPTO_WP512=m 1958CONFIG_CRYPTO_WP512=m
1923CONFIG_CRYPTO_TGR192=m 1959CONFIG_CRYPTO_TGR192=m
1924# CONFIG_CRYPTO_GF128MUL is not set 1960CONFIG_CRYPTO_GF128MUL=m
1925CONFIG_CRYPTO_ECB=m 1961CONFIG_CRYPTO_ECB=m
1926CONFIG_CRYPTO_CBC=y 1962CONFIG_CRYPTO_CBC=y
1927CONFIG_CRYPTO_PCBC=m 1963CONFIG_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
1966CONFIG_CRYPTO_CTR=m
1967CONFIG_CRYPTO_GCM=m
1968CONFIG_CRYPTO_CCM=m
1930# CONFIG_CRYPTO_CRYPTD is not set 1969# CONFIG_CRYPTO_CRYPTD is not set
1931CONFIG_CRYPTO_DES=y 1970CONFIG_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
1942CONFIG_CRYPTO_KHAZAD=m 1981CONFIG_CRYPTO_KHAZAD=m
1943CONFIG_CRYPTO_ANUBIS=m 1982CONFIG_CRYPTO_ANUBIS=m
1944# CONFIG_CRYPTO_SEED is not set 1983# CONFIG_CRYPTO_SEED is not set
1984CONFIG_CRYPTO_SALSA20=m
1945CONFIG_CRYPTO_DEFLATE=m 1985CONFIG_CRYPTO_DEFLATE=m
1946CONFIG_CRYPTO_MICHAEL_MIC=m 1986CONFIG_CRYPTO_MICHAEL_MIC=m
1947CONFIG_CRYPTO_CRC32C=m 1987CONFIG_CRYPTO_CRC32C=m
1948# CONFIG_CRYPTO_CAMELLIA is not set 1988# CONFIG_CRYPTO_CAMELLIA is not set
1949CONFIG_CRYPTO_TEST=m 1989CONFIG_CRYPTO_TEST=m
1950# CONFIG_CRYPTO_AUTHENC is not set 1990CONFIG_CRYPTO_AUTHENC=m
1991CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_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
55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" 55CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
56 56
57# 57#
@@ -68,17 +68,21 @@ CONFIG_SYSVIPC_SYSCTL=y
68CONFIG_POSIX_MQUEUE=y 68CONFIG_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
75CONFIG_LOG_BUF_SHIFT=17 73CONFIG_LOG_BUF_SHIFT=17
76# CONFIG_CGROUPS is not set 74# CONFIG_CGROUPS is not set
77CONFIG_FAIR_GROUP_SCHED=y 75# CONFIG_GROUP_SCHED is not set
78CONFIG_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
80CONFIG_SYSFS_DEPRECATED=y 78CONFIG_SYSFS_DEPRECATED=y
79CONFIG_SYSFS_DEPRECATED_V2=y
81# CONFIG_RELAY is not set 80# CONFIG_RELAY is not set
81CONFIG_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
82CONFIG_BLK_DEV_INITRD=y 86CONFIG_BLK_DEV_INITRD=y
83CONFIG_INITRAMFS_SOURCE="" 87CONFIG_INITRAMFS_SOURCE=""
84CONFIG_CC_OPTIMIZE_FOR_SIZE=y 88CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -92,17 +96,27 @@ CONFIG_HOTPLUG=y
92CONFIG_PRINTK=y 96CONFIG_PRINTK=y
93CONFIG_BUG=y 97CONFIG_BUG=y
94CONFIG_ELF_CORE=y 98CONFIG_ELF_CORE=y
99# CONFIG_COMPAT_BRK is not set
95CONFIG_BASE_FULL=y 100CONFIG_BASE_FULL=y
96CONFIG_FUTEX=y 101CONFIG_FUTEX=y
97CONFIG_ANON_INODES=y 102CONFIG_ANON_INODES=y
98CONFIG_EPOLL=y 103CONFIG_EPOLL=y
99CONFIG_SIGNALFD=y 104CONFIG_SIGNALFD=y
105CONFIG_TIMERFD=y
100CONFIG_EVENTFD=y 106CONFIG_EVENTFD=y
101CONFIG_SHMEM=y 107CONFIG_SHMEM=y
102CONFIG_VM_EVENT_COUNTERS=y 108CONFIG_VM_EVENT_COUNTERS=y
103CONFIG_SLAB=y 109CONFIG_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
112CONFIG_PROFILING=y
113# CONFIG_MARKERS is not set
114CONFIG_OPROFILE=m
115CONFIG_HAVE_OPROFILE=y
116# CONFIG_KPROBES is not set
117CONFIG_HAVE_KPROBES=y
118CONFIG_HAVE_KRETPROBES=y
119CONFIG_PROC_PAGE_MONITOR=y
106CONFIG_SLABINFO=y 120CONFIG_SLABINFO=y
107CONFIG_RT_MUTEXES=y 121CONFIG_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
133CONFIG_DEFAULT_IOSCHED="anticipatory" 147CONFIG_DEFAULT_IOSCHED="anticipatory"
148CONFIG_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
173CONFIG_SPU_FS=y 188CONFIG_SPU_FS=y
174CONFIG_SPU_BASE=y 189CONFIG_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
201CONFIG_HZ=250 216CONFIG_HZ=250
217# CONFIG_SCHED_HRTICK is not set
202CONFIG_PREEMPT_NONE=y 218CONFIG_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
206CONFIG_BINFMT_ELF=y 221CONFIG_BINFMT_ELF=y
222CONFIG_COMPAT_BINFMT_ELF=y
207CONFIG_BINFMT_MISC=y 223CONFIG_BINFMT_MISC=y
208CONFIG_FORCE_MAX_ZONEORDER=13 224CONFIG_FORCE_MAX_ZONEORDER=13
209# CONFIG_IOMMU_VMERGE is not set 225# CONFIG_IOMMU_VMERGE is not set
226CONFIG_IOMMU_HELPER=y
210CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 227CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
228CONFIG_ARCH_HAS_WALK_MEMORY=y
229CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
211CONFIG_KEXEC=y 230CONFIG_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
245CONFIG_ISA_DMA_API=y 263CONFIG_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
275CONFIG_INET=y 294CONFIG_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
342CONFIG_BT=m 362CONFIG_BT=m
343CONFIG_BT_L2CAP=m 363CONFIG_BT_L2CAP=m
@@ -405,11 +425,13 @@ CONFIG_BLK_DEV_LOOP=y
405CONFIG_BLK_DEV_RAM=y 425CONFIG_BLK_DEV_RAM=y
406CONFIG_BLK_DEV_RAM_COUNT=16 426CONFIG_BLK_DEV_RAM_COUNT=16
407CONFIG_BLK_DEV_RAM_SIZE=65535 427CONFIG_BLK_DEV_RAM_SIZE=65535
408CONFIG_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
411CONFIG_MISC_DEVICES=y 431CONFIG_MISC_DEVICES=y
412# CONFIG_EEPROM_93CX6 is not set 432# CONFIG_EEPROM_93CX6 is not set
433# CONFIG_ENCLOSURE_SERVICES is not set
434CONFIG_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
474CONFIG_NETDEV_1000=y 496CONFIG_NETDEV_1000=y
497# CONFIG_E1000E_ENABLED is not set
475CONFIG_GELIC_NET=y 498CONFIG_GELIC_NET=y
499CONFIG_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
482CONFIG_WLAN_80211=y 506CONFIG_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
486CONFIG_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
769CONFIG_USB_ARCH_HAS_EHCI=y 796CONFIG_USB_ARCH_HAS_EHCI=y
770CONFIG_USB=m 797CONFIG_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#
784CONFIG_USB_EHCI_HCD=m 812CONFIG_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
788CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y 815CONFIG_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
790CONFIG_USB_OHCI_HCD=m 818CONFIG_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 921CONFIG_DNOTIFY=y
904# CONFIG_ROMFS_FS is not set
905CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
906CONFIG_INOTIFY_USER=y 923CONFIG_INOTIFY_USER=y
907CONFIG_QUOTA=y 924CONFIG_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
911CONFIG_QFMT_V2=y 928CONFIG_QFMT_V2=y
912CONFIG_QUOTACTL=y 929CONFIG_QUOTACTL=y
913CONFIG_DNOTIFY=y
914CONFIG_AUTOFS_FS=m 930CONFIG_AUTOFS_FS=m
915CONFIG_AUTOFS4_FS=m 931CONFIG_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
966CONFIG_NETWORK_FILESYSTEMS=y 984CONFIG_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
1048CONFIG_CRC32=y 1065CONFIG_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
1068CONFIG_LZO_COMPRESS=m
1069CONFIG_LZO_DECOMPRESS=m
1051CONFIG_PLIST=y 1070CONFIG_PLIST=y
1052CONFIG_HAS_IOMEM=y 1071CONFIG_HAS_IOMEM=y
1053CONFIG_HAS_IOPORT=y 1072CONFIG_HAS_IOPORT=y
1054CONFIG_HAS_DMA=y 1073CONFIG_HAS_DMA=y
1055CONFIG_INSTRUMENTATION=y
1056CONFIG_PROFILING=y
1057CONFIG_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
1088CONFIG_DEBUG_LIST=y 1102CONFIG_DEBUG_LIST=y
1089# CONFIG_DEBUG_SG is not set 1103# CONFIG_DEBUG_SG is not set
1090CONFIG_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
1095CONFIG_DEBUG_STACKOVERFLOW=y 1109CONFIG_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
1109CONFIG_CRYPTO=y 1123CONFIG_CRYPTO=y
1110CONFIG_CRYPTO_ALGAPI=y 1124CONFIG_CRYPTO_ALGAPI=y
1125CONFIG_CRYPTO_AEAD=m
1111CONFIG_CRYPTO_BLKCIPHER=y 1126CONFIG_CRYPTO_BLKCIPHER=y
1127CONFIG_CRYPTO_SEQIV=m
1112CONFIG_CRYPTO_MANAGER=y 1128CONFIG_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 1139CONFIG_CRYPTO_GF128MUL=m
1124CONFIG_CRYPTO_ECB=m 1140CONFIG_CRYPTO_ECB=m
1125CONFIG_CRYPTO_CBC=y 1141CONFIG_CRYPTO_CBC=y
1126CONFIG_CRYPTO_PCBC=m 1142CONFIG_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
1145CONFIG_CRYPTO_CTR=m
1146CONFIG_CRYPTO_GCM=m
1147CONFIG_CRYPTO_CCM=m
1129# CONFIG_CRYPTO_CRYPTD is not set 1148# CONFIG_CRYPTO_CRYPTD is not set
1130CONFIG_CRYPTO_DES=y 1149CONFIG_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
1162CONFIG_CRYPTO_SALSA20=m
1143# CONFIG_CRYPTO_DEFLATE is not set 1163# CONFIG_CRYPTO_DEFLATE is not set
1144CONFIG_CRYPTO_MICHAEL_MIC=m 1164CONFIG_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
1169CONFIG_CRYPTO_LZO=m
1149CONFIG_CRYPTO_HW=y 1170CONFIG_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#
6CONFIG_PPC64=y 6CONFIG_PPC64=y
7 7
@@ -28,6 +28,7 @@ CONFIG_GENERIC_TIME=y
28CONFIG_GENERIC_TIME_VSYSCALL=y 28CONFIG_GENERIC_TIME_VSYSCALL=y
29CONFIG_GENERIC_CLOCKEVENTS=y 29CONFIG_GENERIC_CLOCKEVENTS=y
30CONFIG_GENERIC_HARDIRQS=y 30CONFIG_GENERIC_HARDIRQS=y
31CONFIG_HAVE_SETUP_PER_CPU_AREA=y
31CONFIG_IRQ_PER_CPU=y 32CONFIG_IRQ_PER_CPU=y
32CONFIG_RWSEM_XCHGADD_ALGORITHM=y 33CONFIG_RWSEM_XCHGADD_ALGORITHM=y
33CONFIG_ARCH_HAS_ILOG2_U32=y 34CONFIG_ARCH_HAS_ILOG2_U32=y
@@ -71,8 +72,6 @@ CONFIG_TASKSTATS=y
71CONFIG_TASK_DELAY_ACCT=y 72CONFIG_TASK_DELAY_ACCT=y
72CONFIG_TASK_XACCT=y 73CONFIG_TASK_XACCT=y
73CONFIG_TASK_IO_ACCOUNTING=y 74CONFIG_TASK_IO_ACCOUNTING=y
74# CONFIG_USER_NS is not set
75# CONFIG_PID_NS is not set
76CONFIG_AUDIT=y 75CONFIG_AUDIT=y
77CONFIG_AUDITSYSCALL=y 76CONFIG_AUDITSYSCALL=y
78CONFIG_AUDIT_TREE=y 77CONFIG_AUDIT_TREE=y
@@ -83,13 +82,20 @@ CONFIG_CGROUPS=y
83# CONFIG_CGROUP_DEBUG is not set 82# CONFIG_CGROUP_DEBUG is not set
84CONFIG_CGROUP_NS=y 83CONFIG_CGROUP_NS=y
85CONFIG_CPUSETS=y 84CONFIG_CPUSETS=y
86CONFIG_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
88CONFIG_FAIR_CGROUP_SCHED=y 87# CONFIG_CGROUP_SCHED is not set
89CONFIG_CGROUP_CPUACCT=y 88CONFIG_CGROUP_CPUACCT=y
89# CONFIG_RESOURCE_COUNTERS is not set
90CONFIG_SYSFS_DEPRECATED=y 90CONFIG_SYSFS_DEPRECATED=y
91CONFIG_SYSFS_DEPRECATED_V2=y
91CONFIG_PROC_PID_CPUSET=y 92CONFIG_PROC_PID_CPUSET=y
92# CONFIG_RELAY is not set 93# CONFIG_RELAY is not set
94CONFIG_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
93CONFIG_BLK_DEV_INITRD=y 99CONFIG_BLK_DEV_INITRD=y
94CONFIG_INITRAMFS_SOURCE="" 100CONFIG_INITRAMFS_SOURCE=""
95CONFIG_CC_OPTIMIZE_FOR_SIZE=y 101CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -103,11 +109,13 @@ CONFIG_HOTPLUG=y
103CONFIG_PRINTK=y 109CONFIG_PRINTK=y
104CONFIG_BUG=y 110CONFIG_BUG=y
105CONFIG_ELF_CORE=y 111CONFIG_ELF_CORE=y
112# CONFIG_COMPAT_BRK is not set
106CONFIG_BASE_FULL=y 113CONFIG_BASE_FULL=y
107CONFIG_FUTEX=y 114CONFIG_FUTEX=y
108CONFIG_ANON_INODES=y 115CONFIG_ANON_INODES=y
109CONFIG_EPOLL=y 116CONFIG_EPOLL=y
110CONFIG_SIGNALFD=y 117CONFIG_SIGNALFD=y
118CONFIG_TIMERFD=y
111CONFIG_EVENTFD=y 119CONFIG_EVENTFD=y
112CONFIG_SHMEM=y 120CONFIG_SHMEM=y
113CONFIG_VM_EVENT_COUNTERS=y 121CONFIG_VM_EVENT_COUNTERS=y
@@ -115,6 +123,16 @@ CONFIG_SLUB_DEBUG=y
115# CONFIG_SLAB is not set 123# CONFIG_SLAB is not set
116CONFIG_SLUB=y 124CONFIG_SLUB=y
117# CONFIG_SLOB is not set 125# CONFIG_SLOB is not set
126CONFIG_PROFILING=y
127CONFIG_MARKERS=y
128CONFIG_OPROFILE=y
129CONFIG_HAVE_OPROFILE=y
130CONFIG_KPROBES=y
131CONFIG_KRETPROBES=y
132CONFIG_HAVE_KPROBES=y
133CONFIG_HAVE_KRETPROBES=y
134CONFIG_PROC_PAGE_MONITOR=y
135CONFIG_SLABINFO=y
118CONFIG_RT_MUTEXES=y 136CONFIG_RT_MUTEXES=y
119# CONFIG_TINY_SHMEM is not set 137# CONFIG_TINY_SHMEM is not set
120CONFIG_BASE_SMALL=0 138CONFIG_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
144CONFIG_DEFAULT_IOSCHED="anticipatory" 162CONFIG_DEFAULT_IOSCHED="anticipatory"
163CONFIG_CLASSIC_RCU=y
145 164
146# 165#
147# Platform support 166# Platform support
@@ -156,8 +175,8 @@ CONFIG_EEH=y
156CONFIG_SCANLOG=m 175CONFIG_SCANLOG=m
157CONFIG_LPARCFG=y 176CONFIG_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
170CONFIG_PPC_NATIVE=y 189CONFIG_PPC_NATIVE=y
171# CONFIG_UDBG_RTAS_CONSOLE is not set 190# CONFIG_UDBG_RTAS_CONSOLE is not set
172CONFIG_XICS=y 191CONFIG_XICS=y
192# CONFIG_IPIC is not set
173CONFIG_MPIC=y 193CONFIG_MPIC=y
174# CONFIG_MPIC_WEIRD is not set 194# CONFIG_MPIC_WEIRD is not set
175CONFIG_PPC_I8259=y 195CONFIG_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
203CONFIG_HZ=250 222CONFIG_HZ=250
223# CONFIG_SCHED_HRTICK is not set
204CONFIG_PREEMPT_NONE=y 224CONFIG_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
208CONFIG_BINFMT_ELF=y 227CONFIG_BINFMT_ELF=y
228CONFIG_COMPAT_BINFMT_ELF=y
209CONFIG_BINFMT_MISC=m 229CONFIG_BINFMT_MISC=m
210CONFIG_FORCE_MAX_ZONEORDER=13 230CONFIG_FORCE_MAX_ZONEORDER=13
211CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y 231CONFIG_HUGETLB_PAGE_SIZE_VARIABLE=y
212CONFIG_IOMMU_VMERGE=y 232CONFIG_IOMMU_VMERGE=y
233CONFIG_IOMMU_HELPER=y
213CONFIG_HOTPLUG_CPU=y 234CONFIG_HOTPLUG_CPU=y
214CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y 235CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
236CONFIG_ARCH_HAS_WALK_MEMORY=y
237CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
215CONFIG_KEXEC=y 238CONFIG_KEXEC=y
216# CONFIG_CRASH_DUMP is not set 239# CONFIG_CRASH_DUMP is not set
217CONFIG_IRQ_ALL_CPUS=y 240CONFIG_IRQ_ALL_CPUS=y
@@ -245,9 +268,7 @@ CONFIG_SCHED_SMT=y
245CONFIG_PROC_DEVICETREE=y 268CONFIG_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
248CONFIG_SUSPEND_SMP_POSSIBLE=y
249CONFIG_SECCOMP=y 271CONFIG_SECCOMP=y
250# CONFIG_WANT_DEVICE_TREE is not set
251CONFIG_ISA_DMA_API=y 272CONFIG_ISA_DMA_API=y
252 273
253# 274#
@@ -288,6 +309,7 @@ CONFIG_XFRM=y
288CONFIG_XFRM_USER=m 309CONFIG_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
291CONFIG_NET_KEY=m 313CONFIG_NET_KEY=m
292# CONFIG_NET_KEY_MIGRATE is not set 314# CONFIG_NET_KEY_MIGRATE is not set
293CONFIG_INET=y 315CONFIG_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
323CONFIG_NETFILTER=y 345CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set 346# CONFIG_NETFILTER_DEBUG is not set
347CONFIG_NETFILTER_ADVANCED=y
325 348
326# 349#
327# Core Netfilter Configuration 350# Core Netfilter Configuration
328# 351#
329CONFIG_NETFILTER_NETLINK=y 352CONFIG_NETFILTER_NETLINK=m
330CONFIG_NETFILTER_NETLINK_QUEUE=m 353CONFIG_NETFILTER_NETLINK_QUEUE=m
331CONFIG_NETFILTER_NETLINK_LOG=m 354CONFIG_NETFILTER_NETLINK_LOG=m
332CONFIG_NF_CONNTRACK_ENABLED=m
333CONFIG_NF_CONNTRACK=m 355CONFIG_NF_CONNTRACK=m
334CONFIG_NF_CT_ACCT=y 356CONFIG_NF_CT_ACCT=y
335CONFIG_NF_CONNTRACK_MARK=y 357CONFIG_NF_CONNTRACK_MARK=y
@@ -351,6 +373,7 @@ CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
351CONFIG_NETFILTER_XT_TARGET_MARK=m 373CONFIG_NETFILTER_XT_TARGET_MARK=m
352CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 374CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
353CONFIG_NETFILTER_XT_TARGET_NFLOG=m 375CONFIG_NETFILTER_XT_TARGET_NFLOG=m
376CONFIG_NETFILTER_XT_TARGET_RATEEST=m
354CONFIG_NETFILTER_XT_TARGET_TCPMSS=m 377CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
355CONFIG_NETFILTER_XT_MATCH_COMMENT=m 378CONFIG_NETFILTER_XT_MATCH_COMMENT=m
356CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 379CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
@@ -361,14 +384,17 @@ CONFIG_NETFILTER_XT_MATCH_DCCP=m
361CONFIG_NETFILTER_XT_MATCH_DSCP=m 384CONFIG_NETFILTER_XT_MATCH_DSCP=m
362CONFIG_NETFILTER_XT_MATCH_ESP=m 385CONFIG_NETFILTER_XT_MATCH_ESP=m
363CONFIG_NETFILTER_XT_MATCH_HELPER=m 386CONFIG_NETFILTER_XT_MATCH_HELPER=m
387CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
364CONFIG_NETFILTER_XT_MATCH_LENGTH=m 388CONFIG_NETFILTER_XT_MATCH_LENGTH=m
365CONFIG_NETFILTER_XT_MATCH_LIMIT=m 389CONFIG_NETFILTER_XT_MATCH_LIMIT=m
366CONFIG_NETFILTER_XT_MATCH_MAC=m 390CONFIG_NETFILTER_XT_MATCH_MAC=m
367CONFIG_NETFILTER_XT_MATCH_MARK=m 391CONFIG_NETFILTER_XT_MATCH_MARK=m
392CONFIG_NETFILTER_XT_MATCH_OWNER=m
368CONFIG_NETFILTER_XT_MATCH_POLICY=m 393CONFIG_NETFILTER_XT_MATCH_POLICY=m
369CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 394CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
370CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 395CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
371CONFIG_NETFILTER_XT_MATCH_QUOTA=m 396CONFIG_NETFILTER_XT_MATCH_QUOTA=m
397CONFIG_NETFILTER_XT_MATCH_RATEEST=m
372CONFIG_NETFILTER_XT_MATCH_REALM=m 398CONFIG_NETFILTER_XT_MATCH_REALM=m
373CONFIG_NETFILTER_XT_MATCH_SCTP=m 399CONFIG_NETFILTER_XT_MATCH_SCTP=m
374CONFIG_NETFILTER_XT_MATCH_STATE=m 400CONFIG_NETFILTER_XT_MATCH_STATE=m
@@ -386,13 +412,10 @@ CONFIG_NF_CONNTRACK_IPV4=m
386CONFIG_NF_CONNTRACK_PROC_COMPAT=y 412CONFIG_NF_CONNTRACK_PROC_COMPAT=y
387CONFIG_IP_NF_QUEUE=m 413CONFIG_IP_NF_QUEUE=m
388CONFIG_IP_NF_IPTABLES=m 414CONFIG_IP_NF_IPTABLES=m
389CONFIG_IP_NF_MATCH_IPRANGE=m
390CONFIG_IP_NF_MATCH_TOS=m
391CONFIG_IP_NF_MATCH_RECENT=m 415CONFIG_IP_NF_MATCH_RECENT=m
392CONFIG_IP_NF_MATCH_ECN=m 416CONFIG_IP_NF_MATCH_ECN=m
393CONFIG_IP_NF_MATCH_AH=m 417CONFIG_IP_NF_MATCH_AH=m
394CONFIG_IP_NF_MATCH_TTL=m 418CONFIG_IP_NF_MATCH_TTL=m
395CONFIG_IP_NF_MATCH_OWNER=m
396CONFIG_IP_NF_MATCH_ADDRTYPE=m 419CONFIG_IP_NF_MATCH_ADDRTYPE=m
397CONFIG_IP_NF_FILTER=m 420CONFIG_IP_NF_FILTER=m
398CONFIG_IP_NF_TARGET_REJECT=m 421CONFIG_IP_NF_TARGET_REJECT=m
@@ -403,7 +426,6 @@ CONFIG_NF_NAT_NEEDED=y
403CONFIG_IP_NF_TARGET_MASQUERADE=m 426CONFIG_IP_NF_TARGET_MASQUERADE=m
404CONFIG_IP_NF_TARGET_REDIRECT=m 427CONFIG_IP_NF_TARGET_REDIRECT=m
405CONFIG_IP_NF_TARGET_NETMAP=m 428CONFIG_IP_NF_TARGET_NETMAP=m
406CONFIG_IP_NF_TARGET_SAME=m
407CONFIG_NF_NAT_SNMP_BASIC=m 429CONFIG_NF_NAT_SNMP_BASIC=m
408CONFIG_NF_NAT_FTP=m 430CONFIG_NF_NAT_FTP=m
409CONFIG_NF_NAT_IRC=m 431CONFIG_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
493CONFIG_BLK_DEV_RAM=y 516CONFIG_BLK_DEV_RAM=y
494CONFIG_BLK_DEV_RAM_COUNT=16 517CONFIG_BLK_DEV_RAM_COUNT=16
495CONFIG_BLK_DEV_RAM_SIZE=65536 518CONFIG_BLK_DEV_RAM_SIZE=65536
496CONFIG_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
499CONFIG_MISC_DEVICES=y 522CONFIG_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
528CONFIG_HAVE_IDE=y
504CONFIG_IDE=y 529CONFIG_IDE=y
505CONFIG_BLK_DEV_IDE=y 530CONFIG_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
511CONFIG_BLK_DEV_IDEDISK=y 536CONFIG_BLK_DEV_IDEDISK=y
512# CONFIG_IDEDISK_MULTI_MODE is not set 537# CONFIG_IDEDISK_MULTI_MODE is not set
513CONFIG_BLK_DEV_IDECD=y 538CONFIG_BLK_DEV_IDECD=y
539CONFIG_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#
523CONFIG_IDE_GENERIC=y 549CONFIG_IDE_GENERIC=y
524# CONFIG_BLK_DEV_PLATFORM is not set 550# CONFIG_BLK_DEV_PLATFORM is not set
551CONFIG_BLK_DEV_IDEDMA_SFF=y
525 552
526# 553#
527# PCI IDE chipsets support 554# PCI IDE chipsets support
528# 555#
529CONFIG_BLK_DEV_IDEPCI=y 556CONFIG_BLK_DEV_IDEPCI=y
530CONFIG_IDEPCI_SHARE_IRQ=y
531CONFIG_IDEPCI_PCIBUS_ORDER=y 557CONFIG_IDEPCI_PCIBUS_ORDER=y
532# CONFIG_BLK_DEV_OFFBOARD is not set 558# CONFIG_BLK_DEV_OFFBOARD is not set
533CONFIG_BLK_DEV_GENERIC=y 559CONFIG_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
562CONFIG_BLK_DEV_IDEDMA=y 587CONFIG_BLK_DEV_IDEDMA=y
563CONFIG_IDE_ARCH_OBSOLETE_INIT=y 588CONFIG_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
631CONFIG_SCSI_SYM53C8XX_2=y 657CONFIG_SCSI_SYM53C8XX_2=y
632CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 658CONFIG_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
701CONFIG_PATA_WINBOND=y 728CONFIG_PATA_WINBOND=y
729# CONFIG_PATA_PLATFORM is not set
702CONFIG_MD=y 730CONFIG_MD=y
703CONFIG_BLK_DEV_MD=y 731CONFIG_BLK_DEV_MD=y
704CONFIG_MD_LINEAR=y 732CONFIG_MD_LINEAR=y
@@ -737,7 +765,6 @@ CONFIG_BONDING=m
737# CONFIG_EQUALIZER is not set 765# CONFIG_EQUALIZER is not set
738CONFIG_TUN=m 766CONFIG_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
743CONFIG_NET_ETHERNET=y 770CONFIG_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
814CONFIG_TR=y 846CONFIG_TR=y
815CONFIG_IBMOL=y 847CONFIG_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
848CONFIG_SLHC=m 880CONFIG_SLHC=m
849# CONFIG_NET_FC is not set 881# CONFIG_NET_FC is not set
850# CONFIG_SHAPER is not set
851CONFIG_NETCONSOLE=y 882CONFIG_NETCONSOLE=y
852# CONFIG_NETCONSOLE_DYNAMIC is not set 883# CONFIG_NETCONSOLE_DYNAMIC is not set
853CONFIG_NETPOLL=y 884CONFIG_NETPOLL=y
@@ -927,6 +958,7 @@ CONFIG_VT_CONSOLE=y
927CONFIG_HW_CONSOLE=y 958CONFIG_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
951CONFIG_LEGACY_PTY_COUNT=256 983CONFIG_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
955CONFIG_HVC_DRIVER=y 986CONFIG_HVC_DRIVER=y
956CONFIG_HVC_CONSOLE=y 987CONFIG_HVC_CONSOLE=y
957CONFIG_HVC_RTAS=y 988CONFIG_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
1166CONFIG_USB_ARCH_HAS_EHCI=y 1197CONFIG_USB_ARCH_HAS_EHCI=y
1167CONFIG_USB=y 1198CONFIG_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#
1181CONFIG_USB_EHCI_HCD=y 1213CONFIG_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
1186CONFIG_USB_OHCI_HCD=y 1218CONFIG_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
1273CONFIG_INFINIBAND=m 1294CONFIG_INFINIBAND=m
1274CONFIG_INFINIBAND_USER_MAD=m 1295CONFIG_INFINIBAND_USER_MAD=m
@@ -1281,6 +1302,7 @@ CONFIG_INFINIBAND_MTHCA_DEBUG=y
1281CONFIG_INFINIBAND_EHCA=m 1302CONFIG_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
1284CONFIG_INFINIBAND_IPOIB=m 1306CONFIG_INFINIBAND_IPOIB=m
1285# CONFIG_INFINIBAND_IPOIB_CM is not set 1307# CONFIG_INFINIBAND_IPOIB_CM is not set
1286CONFIG_INFINIBAND_IPOIB_DEBUG=y 1308CONFIG_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
1334CONFIG_OCFS2_FS=m 1357CONFIG_OCFS2_FS=m
1335CONFIG_OCFS2_DEBUG_MASKLOG=y 1358CONFIG_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 1360CONFIG_DNOTIFY=y
1338# CONFIG_ROMFS_FS is not set
1339CONFIG_INOTIFY=y 1361CONFIG_INOTIFY=y
1340CONFIG_INOTIFY_USER=y 1362CONFIG_INOTIFY_USER=y
1341# CONFIG_QUOTA is not set 1363# CONFIG_QUOTA is not set
1342CONFIG_DNOTIFY=y
1343# CONFIG_AUTOFS_FS is not set 1364# CONFIG_AUTOFS_FS is not set
1344CONFIG_AUTOFS4_FS=m 1365CONFIG_AUTOFS4_FS=m
1345CONFIG_FUSE_FS=m 1366CONFIG_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
1389CONFIG_CRAMFS=y 1410CONFIG_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
1395CONFIG_NETWORK_FILESYSTEMS=y 1418CONFIG_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
1487CONFIG_LIBCRC32C=m 1509CONFIG_LIBCRC32C=m
1488CONFIG_ZLIB_INFLATE=y 1510CONFIG_ZLIB_INFLATE=y
1489CONFIG_ZLIB_DEFLATE=m 1511CONFIG_ZLIB_DEFLATE=m
1512CONFIG_LZO_COMPRESS=m
1513CONFIG_LZO_DECOMPRESS=m
1490CONFIG_TEXTSEARCH=y 1514CONFIG_TEXTSEARCH=y
1491CONFIG_TEXTSEARCH_KMP=m 1515CONFIG_TEXTSEARCH_KMP=m
1492CONFIG_TEXTSEARCH_BM=m 1516CONFIG_TEXTSEARCH_BM=m
@@ -1495,11 +1519,6 @@ CONFIG_PLIST=y
1495CONFIG_HAS_IOMEM=y 1519CONFIG_HAS_IOMEM=y
1496CONFIG_HAS_IOPORT=y 1520CONFIG_HAS_IOPORT=y
1497CONFIG_HAS_DMA=y 1521CONFIG_HAS_DMA=y
1498CONFIG_INSTRUMENTATION=y
1499CONFIG_PROFILING=y
1500CONFIG_OPROFILE=y
1501CONFIG_KPROBES=y
1502CONFIG_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
1533CONFIG_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
1558CONFIG_CRYPTO=y 1579CONFIG_CRYPTO=y
1559CONFIG_CRYPTO_ALGAPI=y 1580CONFIG_CRYPTO_ALGAPI=y
1581CONFIG_CRYPTO_AEAD=m
1560CONFIG_CRYPTO_BLKCIPHER=y 1582CONFIG_CRYPTO_BLKCIPHER=y
1583CONFIG_CRYPTO_SEQIV=m
1561CONFIG_CRYPTO_HASH=y 1584CONFIG_CRYPTO_HASH=y
1562CONFIG_CRYPTO_MANAGER=y 1585CONFIG_CRYPTO_MANAGER=y
1563CONFIG_CRYPTO_HMAC=y 1586CONFIG_CRYPTO_HMAC=y
@@ -1570,12 +1593,15 @@ CONFIG_CRYPTO_SHA256=m
1570CONFIG_CRYPTO_SHA512=m 1593CONFIG_CRYPTO_SHA512=m
1571CONFIG_CRYPTO_WP512=m 1594CONFIG_CRYPTO_WP512=m
1572CONFIG_CRYPTO_TGR192=m 1595CONFIG_CRYPTO_TGR192=m
1573# CONFIG_CRYPTO_GF128MUL is not set 1596CONFIG_CRYPTO_GF128MUL=m
1574CONFIG_CRYPTO_ECB=m 1597CONFIG_CRYPTO_ECB=m
1575CONFIG_CRYPTO_CBC=y 1598CONFIG_CRYPTO_CBC=y
1576CONFIG_CRYPTO_PCBC=m 1599CONFIG_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
1602CONFIG_CRYPTO_CTR=m
1603CONFIG_CRYPTO_GCM=m
1604CONFIG_CRYPTO_CCM=m
1579# CONFIG_CRYPTO_CRYPTD is not set 1605# CONFIG_CRYPTO_CRYPTD is not set
1580CONFIG_CRYPTO_DES=y 1606CONFIG_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
1591CONFIG_CRYPTO_KHAZAD=m 1617CONFIG_CRYPTO_KHAZAD=m
1592CONFIG_CRYPTO_ANUBIS=m 1618CONFIG_CRYPTO_ANUBIS=m
1593# CONFIG_CRYPTO_SEED is not set 1619# CONFIG_CRYPTO_SEED is not set
1620CONFIG_CRYPTO_SALSA20=m
1594CONFIG_CRYPTO_DEFLATE=m 1621CONFIG_CRYPTO_DEFLATE=m
1595CONFIG_CRYPTO_MICHAEL_MIC=m 1622CONFIG_CRYPTO_MICHAEL_MIC=m
1596CONFIG_CRYPTO_CRC32C=m 1623CONFIG_CRYPTO_CRC32C=m
1597# CONFIG_CRYPTO_CAMELLIA is not set 1624# CONFIG_CRYPTO_CAMELLIA is not set
1598CONFIG_CRYPTO_TEST=m 1625CONFIG_CRYPTO_TEST=m
1599# CONFIG_CRYPTO_AUTHENC is not set 1626CONFIG_CRYPTO_AUTHENC=m
1627CONFIG_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
803static u64 cell_iommu_get_fixed_address(struct device *dev) 803static 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
846out: 855out:
847 of_node_put(np); 856 of_node_put(np);
848 857
849 return pci_addr; 858 return dev_addr;
850} 859}
851 860
852static int dma_set_mask_and_switch(struct device *dev, u64 dma_mask) 861static 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
84static 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}
118DECLARE_PCI_FIXUP_HEADER(PCI_ANY_ID, PCI_ANY_ID, cell_fixup_pcie_rootcomplex);
119
84static int __init cell_publish_devices(void) 120static 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(&current->mm->page_table_lock); 411 spin_lock(&current->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
585config SH_PCLK_FREQ 586config 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
155boot := arch/sh/boot 155boot := arch/sh/boot
156 156
157ifneq ($(KBUILD_SRC),)
157incdir-prefix := $(srctree)/include/asm-sh/ 158incdir-prefix := $(srctree)/include/asm-sh/
159else
160incdir-prefix :=
161endif
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
35KERNEL_LOAD := $(shell /bin/bash -c 'printf "0x%8x" \ 35KERNEL_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
40KERNEL_ENTRY := $(shell /bin/bash -c 'printf "0x%8x" \ 40KERNEL_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
268ENTRY(address_error_trap_handler) 268ENTRY(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
181struct smp_fn_call_struct smp_fn_call = { 181struct 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)
807static int acpi_video_bus_check(struct acpi_video_bus *video) 807static 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
1367static int acpi_video_bus_add_fs(struct acpi_device *device) 1338static 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
30config ATA_ACPI 30config 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
47config 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
57config AMIGA_Z2RAM 47config 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
13obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o 13obj-$(CONFIG_AMIGA_Z2RAM) += z2ram.o
14obj-$(CONFIG_BLK_DEV_RAM) += brd.o 14obj-$(CONFIG_BLK_DEV_RAM) += brd.o
15obj-$(CONFIG_BLK_DEV_LOOP) += loop.o 15obj-$(CONFIG_BLK_DEV_LOOP) += loop.o
16obj-$(CONFIG_BLK_DEV_PS2) += ps2esdi.o
17obj-$(CONFIG_BLK_DEV_XD) += xd.o 16obj-$(CONFIG_BLK_DEV_XD) += xd.o
18obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o 17obj-$(CONFIG_BLK_CPQ_DA) += cpqarray.o
19obj-$(CONFIG_BLK_CPQ_CISS_DA) += cciss.o 18obj-$(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
63static void reset_ctrl(void);
64
65static int ps2esdi_geninit(void);
66
67static void do_ps2esdi_request(struct request_queue * q);
68
69static void ps2esdi_readwrite(int cmd, struct request *req);
70
71static void ps2esdi_fill_cmd_block(u_short * cmd_blk, u_short cmd,
72u_short cyl, u_short head, u_short sector, u_short length, u_char drive);
73
74static int ps2esdi_out_cmd_blk(u_short * cmd_blk);
75
76static void ps2esdi_prep_dma(char *buffer, u_short length, u_char dma_xmode);
77
78static irqreturn_t ps2esdi_interrupt_handler(int irq, void *dev_id);
79static void (*current_int_handler) (u_int) = NULL;
80static void ps2esdi_normal_interrupt_handler(u_int);
81static void ps2esdi_initial_reset_int_handler(u_int);
82static void ps2esdi_geometry_int_handler(u_int);
83static int ps2esdi_getgeo(struct block_device *bdev, struct hd_geometry *geo);
84
85static int ps2esdi_read_status_words(int num_words, int max_words, u_short * buffer);
86
87static void dump_cmd_complete_status(u_int int_ret_code);
88
89static void ps2esdi_get_device_cfg(void);
90
91static void ps2esdi_reset_timer(unsigned long unused);
92
93static u_int dma_arb_level; /* DMA arbitration level */
94
95static DECLARE_WAIT_QUEUE_HEAD(ps2esdi_int);
96
97static int no_int_yet;
98static int ps2esdi_drives;
99static u_short io_base;
100static DEFINE_TIMER(esdi_timer, ps2esdi_reset_timer, 0, 0);
101static int reset_status;
102static int ps2esdi_slot = -1;
103static int tp720esdi = 0; /* Is it Integrated ESDI of ThinkPad-720? */
104static int intg_esdi = 0; /* If integrated adapter */
105struct ps2esdi_i_struct {
106 unsigned int head, sect, cyl, wpcom, lzone, ctl;
107};
108static DEFINE_SPINLOCK(ps2esdi_lock);
109static struct request_queue *ps2esdi_queue;
110static struct request *current_req;
111
112#if 0
113#if 0 /* try both - I don't know which one is better... UB */
114static 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
119static 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
125static struct ps2esdi_i_struct ps2esdi_info[MAX_HD] =
126{
127 {0, 0, 0, 0, 0, 0},
128 {0, 0, 0, 0, 0, 0}};
129
130static struct block_device_operations ps2esdi_fops =
131{
132 .owner = THIS_MODULE,
133 .getgeo = ps2esdi_getgeo,
134};
135
136static struct gendisk *ps2esdi_gendisk[2];
137
138/* initialization routine called by ll_rw_blk.c */
139static 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
169module_init(ps2esdi_init);
170
171#else
172
173static int cyl[MAX_HD] = {-1,-1};
174static int head[MAX_HD] = {-1, -1};
175static int sect[MAX_HD] = {-1, -1};
176
177module_param(tp720esdi, bool, 0);
178module_param_array(cyl, int, NULL, 0);
179module_param_array(head, int, NULL, 0);
180module_param_array(sect, int, NULL, 0);
181MODULE_LICENSE("GPL");
182
183int 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
202void
203cleanup_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 */
222void __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
230void __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
263static 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 */
277static 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;
435err_out4:
436 while (i--)
437 put_disk(ps2esdi_gendisk[i]);
438err_out3:
439 release_region(io_base, 4);
440err_out2:
441 free_irq(PS2ESDI_IRQ, &ps2esdi_gendisk);
442err_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
450static 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 */
476static 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 */
524static 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 */
557static 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 */
603static 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 */
615static 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 */
669static 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
689static 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
707static 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
732static 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
851static 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
970static 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
990static 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
1057static 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
1067static 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
38static void *drm_ati_alloc_pcigart_table(int order) 38static 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
61static void drm_ati_free_pcigart_table(void *address, int order) 50static 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
76int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info *gart_info) 57int 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)
344void drm_idlelock_take(struct drm_lock_data *lock_data) 347void 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}
361EXPORT_SYMBOL(drm_idlelock_take); 365EXPORT_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}
381EXPORT_SYMBOL(drm_idlelock_release); 386EXPORT_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;
26typedef unsigned int Word_t; 26typedef unsigned int Word_t;
27typedef unsigned int WordIO_t; 27typedef unsigned int WordIO_t;
28 28
29typedef unsigned long DWord_t;
30typedef unsigned int DWordIO_t; 29typedef 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
42static inline void sOutB(unsigned short port, unsigned char value) 40static 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
58static inline void sOutDW(unsigned short port, unsigned long value) 56static 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
66static inline unsigned char sInB(unsigned short port) 65static 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) \
391do { \ 382do { \
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) \
403do { \ 394do { \
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)
415do { \ 406do { \
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) \
490do { \ 481do { \
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) \
502do { \ 493do { \
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) \
516do { \ 507do { \
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) \
528do { \ 519do { \
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) \
541do { \ 532do { \
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) \
568do { \ 559do { \
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) \
580do { \ 571do { \
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) \
605do { \ 596do { \
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) \
617do { \ 608do { \
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) \
634do { \ 625do { \
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) \
648do { \ 639do { \
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) \
664do { \ 655do { \
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) \
685do { \ 676do { \
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) \
709do { \ 700do { \
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) \
721do { \ 712do { \
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) \
928do { \ 919do { \
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)
941do { \ 932do { \
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) \
954do { \ 945do { \
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) \
966do { \ 957do { \
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) \
978do { \ 969do { \
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) \
995do { \ 986do { \
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) \
1012do { \ 1003do { \
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)
1024do { \ 1015do { \
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
1050do { \ 1041do { \
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) \
1063do { \ 1054do { \
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) \
1075do { \ 1066do { \
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) \
1088do { \ 1079do { \
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) \
1101do { \ 1092do { \
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/***************************************************************************
1119Function: sWriteTxByte 1110Function: 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
126static u32 get_bcr(struct fsl_dma_chan *fsl_chan)
127{
128 return DMA_IN(fsl_chan, &fsl_chan->reg_base->bcr, 32);
129}
130
126static int dma_is_idle(struct fsl_dma_chan *fsl_chan) 131static 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}
741EXPORT_SYMBOL(fw_core_handle_response); 747EXPORT_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
99static struct hidinput_key_translation apple_fn_keys[] = { 99static 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
330static int power_sensor_multiplier(const char *sensor_id, int len) 330static 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 */
431static 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 */
428static ide_startstop_t task_in_intr(ide_drive_t *drive) 447static 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 */
23static int i8042_kbd_irq;
24static int i8042_aux_irq;
25#define I8042_KBD_IRQ i8042_kbd_irq
26#define I8042_AUX_IRQ i8042_aux_irq
27
28static void __iomem *kbd_iobase;
29
30#define I8042_COMMAND_REG (kbd_iobase + 0x64UL)
31#define I8042_DATA_REG (kbd_iobase + 0x60UL)
32
33static inline int i8042_read_data(void)
34{
35 return readb(kbd_iobase + 0x60UL);
36}
37
38static inline int i8042_read_status(void)
39{
40 return readb(kbd_iobase + 0x64UL);
41}
42
43static inline void i8042_write_data(int val)
44{
45 writeb(val, kbd_iobase + 0x60UL);
46}
47
48static inline void i8042_write_command(int val)
49{
50 writeb(val, kbd_iobase + 0x64UL);
51}
52static 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
70static 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)
1151static int __devinit i8042_probe(struct platform_device *dev) 1151static 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(&param, 0x1059); 1177 error = i8042_command(&param, 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
125extern void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 126extern void input_dev_pl(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
126extern void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 127extern void input_dev_pt(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
127extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac); 128extern void input_dev_mo(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
129extern void input_dev_bee(struct input_dev *input_dev, struct wacom_wac *wacom_wac);
128extern __u16 wacom_le16_to_cpu(unsigned char *data); 130extern __u16 wacom_le16_to_cpu(unsigned char *data);
129extern __u16 wacom_be16_to_cpu(unsigned char *data); 131extern __u16 wacom_be16_to_cpu(unsigned char *data);
130extern struct wacom_features * get_wacom_feature(const struct usb_device_id *id); 132extern 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
176void input_dev_i3(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 177void 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
184void 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
183void input_dev_i(struct input_dev *input_dev, struct wacom_wac *wacom_wac) 189void 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
1866static ssize_t 1866static ssize_t
1867super_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}
1875static struct rdev_sysfs_entry rdev_super = __ATTR_RO(super);
1876
1877static ssize_t
1878errors_show(mdk_rdev_t *rdev, char *page) 1867errors_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
2061static struct attribute *rdev_default_attrs[] = { 2050static 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
306config VIDEO_CX2341X 306config 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
383config VIDEO_VIVI 383config 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}
282EXPORT_SYMBOL(memstick_init_req_sg); 280EXPORT_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}
317EXPORT_SYMBOL(memstick_init_req); 313EXPORT_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
428static void memstick_check(struct work_struct *work) 424static void memstick_check(struct work_struct *work)
@@ -579,7 +575,8 @@ EXPORT_SYMBOL(memstick_suspend_host);
579void memstick_resume_host(struct memstick_host *host) 575void 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 {
133struct mspro_block_data { 133struct 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,
577static int h_mspro_block_transfer_data(struct memstick_dev *card, 578static 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
819static int mspro_block_switch_to_parallel(struct memstick_dev *card) 819static 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
840static 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, &param,
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
122enum { 140enum {
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
129static unsigned int jmb38x_ms_read_data(struct jmb38x_ms_host *host, 147static 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
613static void jmb38x_ms_set_param(struct memstick_host *msh, 630static 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 **/
1438static int
1439mpt_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
1452mpt_attach(struct pci_dev *pdev, const struct pci_device_id *id) 1544mpt_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 */
1907static int 1943static int
1908mpt_do_ioc_recovery(MPT_ADAPTER *ioc, u32 reason, int sleepFlag) 1944mpt_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)
1170int 1170int
1171mptscsih_suspend(struct pci_dev *pdev, pm_message_t state) 1171mptscsih_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)
1183int 1187int
1184mptscsih_resume(struct pci_dev *pdev) 1188mptscsih_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
21if RTC_CLASS 21if 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
328if SCSI_LOWLEVEL 328if SCSI_LOWLEVEL && SCSI
329 329
330config ISCSI_TCP 330config 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)
415static inline int scif_txroom(struct uart_port *port) 415static 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
420static inline int scif_rxroom(struct uart_port *port) 420static 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
425static inline int scif_txroom(struct uart_port *port) 425static 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
5menuconfig THERMAL 5menuconfig 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
36MODULE_AUTHOR("Zhang Rui"); 34MODULE_AUTHOR("Zhang Rui")
37MODULE_DESCRIPTION("Generic thermal management sysfs support"); 35MODULE_DESCRIPTION("Generic thermal management sysfs support");
38MODULE_LICENSE("GPL"); 36MODULE_LICENSE("GPL");
39 37
@@ -58,9 +56,6 @@ static LIST_HEAD(thermal_tz_list);
58static LIST_HEAD(thermal_cdev_list); 56static LIST_HEAD(thermal_cdev_list);
59static DEFINE_MUTEX(thermal_list_lock); 57static DEFINE_MUTEX(thermal_list_lock);
60 58
61static struct device *thermal_hwmon;
62#define MAX_THERMAL_ZONES 10
63
64static int get_idr(struct idr *idr, struct mutex *lock, int *id) 59static 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 */
96static ssize_t
97name_show(struct device *dev, struct device_attribute *attr, char *buf)
98{
99 return sprintf(buf, "thermal_sys_class\n");
100}
101
102static ssize_t
103temp_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
116static ssize_t
117temp_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
131static DEVICE_ATTR(name, 0444, name_show, NULL);
132static 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
806EXPORT_SYMBOL(thermal_zone_device_unregister); 706EXPORT_SYMBOL(thermal_zone_device_unregister);
807 707
808static 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
821static int __init thermal_init(void) 708static 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
722static 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
848subsys_initcall(thermal_init); 731subsys_initcall(thermal_init);
849module_exit(thermal_exit); 732module_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
1896config 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
1896config FB_VIRTUAL 1910config 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
103obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o 103obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o
104obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o 104obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o
105obj-$(CONFIG_FB_MAXINE) += maxinefb.o 105obj-$(CONFIG_FB_MAXINE) += maxinefb.o
106obj-$(CONFIG_FB_METRONOME) += metronomefb.o
106obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o 107obj-$(CONFIG_FB_S1D13XXX) += s1d13xxxfb.o
107obj-$(CONFIG_FB_IMX) += imxfb.o 108obj-$(CONFIG_FB_IMX) += imxfb.o
108obj-$(CONFIG_FB_S3C2410) += s3c2410fb.o 109obj-$(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
139void fb_deferred_io_cleanup(struct fb_info *info) 148void 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}
147EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup); 165EXPORT_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
56struct metromem_desc {
57 u32 mFDADR0;
58 u32 mFSADR0;
59 u32 mFIDR0;
60 u32 mLDCMD0;
61};
62
63struct metromem_cmd {
64 u16 opcode;
65 u16 args[((64-2)/2)];
66 u16 csum;
67};
68
69struct 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 */
86struct epd_frame {
87 int fw; /* frame width */
88 int fh; /* frame height */
89};
90
91static struct epd_frame epd_frame_table[] = {
92 {
93 .fw = 832,
94 .fh = 622
95 },
96};
97
98static 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
109static 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
123static unsigned int metronomefb_enable;
124
125struct 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 */
145static 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
156static 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
168static 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
322static 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
348static 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
387static 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
406static 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
415static 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
422static 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
463static 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
500static 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
530static 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
576static 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
603static 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
625static 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
640static 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 */
656static 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
676static 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
685static 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
694static 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 */
707static 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
749static 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
757static struct fb_deferred_io metronomefb_defio = {
758 .delay = HZ,
759 .deferred_io = metronomefb_dpy_deferred_io,
760};
761
762static 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
771static 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
911err_cmap:
912 fb_dealloc_cmap(&info->cmap);
913err_fb_rel:
914 framebuffer_release(info);
915err_free_irq:
916 free_irq(IRQ_GPIO(RDY_GPIO_PIN), info);
917err_ld_wfm:
918 release_firmware(fw_entry);
919err_dma_free:
920 dma_free_writecombine(&dev->dev, par->metromemsize, par->metromem,
921 par->metromem_dma);
922err_csum_table:
923 vfree(par->csum_table);
924err_vfree:
925 vfree(videomemory);
926 return retval;
927}
928
929static 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
948static struct platform_driver metronomefb_driver = {
949 .probe = metronomefb_probe,
950 .remove = metronomefb_remove,
951 .driver = {
952 .name = "metronomefb",
953 },
954};
955
956static struct platform_device *metronomefb_device;
957
958static 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
985static void __exit metronomefb_exit(void)
986{
987 platform_device_unregister(metronomefb_device);
988 platform_driver_unregister(&metronomefb_driver);
989}
990
991module_param(metronomefb_enable, uint, 0);
992MODULE_PARM_DESC(metronomefb_enable, "Enable communication with Metronome");
993
994module_init(metronomefb_init);
995module_exit(metronomefb_exit);
996
997MODULE_DESCRIPTION("fbdev driver for Metronome controller");
998MODULE_AUTHOR("Jaya Kumar");
999MODULE_LICENSE("GPL");
diff --git a/fs/aio.c b/fs/aio.c
index b74c567383bc..6af921940622 100644
--- a/fs/aio.c
+++ b/fs/aio.c
@@ -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
diff --git a/fs/bio.c b/fs/bio.c
index 3312fcc3c098..553b5b7960ad 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -1194,6 +1194,8 @@ EXPORT_SYMBOL(bio_hw_segments);
1194EXPORT_SYMBOL(bio_add_page); 1194EXPORT_SYMBOL(bio_add_page);
1195EXPORT_SYMBOL(bio_add_pc_page); 1195EXPORT_SYMBOL(bio_add_pc_page);
1196EXPORT_SYMBOL(bio_get_nr_vecs); 1196EXPORT_SYMBOL(bio_get_nr_vecs);
1197EXPORT_SYMBOL(bio_map_user);
1198EXPORT_SYMBOL(bio_unmap_user);
1197EXPORT_SYMBOL(bio_map_kern); 1199EXPORT_SYMBOL(bio_map_kern);
1198EXPORT_SYMBOL(bio_pair_release); 1200EXPORT_SYMBOL(bio_pair_release);
1199EXPORT_SYMBOL(bio_split); 1201EXPORT_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)
3232EXPORT_SYMBOL(bh_uptodate_or_lock); 3232EXPORT_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
751EXPORT_SYMBOL(generic_osync_inode); 751EXPORT_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 */
785void writeback_release(struct backing_dev_info *bdi) 785void 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 */
1914void journal_invalidatepage(journal_t *journal, 1914void 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:
1275EXPORT_SYMBOL(__break_lease); 1275EXPORT_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 */
1286void lease_get_mtime(struct inode *inode, struct timespec *time) 1286void 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;
538out_error: 541out_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);
40static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc, 40static void nfs_pageio_init_write(struct nfs_pageio_descriptor *desc,
41 struct inode *inode, int ioflags); 41 struct inode *inode, int ioflags);
42static void nfs_redirty_request(struct nfs_page *req);
42static const struct rpc_call_ops nfs_write_partial_ops; 43static const struct rpc_call_ops nfs_write_partial_ops;
43static const struct rpc_call_ops nfs_write_full_ops; 44static const struct rpc_call_ops nfs_write_full_ops;
44static const struct rpc_call_ops nfs_commit_ops; 45static 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
1040static 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
1056static 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 *
340romfs_lookup(struct inode *dir, struct dentry *dentry, struct nameidata *nd) 340romfs_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 /* 404success:
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
412out0: inode = NULL;
413 res = 0; 406 res = 0;
414 d_add (dentry, inode); 407error:
415 408 unlock_kernel();
416out: 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
566static void mark_files_ro(struct super_block *sb) 566static 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)
28extern void omap_dsp_request_mpui(void); 28extern void omap_dsp_request_mpui(void);
29extern void omap_dsp_release_mpui(void); 29extern void omap_dsp_release_mpui(void);
30extern int omap_dsp_request_mem(void); 30extern int omap_dsp_request_mem(void);
31extern int omap_dsp_release_mem(void); 31extern int omap_dsp_release_mem(void);
32#else
33static 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 @@
11static inline __attribute_const__ __u32 ___arch__swab32(__u32 x) 11static 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)
28static inline __attribute_const__ __u16 ___arch__swab16(__u16 x) 28static 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
127header-y += posix_types.h 127header-y += posix_types.h
128header-y += ppdev.h 128header-y += ppdev.h
129header-y += prctl.h 129header-y += prctl.h
130header-y += ps2esdi.h
131header-y += qnxtypes.h 130header-y += qnxtypes.h
132header-y += quotaio_v1.h 131header-y += quotaio_v1.h
133header-y += quotaio_v2.h 132header-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)
348struct jbd_revoke_table_s; 348struct 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
367struct handle_s 361struct 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
91struct 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
88static inline void rcu_enter_nohz(void) 88static 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
95static inline void rcu_exit_nohz(void) 95static 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);
57extern int cap_inode_killpriv(struct dentry *dentry); 57extern int cap_inode_killpriv(struct dentry *dentry);
58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags); 58extern int cap_task_post_setuid (uid_t old_ruid, uid_t old_euid, uid_t old_suid, int flags);
59extern void cap_task_reparent_to_init (struct task_struct *p); 59extern void cap_task_reparent_to_init (struct task_struct *p);
60extern int cap_task_kill(struct task_struct *p, struct siginfo *info, int sig, u32 secid);
61extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp); 60extern int cap_task_setscheduler (struct task_struct *p, int policy, struct sched_param *lp);
62extern int cap_task_setioprio (struct task_struct *p, int ioprio); 61extern int cap_task_setioprio (struct task_struct *p, int ioprio);
63extern int cap_task_setnice (struct task_struct *p, int nice); 62extern 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
2193static inline int security_task_wait (struct task_struct *p) 2192static 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
1861out_running: 1866out_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 */
82unsigned int sysctl_sched_wakeup_granularity = 10000000UL; 82unsigned int sysctl_sched_wakeup_granularity = 5000000UL;
83 83
84const_debug unsigned int sysctl_sched_migration_cost = 500000UL; 84const_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
559static void update_avg(u64 *avg, u64 sample)
560{
561 s64 diff = sample - *avg;
562 *avg += diff >> 3;
563}
564
565static 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
559static void 574static void
560dequeue_entity(struct cfs_rq *cfs_rq, struct sched_entity *se, int sleep) 575dequeue_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
983static int select_task_rq_fair(struct task_struct *p, int sync) 999
1000static const struct sched_class fair_sched_class;
1001
1002static int
1003wake_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
1052static 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 */ 1113out:
1072out_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,
343EXPORT_SYMBOL(sync_page_range); 343EXPORT_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 */
1545struct page *read_cache_page_async(struct address_space *mapping, 1559struct 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 */
109void kmap_flush_unused(void) 110void 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 */
166void *kmap_high(struct page *page) 175void *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
186EXPORT_SYMBOL(kmap_high); 193EXPORT_SYMBOL(kmap_high);
187 194
195/**
196 * kunmap_high - map a highmem page into memory
197 * @page: &struct page to unmap
198 */
188void kunmap_high(struct page *page) 199void 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 */
262void *page_address(struct page *page) 279void *page_address(struct page *page)
263{ 280{
264 unsigned long flags; 281 unsigned long flags;
@@ -288,6 +305,11 @@ done:
288 305
289EXPORT_SYMBOL(page_address); 306EXPORT_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 */
291void set_page_address(struct page *page, void *virtual) 313void 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 */
449void 450void
450page_cache_async_readahead(struct address_space *mapping, 451page_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,
diff --git a/mm/rmap.c b/mm/rmap.c
index 0c9a2df06c39..997f06907b6d 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -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)
506EXPORT_SYMBOL_GPL(page_mkclean); 508EXPORT_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 */
385static swp_entry_t *shmem_swp_alloc(struct shmem_inode_info *info, unsigned long index, enum sgp_type sgp) 383static 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}
2562module_init(init_tmpfs) 2559module_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 */
2571struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) 2567struct 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 */
2629int shmem_zero_setup(struct vm_area_struct *vma) 2624int shmem_zero_setup(struct vm_area_struct *vma)
diff --git a/mm/slab.c b/mm/slab.c
index e6c698f55674..bb4070e1079f 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -3624,12 +3624,11 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
3624EXPORT_SYMBOL(kmem_cache_alloc); 3624EXPORT_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
diff --git a/mm/slub.c b/mm/slub.c
index 96d63eb3ab17..ca71d5b81e4a 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -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;
1543debug: 1549debug:
1544 if (!alloc_debug_processing(s, c->page, object, addr)) 1550 if (!alloc_debug_processing(s, c->page, object, addr))
diff --git a/mm/swap.c b/mm/swap.c
index d4ec59aa5c46..aa1139ccf3a7 100644
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -78,12 +78,11 @@ void put_page(struct page *page)
78EXPORT_SYMBOL(put_page); 78EXPORT_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 */
88void put_pages_list(struct list_head *pages) 87void 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}
40module_init(init_tmpfs) 40module_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 */
49struct file *shmem_file_setup(char *name, loff_t size, unsigned long flags) 48struct 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 */
103int shmem_zero_setup(struct vm_area_struct *vma) 101int 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
543int 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}
608int 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
615void cap_task_reparent_to_init (struct task_struct *p) 575void 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
803int selinux_parse_opts_str(char *options, struct security_mnt_opts *opts) 803static 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)
1117static int smack_task_kill(struct task_struct *p, struct siginfo *info, 1117static 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 */
1509static int smack_shm_shmctl(struct shmid_kernel *shp, int cmd) 1504static 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 */
1617static int smack_sem_semctl(struct sem_array *sma, int cmd) 1613static 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 */
1731static int smack_msg_queue_msgctl(struct msg_queue *msq, int cmd) 1728static 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