aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DocBook/genericirq.tmpl4
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl8
-rw-r--r--MAINTAINERS6
-rw-r--r--arch/arm/configs/ep93xx_defconfig123
-rw-r--r--arch/arm/configs/iop13xx_defconfig99
-rw-r--r--arch/arm/configs/iop32x_defconfig213
-rw-r--r--arch/arm/configs/iop33x_defconfig110
-rw-r--r--arch/arm/configs/ixp2000_defconfig114
-rw-r--r--arch/arm/configs/ixp23xx_defconfig136
-rw-r--r--arch/arm/configs/lpd270_defconfig103
-rw-r--r--arch/arm/configs/onearm_defconfig126
-rw-r--r--arch/arm/kernel/calls.S24
-rw-r--r--arch/arm/kernel/setup.c1
-rw-r--r--arch/arm/kernel/sys_arm.c13
-rw-r--r--arch/arm/mach-ep93xx/core.c4
-rw-r--r--arch/arm/mach-iop13xx/iq81340mc.c6
-rw-r--r--arch/arm/mach-iop13xx/iq81340sc.c6
-rw-r--r--arch/arm/mach-iop13xx/irq.c22
-rw-r--r--arch/arm/mach-iop13xx/setup.c2
-rw-r--r--arch/arm/mach-s3c2410/Kconfig25
-rw-r--r--arch/arm/mach-s3c2410/cpu.c1
-rw-r--r--arch/arm/mach-s3c2410/devs.c1
-rw-r--r--arch/arm/mach-s3c2410/dma.c2
-rw-r--r--arch/arm/mach-s3c2410/irq.h2
-rw-r--r--arch/arm/mach-s3c2410/mach-anubis.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-h1940.c3
-rw-r--r--arch/arm/mach-s3c2410/mach-n30.c3
-rw-r--r--arch/arm/mach-s3c2410/mach-nexcoder.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-osiris.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-otom.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-smdk2410.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-smdk2413.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-smdk2440.c1
-rw-r--r--arch/arm/mach-s3c2410/mach-vr1000.c2
-rw-r--r--arch/arm/mach-s3c2410/mach-vstms.c1
-rw-r--r--arch/arm/mach-s3c2410/pm-simtec.c1
-rw-r--r--arch/arm/mach-s3c2410/pm.c1
-rw-r--r--arch/arm/mach-s3c2410/s3c2410-clock.c5
-rw-r--r--arch/arm/mach-s3c2410/s3c2410-dma.c9
-rw-r--r--arch/arm/mach-s3c2410/s3c2410-pm.c8
-rw-r--r--arch/arm/mach-s3c2410/s3c2410.c3
-rw-r--r--arch/arm/mach-s3c2410/s3c2412-clock.c11
-rw-r--r--arch/arm/mach-s3c2410/s3c2412-dma.c3
-rw-r--r--arch/arm/mach-s3c2410/s3c2412.c2
-rw-r--r--arch/arm/mach-s3c2410/s3c2440-clock.c24
-rw-r--r--arch/arm/mach-s3c2410/s3c2440-dma.c3
-rw-r--r--arch/arm/mach-s3c2410/s3c2440.c9
-rw-r--r--arch/arm/mach-s3c2410/s3c2440.h18
-rw-r--r--arch/arm/mach-s3c2410/s3c2442-clock.c22
-rw-r--r--arch/arm/mach-s3c2410/s3c2442.c20
-rw-r--r--arch/arm/mach-s3c2410/s3c244x.c3
-rw-r--r--arch/arm/mach-s3c2410/usb-simtec.h3
-rw-r--r--arch/arm/mm/ioremap.c2
-rw-r--r--arch/arm/mm/mmu.c20
-rw-r--r--arch/arm/mm/proc-xsc3.S2
-rw-r--r--arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c33
-rw-r--r--arch/i386/kernel/cpu/cpufreq/longhaul.c4
-rw-r--r--arch/sparc/defconfig711
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c8
-rw-r--r--arch/sparc/kernel/time.c5
-rw-r--r--arch/sparc/lib/Makefile4
-rw-r--r--arch/sparc/lib/atomic32.c39
-rw-r--r--arch/sparc/lib/bitops.S109
-rw-r--r--arch/sparc64/kernel/head.S7
-rw-r--r--arch/sparc64/kernel/irq.c24
-rw-r--r--arch/sparc64/kernel/smp.c7
-rw-r--r--drivers/char/drm/drmP.h7
-rw-r--r--drivers/char/drm/drm_lock.c2
-rw-r--r--drivers/char/drm/drm_stub.c12
-rw-r--r--drivers/char/drm/drm_sysfs.c8
-rw-r--r--drivers/char/drm/i915_irq.c199
-rw-r--r--drivers/char/drm/r128_drm.h3
-rw-r--r--drivers/char/drm/r128_drv.h3
-rw-r--r--drivers/char/drm/r128_state.c3
-rw-r--r--drivers/char/drm/r300_cmdbuf.c32
-rw-r--r--drivers/char/drm/radeon_drv.h15
-rw-r--r--drivers/char/drm/radeon_irq.c4
-rw-r--r--drivers/char/drm/radeon_mem.c4
-rw-r--r--drivers/char/drm/radeon_state.c13
-rw-r--r--drivers/char/drm/savage_bci.c4
-rw-r--r--drivers/connector/cn_queue.c5
-rw-r--r--drivers/connector/connector.c17
-rw-r--r--drivers/cpufreq/cpufreq.c2
-rw-r--r--drivers/hid/hid-input.c44
-rw-r--r--drivers/input/keyboard/sunkbd.c2
-rw-r--r--drivers/net/bnx2.c23
-rw-r--r--drivers/net/tg3.c42
-rw-r--r--drivers/net/tg3.h1
-rw-r--r--drivers/usb/input/Kconfig3
-rw-r--r--drivers/video/pxafb.c40
-rw-r--r--drivers/video/sa1100fb.c6
-rw-r--r--include/asm-arm/arch-iop13xx/iq81340.h5
-rw-r--r--include/asm-arm/arch-ixp23xx/memory.h16
-rw-r--r--include/asm-arm/arch-s3c2410/anubis-cpld.h2
-rw-r--r--include/asm-arm/arch-s3c2410/anubis-irq.h2
-rw-r--r--include/asm-arm/arch-s3c2410/anubis-map.h2
-rw-r--r--include/asm-arm/arch-s3c2410/audio.h2
-rw-r--r--include/asm-arm/arch-s3c2410/bast-cpld.h4
-rw-r--r--include/asm-arm/arch-s3c2410/bast-irq.h4
-rw-r--r--include/asm-arm/arch-s3c2410/bast-map.h4
-rw-r--r--include/asm-arm/arch-s3c2410/bast-pmu.h2
-rw-r--r--include/asm-arm/arch-s3c2410/h1940-latch.h4
-rw-r--r--include/asm-arm/arch-s3c2410/hardware.h4
-rw-r--r--include/asm-arm/arch-s3c2410/iic.h2
-rw-r--r--include/asm-arm/arch-s3c2410/leds-gpio.h2
-rw-r--r--include/asm-arm/arch-s3c2410/map.h30
-rw-r--r--include/asm-arm/arch-s3c2410/nand.h4
-rw-r--r--include/asm-arm/arch-s3c2410/osiris-cpld.h2
-rw-r--r--include/asm-arm/arch-s3c2410/regs-serial.h2
-rw-r--r--include/asm-arm/arch-s3c2410/system.h4
-rw-r--r--include/asm-arm/arch-s3c2410/timex.h4
-rw-r--r--include/asm-arm/arch-s3c2410/uncompress.h5
-rw-r--r--include/asm-arm/arch-s3c2410/usb-control.h4
-rw-r--r--include/asm-arm/arch-s3c2410/vr1000-cpld.h4
-rw-r--r--include/asm-arm/arch-s3c2410/vr1000-irq.h4
-rw-r--r--include/asm-arm/arch-s3c2410/vr1000-map.h4
-rw-r--r--include/asm-arm/elf.h1
-rw-r--r--include/asm-arm/system.h33
-rw-r--r--include/asm-arm/unistd.h12
-rw-r--r--include/asm-sparc/bitops.h100
-rw-r--r--include/asm-sparc64/hw_irq.h2
-rw-r--r--include/asm-sparc64/percpu.h10
-rw-r--r--include/linux/connector.h2
-rw-r--r--include/linux/input.h15
-rw-r--r--include/net/ax25.h26
-rw-r--r--include/net/rose.h6
-rw-r--r--include/sound/pcm_oss.h1
-rw-r--r--include/sound/version.h4
-rw-r--r--include/sound/ymfpci.h5
-rw-r--r--net/ax25/af_ax25.c4
-rw-r--r--net/ax25/ax25_iface.c103
-rw-r--r--net/ax25/ax25_route.c2
-rw-r--r--net/ipv4/route.c3
-rw-r--r--net/ipv4/tcp_ipv4.c3
-rw-r--r--net/ipv6/netfilter/Kconfig5
-rw-r--r--net/netrom/af_netrom.c15
-rw-r--r--net/netrom/nr_dev.c24
-rw-r--r--net/netrom/nr_route.c19
-rw-r--r--net/rose/af_rose.c18
-rw-r--r--net/rose/rose_dev.c22
-rw-r--r--net/rose/rose_loopback.c5
-rw-r--r--net/rose/rose_route.c47
-rw-r--r--sound/aoa/codecs/snd-aoa-codec-onyx.h1
-rw-r--r--sound/aoa/codecs/snd-aoa-codec-tas.c1
-rw-r--r--sound/core/control.c2
-rw-r--r--sound/core/oss/pcm_oss.c52
-rw-r--r--sound/core/pcm.c4
-rw-r--r--sound/core/pcm_lib.c8
-rw-r--r--sound/core/rawmidi.c4
-rw-r--r--sound/core/seq/seq_memory.c2
-rw-r--r--sound/core/sgbuf.c2
-rw-r--r--sound/isa/gus/gus_mem.c7
-rw-r--r--sound/isa/sb/sb_common.c2
-rw-r--r--sound/isa/wavefront/wavefront_synth.c2
-rw-r--r--sound/oss/dmasound/tas3001c.c14
-rw-r--r--sound/oss/dmasound/tas3004.c15
-rw-r--r--sound/pci/ac97/ac97_codec.c10
-rw-r--r--sound/pci/ac97/ac97_patch.c7
-rw-r--r--sound/pci/ad1889.c4
-rw-r--r--sound/pci/ali5451/ali5451.c5
-rw-r--r--sound/pci/als300.c6
-rw-r--r--sound/pci/atiixp.c2
-rw-r--r--sound/pci/atiixp_modem.c2
-rw-r--r--sound/pci/au88x0/au88x0.c2
-rw-r--r--sound/pci/azt3328.c5
-rw-r--r--sound/pci/bt87x.c4
-rw-r--r--sound/pci/ca0106/ca0106.h2
-rw-r--r--sound/pci/ca0106/ca0106_main.c37
-rw-r--r--sound/pci/cmipci.c2
-rw-r--r--sound/pci/cs4281.c2
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c2
-rw-r--r--sound/pci/cs5535audio/cs5535audio.c2
-rw-r--r--sound/pci/echoaudio/echoaudio.c6
-rw-r--r--sound/pci/emu10k1/emu10k1_main.c5
-rw-r--r--sound/pci/emu10k1/emu10k1x.c9
-rw-r--r--sound/pci/ens1370.c2
-rw-r--r--sound/pci/es1938.c4
-rw-r--r--sound/pci/es1968.c8
-rw-r--r--sound/pci/fm801.c2
-rw-r--r--sound/pci/hda/hda_codec.c3
-rw-r--r--sound/pci/hda/hda_intel.c3
-rw-r--r--sound/pci/hda/hda_proc.c53
-rw-r--r--sound/pci/hda/patch_analog.c8
-rw-r--r--sound/pci/hda/patch_realtek.c4
-rw-r--r--sound/pci/hda/patch_si3054.c3
-rw-r--r--sound/pci/ice1712/ice1712.c2
-rw-r--r--sound/pci/ice1712/ice1724.c2
-rw-r--r--sound/pci/intel8x0.c4
-rw-r--r--sound/pci/intel8x0m.c4
-rw-r--r--sound/pci/korg1212/korg1212.c2
-rw-r--r--sound/pci/maestro3.c4
-rw-r--r--sound/pci/mixart/mixart.c5
-rw-r--r--sound/pci/nm256/nm256.c2
-rw-r--r--sound/pci/pcxhr/pcxhr.c2
-rw-r--r--sound/pci/riptide/riptide.c5
-rw-r--r--sound/pci/rme32.c3
-rw-r--r--sound/pci/rme96.c3
-rw-r--r--sound/pci/rme9652/hdsp.c9
-rw-r--r--sound/pci/rme9652/hdspm.c3
-rw-r--r--sound/pci/rme9652/rme9652.c7
-rw-r--r--sound/pci/sonicvibes.c5
-rw-r--r--sound/pci/trident/trident_main.c6
-rw-r--r--sound/pci/via82xx.c6
-rw-r--r--sound/pci/via82xx_modem.c2
-rw-r--r--sound/pci/vx222/vx222.c4
-rw-r--r--sound/pci/ymfpci/ymfpci.c5
-rw-r--r--sound/pci/ymfpci/ymfpci_main.c39
-rw-r--r--sound/usb/usbaudio.c3
209 files changed, 2445 insertions, 1393 deletions
diff --git a/Documentation/DocBook/genericirq.tmpl b/Documentation/DocBook/genericirq.tmpl
index 0f4a4b6321e4..4215f69ce7e6 100644
--- a/Documentation/DocBook/genericirq.tmpl
+++ b/Documentation/DocBook/genericirq.tmpl
@@ -303,10 +303,10 @@ desc->status |= running;
303do { 303do {
304 if (desc->status & masked) 304 if (desc->status & masked)
305 desc->chip->enable(); 305 desc->chip->enable();
306 desc-status &= ~pending; 306 desc->status &= ~pending;
307 handle_IRQ_event(desc->action); 307 handle_IRQ_event(desc->action);
308} while (status & pending); 308} while (status & pending);
309desc-status &= ~running; 309desc->status &= ~running;
310desc->chip->end(); 310desc->chip->end();
311 </programlisting> 311 </programlisting>
312 </para> 312 </para>
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index 077fbe25ebf4..ccd0a953953d 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -927,7 +927,7 @@
927 <informalexample> 927 <informalexample>
928 <programlisting> 928 <programlisting>
929<![CDATA[ 929<![CDATA[
930 struct mychip *chip = (struct mychip *)card->private_data; 930 struct mychip *chip = card->private_data;
931]]> 931]]>
932 </programlisting> 932 </programlisting>
933 </informalexample> 933 </informalexample>
@@ -1095,7 +1095,7 @@
1095 1095
1096 /* release the irq */ 1096 /* release the irq */
1097 if (chip->irq >= 0) 1097 if (chip->irq >= 0)
1098 free_irq(chip->irq, (void *)chip); 1098 free_irq(chip->irq, chip);
1099 /* release the i/o ports & memory */ 1099 /* release the i/o ports & memory */
1100 pci_release_regions(chip->pci); 1100 pci_release_regions(chip->pci);
1101 /* disable the PCI entry */ 1101 /* disable the PCI entry */
@@ -1148,7 +1148,7 @@
1148 } 1148 }
1149 chip->port = pci_resource_start(pci, 0); 1149 chip->port = pci_resource_start(pci, 0);
1150 if (request_irq(pci->irq, snd_mychip_interrupt, 1150 if (request_irq(pci->irq, snd_mychip_interrupt,
1151 IRQF_DISABLED|IRQF_SHARED, "My Chip", chip)) { 1151 IRQF_SHARED, "My Chip", chip)) {
1152 printk(KERN_ERR "cannot grab irq %d\n", pci->irq); 1152 printk(KERN_ERR "cannot grab irq %d\n", pci->irq);
1153 snd_mychip_free(chip); 1153 snd_mychip_free(chip);
1154 return -EBUSY; 1154 return -EBUSY;
@@ -1387,7 +1387,7 @@
1387 <programlisting> 1387 <programlisting>
1388<![CDATA[ 1388<![CDATA[
1389 if (chip->irq >= 0) 1389 if (chip->irq >= 0)
1390 free_irq(chip->irq, (void *)chip); 1390 free_irq(chip->irq, chip);
1391]]> 1391]]>
1392 </programlisting> 1392 </programlisting>
1393 </informalexample> 1393 </informalexample>
diff --git a/MAINTAINERS b/MAINTAINERS
index dea5b2a6de0a..3e926e733878 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1277,6 +1277,12 @@ L: linux-nvidia@lists.surfsouth.com
1277W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml 1277W: http://drama.obuda.kando.hu/~fero/cgi-bin/hgafb.shtml
1278S: Maintained 1278S: Maintained
1279 1279
1280HID CORE LAYER
1281P: Jiri Kosina
1282M: jkosina@suse.cz
1283L: linux-input@atrey.karlin.mff.cuni.cz
1284S: Maintained
1285
1280HIGH-SPEED SCC DRIVER FOR AX.25 1286HIGH-SPEED SCC DRIVER FOR AX.25
1281P: Klaus Kudielka 1287P: Klaus Kudielka
1282M: klaus.kudielka@ieee.org 1288M: klaus.kudielka@ieee.org
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index f8a66b72ad5d..24a701ab33e5 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc1-git9 3# Linux kernel version: 2.6.20-rc1
4# Sat Jul 15 15:08:10 2006 4# Sat Dec 16 06:05:24 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
9CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
12CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
14CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -28,18 +32,22 @@ CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
29CONFIG_SWAP=y 33CONFIG_SWAP=y
30CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
31# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 37# CONFIG_BSD_PROCESS_ACCT is not set
33# CONFIG_TASKSTATS is not set 38# CONFIG_TASKSTATS is not set
34CONFIG_SYSCTL=y 39# CONFIG_UTS_NS is not set
35# CONFIG_AUDIT is not set 40# CONFIG_AUDIT is not set
36CONFIG_IKCONFIG=y 41CONFIG_IKCONFIG=y
37CONFIG_IKCONFIG_PROC=y 42CONFIG_IKCONFIG_PROC=y
43CONFIG_SYSFS_DEPRECATED=y
38# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
39CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
40CONFIG_UID16=y
41CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
42CONFIG_EMBEDDED=y 48CONFIG_EMBEDDED=y
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
43CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
44# CONFIG_KALLSYMS_ALL is not set 52# CONFIG_KALLSYMS_ALL is not set
45# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -48,12 +56,12 @@ CONFIG_PRINTK=y
48CONFIG_BUG=y 56CONFIG_BUG=y
49CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
50CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
51CONFIG_RT_MUTEXES=y
52CONFIG_FUTEX=y 59CONFIG_FUTEX=y
53CONFIG_EPOLL=y 60CONFIG_EPOLL=y
54CONFIG_SHMEM=y 61CONFIG_SHMEM=y
55CONFIG_SLAB=y 62CONFIG_SLAB=y
56CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
57# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
58CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
59# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -71,7 +79,10 @@ CONFIG_KMOD=y
71# 79#
72# Block layer 80# Block layer
73# 81#
82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
74# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
75 86
76# 87#
77# IO Schedulers 88# IO Schedulers
@@ -103,7 +114,9 @@ CONFIG_ARCH_EP93XX=y
103# CONFIG_ARCH_NETX is not set 114# CONFIG_ARCH_NETX is not set
104# CONFIG_ARCH_H720X is not set 115# CONFIG_ARCH_H720X is not set
105# CONFIG_ARCH_IMX is not set 116# CONFIG_ARCH_IMX is not set
106# CONFIG_ARCH_IOP3XX is not set 117# CONFIG_ARCH_IOP32X is not set
118# CONFIG_ARCH_IOP33X is not set
119# CONFIG_ARCH_IOP13XX is not set
107# CONFIG_ARCH_IXP4XX is not set 120# CONFIG_ARCH_IXP4XX is not set
108# CONFIG_ARCH_IXP2000 is not set 121# CONFIG_ARCH_IXP2000 is not set
109# CONFIG_ARCH_IXP23XX is not set 122# CONFIG_ARCH_IXP23XX is not set
@@ -127,6 +140,7 @@ CONFIG_CRUNCH=y
127# 140#
128CONFIG_MACH_ADSSPHERE=y 141CONFIG_MACH_ADSSPHERE=y
129CONFIG_MACH_EDB9302=y 142CONFIG_MACH_EDB9302=y
143CONFIG_MACH_EDB9302A=y
130CONFIG_MACH_EDB9312=y 144CONFIG_MACH_EDB9312=y
131CONFIG_MACH_EDB9315=y 145CONFIG_MACH_EDB9315=y
132CONFIG_MACH_EDB9315A=y 146CONFIG_MACH_EDB9315A=y
@@ -138,12 +152,14 @@ CONFIG_MACH_TS72XX=y
138# 152#
139CONFIG_CPU_32=y 153CONFIG_CPU_32=y
140CONFIG_CPU_ARM920T=y 154CONFIG_CPU_ARM920T=y
141CONFIG_CPU_32v4=y 155CONFIG_CPU_32v4T=y
142CONFIG_CPU_ABRT_EV4T=y 156CONFIG_CPU_ABRT_EV4T=y
143CONFIG_CPU_CACHE_V4WT=y 157CONFIG_CPU_CACHE_V4WT=y
144CONFIG_CPU_CACHE_VIVT=y 158CONFIG_CPU_CACHE_VIVT=y
145CONFIG_CPU_COPY_V4WB=y 159CONFIG_CPU_COPY_V4WB=y
146CONFIG_CPU_TLB_V4WBI=y 160CONFIG_CPU_TLB_V4WBI=y
161CONFIG_CPU_CP15=y
162CONFIG_CPU_CP15_MMU=y
147 163
148# 164#
149# Processor Features 165# Processor Features
@@ -230,6 +246,7 @@ CONFIG_PACKET_MMAP=y
230CONFIG_UNIX=y 246CONFIG_UNIX=y
231CONFIG_XFRM=y 247CONFIG_XFRM=y
232# CONFIG_XFRM_USER is not set 248# CONFIG_XFRM_USER is not set
249# CONFIG_XFRM_SUB_POLICY is not set
233CONFIG_NET_KEY=y 250CONFIG_NET_KEY=y
234CONFIG_INET=y 251CONFIG_INET=y
235# CONFIG_IP_MULTICAST is not set 252# CONFIG_IP_MULTICAST is not set
@@ -250,13 +267,29 @@ CONFIG_SYN_COOKIES=y
250# CONFIG_INET_TUNNEL is not set 267# CONFIG_INET_TUNNEL is not set
251CONFIG_INET_XFRM_MODE_TRANSPORT=y 268CONFIG_INET_XFRM_MODE_TRANSPORT=y
252CONFIG_INET_XFRM_MODE_TUNNEL=y 269CONFIG_INET_XFRM_MODE_TUNNEL=y
270CONFIG_INET_XFRM_MODE_BEET=y
253CONFIG_INET_DIAG=y 271CONFIG_INET_DIAG=y
254CONFIG_INET_TCP_DIAG=y 272CONFIG_INET_TCP_DIAG=y
255# CONFIG_TCP_CONG_ADVANCED is not set 273# CONFIG_TCP_CONG_ADVANCED is not set
256CONFIG_TCP_CONG_BIC=y 274CONFIG_TCP_CONG_CUBIC=y
257# CONFIG_IPV6 is not set 275CONFIG_DEFAULT_TCP_CONG="cubic"
276# CONFIG_TCP_MD5SIG is not set
277CONFIG_IPV6=y
278# CONFIG_IPV6_PRIVACY is not set
279# CONFIG_IPV6_ROUTER_PREF is not set
280# CONFIG_INET6_AH is not set
281# CONFIG_INET6_ESP is not set
282# CONFIG_INET6_IPCOMP is not set
283# CONFIG_IPV6_MIP6 is not set
258# CONFIG_INET6_XFRM_TUNNEL is not set 284# CONFIG_INET6_XFRM_TUNNEL is not set
259# CONFIG_INET6_TUNNEL is not set 285# CONFIG_INET6_TUNNEL is not set
286# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
287# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
288# CONFIG_INET6_XFRM_MODE_BEET is not set
289# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
290# CONFIG_IPV6_SIT is not set
291# CONFIG_IPV6_TUNNEL is not set
292# CONFIG_IPV6_MULTIPLE_TABLES is not set
260# CONFIG_NETWORK_SECMARK is not set 293# CONFIG_NETWORK_SECMARK is not set
261# CONFIG_NETFILTER is not set 294# CONFIG_NETFILTER is not set
262 295
@@ -283,7 +316,6 @@ CONFIG_TCP_CONG_BIC=y
283# CONFIG_ATALK is not set 316# CONFIG_ATALK is not set
284# CONFIG_X25 is not set 317# CONFIG_X25 is not set
285# CONFIG_LAPB is not set 318# CONFIG_LAPB is not set
286# CONFIG_NET_DIVERT is not set
287# CONFIG_ECONET is not set 319# CONFIG_ECONET is not set
288# CONFIG_WAN_ROUTER is not set 320# CONFIG_WAN_ROUTER is not set
289 321
@@ -330,7 +362,7 @@ CONFIG_MTD_REDBOOT_PARTS=y
330CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 362CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
331# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set 363# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
332# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set 364# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
333# CONFIG_MTD_CMDLINE_PARTS is not set 365CONFIG_MTD_CMDLINE_PARTS=y
334# CONFIG_MTD_AFS_PARTS is not set 366# CONFIG_MTD_AFS_PARTS is not set
335 367
336# 368#
@@ -342,6 +374,7 @@ CONFIG_MTD_BLOCK=y
342# CONFIG_NFTL is not set 374# CONFIG_NFTL is not set
343# CONFIG_INFTL is not set 375# CONFIG_INFTL is not set
344# CONFIG_RFD_FTL is not set 376# CONFIG_RFD_FTL is not set
377# CONFIG_SSFDC is not set
345 378
346# 379#
347# RAM/ROM/Flash chip drivers 380# RAM/ROM/Flash chip drivers
@@ -430,7 +463,7 @@ CONFIG_MTD_NAND_IDS=y
430# 463#
431# CONFIG_BLK_DEV_COW_COMMON is not set 464# CONFIG_BLK_DEV_COW_COMMON is not set
432# CONFIG_BLK_DEV_LOOP is not set 465# CONFIG_BLK_DEV_LOOP is not set
433# CONFIG_BLK_DEV_NBD is not set 466CONFIG_BLK_DEV_NBD=y
434# CONFIG_BLK_DEV_UB is not set 467# CONFIG_BLK_DEV_UB is not set
435# CONFIG_BLK_DEV_RAM is not set 468# CONFIG_BLK_DEV_RAM is not set
436# CONFIG_BLK_DEV_INITRD is not set 469# CONFIG_BLK_DEV_INITRD is not set
@@ -442,6 +475,8 @@ CONFIG_MTD_NAND_IDS=y
442# 475#
443# CONFIG_RAID_ATTRS is not set 476# CONFIG_RAID_ATTRS is not set
444CONFIG_SCSI=y 477CONFIG_SCSI=y
478# CONFIG_SCSI_TGT is not set
479# CONFIG_SCSI_NETLINK is not set
445# CONFIG_SCSI_PROC_FS is not set 480# CONFIG_SCSI_PROC_FS is not set
446 481
447# 482#
@@ -460,23 +495,29 @@ CONFIG_BLK_DEV_SD=y
460# CONFIG_SCSI_MULTI_LUN is not set 495# CONFIG_SCSI_MULTI_LUN is not set
461# CONFIG_SCSI_CONSTANTS is not set 496# CONFIG_SCSI_CONSTANTS is not set
462# CONFIG_SCSI_LOGGING is not set 497# CONFIG_SCSI_LOGGING is not set
498# CONFIG_SCSI_SCAN_ASYNC is not set
463 499
464# 500#
465# SCSI Transport Attributes 501# SCSI Transports
466# 502#
467# CONFIG_SCSI_SPI_ATTRS is not set 503# CONFIG_SCSI_SPI_ATTRS is not set
468# CONFIG_SCSI_FC_ATTRS is not set 504# CONFIG_SCSI_FC_ATTRS is not set
469# CONFIG_SCSI_ISCSI_ATTRS is not set 505# CONFIG_SCSI_ISCSI_ATTRS is not set
470# CONFIG_SCSI_SAS_ATTRS is not set 506# CONFIG_SCSI_SAS_ATTRS is not set
507# CONFIG_SCSI_SAS_LIBSAS is not set
471 508
472# 509#
473# SCSI low-level drivers 510# SCSI low-level drivers
474# 511#
475# CONFIG_ISCSI_TCP is not set 512# CONFIG_ISCSI_TCP is not set
476# CONFIG_SCSI_SATA is not set
477# CONFIG_SCSI_DEBUG is not set 513# CONFIG_SCSI_DEBUG is not set
478 514
479# 515#
516# Serial ATA (prod) and Parallel ATA (experimental) drivers
517#
518# CONFIG_ATA is not set
519
520#
480# Multi-device support (RAID and LVM) 521# Multi-device support (RAID and LVM)
481# 522#
482# CONFIG_MD is not set 523# CONFIG_MD is not set
@@ -513,6 +554,7 @@ CONFIG_NETDEVICES=y
513# 554#
514CONFIG_NET_ETHERNET=y 555CONFIG_NET_ETHERNET=y
515CONFIG_MII=y 556CONFIG_MII=y
557CONFIG_EP93XX_ETH=y
516# CONFIG_SMC91X is not set 558# CONFIG_SMC91X is not set
517# CONFIG_DM9000 is not set 559# CONFIG_DM9000 is not set
518 560
@@ -607,17 +649,12 @@ CONFIG_EP93XX_WATCHDOG=y
607# CONFIG_NVRAM is not set 649# CONFIG_NVRAM is not set
608# CONFIG_DTLK is not set 650# CONFIG_DTLK is not set
609# CONFIG_R3964 is not set 651# CONFIG_R3964 is not set
610
611#
612# Ftape, the floppy tape device driver
613#
614# CONFIG_RAW_DRIVER is not set 652# CONFIG_RAW_DRIVER is not set
615 653
616# 654#
617# TPM devices 655# TPM devices
618# 656#
619# CONFIG_TCG_TPM is not set 657# CONFIG_TCG_TPM is not set
620# CONFIG_TELCLOCK is not set
621 658
622# 659#
623# I2C support 660# I2C support
@@ -645,7 +682,7 @@ CONFIG_I2C_ALGOBIT=y
645# 682#
646# CONFIG_SENSORS_DS1337 is not set 683# CONFIG_SENSORS_DS1337 is not set
647# CONFIG_SENSORS_DS1374 is not set 684# CONFIG_SENSORS_DS1374 is not set
648# CONFIG_SENSORS_EEPROM is not set 685CONFIG_SENSORS_EEPROM=y
649# CONFIG_SENSORS_PCF8574 is not set 686# CONFIG_SENSORS_PCF8574 is not set
650# CONFIG_SENSORS_PCA9539 is not set 687# CONFIG_SENSORS_PCA9539 is not set
651# CONFIG_SENSORS_PCF8591 is not set 688# CONFIG_SENSORS_PCF8591 is not set
@@ -664,6 +701,7 @@ CONFIG_I2C_DEBUG_CHIP=y
664# 701#
665# Dallas's 1-wire bus 702# Dallas's 1-wire bus
666# 703#
704# CONFIG_W1 is not set
667 705
668# 706#
669# Hardware Monitoring support 707# Hardware Monitoring support
@@ -697,12 +735,15 @@ CONFIG_HWMON=y
697# CONFIG_SENSORS_LM92 is not set 735# CONFIG_SENSORS_LM92 is not set
698# CONFIG_SENSORS_MAX1619 is not set 736# CONFIG_SENSORS_MAX1619 is not set
699# CONFIG_SENSORS_PC87360 is not set 737# CONFIG_SENSORS_PC87360 is not set
738# CONFIG_SENSORS_PC87427 is not set
700# CONFIG_SENSORS_SMSC47M1 is not set 739# CONFIG_SENSORS_SMSC47M1 is not set
701# CONFIG_SENSORS_SMSC47M192 is not set 740# CONFIG_SENSORS_SMSC47M192 is not set
702# CONFIG_SENSORS_SMSC47B397 is not set 741# CONFIG_SENSORS_SMSC47B397 is not set
742# CONFIG_SENSORS_VT1211 is not set
703# CONFIG_SENSORS_W83781D is not set 743# CONFIG_SENSORS_W83781D is not set
704# CONFIG_SENSORS_W83791D is not set 744# CONFIG_SENSORS_W83791D is not set
705# CONFIG_SENSORS_W83792D is not set 745# CONFIG_SENSORS_W83792D is not set
746# CONFIG_SENSORS_W83793 is not set
706# CONFIG_SENSORS_W83L785TS is not set 747# CONFIG_SENSORS_W83L785TS is not set
707# CONFIG_SENSORS_W83627HF is not set 748# CONFIG_SENSORS_W83627HF is not set
708# CONFIG_SENSORS_W83627EHF is not set 749# CONFIG_SENSORS_W83627EHF is not set
@@ -711,6 +752,7 @@ CONFIG_HWMON=y
711# 752#
712# Misc devices 753# Misc devices
713# 754#
755# CONFIG_TIFM_CORE is not set
714 756
715# 757#
716# LED devices 758# LED devices
@@ -729,7 +771,6 @@ CONFIG_HWMON=y
729# Multimedia devices 771# Multimedia devices
730# 772#
731# CONFIG_VIDEO_DEV is not set 773# CONFIG_VIDEO_DEV is not set
732CONFIG_VIDEO_V4L2=y
733 774
734# 775#
735# Digital Video Broadcasting Devices 776# Digital Video Broadcasting Devices
@@ -742,6 +783,7 @@ CONFIG_VIDEO_V4L2=y
742# 783#
743# CONFIG_FIRMWARE_EDID is not set 784# CONFIG_FIRMWARE_EDID is not set
744# CONFIG_FB is not set 785# CONFIG_FB is not set
786# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
745 787
746# 788#
747# Sound 789# Sound
@@ -763,6 +805,7 @@ CONFIG_USB_DEBUG=y
763CONFIG_USB_DEVICEFS=y 805CONFIG_USB_DEVICEFS=y
764# CONFIG_USB_BANDWIDTH is not set 806# CONFIG_USB_BANDWIDTH is not set
765CONFIG_USB_DYNAMIC_MINORS=y 807CONFIG_USB_DYNAMIC_MINORS=y
808# CONFIG_USB_MULTITHREAD_PROBE is not set
766# CONFIG_USB_OTG is not set 809# CONFIG_USB_OTG is not set
767 810
768# 811#
@@ -797,12 +840,12 @@ CONFIG_USB_STORAGE=y
797# CONFIG_USB_STORAGE_SDDR55 is not set 840# CONFIG_USB_STORAGE_SDDR55 is not set
798# CONFIG_USB_STORAGE_JUMPSHOT is not set 841# CONFIG_USB_STORAGE_JUMPSHOT is not set
799# CONFIG_USB_STORAGE_ALAUDA is not set 842# CONFIG_USB_STORAGE_ALAUDA is not set
843# CONFIG_USB_STORAGE_KARMA is not set
800# CONFIG_USB_LIBUSUAL is not set 844# CONFIG_USB_LIBUSUAL is not set
801 845
802# 846#
803# USB Input Devices 847# USB Input Devices
804# 848#
805# CONFIG_USB_HID is not set
806 849
807# 850#
808# USB HID Boot Protocol drivers 851# USB HID Boot Protocol drivers
@@ -821,6 +864,7 @@ CONFIG_USB_STORAGE=y
821# CONFIG_USB_KAWETH is not set 864# CONFIG_USB_KAWETH is not set
822# CONFIG_USB_PEGASUS is not set 865# CONFIG_USB_PEGASUS is not set
823CONFIG_USB_RTL8150=y 866CONFIG_USB_RTL8150=y
867# CONFIG_USB_USBNET_MII is not set
824# CONFIG_USB_USBNET is not set 868# CONFIG_USB_USBNET is not set
825# CONFIG_USB_MON is not set 869# CONFIG_USB_MON is not set
826 870
@@ -834,8 +878,8 @@ CONFIG_USB_RTL8150=y
834CONFIG_USB_SERIAL=y 878CONFIG_USB_SERIAL=y
835CONFIG_USB_SERIAL_CONSOLE=y 879CONFIG_USB_SERIAL_CONSOLE=y
836# CONFIG_USB_SERIAL_GENERIC is not set 880# CONFIG_USB_SERIAL_GENERIC is not set
881# CONFIG_USB_SERIAL_AIRCABLE is not set
837# CONFIG_USB_SERIAL_AIRPRIME is not set 882# CONFIG_USB_SERIAL_AIRPRIME is not set
838# CONFIG_USB_SERIAL_ANYDATA is not set
839# CONFIG_USB_SERIAL_ARK3116 is not set 883# CONFIG_USB_SERIAL_ARK3116 is not set
840# CONFIG_USB_SERIAL_BELKIN is not set 884# CONFIG_USB_SERIAL_BELKIN is not set
841# CONFIG_USB_SERIAL_WHITEHEAT is not set 885# CONFIG_USB_SERIAL_WHITEHEAT is not set
@@ -857,6 +901,8 @@ CONFIG_USB_SERIAL_CONSOLE=y
857# CONFIG_USB_SERIAL_KLSI is not set 901# CONFIG_USB_SERIAL_KLSI is not set
858# CONFIG_USB_SERIAL_KOBIL_SCT is not set 902# CONFIG_USB_SERIAL_KOBIL_SCT is not set
859# CONFIG_USB_SERIAL_MCT_U232 is not set 903# CONFIG_USB_SERIAL_MCT_U232 is not set
904# CONFIG_USB_SERIAL_MOS7720 is not set
905# CONFIG_USB_SERIAL_MOS7840 is not set
860# CONFIG_USB_SERIAL_NAVMAN is not set 906# CONFIG_USB_SERIAL_NAVMAN is not set
861CONFIG_USB_SERIAL_PL2303=y 907CONFIG_USB_SERIAL_PL2303=y
862# CONFIG_USB_SERIAL_HP4X is not set 908# CONFIG_USB_SERIAL_HP4X is not set
@@ -867,12 +913,14 @@ CONFIG_USB_SERIAL_PL2303=y
867# CONFIG_USB_SERIAL_XIRCOM is not set 913# CONFIG_USB_SERIAL_XIRCOM is not set
868# CONFIG_USB_SERIAL_OPTION is not set 914# CONFIG_USB_SERIAL_OPTION is not set
869# CONFIG_USB_SERIAL_OMNINET is not set 915# CONFIG_USB_SERIAL_OMNINET is not set
916# CONFIG_USB_SERIAL_DEBUG is not set
870 917
871# 918#
872# USB Miscellaneous drivers 919# USB Miscellaneous drivers
873# 920#
874# CONFIG_USB_EMI62 is not set 921# CONFIG_USB_EMI62 is not set
875# CONFIG_USB_EMI26 is not set 922# CONFIG_USB_EMI26 is not set
923# CONFIG_USB_ADUTUX is not set
876# CONFIG_USB_AUERSWALD is not set 924# CONFIG_USB_AUERSWALD is not set
877# CONFIG_USB_RIO500 is not set 925# CONFIG_USB_RIO500 is not set
878# CONFIG_USB_LEGOTOWER is not set 926# CONFIG_USB_LEGOTOWER is not set
@@ -880,11 +928,12 @@ CONFIG_USB_SERIAL_PL2303=y
880# CONFIG_USB_LED is not set 928# CONFIG_USB_LED is not set
881# CONFIG_USB_CYPRESS_CY7C63 is not set 929# CONFIG_USB_CYPRESS_CY7C63 is not set
882# CONFIG_USB_CYTHERM is not set 930# CONFIG_USB_CYTHERM is not set
883# CONFIG_USB_PHIDGETKIT is not set 931# CONFIG_USB_PHIDGET is not set
884# CONFIG_USB_PHIDGETSERVO is not set
885# CONFIG_USB_IDMOUSE is not set 932# CONFIG_USB_IDMOUSE is not set
933# CONFIG_USB_FTDI_ELAN is not set
886# CONFIG_USB_APPLEDISPLAY is not set 934# CONFIG_USB_APPLEDISPLAY is not set
887# CONFIG_USB_LD is not set 935# CONFIG_USB_LD is not set
936# CONFIG_USB_TRANCEVIBRATOR is not set
888# CONFIG_USB_TEST is not set 937# CONFIG_USB_TEST is not set
889 938
890# 939#
@@ -908,6 +957,7 @@ CONFIG_RTC_LIB=y
908CONFIG_RTC_CLASS=y 957CONFIG_RTC_CLASS=y
909CONFIG_RTC_HCTOSYS=y 958CONFIG_RTC_HCTOSYS=y
910CONFIG_RTC_HCTOSYS_DEVICE="rtc0" 959CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
960# CONFIG_RTC_DEBUG is not set
911 961
912# 962#
913# RTC interfaces 963# RTC interfaces
@@ -921,7 +971,7 @@ CONFIG_RTC_INTF_DEV=y
921# RTC drivers 971# RTC drivers
922# 972#
923# CONFIG_RTC_DRV_X1205 is not set 973# CONFIG_RTC_DRV_X1205 is not set
924# CONFIG_RTC_DRV_DS1307 is not set 974CONFIG_RTC_DRV_DS1307=y
925# CONFIG_RTC_DRV_DS1553 is not set 975# CONFIG_RTC_DRV_DS1553 is not set
926# CONFIG_RTC_DRV_ISL1208 is not set 976# CONFIG_RTC_DRV_ISL1208 is not set
927# CONFIG_RTC_DRV_DS1672 is not set 977# CONFIG_RTC_DRV_DS1672 is not set
@@ -943,12 +993,14 @@ CONFIG_EXT2_FS=y
943# CONFIG_EXT2_FS_XIP is not set 993# CONFIG_EXT2_FS_XIP is not set
944CONFIG_EXT3_FS=y 994CONFIG_EXT3_FS=y
945# CONFIG_EXT3_FS_XATTR is not set 995# CONFIG_EXT3_FS_XATTR is not set
996# CONFIG_EXT4DEV_FS is not set
946CONFIG_JBD=y 997CONFIG_JBD=y
947# CONFIG_JBD_DEBUG is not set 998# CONFIG_JBD_DEBUG is not set
948# CONFIG_REISERFS_FS is not set 999# CONFIG_REISERFS_FS is not set
949# CONFIG_JFS_FS is not set 1000# CONFIG_JFS_FS is not set
950# CONFIG_FS_POSIX_ACL is not set 1001# CONFIG_FS_POSIX_ACL is not set
951# CONFIG_XFS_FS is not set 1002# CONFIG_XFS_FS is not set
1003# CONFIG_GFS2_FS is not set
952# CONFIG_OCFS2_FS is not set 1004# CONFIG_OCFS2_FS is not set
953# CONFIG_MINIX_FS is not set 1005# CONFIG_MINIX_FS is not set
954# CONFIG_ROMFS_FS is not set 1006# CONFIG_ROMFS_FS is not set
@@ -980,8 +1032,10 @@ CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
980# Pseudo filesystems 1032# Pseudo filesystems
981# 1033#
982CONFIG_PROC_FS=y 1034CONFIG_PROC_FS=y
1035CONFIG_PROC_SYSCTL=y
983CONFIG_SYSFS=y 1036CONFIG_SYSFS=y
984CONFIG_TMPFS=y 1037CONFIG_TMPFS=y
1038# CONFIG_TMPFS_POSIX_ACL is not set
985# CONFIG_HUGETLB_PAGE is not set 1039# CONFIG_HUGETLB_PAGE is not set
986CONFIG_RAMFS=y 1040CONFIG_RAMFS=y
987# CONFIG_CONFIGFS_FS is not set 1041# CONFIG_CONFIGFS_FS is not set
@@ -1102,6 +1156,11 @@ CONFIG_NLS_ISO8859_1=y
1102# CONFIG_NLS_UTF8 is not set 1156# CONFIG_NLS_UTF8 is not set
1103 1157
1104# 1158#
1159# Distributed Lock Manager
1160#
1161# CONFIG_DLM is not set
1162
1163#
1105# Profiling support 1164# Profiling support
1106# 1165#
1107# CONFIG_PROFILING is not set 1166# CONFIG_PROFILING is not set
@@ -1110,8 +1169,11 @@ CONFIG_NLS_ISO8859_1=y
1110# Kernel hacking 1169# Kernel hacking
1111# 1170#
1112# CONFIG_PRINTK_TIME is not set 1171# CONFIG_PRINTK_TIME is not set
1172CONFIG_ENABLE_MUST_CHECK=y
1113CONFIG_MAGIC_SYSRQ=y 1173CONFIG_MAGIC_SYSRQ=y
1114# CONFIG_UNUSED_SYMBOLS is not set 1174# CONFIG_UNUSED_SYMBOLS is not set
1175# CONFIG_DEBUG_FS is not set
1176# CONFIG_HEADERS_CHECK is not set
1115CONFIG_DEBUG_KERNEL=y 1177CONFIG_DEBUG_KERNEL=y
1116CONFIG_LOG_BUF_SHIFT=14 1178CONFIG_LOG_BUF_SHIFT=14
1117CONFIG_DETECT_SOFTLOCKUP=y 1179CONFIG_DETECT_SOFTLOCKUP=y
@@ -1128,10 +1190,9 @@ CONFIG_DEBUG_MUTEXES=y
1128# CONFIG_DEBUG_KOBJECT is not set 1190# CONFIG_DEBUG_KOBJECT is not set
1129CONFIG_DEBUG_BUGVERBOSE=y 1191CONFIG_DEBUG_BUGVERBOSE=y
1130# CONFIG_DEBUG_INFO is not set 1192# CONFIG_DEBUG_INFO is not set
1131# CONFIG_DEBUG_FS is not set
1132# CONFIG_DEBUG_VM is not set 1193# CONFIG_DEBUG_VM is not set
1194# CONFIG_DEBUG_LIST is not set
1133CONFIG_FRAME_POINTER=y 1195CONFIG_FRAME_POINTER=y
1134# CONFIG_UNWIND_INFO is not set
1135CONFIG_FORCED_INLINING=y 1196CONFIG_FORCED_INLINING=y
1136# CONFIG_RCU_TORTURE_TEST is not set 1197# CONFIG_RCU_TORTURE_TEST is not set
1137CONFIG_DEBUG_USER=y 1198CONFIG_DEBUG_USER=y
@@ -1151,12 +1212,9 @@ CONFIG_DEBUG_LL=y
1151# CONFIG_CRYPTO is not set 1212# CONFIG_CRYPTO is not set
1152 1213
1153# 1214#
1154# Hardware crypto devices
1155#
1156
1157#
1158# Library routines 1215# Library routines
1159# 1216#
1217CONFIG_BITREVERSE=y
1160# CONFIG_CRC_CCITT is not set 1218# CONFIG_CRC_CCITT is not set
1161# CONFIG_CRC16 is not set 1219# CONFIG_CRC16 is not set
1162CONFIG_CRC32=y 1220CONFIG_CRC32=y
@@ -1164,3 +1222,4 @@ CONFIG_LIBCRC32C=y
1164CONFIG_ZLIB_INFLATE=y 1222CONFIG_ZLIB_INFLATE=y
1165CONFIG_ZLIB_DEFLATE=y 1223CONFIG_ZLIB_DEFLATE=y
1166CONFIG_PLIST=y 1224CONFIG_PLIST=y
1225CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/iop13xx_defconfig b/arch/arm/configs/iop13xx_defconfig
index f6e46193fd26..43c4a37e9247 100644
--- a/arch/arm/configs/iop13xx_defconfig
+++ b/arch/arm/configs/iop13xx_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.19 3# Linux kernel version: 2.6.20-rc1-git5
4# Fri Dec 1 10:51:01 2006 4# Tue Dec 19 21:38:01 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set 7# CONFIG_GENERIC_TIME is not set
@@ -11,6 +11,8 @@ CONFIG_TRACE_IRQFLAGS_SUPPORT=y
11CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
12CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
13CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
14CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
15CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
16CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -39,6 +41,7 @@ CONFIG_BSD_PROCESS_ACCT=y
39# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
40CONFIG_IKCONFIG=y 42CONFIG_IKCONFIG=y
41CONFIG_IKCONFIG_PROC=y 43CONFIG_IKCONFIG_PROC=y
44CONFIG_SYSFS_DEPRECATED=y
42# CONFIG_RELAY is not set 45# CONFIG_RELAY is not set
43CONFIG_INITRAMFS_SOURCE="" 46CONFIG_INITRAMFS_SOURCE=""
44# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 47# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
@@ -77,7 +80,9 @@ CONFIG_KMOD=y
77# Block layer 80# Block layer
78# 81#
79CONFIG_BLOCK=y 82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
80# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
81 86
82# 87#
83# IO Schedulers 88# IO Schedulers
@@ -154,11 +159,13 @@ CONFIG_IO_36=y
154CONFIG_ARM_THUMB=y 159CONFIG_ARM_THUMB=y
155# CONFIG_CPU_DCACHE_DISABLE is not set 160# CONFIG_CPU_DCACHE_DISABLE is not set
156# CONFIG_CPU_BPREDICT_DISABLE is not set 161# CONFIG_CPU_BPREDICT_DISABLE is not set
162# CONFIG_IWMMXT is not set
157 163
158# 164#
159# Bus support 165# Bus support
160# 166#
161CONFIG_PCI=y 167CONFIG_PCI=y
168# CONFIG_PCI_MULTITHREAD_PROBE is not set
162 169
163# 170#
164# PCCARD (PCMCIA/CardBus) support 171# PCCARD (PCMCIA/CardBus) support
@@ -259,9 +266,23 @@ CONFIG_INET_TCP_DIAG=y
259# CONFIG_TCP_CONG_ADVANCED is not set 266# CONFIG_TCP_CONG_ADVANCED is not set
260CONFIG_TCP_CONG_CUBIC=y 267CONFIG_TCP_CONG_CUBIC=y
261CONFIG_DEFAULT_TCP_CONG="cubic" 268CONFIG_DEFAULT_TCP_CONG="cubic"
262# CONFIG_IPV6 is not set 269# CONFIG_TCP_MD5SIG is not set
270CONFIG_IPV6=y
271# CONFIG_IPV6_PRIVACY is not set
272# CONFIG_IPV6_ROUTER_PREF is not set
273# CONFIG_INET6_AH is not set
274# CONFIG_INET6_ESP is not set
275# CONFIG_INET6_IPCOMP is not set
276# CONFIG_IPV6_MIP6 is not set
263# CONFIG_INET6_XFRM_TUNNEL is not set 277# CONFIG_INET6_XFRM_TUNNEL is not set
264# CONFIG_INET6_TUNNEL is not set 278# CONFIG_INET6_TUNNEL is not set
279# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
280# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
281# CONFIG_INET6_XFRM_MODE_BEET is not set
282# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
283# CONFIG_IPV6_SIT is not set
284# CONFIG_IPV6_TUNNEL is not set
285# CONFIG_IPV6_MULTIPLE_TABLES is not set
265# CONFIG_NETWORK_SECMARK is not set 286# CONFIG_NETWORK_SECMARK is not set
266# CONFIG_NETFILTER is not set 287# CONFIG_NETFILTER is not set
267 288
@@ -433,7 +454,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
433# CONFIG_BLK_DEV_UMEM is not set 454# CONFIG_BLK_DEV_UMEM is not set
434# CONFIG_BLK_DEV_COW_COMMON is not set 455# CONFIG_BLK_DEV_COW_COMMON is not set
435# CONFIG_BLK_DEV_LOOP is not set 456# CONFIG_BLK_DEV_LOOP is not set
436# CONFIG_BLK_DEV_NBD is not set 457CONFIG_BLK_DEV_NBD=y
437# CONFIG_BLK_DEV_SX8 is not set 458# CONFIG_BLK_DEV_SX8 is not set
438CONFIG_BLK_DEV_RAM=y 459CONFIG_BLK_DEV_RAM=y
439CONFIG_BLK_DEV_RAM_COUNT=2 460CONFIG_BLK_DEV_RAM_COUNT=2
@@ -448,6 +469,7 @@ CONFIG_BLK_DEV_INITRD=y
448# 469#
449# CONFIG_RAID_ATTRS is not set 470# CONFIG_RAID_ATTRS is not set
450CONFIG_SCSI=y 471CONFIG_SCSI=y
472# CONFIG_SCSI_TGT is not set
451# CONFIG_SCSI_NETLINK is not set 473# CONFIG_SCSI_NETLINK is not set
452CONFIG_SCSI_PROC_FS=y 474CONFIG_SCSI_PROC_FS=y
453 475
@@ -467,6 +489,7 @@ CONFIG_CHR_DEV_SG=y
467# CONFIG_SCSI_MULTI_LUN is not set 489# CONFIG_SCSI_MULTI_LUN is not set
468CONFIG_SCSI_CONSTANTS=y 490CONFIG_SCSI_CONSTANTS=y
469# CONFIG_SCSI_LOGGING is not set 491# CONFIG_SCSI_LOGGING is not set
492# CONFIG_SCSI_SCAN_ASYNC is not set
470 493
471# 494#
472# SCSI Transports 495# SCSI Transports
@@ -510,6 +533,7 @@ CONFIG_SCSI_SAS_ATTRS=y
510# CONFIG_SCSI_DC390T is not set 533# CONFIG_SCSI_DC390T is not set
511# CONFIG_SCSI_NSP32 is not set 534# CONFIG_SCSI_NSP32 is not set
512# CONFIG_SCSI_DEBUG is not set 535# CONFIG_SCSI_DEBUG is not set
536# CONFIG_SCSI_SRP is not set
513 537
514# 538#
515# Serial ATA (prod) and Parallel ATA (experimental) drivers 539# Serial ATA (prod) and Parallel ATA (experimental) drivers
@@ -605,6 +629,7 @@ CONFIG_E1000_NAPI=y
605# CONFIG_IXGB is not set 629# CONFIG_IXGB is not set
606# CONFIG_S2IO is not set 630# CONFIG_S2IO is not set
607# CONFIG_MYRI10GE is not set 631# CONFIG_MYRI10GE is not set
632# CONFIG_NETXEN_NIC is not set
608 633
609# 634#
610# Token Ring devices 635# Token Ring devices
@@ -711,10 +736,6 @@ CONFIG_HW_RANDOM=y
711# CONFIG_DTLK is not set 736# CONFIG_DTLK is not set
712# CONFIG_R3964 is not set 737# CONFIG_R3964 is not set
713# CONFIG_APPLICOM is not set 738# CONFIG_APPLICOM is not set
714
715#
716# Ftape, the floppy tape device driver
717#
718# CONFIG_DRM is not set 739# CONFIG_DRM is not set
719# CONFIG_RAW_DRIVER is not set 740# CONFIG_RAW_DRIVER is not set
720 741
@@ -820,6 +841,7 @@ CONFIG_HWMON=y
820# CONFIG_SENSORS_LM92 is not set 841# CONFIG_SENSORS_LM92 is not set
821# CONFIG_SENSORS_MAX1619 is not set 842# CONFIG_SENSORS_MAX1619 is not set
822# CONFIG_SENSORS_PC87360 is not set 843# CONFIG_SENSORS_PC87360 is not set
844# CONFIG_SENSORS_PC87427 is not set
823# CONFIG_SENSORS_SIS5595 is not set 845# CONFIG_SENSORS_SIS5595 is not set
824# CONFIG_SENSORS_SMSC47M1 is not set 846# CONFIG_SENSORS_SMSC47M1 is not set
825# CONFIG_SENSORS_SMSC47M192 is not set 847# CONFIG_SENSORS_SMSC47M192 is not set
@@ -830,6 +852,7 @@ CONFIG_HWMON=y
830# CONFIG_SENSORS_W83781D is not set 852# CONFIG_SENSORS_W83781D is not set
831# CONFIG_SENSORS_W83791D is not set 853# CONFIG_SENSORS_W83791D is not set
832# CONFIG_SENSORS_W83792D is not set 854# CONFIG_SENSORS_W83792D is not set
855# CONFIG_SENSORS_W83793 is not set
833# CONFIG_SENSORS_W83L785TS is not set 856# CONFIG_SENSORS_W83L785TS is not set
834# CONFIG_SENSORS_W83627HF is not set 857# CONFIG_SENSORS_W83627HF is not set
835# CONFIG_SENSORS_W83627EHF is not set 858# CONFIG_SENSORS_W83627EHF is not set
@@ -883,6 +906,11 @@ CONFIG_DUMMY_CONSOLE=y
883# CONFIG_SOUND is not set 906# CONFIG_SOUND is not set
884 907
885# 908#
909# HID Devices
910#
911CONFIG_HID=y
912
913#
886# USB support 914# USB support
887# 915#
888CONFIG_USB_ARCH_HAS_HCD=y 916CONFIG_USB_ARCH_HAS_HCD=y
@@ -970,6 +998,7 @@ CONFIG_RAMFS=y
970# 998#
971# CONFIG_ADFS_FS is not set 999# CONFIG_ADFS_FS is not set
972# CONFIG_AFFS_FS is not set 1000# CONFIG_AFFS_FS is not set
1001CONFIG_ECRYPT_FS=y
973# CONFIG_HFS_FS is not set 1002# CONFIG_HFS_FS is not set
974# CONFIG_HFSPLUS_FS is not set 1003# CONFIG_HFSPLUS_FS is not set
975# CONFIG_BEFS_FS is not set 1004# CONFIG_BEFS_FS is not set
@@ -1092,6 +1121,11 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1092# CONFIG_NLS_UTF8 is not set 1121# CONFIG_NLS_UTF8 is not set
1093 1122
1094# 1123#
1124# Distributed Lock Manager
1125#
1126# CONFIG_DLM is not set
1127
1128#
1095# Profiling support 1129# Profiling support
1096# 1130#
1097# CONFIG_PROFILING is not set 1131# CONFIG_PROFILING is not set
@@ -1103,28 +1137,68 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1103CONFIG_ENABLE_MUST_CHECK=y 1137CONFIG_ENABLE_MUST_CHECK=y
1104# CONFIG_MAGIC_SYSRQ is not set 1138# CONFIG_MAGIC_SYSRQ is not set
1105# CONFIG_UNUSED_SYMBOLS is not set 1139# CONFIG_UNUSED_SYMBOLS is not set
1140# CONFIG_DEBUG_FS is not set
1141# CONFIG_HEADERS_CHECK is not set
1106# CONFIG_DEBUG_KERNEL is not set 1142# CONFIG_DEBUG_KERNEL is not set
1107CONFIG_LOG_BUF_SHIFT=14 1143CONFIG_LOG_BUF_SHIFT=14
1108CONFIG_DEBUG_BUGVERBOSE=y 1144CONFIG_DEBUG_BUGVERBOSE=y
1109# CONFIG_DEBUG_FS is not set
1110CONFIG_FRAME_POINTER=y 1145CONFIG_FRAME_POINTER=y
1111# CONFIG_HEADERS_CHECK is not set
1112CONFIG_DEBUG_USER=y 1146CONFIG_DEBUG_USER=y
1113 1147
1114# 1148#
1115# Security options 1149# Security options
1116# 1150#
1117# CONFIG_KEYS is not set 1151CONFIG_KEYS=y
1152CONFIG_KEYS_DEBUG_PROC_KEYS=y
1118# CONFIG_SECURITY is not set 1153# CONFIG_SECURITY is not set
1119 1154
1120# 1155#
1121# Cryptographic options 1156# Cryptographic options
1122# 1157#
1123# CONFIG_CRYPTO is not set 1158CONFIG_CRYPTO=y
1159CONFIG_CRYPTO_ALGAPI=y
1160CONFIG_CRYPTO_BLKCIPHER=y
1161CONFIG_CRYPTO_HASH=y
1162CONFIG_CRYPTO_MANAGER=y
1163CONFIG_CRYPTO_HMAC=y
1164CONFIG_CRYPTO_XCBC=y
1165CONFIG_CRYPTO_NULL=y
1166CONFIG_CRYPTO_MD4=y
1167CONFIG_CRYPTO_MD5=y
1168CONFIG_CRYPTO_SHA1=y
1169CONFIG_CRYPTO_SHA256=y
1170CONFIG_CRYPTO_SHA512=y
1171CONFIG_CRYPTO_WP512=y
1172CONFIG_CRYPTO_TGR192=y
1173CONFIG_CRYPTO_GF128MUL=y
1174CONFIG_CRYPTO_ECB=y
1175CONFIG_CRYPTO_CBC=y
1176CONFIG_CRYPTO_LRW=y
1177CONFIG_CRYPTO_DES=y
1178CONFIG_CRYPTO_BLOWFISH=y
1179CONFIG_CRYPTO_TWOFISH=y
1180CONFIG_CRYPTO_TWOFISH_COMMON=y
1181CONFIG_CRYPTO_SERPENT=y
1182CONFIG_CRYPTO_AES=y
1183CONFIG_CRYPTO_CAST5=y
1184CONFIG_CRYPTO_CAST6=y
1185CONFIG_CRYPTO_TEA=y
1186CONFIG_CRYPTO_ARC4=y
1187CONFIG_CRYPTO_KHAZAD=y
1188CONFIG_CRYPTO_ANUBIS=y
1189CONFIG_CRYPTO_DEFLATE=y
1190CONFIG_CRYPTO_MICHAEL_MIC=y
1191CONFIG_CRYPTO_CRC32C=y
1192# CONFIG_CRYPTO_TEST is not set
1193
1194#
1195# Hardware crypto devices
1196#
1124 1197
1125# 1198#
1126# Library routines 1199# Library routines
1127# 1200#
1201CONFIG_BITREVERSE=y
1128CONFIG_CRC_CCITT=y 1202CONFIG_CRC_CCITT=y
1129# CONFIG_CRC16 is not set 1203# CONFIG_CRC16 is not set
1130CONFIG_CRC32=y 1204CONFIG_CRC32=y
@@ -1132,3 +1206,4 @@ CONFIG_LIBCRC32C=y
1132CONFIG_ZLIB_INFLATE=y 1206CONFIG_ZLIB_INFLATE=y
1133CONFIG_ZLIB_DEFLATE=y 1207CONFIG_ZLIB_DEFLATE=y
1134CONFIG_PLIST=y 1208CONFIG_PLIST=y
1209CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/iop32x_defconfig b/arch/arm/configs/iop32x_defconfig
index b275c53728ec..7909a555706d 100644
--- a/arch/arm/configs/iop32x_defconfig
+++ b/arch/arm/configs/iop32x_defconfig
@@ -1,15 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc7 3# Linux kernel version: 2.6.20-rc1-git5
4# Tue Sep 19 00:30:18 2006 4# Tue Dec 19 21:37:52 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
9CONFIG_TRACE_IRQFLAGS_SUPPORT=y 10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
10CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
11CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
12CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
13CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -29,18 +32,22 @@ CONFIG_LOCALVERSION=""
29CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
30CONFIG_SWAP=y 33CONFIG_SWAP=y
31CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
32# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
33CONFIG_BSD_PROCESS_ACCT=y 37CONFIG_BSD_PROCESS_ACCT=y
34# CONFIG_BSD_PROCESS_ACCT_V3 is not set 38# CONFIG_BSD_PROCESS_ACCT_V3 is not set
35# CONFIG_TASKSTATS is not set 39# CONFIG_TASKSTATS is not set
36CONFIG_SYSCTL=y 40# CONFIG_UTS_NS is not set
37# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
38# CONFIG_IKCONFIG is not set 42# CONFIG_IKCONFIG is not set
43CONFIG_SYSFS_DEPRECATED=y
39# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
40CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
41CONFIG_UID16=y
42CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
43# CONFIG_EMBEDDED is not set 48# CONFIG_EMBEDDED is not set
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
44CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
45CONFIG_KALLSYMS_ALL=y 52CONFIG_KALLSYMS_ALL=y
46# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -49,12 +56,12 @@ CONFIG_PRINTK=y
49CONFIG_BUG=y 56CONFIG_BUG=y
50CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
51CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
52CONFIG_RT_MUTEXES=y
53CONFIG_FUTEX=y 59CONFIG_FUTEX=y
54CONFIG_EPOLL=y 60CONFIG_EPOLL=y
55CONFIG_SHMEM=y 61CONFIG_SHMEM=y
56CONFIG_SLAB=y 62CONFIG_SLAB=y
57CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
58# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
59CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
60# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -72,7 +79,10 @@ CONFIG_KMOD=y
72# 79#
73# Block layer 80# Block layer
74# 81#
82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
75# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
76 86
77# 87#
78# IO Schedulers 88# IO Schedulers
@@ -106,6 +116,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
106# CONFIG_ARCH_IMX is not set 116# CONFIG_ARCH_IMX is not set
107CONFIG_ARCH_IOP32X=y 117CONFIG_ARCH_IOP32X=y
108# CONFIG_ARCH_IOP33X is not set 118# CONFIG_ARCH_IOP33X is not set
119# CONFIG_ARCH_IOP13XX is not set
109# CONFIG_ARCH_IXP4XX is not set 120# CONFIG_ARCH_IXP4XX is not set
110# CONFIG_ARCH_IXP2000 is not set 121# CONFIG_ARCH_IXP2000 is not set
111# CONFIG_ARCH_IXP23XX is not set 122# CONFIG_ARCH_IXP23XX is not set
@@ -141,17 +152,22 @@ CONFIG_CPU_32v5=y
141CONFIG_CPU_ABRT_EV5T=y 152CONFIG_CPU_ABRT_EV5T=y
142CONFIG_CPU_CACHE_VIVT=y 153CONFIG_CPU_CACHE_VIVT=y
143CONFIG_CPU_TLB_V4WBI=y 154CONFIG_CPU_TLB_V4WBI=y
155CONFIG_CPU_CP15=y
156CONFIG_CPU_CP15_MMU=y
144 157
145# 158#
146# Processor Features 159# Processor Features
147# 160#
148# CONFIG_ARM_THUMB is not set 161# CONFIG_ARM_THUMB is not set
162# CONFIG_CPU_DCACHE_DISABLE is not set
163# CONFIG_IWMMXT is not set
149CONFIG_XSCALE_PMU=y 164CONFIG_XSCALE_PMU=y
150 165
151# 166#
152# Bus support 167# Bus support
153# 168#
154CONFIG_PCI=y 169CONFIG_PCI=y
170# CONFIG_PCI_MULTITHREAD_PROBE is not set
155# CONFIG_PCI_DEBUG is not set 171# CONFIG_PCI_DEBUG is not set
156 172
157# 173#
@@ -225,6 +241,7 @@ CONFIG_PACKET_MMAP=y
225CONFIG_UNIX=y 241CONFIG_UNIX=y
226CONFIG_XFRM=y 242CONFIG_XFRM=y
227# CONFIG_XFRM_USER is not set 243# CONFIG_XFRM_USER is not set
244# CONFIG_XFRM_SUB_POLICY is not set
228# CONFIG_NET_KEY is not set 245# CONFIG_NET_KEY is not set
229CONFIG_INET=y 246CONFIG_INET=y
230CONFIG_IP_MULTICAST=y 247CONFIG_IP_MULTICAST=y
@@ -246,13 +263,29 @@ CONFIG_IP_PNP_BOOTP=y
246# CONFIG_INET_TUNNEL is not set 263# CONFIG_INET_TUNNEL is not set
247CONFIG_INET_XFRM_MODE_TRANSPORT=y 264CONFIG_INET_XFRM_MODE_TRANSPORT=y
248CONFIG_INET_XFRM_MODE_TUNNEL=y 265CONFIG_INET_XFRM_MODE_TUNNEL=y
266CONFIG_INET_XFRM_MODE_BEET=y
249CONFIG_INET_DIAG=y 267CONFIG_INET_DIAG=y
250CONFIG_INET_TCP_DIAG=y 268CONFIG_INET_TCP_DIAG=y
251# CONFIG_TCP_CONG_ADVANCED is not set 269# CONFIG_TCP_CONG_ADVANCED is not set
252CONFIG_TCP_CONG_BIC=y 270CONFIG_TCP_CONG_CUBIC=y
253# CONFIG_IPV6 is not set 271CONFIG_DEFAULT_TCP_CONG="cubic"
272# CONFIG_TCP_MD5SIG is not set
273CONFIG_IPV6=y
274# CONFIG_IPV6_PRIVACY is not set
275# CONFIG_IPV6_ROUTER_PREF is not set
276# CONFIG_INET6_AH is not set
277# CONFIG_INET6_ESP is not set
278# CONFIG_INET6_IPCOMP is not set
279# CONFIG_IPV6_MIP6 is not set
254# CONFIG_INET6_XFRM_TUNNEL is not set 280# CONFIG_INET6_XFRM_TUNNEL is not set
255# CONFIG_INET6_TUNNEL is not set 281# CONFIG_INET6_TUNNEL is not set
282# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
283# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
284# CONFIG_INET6_XFRM_MODE_BEET is not set
285# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
286# CONFIG_IPV6_SIT is not set
287# CONFIG_IPV6_TUNNEL is not set
288# CONFIG_IPV6_MULTIPLE_TABLES is not set
256# CONFIG_NETWORK_SECMARK is not set 289# CONFIG_NETWORK_SECMARK is not set
257# CONFIG_NETFILTER is not set 290# CONFIG_NETFILTER is not set
258 291
@@ -279,7 +312,6 @@ CONFIG_TCP_CONG_BIC=y
279# CONFIG_ATALK is not set 312# CONFIG_ATALK is not set
280# CONFIG_X25 is not set 313# CONFIG_X25 is not set
281# CONFIG_LAPB is not set 314# CONFIG_LAPB is not set
282# CONFIG_NET_DIVERT is not set
283# CONFIG_ECONET is not set 315# CONFIG_ECONET is not set
284# CONFIG_WAN_ROUTER is not set 316# CONFIG_WAN_ROUTER is not set
285 317
@@ -338,6 +370,7 @@ CONFIG_MTD_BLOCK=y
338# CONFIG_NFTL is not set 370# CONFIG_NFTL is not set
339# CONFIG_INFTL is not set 371# CONFIG_INFTL is not set
340# CONFIG_RFD_FTL is not set 372# CONFIG_RFD_FTL is not set
373# CONFIG_SSFDC is not set
341 374
342# 375#
343# RAM/ROM/Flash chip drivers 376# RAM/ROM/Flash chip drivers
@@ -419,9 +452,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
419# CONFIG_BLK_DEV_DAC960 is not set 452# CONFIG_BLK_DEV_DAC960 is not set
420# CONFIG_BLK_DEV_UMEM is not set 453# CONFIG_BLK_DEV_UMEM is not set
421# CONFIG_BLK_DEV_COW_COMMON is not set 454# CONFIG_BLK_DEV_COW_COMMON is not set
422# CONFIG_BLK_DEV_LOOP is not set 455CONFIG_BLK_DEV_LOOP=y
423# CONFIG_BLK_DEV_NBD is not set 456# CONFIG_BLK_DEV_CRYPTOLOOP is not set
457CONFIG_BLK_DEV_NBD=y
424# CONFIG_BLK_DEV_SX8 is not set 458# CONFIG_BLK_DEV_SX8 is not set
459# CONFIG_BLK_DEV_UB is not set
425CONFIG_BLK_DEV_RAM=y 460CONFIG_BLK_DEV_RAM=y
426CONFIG_BLK_DEV_RAM_COUNT=16 461CONFIG_BLK_DEV_RAM_COUNT=16
427CONFIG_BLK_DEV_RAM_SIZE=8192 462CONFIG_BLK_DEV_RAM_SIZE=8192
@@ -440,6 +475,8 @@ CONFIG_BLK_DEV_INITRD=y
440# 475#
441# CONFIG_RAID_ATTRS is not set 476# CONFIG_RAID_ATTRS is not set
442CONFIG_SCSI=y 477CONFIG_SCSI=y
478# CONFIG_SCSI_TGT is not set
479# CONFIG_SCSI_NETLINK is not set
443CONFIG_SCSI_PROC_FS=y 480CONFIG_SCSI_PROC_FS=y
444 481
445# 482#
@@ -458,14 +495,16 @@ CONFIG_CHR_DEV_SG=y
458# CONFIG_SCSI_MULTI_LUN is not set 495# CONFIG_SCSI_MULTI_LUN is not set
459# CONFIG_SCSI_CONSTANTS is not set 496# CONFIG_SCSI_CONSTANTS is not set
460# CONFIG_SCSI_LOGGING is not set 497# CONFIG_SCSI_LOGGING is not set
498# CONFIG_SCSI_SCAN_ASYNC is not set
461 499
462# 500#
463# SCSI Transport Attributes 501# SCSI Transports
464# 502#
465# CONFIG_SCSI_SPI_ATTRS is not set 503# CONFIG_SCSI_SPI_ATTRS is not set
466# CONFIG_SCSI_FC_ATTRS is not set 504# CONFIG_SCSI_FC_ATTRS is not set
467# CONFIG_SCSI_ISCSI_ATTRS is not set 505# CONFIG_SCSI_ISCSI_ATTRS is not set
468# CONFIG_SCSI_SAS_ATTRS is not set 506# CONFIG_SCSI_SAS_ATTRS is not set
507# CONFIG_SCSI_SAS_LIBSAS is not set
469 508
470# 509#
471# SCSI low-level drivers 510# SCSI low-level drivers
@@ -478,26 +517,84 @@ CONFIG_CHR_DEV_SG=y
478# CONFIG_SCSI_AIC7XXX is not set 517# CONFIG_SCSI_AIC7XXX is not set
479# CONFIG_SCSI_AIC7XXX_OLD is not set 518# CONFIG_SCSI_AIC7XXX_OLD is not set
480# CONFIG_SCSI_AIC79XX is not set 519# CONFIG_SCSI_AIC79XX is not set
520# CONFIG_SCSI_AIC94XX is not set
481# CONFIG_SCSI_DPT_I2O is not set 521# CONFIG_SCSI_DPT_I2O is not set
522# CONFIG_SCSI_ARCMSR is not set
482# CONFIG_MEGARAID_NEWGEN is not set 523# CONFIG_MEGARAID_NEWGEN is not set
483# CONFIG_MEGARAID_LEGACY is not set 524# CONFIG_MEGARAID_LEGACY is not set
484# CONFIG_MEGARAID_SAS is not set 525# CONFIG_MEGARAID_SAS is not set
485# CONFIG_SCSI_SATA is not set
486# CONFIG_SCSI_HPTIOP is not set 526# CONFIG_SCSI_HPTIOP is not set
487# CONFIG_SCSI_DMX3191D is not set 527# CONFIG_SCSI_DMX3191D is not set
488# CONFIG_SCSI_FUTURE_DOMAIN is not set 528# CONFIG_SCSI_FUTURE_DOMAIN is not set
489# CONFIG_SCSI_IPS is not set 529# CONFIG_SCSI_IPS is not set
490# CONFIG_SCSI_INITIO is not set 530# CONFIG_SCSI_INITIO is not set
491# CONFIG_SCSI_INIA100 is not set 531# CONFIG_SCSI_INIA100 is not set
532# CONFIG_SCSI_STEX is not set
492# CONFIG_SCSI_SYM53C8XX_2 is not set 533# CONFIG_SCSI_SYM53C8XX_2 is not set
493# CONFIG_SCSI_IPR is not set 534# CONFIG_SCSI_IPR is not set
494# CONFIG_SCSI_QLOGIC_1280 is not set 535# CONFIG_SCSI_QLOGIC_1280 is not set
495# CONFIG_SCSI_QLA_FC is not set 536# CONFIG_SCSI_QLA_FC is not set
537# CONFIG_SCSI_QLA_ISCSI is not set
496# CONFIG_SCSI_LPFC is not set 538# CONFIG_SCSI_LPFC is not set
497# CONFIG_SCSI_DC395x is not set 539# CONFIG_SCSI_DC395x is not set
498# CONFIG_SCSI_DC390T is not set 540# CONFIG_SCSI_DC390T is not set
499# CONFIG_SCSI_NSP32 is not set 541# CONFIG_SCSI_NSP32 is not set
500# CONFIG_SCSI_DEBUG is not set 542# CONFIG_SCSI_DEBUG is not set
543# CONFIG_SCSI_SRP is not set
544
545#
546# Serial ATA (prod) and Parallel ATA (experimental) drivers
547#
548CONFIG_ATA=y
549# CONFIG_SATA_AHCI is not set
550# CONFIG_SATA_SVW is not set
551# CONFIG_ATA_PIIX is not set
552# CONFIG_SATA_MV is not set
553# CONFIG_SATA_NV is not set
554# CONFIG_PDC_ADMA is not set
555# CONFIG_SATA_QSTOR is not set
556# CONFIG_SATA_PROMISE is not set
557# CONFIG_SATA_SX4 is not set
558CONFIG_SATA_SIL=y
559# CONFIG_SATA_SIL24 is not set
560# CONFIG_SATA_SIS is not set
561# CONFIG_SATA_ULI is not set
562# CONFIG_SATA_VIA is not set
563# CONFIG_SATA_VITESSE is not set
564# CONFIG_PATA_ALI is not set
565# CONFIG_PATA_AMD is not set
566# CONFIG_PATA_ARTOP is not set
567# CONFIG_PATA_ATIIXP is not set
568# CONFIG_PATA_CMD64X is not set
569# CONFIG_PATA_CS5520 is not set
570# CONFIG_PATA_CS5530 is not set
571# CONFIG_PATA_CYPRESS is not set
572# CONFIG_PATA_EFAR is not set
573# CONFIG_ATA_GENERIC is not set
574# CONFIG_PATA_HPT366 is not set
575# CONFIG_PATA_HPT37X is not set
576# CONFIG_PATA_HPT3X2N is not set
577# CONFIG_PATA_HPT3X3 is not set
578# CONFIG_PATA_IT821X is not set
579# CONFIG_PATA_JMICRON is not set
580# CONFIG_PATA_TRIFLEX is not set
581# CONFIG_PATA_MARVELL is not set
582# CONFIG_PATA_MPIIX is not set
583# CONFIG_PATA_OLDPIIX is not set
584# CONFIG_PATA_NETCELL is not set
585# CONFIG_PATA_NS87410 is not set
586# CONFIG_PATA_OPTI is not set
587# CONFIG_PATA_OPTIDMA is not set
588# CONFIG_PATA_PDC_OLD is not set
589# CONFIG_PATA_RADISYS is not set
590# CONFIG_PATA_RZ1000 is not set
591# CONFIG_PATA_SC1200 is not set
592# CONFIG_PATA_SERVERWORKS is not set
593# CONFIG_PATA_PDC2027X is not set
594# CONFIG_PATA_SIL680 is not set
595# CONFIG_PATA_SIS is not set
596# CONFIG_PATA_VIA is not set
597# CONFIG_PATA_WINBOND is not set
501 598
502# 599#
503# Multi-device support (RAID and LVM) 600# Multi-device support (RAID and LVM)
@@ -512,6 +609,7 @@ CONFIG_MD_RAID1=y
512# CONFIG_MD_MULTIPATH is not set 609# CONFIG_MD_MULTIPATH is not set
513# CONFIG_MD_FAULTY is not set 610# CONFIG_MD_FAULTY is not set
514CONFIG_BLK_DEV_DM=y 611CONFIG_BLK_DEV_DM=y
612# CONFIG_DM_DEBUG is not set
515# CONFIG_DM_CRYPT is not set 613# CONFIG_DM_CRYPT is not set
516# CONFIG_DM_SNAPSHOT is not set 614# CONFIG_DM_SNAPSHOT is not set
517# CONFIG_DM_MIRROR is not set 615# CONFIG_DM_MIRROR is not set
@@ -612,6 +710,7 @@ CONFIG_R8169=y
612# CONFIG_VIA_VELOCITY is not set 710# CONFIG_VIA_VELOCITY is not set
613# CONFIG_TIGON3 is not set 711# CONFIG_TIGON3 is not set
614# CONFIG_BNX2 is not set 712# CONFIG_BNX2 is not set
713# CONFIG_QLA3XXX is not set
615 714
616# 715#
617# Ethernet (10000 Mbit) 716# Ethernet (10000 Mbit)
@@ -620,6 +719,7 @@ CONFIG_R8169=y
620# CONFIG_IXGB is not set 719# CONFIG_IXGB is not set
621# CONFIG_S2IO is not set 720# CONFIG_S2IO is not set
622# CONFIG_MYRI10GE is not set 721# CONFIG_MYRI10GE is not set
722# CONFIG_NETXEN_NIC is not set
623 723
624# 724#
625# Token Ring devices 725# Token Ring devices
@@ -654,6 +754,7 @@ CONFIG_R8169=y
654# Input device support 754# Input device support
655# 755#
656CONFIG_INPUT=y 756CONFIG_INPUT=y
757# CONFIG_INPUT_FF_MEMLESS is not set
657 758
658# 759#
659# Userland interfaces 760# Userland interfaces
@@ -725,10 +826,6 @@ CONFIG_HW_RANDOM=y
725# CONFIG_DTLK is not set 826# CONFIG_DTLK is not set
726# CONFIG_R3964 is not set 827# CONFIG_R3964 is not set
727# CONFIG_APPLICOM is not set 828# CONFIG_APPLICOM is not set
728
729#
730# Ftape, the floppy tape device driver
731#
732# CONFIG_DRM is not set 829# CONFIG_DRM is not set
733# CONFIG_RAW_DRIVER is not set 830# CONFIG_RAW_DRIVER is not set
734 831
@@ -736,7 +833,6 @@ CONFIG_HW_RANDOM=y
736# TPM devices 833# TPM devices
737# 834#
738# CONFIG_TCG_TPM is not set 835# CONFIG_TCG_TPM is not set
739# CONFIG_TELCLOCK is not set
740 836
741# 837#
742# I2C support 838# I2C support
@@ -801,6 +897,7 @@ CONFIG_I2C_IOP3XX=y
801# 897#
802# Dallas's 1-wire bus 898# Dallas's 1-wire bus
803# 899#
900# CONFIG_W1 is not set
804 901
805# 902#
806# Hardware Monitoring support 903# Hardware Monitoring support
@@ -834,15 +931,18 @@ CONFIG_HWMON=y
834# CONFIG_SENSORS_LM92 is not set 931# CONFIG_SENSORS_LM92 is not set
835# CONFIG_SENSORS_MAX1619 is not set 932# CONFIG_SENSORS_MAX1619 is not set
836# CONFIG_SENSORS_PC87360 is not set 933# CONFIG_SENSORS_PC87360 is not set
934# CONFIG_SENSORS_PC87427 is not set
837# CONFIG_SENSORS_SIS5595 is not set 935# CONFIG_SENSORS_SIS5595 is not set
838# CONFIG_SENSORS_SMSC47M1 is not set 936# CONFIG_SENSORS_SMSC47M1 is not set
839# CONFIG_SENSORS_SMSC47M192 is not set 937# CONFIG_SENSORS_SMSC47M192 is not set
840# CONFIG_SENSORS_SMSC47B397 is not set 938# CONFIG_SENSORS_SMSC47B397 is not set
841# CONFIG_SENSORS_VIA686A is not set 939# CONFIG_SENSORS_VIA686A is not set
940# CONFIG_SENSORS_VT1211 is not set
842# CONFIG_SENSORS_VT8231 is not set 941# CONFIG_SENSORS_VT8231 is not set
843# CONFIG_SENSORS_W83781D is not set 942# CONFIG_SENSORS_W83781D is not set
844# CONFIG_SENSORS_W83791D is not set 943# CONFIG_SENSORS_W83791D is not set
845# CONFIG_SENSORS_W83792D is not set 944# CONFIG_SENSORS_W83792D is not set
945# CONFIG_SENSORS_W83793 is not set
846# CONFIG_SENSORS_W83L785TS is not set 946# CONFIG_SENSORS_W83L785TS is not set
847# CONFIG_SENSORS_W83627HF is not set 947# CONFIG_SENSORS_W83627HF is not set
848# CONFIG_SENSORS_W83627EHF is not set 948# CONFIG_SENSORS_W83627EHF is not set
@@ -851,6 +951,8 @@ CONFIG_HWMON=y
851# 951#
852# Misc devices 952# Misc devices
853# 953#
954# CONFIG_SGI_IOC4 is not set
955# CONFIG_TIFM_CORE is not set
854 956
855# 957#
856# LED devices 958# LED devices
@@ -869,12 +971,12 @@ CONFIG_HWMON=y
869# Multimedia devices 971# Multimedia devices
870# 972#
871# CONFIG_VIDEO_DEV is not set 973# CONFIG_VIDEO_DEV is not set
872CONFIG_VIDEO_V4L2=y
873 974
874# 975#
875# Digital Video Broadcasting Devices 976# Digital Video Broadcasting Devices
876# 977#
877# CONFIG_DVB is not set 978# CONFIG_DVB is not set
979# CONFIG_USB_DABUSB is not set
878 980
879# 981#
880# Graphics support 982# Graphics support
@@ -895,6 +997,11 @@ CONFIG_DUMMY_CONSOLE=y
895# CONFIG_SOUND is not set 997# CONFIG_SOUND is not set
896 998
897# 999#
1000# HID Devices
1001#
1002CONFIG_HID=y
1003
1004#
898# USB support 1005# USB support
899# 1006#
900CONFIG_USB_ARCH_HAS_HCD=y 1007CONFIG_USB_ARCH_HAS_HCD=y
@@ -909,6 +1016,7 @@ CONFIG_USB=y
909# CONFIG_USB_DEVICEFS is not set 1016# CONFIG_USB_DEVICEFS is not set
910# CONFIG_USB_BANDWIDTH is not set 1017# CONFIG_USB_BANDWIDTH is not set
911# CONFIG_USB_DYNAMIC_MINORS is not set 1018# CONFIG_USB_DYNAMIC_MINORS is not set
1019# CONFIG_USB_MULTITHREAD_PROBE is not set
912# CONFIG_USB_OTG is not set 1020# CONFIG_USB_OTG is not set
913 1021
914# 1022#
@@ -946,6 +1054,7 @@ CONFIG_USB_STORAGE=y
946# CONFIG_USB_STORAGE_SDDR55 is not set 1054# CONFIG_USB_STORAGE_SDDR55 is not set
947# CONFIG_USB_STORAGE_JUMPSHOT is not set 1055# CONFIG_USB_STORAGE_JUMPSHOT is not set
948# CONFIG_USB_STORAGE_ALAUDA is not set 1056# CONFIG_USB_STORAGE_ALAUDA is not set
1057# CONFIG_USB_STORAGE_KARMA is not set
949# CONFIG_USB_LIBUSUAL is not set 1058# CONFIG_USB_LIBUSUAL is not set
950 1059
951# 1060#
@@ -984,6 +1093,7 @@ CONFIG_USB_STORAGE=y
984# CONFIG_USB_KAWETH is not set 1093# CONFIG_USB_KAWETH is not set
985# CONFIG_USB_PEGASUS is not set 1094# CONFIG_USB_PEGASUS is not set
986# CONFIG_USB_RTL8150 is not set 1095# CONFIG_USB_RTL8150 is not set
1096# CONFIG_USB_USBNET_MII is not set
987# CONFIG_USB_USBNET is not set 1097# CONFIG_USB_USBNET is not set
988CONFIG_USB_MON=y 1098CONFIG_USB_MON=y
989 1099
@@ -1001,6 +1111,7 @@ CONFIG_USB_MON=y
1001# 1111#
1002# CONFIG_USB_EMI62 is not set 1112# CONFIG_USB_EMI62 is not set
1003# CONFIG_USB_EMI26 is not set 1113# CONFIG_USB_EMI26 is not set
1114# CONFIG_USB_ADUTUX is not set
1004# CONFIG_USB_AUERSWALD is not set 1115# CONFIG_USB_AUERSWALD is not set
1005# CONFIG_USB_RIO500 is not set 1116# CONFIG_USB_RIO500 is not set
1006# CONFIG_USB_LEGOTOWER is not set 1117# CONFIG_USB_LEGOTOWER is not set
@@ -1008,12 +1119,13 @@ CONFIG_USB_MON=y
1008# CONFIG_USB_LED is not set 1119# CONFIG_USB_LED is not set
1009# CONFIG_USB_CYPRESS_CY7C63 is not set 1120# CONFIG_USB_CYPRESS_CY7C63 is not set
1010# CONFIG_USB_CYTHERM is not set 1121# CONFIG_USB_CYTHERM is not set
1011# CONFIG_USB_PHIDGETKIT is not set 1122# CONFIG_USB_PHIDGET is not set
1012# CONFIG_USB_PHIDGETSERVO is not set
1013# CONFIG_USB_IDMOUSE is not set 1123# CONFIG_USB_IDMOUSE is not set
1124# CONFIG_USB_FTDI_ELAN is not set
1014# CONFIG_USB_APPLEDISPLAY is not set 1125# CONFIG_USB_APPLEDISPLAY is not set
1015# CONFIG_USB_SISUSBVGA is not set 1126# CONFIG_USB_SISUSBVGA is not set
1016# CONFIG_USB_LD is not set 1127# CONFIG_USB_LD is not set
1128# CONFIG_USB_TRANCEVIBRATOR is not set
1017 1129
1018# 1130#
1019# USB DSL modem support 1131# USB DSL modem support
@@ -1045,6 +1157,7 @@ CONFIG_EXT3_FS=y
1045CONFIG_EXT3_FS_XATTR=y 1157CONFIG_EXT3_FS_XATTR=y
1046# CONFIG_EXT3_FS_POSIX_ACL is not set 1158# CONFIG_EXT3_FS_POSIX_ACL is not set
1047# CONFIG_EXT3_FS_SECURITY is not set 1159# CONFIG_EXT3_FS_SECURITY is not set
1160# CONFIG_EXT4DEV_FS is not set
1048CONFIG_JBD=y 1161CONFIG_JBD=y
1049# CONFIG_JBD_DEBUG is not set 1162# CONFIG_JBD_DEBUG is not set
1050CONFIG_FS_MBCACHE=y 1163CONFIG_FS_MBCACHE=y
@@ -1056,6 +1169,7 @@ CONFIG_XFS_FS=y
1056CONFIG_XFS_SECURITY=y 1169CONFIG_XFS_SECURITY=y
1057CONFIG_XFS_POSIX_ACL=y 1170CONFIG_XFS_POSIX_ACL=y
1058# CONFIG_XFS_RT is not set 1171# CONFIG_XFS_RT is not set
1172# CONFIG_GFS2_FS is not set
1059# CONFIG_OCFS2_FS is not set 1173# CONFIG_OCFS2_FS is not set
1060# CONFIG_MINIX_FS is not set 1174# CONFIG_MINIX_FS is not set
1061# CONFIG_ROMFS_FS is not set 1175# CONFIG_ROMFS_FS is not set
@@ -1084,8 +1198,10 @@ CONFIG_DNOTIFY=y
1084# Pseudo filesystems 1198# Pseudo filesystems
1085# 1199#
1086CONFIG_PROC_FS=y 1200CONFIG_PROC_FS=y
1201CONFIG_PROC_SYSCTL=y
1087CONFIG_SYSFS=y 1202CONFIG_SYSFS=y
1088CONFIG_TMPFS=y 1203CONFIG_TMPFS=y
1204# CONFIG_TMPFS_POSIX_ACL is not set
1089# CONFIG_HUGETLB_PAGE is not set 1205# CONFIG_HUGETLB_PAGE is not set
1090CONFIG_RAMFS=y 1206CONFIG_RAMFS=y
1091# CONFIG_CONFIGFS_FS is not set 1207# CONFIG_CONFIGFS_FS is not set
@@ -1095,6 +1211,7 @@ CONFIG_RAMFS=y
1095# 1211#
1096# CONFIG_ADFS_FS is not set 1212# CONFIG_ADFS_FS is not set
1097# CONFIG_AFFS_FS is not set 1213# CONFIG_AFFS_FS is not set
1214CONFIG_ECRYPT_FS=y
1098# CONFIG_HFS_FS is not set 1215# CONFIG_HFS_FS is not set
1099# CONFIG_HFSPLUS_FS is not set 1216# CONFIG_HFSPLUS_FS is not set
1100# CONFIG_BEFS_FS is not set 1217# CONFIG_BEFS_FS is not set
@@ -1129,7 +1246,7 @@ CONFIG_NFSD=y
1129CONFIG_NFSD_V3=y 1246CONFIG_NFSD_V3=y
1130# CONFIG_NFSD_V3_ACL is not set 1247# CONFIG_NFSD_V3_ACL is not set
1131# CONFIG_NFSD_V4 is not set 1248# CONFIG_NFSD_V4 is not set
1132# CONFIG_NFSD_TCP is not set 1249CONFIG_NFSD_TCP=y
1133CONFIG_ROOT_NFS=y 1250CONFIG_ROOT_NFS=y
1134CONFIG_LOCKD=y 1251CONFIG_LOCKD=y
1135CONFIG_LOCKD_V4=y 1252CONFIG_LOCKD_V4=y
@@ -1172,6 +1289,11 @@ CONFIG_MSDOS_PARTITION=y
1172# CONFIG_NLS is not set 1289# CONFIG_NLS is not set
1173 1290
1174# 1291#
1292# Distributed Lock Manager
1293#
1294# CONFIG_DLM is not set
1295
1296#
1175# Profiling support 1297# Profiling support
1176# 1298#
1177# CONFIG_PROFILING is not set 1299# CONFIG_PROFILING is not set
@@ -1180,8 +1302,11 @@ CONFIG_MSDOS_PARTITION=y
1180# Kernel hacking 1302# Kernel hacking
1181# 1303#
1182# CONFIG_PRINTK_TIME is not set 1304# CONFIG_PRINTK_TIME is not set
1305CONFIG_ENABLE_MUST_CHECK=y
1183CONFIG_MAGIC_SYSRQ=y 1306CONFIG_MAGIC_SYSRQ=y
1184# CONFIG_UNUSED_SYMBOLS is not set 1307# CONFIG_UNUSED_SYMBOLS is not set
1308# CONFIG_DEBUG_FS is not set
1309# CONFIG_HEADERS_CHECK is not set
1185CONFIG_DEBUG_KERNEL=y 1310CONFIG_DEBUG_KERNEL=y
1186CONFIG_LOG_BUF_SHIFT=14 1311CONFIG_LOG_BUF_SHIFT=14
1187CONFIG_DETECT_SOFTLOCKUP=y 1312CONFIG_DETECT_SOFTLOCKUP=y
@@ -1197,10 +1322,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
1197# CONFIG_DEBUG_KOBJECT is not set 1322# CONFIG_DEBUG_KOBJECT is not set
1198CONFIG_DEBUG_BUGVERBOSE=y 1323CONFIG_DEBUG_BUGVERBOSE=y
1199# CONFIG_DEBUG_INFO is not set 1324# CONFIG_DEBUG_INFO is not set
1200# CONFIG_DEBUG_FS is not set
1201# CONFIG_DEBUG_VM is not set 1325# CONFIG_DEBUG_VM is not set
1326# CONFIG_DEBUG_LIST is not set
1202CONFIG_FRAME_POINTER=y 1327CONFIG_FRAME_POINTER=y
1203# CONFIG_UNWIND_INFO is not set
1204# CONFIG_FORCED_INLINING is not set 1328# CONFIG_FORCED_INLINING is not set
1205# CONFIG_RCU_TORTURE_TEST is not set 1329# CONFIG_RCU_TORTURE_TEST is not set
1206CONFIG_DEBUG_USER=y 1330CONFIG_DEBUG_USER=y
@@ -1211,13 +1335,48 @@ CONFIG_DEBUG_LL=y
1211# 1335#
1212# Security options 1336# Security options
1213# 1337#
1214# CONFIG_KEYS is not set 1338CONFIG_KEYS=y
1339CONFIG_KEYS_DEBUG_PROC_KEYS=y
1215# CONFIG_SECURITY is not set 1340# CONFIG_SECURITY is not set
1216 1341
1217# 1342#
1218# Cryptographic options 1343# Cryptographic options
1219# 1344#
1220# CONFIG_CRYPTO is not set 1345CONFIG_CRYPTO=y
1346CONFIG_CRYPTO_ALGAPI=y
1347CONFIG_CRYPTO_BLKCIPHER=y
1348CONFIG_CRYPTO_HASH=y
1349CONFIG_CRYPTO_MANAGER=y
1350CONFIG_CRYPTO_HMAC=y
1351CONFIG_CRYPTO_XCBC=y
1352CONFIG_CRYPTO_NULL=y
1353CONFIG_CRYPTO_MD4=y
1354CONFIG_CRYPTO_MD5=y
1355CONFIG_CRYPTO_SHA1=y
1356CONFIG_CRYPTO_SHA256=y
1357CONFIG_CRYPTO_SHA512=y
1358CONFIG_CRYPTO_WP512=y
1359CONFIG_CRYPTO_TGR192=y
1360CONFIG_CRYPTO_GF128MUL=y
1361CONFIG_CRYPTO_ECB=y
1362CONFIG_CRYPTO_CBC=y
1363CONFIG_CRYPTO_LRW=y
1364CONFIG_CRYPTO_DES=y
1365CONFIG_CRYPTO_BLOWFISH=y
1366CONFIG_CRYPTO_TWOFISH=y
1367CONFIG_CRYPTO_TWOFISH_COMMON=y
1368CONFIG_CRYPTO_SERPENT=y
1369CONFIG_CRYPTO_AES=y
1370CONFIG_CRYPTO_CAST5=y
1371CONFIG_CRYPTO_CAST6=y
1372CONFIG_CRYPTO_TEA=y
1373CONFIG_CRYPTO_ARC4=y
1374CONFIG_CRYPTO_KHAZAD=y
1375CONFIG_CRYPTO_ANUBIS=y
1376CONFIG_CRYPTO_DEFLATE=y
1377CONFIG_CRYPTO_MICHAEL_MIC=y
1378CONFIG_CRYPTO_CRC32C=y
1379# CONFIG_CRYPTO_TEST is not set
1221 1380
1222# 1381#
1223# Hardware crypto devices 1382# Hardware crypto devices
@@ -1226,10 +1385,12 @@ CONFIG_DEBUG_LL=y
1226# 1385#
1227# Library routines 1386# Library routines
1228# 1387#
1388CONFIG_BITREVERSE=y
1229# CONFIG_CRC_CCITT is not set 1389# CONFIG_CRC_CCITT is not set
1230# CONFIG_CRC16 is not set 1390# CONFIG_CRC16 is not set
1231CONFIG_CRC32=y 1391CONFIG_CRC32=y
1232# CONFIG_LIBCRC32C is not set 1392CONFIG_LIBCRC32C=y
1233CONFIG_ZLIB_INFLATE=y 1393CONFIG_ZLIB_INFLATE=y
1234CONFIG_ZLIB_DEFLATE=y 1394CONFIG_ZLIB_DEFLATE=y
1235CONFIG_PLIST=y 1395CONFIG_PLIST=y
1396CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/iop33x_defconfig b/arch/arm/configs/iop33x_defconfig
index 848e3ace9069..fa271bce8ff7 100644
--- a/arch/arm/configs/iop33x_defconfig
+++ b/arch/arm/configs/iop33x_defconfig
@@ -1,15 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc7 3# Linux kernel version: 2.6.20-rc1
4# Tue Sep 19 00:30:42 2006 4# Sat Dec 16 06:05:34 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
9CONFIG_TRACE_IRQFLAGS_SUPPORT=y 10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
10CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
11CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
12CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
13CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
14CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
15CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -29,18 +32,22 @@ CONFIG_LOCALVERSION=""
29CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
30CONFIG_SWAP=y 33CONFIG_SWAP=y
31CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
32# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
33CONFIG_BSD_PROCESS_ACCT=y 37CONFIG_BSD_PROCESS_ACCT=y
34# CONFIG_BSD_PROCESS_ACCT_V3 is not set 38# CONFIG_BSD_PROCESS_ACCT_V3 is not set
35# CONFIG_TASKSTATS is not set 39# CONFIG_TASKSTATS is not set
36CONFIG_SYSCTL=y 40# CONFIG_UTS_NS is not set
37# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
38# CONFIG_IKCONFIG is not set 42# CONFIG_IKCONFIG is not set
43CONFIG_SYSFS_DEPRECATED=y
39# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
40CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
41CONFIG_UID16=y
42CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
43# CONFIG_EMBEDDED is not set 48# CONFIG_EMBEDDED is not set
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
44CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
45CONFIG_KALLSYMS_ALL=y 52CONFIG_KALLSYMS_ALL=y
46# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -49,12 +56,12 @@ CONFIG_PRINTK=y
49CONFIG_BUG=y 56CONFIG_BUG=y
50CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
51CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
52CONFIG_RT_MUTEXES=y
53CONFIG_FUTEX=y 59CONFIG_FUTEX=y
54CONFIG_EPOLL=y 60CONFIG_EPOLL=y
55CONFIG_SHMEM=y 61CONFIG_SHMEM=y
56CONFIG_SLAB=y 62CONFIG_SLAB=y
57CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
58# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
59CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
60# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -72,7 +79,10 @@ CONFIG_KMOD=y
72# 79#
73# Block layer 80# Block layer
74# 81#
82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
75# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
76 86
77# 87#
78# IO Schedulers 88# IO Schedulers
@@ -106,6 +116,7 @@ CONFIG_DEFAULT_IOSCHED="cfq"
106# CONFIG_ARCH_IMX is not set 116# CONFIG_ARCH_IMX is not set
107# CONFIG_ARCH_IOP32X is not set 117# CONFIG_ARCH_IOP32X is not set
108CONFIG_ARCH_IOP33X=y 118CONFIG_ARCH_IOP33X=y
119# CONFIG_ARCH_IOP13XX is not set
109# CONFIG_ARCH_IXP4XX is not set 120# CONFIG_ARCH_IXP4XX is not set
110# CONFIG_ARCH_IXP2000 is not set 121# CONFIG_ARCH_IXP2000 is not set
111# CONFIG_ARCH_IXP23XX is not set 122# CONFIG_ARCH_IXP23XX is not set
@@ -139,17 +150,22 @@ CONFIG_CPU_32v5=y
139CONFIG_CPU_ABRT_EV5T=y 150CONFIG_CPU_ABRT_EV5T=y
140CONFIG_CPU_CACHE_VIVT=y 151CONFIG_CPU_CACHE_VIVT=y
141CONFIG_CPU_TLB_V4WBI=y 152CONFIG_CPU_TLB_V4WBI=y
153CONFIG_CPU_CP15=y
154CONFIG_CPU_CP15_MMU=y
142 155
143# 156#
144# Processor Features 157# Processor Features
145# 158#
146# CONFIG_ARM_THUMB is not set 159# CONFIG_ARM_THUMB is not set
160# CONFIG_CPU_DCACHE_DISABLE is not set
161# CONFIG_IWMMXT is not set
147CONFIG_XSCALE_PMU=y 162CONFIG_XSCALE_PMU=y
148 163
149# 164#
150# Bus support 165# Bus support
151# 166#
152CONFIG_PCI=y 167CONFIG_PCI=y
168# CONFIG_PCI_MULTITHREAD_PROBE is not set
153# CONFIG_PCI_DEBUG is not set 169# CONFIG_PCI_DEBUG is not set
154 170
155# 171#
@@ -223,6 +239,7 @@ CONFIG_PACKET_MMAP=y
223CONFIG_UNIX=y 239CONFIG_UNIX=y
224CONFIG_XFRM=y 240CONFIG_XFRM=y
225# CONFIG_XFRM_USER is not set 241# CONFIG_XFRM_USER is not set
242# CONFIG_XFRM_SUB_POLICY is not set
226# CONFIG_NET_KEY is not set 243# CONFIG_NET_KEY is not set
227CONFIG_INET=y 244CONFIG_INET=y
228CONFIG_IP_MULTICAST=y 245CONFIG_IP_MULTICAST=y
@@ -244,13 +261,29 @@ CONFIG_IP_PNP_BOOTP=y
244# CONFIG_INET_TUNNEL is not set 261# CONFIG_INET_TUNNEL is not set
245CONFIG_INET_XFRM_MODE_TRANSPORT=y 262CONFIG_INET_XFRM_MODE_TRANSPORT=y
246CONFIG_INET_XFRM_MODE_TUNNEL=y 263CONFIG_INET_XFRM_MODE_TUNNEL=y
264CONFIG_INET_XFRM_MODE_BEET=y
247CONFIG_INET_DIAG=y 265CONFIG_INET_DIAG=y
248CONFIG_INET_TCP_DIAG=y 266CONFIG_INET_TCP_DIAG=y
249# CONFIG_TCP_CONG_ADVANCED is not set 267# CONFIG_TCP_CONG_ADVANCED is not set
250CONFIG_TCP_CONG_BIC=y 268CONFIG_TCP_CONG_CUBIC=y
251# CONFIG_IPV6 is not set 269CONFIG_DEFAULT_TCP_CONG="cubic"
270# CONFIG_TCP_MD5SIG is not set
271CONFIG_IPV6=y
272# CONFIG_IPV6_PRIVACY is not set
273# CONFIG_IPV6_ROUTER_PREF is not set
274# CONFIG_INET6_AH is not set
275# CONFIG_INET6_ESP is not set
276# CONFIG_INET6_IPCOMP is not set
277# CONFIG_IPV6_MIP6 is not set
252# CONFIG_INET6_XFRM_TUNNEL is not set 278# CONFIG_INET6_XFRM_TUNNEL is not set
253# CONFIG_INET6_TUNNEL is not set 279# CONFIG_INET6_TUNNEL is not set
280# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
281# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
282# CONFIG_INET6_XFRM_MODE_BEET is not set
283# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
284# CONFIG_IPV6_SIT is not set
285# CONFIG_IPV6_TUNNEL is not set
286# CONFIG_IPV6_MULTIPLE_TABLES is not set
254# CONFIG_NETWORK_SECMARK is not set 287# CONFIG_NETWORK_SECMARK is not set
255# CONFIG_NETFILTER is not set 288# CONFIG_NETFILTER is not set
256 289
@@ -277,7 +310,6 @@ CONFIG_TCP_CONG_BIC=y
277# CONFIG_ATALK is not set 310# CONFIG_ATALK is not set
278# CONFIG_X25 is not set 311# CONFIG_X25 is not set
279# CONFIG_LAPB is not set 312# CONFIG_LAPB is not set
280# CONFIG_NET_DIVERT is not set
281# CONFIG_ECONET is not set 313# CONFIG_ECONET is not set
282# CONFIG_WAN_ROUTER is not set 314# CONFIG_WAN_ROUTER is not set
283 315
@@ -336,6 +368,7 @@ CONFIG_MTD_BLOCK=y
336# CONFIG_NFTL is not set 368# CONFIG_NFTL is not set
337# CONFIG_INFTL is not set 369# CONFIG_INFTL is not set
338# CONFIG_RFD_FTL is not set 370# CONFIG_RFD_FTL is not set
371# CONFIG_SSFDC is not set
339 372
340# 373#
341# RAM/ROM/Flash chip drivers 374# RAM/ROM/Flash chip drivers
@@ -423,7 +456,7 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
423# CONFIG_BLK_DEV_UMEM is not set 456# CONFIG_BLK_DEV_UMEM is not set
424# CONFIG_BLK_DEV_COW_COMMON is not set 457# CONFIG_BLK_DEV_COW_COMMON is not set
425# CONFIG_BLK_DEV_LOOP is not set 458# CONFIG_BLK_DEV_LOOP is not set
426# CONFIG_BLK_DEV_NBD is not set 459CONFIG_BLK_DEV_NBD=y
427# CONFIG_BLK_DEV_SX8 is not set 460# CONFIG_BLK_DEV_SX8 is not set
428CONFIG_BLK_DEV_RAM=y 461CONFIG_BLK_DEV_RAM=y
429CONFIG_BLK_DEV_RAM_COUNT=16 462CONFIG_BLK_DEV_RAM_COUNT=16
@@ -443,6 +476,8 @@ CONFIG_BLK_DEV_INITRD=y
443# 476#
444# CONFIG_RAID_ATTRS is not set 477# CONFIG_RAID_ATTRS is not set
445CONFIG_SCSI=y 478CONFIG_SCSI=y
479# CONFIG_SCSI_TGT is not set
480# CONFIG_SCSI_NETLINK is not set
446CONFIG_SCSI_PROC_FS=y 481CONFIG_SCSI_PROC_FS=y
447 482
448# 483#
@@ -461,14 +496,16 @@ CONFIG_CHR_DEV_SG=y
461# CONFIG_SCSI_MULTI_LUN is not set 496# CONFIG_SCSI_MULTI_LUN is not set
462# CONFIG_SCSI_CONSTANTS is not set 497# CONFIG_SCSI_CONSTANTS is not set
463# CONFIG_SCSI_LOGGING is not set 498# CONFIG_SCSI_LOGGING is not set
499# CONFIG_SCSI_SCAN_ASYNC is not set
464 500
465# 501#
466# SCSI Transport Attributes 502# SCSI Transports
467# 503#
468# CONFIG_SCSI_SPI_ATTRS is not set 504# CONFIG_SCSI_SPI_ATTRS is not set
469# CONFIG_SCSI_FC_ATTRS is not set 505# CONFIG_SCSI_FC_ATTRS is not set
470# CONFIG_SCSI_ISCSI_ATTRS is not set 506# CONFIG_SCSI_ISCSI_ATTRS is not set
471# CONFIG_SCSI_SAS_ATTRS is not set 507# CONFIG_SCSI_SAS_ATTRS is not set
508# CONFIG_SCSI_SAS_LIBSAS is not set
472 509
473# 510#
474# SCSI low-level drivers 511# SCSI low-level drivers
@@ -481,26 +518,34 @@ CONFIG_CHR_DEV_SG=y
481# CONFIG_SCSI_AIC7XXX is not set 518# CONFIG_SCSI_AIC7XXX is not set
482# CONFIG_SCSI_AIC7XXX_OLD is not set 519# CONFIG_SCSI_AIC7XXX_OLD is not set
483# CONFIG_SCSI_AIC79XX is not set 520# CONFIG_SCSI_AIC79XX is not set
521# CONFIG_SCSI_AIC94XX is not set
484# CONFIG_SCSI_DPT_I2O is not set 522# CONFIG_SCSI_DPT_I2O is not set
523# CONFIG_SCSI_ARCMSR is not set
485# CONFIG_MEGARAID_NEWGEN is not set 524# CONFIG_MEGARAID_NEWGEN is not set
486# CONFIG_MEGARAID_LEGACY is not set 525# CONFIG_MEGARAID_LEGACY is not set
487# CONFIG_MEGARAID_SAS is not set 526# CONFIG_MEGARAID_SAS is not set
488# CONFIG_SCSI_SATA is not set
489# CONFIG_SCSI_HPTIOP is not set 527# CONFIG_SCSI_HPTIOP is not set
490# CONFIG_SCSI_DMX3191D is not set 528# CONFIG_SCSI_DMX3191D is not set
491# CONFIG_SCSI_FUTURE_DOMAIN is not set 529# CONFIG_SCSI_FUTURE_DOMAIN is not set
492# CONFIG_SCSI_IPS is not set 530# CONFIG_SCSI_IPS is not set
493# CONFIG_SCSI_INITIO is not set 531# CONFIG_SCSI_INITIO is not set
494# CONFIG_SCSI_INIA100 is not set 532# CONFIG_SCSI_INIA100 is not set
533# CONFIG_SCSI_STEX is not set
495# CONFIG_SCSI_SYM53C8XX_2 is not set 534# CONFIG_SCSI_SYM53C8XX_2 is not set
496# CONFIG_SCSI_IPR is not set
497# CONFIG_SCSI_QLOGIC_1280 is not set 535# CONFIG_SCSI_QLOGIC_1280 is not set
498# CONFIG_SCSI_QLA_FC is not set 536# CONFIG_SCSI_QLA_FC is not set
537# CONFIG_SCSI_QLA_ISCSI is not set
499# CONFIG_SCSI_LPFC is not set 538# CONFIG_SCSI_LPFC is not set
500# CONFIG_SCSI_DC395x is not set 539# CONFIG_SCSI_DC395x is not set
501# CONFIG_SCSI_DC390T is not set 540# CONFIG_SCSI_DC390T is not set
502# CONFIG_SCSI_NSP32 is not set 541# CONFIG_SCSI_NSP32 is not set
503# CONFIG_SCSI_DEBUG is not set 542# CONFIG_SCSI_DEBUG is not set
543# CONFIG_SCSI_SRP is not set
544
545#
546# Serial ATA (prod) and Parallel ATA (experimental) drivers
547#
548# CONFIG_ATA is not set
504 549
505# 550#
506# Multi-device support (RAID and LVM) 551# Multi-device support (RAID and LVM)
@@ -515,6 +560,7 @@ CONFIG_MD_RAID1=y
515# CONFIG_MD_MULTIPATH is not set 560# CONFIG_MD_MULTIPATH is not set
516# CONFIG_MD_FAULTY is not set 561# CONFIG_MD_FAULTY is not set
517CONFIG_BLK_DEV_DM=y 562CONFIG_BLK_DEV_DM=y
563# CONFIG_DM_DEBUG is not set
518# CONFIG_DM_CRYPT is not set 564# CONFIG_DM_CRYPT is not set
519# CONFIG_DM_SNAPSHOT is not set 565# CONFIG_DM_SNAPSHOT is not set
520# CONFIG_DM_MIRROR is not set 566# CONFIG_DM_MIRROR is not set
@@ -580,6 +626,7 @@ CONFIG_E1000_NAPI=y
580# CONFIG_SK98LIN is not set 626# CONFIG_SK98LIN is not set
581# CONFIG_TIGON3 is not set 627# CONFIG_TIGON3 is not set
582# CONFIG_BNX2 is not set 628# CONFIG_BNX2 is not set
629# CONFIG_QLA3XXX is not set
583 630
584# 631#
585# Ethernet (10000 Mbit) 632# Ethernet (10000 Mbit)
@@ -588,6 +635,7 @@ CONFIG_E1000_NAPI=y
588# CONFIG_IXGB is not set 635# CONFIG_IXGB is not set
589# CONFIG_S2IO is not set 636# CONFIG_S2IO is not set
590# CONFIG_MYRI10GE is not set 637# CONFIG_MYRI10GE is not set
638# CONFIG_NETXEN_NIC is not set
591 639
592# 640#
593# Token Ring devices 641# Token Ring devices
@@ -622,6 +670,7 @@ CONFIG_E1000_NAPI=y
622# Input device support 670# Input device support
623# 671#
624CONFIG_INPUT=y 672CONFIG_INPUT=y
673# CONFIG_INPUT_FF_MEMLESS is not set
625 674
626# 675#
627# Userland interfaces 676# Userland interfaces
@@ -693,10 +742,6 @@ CONFIG_HW_RANDOM=y
693# CONFIG_DTLK is not set 742# CONFIG_DTLK is not set
694# CONFIG_R3964 is not set 743# CONFIG_R3964 is not set
695# CONFIG_APPLICOM is not set 744# CONFIG_APPLICOM is not set
696
697#
698# Ftape, the floppy tape device driver
699#
700# CONFIG_DRM is not set 745# CONFIG_DRM is not set
701# CONFIG_RAW_DRIVER is not set 746# CONFIG_RAW_DRIVER is not set
702 747
@@ -704,7 +749,6 @@ CONFIG_HW_RANDOM=y
704# TPM devices 749# TPM devices
705# 750#
706# CONFIG_TCG_TPM is not set 751# CONFIG_TCG_TPM is not set
707# CONFIG_TELCLOCK is not set
708 752
709# 753#
710# I2C support 754# I2C support
@@ -769,6 +813,7 @@ CONFIG_I2C_IOP3XX=y
769# 813#
770# Dallas's 1-wire bus 814# Dallas's 1-wire bus
771# 815#
816# CONFIG_W1 is not set
772 817
773# 818#
774# Hardware Monitoring support 819# Hardware Monitoring support
@@ -802,15 +847,18 @@ CONFIG_HWMON=y
802# CONFIG_SENSORS_LM92 is not set 847# CONFIG_SENSORS_LM92 is not set
803# CONFIG_SENSORS_MAX1619 is not set 848# CONFIG_SENSORS_MAX1619 is not set
804# CONFIG_SENSORS_PC87360 is not set 849# CONFIG_SENSORS_PC87360 is not set
850# CONFIG_SENSORS_PC87427 is not set
805# CONFIG_SENSORS_SIS5595 is not set 851# CONFIG_SENSORS_SIS5595 is not set
806# CONFIG_SENSORS_SMSC47M1 is not set 852# CONFIG_SENSORS_SMSC47M1 is not set
807# CONFIG_SENSORS_SMSC47M192 is not set 853# CONFIG_SENSORS_SMSC47M192 is not set
808# CONFIG_SENSORS_SMSC47B397 is not set 854# CONFIG_SENSORS_SMSC47B397 is not set
809# CONFIG_SENSORS_VIA686A is not set 855# CONFIG_SENSORS_VIA686A is not set
856# CONFIG_SENSORS_VT1211 is not set
810# CONFIG_SENSORS_VT8231 is not set 857# CONFIG_SENSORS_VT8231 is not set
811# CONFIG_SENSORS_W83781D is not set 858# CONFIG_SENSORS_W83781D is not set
812# CONFIG_SENSORS_W83791D is not set 859# CONFIG_SENSORS_W83791D is not set
813# CONFIG_SENSORS_W83792D is not set 860# CONFIG_SENSORS_W83792D is not set
861# CONFIG_SENSORS_W83793 is not set
814# CONFIG_SENSORS_W83L785TS is not set 862# CONFIG_SENSORS_W83L785TS is not set
815# CONFIG_SENSORS_W83627HF is not set 863# CONFIG_SENSORS_W83627HF is not set
816# CONFIG_SENSORS_W83627EHF is not set 864# CONFIG_SENSORS_W83627EHF is not set
@@ -819,6 +867,8 @@ CONFIG_HWMON=y
819# 867#
820# Misc devices 868# Misc devices
821# 869#
870# CONFIG_SGI_IOC4 is not set
871# CONFIG_TIFM_CORE is not set
822 872
823# 873#
824# LED devices 874# LED devices
@@ -837,7 +887,6 @@ CONFIG_HWMON=y
837# Multimedia devices 887# Multimedia devices
838# 888#
839# CONFIG_VIDEO_DEV is not set 889# CONFIG_VIDEO_DEV is not set
840CONFIG_VIDEO_V4L2=y
841 890
842# 891#
843# Digital Video Broadcasting Devices 892# Digital Video Broadcasting Devices
@@ -863,6 +912,11 @@ CONFIG_DUMMY_CONSOLE=y
863# CONFIG_SOUND is not set 912# CONFIG_SOUND is not set
864 913
865# 914#
915# HID Devices
916#
917CONFIG_HID=y
918
919#
866# USB support 920# USB support
867# 921#
868CONFIG_USB_ARCH_HAS_HCD=y 922CONFIG_USB_ARCH_HAS_HCD=y
@@ -900,6 +954,7 @@ CONFIG_EXT3_FS=y
900CONFIG_EXT3_FS_XATTR=y 954CONFIG_EXT3_FS_XATTR=y
901# CONFIG_EXT3_FS_POSIX_ACL is not set 955# CONFIG_EXT3_FS_POSIX_ACL is not set
902# CONFIG_EXT3_FS_SECURITY is not set 956# CONFIG_EXT3_FS_SECURITY is not set
957# CONFIG_EXT4DEV_FS is not set
903CONFIG_JBD=y 958CONFIG_JBD=y
904# CONFIG_JBD_DEBUG is not set 959# CONFIG_JBD_DEBUG is not set
905CONFIG_FS_MBCACHE=y 960CONFIG_FS_MBCACHE=y
@@ -911,6 +966,7 @@ CONFIG_XFS_FS=y
911CONFIG_XFS_SECURITY=y 966CONFIG_XFS_SECURITY=y
912CONFIG_XFS_POSIX_ACL=y 967CONFIG_XFS_POSIX_ACL=y
913# CONFIG_XFS_RT is not set 968# CONFIG_XFS_RT is not set
969# CONFIG_GFS2_FS is not set
914# CONFIG_OCFS2_FS is not set 970# CONFIG_OCFS2_FS is not set
915# CONFIG_MINIX_FS is not set 971# CONFIG_MINIX_FS is not set
916# CONFIG_ROMFS_FS is not set 972# CONFIG_ROMFS_FS is not set
@@ -939,8 +995,10 @@ CONFIG_DNOTIFY=y
939# Pseudo filesystems 995# Pseudo filesystems
940# 996#
941CONFIG_PROC_FS=y 997CONFIG_PROC_FS=y
998CONFIG_PROC_SYSCTL=y
942CONFIG_SYSFS=y 999CONFIG_SYSFS=y
943CONFIG_TMPFS=y 1000CONFIG_TMPFS=y
1001# CONFIG_TMPFS_POSIX_ACL is not set
944# CONFIG_HUGETLB_PAGE is not set 1002# CONFIG_HUGETLB_PAGE is not set
945CONFIG_RAMFS=y 1003CONFIG_RAMFS=y
946# CONFIG_CONFIGFS_FS is not set 1004# CONFIG_CONFIGFS_FS is not set
@@ -1019,6 +1077,11 @@ CONFIG_MSDOS_PARTITION=y
1019# CONFIG_NLS is not set 1077# CONFIG_NLS is not set
1020 1078
1021# 1079#
1080# Distributed Lock Manager
1081#
1082# CONFIG_DLM is not set
1083
1084#
1022# Profiling support 1085# Profiling support
1023# 1086#
1024# CONFIG_PROFILING is not set 1087# CONFIG_PROFILING is not set
@@ -1027,8 +1090,11 @@ CONFIG_MSDOS_PARTITION=y
1027# Kernel hacking 1090# Kernel hacking
1028# 1091#
1029# CONFIG_PRINTK_TIME is not set 1092# CONFIG_PRINTK_TIME is not set
1093CONFIG_ENABLE_MUST_CHECK=y
1030CONFIG_MAGIC_SYSRQ=y 1094CONFIG_MAGIC_SYSRQ=y
1031# CONFIG_UNUSED_SYMBOLS is not set 1095# CONFIG_UNUSED_SYMBOLS is not set
1096# CONFIG_DEBUG_FS is not set
1097# CONFIG_HEADERS_CHECK is not set
1032CONFIG_DEBUG_KERNEL=y 1098CONFIG_DEBUG_KERNEL=y
1033CONFIG_LOG_BUF_SHIFT=14 1099CONFIG_LOG_BUF_SHIFT=14
1034CONFIG_DETECT_SOFTLOCKUP=y 1100CONFIG_DETECT_SOFTLOCKUP=y
@@ -1044,10 +1110,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
1044# CONFIG_DEBUG_KOBJECT is not set 1110# CONFIG_DEBUG_KOBJECT is not set
1045CONFIG_DEBUG_BUGVERBOSE=y 1111CONFIG_DEBUG_BUGVERBOSE=y
1046# CONFIG_DEBUG_INFO is not set 1112# CONFIG_DEBUG_INFO is not set
1047# CONFIG_DEBUG_FS is not set
1048# CONFIG_DEBUG_VM is not set 1113# CONFIG_DEBUG_VM is not set
1114# CONFIG_DEBUG_LIST is not set
1049CONFIG_FRAME_POINTER=y 1115CONFIG_FRAME_POINTER=y
1050# CONFIG_UNWIND_INFO is not set
1051# CONFIG_FORCED_INLINING is not set 1116# CONFIG_FORCED_INLINING is not set
1052# CONFIG_RCU_TORTURE_TEST is not set 1117# CONFIG_RCU_TORTURE_TEST is not set
1053CONFIG_DEBUG_USER=y 1118CONFIG_DEBUG_USER=y
@@ -1067,10 +1132,6 @@ CONFIG_DEBUG_LL=y
1067# CONFIG_CRYPTO is not set 1132# CONFIG_CRYPTO is not set
1068 1133
1069# 1134#
1070# Hardware crypto devices
1071#
1072
1073#
1074# Library routines 1135# Library routines
1075# 1136#
1076# CONFIG_CRC_CCITT is not set 1137# CONFIG_CRC_CCITT is not set
@@ -1078,3 +1139,4 @@ CONFIG_DEBUG_LL=y
1078# CONFIG_CRC32 is not set 1139# CONFIG_CRC32 is not set
1079# CONFIG_LIBCRC32C is not set 1140# CONFIG_LIBCRC32C is not set
1080CONFIG_PLIST=y 1141CONFIG_PLIST=y
1142CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index bbd2dcf91e52..f8f9793b526f 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc1 3# Linux kernel version: 2.6.20-rc1
4# Sun Jul 9 15:28:50 2006 4# Sat Dec 16 06:05:39 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
9CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
12CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
14CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -28,17 +32,22 @@ CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
29CONFIG_SWAP=y 33CONFIG_SWAP=y
30CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
31# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
32CONFIG_BSD_PROCESS_ACCT=y 37CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 38# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34CONFIG_SYSCTL=y 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set
35# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
36# CONFIG_IKCONFIG is not set 42# CONFIG_IKCONFIG is not set
43CONFIG_SYSFS_DEPRECATED=y
37# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
38CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
39CONFIG_UID16=y
40CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
41CONFIG_EMBEDDED=y 48CONFIG_EMBEDDED=y
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
42CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
43# CONFIG_KALLSYMS_ALL is not set 52# CONFIG_KALLSYMS_ALL is not set
44# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -47,12 +56,12 @@ CONFIG_PRINTK=y
47CONFIG_BUG=y 56CONFIG_BUG=y
48CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
49CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
51CONFIG_FUTEX=y 59CONFIG_FUTEX=y
52CONFIG_EPOLL=y 60CONFIG_EPOLL=y
53CONFIG_SHMEM=y 61CONFIG_SHMEM=y
54CONFIG_SLAB=y 62CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
56# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
57CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
58# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -70,7 +79,10 @@ CONFIG_KMOD=y
70# 79#
71# Block layer 80# Block layer
72# 81#
82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
73# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
74 86
75# 87#
76# IO Schedulers 88# IO Schedulers
@@ -102,7 +114,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
102# CONFIG_ARCH_NETX is not set 114# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set 115# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set 116# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_IOP3XX is not set 117# CONFIG_ARCH_IOP32X is not set
118# CONFIG_ARCH_IOP33X is not set
119# CONFIG_ARCH_IOP13XX is not set
106# CONFIG_ARCH_IXP4XX is not set 120# CONFIG_ARCH_IXP4XX is not set
107CONFIG_ARCH_IXP2000=y 121CONFIG_ARCH_IXP2000=y
108# CONFIG_ARCH_IXP23XX is not set 122# CONFIG_ARCH_IXP23XX is not set
@@ -143,24 +157,28 @@ CONFIG_CPU_32v5=y
143CONFIG_CPU_ABRT_EV5T=y 157CONFIG_CPU_ABRT_EV5T=y
144CONFIG_CPU_CACHE_VIVT=y 158CONFIG_CPU_CACHE_VIVT=y
145CONFIG_CPU_TLB_V4WBI=y 159CONFIG_CPU_TLB_V4WBI=y
160CONFIG_CPU_CP15=y
161CONFIG_CPU_CP15_MMU=y
146 162
147# 163#
148# Processor Features 164# Processor Features
149# 165#
150# CONFIG_ARM_THUMB is not set 166# CONFIG_ARM_THUMB is not set
151CONFIG_CPU_BIG_ENDIAN=y 167CONFIG_CPU_BIG_ENDIAN=y
168# CONFIG_CPU_DCACHE_DISABLE is not set
169# CONFIG_IWMMXT is not set
152CONFIG_XSCALE_PMU=y 170CONFIG_XSCALE_PMU=y
153 171
154# 172#
155# Bus support 173# Bus support
156# 174#
157CONFIG_PCI=y 175CONFIG_PCI=y
176# CONFIG_PCI_MULTITHREAD_PROBE is not set
158# CONFIG_PCI_DEBUG is not set 177# CONFIG_PCI_DEBUG is not set
159 178
160# 179#
161# PCCARD (PCMCIA/CardBus) support 180# PCCARD (PCMCIA/CardBus) support
162# 181#
163# CONFIG_PCCARD is not set
164 182
165# 183#
166# Kernel Features 184# Kernel Features
@@ -228,6 +246,7 @@ CONFIG_PACKET_MMAP=y
228CONFIG_UNIX=y 246CONFIG_UNIX=y
229CONFIG_XFRM=y 247CONFIG_XFRM=y
230# CONFIG_XFRM_USER is not set 248# CONFIG_XFRM_USER is not set
249# CONFIG_XFRM_SUB_POLICY is not set
231# CONFIG_NET_KEY is not set 250# CONFIG_NET_KEY is not set
232CONFIG_INET=y 251CONFIG_INET=y
233# CONFIG_IP_MULTICAST is not set 252# CONFIG_IP_MULTICAST is not set
@@ -248,13 +267,29 @@ CONFIG_SYN_COOKIES=y
248# CONFIG_INET_TUNNEL is not set 267# CONFIG_INET_TUNNEL is not set
249CONFIG_INET_XFRM_MODE_TRANSPORT=y 268CONFIG_INET_XFRM_MODE_TRANSPORT=y
250CONFIG_INET_XFRM_MODE_TUNNEL=y 269CONFIG_INET_XFRM_MODE_TUNNEL=y
270CONFIG_INET_XFRM_MODE_BEET=y
251CONFIG_INET_DIAG=y 271CONFIG_INET_DIAG=y
252CONFIG_INET_TCP_DIAG=y 272CONFIG_INET_TCP_DIAG=y
253# CONFIG_TCP_CONG_ADVANCED is not set 273# CONFIG_TCP_CONG_ADVANCED is not set
254CONFIG_TCP_CONG_BIC=y 274CONFIG_TCP_CONG_CUBIC=y
255# CONFIG_IPV6 is not set 275CONFIG_DEFAULT_TCP_CONG="cubic"
276# CONFIG_TCP_MD5SIG is not set
277CONFIG_IPV6=y
278# CONFIG_IPV6_PRIVACY is not set
279# CONFIG_IPV6_ROUTER_PREF is not set
280# CONFIG_INET6_AH is not set
281# CONFIG_INET6_ESP is not set
282# CONFIG_INET6_IPCOMP is not set
283# CONFIG_IPV6_MIP6 is not set
256# CONFIG_INET6_XFRM_TUNNEL is not set 284# CONFIG_INET6_XFRM_TUNNEL is not set
257# CONFIG_INET6_TUNNEL is not set 285# CONFIG_INET6_TUNNEL is not set
286# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
287# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
288# CONFIG_INET6_XFRM_MODE_BEET is not set
289# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
290# CONFIG_IPV6_SIT is not set
291# CONFIG_IPV6_TUNNEL is not set
292# CONFIG_IPV6_MULTIPLE_TABLES is not set
258# CONFIG_NETWORK_SECMARK is not set 293# CONFIG_NETWORK_SECMARK is not set
259# CONFIG_NETFILTER is not set 294# CONFIG_NETFILTER is not set
260 295
@@ -281,7 +316,6 @@ CONFIG_TCP_CONG_BIC=y
281# CONFIG_ATALK is not set 316# CONFIG_ATALK is not set
282# CONFIG_X25 is not set 317# CONFIG_X25 is not set
283# CONFIG_LAPB is not set 318# CONFIG_LAPB is not set
284# CONFIG_NET_DIVERT is not set
285# CONFIG_ECONET is not set 319# CONFIG_ECONET is not set
286# CONFIG_WAN_ROUTER is not set 320# CONFIG_WAN_ROUTER is not set
287 321
@@ -308,7 +342,6 @@ CONFIG_TCP_CONG_BIC=y
308# 342#
309CONFIG_STANDALONE=y 343CONFIG_STANDALONE=y
310# CONFIG_PREVENT_FIRMWARE_BUILD is not set 344# CONFIG_PREVENT_FIRMWARE_BUILD is not set
311# CONFIG_FW_LOADER is not set
312# CONFIG_DEBUG_DRIVER is not set 345# CONFIG_DEBUG_DRIVER is not set
313# CONFIG_SYS_HYPERVISOR is not set 346# CONFIG_SYS_HYPERVISOR is not set
314 347
@@ -340,6 +373,7 @@ CONFIG_MTD_BLOCK=y
340# CONFIG_NFTL is not set 373# CONFIG_NFTL is not set
341# CONFIG_INFTL is not set 374# CONFIG_INFTL is not set
342# CONFIG_RFD_FTL is not set 375# CONFIG_RFD_FTL is not set
376# CONFIG_SSFDC is not set
343 377
344# 378#
345# RAM/ROM/Flash chip drivers 379# RAM/ROM/Flash chip drivers
@@ -422,11 +456,12 @@ CONFIG_MTD_IXP2000=y
422# CONFIG_BLK_DEV_COW_COMMON is not set 456# CONFIG_BLK_DEV_COW_COMMON is not set
423CONFIG_BLK_DEV_LOOP=y 457CONFIG_BLK_DEV_LOOP=y
424# CONFIG_BLK_DEV_CRYPTOLOOP is not set 458# CONFIG_BLK_DEV_CRYPTOLOOP is not set
425# CONFIG_BLK_DEV_NBD is not set 459CONFIG_BLK_DEV_NBD=y
426# CONFIG_BLK_DEV_SX8 is not set 460# CONFIG_BLK_DEV_SX8 is not set
427CONFIG_BLK_DEV_RAM=y 461CONFIG_BLK_DEV_RAM=y
428CONFIG_BLK_DEV_RAM_COUNT=16 462CONFIG_BLK_DEV_RAM_COUNT=16
429CONFIG_BLK_DEV_RAM_SIZE=8192 463CONFIG_BLK_DEV_RAM_SIZE=8192
464CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
430CONFIG_BLK_DEV_INITRD=y 465CONFIG_BLK_DEV_INITRD=y
431# CONFIG_CDROM_PKTCDVD is not set 466# CONFIG_CDROM_PKTCDVD is not set
432# CONFIG_ATA_OVER_ETH is not set 467# CONFIG_ATA_OVER_ETH is not set
@@ -436,6 +471,12 @@ CONFIG_BLK_DEV_INITRD=y
436# 471#
437# CONFIG_RAID_ATTRS is not set 472# CONFIG_RAID_ATTRS is not set
438# CONFIG_SCSI is not set 473# CONFIG_SCSI is not set
474# CONFIG_SCSI_NETLINK is not set
475
476#
477# Serial ATA (prod) and Parallel ATA (experimental) drivers
478#
479# CONFIG_ATA is not set
439 480
440# 481#
441# Multi-device support (RAID and LVM) 482# Multi-device support (RAID and LVM)
@@ -501,8 +542,8 @@ CONFIG_NET_PCI=y
501# CONFIG_FORCEDETH is not set 542# CONFIG_FORCEDETH is not set
502CONFIG_CS89x0=y 543CONFIG_CS89x0=y
503# CONFIG_DGRS is not set 544# CONFIG_DGRS is not set
504CONFIG_EEPRO100=y 545# CONFIG_EEPRO100 is not set
505# CONFIG_E100 is not set 546CONFIG_E100=y
506# CONFIG_FEALNX is not set 547# CONFIG_FEALNX is not set
507# CONFIG_NATSEMI is not set 548# CONFIG_NATSEMI is not set
508# CONFIG_NE2K_PCI is not set 549# CONFIG_NE2K_PCI is not set
@@ -532,6 +573,7 @@ CONFIG_ENP2611_MSF_NET=y
532# CONFIG_VIA_VELOCITY is not set 573# CONFIG_VIA_VELOCITY is not set
533# CONFIG_TIGON3 is not set 574# CONFIG_TIGON3 is not set
534# CONFIG_BNX2 is not set 575# CONFIG_BNX2 is not set
576# CONFIG_QLA3XXX is not set
535 577
536# 578#
537# Ethernet (10000 Mbit) 579# Ethernet (10000 Mbit)
@@ -540,6 +582,7 @@ CONFIG_ENP2611_MSF_NET=y
540# CONFIG_IXGB is not set 582# CONFIG_IXGB is not set
541# CONFIG_S2IO is not set 583# CONFIG_S2IO is not set
542# CONFIG_MYRI10GE is not set 584# CONFIG_MYRI10GE is not set
585# CONFIG_NETXEN_NIC is not set
543 586
544# 587#
545# Token Ring devices 588# Token Ring devices
@@ -555,7 +598,6 @@ CONFIG_ENP2611_MSF_NET=y
555# Wan interfaces 598# Wan interfaces
556# 599#
557CONFIG_WAN=y 600CONFIG_WAN=y
558# CONFIG_DSCC4 is not set
559# CONFIG_LANMEDIA is not set 601# CONFIG_LANMEDIA is not set
560CONFIG_HDLC=y 602CONFIG_HDLC=y
561CONFIG_HDLC_RAW=y 603CONFIG_HDLC_RAW=y
@@ -571,6 +613,7 @@ CONFIG_HDLC_PPP=y
571# CONFIG_WANXL is not set 613# CONFIG_WANXL is not set
572# CONFIG_PC300 is not set 614# CONFIG_PC300 is not set
573# CONFIG_FARSYNC is not set 615# CONFIG_FARSYNC is not set
616# CONFIG_DSCC4 is not set
574CONFIG_DLCI=y 617CONFIG_DLCI=y
575CONFIG_DLCI_COUNT=24 618CONFIG_DLCI_COUNT=24
576CONFIG_DLCI_MAX=8 619CONFIG_DLCI_MAX=8
@@ -592,6 +635,7 @@ CONFIG_DLCI_MAX=8
592# Input device support 635# Input device support
593# 636#
594CONFIG_INPUT=y 637CONFIG_INPUT=y
638# CONFIG_INPUT_FF_MEMLESS is not set
595 639
596# 640#
597# Userland interfaces 641# Userland interfaces
@@ -673,10 +717,6 @@ CONFIG_IXP2000_WATCHDOG=y
673# CONFIG_DTLK is not set 717# CONFIG_DTLK is not set
674# CONFIG_R3964 is not set 718# CONFIG_R3964 is not set
675# CONFIG_APPLICOM is not set 719# CONFIG_APPLICOM is not set
676
677#
678# Ftape, the floppy tape device driver
679#
680# CONFIG_DRM is not set 720# CONFIG_DRM is not set
681# CONFIG_RAW_DRIVER is not set 721# CONFIG_RAW_DRIVER is not set
682 722
@@ -684,7 +724,6 @@ CONFIG_IXP2000_WATCHDOG=y
684# TPM devices 724# TPM devices
685# 725#
686# CONFIG_TCG_TPM is not set 726# CONFIG_TCG_TPM is not set
687# CONFIG_TELCLOCK is not set
688 727
689# 728#
690# I2C support 729# I2C support
@@ -749,6 +788,7 @@ CONFIG_SENSORS_EEPROM=y
749# 788#
750# Dallas's 1-wire bus 789# Dallas's 1-wire bus
751# 790#
791# CONFIG_W1 is not set
752 792
753# 793#
754# Hardware Monitoring support 794# Hardware Monitoring support
@@ -782,15 +822,18 @@ CONFIG_HWMON=y
782# CONFIG_SENSORS_LM92 is not set 822# CONFIG_SENSORS_LM92 is not set
783# CONFIG_SENSORS_MAX1619 is not set 823# CONFIG_SENSORS_MAX1619 is not set
784# CONFIG_SENSORS_PC87360 is not set 824# CONFIG_SENSORS_PC87360 is not set
825# CONFIG_SENSORS_PC87427 is not set
785# CONFIG_SENSORS_SIS5595 is not set 826# CONFIG_SENSORS_SIS5595 is not set
786# CONFIG_SENSORS_SMSC47M1 is not set 827# CONFIG_SENSORS_SMSC47M1 is not set
787# CONFIG_SENSORS_SMSC47M192 is not set 828# CONFIG_SENSORS_SMSC47M192 is not set
788# CONFIG_SENSORS_SMSC47B397 is not set 829# CONFIG_SENSORS_SMSC47B397 is not set
789# CONFIG_SENSORS_VIA686A is not set 830# CONFIG_SENSORS_VIA686A is not set
831# CONFIG_SENSORS_VT1211 is not set
790# CONFIG_SENSORS_VT8231 is not set 832# CONFIG_SENSORS_VT8231 is not set
791# CONFIG_SENSORS_W83781D is not set 833# CONFIG_SENSORS_W83781D is not set
792# CONFIG_SENSORS_W83791D is not set 834# CONFIG_SENSORS_W83791D is not set
793# CONFIG_SENSORS_W83792D is not set 835# CONFIG_SENSORS_W83792D is not set
836# CONFIG_SENSORS_W83793 is not set
794# CONFIG_SENSORS_W83L785TS is not set 837# CONFIG_SENSORS_W83L785TS is not set
795# CONFIG_SENSORS_W83627HF is not set 838# CONFIG_SENSORS_W83627HF is not set
796# CONFIG_SENSORS_W83627EHF is not set 839# CONFIG_SENSORS_W83627EHF is not set
@@ -799,6 +842,8 @@ CONFIG_HWMON=y
799# 842#
800# Misc devices 843# Misc devices
801# 844#
845# CONFIG_SGI_IOC4 is not set
846# CONFIG_TIFM_CORE is not set
802 847
803# 848#
804# LED devices 849# LED devices
@@ -817,7 +862,6 @@ CONFIG_HWMON=y
817# Multimedia devices 862# Multimedia devices
818# 863#
819# CONFIG_VIDEO_DEV is not set 864# CONFIG_VIDEO_DEV is not set
820CONFIG_VIDEO_V4L2=y
821 865
822# 866#
823# Digital Video Broadcasting Devices 867# Digital Video Broadcasting Devices
@@ -829,6 +873,7 @@ CONFIG_VIDEO_V4L2=y
829# 873#
830# CONFIG_FIRMWARE_EDID is not set 874# CONFIG_FIRMWARE_EDID is not set
831# CONFIG_FB is not set 875# CONFIG_FB is not set
876# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
832 877
833# 878#
834# Sound 879# Sound
@@ -836,6 +881,11 @@ CONFIG_VIDEO_V4L2=y
836# CONFIG_SOUND is not set 881# CONFIG_SOUND is not set
837 882
838# 883#
884# HID Devices
885#
886CONFIG_HID=y
887
888#
839# USB support 889# USB support
840# 890#
841CONFIG_USB_ARCH_HAS_HCD=y 891CONFIG_USB_ARCH_HAS_HCD=y
@@ -875,6 +925,7 @@ CONFIG_EXT3_FS=y
875CONFIG_EXT3_FS_XATTR=y 925CONFIG_EXT3_FS_XATTR=y
876CONFIG_EXT3_FS_POSIX_ACL=y 926CONFIG_EXT3_FS_POSIX_ACL=y
877# CONFIG_EXT3_FS_SECURITY is not set 927# CONFIG_EXT3_FS_SECURITY is not set
928# CONFIG_EXT4DEV_FS is not set
878CONFIG_JBD=y 929CONFIG_JBD=y
879# CONFIG_JBD_DEBUG is not set 930# CONFIG_JBD_DEBUG is not set
880CONFIG_FS_MBCACHE=y 931CONFIG_FS_MBCACHE=y
@@ -882,6 +933,7 @@ CONFIG_FS_MBCACHE=y
882# CONFIG_JFS_FS is not set 933# CONFIG_JFS_FS is not set
883CONFIG_FS_POSIX_ACL=y 934CONFIG_FS_POSIX_ACL=y
884# CONFIG_XFS_FS is not set 935# CONFIG_XFS_FS is not set
936# CONFIG_GFS2_FS is not set
885# CONFIG_OCFS2_FS is not set 937# CONFIG_OCFS2_FS is not set
886# CONFIG_MINIX_FS is not set 938# CONFIG_MINIX_FS is not set
887# CONFIG_ROMFS_FS is not set 939# CONFIG_ROMFS_FS is not set
@@ -910,8 +962,10 @@ CONFIG_DNOTIFY=y
910# Pseudo filesystems 962# Pseudo filesystems
911# 963#
912CONFIG_PROC_FS=y 964CONFIG_PROC_FS=y
965CONFIG_PROC_SYSCTL=y
913CONFIG_SYSFS=y 966CONFIG_SYSFS=y
914CONFIG_TMPFS=y 967CONFIG_TMPFS=y
968# CONFIG_TMPFS_POSIX_ACL is not set
915# CONFIG_HUGETLB_PAGE is not set 969# CONFIG_HUGETLB_PAGE is not set
916CONFIG_RAMFS=y 970CONFIG_RAMFS=y
917# CONFIG_CONFIGFS_FS is not set 971# CONFIG_CONFIGFS_FS is not set
@@ -961,7 +1015,6 @@ CONFIG_SUNRPC=y
961# CONFIG_RPCSEC_GSS_SPKM3 is not set 1015# CONFIG_RPCSEC_GSS_SPKM3 is not set
962# CONFIG_SMB_FS is not set 1016# CONFIG_SMB_FS is not set
963# CONFIG_CIFS is not set 1017# CONFIG_CIFS is not set
964# CONFIG_CIFS_DEBUG2 is not set
965# CONFIG_NCP_FS is not set 1018# CONFIG_NCP_FS is not set
966# CONFIG_CODA_FS is not set 1019# CONFIG_CODA_FS is not set
967# CONFIG_AFS_FS is not set 1020# CONFIG_AFS_FS is not set
@@ -994,6 +1047,11 @@ CONFIG_MSDOS_PARTITION=y
994# CONFIG_NLS is not set 1047# CONFIG_NLS is not set
995 1048
996# 1049#
1050# Distributed Lock Manager
1051#
1052# CONFIG_DLM is not set
1053
1054#
997# Profiling support 1055# Profiling support
998# 1056#
999# CONFIG_PROFILING is not set 1057# CONFIG_PROFILING is not set
@@ -1002,8 +1060,11 @@ CONFIG_MSDOS_PARTITION=y
1002# Kernel hacking 1060# Kernel hacking
1003# 1061#
1004# CONFIG_PRINTK_TIME is not set 1062# CONFIG_PRINTK_TIME is not set
1063CONFIG_ENABLE_MUST_CHECK=y
1005CONFIG_MAGIC_SYSRQ=y 1064CONFIG_MAGIC_SYSRQ=y
1006# CONFIG_UNUSED_SYMBOLS is not set 1065# CONFIG_UNUSED_SYMBOLS is not set
1066# CONFIG_DEBUG_FS is not set
1067# CONFIG_HEADERS_CHECK is not set
1007CONFIG_DEBUG_KERNEL=y 1068CONFIG_DEBUG_KERNEL=y
1008CONFIG_LOG_BUF_SHIFT=14 1069CONFIG_LOG_BUF_SHIFT=14
1009CONFIG_DETECT_SOFTLOCKUP=y 1070CONFIG_DETECT_SOFTLOCKUP=y
@@ -1019,10 +1080,9 @@ CONFIG_DEBUG_MUTEXES=y
1019# CONFIG_DEBUG_KOBJECT is not set 1080# CONFIG_DEBUG_KOBJECT is not set
1020CONFIG_DEBUG_BUGVERBOSE=y 1081CONFIG_DEBUG_BUGVERBOSE=y
1021# CONFIG_DEBUG_INFO is not set 1082# CONFIG_DEBUG_INFO is not set
1022# CONFIG_DEBUG_FS is not set
1023# CONFIG_DEBUG_VM is not set 1083# CONFIG_DEBUG_VM is not set
1084# CONFIG_DEBUG_LIST is not set
1024CONFIG_FRAME_POINTER=y 1085CONFIG_FRAME_POINTER=y
1025# CONFIG_UNWIND_INFO is not set
1026CONFIG_FORCED_INLINING=y 1086CONFIG_FORCED_INLINING=y
1027# CONFIG_RCU_TORTURE_TEST is not set 1087# CONFIG_RCU_TORTURE_TEST is not set
1028CONFIG_DEBUG_USER=y 1088CONFIG_DEBUG_USER=y
@@ -1042,12 +1102,9 @@ CONFIG_DEBUG_LL=y
1042# CONFIG_CRYPTO is not set 1102# CONFIG_CRYPTO is not set
1043 1103
1044# 1104#
1045# Hardware crypto devices
1046#
1047
1048#
1049# Library routines 1105# Library routines
1050# 1106#
1107CONFIG_BITREVERSE=y
1051# CONFIG_CRC_CCITT is not set 1108# CONFIG_CRC_CCITT is not set
1052# CONFIG_CRC16 is not set 1109# CONFIG_CRC16 is not set
1053CONFIG_CRC32=y 1110CONFIG_CRC32=y
@@ -1055,3 +1112,4 @@ CONFIG_CRC32=y
1055CONFIG_ZLIB_INFLATE=y 1112CONFIG_ZLIB_INFLATE=y
1056CONFIG_ZLIB_DEFLATE=y 1113CONFIG_ZLIB_DEFLATE=y
1057CONFIG_PLIST=y 1114CONFIG_PLIST=y
1115CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 06deefaec1d2..27cf022dd807 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc1 3# Linux kernel version: 2.6.20-rc1
4# Sun Jul 9 14:13:35 2006 4# Sat Dec 16 06:05:45 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
9CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
12CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
14CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -28,17 +32,22 @@ CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
29CONFIG_SWAP=y 33CONFIG_SWAP=y
30CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
31# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
32CONFIG_BSD_PROCESS_ACCT=y 37CONFIG_BSD_PROCESS_ACCT=y
33# CONFIG_BSD_PROCESS_ACCT_V3 is not set 38# CONFIG_BSD_PROCESS_ACCT_V3 is not set
34CONFIG_SYSCTL=y 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set
35# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
36# CONFIG_IKCONFIG is not set 42# CONFIG_IKCONFIG is not set
43CONFIG_SYSFS_DEPRECATED=y
37# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
38CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
39CONFIG_UID16=y
40CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
41CONFIG_EMBEDDED=y 48CONFIG_EMBEDDED=y
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
42CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
43# CONFIG_KALLSYMS_ALL is not set 52# CONFIG_KALLSYMS_ALL is not set
44# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -47,12 +56,12 @@ CONFIG_PRINTK=y
47CONFIG_BUG=y 56CONFIG_BUG=y
48CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
49CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
51CONFIG_FUTEX=y 59CONFIG_FUTEX=y
52CONFIG_EPOLL=y 60CONFIG_EPOLL=y
53CONFIG_SHMEM=y 61CONFIG_SHMEM=y
54CONFIG_SLAB=y 62CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
56# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
57CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
58# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -70,7 +79,10 @@ CONFIG_KMOD=y
70# 79#
71# Block layer 80# Block layer
72# 81#
82CONFIG_BLOCK=y
83# CONFIG_LBD is not set
73# CONFIG_BLK_DEV_IO_TRACE is not set 84# CONFIG_BLK_DEV_IO_TRACE is not set
85# CONFIG_LSF is not set
74 86
75# 87#
76# IO Schedulers 88# IO Schedulers
@@ -102,7 +114,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
102# CONFIG_ARCH_NETX is not set 114# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set 115# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set 116# CONFIG_ARCH_IMX is not set
105# CONFIG_ARCH_IOP3XX is not set 117# CONFIG_ARCH_IOP32X is not set
118# CONFIG_ARCH_IOP33X is not set
119# CONFIG_ARCH_IOP13XX is not set
106# CONFIG_ARCH_IXP4XX is not set 120# CONFIG_ARCH_IXP4XX is not set
107# CONFIG_ARCH_IXP2000 is not set 121# CONFIG_ARCH_IXP2000 is not set
108CONFIG_ARCH_IXP23XX=y 122CONFIG_ARCH_IXP23XX=y
@@ -137,6 +151,8 @@ CONFIG_CPU_32v5=y
137CONFIG_CPU_ABRT_EV5T=y 151CONFIG_CPU_ABRT_EV5T=y
138CONFIG_CPU_CACHE_VIVT=y 152CONFIG_CPU_CACHE_VIVT=y
139CONFIG_CPU_TLB_V4WBI=y 153CONFIG_CPU_TLB_V4WBI=y
154CONFIG_CPU_CP15=y
155CONFIG_CPU_CP15_MMU=y
140CONFIG_IO_36=y 156CONFIG_IO_36=y
141 157
142# 158#
@@ -144,11 +160,15 @@ CONFIG_IO_36=y
144# 160#
145# CONFIG_ARM_THUMB is not set 161# CONFIG_ARM_THUMB is not set
146CONFIG_CPU_BIG_ENDIAN=y 162CONFIG_CPU_BIG_ENDIAN=y
163# CONFIG_CPU_DCACHE_DISABLE is not set
164# CONFIG_CPU_BPREDICT_DISABLE is not set
165# CONFIG_IWMMXT is not set
147 166
148# 167#
149# Bus support 168# Bus support
150# 169#
151CONFIG_PCI=y 170CONFIG_PCI=y
171# CONFIG_PCI_MULTITHREAD_PROBE is not set
152# CONFIG_PCI_DEBUG is not set 172# CONFIG_PCI_DEBUG is not set
153 173
154# 174#
@@ -222,6 +242,7 @@ CONFIG_PACKET_MMAP=y
222CONFIG_UNIX=y 242CONFIG_UNIX=y
223CONFIG_XFRM=y 243CONFIG_XFRM=y
224# CONFIG_XFRM_USER is not set 244# CONFIG_XFRM_USER is not set
245# CONFIG_XFRM_SUB_POLICY is not set
225# CONFIG_NET_KEY is not set 246# CONFIG_NET_KEY is not set
226CONFIG_INET=y 247CONFIG_INET=y
227# CONFIG_IP_MULTICAST is not set 248# CONFIG_IP_MULTICAST is not set
@@ -242,13 +263,29 @@ CONFIG_SYN_COOKIES=y
242# CONFIG_INET_TUNNEL is not set 263# CONFIG_INET_TUNNEL is not set
243CONFIG_INET_XFRM_MODE_TRANSPORT=y 264CONFIG_INET_XFRM_MODE_TRANSPORT=y
244CONFIG_INET_XFRM_MODE_TUNNEL=y 265CONFIG_INET_XFRM_MODE_TUNNEL=y
266CONFIG_INET_XFRM_MODE_BEET=y
245CONFIG_INET_DIAG=y 267CONFIG_INET_DIAG=y
246CONFIG_INET_TCP_DIAG=y 268CONFIG_INET_TCP_DIAG=y
247# CONFIG_TCP_CONG_ADVANCED is not set 269# CONFIG_TCP_CONG_ADVANCED is not set
248CONFIG_TCP_CONG_BIC=y 270CONFIG_TCP_CONG_CUBIC=y
249# CONFIG_IPV6 is not set 271CONFIG_DEFAULT_TCP_CONG="cubic"
272# CONFIG_TCP_MD5SIG is not set
273CONFIG_IPV6=y
274# CONFIG_IPV6_PRIVACY is not set
275# CONFIG_IPV6_ROUTER_PREF is not set
276# CONFIG_INET6_AH is not set
277# CONFIG_INET6_ESP is not set
278# CONFIG_INET6_IPCOMP is not set
279# CONFIG_IPV6_MIP6 is not set
250# CONFIG_INET6_XFRM_TUNNEL is not set 280# CONFIG_INET6_XFRM_TUNNEL is not set
251# CONFIG_INET6_TUNNEL is not set 281# CONFIG_INET6_TUNNEL is not set
282# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
283# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
284# CONFIG_INET6_XFRM_MODE_BEET is not set
285# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
286# CONFIG_IPV6_SIT is not set
287# CONFIG_IPV6_TUNNEL is not set
288# CONFIG_IPV6_MULTIPLE_TABLES is not set
252# CONFIG_NETWORK_SECMARK is not set 289# CONFIG_NETWORK_SECMARK is not set
253# CONFIG_NETFILTER is not set 290# CONFIG_NETFILTER is not set
254 291
@@ -275,7 +312,6 @@ CONFIG_TCP_CONG_BIC=y
275# CONFIG_ATALK is not set 312# CONFIG_ATALK is not set
276# CONFIG_X25 is not set 313# CONFIG_X25 is not set
277# CONFIG_LAPB is not set 314# CONFIG_LAPB is not set
278# CONFIG_NET_DIVERT is not set
279# CONFIG_ECONET is not set 315# CONFIG_ECONET is not set
280# CONFIG_WAN_ROUTER is not set 316# CONFIG_WAN_ROUTER is not set
281 317
@@ -334,6 +370,7 @@ CONFIG_MTD_BLOCK=y
334# CONFIG_NFTL is not set 370# CONFIG_NFTL is not set
335# CONFIG_INFTL is not set 371# CONFIG_INFTL is not set
336# CONFIG_RFD_FTL is not set 372# CONFIG_RFD_FTL is not set
373# CONFIG_SSFDC is not set
337 374
338# 375#
339# RAM/ROM/Flash chip drivers 376# RAM/ROM/Flash chip drivers
@@ -418,12 +455,13 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
418# CONFIG_BLK_DEV_COW_COMMON is not set 455# CONFIG_BLK_DEV_COW_COMMON is not set
419CONFIG_BLK_DEV_LOOP=y 456CONFIG_BLK_DEV_LOOP=y
420# CONFIG_BLK_DEV_CRYPTOLOOP is not set 457# CONFIG_BLK_DEV_CRYPTOLOOP is not set
421# CONFIG_BLK_DEV_NBD is not set 458CONFIG_BLK_DEV_NBD=y
422# CONFIG_BLK_DEV_SX8 is not set 459# CONFIG_BLK_DEV_SX8 is not set
423# CONFIG_BLK_DEV_UB is not set 460# CONFIG_BLK_DEV_UB is not set
424CONFIG_BLK_DEV_RAM=y 461CONFIG_BLK_DEV_RAM=y
425CONFIG_BLK_DEV_RAM_COUNT=16 462CONFIG_BLK_DEV_RAM_COUNT=16
426CONFIG_BLK_DEV_RAM_SIZE=8192 463CONFIG_BLK_DEV_RAM_SIZE=8192
464CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
427CONFIG_BLK_DEV_INITRD=y 465CONFIG_BLK_DEV_INITRD=y
428# CONFIG_CDROM_PKTCDVD is not set 466# CONFIG_CDROM_PKTCDVD is not set
429# CONFIG_ATA_OVER_ETH is not set 467# CONFIG_ATA_OVER_ETH is not set
@@ -432,6 +470,7 @@ CONFIG_BLK_DEV_INITRD=y
432# ATA/ATAPI/MFM/RLL support 470# ATA/ATAPI/MFM/RLL support
433# 471#
434CONFIG_IDE=y 472CONFIG_IDE=y
473CONFIG_IDE_MAX_HWIFS=4
435CONFIG_BLK_DEV_IDE=y 474CONFIG_BLK_DEV_IDE=y
436 475
437# 476#
@@ -455,7 +494,6 @@ CONFIG_BLK_DEV_IDEPCI=y
455# CONFIG_BLK_DEV_OFFBOARD is not set 494# CONFIG_BLK_DEV_OFFBOARD is not set
456# CONFIG_BLK_DEV_GENERIC is not set 495# CONFIG_BLK_DEV_GENERIC is not set
457# CONFIG_BLK_DEV_OPTI621 is not set 496# CONFIG_BLK_DEV_OPTI621 is not set
458# CONFIG_BLK_DEV_SL82C105 is not set
459CONFIG_BLK_DEV_IDEDMA_PCI=y 497CONFIG_BLK_DEV_IDEDMA_PCI=y
460# CONFIG_BLK_DEV_IDEDMA_FORCED is not set 498# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
461# CONFIG_IDEDMA_PCI_AUTO is not set 499# CONFIG_IDEDMA_PCI_AUTO is not set
@@ -469,6 +507,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
469# CONFIG_BLK_DEV_CS5530 is not set 507# CONFIG_BLK_DEV_CS5530 is not set
470# CONFIG_BLK_DEV_HPT34X is not set 508# CONFIG_BLK_DEV_HPT34X is not set
471# CONFIG_BLK_DEV_HPT366 is not set 509# CONFIG_BLK_DEV_HPT366 is not set
510# CONFIG_BLK_DEV_JMICRON is not set
472# CONFIG_BLK_DEV_SC1200 is not set 511# CONFIG_BLK_DEV_SC1200 is not set
473# CONFIG_BLK_DEV_PIIX is not set 512# CONFIG_BLK_DEV_PIIX is not set
474# CONFIG_BLK_DEV_IT821X is not set 513# CONFIG_BLK_DEV_IT821X is not set
@@ -477,6 +516,7 @@ CONFIG_BLK_DEV_IDEDMA_PCI=y
477# CONFIG_BLK_DEV_PDC202XX_NEW is not set 516# CONFIG_BLK_DEV_PDC202XX_NEW is not set
478# CONFIG_BLK_DEV_SVWKS is not set 517# CONFIG_BLK_DEV_SVWKS is not set
479CONFIG_BLK_DEV_SIIMAGE=y 518CONFIG_BLK_DEV_SIIMAGE=y
519# CONFIG_BLK_DEV_SL82C105 is not set
480# CONFIG_BLK_DEV_SLC90E66 is not set 520# CONFIG_BLK_DEV_SLC90E66 is not set
481# CONFIG_BLK_DEV_TRM290 is not set 521# CONFIG_BLK_DEV_TRM290 is not set
482# CONFIG_BLK_DEV_VIA82CXXX is not set 522# CONFIG_BLK_DEV_VIA82CXXX is not set
@@ -491,6 +531,8 @@ CONFIG_BLK_DEV_IDEDMA=y
491# 531#
492# CONFIG_RAID_ATTRS is not set 532# CONFIG_RAID_ATTRS is not set
493CONFIG_SCSI=y 533CONFIG_SCSI=y
534# CONFIG_SCSI_TGT is not set
535# CONFIG_SCSI_NETLINK is not set
494CONFIG_SCSI_PROC_FS=y 536CONFIG_SCSI_PROC_FS=y
495 537
496# 538#
@@ -509,14 +551,16 @@ CONFIG_BLK_DEV_SD=y
509# CONFIG_SCSI_MULTI_LUN is not set 551# CONFIG_SCSI_MULTI_LUN is not set
510# CONFIG_SCSI_CONSTANTS is not set 552# CONFIG_SCSI_CONSTANTS is not set
511# CONFIG_SCSI_LOGGING is not set 553# CONFIG_SCSI_LOGGING is not set
554# CONFIG_SCSI_SCAN_ASYNC is not set
512 555
513# 556#
514# SCSI Transport Attributes 557# SCSI Transports
515# 558#
516# CONFIG_SCSI_SPI_ATTRS is not set 559# CONFIG_SCSI_SPI_ATTRS is not set
517# CONFIG_SCSI_FC_ATTRS is not set 560# CONFIG_SCSI_FC_ATTRS is not set
518# CONFIG_SCSI_ISCSI_ATTRS is not set 561# CONFIG_SCSI_ISCSI_ATTRS is not set
519# CONFIG_SCSI_SAS_ATTRS is not set 562# CONFIG_SCSI_SAS_ATTRS is not set
563# CONFIG_SCSI_SAS_LIBSAS is not set
520 564
521# 565#
522# SCSI low-level drivers 566# SCSI low-level drivers
@@ -529,26 +573,34 @@ CONFIG_BLK_DEV_SD=y
529# CONFIG_SCSI_AIC7XXX is not set 573# CONFIG_SCSI_AIC7XXX is not set
530# CONFIG_SCSI_AIC7XXX_OLD is not set 574# CONFIG_SCSI_AIC7XXX_OLD is not set
531# CONFIG_SCSI_AIC79XX is not set 575# CONFIG_SCSI_AIC79XX is not set
576# CONFIG_SCSI_AIC94XX is not set
532# CONFIG_SCSI_DPT_I2O is not set 577# CONFIG_SCSI_DPT_I2O is not set
578# CONFIG_SCSI_ARCMSR is not set
533# CONFIG_MEGARAID_NEWGEN is not set 579# CONFIG_MEGARAID_NEWGEN is not set
534# CONFIG_MEGARAID_LEGACY is not set 580# CONFIG_MEGARAID_LEGACY is not set
535# CONFIG_MEGARAID_SAS is not set 581# CONFIG_MEGARAID_SAS is not set
536# CONFIG_SCSI_SATA is not set
537# CONFIG_SCSI_HPTIOP is not set 582# CONFIG_SCSI_HPTIOP is not set
538# CONFIG_SCSI_DMX3191D is not set 583# CONFIG_SCSI_DMX3191D is not set
539# CONFIG_SCSI_FUTURE_DOMAIN is not set 584# CONFIG_SCSI_FUTURE_DOMAIN is not set
540# CONFIG_SCSI_IPS is not set 585# CONFIG_SCSI_IPS is not set
541# CONFIG_SCSI_INITIO is not set 586# CONFIG_SCSI_INITIO is not set
542# CONFIG_SCSI_INIA100 is not set 587# CONFIG_SCSI_INIA100 is not set
588# CONFIG_SCSI_STEX is not set
543# CONFIG_SCSI_SYM53C8XX_2 is not set 589# CONFIG_SCSI_SYM53C8XX_2 is not set
544# CONFIG_SCSI_IPR is not set
545# CONFIG_SCSI_QLOGIC_1280 is not set 590# CONFIG_SCSI_QLOGIC_1280 is not set
546# CONFIG_SCSI_QLA_FC is not set 591# CONFIG_SCSI_QLA_FC is not set
592# CONFIG_SCSI_QLA_ISCSI is not set
547# CONFIG_SCSI_LPFC is not set 593# CONFIG_SCSI_LPFC is not set
548# CONFIG_SCSI_DC395x is not set 594# CONFIG_SCSI_DC395x is not set
549# CONFIG_SCSI_DC390T is not set 595# CONFIG_SCSI_DC390T is not set
550# CONFIG_SCSI_NSP32 is not set 596# CONFIG_SCSI_NSP32 is not set
551# CONFIG_SCSI_DEBUG is not set 597# CONFIG_SCSI_DEBUG is not set
598# CONFIG_SCSI_SRP is not set
599
600#
601# Serial ATA (prod) and Parallel ATA (experimental) drivers
602#
603# CONFIG_ATA is not set
552 604
553# 605#
554# Multi-device support (RAID and LVM) 606# Multi-device support (RAID and LVM)
@@ -649,6 +701,7 @@ CONFIG_E1000_NAPI=y
649# CONFIG_VIA_VELOCITY is not set 701# CONFIG_VIA_VELOCITY is not set
650# CONFIG_TIGON3 is not set 702# CONFIG_TIGON3 is not set
651# CONFIG_BNX2 is not set 703# CONFIG_BNX2 is not set
704# CONFIG_QLA3XXX is not set
652 705
653# 706#
654# Ethernet (10000 Mbit) 707# Ethernet (10000 Mbit)
@@ -657,6 +710,7 @@ CONFIG_E1000_NAPI=y
657# CONFIG_IXGB is not set 710# CONFIG_IXGB is not set
658# CONFIG_S2IO is not set 711# CONFIG_S2IO is not set
659# CONFIG_MYRI10GE is not set 712# CONFIG_MYRI10GE is not set
713# CONFIG_NETXEN_NIC is not set
660 714
661# 715#
662# Token Ring devices 716# Token Ring devices
@@ -672,7 +726,6 @@ CONFIG_E1000_NAPI=y
672# Wan interfaces 726# Wan interfaces
673# 727#
674CONFIG_WAN=y 728CONFIG_WAN=y
675# CONFIG_DSCC4 is not set
676# CONFIG_LANMEDIA is not set 729# CONFIG_LANMEDIA is not set
677CONFIG_HDLC=y 730CONFIG_HDLC=y
678CONFIG_HDLC_RAW=y 731CONFIG_HDLC_RAW=y
@@ -688,6 +741,7 @@ CONFIG_HDLC_PPP=y
688# CONFIG_WANXL is not set 741# CONFIG_WANXL is not set
689# CONFIG_PC300 is not set 742# CONFIG_PC300 is not set
690# CONFIG_FARSYNC is not set 743# CONFIG_FARSYNC is not set
744# CONFIG_DSCC4 is not set
691CONFIG_DLCI=y 745CONFIG_DLCI=y
692CONFIG_DLCI_COUNT=24 746CONFIG_DLCI_COUNT=24
693CONFIG_DLCI_MAX=8 747CONFIG_DLCI_MAX=8
@@ -710,6 +764,7 @@ CONFIG_DLCI_MAX=8
710# Input device support 764# Input device support
711# 765#
712CONFIG_INPUT=y 766CONFIG_INPUT=y
767# CONFIG_INPUT_FF_MEMLESS is not set
713 768
714# 769#
715# Userland interfaces 770# Userland interfaces
@@ -795,10 +850,6 @@ CONFIG_WATCHDOG=y
795# CONFIG_DTLK is not set 850# CONFIG_DTLK is not set
796# CONFIG_R3964 is not set 851# CONFIG_R3964 is not set
797# CONFIG_APPLICOM is not set 852# CONFIG_APPLICOM is not set
798
799#
800# Ftape, the floppy tape device driver
801#
802# CONFIG_DRM is not set 853# CONFIG_DRM is not set
803# CONFIG_RAW_DRIVER is not set 854# CONFIG_RAW_DRIVER is not set
804 855
@@ -806,7 +857,6 @@ CONFIG_WATCHDOG=y
806# TPM devices 857# TPM devices
807# 858#
808# CONFIG_TCG_TPM is not set 859# CONFIG_TCG_TPM is not set
809# CONFIG_TELCLOCK is not set
810 860
811# 861#
812# I2C support 862# I2C support
@@ -870,6 +920,7 @@ CONFIG_SENSORS_EEPROM=y
870# 920#
871# Dallas's 1-wire bus 921# Dallas's 1-wire bus
872# 922#
923# CONFIG_W1 is not set
873 924
874# 925#
875# Hardware Monitoring support 926# Hardware Monitoring support
@@ -903,15 +954,18 @@ CONFIG_HWMON=y
903# CONFIG_SENSORS_LM92 is not set 954# CONFIG_SENSORS_LM92 is not set
904# CONFIG_SENSORS_MAX1619 is not set 955# CONFIG_SENSORS_MAX1619 is not set
905# CONFIG_SENSORS_PC87360 is not set 956# CONFIG_SENSORS_PC87360 is not set
957# CONFIG_SENSORS_PC87427 is not set
906# CONFIG_SENSORS_SIS5595 is not set 958# CONFIG_SENSORS_SIS5595 is not set
907# CONFIG_SENSORS_SMSC47M1 is not set 959# CONFIG_SENSORS_SMSC47M1 is not set
908# CONFIG_SENSORS_SMSC47M192 is not set 960# CONFIG_SENSORS_SMSC47M192 is not set
909# CONFIG_SENSORS_SMSC47B397 is not set 961# CONFIG_SENSORS_SMSC47B397 is not set
910# CONFIG_SENSORS_VIA686A is not set 962# CONFIG_SENSORS_VIA686A is not set
963# CONFIG_SENSORS_VT1211 is not set
911# CONFIG_SENSORS_VT8231 is not set 964# CONFIG_SENSORS_VT8231 is not set
912# CONFIG_SENSORS_W83781D is not set 965# CONFIG_SENSORS_W83781D is not set
913# CONFIG_SENSORS_W83791D is not set 966# CONFIG_SENSORS_W83791D is not set
914# CONFIG_SENSORS_W83792D is not set 967# CONFIG_SENSORS_W83792D is not set
968# CONFIG_SENSORS_W83793 is not set
915# CONFIG_SENSORS_W83L785TS is not set 969# CONFIG_SENSORS_W83L785TS is not set
916# CONFIG_SENSORS_W83627HF is not set 970# CONFIG_SENSORS_W83627HF is not set
917# CONFIG_SENSORS_W83627EHF is not set 971# CONFIG_SENSORS_W83627EHF is not set
@@ -920,6 +974,8 @@ CONFIG_HWMON=y
920# 974#
921# Misc devices 975# Misc devices
922# 976#
977# CONFIG_SGI_IOC4 is not set
978# CONFIG_TIFM_CORE is not set
923 979
924# 980#
925# LED devices 981# LED devices
@@ -938,7 +994,6 @@ CONFIG_HWMON=y
938# Multimedia devices 994# Multimedia devices
939# 995#
940# CONFIG_VIDEO_DEV is not set 996# CONFIG_VIDEO_DEV is not set
941CONFIG_VIDEO_V4L2=y
942 997
943# 998#
944# Digital Video Broadcasting Devices 999# Digital Video Broadcasting Devices
@@ -951,6 +1006,7 @@ CONFIG_VIDEO_V4L2=y
951# 1006#
952# CONFIG_FIRMWARE_EDID is not set 1007# CONFIG_FIRMWARE_EDID is not set
953# CONFIG_FB is not set 1008# CONFIG_FB is not set
1009# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
954 1010
955# 1011#
956# Sound 1012# Sound
@@ -958,6 +1014,11 @@ CONFIG_VIDEO_V4L2=y
958# CONFIG_SOUND is not set 1014# CONFIG_SOUND is not set
959 1015
960# 1016#
1017# HID Devices
1018#
1019CONFIG_HID=y
1020
1021#
961# USB support 1022# USB support
962# 1023#
963CONFIG_USB_ARCH_HAS_HCD=y 1024CONFIG_USB_ARCH_HAS_HCD=y
@@ -972,6 +1033,7 @@ CONFIG_USB=y
972# CONFIG_USB_DEVICEFS is not set 1033# CONFIG_USB_DEVICEFS is not set
973# CONFIG_USB_BANDWIDTH is not set 1034# CONFIG_USB_BANDWIDTH is not set
974# CONFIG_USB_DYNAMIC_MINORS is not set 1035# CONFIG_USB_DYNAMIC_MINORS is not set
1036# CONFIG_USB_MULTITHREAD_PROBE is not set
975# CONFIG_USB_OTG is not set 1037# CONFIG_USB_OTG is not set
976 1038
977# 1039#
@@ -1012,6 +1074,7 @@ CONFIG_USB_STORAGE=y
1012# CONFIG_USB_STORAGE_SDDR55 is not set 1074# CONFIG_USB_STORAGE_SDDR55 is not set
1013# CONFIG_USB_STORAGE_JUMPSHOT is not set 1075# CONFIG_USB_STORAGE_JUMPSHOT is not set
1014# CONFIG_USB_STORAGE_ALAUDA is not set 1076# CONFIG_USB_STORAGE_ALAUDA is not set
1077# CONFIG_USB_STORAGE_KARMA is not set
1015# CONFIG_USB_LIBUSUAL is not set 1078# CONFIG_USB_LIBUSUAL is not set
1016 1079
1017# 1080#
@@ -1050,6 +1113,7 @@ CONFIG_USB_STORAGE=y
1050# CONFIG_USB_KAWETH is not set 1113# CONFIG_USB_KAWETH is not set
1051# CONFIG_USB_PEGASUS is not set 1114# CONFIG_USB_PEGASUS is not set
1052# CONFIG_USB_RTL8150 is not set 1115# CONFIG_USB_RTL8150 is not set
1116# CONFIG_USB_USBNET_MII is not set
1053# CONFIG_USB_USBNET is not set 1117# CONFIG_USB_USBNET is not set
1054CONFIG_USB_MON=y 1118CONFIG_USB_MON=y
1055 1119
@@ -1067,19 +1131,21 @@ CONFIG_USB_MON=y
1067# 1131#
1068# CONFIG_USB_EMI62 is not set 1132# CONFIG_USB_EMI62 is not set
1069# CONFIG_USB_EMI26 is not set 1133# CONFIG_USB_EMI26 is not set
1134# CONFIG_USB_ADUTUX is not set
1070# CONFIG_USB_AUERSWALD is not set 1135# CONFIG_USB_AUERSWALD is not set
1071# CONFIG_USB_RIO500 is not set 1136# CONFIG_USB_RIO500 is not set
1072# CONFIG_USB_LEGOTOWER is not set 1137# CONFIG_USB_LEGOTOWER is not set
1073# CONFIG_USB_LCD is not set 1138# CONFIG_USB_LCD is not set
1074# CONFIG_USB_LED is not set 1139# CONFIG_USB_LED is not set
1075# CONFIG_USB_CY7C63 is not set 1140# CONFIG_USB_CYPRESS_CY7C63 is not set
1076# CONFIG_USB_CYTHERM is not set 1141# CONFIG_USB_CYTHERM is not set
1077# CONFIG_USB_PHIDGETKIT is not set 1142# CONFIG_USB_PHIDGET is not set
1078# CONFIG_USB_PHIDGETSERVO is not set
1079# CONFIG_USB_IDMOUSE is not set 1143# CONFIG_USB_IDMOUSE is not set
1144# CONFIG_USB_FTDI_ELAN is not set
1080# CONFIG_USB_APPLEDISPLAY is not set 1145# CONFIG_USB_APPLEDISPLAY is not set
1081# CONFIG_USB_SISUSBVGA is not set 1146# CONFIG_USB_SISUSBVGA is not set
1082# CONFIG_USB_LD is not set 1147# CONFIG_USB_LD is not set
1148# CONFIG_USB_TRANCEVIBRATOR is not set
1083 1149
1084# 1150#
1085# USB DSL modem support 1151# USB DSL modem support
@@ -1113,6 +1179,7 @@ CONFIG_EXT3_FS=y
1113CONFIG_EXT3_FS_XATTR=y 1179CONFIG_EXT3_FS_XATTR=y
1114CONFIG_EXT3_FS_POSIX_ACL=y 1180CONFIG_EXT3_FS_POSIX_ACL=y
1115# CONFIG_EXT3_FS_SECURITY is not set 1181# CONFIG_EXT3_FS_SECURITY is not set
1182# CONFIG_EXT4DEV_FS is not set
1116CONFIG_JBD=y 1183CONFIG_JBD=y
1117# CONFIG_JBD_DEBUG is not set 1184# CONFIG_JBD_DEBUG is not set
1118CONFIG_FS_MBCACHE=y 1185CONFIG_FS_MBCACHE=y
@@ -1120,6 +1187,7 @@ CONFIG_FS_MBCACHE=y
1120# CONFIG_JFS_FS is not set 1187# CONFIG_JFS_FS is not set
1121CONFIG_FS_POSIX_ACL=y 1188CONFIG_FS_POSIX_ACL=y
1122# CONFIG_XFS_FS is not set 1189# CONFIG_XFS_FS is not set
1190# CONFIG_GFS2_FS is not set
1123# CONFIG_OCFS2_FS is not set 1191# CONFIG_OCFS2_FS is not set
1124# CONFIG_MINIX_FS is not set 1192# CONFIG_MINIX_FS is not set
1125# CONFIG_ROMFS_FS is not set 1193# CONFIG_ROMFS_FS is not set
@@ -1150,8 +1218,10 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437
1150# Pseudo filesystems 1218# Pseudo filesystems
1151# 1219#
1152CONFIG_PROC_FS=y 1220CONFIG_PROC_FS=y
1221CONFIG_PROC_SYSCTL=y
1153CONFIG_SYSFS=y 1222CONFIG_SYSFS=y
1154CONFIG_TMPFS=y 1223CONFIG_TMPFS=y
1224# CONFIG_TMPFS_POSIX_ACL is not set
1155# CONFIG_HUGETLB_PAGE is not set 1225# CONFIG_HUGETLB_PAGE is not set
1156CONFIG_RAMFS=y 1226CONFIG_RAMFS=y
1157# CONFIG_CONFIGFS_FS is not set 1227# CONFIG_CONFIGFS_FS is not set
@@ -1201,7 +1271,6 @@ CONFIG_SUNRPC=y
1201# CONFIG_RPCSEC_GSS_SPKM3 is not set 1271# CONFIG_RPCSEC_GSS_SPKM3 is not set
1202# CONFIG_SMB_FS is not set 1272# CONFIG_SMB_FS is not set
1203# CONFIG_CIFS is not set 1273# CONFIG_CIFS is not set
1204# CONFIG_CIFS_DEBUG2 is not set
1205# CONFIG_NCP_FS is not set 1274# CONFIG_NCP_FS is not set
1206# CONFIG_CODA_FS is not set 1275# CONFIG_CODA_FS is not set
1207# CONFIG_AFS_FS is not set 1276# CONFIG_AFS_FS is not set
@@ -1273,6 +1342,11 @@ CONFIG_NLS_CODEPAGE_437=y
1273# CONFIG_NLS_UTF8 is not set 1342# CONFIG_NLS_UTF8 is not set
1274 1343
1275# 1344#
1345# Distributed Lock Manager
1346#
1347# CONFIG_DLM is not set
1348
1349#
1276# Profiling support 1350# Profiling support
1277# 1351#
1278# CONFIG_PROFILING is not set 1352# CONFIG_PROFILING is not set
@@ -1281,8 +1355,11 @@ CONFIG_NLS_CODEPAGE_437=y
1281# Kernel hacking 1355# Kernel hacking
1282# 1356#
1283# CONFIG_PRINTK_TIME is not set 1357# CONFIG_PRINTK_TIME is not set
1358CONFIG_ENABLE_MUST_CHECK=y
1284CONFIG_MAGIC_SYSRQ=y 1359CONFIG_MAGIC_SYSRQ=y
1285# CONFIG_UNUSED_SYMBOLS is not set 1360# CONFIG_UNUSED_SYMBOLS is not set
1361# CONFIG_DEBUG_FS is not set
1362# CONFIG_HEADERS_CHECK is not set
1286CONFIG_DEBUG_KERNEL=y 1363CONFIG_DEBUG_KERNEL=y
1287CONFIG_LOG_BUF_SHIFT=14 1364CONFIG_LOG_BUF_SHIFT=14
1288CONFIG_DETECT_SOFTLOCKUP=y 1365CONFIG_DETECT_SOFTLOCKUP=y
@@ -1298,10 +1375,9 @@ CONFIG_DEBUG_MUTEXES=y
1298# CONFIG_DEBUG_KOBJECT is not set 1375# CONFIG_DEBUG_KOBJECT is not set
1299CONFIG_DEBUG_BUGVERBOSE=y 1376CONFIG_DEBUG_BUGVERBOSE=y
1300# CONFIG_DEBUG_INFO is not set 1377# CONFIG_DEBUG_INFO is not set
1301# CONFIG_DEBUG_FS is not set
1302# CONFIG_DEBUG_VM is not set 1378# CONFIG_DEBUG_VM is not set
1379# CONFIG_DEBUG_LIST is not set
1303CONFIG_FRAME_POINTER=y 1380CONFIG_FRAME_POINTER=y
1304# CONFIG_UNWIND_INFO is not set
1305CONFIG_FORCED_INLINING=y 1381CONFIG_FORCED_INLINING=y
1306# CONFIG_RCU_TORTURE_TEST is not set 1382# CONFIG_RCU_TORTURE_TEST is not set
1307CONFIG_DEBUG_USER=y 1383CONFIG_DEBUG_USER=y
@@ -1321,12 +1397,9 @@ CONFIG_DEBUG_LL=y
1321# CONFIG_CRYPTO is not set 1397# CONFIG_CRYPTO is not set
1322 1398
1323# 1399#
1324# Hardware crypto devices
1325#
1326
1327#
1328# Library routines 1400# Library routines
1329# 1401#
1402CONFIG_BITREVERSE=y
1330# CONFIG_CRC_CCITT is not set 1403# CONFIG_CRC_CCITT is not set
1331# CONFIG_CRC16 is not set 1404# CONFIG_CRC16 is not set
1332CONFIG_CRC32=y 1405CONFIG_CRC32=y
@@ -1334,3 +1407,4 @@ CONFIG_CRC32=y
1334CONFIG_ZLIB_INFLATE=y 1407CONFIG_ZLIB_INFLATE=y
1335CONFIG_ZLIB_DEFLATE=y 1408CONFIG_ZLIB_DEFLATE=y
1336CONFIG_PLIST=y 1409CONFIG_PLIST=y
1410CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/lpd270_defconfig b/arch/arm/configs/lpd270_defconfig
index e146189ab54f..a3bf5833b87a 100644
--- a/arch/arm/configs/lpd270_defconfig
+++ b/arch/arm/configs/lpd270_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc1 3# Linux kernel version: 2.6.20-rc1
4# Sun Jul 9 14:15:23 2006 4# Sat Dec 16 06:05:51 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
9CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
12CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
14CONFIG_ARCH_MTD_XIP=y 18CONFIG_ARCH_MTD_XIP=y
@@ -29,16 +33,21 @@ CONFIG_LOCALVERSION=""
29CONFIG_LOCALVERSION_AUTO=y 33CONFIG_LOCALVERSION_AUTO=y
30CONFIG_SWAP=y 34CONFIG_SWAP=y
31CONFIG_SYSVIPC=y 35CONFIG_SYSVIPC=y
36# CONFIG_IPC_NS is not set
32# CONFIG_POSIX_MQUEUE is not set 37# CONFIG_POSIX_MQUEUE is not set
33# CONFIG_BSD_PROCESS_ACCT is not set 38# CONFIG_BSD_PROCESS_ACCT is not set
34CONFIG_SYSCTL=y 39# CONFIG_TASKSTATS is not set
40# CONFIG_UTS_NS is not set
35# CONFIG_AUDIT is not set 41# CONFIG_AUDIT is not set
36# CONFIG_IKCONFIG is not set 42# CONFIG_IKCONFIG is not set
43CONFIG_SYSFS_DEPRECATED=y
37# CONFIG_RELAY is not set 44# CONFIG_RELAY is not set
38CONFIG_INITRAMFS_SOURCE="" 45CONFIG_INITRAMFS_SOURCE=""
39CONFIG_UID16=y
40CONFIG_CC_OPTIMIZE_FOR_SIZE=y 46CONFIG_CC_OPTIMIZE_FOR_SIZE=y
47CONFIG_SYSCTL=y
41# CONFIG_EMBEDDED is not set 48# CONFIG_EMBEDDED is not set
49CONFIG_UID16=y
50CONFIG_SYSCTL_SYSCALL=y
42CONFIG_KALLSYMS=y 51CONFIG_KALLSYMS=y
43# CONFIG_KALLSYMS_ALL is not set 52# CONFIG_KALLSYMS_ALL is not set
44# CONFIG_KALLSYMS_EXTRA_PASS is not set 53# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -47,12 +56,12 @@ CONFIG_PRINTK=y
47CONFIG_BUG=y 56CONFIG_BUG=y
48CONFIG_ELF_CORE=y 57CONFIG_ELF_CORE=y
49CONFIG_BASE_FULL=y 58CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
51CONFIG_FUTEX=y 59CONFIG_FUTEX=y
52CONFIG_EPOLL=y 60CONFIG_EPOLL=y
53CONFIG_SHMEM=y 61CONFIG_SHMEM=y
54CONFIG_SLAB=y 62CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y 63CONFIG_VM_EVENT_COUNTERS=y
64CONFIG_RT_MUTEXES=y
56# CONFIG_TINY_SHMEM is not set 65# CONFIG_TINY_SHMEM is not set
57CONFIG_BASE_SMALL=0 66CONFIG_BASE_SMALL=0
58# CONFIG_SLOB is not set 67# CONFIG_SLOB is not set
@@ -69,7 +78,10 @@ CONFIG_MODULES=y
69# 78#
70# Block layer 79# Block layer
71# 80#
81CONFIG_BLOCK=y
82# CONFIG_LBD is not set
72# CONFIG_BLK_DEV_IO_TRACE is not set 83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
73 85
74# 86#
75# IO Schedulers 87# IO Schedulers
@@ -101,7 +113,9 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
101# CONFIG_ARCH_NETX is not set 113# CONFIG_ARCH_NETX is not set
102# CONFIG_ARCH_H720X is not set 114# CONFIG_ARCH_H720X is not set
103# CONFIG_ARCH_IMX is not set 115# CONFIG_ARCH_IMX is not set
104# CONFIG_ARCH_IOP3XX is not set 116# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IOP13XX is not set
105# CONFIG_ARCH_IXP4XX is not set 119# CONFIG_ARCH_IXP4XX is not set
106# CONFIG_ARCH_IXP2000 is not set 120# CONFIG_ARCH_IXP2000 is not set
107# CONFIG_ARCH_IXP23XX is not set 121# CONFIG_ARCH_IXP23XX is not set
@@ -125,7 +139,6 @@ CONFIG_MACH_LOGICPD_PXA270=y
125# CONFIG_PXA_SHARPSL is not set 139# CONFIG_PXA_SHARPSL is not set
126# CONFIG_MACH_TRIZEPS4 is not set 140# CONFIG_MACH_TRIZEPS4 is not set
127CONFIG_PXA27x=y 141CONFIG_PXA27x=y
128CONFIG_IWMMXT=y
129 142
130# 143#
131# Processor Type 144# Processor Type
@@ -136,11 +149,15 @@ CONFIG_CPU_32v5=y
136CONFIG_CPU_ABRT_EV5T=y 149CONFIG_CPU_ABRT_EV5T=y
137CONFIG_CPU_CACHE_VIVT=y 150CONFIG_CPU_CACHE_VIVT=y
138CONFIG_CPU_TLB_V4WBI=y 151CONFIG_CPU_TLB_V4WBI=y
152CONFIG_CPU_CP15=y
153CONFIG_CPU_CP15_MMU=y
139 154
140# 155#
141# Processor Features 156# Processor Features
142# 157#
143# CONFIG_ARM_THUMB is not set 158# CONFIG_ARM_THUMB is not set
159# CONFIG_CPU_DCACHE_DISABLE is not set
160CONFIG_IWMMXT=y
144CONFIG_XSCALE_PMU=y 161CONFIG_XSCALE_PMU=y
145 162
146# 163#
@@ -217,6 +234,7 @@ CONFIG_NET=y
217CONFIG_UNIX=y 234CONFIG_UNIX=y
218CONFIG_XFRM=y 235CONFIG_XFRM=y
219# CONFIG_XFRM_USER is not set 236# CONFIG_XFRM_USER is not set
237# CONFIG_XFRM_SUB_POLICY is not set
220# CONFIG_NET_KEY is not set 238# CONFIG_NET_KEY is not set
221CONFIG_INET=y 239CONFIG_INET=y
222# CONFIG_IP_MULTICAST is not set 240# CONFIG_IP_MULTICAST is not set
@@ -237,13 +255,29 @@ CONFIG_IP_PNP_BOOTP=y
237# CONFIG_INET_TUNNEL is not set 255# CONFIG_INET_TUNNEL is not set
238CONFIG_INET_XFRM_MODE_TRANSPORT=y 256CONFIG_INET_XFRM_MODE_TRANSPORT=y
239CONFIG_INET_XFRM_MODE_TUNNEL=y 257CONFIG_INET_XFRM_MODE_TUNNEL=y
258CONFIG_INET_XFRM_MODE_BEET=y
240CONFIG_INET_DIAG=y 259CONFIG_INET_DIAG=y
241CONFIG_INET_TCP_DIAG=y 260CONFIG_INET_TCP_DIAG=y
242# CONFIG_TCP_CONG_ADVANCED is not set 261# CONFIG_TCP_CONG_ADVANCED is not set
243CONFIG_TCP_CONG_BIC=y 262CONFIG_TCP_CONG_CUBIC=y
244# CONFIG_IPV6 is not set 263CONFIG_DEFAULT_TCP_CONG="cubic"
264# CONFIG_TCP_MD5SIG is not set
265CONFIG_IPV6=y
266# CONFIG_IPV6_PRIVACY is not set
267# CONFIG_IPV6_ROUTER_PREF is not set
268# CONFIG_INET6_AH is not set
269# CONFIG_INET6_ESP is not set
270# CONFIG_INET6_IPCOMP is not set
271# CONFIG_IPV6_MIP6 is not set
245# CONFIG_INET6_XFRM_TUNNEL is not set 272# CONFIG_INET6_XFRM_TUNNEL is not set
246# CONFIG_INET6_TUNNEL is not set 273# CONFIG_INET6_TUNNEL is not set
274# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
275# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
276# CONFIG_INET6_XFRM_MODE_BEET is not set
277# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
278# CONFIG_IPV6_SIT is not set
279# CONFIG_IPV6_TUNNEL is not set
280# CONFIG_IPV6_MULTIPLE_TABLES is not set
247# CONFIG_NETWORK_SECMARK is not set 281# CONFIG_NETWORK_SECMARK is not set
248# CONFIG_NETFILTER is not set 282# CONFIG_NETFILTER is not set
249 283
@@ -270,7 +304,6 @@ CONFIG_TCP_CONG_BIC=y
270# CONFIG_ATALK is not set 304# CONFIG_ATALK is not set
271# CONFIG_X25 is not set 305# CONFIG_X25 is not set
272# CONFIG_LAPB is not set 306# CONFIG_LAPB is not set
273# CONFIG_NET_DIVERT is not set
274# CONFIG_ECONET is not set 307# CONFIG_ECONET is not set
275# CONFIG_WAN_ROUTER is not set 308# CONFIG_WAN_ROUTER is not set
276 309
@@ -329,6 +362,7 @@ CONFIG_MTD_BLOCK=y
329# CONFIG_NFTL is not set 362# CONFIG_NFTL is not set
330# CONFIG_INFTL is not set 363# CONFIG_INFTL is not set
331# CONFIG_RFD_FTL is not set 364# CONFIG_RFD_FTL is not set
365# CONFIG_SSFDC is not set
332 366
333# 367#
334# RAM/ROM/Flash chip drivers 368# RAM/ROM/Flash chip drivers
@@ -410,7 +444,7 @@ CONFIG_MTD_CFI_UTIL=y
410# 444#
411# CONFIG_BLK_DEV_COW_COMMON is not set 445# CONFIG_BLK_DEV_COW_COMMON is not set
412# CONFIG_BLK_DEV_LOOP is not set 446# CONFIG_BLK_DEV_LOOP is not set
413# CONFIG_BLK_DEV_NBD is not set 447CONFIG_BLK_DEV_NBD=y
414# CONFIG_BLK_DEV_RAM is not set 448# CONFIG_BLK_DEV_RAM is not set
415# CONFIG_BLK_DEV_INITRD is not set 449# CONFIG_BLK_DEV_INITRD is not set
416# CONFIG_CDROM_PKTCDVD is not set 450# CONFIG_CDROM_PKTCDVD is not set
@@ -447,6 +481,12 @@ CONFIG_BLK_DEV_IDEDISK=y
447# 481#
448# CONFIG_RAID_ATTRS is not set 482# CONFIG_RAID_ATTRS is not set
449# CONFIG_SCSI is not set 483# CONFIG_SCSI is not set
484# CONFIG_SCSI_NETLINK is not set
485
486#
487# Serial ATA (prod) and Parallel ATA (experimental) drivers
488#
489# CONFIG_ATA is not set
450 490
451# 491#
452# Multi-device support (RAID and LVM) 492# Multi-device support (RAID and LVM)
@@ -526,6 +566,7 @@ CONFIG_SMC91X=y
526# Input device support 566# Input device support
527# 567#
528CONFIG_INPUT=y 568CONFIG_INPUT=y
569# CONFIG_INPUT_FF_MEMLESS is not set
529 570
530# 571#
531# Userland interfaces 572# Userland interfaces
@@ -548,6 +589,7 @@ CONFIG_KEYBOARD_ATKBD=y
548# CONFIG_KEYBOARD_LKKBD is not set 589# CONFIG_KEYBOARD_LKKBD is not set
549# CONFIG_KEYBOARD_XTKBD is not set 590# CONFIG_KEYBOARD_XTKBD is not set
550# CONFIG_KEYBOARD_NEWTON is not set 591# CONFIG_KEYBOARD_NEWTON is not set
592# CONFIG_KEYBOARD_STOWAWAY is not set
551# CONFIG_INPUT_MOUSE is not set 593# CONFIG_INPUT_MOUSE is not set
552# CONFIG_INPUT_JOYSTICK is not set 594# CONFIG_INPUT_JOYSTICK is not set
553# CONFIG_INPUT_TOUCHSCREEN is not set 595# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -600,17 +642,12 @@ CONFIG_LEGACY_PTY_COUNT=256
600# CONFIG_NVRAM is not set 642# CONFIG_NVRAM is not set
601# CONFIG_DTLK is not set 643# CONFIG_DTLK is not set
602# CONFIG_R3964 is not set 644# CONFIG_R3964 is not set
603
604#
605# Ftape, the floppy tape device driver
606#
607# CONFIG_RAW_DRIVER is not set 645# CONFIG_RAW_DRIVER is not set
608 646
609# 647#
610# TPM devices 648# TPM devices
611# 649#
612# CONFIG_TCG_TPM is not set 650# CONFIG_TCG_TPM is not set
613# CONFIG_TELCLOCK is not set
614 651
615# 652#
616# I2C support 653# I2C support
@@ -626,6 +663,7 @@ CONFIG_LEGACY_PTY_COUNT=256
626# 663#
627# Dallas's 1-wire bus 664# Dallas's 1-wire bus
628# 665#
666# CONFIG_W1 is not set
629 667
630# 668#
631# Hardware Monitoring support 669# Hardware Monitoring support
@@ -634,11 +672,14 @@ CONFIG_HWMON=y
634# CONFIG_HWMON_VID is not set 672# CONFIG_HWMON_VID is not set
635# CONFIG_SENSORS_ABITUGURU is not set 673# CONFIG_SENSORS_ABITUGURU is not set
636# CONFIG_SENSORS_F71805F is not set 674# CONFIG_SENSORS_F71805F is not set
675# CONFIG_SENSORS_PC87427 is not set
676# CONFIG_SENSORS_VT1211 is not set
637# CONFIG_HWMON_DEBUG_CHIP is not set 677# CONFIG_HWMON_DEBUG_CHIP is not set
638 678
639# 679#
640# Misc devices 680# Misc devices
641# 681#
682# CONFIG_TIFM_CORE is not set
642 683
643# 684#
644# LED devices 685# LED devices
@@ -657,7 +698,6 @@ CONFIG_HWMON=y
657# Multimedia devices 698# Multimedia devices
658# 699#
659# CONFIG_VIDEO_DEV is not set 700# CONFIG_VIDEO_DEV is not set
660CONFIG_VIDEO_V4L2=y
661 701
662# 702#
663# Digital Video Broadcasting Devices 703# Digital Video Broadcasting Devices
@@ -679,6 +719,7 @@ CONFIG_FB_CFB_IMAGEBLIT=y
679# CONFIG_FB_S1D13XXX is not set 719# CONFIG_FB_S1D13XXX is not set
680CONFIG_FB_PXA=y 720CONFIG_FB_PXA=y
681# CONFIG_FB_PXA_PARAMETERS is not set 721# CONFIG_FB_PXA_PARAMETERS is not set
722# CONFIG_FB_MBX is not set
682# CONFIG_FB_VIRTUAL is not set 723# CONFIG_FB_VIRTUAL is not set
683 724
684# 725#
@@ -725,7 +766,6 @@ CONFIG_SND_VERBOSE_PROCFS=y
725# Generic devices 766# Generic devices
726# 767#
727CONFIG_SND_AC97_CODEC=y 768CONFIG_SND_AC97_CODEC=y
728CONFIG_SND_AC97_BUS=y
729# CONFIG_SND_DUMMY is not set 769# CONFIG_SND_DUMMY is not set
730# CONFIG_SND_MTPAV is not set 770# CONFIG_SND_MTPAV is not set
731# CONFIG_SND_SERIAL_U16550 is not set 771# CONFIG_SND_SERIAL_U16550 is not set
@@ -741,6 +781,12 @@ CONFIG_SND_PXA2XX_AC97=y
741# Open Sound System 781# Open Sound System
742# 782#
743# CONFIG_SOUND_PRIME is not set 783# CONFIG_SOUND_PRIME is not set
784CONFIG_AC97_BUS=y
785
786#
787# HID Devices
788#
789CONFIG_HID=y
744 790
745# 791#
746# USB support 792# USB support
@@ -777,10 +823,12 @@ CONFIG_EXT2_FS=y
777# CONFIG_EXT2_FS_XATTR is not set 823# CONFIG_EXT2_FS_XATTR is not set
778# CONFIG_EXT2_FS_XIP is not set 824# CONFIG_EXT2_FS_XIP is not set
779# CONFIG_EXT3_FS is not set 825# CONFIG_EXT3_FS is not set
826# CONFIG_EXT4DEV_FS is not set
780# CONFIG_REISERFS_FS is not set 827# CONFIG_REISERFS_FS is not set
781# CONFIG_JFS_FS is not set 828# CONFIG_JFS_FS is not set
782# CONFIG_FS_POSIX_ACL is not set 829# CONFIG_FS_POSIX_ACL is not set
783# CONFIG_XFS_FS is not set 830# CONFIG_XFS_FS is not set
831# CONFIG_GFS2_FS is not set
784# CONFIG_OCFS2_FS is not set 832# CONFIG_OCFS2_FS is not set
785# CONFIG_MINIX_FS is not set 833# CONFIG_MINIX_FS is not set
786# CONFIG_ROMFS_FS is not set 834# CONFIG_ROMFS_FS is not set
@@ -811,6 +859,7 @@ CONFIG_FAT_DEFAULT_CODEPAGE=437
811# Pseudo filesystems 859# Pseudo filesystems
812# 860#
813CONFIG_PROC_FS=y 861CONFIG_PROC_FS=y
862CONFIG_PROC_SYSCTL=y
814CONFIG_SYSFS=y 863CONFIG_SYSFS=y
815# CONFIG_TMPFS is not set 864# CONFIG_TMPFS is not set
816# CONFIG_HUGETLB_PAGE is not set 865# CONFIG_HUGETLB_PAGE is not set
@@ -860,7 +909,6 @@ CONFIG_SUNRPC=y
860# CONFIG_RPCSEC_GSS_SPKM3 is not set 909# CONFIG_RPCSEC_GSS_SPKM3 is not set
861# CONFIG_SMB_FS is not set 910# CONFIG_SMB_FS is not set
862# CONFIG_CIFS is not set 911# CONFIG_CIFS is not set
863# CONFIG_CIFS_DEBUG2 is not set
864# CONFIG_NCP_FS is not set 912# CONFIG_NCP_FS is not set
865# CONFIG_CODA_FS is not set 913# CONFIG_CODA_FS is not set
866# CONFIG_AFS_FS is not set 914# CONFIG_AFS_FS is not set
@@ -917,6 +965,11 @@ CONFIG_NLS_ISO8859_1=y
917# CONFIG_NLS_UTF8 is not set 965# CONFIG_NLS_UTF8 is not set
918 966
919# 967#
968# Distributed Lock Manager
969#
970# CONFIG_DLM is not set
971
972#
920# Profiling support 973# Profiling support
921# 974#
922# CONFIG_PROFILING is not set 975# CONFIG_PROFILING is not set
@@ -925,8 +978,11 @@ CONFIG_NLS_ISO8859_1=y
925# Kernel hacking 978# Kernel hacking
926# 979#
927# CONFIG_PRINTK_TIME is not set 980# CONFIG_PRINTK_TIME is not set
981CONFIG_ENABLE_MUST_CHECK=y
928CONFIG_MAGIC_SYSRQ=y 982CONFIG_MAGIC_SYSRQ=y
929# CONFIG_UNUSED_SYMBOLS is not set 983# CONFIG_UNUSED_SYMBOLS is not set
984# CONFIG_DEBUG_FS is not set
985# CONFIG_HEADERS_CHECK is not set
930CONFIG_DEBUG_KERNEL=y 986CONFIG_DEBUG_KERNEL=y
931CONFIG_LOG_BUF_SHIFT=14 987CONFIG_LOG_BUF_SHIFT=14
932CONFIG_DETECT_SOFTLOCKUP=y 988CONFIG_DETECT_SOFTLOCKUP=y
@@ -942,10 +998,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
942# CONFIG_DEBUG_KOBJECT is not set 998# CONFIG_DEBUG_KOBJECT is not set
943CONFIG_DEBUG_BUGVERBOSE=y 999CONFIG_DEBUG_BUGVERBOSE=y
944CONFIG_DEBUG_INFO=y 1000CONFIG_DEBUG_INFO=y
945# CONFIG_DEBUG_FS is not set
946# CONFIG_DEBUG_VM is not set 1001# CONFIG_DEBUG_VM is not set
1002# CONFIG_DEBUG_LIST is not set
947CONFIG_FRAME_POINTER=y 1003CONFIG_FRAME_POINTER=y
948# CONFIG_UNWIND_INFO is not set
949CONFIG_FORCED_INLINING=y 1004CONFIG_FORCED_INLINING=y
950# CONFIG_RCU_TORTURE_TEST is not set 1005# CONFIG_RCU_TORTURE_TEST is not set
951CONFIG_DEBUG_USER=y 1006CONFIG_DEBUG_USER=y
@@ -965,12 +1020,9 @@ CONFIG_DEBUG_LL=y
965# CONFIG_CRYPTO is not set 1020# CONFIG_CRYPTO is not set
966 1021
967# 1022#
968# Hardware crypto devices
969#
970
971#
972# Library routines 1023# Library routines
973# 1024#
1025CONFIG_BITREVERSE=y
974# CONFIG_CRC_CCITT is not set 1026# CONFIG_CRC_CCITT is not set
975# CONFIG_CRC16 is not set 1027# CONFIG_CRC16 is not set
976CONFIG_CRC32=y 1028CONFIG_CRC32=y
@@ -978,3 +1030,4 @@ CONFIG_CRC32=y
978CONFIG_ZLIB_INFLATE=y 1030CONFIG_ZLIB_INFLATE=y
979CONFIG_ZLIB_DEFLATE=y 1031CONFIG_ZLIB_DEFLATE=y
980CONFIG_PLIST=y 1032CONFIG_PLIST=y
1033CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 0498ebd7d5de..650a248613e5 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.18-rc1 3# Linux kernel version: 2.6.20-rc1
4# Sun Jul 9 14:16:20 2006 4# Sat Dec 16 06:05:18 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7# CONFIG_GENERIC_TIME is not set
7CONFIG_MMU=y 8CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y 9CONFIG_GENERIC_HARDIRQS=y
10CONFIG_TRACE_IRQFLAGS_SUPPORT=y
9CONFIG_HARDIRQS_SW_RESEND=y 11CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y 12CONFIG_GENERIC_IRQ_PROBE=y
11CONFIG_RWSEM_GENERIC_SPINLOCK=y 13CONFIG_RWSEM_GENERIC_SPINLOCK=y
14# CONFIG_ARCH_HAS_ILOG2_U32 is not set
15# CONFIG_ARCH_HAS_ILOG2_U64 is not set
12CONFIG_GENERIC_HWEIGHT=y 16CONFIG_GENERIC_HWEIGHT=y
13CONFIG_GENERIC_CALIBRATE_DELAY=y 17CONFIG_GENERIC_CALIBRATE_DELAY=y
14CONFIG_VECTORS_BASE=0xffff0000 18CONFIG_VECTORS_BASE=0xffff0000
@@ -28,16 +32,21 @@ CONFIG_LOCALVERSION=""
28CONFIG_LOCALVERSION_AUTO=y 32CONFIG_LOCALVERSION_AUTO=y
29# CONFIG_SWAP is not set 33# CONFIG_SWAP is not set
30CONFIG_SYSVIPC=y 34CONFIG_SYSVIPC=y
35# CONFIG_IPC_NS is not set
31# CONFIG_POSIX_MQUEUE is not set 36# CONFIG_POSIX_MQUEUE is not set
32# CONFIG_BSD_PROCESS_ACCT is not set 37# CONFIG_BSD_PROCESS_ACCT is not set
33CONFIG_SYSCTL=y 38# CONFIG_TASKSTATS is not set
39# CONFIG_UTS_NS is not set
34# CONFIG_AUDIT is not set 40# CONFIG_AUDIT is not set
35# CONFIG_IKCONFIG is not set 41# CONFIG_IKCONFIG is not set
42CONFIG_SYSFS_DEPRECATED=y
36# CONFIG_RELAY is not set 43# CONFIG_RELAY is not set
37CONFIG_INITRAMFS_SOURCE="" 44CONFIG_INITRAMFS_SOURCE=""
38CONFIG_UID16=y
39CONFIG_CC_OPTIMIZE_FOR_SIZE=y 45CONFIG_CC_OPTIMIZE_FOR_SIZE=y
46CONFIG_SYSCTL=y
40CONFIG_EMBEDDED=y 47CONFIG_EMBEDDED=y
48CONFIG_UID16=y
49CONFIG_SYSCTL_SYSCALL=y
41CONFIG_KALLSYMS=y 50CONFIG_KALLSYMS=y
42# CONFIG_KALLSYMS_ALL is not set 51# CONFIG_KALLSYMS_ALL is not set
43# CONFIG_KALLSYMS_EXTRA_PASS is not set 52# CONFIG_KALLSYMS_EXTRA_PASS is not set
@@ -46,12 +55,12 @@ CONFIG_PRINTK=y
46CONFIG_BUG=y 55CONFIG_BUG=y
47CONFIG_ELF_CORE=y 56CONFIG_ELF_CORE=y
48CONFIG_BASE_FULL=y 57CONFIG_BASE_FULL=y
49CONFIG_RT_MUTEXES=y
50CONFIG_FUTEX=y 58CONFIG_FUTEX=y
51CONFIG_EPOLL=y 59CONFIG_EPOLL=y
52CONFIG_SHMEM=y 60CONFIG_SHMEM=y
53CONFIG_SLAB=y 61CONFIG_SLAB=y
54CONFIG_VM_EVENT_COUNTERS=y 62CONFIG_VM_EVENT_COUNTERS=y
63CONFIG_RT_MUTEXES=y
55# CONFIG_TINY_SHMEM is not set 64# CONFIG_TINY_SHMEM is not set
56CONFIG_BASE_SMALL=0 65CONFIG_BASE_SMALL=0
57# CONFIG_SLOB is not set 66# CONFIG_SLOB is not set
@@ -69,7 +78,10 @@ CONFIG_KMOD=y
69# 78#
70# Block layer 79# Block layer
71# 80#
81CONFIG_BLOCK=y
82# CONFIG_LBD is not set
72# CONFIG_BLK_DEV_IO_TRACE is not set 83# CONFIG_BLK_DEV_IO_TRACE is not set
84# CONFIG_LSF is not set
73 85
74# 86#
75# IO Schedulers 87# IO Schedulers
@@ -101,7 +113,9 @@ CONFIG_ARCH_AT91=y
101# CONFIG_ARCH_NETX is not set 113# CONFIG_ARCH_NETX is not set
102# CONFIG_ARCH_H720X is not set 114# CONFIG_ARCH_H720X is not set
103# CONFIG_ARCH_IMX is not set 115# CONFIG_ARCH_IMX is not set
104# CONFIG_ARCH_IOP3XX is not set 116# CONFIG_ARCH_IOP32X is not set
117# CONFIG_ARCH_IOP33X is not set
118# CONFIG_ARCH_IOP13XX is not set
105# CONFIG_ARCH_IXP4XX is not set 119# CONFIG_ARCH_IXP4XX is not set
106# CONFIG_ARCH_IXP2000 is not set 120# CONFIG_ARCH_IXP2000 is not set
107# CONFIG_ARCH_IXP23XX is not set 121# CONFIG_ARCH_IXP23XX is not set
@@ -118,10 +132,6 @@ CONFIG_ARCH_AT91=y
118# 132#
119# Atmel AT91 System-on-Chip 133# Atmel AT91 System-on-Chip
120# 134#
121
122#
123# Atmel AT91 Processors
124#
125CONFIG_ARCH_AT91RM9200=y 135CONFIG_ARCH_AT91RM9200=y
126# CONFIG_ARCH_AT91SAM9260 is not set 136# CONFIG_ARCH_AT91SAM9260 is not set
127# CONFIG_ARCH_AT91SAM9261 is not set 137# CONFIG_ARCH_AT91SAM9261 is not set
@@ -140,6 +150,10 @@ CONFIG_MACH_ONEARM=y
140# CONFIG_MACH_KAFA is not set 150# CONFIG_MACH_KAFA is not set
141 151
142# 152#
153# AT91 Board Options
154#
155
156#
143# AT91 Feature Selections 157# AT91 Feature Selections
144# 158#
145CONFIG_AT91_PROGRAMMABLE_CLOCKS=y 159CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
@@ -149,12 +163,14 @@ CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
149# 163#
150CONFIG_CPU_32=y 164CONFIG_CPU_32=y
151CONFIG_CPU_ARM920T=y 165CONFIG_CPU_ARM920T=y
152CONFIG_CPU_32v4=y 166CONFIG_CPU_32v4T=y
153CONFIG_CPU_ABRT_EV4T=y 167CONFIG_CPU_ABRT_EV4T=y
154CONFIG_CPU_CACHE_V4WT=y 168CONFIG_CPU_CACHE_V4WT=y
155CONFIG_CPU_CACHE_VIVT=y 169CONFIG_CPU_CACHE_VIVT=y
156CONFIG_CPU_COPY_V4WB=y 170CONFIG_CPU_COPY_V4WB=y
157CONFIG_CPU_TLB_V4WBI=y 171CONFIG_CPU_TLB_V4WBI=y
172CONFIG_CPU_CP15=y
173CONFIG_CPU_CP15_MMU=y
158 174
159# 175#
160# Processor Features 176# Processor Features
@@ -251,6 +267,7 @@ CONFIG_PACKET=y
251CONFIG_UNIX=y 267CONFIG_UNIX=y
252CONFIG_XFRM=y 268CONFIG_XFRM=y
253# CONFIG_XFRM_USER is not set 269# CONFIG_XFRM_USER is not set
270# CONFIG_XFRM_SUB_POLICY is not set
254# CONFIG_NET_KEY is not set 271# CONFIG_NET_KEY is not set
255CONFIG_INET=y 272CONFIG_INET=y
256# CONFIG_IP_MULTICAST is not set 273# CONFIG_IP_MULTICAST is not set
@@ -271,13 +288,29 @@ CONFIG_IP_PNP_BOOTP=y
271# CONFIG_INET_TUNNEL is not set 288# CONFIG_INET_TUNNEL is not set
272CONFIG_INET_XFRM_MODE_TRANSPORT=y 289CONFIG_INET_XFRM_MODE_TRANSPORT=y
273CONFIG_INET_XFRM_MODE_TUNNEL=y 290CONFIG_INET_XFRM_MODE_TUNNEL=y
291CONFIG_INET_XFRM_MODE_BEET=y
274CONFIG_INET_DIAG=y 292CONFIG_INET_DIAG=y
275CONFIG_INET_TCP_DIAG=y 293CONFIG_INET_TCP_DIAG=y
276# CONFIG_TCP_CONG_ADVANCED is not set 294# CONFIG_TCP_CONG_ADVANCED is not set
277CONFIG_TCP_CONG_BIC=y 295CONFIG_TCP_CONG_CUBIC=y
278# CONFIG_IPV6 is not set 296CONFIG_DEFAULT_TCP_CONG="cubic"
297# CONFIG_TCP_MD5SIG is not set
298CONFIG_IPV6=y
299# CONFIG_IPV6_PRIVACY is not set
300# CONFIG_IPV6_ROUTER_PREF is not set
301# CONFIG_INET6_AH is not set
302# CONFIG_INET6_ESP is not set
303# CONFIG_INET6_IPCOMP is not set
304# CONFIG_IPV6_MIP6 is not set
279# CONFIG_INET6_XFRM_TUNNEL is not set 305# CONFIG_INET6_XFRM_TUNNEL is not set
280# CONFIG_INET6_TUNNEL is not set 306# CONFIG_INET6_TUNNEL is not set
307# CONFIG_INET6_XFRM_MODE_TRANSPORT is not set
308# CONFIG_INET6_XFRM_MODE_TUNNEL is not set
309# CONFIG_INET6_XFRM_MODE_BEET is not set
310# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
311# CONFIG_IPV6_SIT is not set
312# CONFIG_IPV6_TUNNEL is not set
313# CONFIG_IPV6_MULTIPLE_TABLES is not set
281# CONFIG_NETWORK_SECMARK is not set 314# CONFIG_NETWORK_SECMARK is not set
282# CONFIG_NETFILTER is not set 315# CONFIG_NETFILTER is not set
283 316
@@ -304,7 +337,6 @@ CONFIG_TCP_CONG_BIC=y
304# CONFIG_ATALK is not set 337# CONFIG_ATALK is not set
305# CONFIG_X25 is not set 338# CONFIG_X25 is not set
306# CONFIG_LAPB is not set 339# CONFIG_LAPB is not set
307# CONFIG_NET_DIVERT is not set
308# CONFIG_ECONET is not set 340# CONFIG_ECONET is not set
309# CONFIG_WAN_ROUTER is not set 341# CONFIG_WAN_ROUTER is not set
310 342
@@ -360,6 +392,7 @@ CONFIG_MTD_BLOCK=y
360# CONFIG_NFTL is not set 392# CONFIG_NFTL is not set
361# CONFIG_INFTL is not set 393# CONFIG_INFTL is not set
362# CONFIG_RFD_FTL is not set 394# CONFIG_RFD_FTL is not set
395# CONFIG_SSFDC is not set
363 396
364# 397#
365# RAM/ROM/Flash chip drivers 398# RAM/ROM/Flash chip drivers
@@ -438,11 +471,12 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=0
438# 471#
439# CONFIG_BLK_DEV_COW_COMMON is not set 472# CONFIG_BLK_DEV_COW_COMMON is not set
440# CONFIG_BLK_DEV_LOOP is not set 473# CONFIG_BLK_DEV_LOOP is not set
441# CONFIG_BLK_DEV_NBD is not set 474CONFIG_BLK_DEV_NBD=y
442# CONFIG_BLK_DEV_UB is not set 475# CONFIG_BLK_DEV_UB is not set
443CONFIG_BLK_DEV_RAM=y 476CONFIG_BLK_DEV_RAM=y
444CONFIG_BLK_DEV_RAM_COUNT=16 477CONFIG_BLK_DEV_RAM_COUNT=16
445CONFIG_BLK_DEV_RAM_SIZE=8192 478CONFIG_BLK_DEV_RAM_SIZE=8192
479CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
446CONFIG_BLK_DEV_INITRD=y 480CONFIG_BLK_DEV_INITRD=y
447# CONFIG_CDROM_PKTCDVD is not set 481# CONFIG_CDROM_PKTCDVD is not set
448# CONFIG_ATA_OVER_ETH is not set 482# CONFIG_ATA_OVER_ETH is not set
@@ -457,6 +491,12 @@ CONFIG_BLK_DEV_INITRD=y
457# 491#
458# CONFIG_RAID_ATTRS is not set 492# CONFIG_RAID_ATTRS is not set
459# CONFIG_SCSI is not set 493# CONFIG_SCSI is not set
494# CONFIG_SCSI_NETLINK is not set
495
496#
497# Serial ATA (prod) and Parallel ATA (experimental) drivers
498#
499# CONFIG_ATA is not set
460 500
461# 501#
462# Multi-device support (RAID and LVM) 502# Multi-device support (RAID and LVM)
@@ -541,6 +581,7 @@ CONFIG_ARM_AT91_ETHER=y
541# Input device support 581# Input device support
542# 582#
543CONFIG_INPUT=y 583CONFIG_INPUT=y
584# CONFIG_INPUT_FF_MEMLESS is not set
544 585
545# 586#
546# Userland interfaces 587# Userland interfaces
@@ -619,10 +660,6 @@ CONFIG_AT91RM9200_WATCHDOG=y
619# CONFIG_R3964 is not set 660# CONFIG_R3964 is not set
620 661
621# 662#
622# Ftape, the floppy tape device driver
623#
624
625#
626# PCMCIA character devices 663# PCMCIA character devices
627# 664#
628# CONFIG_SYNCLINK_CS is not set 665# CONFIG_SYNCLINK_CS is not set
@@ -634,7 +671,6 @@ CONFIG_AT91RM9200_WATCHDOG=y
634# TPM devices 671# TPM devices
635# 672#
636# CONFIG_TCG_TPM is not set 673# CONFIG_TCG_TPM is not set
637# CONFIG_TELCLOCK is not set
638 674
639# 675#
640# I2C support 676# I2C support
@@ -652,6 +688,7 @@ CONFIG_I2C_CHARDEV=y
652# 688#
653# I2C Hardware Bus support 689# I2C Hardware Bus support
654# 690#
691# CONFIG_I2C_AT91 is not set
655# CONFIG_I2C_OCORES is not set 692# CONFIG_I2C_OCORES is not set
656# CONFIG_I2C_PARPORT_LIGHT is not set 693# CONFIG_I2C_PARPORT_LIGHT is not set
657# CONFIG_I2C_STUB is not set 694# CONFIG_I2C_STUB is not set
@@ -681,6 +718,7 @@ CONFIG_I2C_CHARDEV=y
681# 718#
682# Dallas's 1-wire bus 719# Dallas's 1-wire bus
683# 720#
721# CONFIG_W1 is not set
684 722
685# 723#
686# Hardware Monitoring support 724# Hardware Monitoring support
@@ -714,12 +752,15 @@ CONFIG_HWMON=y
714# CONFIG_SENSORS_LM92 is not set 752# CONFIG_SENSORS_LM92 is not set
715# CONFIG_SENSORS_MAX1619 is not set 753# CONFIG_SENSORS_MAX1619 is not set
716# CONFIG_SENSORS_PC87360 is not set 754# CONFIG_SENSORS_PC87360 is not set
755# CONFIG_SENSORS_PC87427 is not set
717# CONFIG_SENSORS_SMSC47M1 is not set 756# CONFIG_SENSORS_SMSC47M1 is not set
718# CONFIG_SENSORS_SMSC47M192 is not set 757# CONFIG_SENSORS_SMSC47M192 is not set
719# CONFIG_SENSORS_SMSC47B397 is not set 758# CONFIG_SENSORS_SMSC47B397 is not set
759# CONFIG_SENSORS_VT1211 is not set
720# CONFIG_SENSORS_W83781D is not set 760# CONFIG_SENSORS_W83781D is not set
721# CONFIG_SENSORS_W83791D is not set 761# CONFIG_SENSORS_W83791D is not set
722# CONFIG_SENSORS_W83792D is not set 762# CONFIG_SENSORS_W83792D is not set
763# CONFIG_SENSORS_W83793 is not set
723# CONFIG_SENSORS_W83L785TS is not set 764# CONFIG_SENSORS_W83L785TS is not set
724# CONFIG_SENSORS_W83627HF is not set 765# CONFIG_SENSORS_W83627HF is not set
725# CONFIG_SENSORS_W83627EHF is not set 766# CONFIG_SENSORS_W83627EHF is not set
@@ -728,6 +769,7 @@ CONFIG_HWMON=y
728# 769#
729# Misc devices 770# Misc devices
730# 771#
772# CONFIG_TIFM_CORE is not set
731 773
732# 774#
733# LED devices 775# LED devices
@@ -746,7 +788,6 @@ CONFIG_HWMON=y
746# Multimedia devices 788# Multimedia devices
747# 789#
748# CONFIG_VIDEO_DEV is not set 790# CONFIG_VIDEO_DEV is not set
749CONFIG_VIDEO_V4L2=y
750 791
751# 792#
752# Digital Video Broadcasting Devices 793# Digital Video Broadcasting Devices
@@ -759,6 +800,7 @@ CONFIG_VIDEO_V4L2=y
759# 800#
760# CONFIG_FIRMWARE_EDID is not set 801# CONFIG_FIRMWARE_EDID is not set
761# CONFIG_FB is not set 802# CONFIG_FB is not set
803# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
762 804
763# 805#
764# Sound 806# Sound
@@ -766,6 +808,11 @@ CONFIG_VIDEO_V4L2=y
766# CONFIG_SOUND is not set 808# CONFIG_SOUND is not set
767 809
768# 810#
811# HID Devices
812#
813CONFIG_HID=y
814
815#
769# USB support 816# USB support
770# 817#
771CONFIG_USB_ARCH_HAS_HCD=y 818CONFIG_USB_ARCH_HAS_HCD=y
@@ -780,6 +827,7 @@ CONFIG_USB_DEBUG=y
780CONFIG_USB_DEVICEFS=y 827CONFIG_USB_DEVICEFS=y
781# CONFIG_USB_BANDWIDTH is not set 828# CONFIG_USB_BANDWIDTH is not set
782# CONFIG_USB_DYNAMIC_MINORS is not set 829# CONFIG_USB_DYNAMIC_MINORS is not set
830# CONFIG_USB_MULTITHREAD_PROBE is not set
783# CONFIG_USB_OTG is not set 831# CONFIG_USB_OTG is not set
784 832
785# 833#
@@ -804,7 +852,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
804# 852#
805# may also be needed; see USB_STORAGE Help for more information 853# may also be needed; see USB_STORAGE Help for more information
806# 854#
807# CONFIG_USB_STORAGE is not set
808# CONFIG_USB_LIBUSUAL is not set 855# CONFIG_USB_LIBUSUAL is not set
809 856
810# 857#
@@ -842,6 +889,7 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
842# CONFIG_USB_KAWETH is not set 889# CONFIG_USB_KAWETH is not set
843# CONFIG_USB_PEGASUS is not set 890# CONFIG_USB_PEGASUS is not set
844# CONFIG_USB_RTL8150 is not set 891# CONFIG_USB_RTL8150 is not set
892# CONFIG_USB_USBNET_MII is not set
845# CONFIG_USB_USBNET is not set 893# CONFIG_USB_USBNET is not set
846CONFIG_USB_MON=y 894CONFIG_USB_MON=y
847 895
@@ -859,18 +907,20 @@ CONFIG_USB_MON=y
859# 907#
860# CONFIG_USB_EMI62 is not set 908# CONFIG_USB_EMI62 is not set
861# CONFIG_USB_EMI26 is not set 909# CONFIG_USB_EMI26 is not set
910# CONFIG_USB_ADUTUX is not set
862# CONFIG_USB_AUERSWALD is not set 911# CONFIG_USB_AUERSWALD is not set
863# CONFIG_USB_RIO500 is not set 912# CONFIG_USB_RIO500 is not set
864# CONFIG_USB_LEGOTOWER is not set 913# CONFIG_USB_LEGOTOWER is not set
865# CONFIG_USB_LCD is not set 914# CONFIG_USB_LCD is not set
866# CONFIG_USB_LED is not set 915# CONFIG_USB_LED is not set
867# CONFIG_USB_CY7C63 is not set 916# CONFIG_USB_CYPRESS_CY7C63 is not set
868# CONFIG_USB_CYTHERM is not set 917# CONFIG_USB_CYTHERM is not set
869# CONFIG_USB_PHIDGETKIT is not set 918# CONFIG_USB_PHIDGET is not set
870# CONFIG_USB_PHIDGETSERVO is not set
871# CONFIG_USB_IDMOUSE is not set 919# CONFIG_USB_IDMOUSE is not set
920# CONFIG_USB_FTDI_ELAN is not set
872# CONFIG_USB_APPLEDISPLAY is not set 921# CONFIG_USB_APPLEDISPLAY is not set
873# CONFIG_USB_LD is not set 922# CONFIG_USB_LD is not set
923# CONFIG_USB_TRANCEVIBRATOR is not set
874# CONFIG_USB_TEST is not set 924# CONFIG_USB_TEST is not set
875 925
876# 926#
@@ -897,6 +947,7 @@ CONFIG_USB_AT91=y
897# CONFIG_USB_GADGETFS is not set 947# CONFIG_USB_GADGETFS is not set
898# CONFIG_USB_FILE_STORAGE is not set 948# CONFIG_USB_FILE_STORAGE is not set
899# CONFIG_USB_G_SERIAL is not set 949# CONFIG_USB_G_SERIAL is not set
950# CONFIG_USB_MIDI_GADGET is not set
900 951
901# 952#
902# MMC/SD Card support 953# MMC/SD Card support
@@ -904,7 +955,8 @@ CONFIG_USB_AT91=y
904CONFIG_MMC=y 955CONFIG_MMC=y
905# CONFIG_MMC_DEBUG is not set 956# CONFIG_MMC_DEBUG is not set
906CONFIG_MMC_BLOCK=y 957CONFIG_MMC_BLOCK=y
907CONFIG_MMC_AT91RM9200=y 958# CONFIG_MMC_AT91 is not set
959# CONFIG_MMC_TIFM_SD is not set
908 960
909# 961#
910# Real Time Clock 962# Real Time Clock
@@ -919,10 +971,12 @@ CONFIG_EXT2_FS=y
919# CONFIG_EXT2_FS_XATTR is not set 971# CONFIG_EXT2_FS_XATTR is not set
920# CONFIG_EXT2_FS_XIP is not set 972# CONFIG_EXT2_FS_XIP is not set
921# CONFIG_EXT3_FS is not set 973# CONFIG_EXT3_FS is not set
974# CONFIG_EXT4DEV_FS is not set
922# CONFIG_REISERFS_FS is not set 975# CONFIG_REISERFS_FS is not set
923# CONFIG_JFS_FS is not set 976# CONFIG_JFS_FS is not set
924CONFIG_FS_POSIX_ACL=y 977CONFIG_FS_POSIX_ACL=y
925# CONFIG_XFS_FS is not set 978# CONFIG_XFS_FS is not set
979# CONFIG_GFS2_FS is not set
926# CONFIG_OCFS2_FS is not set 980# CONFIG_OCFS2_FS is not set
927# CONFIG_MINIX_FS is not set 981# CONFIG_MINIX_FS is not set
928# CONFIG_ROMFS_FS is not set 982# CONFIG_ROMFS_FS is not set
@@ -951,8 +1005,10 @@ CONFIG_DNOTIFY=y
951# Pseudo filesystems 1005# Pseudo filesystems
952# 1006#
953CONFIG_PROC_FS=y 1007CONFIG_PROC_FS=y
1008CONFIG_PROC_SYSCTL=y
954CONFIG_SYSFS=y 1009CONFIG_SYSFS=y
955CONFIG_TMPFS=y 1010CONFIG_TMPFS=y
1011# CONFIG_TMPFS_POSIX_ACL is not set
956# CONFIG_HUGETLB_PAGE is not set 1012# CONFIG_HUGETLB_PAGE is not set
957CONFIG_RAMFS=y 1013CONFIG_RAMFS=y
958# CONFIG_CONFIGFS_FS is not set 1014# CONFIG_CONFIGFS_FS is not set
@@ -995,7 +1051,6 @@ CONFIG_SUNRPC=y
995# CONFIG_RPCSEC_GSS_SPKM3 is not set 1051# CONFIG_RPCSEC_GSS_SPKM3 is not set
996# CONFIG_SMB_FS is not set 1052# CONFIG_SMB_FS is not set
997# CONFIG_CIFS is not set 1053# CONFIG_CIFS is not set
998# CONFIG_CIFS_DEBUG2 is not set
999# CONFIG_NCP_FS is not set 1054# CONFIG_NCP_FS is not set
1000# CONFIG_CODA_FS is not set 1055# CONFIG_CODA_FS is not set
1001# CONFIG_AFS_FS is not set 1056# CONFIG_AFS_FS is not set
@@ -1013,6 +1068,11 @@ CONFIG_MSDOS_PARTITION=y
1013# CONFIG_NLS is not set 1068# CONFIG_NLS is not set
1014 1069
1015# 1070#
1071# Distributed Lock Manager
1072#
1073# CONFIG_DLM is not set
1074
1075#
1016# Profiling support 1076# Profiling support
1017# 1077#
1018# CONFIG_PROFILING is not set 1078# CONFIG_PROFILING is not set
@@ -1021,8 +1081,11 @@ CONFIG_MSDOS_PARTITION=y
1021# Kernel hacking 1081# Kernel hacking
1022# 1082#
1023# CONFIG_PRINTK_TIME is not set 1083# CONFIG_PRINTK_TIME is not set
1084CONFIG_ENABLE_MUST_CHECK=y
1024# CONFIG_MAGIC_SYSRQ is not set 1085# CONFIG_MAGIC_SYSRQ is not set
1025# CONFIG_UNUSED_SYMBOLS is not set 1086# CONFIG_UNUSED_SYMBOLS is not set
1087# CONFIG_DEBUG_FS is not set
1088# CONFIG_HEADERS_CHECK is not set
1026CONFIG_DEBUG_KERNEL=y 1089CONFIG_DEBUG_KERNEL=y
1027CONFIG_LOG_BUF_SHIFT=14 1090CONFIG_LOG_BUF_SHIFT=14
1028CONFIG_DETECT_SOFTLOCKUP=y 1091CONFIG_DETECT_SOFTLOCKUP=y
@@ -1038,10 +1101,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
1038# CONFIG_DEBUG_KOBJECT is not set 1101# CONFIG_DEBUG_KOBJECT is not set
1039CONFIG_DEBUG_BUGVERBOSE=y 1102CONFIG_DEBUG_BUGVERBOSE=y
1040# CONFIG_DEBUG_INFO is not set 1103# CONFIG_DEBUG_INFO is not set
1041# CONFIG_DEBUG_FS is not set
1042# CONFIG_DEBUG_VM is not set 1104# CONFIG_DEBUG_VM is not set
1105# CONFIG_DEBUG_LIST is not set
1043CONFIG_FRAME_POINTER=y 1106CONFIG_FRAME_POINTER=y
1044# CONFIG_UNWIND_INFO is not set
1045CONFIG_FORCED_INLINING=y 1107CONFIG_FORCED_INLINING=y
1046# CONFIG_RCU_TORTURE_TEST is not set 1108# CONFIG_RCU_TORTURE_TEST is not set
1047CONFIG_DEBUG_USER=y 1109CONFIG_DEBUG_USER=y
@@ -1061,15 +1123,13 @@ CONFIG_DEBUG_LL=y
1061# CONFIG_CRYPTO is not set 1123# CONFIG_CRYPTO is not set
1062 1124
1063# 1125#
1064# Hardware crypto devices
1065#
1066
1067#
1068# Library routines 1126# Library routines
1069# 1127#
1128CONFIG_BITREVERSE=y
1070# CONFIG_CRC_CCITT is not set 1129# CONFIG_CRC_CCITT is not set
1071# CONFIG_CRC16 is not set 1130# CONFIG_CRC16 is not set
1072CONFIG_CRC32=y 1131CONFIG_CRC32=y
1073# CONFIG_LIBCRC32C is not set 1132# CONFIG_LIBCRC32C is not set
1074CONFIG_ZLIB_INFLATE=y 1133CONFIG_ZLIB_INFLATE=y
1075CONFIG_PLIST=y 1134CONFIG_PLIST=y
1135CONFIG_IOMAP_COPY=y
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index e8f74363328c..f7598cbc7ec5 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -110,7 +110,7 @@
110 CALL(sys_ni_syscall) /* was sys_profil */ 110 CALL(sys_ni_syscall) /* was sys_profil */
111 CALL(sys_statfs) 111 CALL(sys_statfs)
112/* 100 */ CALL(sys_fstatfs) 112/* 100 */ CALL(sys_fstatfs)
113 CALL(sys_ni_syscall) 113 CALL(sys_ni_syscall) /* sys_ioperm */
114 CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall))) 114 CALL(OBSOLETE(ABI(sys_socketcall, sys_oabi_socketcall)))
115 CALL(sys_syslog) 115 CALL(sys_syslog)
116 CALL(sys_setitimer) 116 CALL(sys_setitimer)
@@ -132,7 +132,7 @@
132/* 120 */ CALL(sys_clone_wrapper) 132/* 120 */ CALL(sys_clone_wrapper)
133 CALL(sys_setdomainname) 133 CALL(sys_setdomainname)
134 CALL(sys_newuname) 134 CALL(sys_newuname)
135 CALL(sys_ni_syscall) 135 CALL(sys_ni_syscall) /* modify_ldt */
136 CALL(sys_adjtimex) 136 CALL(sys_adjtimex)
137/* 125 */ CALL(sys_mprotect) 137/* 125 */ CALL(sys_mprotect)
138 CALL(sys_sigprocmask) 138 CALL(sys_sigprocmask)
@@ -146,7 +146,7 @@
146 CALL(sys_bdflush) 146 CALL(sys_bdflush)
147/* 135 */ CALL(sys_sysfs) 147/* 135 */ CALL(sys_sysfs)
148 CALL(sys_personality) 148 CALL(sys_personality)
149 CALL(sys_ni_syscall) /* CALL(_sys_afs_syscall) */ 149 CALL(sys_ni_syscall) /* reserved for afs_syscall */
150 CALL(sys_setfsuid16) 150 CALL(sys_setfsuid16)
151 CALL(sys_setfsgid16) 151 CALL(sys_setfsgid16)
152/* 140 */ CALL(sys_llseek) 152/* 140 */ CALL(sys_llseek)
@@ -175,7 +175,7 @@
175 CALL(sys_arm_mremap) 175 CALL(sys_arm_mremap)
176 CALL(sys_setresuid16) 176 CALL(sys_setresuid16)
177/* 165 */ CALL(sys_getresuid16) 177/* 165 */ CALL(sys_getresuid16)
178 CALL(sys_ni_syscall) 178 CALL(sys_ni_syscall) /* vm86 */
179 CALL(sys_ni_syscall) /* was sys_query_module */ 179 CALL(sys_ni_syscall) /* was sys_query_module */
180 CALL(sys_poll) 180 CALL(sys_poll)
181 CALL(sys_nfsservctl) 181 CALL(sys_nfsservctl)
@@ -197,8 +197,8 @@
197/* 185 */ CALL(sys_capset) 197/* 185 */ CALL(sys_capset)
198 CALL(sys_sigaltstack_wrapper) 198 CALL(sys_sigaltstack_wrapper)
199 CALL(sys_sendfile) 199 CALL(sys_sendfile)
200 CALL(sys_ni_syscall) 200 CALL(sys_ni_syscall) /* getpmsg */
201 CALL(sys_ni_syscall) 201 CALL(sys_ni_syscall) /* putpmsg */
202/* 190 */ CALL(sys_vfork_wrapper) 202/* 190 */ CALL(sys_vfork_wrapper)
203 CALL(sys_getrlimit) 203 CALL(sys_getrlimit)
204 CALL(sys_mmap2) 204 CALL(sys_mmap2)
@@ -344,6 +344,18 @@
344 CALL(sys_readlinkat) 344 CALL(sys_readlinkat)
345 CALL(sys_fchmodat) 345 CALL(sys_fchmodat)
346 CALL(sys_faccessat) 346 CALL(sys_faccessat)
347/* 335 */ CALL(sys_ni_syscall) /* eventually pselect6 */
348 CALL(sys_ni_syscall) /* eventually ppoll */
349 CALL(sys_unshare)
350 CALL(sys_set_robust_list)
351 CALL(sys_get_robust_list)
352/* 340 */ CALL(sys_splice)
353 CALL(sys_arm_sync_file_range)
354 CALL(sys_tee)
355 CALL(sys_vmsplice)
356 CALL(sys_move_pages)
357/* 345 */ CALL(sys_getcpu)
358 CALL(sys_ni_syscall) /* eventually epoll_pwait */
347#ifndef syscalls_counted 359#ifndef syscalls_counted
348.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls 360.equ syscalls_padding, ((NR_syscalls + 3) & ~3) - NR_syscalls
349#define syscalls_counted 361#define syscalls_counted
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index cf2bd4242803..bbab134cd82d 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -855,6 +855,7 @@ static const char *hwcap_str[] = {
855 "edsp", 855 "edsp",
856 "java", 856 "java",
857 "iwmmxt", 857 "iwmmxt",
858 "crunch",
858 NULL 859 NULL
859}; 860};
860 861
diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
index 00c18d35913c..3d4fcbc16276 100644
--- a/arch/arm/kernel/sys_arm.c
+++ b/arch/arm/kernel/sys_arm.c
@@ -328,3 +328,16 @@ asmlinkage long sys_arm_fadvise64_64(int fd, int advice,
328{ 328{
329 return sys_fadvise64_64(fd, offset, len, advice); 329 return sys_fadvise64_64(fd, offset, len, advice);
330} 330}
331
332/*
333 * Yet more syscall fsckage - we can't fit sys_sync_file_range's
334 * arguments into the available registers with EABI. So, let's
335 * create an ARM specific syscall for this which has _sane_
336 * arguments. (This incidentally also has an ABI-independent
337 * argument layout.)
338 */
339asmlinkage long sys_arm_sync_file_range(int fd, unsigned int flags,
340 loff_t offset, loff_t nbytes)
341{
342 return sys_sync_file_range(fd, offset, nbytes, flags);
343}
diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
index d649b39711d4..6b26346191c0 100644
--- a/arch/arm/mach-ep93xx/core.c
+++ b/arch/arm/mach-ep93xx/core.c
@@ -477,4 +477,8 @@ void __init ep93xx_init_devices(void)
477 477
478 platform_device_register(&ep93xx_rtc_device); 478 platform_device_register(&ep93xx_rtc_device);
479 platform_device_register(&ep93xx_ohci_device); 479 platform_device_register(&ep93xx_ohci_device);
480
481#ifdef CONFIG_CRUNCH
482 elf_hwcap |= HWCAP_CRUNCH;
483#endif
480} 484}
diff --git a/arch/arm/mach-iop13xx/iq81340mc.c b/arch/arm/mach-iop13xx/iq81340mc.c
index ee595786cd22..2a1bbfe9896f 100644
--- a/arch/arm/mach-iop13xx/iq81340mc.c
+++ b/arch/arm/mach-iop13xx/iq81340mc.c
@@ -88,11 +88,11 @@ static struct sys_timer iq81340mc_timer = {
88 88
89MACHINE_START(IQ81340MC, "Intel IQ81340MC") 89MACHINE_START(IQ81340MC, "Intel IQ81340MC")
90 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ 90 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */
91 .phys_io = PHYS_IO, 91 .phys_io = IOP13XX_PMMR_PHYS_MEM_BASE,
92 .io_pg_offst = IO_PG_OFFSET, 92 .io_pg_offst = (IOP13XX_PMMR_VIRT_MEM_BASE >> 18) & 0xfffc,
93 .boot_params = 0x00000100,
93 .map_io = iop13xx_map_io, 94 .map_io = iop13xx_map_io,
94 .init_irq = iop13xx_init_irq, 95 .init_irq = iop13xx_init_irq,
95 .timer = &iq81340mc_timer, 96 .timer = &iq81340mc_timer,
96 .boot_params = BOOT_PARAM_OFFSET,
97 .init_machine = iq81340mc_init, 97 .init_machine = iq81340mc_init,
98MACHINE_END 98MACHINE_END
diff --git a/arch/arm/mach-iop13xx/iq81340sc.c b/arch/arm/mach-iop13xx/iq81340sc.c
index 6677e14b61bf..5ad2b62c9bfd 100644
--- a/arch/arm/mach-iop13xx/iq81340sc.c
+++ b/arch/arm/mach-iop13xx/iq81340sc.c
@@ -90,11 +90,11 @@ static struct sys_timer iq81340sc_timer = {
90 90
91MACHINE_START(IQ81340SC, "Intel IQ81340SC") 91MACHINE_START(IQ81340SC, "Intel IQ81340SC")
92 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */ 92 /* Maintainer: Dan Williams <dan.j.williams@intel.com> */
93 .phys_io = PHYS_IO, 93 .phys_io = IOP13XX_PMMR_PHYS_MEM_BASE,
94 .io_pg_offst = IO_PG_OFFSET, 94 .io_pg_offst = (IOP13XX_PMMR_VIRT_MEM_BASE >> 18) & 0xfffc,
95 .boot_params = 0x00000100,
95 .map_io = iop13xx_map_io, 96 .map_io = iop13xx_map_io,
96 .init_irq = iop13xx_init_irq, 97 .init_irq = iop13xx_init_irq,
97 .timer = &iq81340sc_timer, 98 .timer = &iq81340sc_timer,
98 .boot_params = BOOT_PARAM_OFFSET,
99 .init_machine = iq81340sc_init, 99 .init_machine = iq81340sc_init,
100MACHINE_END 100MACHINE_END
diff --git a/arch/arm/mach-iop13xx/irq.c b/arch/arm/mach-iop13xx/irq.c
index c4d9c8c5579c..dbbc07c38b14 100644
--- a/arch/arm/mach-iop13xx/irq.c
+++ b/arch/arm/mach-iop13xx/irq.c
@@ -222,25 +222,29 @@ iop13xx_irq_unmask3(unsigned int irq)
222 iop13xx_cp6_restore(cp_flags); 222 iop13xx_cp6_restore(cp_flags);
223} 223}
224 224
225static struct irqchip iop13xx_irqchip0 = { 225static struct irq_chip iop13xx_irqchip1 = {
226 .name = "IOP13xx-1",
226 .ack = iop13xx_irq_mask0, 227 .ack = iop13xx_irq_mask0,
227 .mask = iop13xx_irq_mask0, 228 .mask = iop13xx_irq_mask0,
228 .unmask = iop13xx_irq_unmask0, 229 .unmask = iop13xx_irq_unmask0,
229}; 230};
230 231
231static struct irqchip iop13xx_irqchip1 = { 232static struct irq_chip iop13xx_irqchip2 = {
233 .name = "IOP13xx-2",
232 .ack = iop13xx_irq_mask1, 234 .ack = iop13xx_irq_mask1,
233 .mask = iop13xx_irq_mask1, 235 .mask = iop13xx_irq_mask1,
234 .unmask = iop13xx_irq_unmask1, 236 .unmask = iop13xx_irq_unmask1,
235}; 237};
236 238
237static struct irqchip iop13xx_irqchip2 = { 239static struct irq_chip iop13xx_irqchip3 = {
240 .name = "IOP13xx-3",
238 .ack = iop13xx_irq_mask2, 241 .ack = iop13xx_irq_mask2,
239 .mask = iop13xx_irq_mask2, 242 .mask = iop13xx_irq_mask2,
240 .unmask = iop13xx_irq_unmask2, 243 .unmask = iop13xx_irq_unmask2,
241}; 244};
242 245
243static struct irqchip iop13xx_irqchip3 = { 246static struct irq_chip iop13xx_irqchip4 = {
247 .name = "IOP13xx-4",
244 .ack = iop13xx_irq_mask3, 248 .ack = iop13xx_irq_mask3,
245 .mask = iop13xx_irq_mask3, 249 .mask = iop13xx_irq_mask3,
246 .unmask = iop13xx_irq_unmask3, 250 .unmask = iop13xx_irq_unmask3,
@@ -270,15 +274,15 @@ void __init iop13xx_init_irq(void)
270 274
271 for(i = 0; i < NR_IOP13XX_IRQS; i++) { 275 for(i = 0; i < NR_IOP13XX_IRQS; i++) {
272 if (i < 32) 276 if (i < 32)
273 set_irq_chip(i, &iop13xx_irqchip0);
274 else if (i < 64)
275 set_irq_chip(i, &iop13xx_irqchip1); 277 set_irq_chip(i, &iop13xx_irqchip1);
276 else if (i < 96) 278 else if (i < 64)
277 set_irq_chip(i, &iop13xx_irqchip2); 279 set_irq_chip(i, &iop13xx_irqchip2);
278 else 280 else if (i < 96)
279 set_irq_chip(i, &iop13xx_irqchip3); 281 set_irq_chip(i, &iop13xx_irqchip3);
282 else
283 set_irq_chip(i, &iop13xx_irqchip4);
280 284
281 set_irq_handler(i, do_level_IRQ); 285 set_irq_handler(i, handle_level_irq);
282 set_irq_flags(i, IRQF_VALID | IRQF_PROBE); 286 set_irq_flags(i, IRQF_VALID | IRQF_PROBE);
283 } 287 }
284 288
diff --git a/arch/arm/mach-iop13xx/setup.c b/arch/arm/mach-iop13xx/setup.c
index 3756d2ccb1a7..5fbeb28d04bb 100644
--- a/arch/arm/mach-iop13xx/setup.c
+++ b/arch/arm/mach-iop13xx/setup.c
@@ -337,7 +337,7 @@ void __init iop13xx_platform_init(void)
337 337
338#ifdef CONFIG_MTD_PHYSMAP 338#ifdef CONFIG_MTD_PHYSMAP
339 iq8134x_flash_resource.end = iq8134x_flash_resource.start + 339 iq8134x_flash_resource.end = iq8134x_flash_resource.start +
340 iq8134x_probe_flash_size(); 340 iq8134x_probe_flash_size() - 1;
341 if (iq8134x_flash_resource.end > iq8134x_flash_resource.start) 341 if (iq8134x_flash_resource.end > iq8134x_flash_resource.start)
342 iop13xx_devices[plat_idx++] = &iq8134x_flash; 342 iop13xx_devices[plat_idx++] = &iq8134x_flash;
343 else 343 else
diff --git a/arch/arm/mach-s3c2410/Kconfig b/arch/arm/mach-s3c2410/Kconfig
index 9f46bf330bc8..eb4ec411312b 100644
--- a/arch/arm/mach-s3c2410/Kconfig
+++ b/arch/arm/mach-s3c2410/Kconfig
@@ -5,6 +5,7 @@ menu "S3C24XX Implementations"
5config MACH_AML_M5900 5config MACH_AML_M5900
6 bool "AML M5900 Series" 6 bool "AML M5900 Series"
7 select CPU_S3C2410 7 select CPU_S3C2410
8 select PM_SIMTEC if PM
8 help 9 help
9 Say Y here if you are using the American Microsystems M5900 Series 10 Say Y here if you are using the American Microsystems M5900 Series
10 <http://www.amltd.com> 11 <http://www.amltd.com>
@@ -12,6 +13,7 @@ config MACH_AML_M5900
12config MACH_ANUBIS 13config MACH_ANUBIS
13 bool "Simtec Electronics ANUBIS" 14 bool "Simtec Electronics ANUBIS"
14 select CPU_S3C2440 15 select CPU_S3C2440
16 select PM_SIMTEC if PM
15 help 17 help
16 Say Y here if you are using the Simtec Electronics ANUBIS 18 Say Y here if you are using the Simtec Electronics ANUBIS
17 development system 19 development system
@@ -19,6 +21,7 @@ config MACH_ANUBIS
19config MACH_OSIRIS 21config MACH_OSIRIS
20 bool "Simtec IM2440D20 (OSIRIS) module" 22 bool "Simtec IM2440D20 (OSIRIS) module"
21 select CPU_S3C2440 23 select CPU_S3C2440
24 select PM_SIMTEC if PM
22 help 25 help
23 Say Y here if you are using the Simtec IM2440D20 module, also 26 Say Y here if you are using the Simtec IM2440D20 module, also
24 known as the Osiris. 27 known as the Osiris.
@@ -26,6 +29,7 @@ config MACH_OSIRIS
26config ARCH_BAST 29config ARCH_BAST
27 bool "Simtec Electronics BAST (EB2410ITX)" 30 bool "Simtec Electronics BAST (EB2410ITX)"
28 select CPU_S3C2410 31 select CPU_S3C2410
32 select PM_SIMTEC if PM
29 select ISA 33 select ISA
30 help 34 help
31 Say Y here if you are using the Simtec Electronics EB2410ITX 35 Say Y here if you are using the Simtec Electronics EB2410ITX
@@ -43,14 +47,13 @@ config BAST_PC104_IRQ
43 47
44config PM_H1940 48config PM_H1940
45 bool 49 bool
46 depends on PM
47 help 50 help
48 Internal node for H1940 and related PM 51 Internal node for H1940 and related PM
49 52
50config ARCH_H1940 53config ARCH_H1940
51 bool "IPAQ H1940" 54 bool "IPAQ H1940"
52 select CPU_S3C2410 55 select CPU_S3C2410
53 select PM_H1940 56 select PM_H1940 if PM
54 help 57 help
55 Say Y here if you are using the HP IPAQ H1940 58 Say Y here if you are using the HP IPAQ H1940
56 59
@@ -112,6 +115,7 @@ config MACH_SMDK2413
112 115
113config MACH_VR1000 116config MACH_VR1000
114 bool "Thorcom VR1000" 117 bool "Thorcom VR1000"
118 select PM_SIMTEC if PM
115 select CPU_S3C2410 119 select CPU_S3C2410
116 help 120 help
117 Say Y here if you are using the Thorcom VR1000 board. 121 Say Y here if you are using the Thorcom VR1000 board.
@@ -122,7 +126,7 @@ config MACH_VR1000
122config MACH_RX3715 126config MACH_RX3715
123 bool "HP iPAQ rx3715" 127 bool "HP iPAQ rx3715"
124 select CPU_S3C2440 128 select CPU_S3C2440
125 select PM_H1940 129 select PM_H1940 if PM
126 help 130 help
127 Say Y here if you are using the HP iPAQ rx3715. 131 Say Y here if you are using the HP iPAQ rx3715.
128 132
@@ -156,7 +160,6 @@ config S3C2410_CLOCK
156 160
157config S3C2410_PM 161config S3C2410_PM
158 bool 162 bool
159 depends on CONFIG_PM
160 help 163 help
161 Power Management code common to S3C2410 and better 164 Power Management code common to S3C2410 and better
162 165
@@ -171,7 +174,7 @@ config CPU_S3C2410
171 bool 174 bool
172 depends on ARCH_S3C2410 175 depends on ARCH_S3C2410
173 select S3C2410_CLOCK 176 select S3C2410_CLOCK
174 select S3C2410_PM 177 select S3C2410_PM if PM
175 help 178 help
176 Support for S3C2410 and S3C2410A family from the S3C24XX line 179 Support for S3C2410 and S3C2410A family from the S3C24XX line
177 of Samsung Mobile CPUs. 180 of Samsung Mobile CPUs.
@@ -186,14 +189,13 @@ config CPU_S3C2412_ONLY
186 189
187config S3C2412_PM 190config S3C2412_PM
188 bool 191 bool
189 default y if PM
190 depends on CPU_S3C2412
191 help 192 help
192 Internal config node to apply S3C2412 power management 193 Internal config node to apply S3C2412 power management
193 194
194config CPU_S3C2412 195config CPU_S3C2412
195 bool 196 bool
196 depends on ARCH_S3C2410 197 depends on ARCH_S3C2410
198 select S3C2412_PM if PM
197 help 199 help
198 Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line 200 Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line
199 201
@@ -207,7 +209,7 @@ config CPU_S3C2440
207 bool 209 bool
208 depends on ARCH_S3C2410 210 depends on ARCH_S3C2410
209 select S3C2410_CLOCK 211 select S3C2410_CLOCK
210 select S3C2410_PM 212 select S3C2410_PM if PM
211 select CPU_S3C244X 213 select CPU_S3C244X
212 help 214 help
213 Support for S3C2440 Samsung Mobile CPU based systems. 215 Support for S3C2440 Samsung Mobile CPU based systems.
@@ -216,7 +218,7 @@ config CPU_S3C2442
216 bool 218 bool
217 depends on ARCH_S3C2420 219 depends on ARCH_S3C2420
218 select S3C2410_CLOCK 220 select S3C2410_CLOCK
219 select S3C2410_PM 221 select S3C2410_PM if PM
220 select CPU_S3C244X 222 select CPU_S3C244X
221 help 223 help
222 Support for S3C2442 Samsung Mobile CPU based systems. 224 Support for S3C2442 Samsung Mobile CPU based systems.
@@ -300,8 +302,9 @@ config S3C2410_PM_CHECK_CHUNKSIZE
300 302
301config PM_SIMTEC 303config PM_SIMTEC
302 bool 304 bool
303 depends on PM && (ARCH_BAST || MACH_VR1000 || MACH_AML_M5900) 305 help
304 default y 306 Common power management code for systems that are
307 compatible with the Simtec style of power management
305 308
306config S3C2410_LOWLEVEL_UART_PORT 309config S3C2410_LOWLEVEL_UART_PORT
307 int "S3C2410 UART to use for low-level messages" 310 int "S3C2410 UART to use for low-level messages"
diff --git a/arch/arm/mach-s3c2410/cpu.c b/arch/arm/mach-s3c2410/cpu.c
index 9d4899eddf1f..ae1f5bb63f7a 100644
--- a/arch/arm/mach-s3c2410/cpu.c
+++ b/arch/arm/mach-s3c2410/cpu.c
@@ -26,6 +26,7 @@
26#include <linux/module.h> 26#include <linux/module.h>
27#include <linux/interrupt.h> 27#include <linux/interrupt.h>
28#include <linux/ioport.h> 28#include <linux/ioport.h>
29#include <linux/serial_core.h>
29#include <linux/platform_device.h> 30#include <linux/platform_device.h>
30 31
31#include <asm/hardware.h> 32#include <asm/hardware.h>
diff --git a/arch/arm/mach-s3c2410/devs.c b/arch/arm/mach-s3c2410/devs.c
index cae35ff76f33..faccde2092d2 100644
--- a/arch/arm/mach-s3c2410/devs.c
+++ b/arch/arm/mach-s3c2410/devs.c
@@ -17,6 +17,7 @@
17#include <linux/list.h> 17#include <linux/list.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c
index 01abb0ace234..717322a0916b 100644
--- a/arch/arm/mach-s3c2410/dma.c
+++ b/arch/arm/mach-s3c2410/dma.c
@@ -1,6 +1,6 @@
1/* linux/arch/arm/mach-s3c2410/dma.c 1/* linux/arch/arm/mach-s3c2410/dma.c
2 * 2 *
3 * (c) 2003-2005,2006 Simtec Electronics 3 * Copyright (c) 2003-2005,2006 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 DMA core 6 * S3C2410 DMA core
diff --git a/arch/arm/mach-s3c2410/irq.h b/arch/arm/mach-s3c2410/irq.h
index 3686a0082245..e5913da3b919 100644
--- a/arch/arm/mach-s3c2410/irq.h
+++ b/arch/arm/mach-s3c2410/irq.h
@@ -8,8 +8,6 @@
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 *
12 * Modifications:
13*/ 11*/
14 12
15#define irqdbf(x...) 13#define irqdbf(x...)
diff --git a/arch/arm/mach-s3c2410/mach-anubis.c b/arch/arm/mach-s3c2410/mach-anubis.c
index e94cdcd96591..0fad0c2fe07b 100644
--- a/arch/arm/mach-s3c2410/mach-anubis.c
+++ b/arch/arm/mach-s3c2410/mach-anubis.c
@@ -15,6 +15,7 @@
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/serial_core.h>
18#include <linux/platform_device.h> 19#include <linux/platform_device.h>
19 20
20#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 2968fb235f95..b8b76757ec54 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -16,6 +16,7 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/serial_core.h>
19#include <linux/platform_device.h> 20#include <linux/platform_device.h>
20#include <linux/dm9000.h> 21#include <linux/dm9000.h>
21 22
diff --git a/arch/arm/mach-s3c2410/mach-h1940.c b/arch/arm/mach-s3c2410/mach-h1940.c
index f5b98099a5d9..15b625eae499 100644
--- a/arch/arm/mach-s3c2410/mach-h1940.c
+++ b/arch/arm/mach-s3c2410/mach-h1940.c
@@ -17,6 +17,7 @@
17#include <linux/list.h> 17#include <linux/list.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
@@ -37,8 +38,6 @@
37#include <asm/arch/h1940-latch.h> 38#include <asm/arch/h1940-latch.h>
38#include <asm/arch/fb.h> 39#include <asm/arch/fb.h>
39 40
40#include <linux/serial_core.h>
41
42#include "clock.h" 41#include "clock.h"
43#include "devs.h" 42#include "devs.h"
44#include "cpu.h" 43#include "cpu.h"
diff --git a/arch/arm/mach-s3c2410/mach-n30.c b/arch/arm/mach-s3c2410/mach-n30.c
index 116ac3169966..0411e9adb54d 100644
--- a/arch/arm/mach-s3c2410/mach-n30.c
+++ b/arch/arm/mach-s3c2410/mach-n30.c
@@ -20,6 +20,7 @@
20#include <linux/timer.h> 20#include <linux/timer.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/delay.h> 22#include <linux/delay.h>
23#include <linux/serial_core.h>
23#include <linux/platform_device.h> 24#include <linux/platform_device.h>
24#include <linux/kthread.h> 25#include <linux/kthread.h>
25 26
@@ -37,8 +38,6 @@
37#include <asm/arch/regs-gpio.h> 38#include <asm/arch/regs-gpio.h>
38#include <asm/arch/iic.h> 39#include <asm/arch/iic.h>
39 40
40#include <linux/serial_core.h>
41
42#include "s3c2410.h" 41#include "s3c2410.h"
43#include "clock.h" 42#include "clock.h"
44#include "devs.h" 43#include "devs.h"
diff --git a/arch/arm/mach-s3c2410/mach-nexcoder.c b/arch/arm/mach-s3c2410/mach-nexcoder.c
index 065a1d4e860b..d6dfdad8c90b 100644
--- a/arch/arm/mach-s3c2410/mach-nexcoder.c
+++ b/arch/arm/mach-s3c2410/mach-nexcoder.c
@@ -19,6 +19,7 @@
19#include <linux/timer.h> 19#include <linux/timer.h>
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/string.h> 21#include <linux/string.h>
22#include <linux/serial_core.h>
22#include <linux/platform_device.h> 23#include <linux/platform_device.h>
23 24
24#include <linux/mtd/map.h> 25#include <linux/mtd/map.h>
diff --git a/arch/arm/mach-s3c2410/mach-osiris.c b/arch/arm/mach-s3c2410/mach-osiris.c
index a4ab144e7292..37b40850c9b9 100644
--- a/arch/arm/mach-s3c2410/mach-osiris.c
+++ b/arch/arm/mach-s3c2410/mach-osiris.c
@@ -16,6 +16,7 @@
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/device.h> 18#include <linux/device.h>
19#include <linux/serial_core.h>
19 20
20#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
21#include <asm/mach/map.h> 22#include <asm/mach/map.h>
diff --git a/arch/arm/mach-s3c2410/mach-otom.c b/arch/arm/mach-s3c2410/mach-otom.c
index c71673fd9955..2c738b375e4d 100644
--- a/arch/arm/mach-s3c2410/mach-otom.c
+++ b/arch/arm/mach-s3c2410/mach-otom.c
@@ -15,6 +15,7 @@
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/serial_core.h>
18#include <linux/platform_device.h> 19#include <linux/platform_device.h>
19 20
20#include <asm/mach/arch.h> 21#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/mach-smdk2410.c b/arch/arm/mach-s3c2410/mach-smdk2410.c
index b3b0171d5052..01c0c986d827 100644
--- a/arch/arm/mach-s3c2410/mach-smdk2410.c
+++ b/arch/arm/mach-s3c2410/mach-smdk2410.c
@@ -35,6 +35,7 @@
35#include <linux/list.h> 35#include <linux/list.h>
36#include <linux/timer.h> 36#include <linux/timer.h>
37#include <linux/init.h> 37#include <linux/init.h>
38#include <linux/serial_core.h>
38#include <linux/platform_device.h> 39#include <linux/platform_device.h>
39 40
40#include <asm/mach/arch.h> 41#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/mach-smdk2413.c b/arch/arm/mach-s3c2410/mach-smdk2413.c
index 3a4ca7f6f7b9..4f89abd7a6df 100644
--- a/arch/arm/mach-s3c2410/mach-smdk2413.c
+++ b/arch/arm/mach-s3c2410/mach-smdk2413.c
@@ -17,6 +17,7 @@
17#include <linux/list.h> 17#include <linux/list.h>
18#include <linux/timer.h> 18#include <linux/timer.h>
19#include <linux/init.h> 19#include <linux/init.h>
20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/mach-smdk2440.c b/arch/arm/mach-s3c2410/mach-smdk2440.c
index e2205ff1b0ee..2b61f4ed1da4 100644
--- a/arch/arm/mach-s3c2410/mach-smdk2440.c
+++ b/arch/arm/mach-s3c2410/mach-smdk2440.c
@@ -19,6 +19,7 @@
19#include <linux/list.h> 19#include <linux/list.h>
20#include <linux/timer.h> 20#include <linux/timer.h>
21#include <linux/init.h> 21#include <linux/init.h>
22#include <linux/serial_core.h>
22#include <linux/platform_device.h> 23#include <linux/platform_device.h>
23 24
24#include <asm/mach/arch.h> 25#include <asm/mach/arch.h>
diff --git a/arch/arm/mach-s3c2410/mach-vr1000.c b/arch/arm/mach-s3c2410/mach-vr1000.c
index e2eda3937ab0..a382fc095110 100644
--- a/arch/arm/mach-s3c2410/mach-vr1000.c
+++ b/arch/arm/mach-s3c2410/mach-vr1000.c
@@ -352,7 +352,7 @@ static struct platform_device vr1000_led2 = {
352 352
353static struct platform_device vr1000_led3 = { 353static struct platform_device vr1000_led3 = {
354 .name = "s3c24xx_led", 354 .name = "s3c24xx_led",
355 .id = 1, 355 .id = 3,
356 .dev = { 356 .dev = {
357 .platform_data = &vr1000_led3_pdata, 357 .platform_data = &vr1000_led3_pdata,
358 }, 358 },
diff --git a/arch/arm/mach-s3c2410/mach-vstms.c b/arch/arm/mach-s3c2410/mach-vstms.c
index ea554e7c006e..0360e1055bcd 100644
--- a/arch/arm/mach-s3c2410/mach-vstms.c
+++ b/arch/arm/mach-s3c2410/mach-vstms.c
@@ -15,6 +15,7 @@
15#include <linux/list.h> 15#include <linux/list.h>
16#include <linux/timer.h> 16#include <linux/timer.h>
17#include <linux/init.h> 17#include <linux/init.h>
18#include <linux/serial_core.h>
18#include <linux/platform_device.h> 19#include <linux/platform_device.h>
19 20
20#include <linux/mtd/mtd.h> 21#include <linux/mtd/mtd.h>
diff --git a/arch/arm/mach-s3c2410/pm-simtec.c b/arch/arm/mach-s3c2410/pm-simtec.c
index 42cd05e298f8..619133eb7168 100644
--- a/arch/arm/mach-s3c2410/pm-simtec.c
+++ b/arch/arm/mach-s3c2410/pm-simtec.c
@@ -27,7 +27,6 @@
27#include <asm/io.h> 27#include <asm/io.h>
28 28
29#include <asm/arch/map.h> 29#include <asm/arch/map.h>
30#include <asm/arch/regs-serial.h>
31#include <asm/arch/regs-gpio.h> 30#include <asm/arch/regs-gpio.h>
32#include <asm/arch/regs-mem.h> 31#include <asm/arch/regs-mem.h>
33 32
diff --git a/arch/arm/mach-s3c2410/pm.c b/arch/arm/mach-s3c2410/pm.c
index b49a0b3b72b3..00834097eb82 100644
--- a/arch/arm/mach-s3c2410/pm.c
+++ b/arch/arm/mach-s3c2410/pm.c
@@ -34,6 +34,7 @@
34#include <linux/crc32.h> 34#include <linux/crc32.h>
35#include <linux/ioport.h> 35#include <linux/ioport.h>
36#include <linux/delay.h> 36#include <linux/delay.h>
37#include <linux/serial_core.h>
37 38
38#include <asm/cacheflush.h> 39#include <asm/cacheflush.h>
39#include <asm/hardware.h> 40#include <asm/hardware.h>
diff --git a/arch/arm/mach-s3c2410/s3c2410-clock.c b/arch/arm/mach-s3c2410/s3c2410-clock.c
index 00abe199a08e..992cc6af230e 100644
--- a/arch/arm/mach-s3c2410/s3c2410-clock.c
+++ b/arch/arm/mach-s3c2410/s3c2410-clock.c
@@ -30,13 +30,18 @@
30#include <linux/clk.h> 30#include <linux/clk.h>
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/serial_core.h>
34
35#include <asm/mach/map.h>
33 36
34#include <asm/hardware.h> 37#include <asm/hardware.h>
35#include <asm/io.h> 38#include <asm/io.h>
36 39
40#include <asm/arch/regs-serial.h>
37#include <asm/arch/regs-clock.h> 41#include <asm/arch/regs-clock.h>
38#include <asm/arch/regs-gpio.h> 42#include <asm/arch/regs-gpio.h>
39 43
44#include "s3c2410.h"
40#include "clock.h" 45#include "clock.h"
41#include "cpu.h" 46#include "cpu.h"
42 47
diff --git a/arch/arm/mach-s3c2410/s3c2410-dma.c b/arch/arm/mach-s3c2410/s3c2410-dma.c
index 51e5098b32e8..e67ba3911f11 100644
--- a/arch/arm/mach-s3c2410/s3c2410-dma.c
+++ b/arch/arm/mach-s3c2410/s3c2410-dma.c
@@ -1,6 +1,6 @@
1/* linux/arch/arm/mach-s3c2410/s3c2410-dma.c 1/* linux/arch/arm/mach-s3c2410/s3c2410-dma.c
2 * 2 *
3 * (c) 2006 Simtec Electronics 3 * Copyright (c) 2006 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 DMA selection 6 * S3C2410 DMA selection
@@ -15,6 +15,7 @@
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/serial_core.h>
18 19
19#include <asm/dma.h> 20#include <asm/dma.h>
20#include <asm/arch/dma.h> 21#include <asm/arch/dma.h>
@@ -131,6 +132,7 @@ static int s3c2410_dma_add(struct sys_device *sysdev)
131 return s3c24xx_dma_init_map(&s3c2410_dma_sel); 132 return s3c24xx_dma_init_map(&s3c2410_dma_sel);
132} 133}
133 134
135#if defined(CONFIG_CPU_S3C2410)
134static struct sysdev_driver s3c2410_dma_driver = { 136static struct sysdev_driver s3c2410_dma_driver = {
135 .add = s3c2410_dma_add, 137 .add = s3c2410_dma_add,
136}; 138};
@@ -141,9 +143,10 @@ static int __init s3c2410_dma_init(void)
141} 143}
142 144
143arch_initcall(s3c2410_dma_init); 145arch_initcall(s3c2410_dma_init);
146#endif
144 147
148#if defined(CONFIG_CPU_S3C2442)
145/* S3C2442 DMA contains the same selection table as the S3C2410 */ 149/* S3C2442 DMA contains the same selection table as the S3C2410 */
146
147static struct sysdev_driver s3c2442_dma_driver = { 150static struct sysdev_driver s3c2442_dma_driver = {
148 .add = s3c2410_dma_add, 151 .add = s3c2410_dma_add,
149}; 152};
@@ -154,5 +157,5 @@ static int __init s3c2442_dma_init(void)
154} 157}
155 158
156arch_initcall(s3c2442_dma_init); 159arch_initcall(s3c2442_dma_init);
157 160#endif
158 161
diff --git a/arch/arm/mach-s3c2410/s3c2410-pm.c b/arch/arm/mach-s3c2410/s3c2410-pm.c
index 77c6814c0f05..8bb6e5e21f59 100644
--- a/arch/arm/mach-s3c2410/s3c2410-pm.c
+++ b/arch/arm/mach-s3c2410/s3c2410-pm.c
@@ -87,7 +87,7 @@ static void s3c2410_pm_prepare(void)
87 87
88} 88}
89 89
90int s3c2410_pm_resume(struct sys_device *dev) 90static int s3c2410_pm_resume(struct sys_device *dev)
91{ 91{
92 unsigned long tmp; 92 unsigned long tmp;
93 93
@@ -111,6 +111,7 @@ static int s3c2410_pm_add(struct sys_device *dev)
111 return 0; 111 return 0;
112} 112}
113 113
114#if defined(CONFIG_CPU_S3C2410)
114static struct sysdev_driver s3c2410_pm_driver = { 115static struct sysdev_driver s3c2410_pm_driver = {
115 .add = s3c2410_pm_add, 116 .add = s3c2410_pm_add,
116 .resume = s3c2410_pm_resume, 117 .resume = s3c2410_pm_resume,
@@ -124,7 +125,9 @@ static int __init s3c2410_pm_drvinit(void)
124} 125}
125 126
126arch_initcall(s3c2410_pm_drvinit); 127arch_initcall(s3c2410_pm_drvinit);
128#endif
127 129
130#if defined(CONFIG_CPU_S3C2440)
128static struct sysdev_driver s3c2440_pm_driver = { 131static struct sysdev_driver s3c2440_pm_driver = {
129 .add = s3c2410_pm_add, 132 .add = s3c2410_pm_add,
130 .resume = s3c2410_pm_resume, 133 .resume = s3c2410_pm_resume,
@@ -136,7 +139,9 @@ static int __init s3c2440_pm_drvinit(void)
136} 139}
137 140
138arch_initcall(s3c2440_pm_drvinit); 141arch_initcall(s3c2440_pm_drvinit);
142#endif
139 143
144#if defined(CONFIG_CPU_S3C2442)
140static struct sysdev_driver s3c2442_pm_driver = { 145static struct sysdev_driver s3c2442_pm_driver = {
141 .add = s3c2410_pm_add, 146 .add = s3c2410_pm_add,
142 .resume = s3c2410_pm_resume, 147 .resume = s3c2410_pm_resume,
@@ -148,3 +153,4 @@ static int __init s3c2442_pm_drvinit(void)
148} 153}
149 154
150arch_initcall(s3c2442_pm_drvinit); 155arch_initcall(s3c2442_pm_drvinit);
156#endif
diff --git a/arch/arm/mach-s3c2410/s3c2410.c b/arch/arm/mach-s3c2410/s3c2410.c
index 183e4033ce61..4cdc0d70c19f 100644
--- a/arch/arm/mach-s3c2410/s3c2410.c
+++ b/arch/arm/mach-s3c2410/s3c2410.c
@@ -17,6 +17,7 @@
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
@@ -38,11 +39,9 @@
38/* Initial IO mappings */ 39/* Initial IO mappings */
39 40
40static struct map_desc s3c2410_iodesc[] __initdata = { 41static struct map_desc s3c2410_iodesc[] __initdata = {
41 IODESC_ENT(USBHOST),
42 IODESC_ENT(CLKPWR), 42 IODESC_ENT(CLKPWR),
43 IODESC_ENT(LCD), 43 IODESC_ENT(LCD),
44 IODESC_ENT(TIMER), 44 IODESC_ENT(TIMER),
45 IODESC_ENT(ADC),
46 IODESC_ENT(WATCHDOG), 45 IODESC_ENT(WATCHDOG),
47}; 46};
48 47
diff --git a/arch/arm/mach-s3c2410/s3c2412-clock.c b/arch/arm/mach-s3c2410/s3c2412-clock.c
index c95ed3e18580..8f94ad83901d 100644
--- a/arch/arm/mach-s3c2410/s3c2412-clock.c
+++ b/arch/arm/mach-s3c2410/s3c2412-clock.c
@@ -30,13 +30,18 @@
30#include <linux/clk.h> 30#include <linux/clk.h>
31#include <linux/mutex.h> 31#include <linux/mutex.h>
32#include <linux/delay.h> 32#include <linux/delay.h>
33#include <linux/serial_core.h>
34
35#include <asm/mach/map.h>
33 36
34#include <asm/hardware.h> 37#include <asm/hardware.h>
35#include <asm/io.h> 38#include <asm/io.h>
36 39
40#include <asm/arch/regs-serial.h>
37#include <asm/arch/regs-clock.h> 41#include <asm/arch/regs-clock.h>
38#include <asm/arch/regs-gpio.h> 42#include <asm/arch/regs-gpio.h>
39 43
44#include "s3c2412.h"
40#include "clock.h" 45#include "clock.h"
41#include "cpu.h" 46#include "cpu.h"
42 47
@@ -49,7 +54,7 @@
49 * set the correct muxing at initialisation 54 * set the correct muxing at initialisation
50*/ 55*/
51 56
52int s3c2412_clkcon_enable(struct clk *clk, int enable) 57static int s3c2412_clkcon_enable(struct clk *clk, int enable)
53{ 58{
54 unsigned int clocks = clk->ctrlbit; 59 unsigned int clocks = clk->ctrlbit;
55 unsigned long clkcon; 60 unsigned long clkcon;
@@ -556,7 +561,7 @@ struct clk_init {
556 struct clk *src_1; 561 struct clk *src_1;
557}; 562};
558 563
559struct clk_init clks_src[] __initdata = { 564static struct clk_init clks_src[] __initdata = {
560 { 565 {
561 .clk = &clk_usysclk, 566 .clk = &clk_usysclk,
562 .bit = S3C2412_CLKSRC_USBCLK_HCLK, 567 .bit = S3C2412_CLKSRC_USBCLK_HCLK,
@@ -619,7 +624,7 @@ static void __init s3c2412_clk_initparents(void)
619 624
620/* clocks to add straight away */ 625/* clocks to add straight away */
621 626
622struct clk *clks[] __initdata = { 627static struct clk *clks[] __initdata = {
623 &clk_ext, 628 &clk_ext,
624 &clk_usb_bus, 629 &clk_usb_bus,
625 &clk_erefclk, 630 &clk_erefclk,
diff --git a/arch/arm/mach-s3c2410/s3c2412-dma.c b/arch/arm/mach-s3c2410/s3c2412-dma.c
index 171f3706d36d..fe71a8fdb87c 100644
--- a/arch/arm/mach-s3c2410/s3c2412-dma.c
+++ b/arch/arm/mach-s3c2410/s3c2412-dma.c
@@ -1,6 +1,6 @@
1/* linux/arch/arm/mach-s3c2410/s3c2412-dma.c 1/* linux/arch/arm/mach-s3c2410/s3c2412-dma.c
2 * 2 *
3 * (c) 2006 Simtec Electronics 3 * Copyright (c) 2006 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2412 DMA selection 6 * S3C2412 DMA selection
@@ -15,6 +15,7 @@
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/serial_core.h>
18 19
19#include <asm/dma.h> 20#include <asm/dma.h>
20#include <asm/arch/dma.h> 21#include <asm/arch/dma.h>
diff --git a/arch/arm/mach-s3c2410/s3c2412.c b/arch/arm/mach-s3c2410/s3c2412.c
index e76431c41461..2f651a811ecd 100644
--- a/arch/arm/mach-s3c2410/s3c2412.c
+++ b/arch/arm/mach-s3c2410/s3c2412.c
@@ -17,6 +17,7 @@
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/sysdev.h> 19#include <linux/sysdev.h>
20#include <linux/serial_core.h>
20#include <linux/platform_device.h> 21#include <linux/platform_device.h>
21 22
22#include <asm/mach/arch.h> 23#include <asm/mach/arch.h>
@@ -60,7 +61,6 @@ static struct map_desc s3c2412_iodesc[] __initdata = {
60 IODESC_ENT(CLKPWR), 61 IODESC_ENT(CLKPWR),
61 IODESC_ENT(LCD), 62 IODESC_ENT(LCD),
62 IODESC_ENT(TIMER), 63 IODESC_ENT(TIMER),
63 IODESC_ENT(ADC),
64 IODESC_ENT(WATCHDOG), 64 IODESC_ENT(WATCHDOG),
65}; 65};
66 66
diff --git a/arch/arm/mach-s3c2410/s3c2440-clock.c b/arch/arm/mach-s3c2410/s3c2440-clock.c
index 15796864d010..ba13c1d079d1 100644
--- a/arch/arm/mach-s3c2410/s3c2440-clock.c
+++ b/arch/arm/mach-s3c2410/s3c2440-clock.c
@@ -113,18 +113,18 @@ static int s3c2440_clk_add(struct sys_device *sysdev)
113{ 113{
114 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN); 114 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN);
115 unsigned long clkdivn; 115 unsigned long clkdivn;
116 struct clk *clk_h; 116 struct clk *clock_h;
117 struct clk *clk_p; 117 struct clk *clock_p;
118 struct clk *clk_upll; 118 struct clk *clock_upll;
119 119
120 printk("S3C2440: Clock Support, DVS %s\n", 120 printk("S3C2440: Clock Support, DVS %s\n",
121 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off"); 121 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off");
122 122
123 clk_p = clk_get(NULL, "pclk"); 123 clock_p = clk_get(NULL, "pclk");
124 clk_h = clk_get(NULL, "hclk"); 124 clock_h = clk_get(NULL, "hclk");
125 clk_upll = clk_get(NULL, "upll"); 125 clock_upll = clk_get(NULL, "upll");
126 126
127 if (IS_ERR(clk_p) || IS_ERR(clk_h) || IS_ERR(clk_upll)) { 127 if (IS_ERR(clock_p) || IS_ERR(clock_h) || IS_ERR(clock_upll)) {
128 printk(KERN_ERR "S3C2440: Failed to get parent clocks\n"); 128 printk(KERN_ERR "S3C2440: Failed to get parent clocks\n");
129 return -EINVAL; 129 return -EINVAL;
130 } 130 }
@@ -132,8 +132,8 @@ static int s3c2440_clk_add(struct sys_device *sysdev)
132 /* check rate of UPLL, and if it is near 96MHz, then change 132 /* check rate of UPLL, and if it is near 96MHz, then change
133 * to using half the UPLL rate for the system */ 133 * to using half the UPLL rate for the system */
134 134
135 if (clk_get_rate(clk_upll) > (94 * MHZ)) { 135 if (clk_get_rate(clock_upll) > (94 * MHZ)) {
136 clk_usb_bus.rate = clk_get_rate(clk_upll) / 2; 136 clk_usb_bus.rate = clk_get_rate(clock_upll) / 2;
137 137
138 mutex_lock(&clocks_mutex); 138 mutex_lock(&clocks_mutex);
139 139
@@ -144,9 +144,9 @@ static int s3c2440_clk_add(struct sys_device *sysdev)
144 mutex_unlock(&clocks_mutex); 144 mutex_unlock(&clocks_mutex);
145 } 145 }
146 146
147 s3c2440_clk_cam.parent = clk_h; 147 s3c2440_clk_cam.parent = clock_h;
148 s3c2440_clk_ac97.parent = clk_p; 148 s3c2440_clk_ac97.parent = clock_p;
149 s3c2440_clk_cam_upll.parent = clk_upll; 149 s3c2440_clk_cam_upll.parent = clock_upll;
150 150
151 s3c24xx_register_clock(&s3c2440_clk_ac97); 151 s3c24xx_register_clock(&s3c2440_clk_ac97);
152 s3c24xx_register_clock(&s3c2440_clk_cam); 152 s3c24xx_register_clock(&s3c2440_clk_cam);
diff --git a/arch/arm/mach-s3c2410/s3c2440-dma.c b/arch/arm/mach-s3c2410/s3c2440-dma.c
index 11e109c84a15..47b861b9443d 100644
--- a/arch/arm/mach-s3c2410/s3c2440-dma.c
+++ b/arch/arm/mach-s3c2410/s3c2440-dma.c
@@ -1,6 +1,6 @@
1/* linux/arch/arm/mach-s3c2410/s3c2440-dma.c 1/* linux/arch/arm/mach-s3c2410/s3c2440-dma.c
2 * 2 *
3 * (c) 2006 Simtec Electronics 3 * Copyright (c) 2006 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2440 DMA selection 6 * S3C2440 DMA selection
@@ -15,6 +15,7 @@
15#include <linux/kernel.h> 15#include <linux/kernel.h>
16#include <linux/init.h> 16#include <linux/init.h>
17#include <linux/sysdev.h> 17#include <linux/sysdev.h>
18#include <linux/serial_core.h>
18 19
19#include <asm/dma.h> 20#include <asm/dma.h>
20#include <asm/arch/dma.h> 21#include <asm/arch/dma.h>
diff --git a/arch/arm/mach-s3c2410/s3c2440.c b/arch/arm/mach-s3c2410/s3c2440.c
index 0ab50f44f318..344eb27cca48 100644
--- a/arch/arm/mach-s3c2410/s3c2440.c
+++ b/arch/arm/mach-s3c2410/s3c2440.c
@@ -17,6 +17,7 @@
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/platform_device.h> 19#include <linux/platform_device.h>
20#include <linux/serial_core.h>
20#include <linux/sysdev.h> 21#include <linux/sysdev.h>
21#include <linux/clk.h> 22#include <linux/clk.h>
22 23
@@ -28,17 +29,9 @@
28#include <asm/io.h> 29#include <asm/io.h>
29#include <asm/irq.h> 30#include <asm/irq.h>
30 31
31#include <asm/arch/regs-clock.h>
32#include <asm/arch/regs-serial.h>
33#include <asm/arch/regs-gpio.h>
34#include <asm/arch/regs-gpioj.h>
35#include <asm/arch/regs-dsc.h>
36
37#include "s3c2440.h" 32#include "s3c2440.h"
38#include "clock.h"
39#include "devs.h" 33#include "devs.h"
40#include "cpu.h" 34#include "cpu.h"
41#include "pm.h"
42 35
43static struct sys_device s3c2440_sysdev = { 36static struct sys_device s3c2440_sysdev = {
44 .cls = &s3c2440_sysclass, 37 .cls = &s3c2440_sysclass,
diff --git a/arch/arm/mach-s3c2410/s3c2440.h b/arch/arm/mach-s3c2410/s3c2440.h
index 29cb6df65a48..dcd316076c59 100644
--- a/arch/arm/mach-s3c2410/s3c2440.h
+++ b/arch/arm/mach-s3c2410/s3c2440.h
@@ -8,28 +8,10 @@
8 * This program is free software; you can redistribute it and/or modify 8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License version 2 as 9 * it under the terms of the GNU General Public License version 2 as
10 * published by the Free Software Foundation. 10 * published by the Free Software Foundation.
11 *
12 * Modifications:
13 * 24-Aug-2004 BJD Start of S3C2440 CPU support
14 * 04-Nov-2004 BJD Added s3c2440_init_uarts()
15 * 04-Jan-2005 BJD Moved uart init to cpu code
16 * 10-Jan-2005 BJD Moved 2440 specific init here
17 * 14-Jan-2005 BJD Split the clock initialisation code
18*/ 11*/
19 12
20#ifdef CONFIG_CPU_S3C2440 13#ifdef CONFIG_CPU_S3C2440
21
22extern int s3c2440_init(void); 14extern int s3c2440_init(void);
23
24extern void s3c2440_map_io(struct map_desc *mach_desc, int size);
25
26extern void s3c2440_init_uarts(struct s3c2410_uartcfg *cfg, int no);
27
28extern void s3c2440_init_clocks(int xtal);
29
30#else 15#else
31#define s3c2440_init_clocks NULL
32#define s3c2440_init_uarts NULL
33#define s3c2440_map_io NULL
34#define s3c2440_init NULL 16#define s3c2440_init NULL
35#endif 17#endif
diff --git a/arch/arm/mach-s3c2410/s3c2442-clock.c b/arch/arm/mach-s3c2410/s3c2442-clock.c
index d9f54b5cab7f..4e292ca7c9be 100644
--- a/arch/arm/mach-s3c2410/s3c2442-clock.c
+++ b/arch/arm/mach-s3c2410/s3c2442-clock.c
@@ -117,18 +117,18 @@ static int s3c2442_clk_add(struct sys_device *sysdev)
117{ 117{
118 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN); 118 unsigned long camdivn = __raw_readl(S3C2440_CAMDIVN);
119 unsigned long clkdivn; 119 unsigned long clkdivn;
120 struct clk *clk_h; 120 struct clk *clock_h;
121 struct clk *clk_p; 121 struct clk *clock_p;
122 struct clk *clk_upll; 122 struct clk *clock_upll;
123 123
124 printk("S3C2442: Clock Support, DVS %s\n", 124 printk("S3C2442: Clock Support, DVS %s\n",
125 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off"); 125 (camdivn & S3C2440_CAMDIVN_DVSEN) ? "on" : "off");
126 126
127 clk_p = clk_get(NULL, "pclk"); 127 clock_p = clk_get(NULL, "pclk");
128 clk_h = clk_get(NULL, "hclk"); 128 clock_h = clk_get(NULL, "hclk");
129 clk_upll = clk_get(NULL, "upll"); 129 clock_upll = clk_get(NULL, "upll");
130 130
131 if (IS_ERR(clk_p) || IS_ERR(clk_h) || IS_ERR(clk_upll)) { 131 if (IS_ERR(clock_p) || IS_ERR(clock_h) || IS_ERR(clock_upll)) {
132 printk(KERN_ERR "S3C2442: Failed to get parent clocks\n"); 132 printk(KERN_ERR "S3C2442: Failed to get parent clocks\n");
133 return -EINVAL; 133 return -EINVAL;
134 } 134 }
@@ -136,8 +136,8 @@ static int s3c2442_clk_add(struct sys_device *sysdev)
136 /* check rate of UPLL, and if it is near 96MHz, then change 136 /* check rate of UPLL, and if it is near 96MHz, then change
137 * to using half the UPLL rate for the system */ 137 * to using half the UPLL rate for the system */
138 138
139 if (clk_get_rate(clk_upll) > (94 * MHZ)) { 139 if (clk_get_rate(clock_upll) > (94 * MHZ)) {
140 clk_usb_bus.rate = clk_get_rate(clk_upll) / 2; 140 clk_usb_bus.rate = clk_get_rate(clock_upll) / 2;
141 141
142 mutex_lock(&clocks_mutex); 142 mutex_lock(&clocks_mutex);
143 143
@@ -148,8 +148,8 @@ static int s3c2442_clk_add(struct sys_device *sysdev)
148 mutex_unlock(&clocks_mutex); 148 mutex_unlock(&clocks_mutex);
149 } 149 }
150 150
151 s3c2442_clk_cam.parent = clk_h; 151 s3c2442_clk_cam.parent = clock_h;
152 s3c2442_clk_cam_upll.parent = clk_upll; 152 s3c2442_clk_cam_upll.parent = clock_upll;
153 153
154 s3c24xx_register_clock(&s3c2442_clk_cam); 154 s3c24xx_register_clock(&s3c2442_clk_cam);
155 s3c24xx_register_clock(&s3c2442_clk_cam_upll); 155 s3c24xx_register_clock(&s3c2442_clk_cam_upll);
diff --git a/arch/arm/mach-s3c2410/s3c2442.c b/arch/arm/mach-s3c2410/s3c2442.c
index 581667efd13c..428732ee68c4 100644
--- a/arch/arm/mach-s3c2410/s3c2442.c
+++ b/arch/arm/mach-s3c2410/s3c2442.c
@@ -16,29 +16,11 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/platform_device.h> 19#include <linux/serial_core.h>
20#include <linux/sysdev.h> 20#include <linux/sysdev.h>
21#include <linux/clk.h>
22
23#include <asm/mach/arch.h>
24#include <asm/mach/map.h>
25#include <asm/mach/irq.h>
26
27#include <asm/hardware.h>
28#include <asm/io.h>
29#include <asm/irq.h>
30
31#include <asm/arch/regs-clock.h>
32#include <asm/arch/regs-serial.h>
33#include <asm/arch/regs-gpio.h>
34#include <asm/arch/regs-gpioj.h>
35#include <asm/arch/regs-dsc.h>
36 21
37#include "s3c2442.h" 22#include "s3c2442.h"
38#include "clock.h"
39#include "devs.h"
40#include "cpu.h" 23#include "cpu.h"
41#include "pm.h"
42 24
43static struct sys_device s3c2442_sysdev = { 25static struct sys_device s3c2442_sysdev = {
44 .cls = &s3c2442_sysclass, 26 .cls = &s3c2442_sysclass,
diff --git a/arch/arm/mach-s3c2410/s3c244x.c b/arch/arm/mach-s3c2410/s3c244x.c
index 9a2258270de9..23c7494ad10d 100644
--- a/arch/arm/mach-s3c2410/s3c244x.c
+++ b/arch/arm/mach-s3c2410/s3c244x.c
@@ -16,6 +16,7 @@
16#include <linux/list.h> 16#include <linux/list.h>
17#include <linux/timer.h> 17#include <linux/timer.h>
18#include <linux/init.h> 18#include <linux/init.h>
19#include <linux/serial_core.h>
19#include <linux/platform_device.h> 20#include <linux/platform_device.h>
20#include <linux/sysdev.h> 21#include <linux/sysdev.h>
21#include <linux/clk.h> 22#include <linux/clk.h>
@@ -47,8 +48,6 @@ static struct map_desc s3c244x_iodesc[] __initdata = {
47 IODESC_ENT(TIMER), 48 IODESC_ENT(TIMER),
48 IODESC_ENT(WATCHDOG), 49 IODESC_ENT(WATCHDOG),
49 IODESC_ENT(LCD), 50 IODESC_ENT(LCD),
50 IODESC_ENT(ADC),
51 IODESC_ENT(USBHOST),
52}; 51};
53 52
54/* uart initialisation */ 53/* uart initialisation */
diff --git a/arch/arm/mach-s3c2410/usb-simtec.h b/arch/arm/mach-s3c2410/usb-simtec.h
index d8aa6127dedb..03842ede9e71 100644
--- a/arch/arm/mach-s3c2410/usb-simtec.h
+++ b/arch/arm/mach-s3c2410/usb-simtec.h
@@ -10,9 +10,6 @@
10 * This program is free software; you can redistribute it and/or modify 10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as 11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation. 12 * published by the Free Software Foundation.
13 *
14 * Modifications:
15 * 20-Aug-2004 BJD Created
16*/ 13*/
17 14
18extern int usb_simtec_init(void); 15extern int usb_simtec_init(void);
diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
index 3bb3951920bc..251685fe73a8 100644
--- a/arch/arm/mm/ioremap.c
+++ b/arch/arm/mm/ioremap.c
@@ -292,6 +292,8 @@ __ioremap_pfn(unsigned long pfn, unsigned long offset, size_t size,
292 if (pfn >= 0x100000 && (__pfn_to_phys(pfn) & ~SUPERSECTION_MASK)) 292 if (pfn >= 0x100000 && (__pfn_to_phys(pfn) & ~SUPERSECTION_MASK))
293 return NULL; 293 return NULL;
294 294
295 size = PAGE_ALIGN(size);
296
295 area = get_vm_area(size, VM_IOREMAP); 297 area = get_vm_area(size, VM_IOREMAP);
296 if (!area) 298 if (!area)
297 return NULL; 299 return NULL;
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index f028aef9a861..655c8376f0b5 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -154,6 +154,26 @@ static int __init noalign_setup(char *__unused)
154} 154}
155__setup("noalign", noalign_setup); 155__setup("noalign", noalign_setup);
156 156
157#ifndef CONFIG_SMP
158void adjust_cr(unsigned long mask, unsigned long set)
159{
160 unsigned long flags;
161
162 mask &= ~CR_A;
163
164 set &= mask;
165
166 local_irq_save(flags);
167
168 cr_no_alignment = (cr_no_alignment & ~mask) | set;
169 cr_alignment = (cr_alignment & ~mask) | set;
170
171 set_cr((get_cr() & ~mask) | set);
172
173 local_irq_restore(flags);
174}
175#endif
176
157struct mem_types { 177struct mem_types {
158 unsigned int prot_pte; 178 unsigned int prot_pte;
159 unsigned int prot_l1; 179 unsigned int prot_l1;
diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S
index 43494ae8f01a..94a58455f346 100644
--- a/arch/arm/mm/proc-xsc3.S
+++ b/arch/arm/mm/proc-xsc3.S
@@ -2,7 +2,7 @@
2 * linux/arch/arm/mm/proc-xsc3.S 2 * linux/arch/arm/mm/proc-xsc3.S
3 * 3 *
4 * Original Author: Matthew Gilbert 4 * Original Author: Matthew Gilbert
5 * Current Maintainer: Deepak Saxena <dsaxena@plexity.net> 5 * Current Maintainer: Lennert Buytenhek <buytenh@wantstofly.org>
6 * 6 *
7 * Copyright 2004 (C) Intel Corp. 7 * Copyright 2004 (C) Intel Corp.
8 * Copyright 2005 (c) MontaVista Software, Inc. 8 * Copyright 2005 (c) MontaVista Software, Inc.
diff --git a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
index 18f4715c655d..b735458c6e3a 100644
--- a/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
+++ b/arch/i386/kernel/cpu/cpufreq/acpi-cpufreq.c
@@ -126,27 +126,6 @@ static unsigned extract_freq(u32 val, struct acpi_cpufreq_data *data)
126 } 126 }
127} 127}
128 128
129static void wrport(u16 port, u8 bit_width, u32 value)
130{
131 if (bit_width <= 8)
132 outb(value, port);
133 else if (bit_width <= 16)
134 outw(value, port);
135 else if (bit_width <= 32)
136 outl(value, port);
137}
138
139static void rdport(u16 port, u8 bit_width, u32 * ret)
140{
141 *ret = 0;
142 if (bit_width <= 8)
143 *ret = inb(port);
144 else if (bit_width <= 16)
145 *ret = inw(port);
146 else if (bit_width <= 32)
147 *ret = inl(port);
148}
149
150struct msr_addr { 129struct msr_addr {
151 u32 reg; 130 u32 reg;
152}; 131};
@@ -177,7 +156,9 @@ static void do_drv_read(struct drv_cmd *cmd)
177 rdmsr(cmd->addr.msr.reg, cmd->val, h); 156 rdmsr(cmd->addr.msr.reg, cmd->val, h);
178 break; 157 break;
179 case SYSTEM_IO_CAPABLE: 158 case SYSTEM_IO_CAPABLE:
180 rdport(cmd->addr.io.port, cmd->addr.io.bit_width, &cmd->val); 159 acpi_os_read_port((acpi_io_address)cmd->addr.io.port,
160 &cmd->val,
161 (u32)cmd->addr.io.bit_width);
181 break; 162 break;
182 default: 163 default:
183 break; 164 break;
@@ -193,7 +174,9 @@ static void do_drv_write(struct drv_cmd *cmd)
193 wrmsr(cmd->addr.msr.reg, cmd->val, h); 174 wrmsr(cmd->addr.msr.reg, cmd->val, h);
194 break; 175 break;
195 case SYSTEM_IO_CAPABLE: 176 case SYSTEM_IO_CAPABLE:
196 wrport(cmd->addr.io.port, cmd->addr.io.bit_width, cmd->val); 177 acpi_os_write_port((acpi_io_address)cmd->addr.io.port,
178 cmd->val,
179 (u32)cmd->addr.io.bit_width);
197 break; 180 break;
198 default: 181 default:
199 break; 182 break;
@@ -699,14 +682,14 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
699 if (result) 682 if (result)
700 goto err_freqfree; 683 goto err_freqfree;
701 684
702 switch (data->cpu_feature) { 685 switch (perf->control_register.space_id) {
703 case ACPI_ADR_SPACE_SYSTEM_IO: 686 case ACPI_ADR_SPACE_SYSTEM_IO:
704 /* Current speed is unknown and not detectable by IO port */ 687 /* Current speed is unknown and not detectable by IO port */
705 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu); 688 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
706 break; 689 break;
707 case ACPI_ADR_SPACE_FIXED_HARDWARE: 690 case ACPI_ADR_SPACE_FIXED_HARDWARE:
708 acpi_cpufreq_driver.get = get_cur_freq_on_cpu; 691 acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
709 get_cur_freq_on_cpu(cpu); 692 policy->cur = get_cur_freq_on_cpu(cpu);
710 break; 693 break;
711 default: 694 default:
712 break; 695 break;
diff --git a/arch/i386/kernel/cpu/cpufreq/longhaul.c b/arch/i386/kernel/cpu/cpufreq/longhaul.c
index c548daad3476..6d9c97a690fd 100644
--- a/arch/i386/kernel/cpu/cpufreq/longhaul.c
+++ b/arch/i386/kernel/cpu/cpufreq/longhaul.c
@@ -787,8 +787,10 @@ static int __init longhaul_init(void)
787 switch (c->x86_model) { 787 switch (c->x86_model) {
788 case 6 ... 9: 788 case 6 ... 9:
789 return cpufreq_register_driver(&longhaul_driver); 789 return cpufreq_register_driver(&longhaul_driver);
790 case 10:
791 printk(KERN_ERR PFX "Use acpi-cpufreq driver for VIA C7\n");
790 default: 792 default:
791 printk (KERN_INFO PFX "Unknown VIA CPU. Contact davej@codemonkey.org.uk\n"); 793 ;;
792 } 794 }
793 795
794 return -ENODEV; 796 return -ENODEV;
diff --git a/arch/sparc/defconfig b/arch/sparc/defconfig
index a69856263009..79e54894529d 100644
--- a/arch/sparc/defconfig
+++ b/arch/sparc/defconfig
@@ -1,41 +1,59 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.20-rc1
4# Sun Dec 17 14:20:47 2006
3# 5#
4CONFIG_MMU=y 6CONFIG_MMU=y
5CONFIG_UID16=y
6CONFIG_HIGHMEM=y 7CONFIG_HIGHMEM=y
7CONFIG_GENERIC_ISA_DMA=y 8CONFIG_GENERIC_ISA_DMA=y
9CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
8 10
9# 11#
10# Code maturity level options 12# Code maturity level options
11# 13#
12CONFIG_EXPERIMENTAL=y 14CONFIG_EXPERIMENTAL=y
13CONFIG_CLEAN_COMPILE=y
14CONFIG_STANDALONE=y
15CONFIG_BROKEN_ON_SMP=y 15CONFIG_BROKEN_ON_SMP=y
16CONFIG_INIT_ENV_ARG_LIMIT=32
16 17
17# 18#
18# General setup 19# General setup
19# 20#
21CONFIG_LOCALVERSION=""
22CONFIG_LOCALVERSION_AUTO=y
20CONFIG_SWAP=y 23CONFIG_SWAP=y
21CONFIG_SYSVIPC=y 24CONFIG_SYSVIPC=y
25# CONFIG_IPC_NS is not set
22CONFIG_POSIX_MQUEUE=y 26CONFIG_POSIX_MQUEUE=y
23# CONFIG_BSD_PROCESS_ACCT is not set 27# CONFIG_BSD_PROCESS_ACCT is not set
24CONFIG_SYSCTL=y 28# CONFIG_TASKSTATS is not set
29# CONFIG_UTS_NS is not set
25# CONFIG_AUDIT is not set 30# CONFIG_AUDIT is not set
26CONFIG_LOG_BUF_SHIFT=14
27# CONFIG_HOTPLUG is not set
28# CONFIG_IKCONFIG is not set 31# CONFIG_IKCONFIG is not set
32CONFIG_SYSFS_DEPRECATED=y
33# CONFIG_RELAY is not set
34CONFIG_INITRAMFS_SOURCE=""
35# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
36CONFIG_SYSCTL=y
29# CONFIG_EMBEDDED is not set 37# CONFIG_EMBEDDED is not set
38CONFIG_UID16=y
39CONFIG_SYSCTL_SYSCALL=y
30CONFIG_KALLSYMS=y 40CONFIG_KALLSYMS=y
31# CONFIG_KALLSYMS_ALL is not set 41# CONFIG_KALLSYMS_ALL is not set
42# CONFIG_KALLSYMS_EXTRA_PASS is not set
43CONFIG_HOTPLUG=y
44CONFIG_PRINTK=y
45CONFIG_BUG=y
46CONFIG_ELF_CORE=y
47CONFIG_BASE_FULL=y
32CONFIG_FUTEX=y 48CONFIG_FUTEX=y
33CONFIG_EPOLL=y 49CONFIG_EPOLL=y
34CONFIG_IOSCHED_NOOP=y 50CONFIG_SHMEM=y
35CONFIG_IOSCHED_AS=y 51CONFIG_SLAB=y
36CONFIG_IOSCHED_DEADLINE=y 52CONFIG_VM_EVENT_COUNTERS=y
37CONFIG_IOSCHED_CFQ=y 53CONFIG_RT_MUTEXES=y
38# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 54# CONFIG_TINY_SHMEM is not set
55CONFIG_BASE_SMALL=0
56# CONFIG_SLOB is not set
39 57
40# 58#
41# Loadable module support 59# Loadable module support
@@ -43,17 +61,36 @@ CONFIG_IOSCHED_CFQ=y
43CONFIG_MODULES=y 61CONFIG_MODULES=y
44CONFIG_MODULE_UNLOAD=y 62CONFIG_MODULE_UNLOAD=y
45# CONFIG_MODULE_FORCE_UNLOAD is not set 63# CONFIG_MODULE_FORCE_UNLOAD is not set
46CONFIG_OBSOLETE_MODPARM=y
47# CONFIG_MODVERSIONS is not set 64# CONFIG_MODVERSIONS is not set
65# CONFIG_MODULE_SRCVERSION_ALL is not set
48CONFIG_KMOD=y 66CONFIG_KMOD=y
49 67
50# 68#
51# General setup 69# Block layer
70#
71CONFIG_BLOCK=y
72# CONFIG_LBD is not set
73# CONFIG_BLK_DEV_IO_TRACE is not set
74# CONFIG_LSF is not set
75
76#
77# IO Schedulers
78#
79CONFIG_IOSCHED_NOOP=y
80CONFIG_IOSCHED_AS=y
81CONFIG_IOSCHED_DEADLINE=y
82CONFIG_IOSCHED_CFQ=y
83# CONFIG_DEFAULT_AS is not set
84# CONFIG_DEFAULT_DEADLINE is not set
85CONFIG_DEFAULT_CFQ=y
86# CONFIG_DEFAULT_NOOP is not set
87CONFIG_DEFAULT_IOSCHED="cfq"
88
89#
90# General machine setup
52# 91#
53CONFIG_VT=y
54CONFIG_VT_CONSOLE=y
55CONFIG_HW_CONSOLE=y
56# CONFIG_SMP is not set 92# CONFIG_SMP is not set
93CONFIG_SPARC=y
57CONFIG_SPARC32=y 94CONFIG_SPARC32=y
58CONFIG_SBUS=y 95CONFIG_SBUS=y
59CONFIG_SBUSCHAR=y 96CONFIG_SBUSCHAR=y
@@ -61,73 +98,170 @@ CONFIG_SERIAL_CONSOLE=y
61CONFIG_SUN_AUXIO=y 98CONFIG_SUN_AUXIO=y
62CONFIG_SUN_IO=y 99CONFIG_SUN_IO=y
63CONFIG_RWSEM_GENERIC_SPINLOCK=y 100CONFIG_RWSEM_GENERIC_SPINLOCK=y
101CONFIG_GENERIC_FIND_NEXT_BIT=y
102CONFIG_GENERIC_HWEIGHT=y
103CONFIG_GENERIC_CALIBRATE_DELAY=y
104CONFIG_ARCH_MAY_HAVE_PC_FDC=y
105# CONFIG_ARCH_HAS_ILOG2_U32 is not set
106# CONFIG_ARCH_HAS_ILOG2_U64 is not set
64CONFIG_SUN_PM=y 107CONFIG_SUN_PM=y
65# CONFIG_SUN4 is not set 108# CONFIG_SUN4 is not set
66CONFIG_PCI=y 109CONFIG_PCI=y
67# CONFIG_PCI_LEGACY_PROC is not set 110# CONFIG_PCI_MULTITHREAD_PROBE is not set
68# CONFIG_PCI_NAMES is not set 111# CONFIG_PCI_DEBUG is not set
69CONFIG_SUN_OPENPROMFS=m 112CONFIG_SUN_OPENPROMFS=m
113# CONFIG_SPARC_LED is not set
70CONFIG_BINFMT_ELF=y 114CONFIG_BINFMT_ELF=y
71CONFIG_BINFMT_AOUT=y 115CONFIG_BINFMT_AOUT=y
72CONFIG_BINFMT_MISC=m 116CONFIG_BINFMT_MISC=m
73CONFIG_SUNOS_EMUL=y 117CONFIG_SUNOS_EMUL=y
118CONFIG_SELECT_MEMORY_MODEL=y
119CONFIG_FLATMEM_MANUAL=y
120# CONFIG_DISCONTIGMEM_MANUAL is not set
121# CONFIG_SPARSEMEM_MANUAL is not set
122CONFIG_FLATMEM=y
123CONFIG_FLAT_NODE_MEM_MAP=y
124# CONFIG_SPARSEMEM_STATIC is not set
125CONFIG_SPLIT_PTLOCK_CPUS=4
126# CONFIG_RESOURCES_64BIT is not set
74 127
75# 128#
76# Parallel port support 129# Networking
77# 130#
78# CONFIG_PARPORT is not set 131CONFIG_NET=y
79 132
80# 133#
81# Generic Driver Options 134# Networking options
82# 135#
83# CONFIG_DEBUG_DRIVER is not set 136# CONFIG_NETDEBUG is not set
137CONFIG_PACKET=y
138# CONFIG_PACKET_MMAP is not set
139CONFIG_UNIX=y
140CONFIG_XFRM=y
141CONFIG_XFRM_USER=m
142# CONFIG_XFRM_SUB_POLICY is not set
143CONFIG_NET_KEY=m
144CONFIG_INET=y
145# CONFIG_IP_MULTICAST is not set
146# CONFIG_IP_ADVANCED_ROUTER is not set
147CONFIG_IP_FIB_HASH=y
148CONFIG_IP_PNP=y
149CONFIG_IP_PNP_DHCP=y
150# CONFIG_IP_PNP_BOOTP is not set
151# CONFIG_IP_PNP_RARP is not set
152# CONFIG_NET_IPIP is not set
153# CONFIG_NET_IPGRE is not set
154# CONFIG_ARPD is not set
155# CONFIG_SYN_COOKIES is not set
156CONFIG_INET_AH=y
157CONFIG_INET_ESP=y
158CONFIG_INET_IPCOMP=y
159CONFIG_INET_XFRM_TUNNEL=y
160CONFIG_INET_TUNNEL=y
161CONFIG_INET_XFRM_MODE_TRANSPORT=y
162CONFIG_INET_XFRM_MODE_TUNNEL=y
163CONFIG_INET_XFRM_MODE_BEET=y
164CONFIG_INET_DIAG=y
165CONFIG_INET_TCP_DIAG=y
166# CONFIG_TCP_CONG_ADVANCED is not set
167CONFIG_TCP_CONG_CUBIC=y
168CONFIG_DEFAULT_TCP_CONG="cubic"
169# CONFIG_TCP_MD5SIG is not set
170CONFIG_IPV6=m
171CONFIG_IPV6_PRIVACY=y
172# CONFIG_IPV6_ROUTER_PREF is not set
173CONFIG_INET6_AH=m
174CONFIG_INET6_ESP=m
175CONFIG_INET6_IPCOMP=m
176# CONFIG_IPV6_MIP6 is not set
177CONFIG_INET6_XFRM_TUNNEL=m
178CONFIG_INET6_TUNNEL=m
179CONFIG_INET6_XFRM_MODE_TRANSPORT=m
180CONFIG_INET6_XFRM_MODE_TUNNEL=m
181CONFIG_INET6_XFRM_MODE_BEET=m
182# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set
183CONFIG_IPV6_SIT=m
184CONFIG_IPV6_TUNNEL=m
185# CONFIG_IPV6_MULTIPLE_TABLES is not set
186# CONFIG_NETWORK_SECMARK is not set
187# CONFIG_NETFILTER is not set
84 188
85# 189#
86# Graphics support 190# DCCP Configuration (EXPERIMENTAL)
87# 191#
88# CONFIG_FB is not set 192# CONFIG_IP_DCCP is not set
89 193
90# 194#
91# Console display driver support 195# SCTP Configuration (EXPERIMENTAL)
92# 196#
93# CONFIG_MDA_CONSOLE is not set 197CONFIG_IP_SCTP=m
94# CONFIG_PROM_CONSOLE is not set 198# CONFIG_SCTP_DBG_MSG is not set
95CONFIG_DUMMY_CONSOLE=y 199CONFIG_SCTP_DBG_OBJCNT=y
200# CONFIG_SCTP_HMAC_NONE is not set
201# CONFIG_SCTP_HMAC_SHA1 is not set
202CONFIG_SCTP_HMAC_MD5=y
96 203
97# 204#
98# Memory Technology Devices (MTD) 205# TIPC Configuration (EXPERIMENTAL)
99# 206#
100# CONFIG_MTD is not set 207# CONFIG_TIPC is not set
208# CONFIG_ATM is not set
209# CONFIG_BRIDGE is not set
210# CONFIG_VLAN_8021Q is not set
211# CONFIG_DECNET is not set
212# CONFIG_LLC2 is not set
213# CONFIG_IPX is not set
214# CONFIG_ATALK is not set
215# CONFIG_X25 is not set
216# CONFIG_LAPB is not set
217# CONFIG_ECONET is not set
218# CONFIG_WAN_ROUTER is not set
101 219
102# 220#
103# Serial drivers 221# QoS and/or fair queueing
104# 222#
105# CONFIG_SERIAL_8250 is not set 223# CONFIG_NET_SCHED is not set
106 224
107# 225#
108# Non-8250 serial port support 226# Network testing
109# 227#
110CONFIG_SERIAL_SUNCORE=y 228CONFIG_NET_PKTGEN=m
111CONFIG_SERIAL_SUNZILOG=y 229# CONFIG_HAMRADIO is not set
112CONFIG_SERIAL_SUNZILOG_CONSOLE=y 230# CONFIG_IRDA is not set
113CONFIG_SERIAL_SUNSU=y 231# CONFIG_BT is not set
114CONFIG_SERIAL_SUNSU_CONSOLE=y 232# CONFIG_IEEE80211 is not set
115# CONFIG_SERIAL_SUNSAB is not set
116CONFIG_SERIAL_CORE=y
117CONFIG_SERIAL_CORE_CONSOLE=y
118 233
119# 234#
120# Misc Linux/SPARC drivers 235# Device Drivers
236#
237
238#
239# Generic Driver Options
240#
241CONFIG_STANDALONE=y
242CONFIG_PREVENT_FIRMWARE_BUILD=y
243# CONFIG_FW_LOADER is not set
244# CONFIG_DEBUG_DRIVER is not set
245# CONFIG_SYS_HYPERVISOR is not set
246
247#
248# Connector - unified userspace <-> kernelspace linker
249#
250# CONFIG_CONNECTOR is not set
251
252#
253# Memory Technology Devices (MTD)
254#
255# CONFIG_MTD is not set
256
257#
258# Parallel port support
259#
260# CONFIG_PARPORT is not set
261
262#
263# Plug and Play support
121# 264#
122CONFIG_SUN_OPENPROMIO=m
123CONFIG_SUN_MOSTEK_RTC=m
124# CONFIG_SUN_BPP is not set
125# CONFIG_SUN_VIDEOPIX is not set
126# CONFIG_SUN_AURORA is not set
127# CONFIG_TADPOLE_TS102_UCTRL is not set
128# CONFIG_SUN_JSFLASH is not set
129CONFIG_APM_RTC_IS_GMT=y
130CONFIG_RTC=m
131 265
132# 266#
133# Block devices 267# Block devices
@@ -137,28 +271,37 @@ CONFIG_RTC=m
137# CONFIG_BLK_CPQ_CISS_DA is not set 271# CONFIG_BLK_CPQ_CISS_DA is not set
138# CONFIG_BLK_DEV_DAC960 is not set 272# CONFIG_BLK_DEV_DAC960 is not set
139# CONFIG_BLK_DEV_UMEM is not set 273# CONFIG_BLK_DEV_UMEM is not set
274# CONFIG_BLK_DEV_COW_COMMON is not set
140CONFIG_BLK_DEV_LOOP=m 275CONFIG_BLK_DEV_LOOP=m
141CONFIG_BLK_DEV_CRYPTOLOOP=m 276CONFIG_BLK_DEV_CRYPTOLOOP=m
142# CONFIG_BLK_DEV_NBD is not set 277# CONFIG_BLK_DEV_NBD is not set
143# CONFIG_BLK_DEV_CARMEL is not set 278# CONFIG_BLK_DEV_SX8 is not set
144CONFIG_BLK_DEV_RAM=y 279CONFIG_BLK_DEV_RAM=y
280CONFIG_BLK_DEV_RAM_COUNT=16
145CONFIG_BLK_DEV_RAM_SIZE=4096 281CONFIG_BLK_DEV_RAM_SIZE=4096
282CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
146CONFIG_BLK_DEV_INITRD=y 283CONFIG_BLK_DEV_INITRD=y
284# CONFIG_CDROM_PKTCDVD is not set
285# CONFIG_ATA_OVER_ETH is not set
147 286
148# 287#
149# ATA/ATAPI/MFM/RLL support 288# Misc devices
150# 289#
151# CONFIG_IDE is not set 290# CONFIG_SGI_IOC4 is not set
291# CONFIG_TIFM_CORE is not set
152 292
153# 293#
154# ISDN subsystem 294# ATA/ATAPI/MFM/RLL support
155# 295#
156# CONFIG_ISDN is not set 296# CONFIG_IDE is not set
157 297
158# 298#
159# SCSI device support 299# SCSI device support
160# 300#
301# CONFIG_RAID_ATTRS is not set
161CONFIG_SCSI=y 302CONFIG_SCSI=y
303# CONFIG_SCSI_TGT is not set
304# CONFIG_SCSI_NETLINK is not set
162CONFIG_SCSI_PROC_FS=y 305CONFIG_SCSI_PROC_FS=y
163 306
164# 307#
@@ -170,6 +313,7 @@ CONFIG_BLK_DEV_SD=y
170CONFIG_BLK_DEV_SR=m 313CONFIG_BLK_DEV_SR=m
171# CONFIG_BLK_DEV_SR_VENDOR is not set 314# CONFIG_BLK_DEV_SR_VENDOR is not set
172CONFIG_CHR_DEV_SG=m 315CONFIG_CHR_DEV_SG=m
316# CONFIG_CHR_DEV_SCH is not set
173 317
174# 318#
175# Some SCSI devices (e.g. CD jukebox) support multiple LUNs 319# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
@@ -177,57 +321,58 @@ CONFIG_CHR_DEV_SG=m
177# CONFIG_SCSI_MULTI_LUN is not set 321# CONFIG_SCSI_MULTI_LUN is not set
178# CONFIG_SCSI_CONSTANTS is not set 322# CONFIG_SCSI_CONSTANTS is not set
179# CONFIG_SCSI_LOGGING is not set 323# CONFIG_SCSI_LOGGING is not set
324# CONFIG_SCSI_SCAN_ASYNC is not set
180 325
181# 326#
182# SCSI Transport Attributes 327# SCSI Transports
183# 328#
184CONFIG_SCSI_SPI_ATTRS=m 329CONFIG_SCSI_SPI_ATTRS=m
185# CONFIG_SCSI_FC_ATTRS is not set 330# CONFIG_SCSI_FC_ATTRS is not set
331# CONFIG_SCSI_ISCSI_ATTRS is not set
332# CONFIG_SCSI_SAS_ATTRS is not set
333# CONFIG_SCSI_SAS_LIBSAS is not set
186 334
187# 335#
188# SCSI low-level drivers 336# SCSI low-level drivers
189# 337#
338# CONFIG_ISCSI_TCP is not set
190# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 339# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
340# CONFIG_SCSI_3W_9XXX is not set
191# CONFIG_SCSI_ACARD is not set 341# CONFIG_SCSI_ACARD is not set
192# CONFIG_SCSI_AACRAID is not set 342# CONFIG_SCSI_AACRAID is not set
193# CONFIG_SCSI_AIC7XXX is not set 343# CONFIG_SCSI_AIC7XXX is not set
194# CONFIG_SCSI_AIC7XXX_OLD is not set 344# CONFIG_SCSI_AIC7XXX_OLD is not set
195# CONFIG_SCSI_AIC79XX is not set 345# CONFIG_SCSI_AIC79XX is not set
346# CONFIG_SCSI_AIC94XX is not set
196# CONFIG_SCSI_DPT_I2O is not set 347# CONFIG_SCSI_DPT_I2O is not set
197# CONFIG_SCSI_ADVANSYS is not set 348# CONFIG_SCSI_ARCMSR is not set
198# CONFIG_SCSI_MEGARAID is not set 349# CONFIG_MEGARAID_NEWGEN is not set
199# CONFIG_SCSI_SATA is not set 350# CONFIG_MEGARAID_LEGACY is not set
200# CONFIG_SCSI_BUSLOGIC is not set 351# CONFIG_MEGARAID_SAS is not set
352# CONFIG_SCSI_HPTIOP is not set
201# CONFIG_SCSI_DMX3191D is not set 353# CONFIG_SCSI_DMX3191D is not set
202# CONFIG_SCSI_EATA is not set
203# CONFIG_SCSI_EATA_PIO is not set
204# CONFIG_SCSI_FUTURE_DOMAIN is not set 354# CONFIG_SCSI_FUTURE_DOMAIN is not set
205# CONFIG_SCSI_GDTH is not set
206# CONFIG_SCSI_IPS is not set 355# CONFIG_SCSI_IPS is not set
356# CONFIG_SCSI_INITIO is not set
207# CONFIG_SCSI_INIA100 is not set 357# CONFIG_SCSI_INIA100 is not set
358# CONFIG_SCSI_STEX is not set
208# CONFIG_SCSI_SYM53C8XX_2 is not set 359# CONFIG_SCSI_SYM53C8XX_2 is not set
209# CONFIG_SCSI_IPR is not set
210# CONFIG_SCSI_QLOGIC_ISP is not set
211# CONFIG_SCSI_QLOGIC_FC is not set
212# CONFIG_SCSI_QLOGIC_1280 is not set 360# CONFIG_SCSI_QLOGIC_1280 is not set
213CONFIG_SCSI_QLOGICPTI=m 361CONFIG_SCSI_QLOGICPTI=m
214CONFIG_SCSI_QLA2XXX=y 362# CONFIG_SCSI_QLA_FC is not set
215# CONFIG_SCSI_QLA21XX is not set 363# CONFIG_SCSI_QLA_ISCSI is not set
216# CONFIG_SCSI_QLA22XX is not set 364# CONFIG_SCSI_LPFC is not set
217# CONFIG_SCSI_QLA2300 is not set
218# CONFIG_SCSI_QLA2322 is not set
219# CONFIG_SCSI_QLA6312 is not set
220# CONFIG_SCSI_QLA6322 is not set
221# CONFIG_SCSI_DC395x is not set 365# CONFIG_SCSI_DC395x is not set
222# CONFIG_SCSI_DC390T is not set 366# CONFIG_SCSI_DC390T is not set
223# CONFIG_SCSI_NSP32 is not set 367# CONFIG_SCSI_NSP32 is not set
224# CONFIG_SCSI_DEBUG is not set 368# CONFIG_SCSI_DEBUG is not set
225CONFIG_SCSI_SUNESP=y 369CONFIG_SCSI_SUNESP=y
370# CONFIG_SCSI_SRP is not set
226 371
227# 372#
228# Fibre Channel support 373# Serial ATA (prod) and Parallel ATA (experimental) drivers
229# 374#
230# CONFIG_FC4 is not set 375# CONFIG_ATA is not set
231 376
232# 377#
233# Multi-device support (RAID and LVM) 378# Multi-device support (RAID and LVM)
@@ -235,85 +380,31 @@ CONFIG_SCSI_SUNESP=y
235# CONFIG_MD is not set 380# CONFIG_MD is not set
236 381
237# 382#
238# Networking support 383# Fusion MPT device support
239#
240CONFIG_NET=y
241
242#
243# Networking options
244# 384#
245CONFIG_PACKET=y 385# CONFIG_FUSION is not set
246# CONFIG_PACKET_MMAP is not set 386# CONFIG_FUSION_SPI is not set
247CONFIG_NETLINK_DEV=y 387# CONFIG_FUSION_FC is not set
248CONFIG_UNIX=y 388# CONFIG_FUSION_SAS is not set
249CONFIG_NET_KEY=m
250CONFIG_INET=y
251# CONFIG_IP_MULTICAST is not set
252# CONFIG_IP_ADVANCED_ROUTER is not set
253CONFIG_IP_PNP=y
254CONFIG_IP_PNP_DHCP=y
255# CONFIG_IP_PNP_BOOTP is not set
256# CONFIG_IP_PNP_RARP is not set
257# CONFIG_NET_IPIP is not set
258# CONFIG_NET_IPGRE is not set
259# CONFIG_ARPD is not set
260# CONFIG_SYN_COOKIES is not set
261CONFIG_INET_AH=y
262CONFIG_INET_ESP=y
263CONFIG_INET_IPCOMP=y
264CONFIG_IPV6=m
265CONFIG_IPV6_PRIVACY=y
266CONFIG_INET6_AH=m
267CONFIG_INET6_ESP=m
268CONFIG_INET6_IPCOMP=m
269CONFIG_IPV6_TUNNEL=m
270# CONFIG_NETFILTER is not set
271CONFIG_XFRM=y
272CONFIG_XFRM_USER=m
273 389
274# 390#
275# SCTP Configuration (EXPERIMENTAL) 391# IEEE 1394 (FireWire) support
276# 392#
277CONFIG_IP_SCTP=m 393# CONFIG_IEEE1394 is not set
278# CONFIG_SCTP_DBG_MSG is not set
279CONFIG_SCTP_DBG_OBJCNT=y
280# CONFIG_SCTP_HMAC_NONE is not set
281# CONFIG_SCTP_HMAC_SHA1 is not set
282CONFIG_SCTP_HMAC_MD5=y
283# CONFIG_ATM is not set
284# CONFIG_BRIDGE is not set
285# CONFIG_VLAN_8021Q is not set
286# CONFIG_DECNET is not set
287# CONFIG_LLC2 is not set
288# CONFIG_IPX is not set
289# CONFIG_ATALK is not set
290# CONFIG_X25 is not set
291# CONFIG_LAPB is not set
292# CONFIG_NET_DIVERT is not set
293# CONFIG_ECONET is not set
294# CONFIG_WAN_ROUTER is not set
295# CONFIG_NET_HW_FLOWCONTROL is not set
296 394
297# 395#
298# QoS and/or fair queueing 396# I2O device support
299# 397#
300# CONFIG_NET_SCHED is not set 398# CONFIG_I2O is not set
301 399
302# 400#
303# Network testing 401# Network device support
304# 402#
305CONFIG_NET_PKTGEN=m
306# CONFIG_NETPOLL is not set
307# CONFIG_NET_POLL_CONTROLLER is not set
308# CONFIG_HAMRADIO is not set
309# CONFIG_IRDA is not set
310# CONFIG_BT is not set
311CONFIG_NETDEVICES=y 403CONFIG_NETDEVICES=y
312CONFIG_DUMMY=m 404CONFIG_DUMMY=m
313# CONFIG_BONDING is not set 405# CONFIG_BONDING is not set
314# CONFIG_EQUALIZER is not set 406# CONFIG_EQUALIZER is not set
315CONFIG_TUN=m 407CONFIG_TUN=m
316# CONFIG_ETHERTAP is not set
317 408
318# 409#
319# ARCnet devices 410# ARCnet devices
@@ -321,6 +412,11 @@ CONFIG_TUN=m
321# CONFIG_ARCNET is not set 412# CONFIG_ARCNET is not set
322 413
323# 414#
415# PHY device support
416#
417# CONFIG_PHYLIB is not set
418
419#
324# Ethernet (10 or 100Mbit) 420# Ethernet (10 or 100Mbit)
325# 421#
326CONFIG_NET_ETHERNET=y 422CONFIG_NET_ETHERNET=y
@@ -330,6 +426,7 @@ CONFIG_HAPPYMEAL=m
330CONFIG_SUNBMAC=m 426CONFIG_SUNBMAC=m
331CONFIG_SUNQE=m 427CONFIG_SUNQE=m
332# CONFIG_SUNGEM is not set 428# CONFIG_SUNGEM is not set
429# CONFIG_CASSINI is not set
333# CONFIG_NET_VENDOR_3COM is not set 430# CONFIG_NET_VENDOR_3COM is not set
334 431
335# 432#
@@ -350,14 +447,22 @@ CONFIG_SUNQE=m
350# CONFIG_HAMACHI is not set 447# CONFIG_HAMACHI is not set
351# CONFIG_YELLOWFIN is not set 448# CONFIG_YELLOWFIN is not set
352# CONFIG_R8169 is not set 449# CONFIG_R8169 is not set
450# CONFIG_SIS190 is not set
451# CONFIG_SKGE is not set
452# CONFIG_SKY2 is not set
353# CONFIG_SK98LIN is not set 453# CONFIG_SK98LIN is not set
354# CONFIG_TIGON3 is not set 454# CONFIG_TIGON3 is not set
455# CONFIG_BNX2 is not set
456# CONFIG_QLA3XXX is not set
355 457
356# 458#
357# Ethernet (10000 Mbit) 459# Ethernet (10000 Mbit)
358# 460#
461# CONFIG_CHELSIO_T1 is not set
359# CONFIG_IXGB is not set 462# CONFIG_IXGB is not set
360# CONFIG_S2IO is not set 463# CONFIG_S2IO is not set
464# CONFIG_MYRI10GE is not set
465# CONFIG_NETXEN_NIC is not set
361 466
362# 467#
363# Token Ring devices 468# Token Ring devices
@@ -380,17 +485,24 @@ CONFIG_SUNQE=m
380# CONFIG_NET_FC is not set 485# CONFIG_NET_FC is not set
381# CONFIG_SHAPER is not set 486# CONFIG_SHAPER is not set
382# CONFIG_NETCONSOLE is not set 487# CONFIG_NETCONSOLE is not set
488# CONFIG_NETPOLL is not set
489# CONFIG_NET_POLL_CONTROLLER is not set
383 490
384# 491#
385# Unix98 PTY support 492# ISDN subsystem
386# 493#
387CONFIG_UNIX98_PTYS=y 494# CONFIG_ISDN is not set
388CONFIG_UNIX98_PTY_COUNT=256 495
496#
497# Telephony Support
498#
499# CONFIG_PHONE is not set
389 500
390# 501#
391# Input device support 502# Input device support
392# 503#
393CONFIG_INPUT=y 504CONFIG_INPUT=y
505# CONFIG_INPUT_FF_MEMLESS is not set
394 506
395# 507#
396# Userland interfaces 508# Userland interfaces
@@ -405,17 +517,6 @@ CONFIG_INPUT_EVDEV=m
405CONFIG_INPUT_EVBUG=m 517CONFIG_INPUT_EVBUG=m
406 518
407# 519#
408# Input I/O drivers
409#
410# CONFIG_GAMEPORT is not set
411CONFIG_SOUND_GAMEPORT=y
412CONFIG_SERIO=m
413# CONFIG_SERIO_I8042 is not set
414CONFIG_SERIO_SERPORT=m
415# CONFIG_SERIO_CT82C710 is not set
416# CONFIG_SERIO_PCIPS2 is not set
417
418#
419# Input Device Drivers 520# Input Device Drivers
420# 521#
421CONFIG_INPUT_KEYBOARD=y 522CONFIG_INPUT_KEYBOARD=y
@@ -424,6 +525,7 @@ CONFIG_KEYBOARD_SUNKBD=m
424# CONFIG_KEYBOARD_LKKBD is not set 525# CONFIG_KEYBOARD_LKKBD is not set
425# CONFIG_KEYBOARD_XTKBD is not set 526# CONFIG_KEYBOARD_XTKBD is not set
426# CONFIG_KEYBOARD_NEWTON is not set 527# CONFIG_KEYBOARD_NEWTON is not set
528# CONFIG_KEYBOARD_STOWAWAY is not set
427CONFIG_INPUT_MOUSE=y 529CONFIG_INPUT_MOUSE=y
428CONFIG_MOUSE_PS2=m 530CONFIG_MOUSE_PS2=m
429CONFIG_MOUSE_SERIAL=m 531CONFIG_MOUSE_SERIAL=m
@@ -433,29 +535,239 @@ CONFIG_MOUSE_SERIAL=m
433# CONFIG_INPUT_MISC is not set 535# CONFIG_INPUT_MISC is not set
434 536
435# 537#
538# Hardware I/O ports
539#
540CONFIG_SERIO=m
541# CONFIG_SERIO_I8042 is not set
542CONFIG_SERIO_SERPORT=m
543# CONFIG_SERIO_PCIPS2 is not set
544CONFIG_SERIO_LIBPS2=m
545# CONFIG_SERIO_RAW is not set
546# CONFIG_GAMEPORT is not set
547
548#
549# Character devices
550#
551CONFIG_VT=y
552CONFIG_VT_CONSOLE=y
553CONFIG_HW_CONSOLE=y
554# CONFIG_VT_HW_CONSOLE_BINDING is not set
555# CONFIG_SERIAL_NONSTANDARD is not set
556
557#
558# Serial drivers
559#
560
561#
562# Non-8250 serial port support
563#
564CONFIG_SERIAL_SUNCORE=y
565CONFIG_SERIAL_SUNZILOG=y
566CONFIG_SERIAL_SUNZILOG_CONSOLE=y
567CONFIG_SERIAL_SUNSU=y
568CONFIG_SERIAL_SUNSU_CONSOLE=y
569# CONFIG_SERIAL_SUNSAB is not set
570CONFIG_SERIAL_CORE=y
571CONFIG_SERIAL_CORE_CONSOLE=y
572# CONFIG_SERIAL_JSM is not set
573CONFIG_UNIX98_PTYS=y
574CONFIG_LEGACY_PTYS=y
575CONFIG_LEGACY_PTY_COUNT=256
576
577#
578# IPMI
579#
580# CONFIG_IPMI_HANDLER is not set
581
582#
583# Watchdog Cards
584#
585# CONFIG_WATCHDOG is not set
586CONFIG_HW_RANDOM=m
587CONFIG_RTC=m
588# CONFIG_DTLK is not set
589# CONFIG_R3964 is not set
590# CONFIG_APPLICOM is not set
591# CONFIG_DRM is not set
592# CONFIG_RAW_DRIVER is not set
593
594#
595# TPM devices
596#
597# CONFIG_TCG_TPM is not set
598
599#
600# I2C support
601#
602# CONFIG_I2C is not set
603
604#
605# SPI support
606#
607# CONFIG_SPI is not set
608# CONFIG_SPI_MASTER is not set
609
610#
611# Dallas's 1-wire bus
612#
613# CONFIG_W1 is not set
614
615#
616# Hardware Monitoring support
617#
618CONFIG_HWMON=y
619# CONFIG_HWMON_VID is not set
620# CONFIG_SENSORS_ABITUGURU is not set
621# CONFIG_SENSORS_F71805F is not set
622# CONFIG_SENSORS_PC87427 is not set
623# CONFIG_SENSORS_VT1211 is not set
624# CONFIG_HWMON_DEBUG_CHIP is not set
625
626#
627# Multimedia devices
628#
629# CONFIG_VIDEO_DEV is not set
630
631#
632# Digital Video Broadcasting Devices
633#
634# CONFIG_DVB is not set
635
636#
637# Graphics support
638#
639CONFIG_FIRMWARE_EDID=y
640# CONFIG_FB is not set
641
642#
643# Console display driver support
644#
645# CONFIG_PROM_CONSOLE is not set
646CONFIG_DUMMY_CONSOLE=y
647# CONFIG_BACKLIGHT_LCD_SUPPORT is not set
648
649#
650# Sound
651#
652# CONFIG_SOUND is not set
653
654#
655# HID Devices
656#
657CONFIG_HID=y
658
659#
660# USB support
661#
662CONFIG_USB_ARCH_HAS_HCD=y
663CONFIG_USB_ARCH_HAS_OHCI=y
664CONFIG_USB_ARCH_HAS_EHCI=y
665# CONFIG_USB is not set
666
667#
668# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
669#
670
671#
672# USB Gadget Support
673#
674# CONFIG_USB_GADGET is not set
675
676#
677# MMC/SD Card support
678#
679# CONFIG_MMC is not set
680
681#
682# LED devices
683#
684# CONFIG_NEW_LEDS is not set
685
686#
687# LED drivers
688#
689
690#
691# LED Triggers
692#
693
694#
695# InfiniBand support
696#
697# CONFIG_INFINIBAND is not set
698
699#
700# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
701#
702
703#
704# Real Time Clock
705#
706# CONFIG_RTC_CLASS is not set
707
708#
709# DMA Engine support
710#
711# CONFIG_DMA_ENGINE is not set
712
713#
714# DMA Clients
715#
716
717#
718# DMA Devices
719#
720
721#
722# Virtualization
723#
724
725#
726# Misc Linux/SPARC drivers
727#
728CONFIG_SUN_OPENPROMIO=m
729CONFIG_SUN_MOSTEK_RTC=m
730# CONFIG_SUN_BPP is not set
731# CONFIG_SUN_VIDEOPIX is not set
732# CONFIG_TADPOLE_TS102_UCTRL is not set
733# CONFIG_SUN_JSFLASH is not set
734
735#
736# Unix98 PTY support
737#
738CONFIG_UNIX98_PTY_COUNT=256
739
740#
436# File systems 741# File systems
437# 742#
438CONFIG_EXT2_FS=y 743CONFIG_EXT2_FS=y
439CONFIG_EXT2_FS_XATTR=y 744CONFIG_EXT2_FS_XATTR=y
440CONFIG_EXT2_FS_POSIX_ACL=y 745CONFIG_EXT2_FS_POSIX_ACL=y
441CONFIG_EXT2_FS_SECURITY=y 746CONFIG_EXT2_FS_SECURITY=y
747# CONFIG_EXT2_FS_XIP is not set
442# CONFIG_EXT3_FS is not set 748# CONFIG_EXT3_FS is not set
443# CONFIG_JBD is not set 749# CONFIG_EXT4DEV_FS is not set
444CONFIG_FS_MBCACHE=y 750CONFIG_FS_MBCACHE=y
445# CONFIG_REISERFS_FS is not set 751# CONFIG_REISERFS_FS is not set
446# CONFIG_JFS_FS is not set 752# CONFIG_JFS_FS is not set
447CONFIG_FS_POSIX_ACL=y 753CONFIG_FS_POSIX_ACL=y
448CONFIG_XFS_FS=m 754CONFIG_XFS_FS=m
449CONFIG_XFS_RT=y
450CONFIG_XFS_QUOTA=y 755CONFIG_XFS_QUOTA=y
451CONFIG_XFS_SECURITY=y 756CONFIG_XFS_SECURITY=y
452CONFIG_XFS_POSIX_ACL=y 757CONFIG_XFS_POSIX_ACL=y
758CONFIG_XFS_RT=y
759# CONFIG_GFS2_FS is not set
760# CONFIG_OCFS2_FS is not set
453# CONFIG_MINIX_FS is not set 761# CONFIG_MINIX_FS is not set
454CONFIG_ROMFS_FS=m 762CONFIG_ROMFS_FS=m
763CONFIG_INOTIFY=y
764CONFIG_INOTIFY_USER=y
455# CONFIG_QUOTA is not set 765# CONFIG_QUOTA is not set
456CONFIG_QUOTACTL=y 766CONFIG_QUOTACTL=y
767CONFIG_DNOTIFY=y
457CONFIG_AUTOFS_FS=m 768CONFIG_AUTOFS_FS=m
458CONFIG_AUTOFS4_FS=m 769CONFIG_AUTOFS4_FS=m
770# CONFIG_FUSE_FS is not set
459 771
460# 772#
461# CD-ROM/DVD Filesystems 773# CD-ROM/DVD Filesystems
@@ -468,7 +780,8 @@ CONFIG_ISO9660_FS=m
468# 780#
469# DOS/FAT/NT Filesystems 781# DOS/FAT/NT Filesystems
470# 782#
471# CONFIG_FAT_FS is not set 783# CONFIG_MSDOS_FS is not set
784# CONFIG_VFAT_FS is not set
472# CONFIG_NTFS_FS is not set 785# CONFIG_NTFS_FS is not set
473 786
474# 787#
@@ -476,13 +789,12 @@ CONFIG_ISO9660_FS=m
476# 789#
477CONFIG_PROC_FS=y 790CONFIG_PROC_FS=y
478CONFIG_PROC_KCORE=y 791CONFIG_PROC_KCORE=y
792CONFIG_PROC_SYSCTL=y
479CONFIG_SYSFS=y 793CONFIG_SYSFS=y
480# CONFIG_DEVFS_FS is not set
481CONFIG_DEVPTS_FS_XATTR=y
482# CONFIG_DEVPTS_FS_SECURITY is not set
483# CONFIG_TMPFS is not set 794# CONFIG_TMPFS is not set
484# CONFIG_HUGETLB_PAGE is not set 795# CONFIG_HUGETLB_PAGE is not set
485CONFIG_RAMFS=y 796CONFIG_RAMFS=y
797# CONFIG_CONFIGFS_FS is not set
486 798
487# 799#
488# Miscellaneous filesystems 800# Miscellaneous filesystems
@@ -512,17 +824,23 @@ CONFIG_NFS_FS=y
512# CONFIG_NFSD is not set 824# CONFIG_NFSD is not set
513CONFIG_ROOT_NFS=y 825CONFIG_ROOT_NFS=y
514CONFIG_LOCKD=y 826CONFIG_LOCKD=y
515# CONFIG_EXPORTFS is not set 827CONFIG_NFS_COMMON=y
516CONFIG_SUNRPC=y 828CONFIG_SUNRPC=y
517CONFIG_SUNRPC_GSS=m 829CONFIG_SUNRPC_GSS=m
518CONFIG_RPCSEC_GSS_KRB5=m 830CONFIG_RPCSEC_GSS_KRB5=m
831# CONFIG_RPCSEC_GSS_SPKM3 is not set
519# CONFIG_SMB_FS is not set 832# CONFIG_SMB_FS is not set
520CONFIG_CIFS=m 833CONFIG_CIFS=m
521# CONFIG_CIFS_STATS is not set 834# CONFIG_CIFS_STATS is not set
835# CONFIG_CIFS_WEAK_PW_HASH is not set
836# CONFIG_CIFS_XATTR is not set
837# CONFIG_CIFS_DEBUG2 is not set
838# CONFIG_CIFS_EXPERIMENTAL is not set
522# CONFIG_NCP_FS is not set 839# CONFIG_NCP_FS is not set
523# CONFIG_CODA_FS is not set 840# CONFIG_CODA_FS is not set
524CONFIG_AFS_FS=m 841CONFIG_AFS_FS=m
525CONFIG_RXRPC=m 842CONFIG_RXRPC=m
843# CONFIG_9P_FS is not set
526 844
527# 845#
528# Partition Types 846# Partition Types
@@ -559,6 +877,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
559# CONFIG_NLS_ISO8859_8 is not set 877# CONFIG_NLS_ISO8859_8 is not set
560# CONFIG_NLS_CODEPAGE_1250 is not set 878# CONFIG_NLS_CODEPAGE_1250 is not set
561# CONFIG_NLS_CODEPAGE_1251 is not set 879# CONFIG_NLS_CODEPAGE_1251 is not set
880# CONFIG_NLS_ASCII is not set
562# CONFIG_NLS_ISO8859_1 is not set 881# CONFIG_NLS_ISO8859_1 is not set
563# CONFIG_NLS_ISO8859_2 is not set 882# CONFIG_NLS_ISO8859_2 is not set
564# CONFIG_NLS_ISO8859_3 is not set 883# CONFIG_NLS_ISO8859_3 is not set
@@ -575,70 +894,104 @@ CONFIG_NLS_DEFAULT="iso8859-1"
575# CONFIG_NLS_UTF8 is not set 894# CONFIG_NLS_UTF8 is not set
576 895
577# 896#
578# Sound 897# Distributed Lock Manager
579#
580# CONFIG_SOUND is not set
581
582#
583# USB support
584# 898#
585# CONFIG_USB is not set 899# CONFIG_DLM is not set
586
587#
588# USB Gadget Support
589#
590# CONFIG_USB_GADGET is not set
591 900
592# 901#
593# Watchdog Cards 902# Instrumentation Support
594# 903#
595# CONFIG_WATCHDOG is not set 904# CONFIG_PROFILING is not set
596 905
597# 906#
598# Kernel hacking 907# Kernel hacking
599# 908#
909# CONFIG_PRINTK_TIME is not set
910CONFIG_ENABLE_MUST_CHECK=y
911CONFIG_MAGIC_SYSRQ=y
912# CONFIG_UNUSED_SYMBOLS is not set
913# CONFIG_DEBUG_FS is not set
914# CONFIG_HEADERS_CHECK is not set
600CONFIG_DEBUG_KERNEL=y 915CONFIG_DEBUG_KERNEL=y
601# CONFIG_DEBUG_STACK_USAGE is not set 916CONFIG_LOG_BUF_SHIFT=14
917CONFIG_DETECT_SOFTLOCKUP=y
918# CONFIG_SCHEDSTATS is not set
602# CONFIG_DEBUG_SLAB is not set 919# CONFIG_DEBUG_SLAB is not set
603CONFIG_MAGIC_SYSRQ=y 920# CONFIG_DEBUG_RT_MUTEXES is not set
921# CONFIG_RT_MUTEX_TESTER is not set
604# CONFIG_DEBUG_SPINLOCK is not set 922# CONFIG_DEBUG_SPINLOCK is not set
605# CONFIG_DEBUG_HIGHMEM is not set 923# CONFIG_DEBUG_MUTEXES is not set
924# CONFIG_DEBUG_RWSEMS is not set
606# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 925# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
607# CONFIG_DEBUG_BUGVERBOSE is not set 926# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
927# CONFIG_DEBUG_KOBJECT is not set
928# CONFIG_DEBUG_HIGHMEM is not set
929CONFIG_DEBUG_BUGVERBOSE=y
930# CONFIG_DEBUG_INFO is not set
931# CONFIG_DEBUG_VM is not set
932# CONFIG_DEBUG_LIST is not set
933CONFIG_FORCED_INLINING=y
934# CONFIG_RCU_TORTURE_TEST is not set
935# CONFIG_DEBUG_STACK_USAGE is not set
608 936
609# 937#
610# Security options 938# Security options
611# 939#
940# CONFIG_KEYS is not set
612# CONFIG_SECURITY is not set 941# CONFIG_SECURITY is not set
613 942
614# 943#
615# Cryptographic options 944# Cryptographic options
616# 945#
617CONFIG_CRYPTO=y 946CONFIG_CRYPTO=y
947CONFIG_CRYPTO_ALGAPI=y
948CONFIG_CRYPTO_BLKCIPHER=y
949CONFIG_CRYPTO_HASH=y
950CONFIG_CRYPTO_MANAGER=y
618CONFIG_CRYPTO_HMAC=y 951CONFIG_CRYPTO_HMAC=y
952# CONFIG_CRYPTO_XCBC is not set
619CONFIG_CRYPTO_NULL=m 953CONFIG_CRYPTO_NULL=m
620CONFIG_CRYPTO_MD4=y 954CONFIG_CRYPTO_MD4=y
621CONFIG_CRYPTO_MD5=y 955CONFIG_CRYPTO_MD5=y
622CONFIG_CRYPTO_SHA1=y 956CONFIG_CRYPTO_SHA1=y
623CONFIG_CRYPTO_SHA256=m 957CONFIG_CRYPTO_SHA256=m
624CONFIG_CRYPTO_SHA512=m 958CONFIG_CRYPTO_SHA512=m
959# CONFIG_CRYPTO_WP512 is not set
960# CONFIG_CRYPTO_TGR192 is not set
961# CONFIG_CRYPTO_GF128MUL is not set
962CONFIG_CRYPTO_ECB=m
963CONFIG_CRYPTO_CBC=y
964# CONFIG_CRYPTO_LRW is not set
625CONFIG_CRYPTO_DES=y 965CONFIG_CRYPTO_DES=y
626CONFIG_CRYPTO_BLOWFISH=m 966CONFIG_CRYPTO_BLOWFISH=m
627CONFIG_CRYPTO_TWOFISH=m 967CONFIG_CRYPTO_TWOFISH=m
968CONFIG_CRYPTO_TWOFISH_COMMON=m
628CONFIG_CRYPTO_SERPENT=m 969CONFIG_CRYPTO_SERPENT=m
629CONFIG_CRYPTO_AES=m 970CONFIG_CRYPTO_AES=m
630CONFIG_CRYPTO_CAST5=m 971CONFIG_CRYPTO_CAST5=m
631CONFIG_CRYPTO_CAST6=m 972CONFIG_CRYPTO_CAST6=m
973# CONFIG_CRYPTO_TEA is not set
632CONFIG_CRYPTO_ARC4=m 974CONFIG_CRYPTO_ARC4=m
975# CONFIG_CRYPTO_KHAZAD is not set
976# CONFIG_CRYPTO_ANUBIS is not set
633CONFIG_CRYPTO_DEFLATE=y 977CONFIG_CRYPTO_DEFLATE=y
634CONFIG_CRYPTO_MICHAEL_MIC=m 978CONFIG_CRYPTO_MICHAEL_MIC=m
635CONFIG_CRYPTO_CRC32C=m 979CONFIG_CRYPTO_CRC32C=m
636# CONFIG_CRYPTO_TEST is not set 980# CONFIG_CRYPTO_TEST is not set
637 981
638# 982#
983# Hardware crypto devices
984#
985
986#
639# Library routines 987# Library routines
640# 988#
989CONFIG_BITREVERSE=y
990# CONFIG_CRC_CCITT is not set
991# CONFIG_CRC16 is not set
641CONFIG_CRC32=y 992CONFIG_CRC32=y
642CONFIG_LIBCRC32C=m 993CONFIG_LIBCRC32C=m
643CONFIG_ZLIB_INFLATE=y 994CONFIG_ZLIB_INFLATE=y
644CONFIG_ZLIB_DEFLATE=y 995CONFIG_ZLIB_DEFLATE=y
996CONFIG_PLIST=y
997CONFIG_IOMAP_COPY=y
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index 33dadd9f2871..d8e008a04e2b 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -83,9 +83,6 @@ extern int __divdi3(int, int);
83/* Private functions with odd calling conventions. */ 83/* Private functions with odd calling conventions. */
84extern void ___atomic24_add(void); 84extern void ___atomic24_add(void);
85extern void ___atomic24_sub(void); 85extern void ___atomic24_sub(void);
86extern void ___set_bit(void);
87extern void ___clear_bit(void);
88extern void ___change_bit(void);
89extern void ___rw_read_enter(void); 86extern void ___rw_read_enter(void);
90extern void ___rw_read_try(void); 87extern void ___rw_read_try(void);
91extern void ___rw_read_exit(void); 88extern void ___rw_read_exit(void);
@@ -125,11 +122,6 @@ EXPORT_SYMBOL(pfn_base);
125EXPORT_SYMBOL(___atomic24_add); 122EXPORT_SYMBOL(___atomic24_add);
126EXPORT_SYMBOL(___atomic24_sub); 123EXPORT_SYMBOL(___atomic24_sub);
127 124
128/* Bit operations. */
129EXPORT_SYMBOL(___set_bit);
130EXPORT_SYMBOL(___clear_bit);
131EXPORT_SYMBOL(___change_bit);
132
133/* Per-CPU information table */ 125/* Per-CPU information table */
134EXPORT_PER_CPU_SYMBOL(__cpu_data); 126EXPORT_PER_CPU_SYMBOL(__cpu_data);
135 127
diff --git a/arch/sparc/kernel/time.c b/arch/sparc/kernel/time.c
index 6c7aa51b590f..2fcce000d877 100644
--- a/arch/sparc/kernel/time.c
+++ b/arch/sparc/kernel/time.c
@@ -78,7 +78,6 @@ unsigned long profile_pc(struct pt_regs *regs)
78 extern char __copy_user_begin[], __copy_user_end[]; 78 extern char __copy_user_begin[], __copy_user_end[];
79 extern char __atomic_begin[], __atomic_end[]; 79 extern char __atomic_begin[], __atomic_end[];
80 extern char __bzero_begin[], __bzero_end[]; 80 extern char __bzero_begin[], __bzero_end[];
81 extern char __bitops_begin[], __bitops_end[];
82 81
83 unsigned long pc = regs->pc; 82 unsigned long pc = regs->pc;
84 83
@@ -88,9 +87,7 @@ unsigned long profile_pc(struct pt_regs *regs)
88 (pc >= (unsigned long) __atomic_begin && 87 (pc >= (unsigned long) __atomic_begin &&
89 pc < (unsigned long) __atomic_end) || 88 pc < (unsigned long) __atomic_end) ||
90 (pc >= (unsigned long) __bzero_begin && 89 (pc >= (unsigned long) __bzero_begin &&
91 pc < (unsigned long) __bzero_end) || 90 pc < (unsigned long) __bzero_end))
92 (pc >= (unsigned long) __bitops_begin &&
93 pc < (unsigned long) __bitops_end))
94 pc = regs->u_regs[UREG_RETPC]; 91 pc = regs->u_regs[UREG_RETPC];
95 return pc; 92 return pc;
96} 93}
diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
index 5db7e1d85385..9ddc5b9ce3bd 100644
--- a/arch/sparc/lib/Makefile
+++ b/arch/sparc/lib/Makefile
@@ -7,7 +7,7 @@ EXTRA_AFLAGS := -ansi -DST_DIV0=0x02
7lib-y := mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \ 7lib-y := mul.o rem.o sdiv.o udiv.o umul.o urem.o ashrdi3.o memcpy.o memset.o \
8 strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \ 8 strlen.o checksum.o blockops.o memscan.o memcmp.o strncmp.o \
9 strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \ 9 strncpy_from_user.o divdi3.o udivdi3.o strlen_user.o \
10 copy_user.o locks.o atomic.o atomic32.o bitops.o \ 10 copy_user.o locks.o atomic.o \
11 lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o 11 lshrdi3.o ashldi3.o rwsem.o muldi3.o bitext.o
12 12
13obj-y += iomap.o 13obj-y += iomap.o atomic32.o
diff --git a/arch/sparc/lib/atomic32.c b/arch/sparc/lib/atomic32.c
index de84f8534bac..53ddcd9d1e60 100644
--- a/arch/sparc/lib/atomic32.c
+++ b/arch/sparc/lib/atomic32.c
@@ -76,3 +76,42 @@ void atomic_set(atomic_t *v, int i)
76 spin_unlock_irqrestore(ATOMIC_HASH(v), flags); 76 spin_unlock_irqrestore(ATOMIC_HASH(v), flags);
77} 77}
78EXPORT_SYMBOL(atomic_set); 78EXPORT_SYMBOL(atomic_set);
79
80unsigned long ___set_bit(unsigned long *addr, unsigned long mask)
81{
82 unsigned long old, flags;
83
84 spin_lock_irqsave(ATOMIC_HASH(addr), flags);
85 old = *addr;
86 *addr = old | mask;
87 spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
88
89 return old & mask;
90}
91EXPORT_SYMBOL(___set_bit);
92
93unsigned long ___clear_bit(unsigned long *addr, unsigned long mask)
94{
95 unsigned long old, flags;
96
97 spin_lock_irqsave(ATOMIC_HASH(addr), flags);
98 old = *addr;
99 *addr = old & ~mask;
100 spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
101
102 return old & mask;
103}
104EXPORT_SYMBOL(___clear_bit);
105
106unsigned long ___change_bit(unsigned long *addr, unsigned long mask)
107{
108 unsigned long old, flags;
109
110 spin_lock_irqsave(ATOMIC_HASH(addr), flags);
111 old = *addr;
112 *addr = old ^ mask;
113 spin_unlock_irqrestore(ATOMIC_HASH(addr), flags);
114
115 return old & mask;
116}
117EXPORT_SYMBOL(___change_bit);
diff --git a/arch/sparc/lib/bitops.S b/arch/sparc/lib/bitops.S
deleted file mode 100644
index cb7fb66a40c8..000000000000
--- a/arch/sparc/lib/bitops.S
+++ /dev/null
@@ -1,109 +0,0 @@
1/* bitops.S: Low level assembler bit operations.
2 *
3 * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
4 */
5
6#include <asm/ptrace.h>
7#include <asm/psr.h>
8
9 .text
10 .align 4
11
12 .globl __bitops_begin
13__bitops_begin:
14
15 /* Take bits in %g2 and set them in word at %g1,
16 * return whether bits were set in original value
17 * in %g2. %g4 holds value to restore into %o7
18 * in delay slot of jmpl return, %g3 + %g5 + %g7 can be
19 * used as temporaries and thus is considered clobbered
20 * by all callers.
21 */
22 .globl ___set_bit
23___set_bit:
24 rd %psr, %g3
25 nop; nop; nop;
26 or %g3, PSR_PIL, %g5
27 wr %g5, 0x0, %psr
28 nop; nop; nop
29#ifdef CONFIG_SMP
30 set bitops_spinlock, %g5
312: ldstub [%g5], %g7 ! Spin on the byte lock for SMP.
32 orcc %g7, 0x0, %g0 ! Did we get it?
33 bne 2b ! Nope...
34#endif
35 ld [%g1], %g7
36 or %g7, %g2, %g5
37 and %g7, %g2, %g2
38#ifdef CONFIG_SMP
39 st %g5, [%g1]
40 set bitops_spinlock, %g5
41 stb %g0, [%g5]
42#else
43 st %g5, [%g1]
44#endif
45 wr %g3, 0x0, %psr
46 nop; nop; nop
47 jmpl %o7, %g0
48 mov %g4, %o7
49
50 /* Same as above, but clears the bits from %g2 instead. */
51 .globl ___clear_bit
52___clear_bit:
53 rd %psr, %g3
54 nop; nop; nop
55 or %g3, PSR_PIL, %g5
56 wr %g5, 0x0, %psr
57 nop; nop; nop
58#ifdef CONFIG_SMP
59 set bitops_spinlock, %g5
602: ldstub [%g5], %g7 ! Spin on the byte lock for SMP.
61 orcc %g7, 0x0, %g0 ! Did we get it?
62 bne 2b ! Nope...
63#endif
64 ld [%g1], %g7
65 andn %g7, %g2, %g5
66 and %g7, %g2, %g2
67#ifdef CONFIG_SMP
68 st %g5, [%g1]
69 set bitops_spinlock, %g5
70 stb %g0, [%g5]
71#else
72 st %g5, [%g1]
73#endif
74 wr %g3, 0x0, %psr
75 nop; nop; nop
76 jmpl %o7, %g0
77 mov %g4, %o7
78
79 /* Same thing again, but this time toggles the bits from %g2. */
80 .globl ___change_bit
81___change_bit:
82 rd %psr, %g3
83 nop; nop; nop
84 or %g3, PSR_PIL, %g5
85 wr %g5, 0x0, %psr
86 nop; nop; nop
87#ifdef CONFIG_SMP
88 set bitops_spinlock, %g5
892: ldstub [%g5], %g7 ! Spin on the byte lock for SMP.
90 orcc %g7, 0x0, %g0 ! Did we get it?
91 bne 2b ! Nope...
92#endif
93 ld [%g1], %g7
94 xor %g7, %g2, %g5
95 and %g7, %g2, %g2
96#ifdef CONFIG_SMP
97 st %g5, [%g1]
98 set bitops_spinlock, %g5
99 stb %g0, [%g5]
100#else
101 st %g5, [%g1]
102#endif
103 wr %g3, 0x0, %psr
104 nop; nop; nop
105 jmpl %o7, %g0
106 mov %g4, %o7
107
108 .globl __bitops_end
109__bitops_end:
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 03ffaf895a22..baea10a98196 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -78,11 +78,7 @@ sparc_ramdisk_image64:
78 78
79 /* PROM cif handler code address is in %o4. */ 79 /* PROM cif handler code address is in %o4. */
80sparc64_boot: 80sparc64_boot:
811: rd %pc, %g7 81 mov %o4, %l7
82 set 1b, %g1
83 cmp %g1, %g7
84 be,pn %xcc, sparc64_boot_after_remap
85 mov %o4, %l7
86 82
87 /* We need to remap the kernel. Use position independant 83 /* We need to remap the kernel. Use position independant
88 * code to remap us to KERNBASE. 84 * code to remap us to KERNBASE.
@@ -295,7 +291,6 @@ is_sun4v:
295 291
296 add %sp, (192 + 128), %sp 292 add %sp, (192 + 128), %sp
297 293
298sparc64_boot_after_remap:
299 sethi %hi(prom_root_compatible), %g1 294 sethi %hi(prom_root_compatible), %g1
300 or %g1, %lo(prom_root_compatible), %g1 295 or %g1, %lo(prom_root_compatible), %g1
301 sethi %hi(prom_sun4v_name), %g7 296 sethi %hi(prom_sun4v_name), %g7
diff --git a/arch/sparc64/kernel/irq.c b/arch/sparc64/kernel/irq.c
index d64b1ea848de..c3d068c7a412 100644
--- a/arch/sparc64/kernel/irq.c
+++ b/arch/sparc64/kernel/irq.c
@@ -372,14 +372,14 @@ static void run_pre_handler(unsigned int virt_irq)
372 } 372 }
373} 373}
374 374
375static struct hw_interrupt_type sun4u_irq = { 375static struct irq_chip sun4u_irq = {
376 .typename = "sun4u", 376 .typename = "sun4u",
377 .enable = sun4u_irq_enable, 377 .enable = sun4u_irq_enable,
378 .disable = sun4u_irq_disable, 378 .disable = sun4u_irq_disable,
379 .end = sun4u_irq_end, 379 .end = sun4u_irq_end,
380}; 380};
381 381
382static struct hw_interrupt_type sun4u_irq_ack = { 382static struct irq_chip sun4u_irq_ack = {
383 .typename = "sun4u+ack", 383 .typename = "sun4u+ack",
384 .enable = sun4u_irq_enable, 384 .enable = sun4u_irq_enable,
385 .disable = sun4u_irq_disable, 385 .disable = sun4u_irq_disable,
@@ -387,14 +387,14 @@ static struct hw_interrupt_type sun4u_irq_ack = {
387 .end = sun4u_irq_end, 387 .end = sun4u_irq_end,
388}; 388};
389 389
390static struct hw_interrupt_type sun4v_irq = { 390static struct irq_chip sun4v_irq = {
391 .typename = "sun4v", 391 .typename = "sun4v",
392 .enable = sun4v_irq_enable, 392 .enable = sun4v_irq_enable,
393 .disable = sun4v_irq_disable, 393 .disable = sun4v_irq_disable,
394 .end = sun4v_irq_end, 394 .end = sun4v_irq_end,
395}; 395};
396 396
397static struct hw_interrupt_type sun4v_irq_ack = { 397static struct irq_chip sun4v_irq_ack = {
398 .typename = "sun4v+ack", 398 .typename = "sun4v+ack",
399 .enable = sun4v_irq_enable, 399 .enable = sun4v_irq_enable,
400 .disable = sun4v_irq_disable, 400 .disable = sun4v_irq_disable,
@@ -493,22 +493,6 @@ out:
493 return bucket->virt_irq; 493 return bucket->virt_irq;
494} 494}
495 495
496void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq)
497{
498 struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq);
499 unsigned long pstate;
500 unsigned int *ent;
501
502 __asm__ __volatile__("rdpr %%pstate, %0" : "=r" (pstate));
503 __asm__ __volatile__("wrpr %0, %1, %%pstate"
504 : : "r" (pstate), "i" (PSTATE_IE));
505 ent = irq_work(smp_processor_id());
506 bucket->irq_chain = *ent;
507 *ent = __irq(bucket);
508 set_softint(1 << PIL_DEVICE_IRQ);
509 __asm__ __volatile__("wrpr %0, 0x0, %%pstate" : : "r" (pstate));
510}
511
512void ack_bad_irq(unsigned int virt_irq) 496void ack_bad_irq(unsigned int virt_irq)
513{ 497{
514 struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq); 498 struct ino_bucket *bucket = virt_irq_to_bucket(virt_irq);
diff --git a/arch/sparc64/kernel/smp.c b/arch/sparc64/kernel/smp.c
index cc09d8266414..0a4958536bcd 100644
--- a/arch/sparc64/kernel/smp.c
+++ b/arch/sparc64/kernel/smp.c
@@ -1447,11 +1447,8 @@ void __init setup_per_cpu_areas(void)
1447 char *ptr; 1447 char *ptr;
1448 1448
1449 /* Copy section for each CPU (we discard the original) */ 1449 /* Copy section for each CPU (we discard the original) */
1450 goal = ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES); 1450 goal = PERCPU_ENOUGH_ROOM;
1451#ifdef CONFIG_MODULES 1451
1452 if (goal < PERCPU_ENOUGH_ROOM)
1453 goal = PERCPU_ENOUGH_ROOM;
1454#endif
1455 __per_cpu_shift = 0; 1452 __per_cpu_shift = 0;
1456 for (size = 1UL; size < goal; size <<= 1UL) 1453 for (size = 1UL; size < goal; size <<= 1UL)
1457 __per_cpu_shift++; 1454 __per_cpu_shift++;
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
index 0bbb04f2390f..6dcdceb81203 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
@@ -561,8 +561,7 @@ struct drm_driver {
561 int (*context_dtor) (struct drm_device * dev, int context); 561 int (*context_dtor) (struct drm_device * dev, int context);
562 int (*kernel_context_switch) (struct drm_device * dev, int old, 562 int (*kernel_context_switch) (struct drm_device * dev, int old,
563 int new); 563 int new);
564 void (*kernel_context_switch_unlock) (struct drm_device * dev, 564 void (*kernel_context_switch_unlock) (struct drm_device * dev);
565 drm_lock_t *lock);
566 int (*vblank_wait) (struct drm_device * dev, unsigned int *sequence); 565 int (*vblank_wait) (struct drm_device * dev, unsigned int *sequence);
567 int (*vblank_wait2) (struct drm_device * dev, unsigned int *sequence); 566 int (*vblank_wait2) (struct drm_device * dev, unsigned int *sequence);
568 int (*dri_library_name) (struct drm_device *dev, char *buf); 567 int (*dri_library_name) (struct drm_device *dev, char *buf);
@@ -1143,9 +1142,5 @@ extern void *drm_calloc(size_t nmemb, size_t size, int area);
1143extern unsigned long drm_core_get_map_ofs(drm_map_t * map); 1142extern unsigned long drm_core_get_map_ofs(drm_map_t * map);
1144extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev); 1143extern unsigned long drm_core_get_reg_ofs(struct drm_device *dev);
1145 1144
1146#ifndef pci_pretty_name
1147#define pci_pretty_name(dev) ""
1148#endif
1149
1150#endif /* __KERNEL__ */ 1145#endif /* __KERNEL__ */
1151#endif 1146#endif
diff --git a/drivers/char/drm/drm_lock.c b/drivers/char/drm/drm_lock.c
index 116ed0f2ac09..e9993ba461a2 100644
--- a/drivers/char/drm/drm_lock.c
+++ b/drivers/char/drm/drm_lock.c
@@ -182,7 +182,7 @@ int drm_unlock(struct inode *inode, struct file *filp,
182 * modules but is required by the Sparc driver. 182 * modules but is required by the Sparc driver.
183 */ 183 */
184 if (dev->driver->kernel_context_switch_unlock) 184 if (dev->driver->kernel_context_switch_unlock)
185 dev->driver->kernel_context_switch_unlock(dev, &lock); 185 dev->driver->kernel_context_switch_unlock(dev);
186 else { 186 else {
187 drm_lock_transfer(dev, &dev->lock.hw_lock->lock, 187 drm_lock_transfer(dev, &dev->lock.hw_lock->lock,
188 DRM_KERNEL_CONTEXT); 188 DRM_KERNEL_CONTEXT);
diff --git a/drivers/char/drm/drm_stub.c b/drivers/char/drm/drm_stub.c
index 5fd6dc0870cf..120d10256feb 100644
--- a/drivers/char/drm/drm_stub.c
+++ b/drivers/char/drm/drm_stub.c
@@ -211,14 +211,16 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
211 if (!dev) 211 if (!dev)
212 return -ENOMEM; 212 return -ENOMEM;
213 213
214 pci_enable_device(pdev); 214 ret = pci_enable_device(pdev);
215 if (ret)
216 goto err_g1;
215 217
216 if ((ret = drm_fill_in_dev(dev, pdev, ent, driver))) { 218 if ((ret = drm_fill_in_dev(dev, pdev, ent, driver))) {
217 printk(KERN_ERR "DRM: Fill_in_dev failed.\n"); 219 printk(KERN_ERR "DRM: Fill_in_dev failed.\n");
218 goto err_g1; 220 goto err_g2;
219 } 221 }
220 if ((ret = drm_get_head(dev, &dev->primary))) 222 if ((ret = drm_get_head(dev, &dev->primary)))
221 goto err_g1; 223 goto err_g2;
222 224
223 DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n", 225 DRM_INFO("Initialized %s %d.%d.%d %s on minor %d\n",
224 driver->name, driver->major, driver->minor, driver->patchlevel, 226 driver->name, driver->major, driver->minor, driver->patchlevel,
@@ -226,7 +228,9 @@ int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
226 228
227 return 0; 229 return 0;
228 230
229 err_g1: 231err_g2:
232 pci_disable_device(pdev);
233err_g1:
230 drm_free(dev, sizeof(*dev), DRM_MEM_STUB); 234 drm_free(dev, sizeof(*dev), DRM_MEM_STUB);
231 return ret; 235 return ret;
232} 236}
diff --git a/drivers/char/drm/drm_sysfs.c b/drivers/char/drm/drm_sysfs.c
index ba4b8de83cf0..cc8e2ebe128c 100644
--- a/drivers/char/drm/drm_sysfs.c
+++ b/drivers/char/drm/drm_sysfs.c
@@ -45,8 +45,8 @@ struct class *drm_sysfs_create(struct module *owner, char *name)
45 int err; 45 int err;
46 46
47 class = class_create(owner, name); 47 class = class_create(owner, name);
48 if (!class) { 48 if (IS_ERR(class)) {
49 err = -ENOMEM; 49 err = PTR_ERR(class);
50 goto err_out; 50 goto err_out;
51 } 51 }
52 52
@@ -113,8 +113,8 @@ struct class_device *drm_sysfs_device_add(struct class *cs, drm_head_t *head)
113 MKDEV(DRM_MAJOR, head->minor), 113 MKDEV(DRM_MAJOR, head->minor),
114 &(head->dev->pdev)->dev, 114 &(head->dev->pdev)->dev,
115 "card%d", head->minor); 115 "card%d", head->minor);
116 if (!class_dev) { 116 if (IS_ERR(class_dev)) {
117 err = -ENOMEM; 117 err = PTR_ERR(class_dev);
118 goto err_out; 118 goto err_out;
119 } 119 }
120 120
diff --git a/drivers/char/drm/i915_irq.c b/drivers/char/drm/i915_irq.c
index e5463b111fc0..e2c4b3a41b1e 100644
--- a/drivers/char/drm/i915_irq.c
+++ b/drivers/char/drm/i915_irq.c
@@ -46,88 +46,167 @@ static void i915_vblank_tasklet(drm_device_t *dev)
46{ 46{
47 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private; 47 drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
48 unsigned long irqflags; 48 unsigned long irqflags;
49 struct list_head *list, *tmp; 49 struct list_head *list, *tmp, hits, *hit;
50 int nhits, nrects, slice[2], upper[2], lower[2], i;
51 unsigned counter[2] = { atomic_read(&dev->vbl_received),
52 atomic_read(&dev->vbl_received2) };
53 drm_drawable_info_t *drw;
54 drm_i915_sarea_t *sarea_priv = dev_priv->sarea_priv;
55 u32 cpp = dev_priv->cpp;
56 u32 cmd = (cpp == 4) ? (XY_SRC_COPY_BLT_CMD |
57 XY_SRC_COPY_BLT_WRITE_ALPHA |
58 XY_SRC_COPY_BLT_WRITE_RGB)
59 : XY_SRC_COPY_BLT_CMD;
60 u32 pitchropcpp = (sarea_priv->pitch * cpp) | (0xcc << 16) |
61 (cpp << 23) | (1 << 24);
62 RING_LOCALS;
50 63
51 DRM_DEBUG("\n"); 64 DRM_DEBUG("\n");
52 65
66 INIT_LIST_HEAD(&hits);
67
68 nhits = nrects = 0;
69
53 spin_lock_irqsave(&dev_priv->swaps_lock, irqflags); 70 spin_lock_irqsave(&dev_priv->swaps_lock, irqflags);
54 71
72 /* Find buffer swaps scheduled for this vertical blank */
55 list_for_each_safe(list, tmp, &dev_priv->vbl_swaps.head) { 73 list_for_each_safe(list, tmp, &dev_priv->vbl_swaps.head) {
56 drm_i915_vbl_swap_t *vbl_swap = 74 drm_i915_vbl_swap_t *vbl_swap =
57 list_entry(list, drm_i915_vbl_swap_t, head); 75 list_entry(list, drm_i915_vbl_swap_t, head);
58 atomic_t *counter = vbl_swap->pipe ? &dev->vbl_received2 :
59 &dev->vbl_received;
60
61 if ((atomic_read(counter) - vbl_swap->sequence) <= (1<<23)) {
62 drm_drawable_info_t *drw;
63
64 spin_unlock(&dev_priv->swaps_lock);
65
66 spin_lock(&dev->drw_lock);
67
68 drw = drm_get_drawable_info(dev, vbl_swap->drw_id);
69
70 if (drw) {
71 int i, num_rects = drw->num_rects;
72 drm_clip_rect_t *rect = drw->rects;
73 drm_i915_sarea_t *sarea_priv =
74 dev_priv->sarea_priv;
75 u32 cpp = dev_priv->cpp;
76 u32 cmd = (cpp == 4) ? (XY_SRC_COPY_BLT_CMD |
77 XY_SRC_COPY_BLT_WRITE_ALPHA |
78 XY_SRC_COPY_BLT_WRITE_RGB)
79 : XY_SRC_COPY_BLT_CMD;
80 u32 pitchropcpp = (sarea_priv->pitch * cpp) |
81 (0xcc << 16) | (cpp << 23) |
82 (1 << 24);
83 RING_LOCALS;
84
85 i915_kernel_lost_context(dev);
86
87 BEGIN_LP_RING(6);
88
89 OUT_RING(GFX_OP_DRAWRECT_INFO);
90 OUT_RING(0);
91 OUT_RING(0);
92 OUT_RING(sarea_priv->width |
93 sarea_priv->height << 16);
94 OUT_RING(sarea_priv->width |
95 sarea_priv->height << 16);
96 OUT_RING(0);
97 76
98 ADVANCE_LP_RING(); 77 if ((counter[vbl_swap->pipe] - vbl_swap->sequence) > (1<<23))
78 continue;
79
80 list_del(list);
81 dev_priv->swaps_pending--;
99 82
100 sarea_priv->ctxOwner = DRM_KERNEL_CONTEXT; 83 spin_unlock(&dev_priv->swaps_lock);
84 spin_lock(&dev->drw_lock);
101 85
102 for (i = 0; i < num_rects; i++, rect++) { 86 drw = drm_get_drawable_info(dev, vbl_swap->drw_id);
103 BEGIN_LP_RING(8); 87
88 if (!drw) {
89 spin_unlock(&dev->drw_lock);
90 drm_free(vbl_swap, sizeof(*vbl_swap), DRM_MEM_DRIVER);
91 spin_lock(&dev_priv->swaps_lock);
92 continue;
93 }
104 94
105 OUT_RING(cmd); 95 list_for_each(hit, &hits) {
106 OUT_RING(pitchropcpp); 96 drm_i915_vbl_swap_t *swap_cmp =
107 OUT_RING((rect->y1 << 16) | rect->x1); 97 list_entry(hit, drm_i915_vbl_swap_t, head);
108 OUT_RING((rect->y2 << 16) | rect->x2); 98 drm_drawable_info_t *drw_cmp =
109 OUT_RING(sarea_priv->front_offset); 99 drm_get_drawable_info(dev, swap_cmp->drw_id);
110 OUT_RING((rect->y1 << 16) | rect->x1);
111 OUT_RING(pitchropcpp & 0xffff);
112 OUT_RING(sarea_priv->back_offset);
113 100
114 ADVANCE_LP_RING(); 101 if (drw_cmp &&
115 } 102 drw_cmp->rects[0].y1 > drw->rects[0].y1) {
103 list_add_tail(list, hit);
104 break;
116 } 105 }
106 }
117 107
118 spin_unlock(&dev->drw_lock); 108 spin_unlock(&dev->drw_lock);
119 109
120 spin_lock(&dev_priv->swaps_lock); 110 /* List of hits was empty, or we reached the end of it */
111 if (hit == &hits)
112 list_add_tail(list, hits.prev);
121 113
122 list_del(list); 114 nhits++;
123 115
124 drm_free(vbl_swap, sizeof(*vbl_swap), DRM_MEM_DRIVER); 116 spin_lock(&dev_priv->swaps_lock);
117 }
118
119 if (nhits == 0) {
120 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags);
121 return;
122 }
123
124 spin_unlock(&dev_priv->swaps_lock);
125 125
126 dev_priv->swaps_pending--; 126 i915_kernel_lost_context(dev);
127
128 BEGIN_LP_RING(6);
129
130 OUT_RING(GFX_OP_DRAWRECT_INFO);
131 OUT_RING(0);
132 OUT_RING(0);
133 OUT_RING(sarea_priv->width | sarea_priv->height << 16);
134 OUT_RING(sarea_priv->width | sarea_priv->height << 16);
135 OUT_RING(0);
136
137 ADVANCE_LP_RING();
138
139 sarea_priv->ctxOwner = DRM_KERNEL_CONTEXT;
140
141 upper[0] = upper[1] = 0;
142 slice[0] = max(sarea_priv->pipeA_h / nhits, 1);
143 slice[1] = max(sarea_priv->pipeB_h / nhits, 1);
144 lower[0] = sarea_priv->pipeA_y + slice[0];
145 lower[1] = sarea_priv->pipeB_y + slice[0];
146
147 spin_lock(&dev->drw_lock);
148
149 /* Emit blits for buffer swaps, partitioning both outputs into as many
150 * slices as there are buffer swaps scheduled in order to avoid tearing
151 * (based on the assumption that a single buffer swap would always
152 * complete before scanout starts).
153 */
154 for (i = 0; i++ < nhits;
155 upper[0] = lower[0], lower[0] += slice[0],
156 upper[1] = lower[1], lower[1] += slice[1]) {
157 if (i == nhits)
158 lower[0] = lower[1] = sarea_priv->height;
159
160 list_for_each(hit, &hits) {
161 drm_i915_vbl_swap_t *swap_hit =
162 list_entry(hit, drm_i915_vbl_swap_t, head);
163 drm_clip_rect_t *rect;
164 int num_rects, pipe;
165 unsigned short top, bottom;
166
167 drw = drm_get_drawable_info(dev, swap_hit->drw_id);
168
169 if (!drw)
170 continue;
171
172 rect = drw->rects;
173 pipe = swap_hit->pipe;
174 top = upper[pipe];
175 bottom = lower[pipe];
176
177 for (num_rects = drw->num_rects; num_rects--; rect++) {
178 int y1 = max(rect->y1, top);
179 int y2 = min(rect->y2, bottom);
180
181 if (y1 >= y2)
182 continue;
183
184 BEGIN_LP_RING(8);
185
186 OUT_RING(cmd);
187 OUT_RING(pitchropcpp);
188 OUT_RING((y1 << 16) | rect->x1);
189 OUT_RING((y2 << 16) | rect->x2);
190 OUT_RING(sarea_priv->front_offset);
191 OUT_RING((y1 << 16) | rect->x1);
192 OUT_RING(pitchropcpp & 0xffff);
193 OUT_RING(sarea_priv->back_offset);
194
195 ADVANCE_LP_RING();
196 }
127 } 197 }
128 } 198 }
129 199
130 spin_unlock_irqrestore(&dev_priv->swaps_lock, irqflags); 200 spin_unlock_irqrestore(&dev->drw_lock, irqflags);
201
202 list_for_each_safe(hit, tmp, &hits) {
203 drm_i915_vbl_swap_t *swap_hit =
204 list_entry(hit, drm_i915_vbl_swap_t, head);
205
206 list_del(hit);
207
208 drm_free(swap_hit, sizeof(*swap_hit), DRM_MEM_DRIVER);
209 }
131} 210}
132 211
133irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS) 212irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
diff --git a/drivers/char/drm/r128_drm.h b/drivers/char/drm/r128_drm.h
index 5d835b006f55..6e8af313f2b4 100644
--- a/drivers/char/drm/r128_drm.h
+++ b/drivers/char/drm/r128_drm.h
@@ -1,7 +1,8 @@
1/* r128_drm.h -- Public header for the r128 driver -*- linux-c -*- 1/* r128_drm.h -- Public header for the r128 driver -*- linux-c -*-
2 * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com 2 * Created: Wed Apr 5 19:24:19 2000 by kevin@precisioninsight.com
3 */ 3 */
4/* Copyright 2000 Precision Insight, Inc., Cedar Park, Texas. 4/*
5 * Copyright 2000 Precision Insight, Inc., Cedar Park, Texas.
5 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. 6 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6 * All rights reserved. 7 * All rights reserved.
7 * 8 *
diff --git a/drivers/char/drm/r128_drv.h b/drivers/char/drm/r128_drv.h
index 94abffb2cca5..f1efb49de8df 100644
--- a/drivers/char/drm/r128_drv.h
+++ b/drivers/char/drm/r128_drv.h
@@ -1,7 +1,8 @@
1/* r128_drv.h -- Private header for r128 driver -*- linux-c -*- 1/* r128_drv.h -- Private header for r128 driver -*- linux-c -*-
2 * Created: Mon Dec 13 09:51:11 1999 by faith@precisioninsight.com 2 * Created: Mon Dec 13 09:51:11 1999 by faith@precisioninsight.com
3 */ 3 */
4/* Copyright 1999 Precision Insight, Inc., Cedar Park, Texas. 4/*
5 * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
5 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. 6 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
6 * All rights reserved. 7 * All rights reserved.
7 * 8 *
diff --git a/drivers/char/drm/r128_state.c b/drivers/char/drm/r128_state.c
index a080cdd6081e..17b11e7d8f32 100644
--- a/drivers/char/drm/r128_state.c
+++ b/drivers/char/drm/r128_state.c
@@ -1,7 +1,8 @@
1/* r128_state.c -- State support for r128 -*- linux-c -*- 1/* r128_state.c -- State support for r128 -*- linux-c -*-
2 * Created: Thu Jan 27 02:53:43 2000 by gareth@valinux.com 2 * Created: Thu Jan 27 02:53:43 2000 by gareth@valinux.com
3 */ 3 */
4/* Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California. 4/*
5 * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
5 * All Rights Reserved. 6 * All Rights Reserved.
6 * 7 *
7 * Permission is hereby granted, free of charge, to any person obtaining a 8 * Permission is hereby granted, free of charge, to any person obtaining a
diff --git a/drivers/char/drm/r300_cmdbuf.c b/drivers/char/drm/r300_cmdbuf.c
index d14477ba3679..032a022ec6a8 100644
--- a/drivers/char/drm/r300_cmdbuf.c
+++ b/drivers/char/drm/r300_cmdbuf.c
@@ -242,26 +242,6 @@ static __inline__ int r300_check_range(unsigned reg, int count)
242 return 0; 242 return 0;
243} 243}
244 244
245/*
246 * we expect offsets passed to the framebuffer to be either within video
247 * memory or within AGP space
248 */
249static __inline__ int r300_check_offset(drm_radeon_private_t *dev_priv,
250 u32 offset)
251{
252 /* we realy want to check against end of video aperture
253 but this value is not being kept.
254 This code is correct for now (does the same thing as the
255 code that sets MC_FB_LOCATION) in radeon_cp.c */
256 if (offset >= dev_priv->fb_location &&
257 offset < (dev_priv->fb_location + dev_priv->fb_size))
258 return 0;
259 if (offset >= dev_priv->gart_vm_start &&
260 offset < (dev_priv->gart_vm_start + dev_priv->gart_size))
261 return 0;
262 return 1;
263}
264
265static __inline__ int r300_emit_carefully_checked_packet0(drm_radeon_private_t * 245static __inline__ int r300_emit_carefully_checked_packet0(drm_radeon_private_t *
266 dev_priv, 246 dev_priv,
267 drm_radeon_kcmd_buffer_t 247 drm_radeon_kcmd_buffer_t
@@ -290,7 +270,7 @@ static __inline__ int r300_emit_carefully_checked_packet0(drm_radeon_private_t *
290 case MARK_SAFE: 270 case MARK_SAFE:
291 break; 271 break;
292 case MARK_CHECK_OFFSET: 272 case MARK_CHECK_OFFSET:
293 if (r300_check_offset(dev_priv, (u32) values[i])) { 273 if (!radeon_check_offset(dev_priv, (u32) values[i])) {
294 DRM_ERROR 274 DRM_ERROR
295 ("Offset failed range check (reg=%04x sz=%d)\n", 275 ("Offset failed range check (reg=%04x sz=%d)\n",
296 reg, sz); 276 reg, sz);
@@ -452,7 +432,7 @@ static __inline__ int r300_emit_3d_load_vbpntr(drm_radeon_private_t *dev_priv,
452 i = 1; 432 i = 1;
453 while ((k < narrays) && (i < (count + 1))) { 433 while ((k < narrays) && (i < (count + 1))) {
454 i++; /* skip attribute field */ 434 i++; /* skip attribute field */
455 if (r300_check_offset(dev_priv, payload[i])) { 435 if (!radeon_check_offset(dev_priv, payload[i])) {
456 DRM_ERROR 436 DRM_ERROR
457 ("Offset failed range check (k=%d i=%d) while processing 3D_LOAD_VBPNTR packet.\n", 437 ("Offset failed range check (k=%d i=%d) while processing 3D_LOAD_VBPNTR packet.\n",
458 k, i); 438 k, i);
@@ -463,7 +443,7 @@ static __inline__ int r300_emit_3d_load_vbpntr(drm_radeon_private_t *dev_priv,
463 if (k == narrays) 443 if (k == narrays)
464 break; 444 break;
465 /* have one more to process, they come in pairs */ 445 /* have one more to process, they come in pairs */
466 if (r300_check_offset(dev_priv, payload[i])) { 446 if (!radeon_check_offset(dev_priv, payload[i])) {
467 DRM_ERROR 447 DRM_ERROR
468 ("Offset failed range check (k=%d i=%d) while processing 3D_LOAD_VBPNTR packet.\n", 448 ("Offset failed range check (k=%d i=%d) while processing 3D_LOAD_VBPNTR packet.\n",
469 k, i); 449 k, i);
@@ -508,7 +488,7 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv,
508 if (cmd[1] & (RADEON_GMC_SRC_PITCH_OFFSET_CNTL 488 if (cmd[1] & (RADEON_GMC_SRC_PITCH_OFFSET_CNTL
509 | RADEON_GMC_DST_PITCH_OFFSET_CNTL)) { 489 | RADEON_GMC_DST_PITCH_OFFSET_CNTL)) {
510 offset = cmd[2] << 10; 490 offset = cmd[2] << 10;
511 ret = r300_check_offset(dev_priv, offset); 491 ret = !radeon_check_offset(dev_priv, offset);
512 if (ret) { 492 if (ret) {
513 DRM_ERROR("Invalid bitblt first offset is %08X\n", offset); 493 DRM_ERROR("Invalid bitblt first offset is %08X\n", offset);
514 return DRM_ERR(EINVAL); 494 return DRM_ERR(EINVAL);
@@ -518,7 +498,7 @@ static __inline__ int r300_emit_bitblt_multi(drm_radeon_private_t *dev_priv,
518 if ((cmd[1] & RADEON_GMC_SRC_PITCH_OFFSET_CNTL) && 498 if ((cmd[1] & RADEON_GMC_SRC_PITCH_OFFSET_CNTL) &&
519 (cmd[1] & RADEON_GMC_DST_PITCH_OFFSET_CNTL)) { 499 (cmd[1] & RADEON_GMC_DST_PITCH_OFFSET_CNTL)) {
520 offset = cmd[3] << 10; 500 offset = cmd[3] << 10;
521 ret = r300_check_offset(dev_priv, offset); 501 ret = !radeon_check_offset(dev_priv, offset);
522 if (ret) { 502 if (ret) {
523 DRM_ERROR("Invalid bitblt second offset is %08X\n", offset); 503 DRM_ERROR("Invalid bitblt second offset is %08X\n", offset);
524 return DRM_ERR(EINVAL); 504 return DRM_ERR(EINVAL);
@@ -551,7 +531,7 @@ static __inline__ int r300_emit_indx_buffer(drm_radeon_private_t *dev_priv,
551 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]); 531 DRM_ERROR("Invalid indx_buffer reg address %08X\n", cmd[1]);
552 return DRM_ERR(EINVAL); 532 return DRM_ERR(EINVAL);
553 } 533 }
554 ret = r300_check_offset(dev_priv, cmd[2]); 534 ret = !radeon_check_offset(dev_priv, cmd[2]);
555 if (ret) { 535 if (ret) {
556 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]); 536 DRM_ERROR("Invalid indx_buffer offset is %08X\n", cmd[2]);
557 return DRM_ERR(EINVAL); 537 return DRM_ERR(EINVAL);
diff --git a/drivers/char/drm/radeon_drv.h b/drivers/char/drm/radeon_drv.h
index f45cd7f147a5..8b105f1460a7 100644
--- a/drivers/char/drm/radeon_drv.h
+++ b/drivers/char/drm/radeon_drv.h
@@ -303,6 +303,21 @@ extern int radeon_no_wb;
303extern drm_ioctl_desc_t radeon_ioctls[]; 303extern drm_ioctl_desc_t radeon_ioctls[];
304extern int radeon_max_ioctl; 304extern int radeon_max_ioctl;
305 305
306/* Check whether the given hardware address is inside the framebuffer or the
307 * GART area.
308 */
309static __inline__ int radeon_check_offset(drm_radeon_private_t *dev_priv,
310 u64 off)
311{
312 u32 fb_start = dev_priv->fb_location;
313 u32 fb_end = fb_start + dev_priv->fb_size - 1;
314 u32 gart_start = dev_priv->gart_vm_start;
315 u32 gart_end = gart_start + dev_priv->gart_size - 1;
316
317 return ((off >= fb_start && off <= fb_end) ||
318 (off >= gart_start && off <= gart_end));
319}
320
306 /* radeon_cp.c */ 321 /* radeon_cp.c */
307extern int radeon_cp_init(DRM_IOCTL_ARGS); 322extern int radeon_cp_init(DRM_IOCTL_ARGS);
308extern int radeon_cp_start(DRM_IOCTL_ARGS); 323extern int radeon_cp_start(DRM_IOCTL_ARGS);
diff --git a/drivers/char/drm/radeon_irq.c b/drivers/char/drm/radeon_irq.c
index d60519de887b..3ff0baa2fbfa 100644
--- a/drivers/char/drm/radeon_irq.c
+++ b/drivers/char/drm/radeon_irq.c
@@ -1,5 +1,5 @@
1/* radeon_irq.c -- IRQ handling for radeon -*- linux-c -*- 1/* radeon_irq.c -- IRQ handling for radeon -*- linux-c -*- */
2 * 2/*
3 * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved. 3 * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
4 * 4 *
5 * The Weather Channel (TM) funded Tungsten Graphics to develop the 5 * The Weather Channel (TM) funded Tungsten Graphics to develop the
diff --git a/drivers/char/drm/radeon_mem.c b/drivers/char/drm/radeon_mem.c
index 030a6fad0d86..517cad8b6e3a 100644
--- a/drivers/char/drm/radeon_mem.c
+++ b/drivers/char/drm/radeon_mem.c
@@ -1,5 +1,5 @@
1/* radeon_mem.c -- Simple GART/fb memory manager for radeon -*- linux-c -*- 1/* radeon_mem.c -- Simple GART/fb memory manager for radeon -*- linux-c -*- */
2 * 2/*
3 * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved. 3 * Copyright (C) The Weather Channel, Inc. 2002. All Rights Reserved.
4 * 4 *
5 * The Weather Channel (TM) funded Tungsten Graphics to develop the 5 * The Weather Channel (TM) funded Tungsten Graphics to develop the
diff --git a/drivers/char/drm/radeon_state.c b/drivers/char/drm/radeon_state.c
index 6e04fdd732ac..938eccb78cc0 100644
--- a/drivers/char/drm/radeon_state.c
+++ b/drivers/char/drm/radeon_state.c
@@ -43,10 +43,7 @@ static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t *
43 u32 *offset) 43 u32 *offset)
44{ 44{
45 u64 off = *offset; 45 u64 off = *offset;
46 u32 fb_start = dev_priv->fb_location; 46 u32 fb_end = dev_priv->fb_location + dev_priv->fb_size - 1;
47 u32 fb_end = fb_start + dev_priv->fb_size - 1;
48 u32 gart_start = dev_priv->gart_vm_start;
49 u32 gart_end = gart_start + dev_priv->gart_size - 1;
50 struct drm_radeon_driver_file_fields *radeon_priv; 47 struct drm_radeon_driver_file_fields *radeon_priv;
51 48
52 /* Hrm ... the story of the offset ... So this function converts 49 /* Hrm ... the story of the offset ... So this function converts
@@ -66,8 +63,7 @@ static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t *
66 /* First, the best case, the offset already lands in either the 63 /* First, the best case, the offset already lands in either the
67 * framebuffer or the GART mapped space 64 * framebuffer or the GART mapped space
68 */ 65 */
69 if ((off >= fb_start && off <= fb_end) || 66 if (radeon_check_offset(dev_priv, off))
70 (off >= gart_start && off <= gart_end))
71 return 0; 67 return 0;
72 68
73 /* Ok, that didn't happen... now check if we have a zero based 69 /* Ok, that didn't happen... now check if we have a zero based
@@ -81,11 +77,10 @@ static __inline__ int radeon_check_and_fixup_offset(drm_radeon_private_t *
81 77
82 /* Finally, assume we aimed at a GART offset if beyond the fb */ 78 /* Finally, assume we aimed at a GART offset if beyond the fb */
83 if (off > fb_end) 79 if (off > fb_end)
84 off = off - fb_end - 1 + gart_start; 80 off = off - fb_end - 1 + dev_priv->gart_vm_start;
85 81
86 /* Now recheck and fail if out of bounds */ 82 /* Now recheck and fail if out of bounds */
87 if ((off >= fb_start && off <= fb_end) || 83 if (radeon_check_offset(dev_priv, off)) {
88 (off >= gart_start && off <= gart_end)) {
89 DRM_DEBUG("offset fixed up to 0x%x\n", (unsigned int)off); 84 DRM_DEBUG("offset fixed up to 0x%x\n", (unsigned int)off);
90 *offset = off; 85 *offset = off;
91 return 0; 86 return 0;
diff --git a/drivers/char/drm/savage_bci.c b/drivers/char/drm/savage_bci.c
index a9a84f88df5e..b94fab556809 100644
--- a/drivers/char/drm/savage_bci.c
+++ b/drivers/char/drm/savage_bci.c
@@ -963,8 +963,8 @@ static int savage_bci_event_emit(DRM_IOCTL_ARGS)
963 963
964 event.count = savage_bci_emit_event(dev_priv, event.flags); 964 event.count = savage_bci_emit_event(dev_priv, event.flags);
965 event.count |= dev_priv->event_wrap << 16; 965 event.count |= dev_priv->event_wrap << 16;
966 DRM_COPY_TO_USER_IOCTL(&((drm_savage_event_emit_t __user *) data)-> 966 DRM_COPY_TO_USER_IOCTL((drm_savage_event_emit_t __user *) data,
967 count, event.count, sizeof(event.count)); 967 event, sizeof(event));
968 return 0; 968 return 0;
969} 969}
970 970
diff --git a/drivers/connector/cn_queue.c b/drivers/connector/cn_queue.c
index b418b16e910e..296f51002b55 100644
--- a/drivers/connector/cn_queue.c
+++ b/drivers/connector/cn_queue.c
@@ -34,7 +34,7 @@
34void cn_queue_wrapper(struct work_struct *work) 34void cn_queue_wrapper(struct work_struct *work)
35{ 35{
36 struct cn_callback_entry *cbq = 36 struct cn_callback_entry *cbq =
37 container_of(work, struct cn_callback_entry, work.work); 37 container_of(work, struct cn_callback_entry, work);
38 struct cn_callback_data *d = &cbq->data; 38 struct cn_callback_data *d = &cbq->data;
39 39
40 d->callback(d->callback_priv); 40 d->callback(d->callback_priv);
@@ -59,13 +59,12 @@ static struct cn_callback_entry *cn_queue_alloc_callback_entry(char *name, struc
59 memcpy(&cbq->id.id, id, sizeof(struct cb_id)); 59 memcpy(&cbq->id.id, id, sizeof(struct cb_id));
60 cbq->data.callback = callback; 60 cbq->data.callback = callback;
61 61
62 INIT_DELAYED_WORK(&cbq->work, &cn_queue_wrapper); 62 INIT_WORK(&cbq->work, &cn_queue_wrapper);
63 return cbq; 63 return cbq;
64} 64}
65 65
66static void cn_queue_free_callback(struct cn_callback_entry *cbq) 66static void cn_queue_free_callback(struct cn_callback_entry *cbq)
67{ 67{
68 cancel_delayed_work(&cbq->work);
69 flush_workqueue(cbq->pdev->cn_queue); 68 flush_workqueue(cbq->pdev->cn_queue);
70 69
71 kfree(cbq); 70 kfree(cbq);
diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c
index 5e7cd45d10ee..a44db75bc25b 100644
--- a/drivers/connector/connector.c
+++ b/drivers/connector/connector.c
@@ -135,17 +135,15 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v
135 spin_lock_bh(&dev->cbdev->queue_lock); 135 spin_lock_bh(&dev->cbdev->queue_lock);
136 list_for_each_entry(__cbq, &dev->cbdev->queue_list, callback_entry) { 136 list_for_each_entry(__cbq, &dev->cbdev->queue_list, callback_entry) {
137 if (cn_cb_equal(&__cbq->id.id, &msg->id)) { 137 if (cn_cb_equal(&__cbq->id.id, &msg->id)) {
138 if (likely(!test_bit(WORK_STRUCT_PENDING, 138 if (likely(!work_pending(&__cbq->work) &&
139 &__cbq->work.work.management) &&
140 __cbq->data.ddata == NULL)) { 139 __cbq->data.ddata == NULL)) {
141 __cbq->data.callback_priv = msg; 140 __cbq->data.callback_priv = msg;
142 141
143 __cbq->data.ddata = data; 142 __cbq->data.ddata = data;
144 __cbq->data.destruct_data = destruct_data; 143 __cbq->data.destruct_data = destruct_data;
145 144
146 if (queue_delayed_work( 145 if (queue_work(dev->cbdev->cn_queue,
147 dev->cbdev->cn_queue, 146 &__cbq->work))
148 &__cbq->work, 0))
149 err = 0; 147 err = 0;
150 } else { 148 } else {
151 struct cn_callback_data *d; 149 struct cn_callback_data *d;
@@ -159,12 +157,11 @@ static int cn_call_callback(struct cn_msg *msg, void (*destruct_data)(void *), v
159 d->destruct_data = destruct_data; 157 d->destruct_data = destruct_data;
160 d->free = __cbq; 158 d->free = __cbq;
161 159
162 INIT_DELAYED_WORK(&__cbq->work, 160 INIT_WORK(&__cbq->work,
163 &cn_queue_wrapper); 161 &cn_queue_wrapper);
164 162
165 if (queue_delayed_work( 163 if (queue_work(dev->cbdev->cn_queue,
166 dev->cbdev->cn_queue, 164 &__cbq->work))
167 &__cbq->work, 0))
168 err = 0; 165 err = 0;
169 else { 166 else {
170 kfree(__cbq); 167 kfree(__cbq);
diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
index 9fb2edf36611..d91330432ba2 100644
--- a/drivers/cpufreq/cpufreq.c
+++ b/drivers/cpufreq/cpufreq.c
@@ -959,7 +959,7 @@ static void cpufreq_out_of_sync(unsigned int cpu, unsigned int old_freq,
959 959
960 960
961/** 961/**
962 * cpufreq_quick_get - get the CPU frequency (in kHz) frpm policy->cur 962 * cpufreq_quick_get - get the CPU frequency (in kHz) from policy->cur
963 * @cpu: CPU number 963 * @cpu: CPU number
964 * 964 *
965 * This is the last known freq, without actually getting it from the driver. 965 * This is the last known freq, without actually getting it from the driver.
diff --git a/drivers/hid/hid-input.c b/drivers/hid/hid-input.c
index 14cdf09316ce..998638020ea0 100644
--- a/drivers/hid/hid-input.c
+++ b/drivers/hid/hid-input.c
@@ -415,12 +415,31 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
415 case 0x000: goto ignore; 415 case 0x000: goto ignore;
416 case 0x034: map_key_clear(KEY_SLEEP); break; 416 case 0x034: map_key_clear(KEY_SLEEP); break;
417 case 0x036: map_key_clear(BTN_MISC); break; 417 case 0x036: map_key_clear(BTN_MISC); break;
418 case 0x040: map_key_clear(KEY_MENU); break;
418 case 0x045: map_key_clear(KEY_RADIO); break; 419 case 0x045: map_key_clear(KEY_RADIO); break;
420
421 case 0x088: map_key_clear(KEY_PC); break;
422 case 0x089: map_key_clear(KEY_TV); break;
419 case 0x08a: map_key_clear(KEY_WWW); break; 423 case 0x08a: map_key_clear(KEY_WWW); break;
424 case 0x08b: map_key_clear(KEY_DVD); break;
425 case 0x08c: map_key_clear(KEY_PHONE); break;
420 case 0x08d: map_key_clear(KEY_PROGRAM); break; 426 case 0x08d: map_key_clear(KEY_PROGRAM); break;
427 case 0x08e: map_key_clear(KEY_VIDEOPHONE); break;
428 case 0x08f: map_key_clear(KEY_GAMES); break;
429 case 0x090: map_key_clear(KEY_MEMO); break;
430 case 0x091: map_key_clear(KEY_CD); break;
431 case 0x092: map_key_clear(KEY_VCR); break;
432 case 0x093: map_key_clear(KEY_TUNER); break;
433 case 0x094: map_key_clear(KEY_EXIT); break;
421 case 0x095: map_key_clear(KEY_HELP); break; 434 case 0x095: map_key_clear(KEY_HELP); break;
435 case 0x096: map_key_clear(KEY_TAPE); break;
436 case 0x097: map_key_clear(KEY_TV2); break;
437 case 0x098: map_key_clear(KEY_SAT); break;
438
422 case 0x09c: map_key_clear(KEY_CHANNELUP); break; 439 case 0x09c: map_key_clear(KEY_CHANNELUP); break;
423 case 0x09d: map_key_clear(KEY_CHANNELDOWN); break; 440 case 0x09d: map_key_clear(KEY_CHANNELDOWN); break;
441 case 0x0a0: map_key_clear(KEY_VCR2); break;
442
424 case 0x0b0: map_key_clear(KEY_PLAY); break; 443 case 0x0b0: map_key_clear(KEY_PLAY); break;
425 case 0x0b1: map_key_clear(KEY_PAUSE); break; 444 case 0x0b1: map_key_clear(KEY_PAUSE); break;
426 case 0x0b2: map_key_clear(KEY_RECORD); break; 445 case 0x0b2: map_key_clear(KEY_RECORD); break;
@@ -430,6 +449,7 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
430 case 0x0b6: map_key_clear(KEY_PREVIOUSSONG); break; 449 case 0x0b6: map_key_clear(KEY_PREVIOUSSONG); break;
431 case 0x0b7: map_key_clear(KEY_STOPCD); break; 450 case 0x0b7: map_key_clear(KEY_STOPCD); break;
432 case 0x0b8: map_key_clear(KEY_EJECTCD); break; 451 case 0x0b8: map_key_clear(KEY_EJECTCD); break;
452
433 case 0x0cd: map_key_clear(KEY_PLAYPAUSE); break; 453 case 0x0cd: map_key_clear(KEY_PLAYPAUSE); break;
434 case 0x0e0: map_abs_clear(ABS_VOLUME); break; 454 case 0x0e0: map_abs_clear(ABS_VOLUME); break;
435 case 0x0e2: map_key_clear(KEY_MUTE); break; 455 case 0x0e2: map_key_clear(KEY_MUTE); break;
@@ -437,11 +457,30 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
437 case 0x0e9: map_key_clear(KEY_VOLUMEUP); break; 457 case 0x0e9: map_key_clear(KEY_VOLUMEUP); break;
438 case 0x0ea: map_key_clear(KEY_VOLUMEDOWN); break; 458 case 0x0ea: map_key_clear(KEY_VOLUMEDOWN); break;
439 case 0x183: map_key_clear(KEY_CONFIG); break; 459 case 0x183: map_key_clear(KEY_CONFIG); break;
460 case 0x184: map_key_clear(KEY_WORDPROCESSOR); break;
461 case 0x185: map_key_clear(KEY_EDITOR); break;
462 case 0x186: map_key_clear(KEY_SPREADSHEET); break;
463 case 0x187: map_key_clear(KEY_GRAPHICSEDITOR); break;
464 case 0x188: map_key_clear(KEY_PRESENTATION); break;
465 case 0x189: map_key_clear(KEY_DATABASE); break;
440 case 0x18a: map_key_clear(KEY_MAIL); break; 466 case 0x18a: map_key_clear(KEY_MAIL); break;
467 case 0x18b: map_key_clear(KEY_NEWS); break;
468 case 0x18c: map_key_clear(KEY_VOICEMAIL); break;
469 case 0x18d: map_key_clear(KEY_ADDRESSBOOK); break;
470 case 0x18e: map_key_clear(KEY_CALENDAR); break;
471 case 0x191: map_key_clear(KEY_FINANCE); break;
441 case 0x192: map_key_clear(KEY_CALC); break; 472 case 0x192: map_key_clear(KEY_CALC); break;
442 case 0x194: map_key_clear(KEY_FILE); break; 473 case 0x194: map_key_clear(KEY_FILE); break;
474 case 0x196: map_key_clear(KEY_WWW); break;
475 case 0x19e: map_key_clear(KEY_COFFEE); break;
476 case 0x1a6: map_key_clear(KEY_HELP); break;
443 case 0x1a7: map_key_clear(KEY_DOCUMENTS); break; 477 case 0x1a7: map_key_clear(KEY_DOCUMENTS); break;
478 case 0x1bc: map_key_clear(KEY_MESSENGER); break;
479 case 0x1bd: map_key_clear(KEY_INFO); break;
444 case 0x201: map_key_clear(KEY_NEW); break; 480 case 0x201: map_key_clear(KEY_NEW); break;
481 case 0x202: map_key_clear(KEY_OPEN); break;
482 case 0x203: map_key_clear(KEY_CLOSE); break;
483 case 0x204: map_key_clear(KEY_EXIT); break;
445 case 0x207: map_key_clear(KEY_SAVE); break; 484 case 0x207: map_key_clear(KEY_SAVE); break;
446 case 0x208: map_key_clear(KEY_PRINT); break; 485 case 0x208: map_key_clear(KEY_PRINT); break;
447 case 0x209: map_key_clear(KEY_PROPS); break; 486 case 0x209: map_key_clear(KEY_PROPS); break;
@@ -456,10 +495,15 @@ static void hidinput_configure_usage(struct hid_input *hidinput, struct hid_fiel
456 case 0x226: map_key_clear(KEY_STOP); break; 495 case 0x226: map_key_clear(KEY_STOP); break;
457 case 0x227: map_key_clear(KEY_REFRESH); break; 496 case 0x227: map_key_clear(KEY_REFRESH); break;
458 case 0x22a: map_key_clear(KEY_BOOKMARKS); break; 497 case 0x22a: map_key_clear(KEY_BOOKMARKS); break;
498 case 0x22d: map_key_clear(KEY_ZOOMIN); break;
499 case 0x22e: map_key_clear(KEY_ZOOMOUT); break;
500 case 0x22f: map_key_clear(KEY_ZOOMRESET); break;
459 case 0x233: map_key_clear(KEY_SCROLLUP); break; 501 case 0x233: map_key_clear(KEY_SCROLLUP); break;
460 case 0x234: map_key_clear(KEY_SCROLLDOWN); break; 502 case 0x234: map_key_clear(KEY_SCROLLDOWN); break;
461 case 0x238: map_rel(REL_HWHEEL); break; 503 case 0x238: map_rel(REL_HWHEEL); break;
504 case 0x25f: map_key_clear(KEY_CANCEL); break;
462 case 0x279: map_key_clear(KEY_REDO); break; 505 case 0x279: map_key_clear(KEY_REDO); break;
506
463 case 0x289: map_key_clear(KEY_REPLY); break; 507 case 0x289: map_key_clear(KEY_REPLY); break;
464 case 0x28b: map_key_clear(KEY_FORWARDMAIL); break; 508 case 0x28b: map_key_clear(KEY_FORWARDMAIL); break;
465 case 0x28c: map_key_clear(KEY_SEND); break; 509 case 0x28c: map_key_clear(KEY_SEND); break;
diff --git a/drivers/input/keyboard/sunkbd.c b/drivers/input/keyboard/sunkbd.c
index 3826db9403e6..cc0238366414 100644
--- a/drivers/input/keyboard/sunkbd.c
+++ b/drivers/input/keyboard/sunkbd.c
@@ -225,7 +225,7 @@ static void sunkbd_reinit(struct work_struct *work)
225static void sunkbd_enable(struct sunkbd *sunkbd, int enable) 225static void sunkbd_enable(struct sunkbd *sunkbd, int enable)
226{ 226{
227 serio_pause_rx(sunkbd->serio); 227 serio_pause_rx(sunkbd->serio);
228 sunkbd->enabled = 1; 228 sunkbd->enabled = enable;
229 serio_continue_rx(sunkbd->serio); 229 serio_continue_rx(sunkbd->serio);
230} 230}
231 231
diff --git a/drivers/net/bnx2.c b/drivers/net/bnx2.c
index 7d824cf8ee2d..ada5e9b9988c 100644
--- a/drivers/net/bnx2.c
+++ b/drivers/net/bnx2.c
@@ -57,8 +57,8 @@
57 57
58#define DRV_MODULE_NAME "bnx2" 58#define DRV_MODULE_NAME "bnx2"
59#define PFX DRV_MODULE_NAME ": " 59#define PFX DRV_MODULE_NAME ": "
60#define DRV_MODULE_VERSION "1.5.1" 60#define DRV_MODULE_VERSION "1.5.2"
61#define DRV_MODULE_RELDATE "November 15, 2006" 61#define DRV_MODULE_RELDATE "December 13, 2006"
62 62
63#define RUN_AT(x) (jiffies + (x)) 63#define RUN_AT(x) (jiffies + (x))
64 64
@@ -217,9 +217,16 @@ static inline u32 bnx2_tx_avail(struct bnx2 *bp)
217 u32 diff; 217 u32 diff;
218 218
219 smp_mb(); 219 smp_mb();
220 diff = TX_RING_IDX(bp->tx_prod) - TX_RING_IDX(bp->tx_cons); 220
221 if (diff > MAX_TX_DESC_CNT) 221 /* The ring uses 256 indices for 255 entries, one of them
222 diff = (diff & MAX_TX_DESC_CNT) - 1; 222 * needs to be skipped.
223 */
224 diff = bp->tx_prod - bp->tx_cons;
225 if (unlikely(diff >= TX_DESC_CNT)) {
226 diff &= 0xffff;
227 if (diff == TX_DESC_CNT)
228 diff = MAX_TX_DESC_CNT;
229 }
223 return (bp->tx_ring_size - diff); 230 return (bp->tx_ring_size - diff);
224} 231}
225 232
@@ -3089,7 +3096,7 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
3089 3096
3090 if ((align_start = (offset32 & 3))) { 3097 if ((align_start = (offset32 & 3))) {
3091 offset32 &= ~3; 3098 offset32 &= ~3;
3092 len32 += align_start; 3099 len32 += (4 - align_start);
3093 if ((rc = bnx2_nvram_read(bp, offset32, start, 4))) 3100 if ((rc = bnx2_nvram_read(bp, offset32, start, 4)))
3094 return rc; 3101 return rc;
3095 } 3102 }
@@ -3107,7 +3114,7 @@ bnx2_nvram_write(struct bnx2 *bp, u32 offset, u8 *data_buf,
3107 3114
3108 if (align_start || align_end) { 3115 if (align_start || align_end) {
3109 buf = kmalloc(len32, GFP_KERNEL); 3116 buf = kmalloc(len32, GFP_KERNEL);
3110 if (buf == 0) 3117 if (buf == NULL)
3111 return -ENOMEM; 3118 return -ENOMEM;
3112 if (align_start) { 3119 if (align_start) {
3113 memcpy(buf, start, 4); 3120 memcpy(buf, start, 4);
@@ -3998,7 +4005,7 @@ bnx2_run_loopback(struct bnx2 *bp, int loopback_mode)
3998 if (!skb) 4005 if (!skb)
3999 return -ENOMEM; 4006 return -ENOMEM;
4000 packet = skb_put(skb, pkt_size); 4007 packet = skb_put(skb, pkt_size);
4001 memcpy(packet, bp->mac_addr, 6); 4008 memcpy(packet, bp->dev->dev_addr, 6);
4002 memset(packet + 6, 0x0, 8); 4009 memset(packet + 6, 0x0, 8);
4003 for (i = 14; i < pkt_size; i++) 4010 for (i = 14; i < pkt_size; i++)
4004 packet[i] = (unsigned char) (i & 0xff); 4011 packet[i] = (unsigned char) (i & 0xff);
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 571320ae87ab..4056ba1ff3c7 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -68,8 +68,8 @@
68 68
69#define DRV_MODULE_NAME "tg3" 69#define DRV_MODULE_NAME "tg3"
70#define PFX DRV_MODULE_NAME ": " 70#define PFX DRV_MODULE_NAME ": "
71#define DRV_MODULE_VERSION "3.70" 71#define DRV_MODULE_VERSION "3.71"
72#define DRV_MODULE_RELDATE "December 1, 2006" 72#define DRV_MODULE_RELDATE "December 15, 2006"
73 73
74#define TG3_DEF_MAC_MODE 0 74#define TG3_DEF_MAC_MODE 0
75#define TG3_DEF_RX_MODE 0 75#define TG3_DEF_RX_MODE 0
@@ -959,6 +959,13 @@ static int tg3_phy_reset(struct tg3 *tp)
959 u32 phy_status; 959 u32 phy_status;
960 int err; 960 int err;
961 961
962 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
963 u32 val;
964
965 val = tr32(GRC_MISC_CFG);
966 tw32_f(GRC_MISC_CFG, val & ~GRC_MISC_CFG_EPHY_IDDQ);
967 udelay(40);
968 }
962 err = tg3_readphy(tp, MII_BMSR, &phy_status); 969 err = tg3_readphy(tp, MII_BMSR, &phy_status);
963 err |= tg3_readphy(tp, MII_BMSR, &phy_status); 970 err |= tg3_readphy(tp, MII_BMSR, &phy_status);
964 if (err != 0) 971 if (err != 0)
@@ -1170,7 +1177,15 @@ static void tg3_power_down_phy(struct tg3 *tp)
1170 if (tp->tg3_flags2 & TG3_FLG2_PHY_SERDES) 1177 if (tp->tg3_flags2 & TG3_FLG2_PHY_SERDES)
1171 return; 1178 return;
1172 1179
1173 if (GET_ASIC_REV(tp->pci_chip_rev_id) != ASIC_REV_5906) { 1180 if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906) {
1181 u32 val;
1182
1183 tg3_bmcr_reset(tp);
1184 val = tr32(GRC_MISC_CFG);
1185 tw32_f(GRC_MISC_CFG, val | GRC_MISC_CFG_EPHY_IDDQ);
1186 udelay(40);
1187 return;
1188 } else {
1174 tg3_writephy(tp, MII_TG3_EXT_CTRL, 1189 tg3_writephy(tp, MII_TG3_EXT_CTRL,
1175 MII_TG3_EXT_CTRL_FORCE_LED_OFF); 1190 MII_TG3_EXT_CTRL_FORCE_LED_OFF);
1176 tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x01b2); 1191 tg3_writephy(tp, MII_TG3_AUX_CTRL, 0x01b2);
@@ -4426,7 +4441,7 @@ static void tg3_free_consistent(struct tg3 *tp)
4426 */ 4441 */
4427static int tg3_alloc_consistent(struct tg3 *tp) 4442static int tg3_alloc_consistent(struct tg3 *tp)
4428{ 4443{
4429 tp->rx_std_buffers = kmalloc((sizeof(struct ring_info) * 4444 tp->rx_std_buffers = kzalloc((sizeof(struct ring_info) *
4430 (TG3_RX_RING_SIZE + 4445 (TG3_RX_RING_SIZE +
4431 TG3_RX_JUMBO_RING_SIZE)) + 4446 TG3_RX_JUMBO_RING_SIZE)) +
4432 (sizeof(struct tx_ring_info) * 4447 (sizeof(struct tx_ring_info) *
@@ -4435,13 +4450,6 @@ static int tg3_alloc_consistent(struct tg3 *tp)
4435 if (!tp->rx_std_buffers) 4450 if (!tp->rx_std_buffers)
4436 return -ENOMEM; 4451 return -ENOMEM;
4437 4452
4438 memset(tp->rx_std_buffers, 0,
4439 (sizeof(struct ring_info) *
4440 (TG3_RX_RING_SIZE +
4441 TG3_RX_JUMBO_RING_SIZE)) +
4442 (sizeof(struct tx_ring_info) *
4443 TG3_TX_RING_SIZE));
4444
4445 tp->rx_jumbo_buffers = &tp->rx_std_buffers[TG3_RX_RING_SIZE]; 4453 tp->rx_jumbo_buffers = &tp->rx_std_buffers[TG3_RX_RING_SIZE];
4446 tp->tx_buffers = (struct tx_ring_info *) 4454 tp->tx_buffers = (struct tx_ring_info *)
4447 &tp->rx_jumbo_buffers[TG3_RX_JUMBO_RING_SIZE]; 4455 &tp->rx_jumbo_buffers[TG3_RX_JUMBO_RING_SIZE];
@@ -6988,6 +6996,8 @@ static int tg3_open(struct net_device *dev)
6988 struct tg3 *tp = netdev_priv(dev); 6996 struct tg3 *tp = netdev_priv(dev);
6989 int err; 6997 int err;
6990 6998
6999 netif_carrier_off(tp->dev);
7000
6991 tg3_full_lock(tp, 0); 7001 tg3_full_lock(tp, 0);
6992 7002
6993 err = tg3_set_power_state(tp, PCI_D0); 7003 err = tg3_set_power_state(tp, PCI_D0);
@@ -7981,6 +7991,10 @@ static int tg3_set_settings(struct net_device *dev, struct ethtool_cmd *cmd)
7981 tp->link_config.duplex = cmd->duplex; 7991 tp->link_config.duplex = cmd->duplex;
7982 } 7992 }
7983 7993
7994 tp->link_config.orig_speed = tp->link_config.speed;
7995 tp->link_config.orig_duplex = tp->link_config.duplex;
7996 tp->link_config.orig_autoneg = tp->link_config.autoneg;
7997
7984 if (netif_running(dev)) 7998 if (netif_running(dev))
7985 tg3_setup_phy(tp, 1); 7999 tg3_setup_phy(tp, 1);
7986 8000
@@ -11923,6 +11937,8 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
11923 */ 11937 */
11924 pci_save_state(tp->pdev); 11938 pci_save_state(tp->pdev);
11925 11939
11940 pci_set_drvdata(pdev, dev);
11941
11926 err = register_netdev(dev); 11942 err = register_netdev(dev);
11927 if (err) { 11943 if (err) {
11928 printk(KERN_ERR PFX "Cannot register net device, " 11944 printk(KERN_ERR PFX "Cannot register net device, "
@@ -11930,8 +11946,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
11930 goto err_out_iounmap; 11946 goto err_out_iounmap;
11931 } 11947 }
11932 11948
11933 pci_set_drvdata(pdev, dev);
11934
11935 printk(KERN_INFO "%s: Tigon3 [partno(%s) rev %04x PHY(%s)] (%s) %s Ethernet ", 11949 printk(KERN_INFO "%s: Tigon3 [partno(%s) rev %04x PHY(%s)] (%s) %s Ethernet ",
11936 dev->name, 11950 dev->name,
11937 tp->board_part_number, 11951 tp->board_part_number,
@@ -11962,8 +11976,6 @@ static int __devinit tg3_init_one(struct pci_dev *pdev,
11962 (pdev->dma_mask == DMA_32BIT_MASK) ? 32 : 11976 (pdev->dma_mask == DMA_32BIT_MASK) ? 32 :
11963 (((u64) pdev->dma_mask == DMA_40BIT_MASK) ? 40 : 64)); 11977 (((u64) pdev->dma_mask == DMA_40BIT_MASK) ? 40 : 64));
11964 11978
11965 netif_carrier_off(tp->dev);
11966
11967 return 0; 11979 return 0;
11968 11980
11969err_out_iounmap: 11981err_out_iounmap:
diff --git a/drivers/net/tg3.h b/drivers/net/tg3.h
index dfaf4ed127bd..cf78a7e5997b 100644
--- a/drivers/net/tg3.h
+++ b/drivers/net/tg3.h
@@ -1350,6 +1350,7 @@
1350#define GRC_MISC_CFG_BOARD_ID_5788 0x00010000 1350#define GRC_MISC_CFG_BOARD_ID_5788 0x00010000
1351#define GRC_MISC_CFG_BOARD_ID_5788M 0x00018000 1351#define GRC_MISC_CFG_BOARD_ID_5788M 0x00018000
1352#define GRC_MISC_CFG_BOARD_ID_AC91002A1 0x00018000 1352#define GRC_MISC_CFG_BOARD_ID_AC91002A1 0x00018000
1353#define GRC_MISC_CFG_EPHY_IDDQ 0x00200000
1353#define GRC_MISC_CFG_KEEP_GPHY_POWER 0x04000000 1354#define GRC_MISC_CFG_KEEP_GPHY_POWER 0x04000000
1354#define GRC_LOCAL_CTRL 0x00006808 1355#define GRC_LOCAL_CTRL 0x00006808
1355#define GRC_LCLCTRL_INT_ACTIVE 0x00000001 1356#define GRC_LCLCTRL_INT_ACTIVE 0x00000001
diff --git a/drivers/usb/input/Kconfig b/drivers/usb/input/Kconfig
index 8a62d4785755..e308f6dc2b87 100644
--- a/drivers/usb/input/Kconfig
+++ b/drivers/usb/input/Kconfig
@@ -7,7 +7,8 @@ comment "USB Input Devices"
7config USB_HID 7config USB_HID
8 tristate "USB Human Interface Device (full HID) support" 8 tristate "USB Human Interface Device (full HID) support"
9 default y 9 default y
10 depends on USB && HID 10 depends on USB
11 select HID
11 ---help--- 12 ---help---
12 Say Y here if you want full HID support to connect USB keyboards, 13 Say Y here if you want full HID support to connect USB keyboards,
13 mice, joysticks, graphic tablets, or any other HID based devices 14 mice, joysticks, graphic tablets, or any other HID based devices
diff --git a/drivers/video/pxafb.c b/drivers/video/pxafb.c
index 38eb0b69c2d7..b4947c810706 100644
--- a/drivers/video/pxafb.c
+++ b/drivers/video/pxafb.c
@@ -1216,7 +1216,7 @@ static int __init pxafb_parse_options(struct device *dev, char *options)
1216 done: 1216 done:
1217 if (res_specified) { 1217 if (res_specified) {
1218 dev_info(dev, "overriding resolution: %dx%d\n", xres, yres); 1218 dev_info(dev, "overriding resolution: %dx%d\n", xres, yres);
1219 inf->xres = xres; inf->yres = yres; 1219 inf->modes[0].xres = xres; inf->modes[0].yres = yres;
1220 } 1220 }
1221 if (bpp_specified) 1221 if (bpp_specified)
1222 switch (bpp) { 1222 switch (bpp) {
@@ -1225,48 +1225,48 @@ static int __init pxafb_parse_options(struct device *dev, char *options)
1225 case 4: 1225 case 4:
1226 case 8: 1226 case 8:
1227 case 16: 1227 case 16:
1228 inf->bpp = bpp; 1228 inf->modes[0].bpp = bpp;
1229 dev_info(dev, "overriding bit depth: %d\n", bpp); 1229 dev_info(dev, "overriding bit depth: %d\n", bpp);
1230 break; 1230 break;
1231 default: 1231 default:
1232 dev_err(dev, "Depth %d is not valid\n", bpp); 1232 dev_err(dev, "Depth %d is not valid\n", bpp);
1233 } 1233 }
1234 } else if (!strncmp(this_opt, "pixclock:", 9)) { 1234 } else if (!strncmp(this_opt, "pixclock:", 9)) {
1235 inf->pixclock = simple_strtoul(this_opt+9, NULL, 0); 1235 inf->modes[0].pixclock = simple_strtoul(this_opt+9, NULL, 0);
1236 dev_info(dev, "override pixclock: %ld\n", inf->pixclock); 1236 dev_info(dev, "override pixclock: %ld\n", inf->modes[0].pixclock);
1237 } else if (!strncmp(this_opt, "left:", 5)) { 1237 } else if (!strncmp(this_opt, "left:", 5)) {
1238 inf->left_margin = simple_strtoul(this_opt+5, NULL, 0); 1238 inf->modes[0].left_margin = simple_strtoul(this_opt+5, NULL, 0);
1239 dev_info(dev, "override left: %u\n", inf->left_margin); 1239 dev_info(dev, "override left: %u\n", inf->modes[0].left_margin);
1240 } else if (!strncmp(this_opt, "right:", 6)) { 1240 } else if (!strncmp(this_opt, "right:", 6)) {
1241 inf->right_margin = simple_strtoul(this_opt+6, NULL, 0); 1241 inf->modes[0].right_margin = simple_strtoul(this_opt+6, NULL, 0);
1242 dev_info(dev, "override right: %u\n", inf->right_margin); 1242 dev_info(dev, "override right: %u\n", inf->modes[0].right_margin);
1243 } else if (!strncmp(this_opt, "upper:", 6)) { 1243 } else if (!strncmp(this_opt, "upper:", 6)) {
1244 inf->upper_margin = simple_strtoul(this_opt+6, NULL, 0); 1244 inf->modes[0].upper_margin = simple_strtoul(this_opt+6, NULL, 0);
1245 dev_info(dev, "override upper: %u\n", inf->upper_margin); 1245 dev_info(dev, "override upper: %u\n", inf->modes[0].upper_margin);
1246 } else if (!strncmp(this_opt, "lower:", 6)) { 1246 } else if (!strncmp(this_opt, "lower:", 6)) {
1247 inf->lower_margin = simple_strtoul(this_opt+6, NULL, 0); 1247 inf->modes[0].lower_margin = simple_strtoul(this_opt+6, NULL, 0);
1248 dev_info(dev, "override lower: %u\n", inf->lower_margin); 1248 dev_info(dev, "override lower: %u\n", inf->modes[0].lower_margin);
1249 } else if (!strncmp(this_opt, "hsynclen:", 9)) { 1249 } else if (!strncmp(this_opt, "hsynclen:", 9)) {
1250 inf->hsync_len = simple_strtoul(this_opt+9, NULL, 0); 1250 inf->modes[0].hsync_len = simple_strtoul(this_opt+9, NULL, 0);
1251 dev_info(dev, "override hsynclen: %u\n", inf->hsync_len); 1251 dev_info(dev, "override hsynclen: %u\n", inf->modes[0].hsync_len);
1252 } else if (!strncmp(this_opt, "vsynclen:", 9)) { 1252 } else if (!strncmp(this_opt, "vsynclen:", 9)) {
1253 inf->vsync_len = simple_strtoul(this_opt+9, NULL, 0); 1253 inf->modes[0].vsync_len = simple_strtoul(this_opt+9, NULL, 0);
1254 dev_info(dev, "override vsynclen: %u\n", inf->vsync_len); 1254 dev_info(dev, "override vsynclen: %u\n", inf->modes[0].vsync_len);
1255 } else if (!strncmp(this_opt, "hsync:", 6)) { 1255 } else if (!strncmp(this_opt, "hsync:", 6)) {
1256 if (simple_strtoul(this_opt+6, NULL, 0) == 0) { 1256 if (simple_strtoul(this_opt+6, NULL, 0) == 0) {
1257 dev_info(dev, "override hsync: Active Low\n"); 1257 dev_info(dev, "override hsync: Active Low\n");
1258 inf->sync &= ~FB_SYNC_HOR_HIGH_ACT; 1258 inf->modes[0].sync &= ~FB_SYNC_HOR_HIGH_ACT;
1259 } else { 1259 } else {
1260 dev_info(dev, "override hsync: Active High\n"); 1260 dev_info(dev, "override hsync: Active High\n");
1261 inf->sync |= FB_SYNC_HOR_HIGH_ACT; 1261 inf->modes[0].sync |= FB_SYNC_HOR_HIGH_ACT;
1262 } 1262 }
1263 } else if (!strncmp(this_opt, "vsync:", 6)) { 1263 } else if (!strncmp(this_opt, "vsync:", 6)) {
1264 if (simple_strtoul(this_opt+6, NULL, 0) == 0) { 1264 if (simple_strtoul(this_opt+6, NULL, 0) == 0) {
1265 dev_info(dev, "override vsync: Active Low\n"); 1265 dev_info(dev, "override vsync: Active Low\n");
1266 inf->sync &= ~FB_SYNC_VERT_HIGH_ACT; 1266 inf->modes[0].sync &= ~FB_SYNC_VERT_HIGH_ACT;
1267 } else { 1267 } else {
1268 dev_info(dev, "override vsync: Active High\n"); 1268 dev_info(dev, "override vsync: Active High\n");
1269 inf->sync |= FB_SYNC_VERT_HIGH_ACT; 1269 inf->modes[0].sync |= FB_SYNC_VERT_HIGH_ACT;
1270 } 1270 }
1271 } else if (!strncmp(this_opt, "dpc:", 4)) { 1271 } else if (!strncmp(this_opt, "dpc:", 4)) {
1272 if (simple_strtoul(this_opt+4, NULL, 0) == 0) { 1272 if (simple_strtoul(this_opt+4, NULL, 0) == 0) {
diff --git a/drivers/video/sa1100fb.c b/drivers/video/sa1100fb.c
index cd10b18150b8..5d2a4a4b731c 100644
--- a/drivers/video/sa1100fb.c
+++ b/drivers/video/sa1100fb.c
@@ -1200,9 +1200,9 @@ static void set_ctrlr_state(struct sa1100fb_info *fbi, u_int state)
1200 * Our LCD controller task (which is called when we blank or unblank) 1200 * Our LCD controller task (which is called when we blank or unblank)
1201 * via keventd. 1201 * via keventd.
1202 */ 1202 */
1203static void sa1100fb_task(void *dummy) 1203static void sa1100fb_task(struct work_struct *w)
1204{ 1204{
1205 struct sa1100fb_info *fbi = dummy; 1205 struct sa1100fb_info *fbi = container_of(w, struct sa1100fb_info, task);
1206 u_int state = xchg(&fbi->task_state, -1); 1206 u_int state = xchg(&fbi->task_state, -1);
1207 1207
1208 set_ctrlr_state(fbi, state); 1208 set_ctrlr_state(fbi, state);
@@ -1444,7 +1444,7 @@ static struct sa1100fb_info * __init sa1100fb_init_fbinfo(struct device *dev)
1444 fbi->max_bpp / 8; 1444 fbi->max_bpp / 8;
1445 1445
1446 init_waitqueue_head(&fbi->ctrlr_wait); 1446 init_waitqueue_head(&fbi->ctrlr_wait);
1447 INIT_WORK(&fbi->task, sa1100fb_task, fbi); 1447 INIT_WORK(&fbi->task, sa1100fb_task);
1448 init_MUTEX(&fbi->ctrlr_sem); 1448 init_MUTEX(&fbi->ctrlr_sem);
1449 1449
1450 return fbi; 1450 return fbi;
diff --git a/include/asm-arm/arch-iop13xx/iq81340.h b/include/asm-arm/arch-iop13xx/iq81340.h
index b98f8f109c22..ba2cf931e9ce 100644
--- a/include/asm-arm/arch-iop13xx/iq81340.h
+++ b/include/asm-arm/arch-iop13xx/iq81340.h
@@ -24,8 +24,5 @@
24#define PBI_CF_IDE_BASE (IQ81340_CMP_FLSH) 24#define PBI_CF_IDE_BASE (IQ81340_CMP_FLSH)
25#define PBI_CF_BAR_ADDR (IOP13XX_PBI_BAR1) 25#define PBI_CF_BAR_ADDR (IOP13XX_PBI_BAR1)
26 26
27/* These are the values used in the Machine description */ 27
28#define PHYS_IO 0xfeffff00
29#define IO_PG_OFFSET 0xffffff00
30#define BOOT_PARAM_OFFSET 0x00000100
31#endif /* _IQ81340_H_ */ 28#endif /* _IQ81340_H_ */
diff --git a/include/asm-arm/arch-ixp23xx/memory.h b/include/asm-arm/arch-ixp23xx/memory.h
index c85fc06a043c..6d859d742d7f 100644
--- a/include/asm-arm/arch-ixp23xx/memory.h
+++ b/include/asm-arm/arch-ixp23xx/memory.h
@@ -41,21 +41,7 @@
41 data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \ 41 data = *((volatile int *)IXP23XX_PCI_SDRAM_BAR); \
42 __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); }) 42 __phys_to_virt((((b - (data & 0xfffffff0)) + 0x00000000))); })
43 43
44/* 44#define arch_is_coherent() 1
45 * Coherency support. Only supported on A2 CPUs or on A1
46 * systems that have the cache coherency workaround.
47 */
48static inline int __ixp23xx_arch_is_coherent(void)
49{
50 extern unsigned int processor_id;
51
52 if (((processor_id & 15) >= 4) || machine_is_roadrunner())
53 return 1;
54
55 return 0;
56}
57
58#define arch_is_coherent() __ixp23xx_arch_is_coherent()
59 45
60#endif 46#endif
61 47
diff --git a/include/asm-arm/arch-s3c2410/anubis-cpld.h b/include/asm-arm/arch-s3c2410/anubis-cpld.h
index 40e8e270d337..dcebf6d61903 100644
--- a/include/asm-arm/arch-s3c2410/anubis-cpld.h
+++ b/include/asm-arm/arch-s3c2410/anubis-cpld.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/anubis-cpld.h 1/* linux/include/asm-arm/arch-s3c2410/anubis-cpld.h
2 * 2 *
3 * (c) 2005 Simtec Electronics 3 * Copyright (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/ 4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/anubis-irq.h b/include/asm-arm/arch-s3c2410/anubis-irq.h
index 4b5f423779df..cd77a70d45c0 100644
--- a/include/asm-arm/arch-s3c2410/anubis-irq.h
+++ b/include/asm-arm/arch-s3c2410/anubis-irq.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/anubis-irq.h 1/* linux/include/asm-arm/arch-s3c2410/anubis-irq.h
2 * 2 *
3 * (c) 2005 Simtec Electronics 3 * Copyright (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/ 4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/anubis-map.h b/include/asm-arm/arch-s3c2410/anubis-map.h
index 058a2104b035..ab076de4a0d0 100644
--- a/include/asm-arm/arch-s3c2410/anubis-map.h
+++ b/include/asm-arm/arch-s3c2410/anubis-map.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/anubis-map.h 1/* linux/include/asm-arm/arch-s3c2410/anubis-map.h
2 * 2 *
3 * (c) 2005 Simtec Electronics 3 * Copyright (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/ 4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/audio.h b/include/asm-arm/arch-s3c2410/audio.h
index 7e0222276c98..65e0acffa1ad 100644
--- a/include/asm-arm/arch-s3c2410/audio.h
+++ b/include/asm-arm/arch-s3c2410/audio.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/audio.h 1/* linux/include/asm-arm/arch-s3c2410/audio.h
2 * 2 *
3 * (c) 2004-2005 Simtec Electronics 3 * Copyright (c) 2004-2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/SWLINUX/ 4 * http://www.simtec.co.uk/products/SWLINUX/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/bast-cpld.h b/include/asm-arm/arch-s3c2410/bast-cpld.h
index 8969cffe83fa..034d2c5a47c4 100644
--- a/include/asm-arm/arch-s3c2410/bast-cpld.h
+++ b/include/asm-arm/arch-s3c2410/bast-cpld.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/bast-cpld.h 1/* linux/include/asm-arm/arch-s3c2410/bast-cpld.h
2 * 2 *
3 * (c) 2003,2004 Simtec Electronics 3 * Copyright (c) 2003,2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * BAST - CPLD control constants 6 * BAST - CPLD control constants
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/bast-irq.h b/include/asm-arm/arch-s3c2410/bast-irq.h
index 15ffa66f5011..726c0466f85a 100644
--- a/include/asm-arm/arch-s3c2410/bast-irq.h
+++ b/include/asm-arm/arch-s3c2410/bast-irq.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/bast-irq.h 1/* linux/include/asm-arm/arch-s3c2410/bast-irq.h
2 * 2 *
3 * (c) 2003,2004 Simtec Electronics 3 * Copyright (c) 2003,2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * Machine BAST - IRQ Number definitions 6 * Machine BAST - IRQ Number definitions
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/bast-map.h b/include/asm-arm/arch-s3c2410/bast-map.h
index 727cef84c70e..86ac1c108db8 100644
--- a/include/asm-arm/arch-s3c2410/bast-map.h
+++ b/include/asm-arm/arch-s3c2410/bast-map.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/bast-map.h 1/* linux/include/asm-arm/arch-s3c2410/bast-map.h
2 * 2 *
3 * (c) 2003,2004 Simtec Electronics 3 * Copyright (c) 2003,2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * Machine BAST - Memory map definitions 6 * Machine BAST - Memory map definitions
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/bast-pmu.h b/include/asm-arm/arch-s3c2410/bast-pmu.h
index 82836027f00f..37a11fe54a78 100644
--- a/include/asm-arm/arch-s3c2410/bast-pmu.h
+++ b/include/asm-arm/arch-s3c2410/bast-pmu.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/bast-pmu.h 1/* linux/include/asm-arm/arch-s3c2410/bast-pmu.h
2 * 2 *
3 * (c) 2003,2004 Simtec Electronics 3 * Copyright (c) 2003,2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * Vincent Sanders <vince@simtec.co.uk> 5 * Vincent Sanders <vince@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/h1940-latch.h b/include/asm-arm/arch-s3c2410/h1940-latch.h
index c5802411f43d..c3de5ab102eb 100644
--- a/include/asm-arm/arch-s3c2410/h1940-latch.h
+++ b/include/asm-arm/arch-s3c2410/h1940-latch.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/h1940-latch.h 1/* linux/include/asm-arm/arch-s3c2410/h1940-latch.h
2 * 2 *
3 * (c) 2005 Simtec Electronics 3 * Copyright (c) 2005 Simtec Electronics
4 * http://armlinux.simtec.co.uk/ 4 * http://armlinux.simtec.co.uk/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
@@ -16,7 +16,7 @@
16 16
17 17
18#ifndef __ASSEMBLY__ 18#ifndef __ASSEMBLY__
19#define H1940_LATCH ((void __iomem *)0xF8000000) 19#define H1940_LATCH ((void __force __iomem *)0xF8000000)
20#else 20#else
21#define H1940_LATCH 0xF8000000 21#define H1940_LATCH 0xF8000000
22#endif 22#endif
diff --git a/include/asm-arm/arch-s3c2410/hardware.h b/include/asm-arm/arch-s3c2410/hardware.h
index 871f8af09b8b..729565e5cdf4 100644
--- a/include/asm-arm/arch-s3c2410/hardware.h
+++ b/include/asm-arm/arch-s3c2410/hardware.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/hardware.h 1/* linux/include/asm-arm/arch-s3c2410/hardware.h
2 * 2 *
3 * (c) 2003 Simtec Electronics 3 * Copyright (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - hardware 6 * S3C2410 - hardware
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/iic.h b/include/asm-arm/arch-s3c2410/iic.h
index ed3d6c7bf6d7..71211c8b5384 100644
--- a/include/asm-arm/arch-s3c2410/iic.h
+++ b/include/asm-arm/arch-s3c2410/iic.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/iic.h 1/* linux/include/asm-arm/arch-s3c2410/iic.h
2 * 2 *
3 * (c) 2004 Simtec Electronics 3 * Copyright (c) 2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - I2C Controller platfrom_device info 6 * S3C2410 - I2C Controller platfrom_device info
diff --git a/include/asm-arm/arch-s3c2410/leds-gpio.h b/include/asm-arm/arch-s3c2410/leds-gpio.h
index f07ed040622b..800846ebddba 100644
--- a/include/asm-arm/arch-s3c2410/leds-gpio.h
+++ b/include/asm-arm/arch-s3c2410/leds-gpio.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/leds-gpio.h 1/* linux/include/asm-arm/arch-s3c2410/leds-gpio.h
2 * 2 *
3 * (c) 2006 Simtec Electronics 3 * Copyright (c) 2006 Simtec Electronics
4 * http://armlinux.simtec.co.uk/ 4 * http://armlinux.simtec.co.uk/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/map.h b/include/asm-arm/arch-s3c2410/map.h
index 7895042d176b..4505aefbad17 100644
--- a/include/asm-arm/arch-s3c2410/map.h
+++ b/include/asm-arm/arch-s3c2410/map.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/map.h 1/* linux/include/asm-arm/arch-s3c2410/map.h
2 * 2 *
3 * (c) 2003 Simtec Electronics 3 * Copyright (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - Memory map definitions 6 * S3C2410 - Memory map definitions
7 * 7 *
@@ -25,7 +25,7 @@
25 */ 25 */
26 26
27#ifndef __ASSEMBLY__ 27#ifndef __ASSEMBLY__
28#define S3C2410_ADDR(x) ((void __iomem *)0xF0000000 + (x)) 28#define S3C2410_ADDR(x) ((void __iomem __force *)0xF0000000 + (x))
29#else 29#else
30#define S3C2410_ADDR(x) (0xF0000000 + (x)) 30#define S3C2410_ADDR(x) (0xF0000000 + (x))
31#endif 31#endif
@@ -47,73 +47,65 @@
47#define S3C24XX_SZ_MEMCTRL SZ_1M 47#define S3C24XX_SZ_MEMCTRL SZ_1M
48 48
49/* USB host controller */ 49/* USB host controller */
50#define S3C24XX_VA_USBHOST S3C2410_ADDR(0x00200000)
51#define S3C2400_PA_USBHOST (0x14200000) 50#define S3C2400_PA_USBHOST (0x14200000)
52#define S3C2410_PA_USBHOST (0x49000000) 51#define S3C2410_PA_USBHOST (0x49000000)
53#define S3C24XX_SZ_USBHOST SZ_1M 52#define S3C24XX_SZ_USBHOST SZ_1M
54 53
55/* DMA controller */ 54/* DMA controller */
56#define S3C24XX_VA_DMA S3C2410_ADDR(0x00300000)
57#define S3C2400_PA_DMA (0x14600000) 55#define S3C2400_PA_DMA (0x14600000)
58#define S3C2410_PA_DMA (0x4B000000) 56#define S3C2410_PA_DMA (0x4B000000)
59#define S3C24XX_SZ_DMA SZ_1M 57#define S3C24XX_SZ_DMA SZ_1M
60 58
61/* Clock and Power management */ 59/* Clock and Power management */
62#define S3C24XX_VA_CLKPWR S3C2410_ADDR(0x00400000) 60#define S3C24XX_VA_CLKPWR S3C2410_ADDR(0x00200000)
63#define S3C2400_PA_CLKPWR (0x14800000) 61#define S3C2400_PA_CLKPWR (0x14800000)
64#define S3C2410_PA_CLKPWR (0x4C000000) 62#define S3C2410_PA_CLKPWR (0x4C000000)
65#define S3C24XX_SZ_CLKPWR SZ_1M 63#define S3C24XX_SZ_CLKPWR SZ_1M
66 64
67/* LCD controller */ 65/* LCD controller */
68#define S3C24XX_VA_LCD S3C2410_ADDR(0x00600000) 66#define S3C24XX_VA_LCD S3C2410_ADDR(0x00300000)
69#define S3C2400_PA_LCD (0x14A00000) 67#define S3C2400_PA_LCD (0x14A00000)
70#define S3C2410_PA_LCD (0x4D000000) 68#define S3C2410_PA_LCD (0x4D000000)
71#define S3C24XX_SZ_LCD SZ_1M 69#define S3C24XX_SZ_LCD SZ_1M
72 70
73/* NAND flash controller */ 71/* NAND flash controller */
74#define S3C24XX_VA_NAND S3C2410_ADDR(0x00700000)
75#define S3C2410_PA_NAND (0x4E000000) 72#define S3C2410_PA_NAND (0x4E000000)
76#define S3C24XX_SZ_NAND SZ_1M 73#define S3C24XX_SZ_NAND SZ_1M
77 74
78/* MMC controller - available on the S3C2400 */ 75/* MMC controller - available on the S3C2400 */
79#define S3C2400_VA_MMC S3C2400_ADDR(0x00700000)
80#define S3C2400_PA_MMC (0x15A00000) 76#define S3C2400_PA_MMC (0x15A00000)
81#define S3C2400_SZ_MMC SZ_1M 77#define S3C2400_SZ_MMC SZ_1M
82 78
83/* UARTs */ 79/* UARTs */
84#define S3C24XX_VA_UART S3C2410_ADDR(0x00800000) 80#define S3C24XX_VA_UART S3C2410_ADDR(0x00400000)
85#define S3C2400_PA_UART (0x15000000) 81#define S3C2400_PA_UART (0x15000000)
86#define S3C2410_PA_UART (0x50000000) 82#define S3C2410_PA_UART (0x50000000)
87#define S3C24XX_SZ_UART SZ_1M 83#define S3C24XX_SZ_UART SZ_1M
88 84
89/* Timers */ 85/* Timers */
90#define S3C24XX_VA_TIMER S3C2410_ADDR(0x00900000) 86#define S3C24XX_VA_TIMER S3C2410_ADDR(0x00500000)
91#define S3C2400_PA_TIMER (0x15100000) 87#define S3C2400_PA_TIMER (0x15100000)
92#define S3C2410_PA_TIMER (0x51000000) 88#define S3C2410_PA_TIMER (0x51000000)
93#define S3C24XX_SZ_TIMER SZ_1M 89#define S3C24XX_SZ_TIMER SZ_1M
94 90
95/* USB Device port */ 91/* USB Device port */
96#define S3C24XX_VA_USBDEV S3C2410_ADDR(0x00A00000) 92#define S3C24XX_VA_USBDEV S3C2410_ADDR(0x00600000)
97#define S3C2400_PA_USBDEV (0x15200140) 93#define S3C2400_PA_USBDEV (0x15200140)
98#define S3C2410_PA_USBDEV (0x52000000) 94#define S3C2410_PA_USBDEV (0x52000000)
99#define S3C24XX_SZ_USBDEV SZ_1M 95#define S3C24XX_SZ_USBDEV SZ_1M
100 96
101/* Watchdog */ 97/* Watchdog */
102#define S3C24XX_VA_WATCHDOG S3C2410_ADDR(0x00B00000) 98#define S3C24XX_VA_WATCHDOG S3C2410_ADDR(0x00700000)
103#define S3C2400_PA_WATCHDOG (0x15300000) 99#define S3C2400_PA_WATCHDOG (0x15300000)
104#define S3C2410_PA_WATCHDOG (0x53000000) 100#define S3C2410_PA_WATCHDOG (0x53000000)
105#define S3C24XX_SZ_WATCHDOG SZ_1M 101#define S3C24XX_SZ_WATCHDOG SZ_1M
106 102
107/* IIC hardware controller */ 103/* IIC hardware controller */
108#define S3C24XX_VA_IIC S3C2410_ADDR(0x00C00000)
109#define S3C2400_PA_IIC (0x15400000) 104#define S3C2400_PA_IIC (0x15400000)
110#define S3C2410_PA_IIC (0x54000000) 105#define S3C2410_PA_IIC (0x54000000)
111#define S3C24XX_SZ_IIC SZ_1M 106#define S3C24XX_SZ_IIC SZ_1M
112 107
113#define VA_IIC_BASE (S3C24XX_VA_IIC)
114
115/* IIS controller */ 108/* IIS controller */
116#define S3C24XX_VA_IIS S3C2410_ADDR(0x00D00000)
117#define S3C2400_PA_IIS (0x15508000) 109#define S3C2400_PA_IIS (0x15508000)
118#define S3C2410_PA_IIS (0x55000000) 110#define S3C2410_PA_IIS (0x55000000)
119#define S3C24XX_SZ_IIS SZ_1M 111#define S3C24XX_SZ_IIS SZ_1M
@@ -134,25 +126,21 @@
134#define S3C24XX_SZ_GPIO SZ_1M 126#define S3C24XX_SZ_GPIO SZ_1M
135 127
136/* RTC */ 128/* RTC */
137#define S3C24XX_VA_RTC S3C2410_ADDR(0x00F00000)
138#define S3C2400_PA_RTC (0x15700040) 129#define S3C2400_PA_RTC (0x15700040)
139#define S3C2410_PA_RTC (0x57000000) 130#define S3C2410_PA_RTC (0x57000000)
140#define S3C24XX_SZ_RTC SZ_1M 131#define S3C24XX_SZ_RTC SZ_1M
141 132
142/* ADC */ 133/* ADC */
143#define S3C24XX_VA_ADC S3C2410_ADDR(0x01000000)
144#define S3C2400_PA_ADC (0x15800000) 134#define S3C2400_PA_ADC (0x15800000)
145#define S3C2410_PA_ADC (0x58000000) 135#define S3C2410_PA_ADC (0x58000000)
146#define S3C24XX_SZ_ADC SZ_1M 136#define S3C24XX_SZ_ADC SZ_1M
147 137
148/* SPI */ 138/* SPI */
149#define S3C24XX_VA_SPI S3C2410_ADDR(0x01100000)
150#define S3C2400_PA_SPI (0x15900000) 139#define S3C2400_PA_SPI (0x15900000)
151#define S3C2410_PA_SPI (0x59000000) 140#define S3C2410_PA_SPI (0x59000000)
152#define S3C24XX_SZ_SPI SZ_1M 141#define S3C24XX_SZ_SPI SZ_1M
153 142
154/* SDI */ 143/* SDI */
155#define S3C24XX_VA_SDI S3C2410_ADDR(0x01200000)
156#define S3C2410_PA_SDI (0x5A000000) 144#define S3C2410_PA_SDI (0x5A000000)
157#define S3C24XX_SZ_SDI SZ_1M 145#define S3C24XX_SZ_SDI SZ_1M
158 146
diff --git a/include/asm-arm/arch-s3c2410/nand.h b/include/asm-arm/arch-s3c2410/nand.h
index e350ae2acfc6..8816f7f9cee1 100644
--- a/include/asm-arm/arch-s3c2410/nand.h
+++ b/include/asm-arm/arch-s3c2410/nand.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/nand.h 1/* linux/include/asm-arm/arch-s3c2410/nand.h
2 * 2 *
3 * (c) 2004 Simtec Electronics 3 * Copyright (c) 2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - NAND device controller platfrom_device info 6 * S3C2410 - NAND device controller platfrom_device info
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/osiris-cpld.h b/include/asm-arm/arch-s3c2410/osiris-cpld.h
index e9d1ae1f354f..3b6498468d62 100644
--- a/include/asm-arm/arch-s3c2410/osiris-cpld.h
+++ b/include/asm-arm/arch-s3c2410/osiris-cpld.h
@@ -1,6 +1,6 @@
1/* linux/include/asm-arm/arch-s3c2410/osiris-cpld.h 1/* linux/include/asm-arm/arch-s3c2410/osiris-cpld.h
2 * 2 *
3 * (c) 2005 Simtec Electronics 3 * Copyright (c) 2005 Simtec Electronics
4 * http://www.simtec.co.uk/products/ 4 * http://www.simtec.co.uk/products/
5 * Ben Dooks <ben@simtec.co.uk> 5 * Ben Dooks <ben@simtec.co.uk>
6 * 6 *
diff --git a/include/asm-arm/arch-s3c2410/regs-serial.h b/include/asm-arm/arch-s3c2410/regs-serial.h
index 19c77da9c3fe..46f52401d132 100644
--- a/include/asm-arm/arch-s3c2410/regs-serial.h
+++ b/include/asm-arm/arch-s3c2410/regs-serial.h
@@ -197,7 +197,7 @@ struct s3c2410_uartcfg {
197 unsigned char hwport; /* hardware port number */ 197 unsigned char hwport; /* hardware port number */
198 unsigned char unused; 198 unsigned char unused;
199 unsigned short flags; 199 unsigned short flags;
200 unsigned long uart_flags; /* default uart flags */ 200 upf_t uart_flags; /* default uart flags */
201 201
202 unsigned long ucon; /* value of ucon for port */ 202 unsigned long ucon; /* value of ucon for port */
203 unsigned long ulcon; /* value of ulcon for port */ 203 unsigned long ulcon; /* value of ulcon for port */
diff --git a/include/asm-arm/arch-s3c2410/system.h b/include/asm-arm/arch-s3c2410/system.h
index 4f72a853a5cf..ecf250db45fb 100644
--- a/include/asm-arm/arch-s3c2410/system.h
+++ b/include/asm-arm/arch-s3c2410/system.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/system.h 1/* linux/include/asm-arm/arch-s3c2410/system.h
2 * 2 *
3 * (c) 2003 Simtec Electronics 3 * Copyright (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - System function defines and includes 6 * S3C2410 - System function defines and includes
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/timex.h b/include/asm-arm/arch-s3c2410/timex.h
index 703c337c5617..c16a99c5a59a 100644
--- a/include/asm-arm/arch-s3c2410/timex.h
+++ b/include/asm-arm/arch-s3c2410/timex.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/timex.h 1/* linux/include/asm-arm/arch-s3c2410/timex.h
2 * 2 *
3 * (c) 2003-2005 Simtec Electronics 3 * Copyright (c) 2003-2005 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - time parameters 6 * S3C2410 - time parameters
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/uncompress.h b/include/asm-arm/arch-s3c2410/uncompress.h
index 81b3e91c56ab..dcb2cef38f50 100644
--- a/include/asm-arm/arch-s3c2410/uncompress.h
+++ b/include/asm-arm/arch-s3c2410/uncompress.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/uncompress.h 1/* linux/include/asm-arm/arch-s3c2410/uncompress.h
2 * 2 *
3 * (c) 2003 Simtec Electronics 3 * Copyright (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - uncompress code 6 * S3C2410 - uncompress code
7 * 7 *
@@ -13,6 +13,7 @@
13#ifndef __ASM_ARCH_UNCOMPRESS_H 13#ifndef __ASM_ARCH_UNCOMPRESS_H
14#define __ASM_ARCH_UNCOMPRESS_H 14#define __ASM_ARCH_UNCOMPRESS_H
15 15
16typedef unsigned int upf_t; /* cannot include linux/serial_core.h */
16 17
17/* defines for UART registers */ 18/* defines for UART registers */
18#include "asm/arch/regs-serial.h" 19#include "asm/arch/regs-serial.h"
diff --git a/include/asm-arm/arch-s3c2410/usb-control.h b/include/asm-arm/arch-s3c2410/usb-control.h
index 35723569a17a..5bfa376e33dc 100644
--- a/include/asm-arm/arch-s3c2410/usb-control.h
+++ b/include/asm-arm/arch-s3c2410/usb-control.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/usb-control.h 1/* linux/include/asm-arm/arch-s3c2410/usb-control.h
2 * 2 *
3 * (c) 2004 Simtec Electronics 3 * Copyright (c) 2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * S3C2410 - usb port information 6 * S3C2410 - usb port information
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/vr1000-cpld.h b/include/asm-arm/arch-s3c2410/vr1000-cpld.h
index a341b1e1bd98..0557b0a5ab1d 100644
--- a/include/asm-arm/arch-s3c2410/vr1000-cpld.h
+++ b/include/asm-arm/arch-s3c2410/vr1000-cpld.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/vr1000-cpld.h 1/* linux/include/asm-arm/arch-s3c2410/vr1000-cpld.h
2 * 2 *
3 * (c) 2003 Simtec Electronics 3 * Copyright (c) 2003 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * VR1000 - CPLD control constants 6 * VR1000 - CPLD control constants
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/vr1000-irq.h b/include/asm-arm/arch-s3c2410/vr1000-irq.h
index c39a0ffa670d..890937083c61 100644
--- a/include/asm-arm/arch-s3c2410/vr1000-irq.h
+++ b/include/asm-arm/arch-s3c2410/vr1000-irq.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/vr1000-irq.h 1/* linux/include/asm-arm/arch-s3c2410/vr1000-irq.h
2 * 2 *
3 * (c) 2003,2004 Simtec Electronics 3 * Copyright (c) 2003,2004 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * Machine VR1000 - IRQ Number definitions 6 * Machine VR1000 - IRQ Number definitions
7 * 7 *
diff --git a/include/asm-arm/arch-s3c2410/vr1000-map.h b/include/asm-arm/arch-s3c2410/vr1000-map.h
index 1fe4db36c834..92a56a724a8c 100644
--- a/include/asm-arm/arch-s3c2410/vr1000-map.h
+++ b/include/asm-arm/arch-s3c2410/vr1000-map.h
@@ -1,7 +1,7 @@
1/* linux/include/asm-arm/arch-s3c2410/vr1000-map.h 1/* linux/include/asm-arm/arch-s3c2410/vr1000-map.h
2 * 2 *
3 * (c) 2003-2005 Simtec Electronics 3 * Copyright (c) 2003-2005 Simtec Electronics
4 * Ben Dooks <ben@simtec.co.uk> 4 * Ben Dooks <ben@simtec.co.uk>
5 * 5 *
6 * Machine VR1000 - Memory map definitions 6 * Machine VR1000 - Memory map definitions
7 * 7 *
diff --git a/include/asm-arm/elf.h b/include/asm-arm/elf.h
index 642382d2c9f0..3679a8a8922e 100644
--- a/include/asm-arm/elf.h
+++ b/include/asm-arm/elf.h
@@ -52,6 +52,7 @@ typedef struct user_fp elf_fpregset_t;
52#define HWCAP_EDSP 128 52#define HWCAP_EDSP 128
53#define HWCAP_JAVA 256 53#define HWCAP_JAVA 256
54#define HWCAP_IWMMXT 512 54#define HWCAP_IWMMXT 512
55#define HWCAP_CRUNCH 1024
55 56
56#ifdef __KERNEL__ 57#ifdef __KERNEL__
57#ifndef __ASSEMBLY__ 58#ifndef __ASSEMBLY__
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index e160aeb0138d..aa223fc546af 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -73,6 +73,7 @@
73#ifndef __ASSEMBLY__ 73#ifndef __ASSEMBLY__
74 74
75#include <linux/linkage.h> 75#include <linux/linkage.h>
76#include <linux/irqflags.h>
76 77
77struct thread_info; 78struct thread_info;
78struct task_struct; 79struct task_struct;
@@ -139,6 +140,9 @@ static inline int cpu_is_xsc3(void)
139#define cpu_is_xscale() 1 140#define cpu_is_xscale() 1
140#endif 141#endif
141 142
143extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
144extern unsigned long cr_alignment; /* defined in entry-armv.S */
145
142static inline unsigned int get_cr(void) 146static inline unsigned int get_cr(void)
143{ 147{
144 unsigned int val; 148 unsigned int val;
@@ -152,6 +156,10 @@ static inline void set_cr(unsigned int val)
152 : : "r" (val) : "cc"); 156 : : "r" (val) : "cc");
153} 157}
154 158
159#ifndef CONFIG_SMP
160extern void adjust_cr(unsigned long mask, unsigned long set);
161#endif
162
155#define CPACC_FULL(n) (3 << (n * 2)) 163#define CPACC_FULL(n) (3 << (n * 2))
156#define CPACC_SVC(n) (1 << (n * 2)) 164#define CPACC_SVC(n) (1 << (n * 2))
157#define CPACC_DISABLE(n) (0 << (n * 2)) 165#define CPACC_DISABLE(n) (0 << (n * 2))
@@ -170,29 +178,6 @@ static inline void set_copro_access(unsigned int val)
170 : : "r" (val) : "cc"); 178 : : "r" (val) : "cc");
171} 179}
172 180
173extern unsigned long cr_no_alignment; /* defined in entry-armv.S */
174extern unsigned long cr_alignment; /* defined in entry-armv.S */
175
176#ifndef CONFIG_SMP
177static inline void adjust_cr(unsigned long mask, unsigned long set)
178{
179 unsigned long flags, cr;
180
181 mask &= ~CR_A;
182
183 set &= mask;
184
185 local_irq_save(flags);
186
187 cr_no_alignment = (cr_no_alignment & ~mask) | set;
188 cr_alignment = (cr_alignment & ~mask) | set;
189
190 set_cr((get_cr() & ~mask) | set);
191
192 local_irq_restore(flags);
193}
194#endif
195
196#define UDBG_UNDEFINED (1 << 0) 181#define UDBG_UNDEFINED (1 << 0)
197#define UDBG_SYSCALL (1 << 1) 182#define UDBG_SYSCALL (1 << 1)
198#define UDBG_BADABORT (1 << 2) 183#define UDBG_BADABORT (1 << 2)
@@ -248,8 +233,6 @@ static inline void sched_cacheflush(void)
248{ 233{
249} 234}
250 235
251#include <linux/irqflags.h>
252
253#ifdef CONFIG_SMP 236#ifdef CONFIG_SMP
254 237
255#define smp_mb() mb() 238#define smp_mb() mb()
diff --git a/include/asm-arm/unistd.h b/include/asm-arm/unistd.h
index 32b06eb52819..97e7060000cf 100644
--- a/include/asm-arm/unistd.h
+++ b/include/asm-arm/unistd.h
@@ -360,6 +360,18 @@
360#define __NR_readlinkat (__NR_SYSCALL_BASE+332) 360#define __NR_readlinkat (__NR_SYSCALL_BASE+332)
361#define __NR_fchmodat (__NR_SYSCALL_BASE+333) 361#define __NR_fchmodat (__NR_SYSCALL_BASE+333)
362#define __NR_faccessat (__NR_SYSCALL_BASE+334) 362#define __NR_faccessat (__NR_SYSCALL_BASE+334)
363 /* 335 for pselect6 */
364 /* 336 for ppoll */
365#define __NR_unshare (__NR_SYSCALL_BASE+337)
366#define __NR_set_robust_list (__NR_SYSCALL_BASE+338)
367#define __NR_get_robust_list (__NR_SYSCALL_BASE+339)
368#define __NR_splice (__NR_SYSCALL_BASE+340)
369#define __NR_arm_sync_file_range (__NR_SYSCALL_BASE+341)
370#define __NR_tee (__NR_SYSCALL_BASE+342)
371#define __NR_vmsplice (__NR_SYSCALL_BASE+343)
372#define __NR_move_pages (__NR_SYSCALL_BASE+344)
373#define __NR_getcpu (__NR_SYSCALL_BASE+345)
374 /* 346 for epoll_pwait */
363 375
364/* 376/*
365 * The following SWIs are ARM private. 377 * The following SWIs are ARM private.
diff --git a/include/asm-sparc/bitops.h b/include/asm-sparc/bitops.h
index 04aa3318f76a..329e696e7751 100644
--- a/include/asm-sparc/bitops.h
+++ b/include/asm-sparc/bitops.h
@@ -14,6 +14,10 @@
14 14
15#ifdef __KERNEL__ 15#ifdef __KERNEL__
16 16
17extern unsigned long ___set_bit(unsigned long *addr, unsigned long mask);
18extern unsigned long ___clear_bit(unsigned long *addr, unsigned long mask);
19extern unsigned long ___change_bit(unsigned long *addr, unsigned long mask);
20
17/* 21/*
18 * Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0' 22 * Set bit 'nr' in 32-bit quantity at address 'addr' where bit '0'
19 * is in the highest of the four bytes and bit '31' is the high bit 23 * is in the highest of the four bytes and bit '31' is the high bit
@@ -22,134 +26,62 @@
22 */ 26 */
23static inline int test_and_set_bit(unsigned long nr, volatile unsigned long *addr) 27static inline int test_and_set_bit(unsigned long nr, volatile unsigned long *addr)
24{ 28{
25 register unsigned long mask asm("g2"); 29 unsigned long *ADDR, mask;
26 register unsigned long *ADDR asm("g1");
27 register int tmp1 asm("g3");
28 register int tmp2 asm("g4");
29 register int tmp3 asm("g5");
30 register int tmp4 asm("g7");
31 30
32 ADDR = ((unsigned long *) addr) + (nr >> 5); 31 ADDR = ((unsigned long *) addr) + (nr >> 5);
33 mask = 1 << (nr & 31); 32 mask = 1 << (nr & 31);
34 33
35 __asm__ __volatile__( 34 return ___set_bit(ADDR, mask) != 0;
36 "mov %%o7, %%g4\n\t"
37 "call ___set_bit\n\t"
38 " add %%o7, 8, %%o7\n"
39 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
40 : "0" (mask), "r" (ADDR)
41 : "memory", "cc");
42
43 return mask != 0;
44} 35}
45 36
46static inline void set_bit(unsigned long nr, volatile unsigned long *addr) 37static inline void set_bit(unsigned long nr, volatile unsigned long *addr)
47{ 38{
48 register unsigned long mask asm("g2"); 39 unsigned long *ADDR, mask;
49 register unsigned long *ADDR asm("g1");
50 register int tmp1 asm("g3");
51 register int tmp2 asm("g4");
52 register int tmp3 asm("g5");
53 register int tmp4 asm("g7");
54 40
55 ADDR = ((unsigned long *) addr) + (nr >> 5); 41 ADDR = ((unsigned long *) addr) + (nr >> 5);
56 mask = 1 << (nr & 31); 42 mask = 1 << (nr & 31);
57 43
58 __asm__ __volatile__( 44 (void) ___set_bit(ADDR, mask);
59 "mov %%o7, %%g4\n\t"
60 "call ___set_bit\n\t"
61 " add %%o7, 8, %%o7\n"
62 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
63 : "0" (mask), "r" (ADDR)
64 : "memory", "cc");
65} 45}
66 46
67static inline int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr) 47static inline int test_and_clear_bit(unsigned long nr, volatile unsigned long *addr)
68{ 48{
69 register unsigned long mask asm("g2"); 49 unsigned long *ADDR, mask;
70 register unsigned long *ADDR asm("g1");
71 register int tmp1 asm("g3");
72 register int tmp2 asm("g4");
73 register int tmp3 asm("g5");
74 register int tmp4 asm("g7");
75 50
76 ADDR = ((unsigned long *) addr) + (nr >> 5); 51 ADDR = ((unsigned long *) addr) + (nr >> 5);
77 mask = 1 << (nr & 31); 52 mask = 1 << (nr & 31);
78 53
79 __asm__ __volatile__( 54 return ___clear_bit(ADDR, mask) != 0;
80 "mov %%o7, %%g4\n\t"
81 "call ___clear_bit\n\t"
82 " add %%o7, 8, %%o7\n"
83 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
84 : "0" (mask), "r" (ADDR)
85 : "memory", "cc");
86
87 return mask != 0;
88} 55}
89 56
90static inline void clear_bit(unsigned long nr, volatile unsigned long *addr) 57static inline void clear_bit(unsigned long nr, volatile unsigned long *addr)
91{ 58{
92 register unsigned long mask asm("g2"); 59 unsigned long *ADDR, mask;
93 register unsigned long *ADDR asm("g1");
94 register int tmp1 asm("g3");
95 register int tmp2 asm("g4");
96 register int tmp3 asm("g5");
97 register int tmp4 asm("g7");
98 60
99 ADDR = ((unsigned long *) addr) + (nr >> 5); 61 ADDR = ((unsigned long *) addr) + (nr >> 5);
100 mask = 1 << (nr & 31); 62 mask = 1 << (nr & 31);
101 63
102 __asm__ __volatile__( 64 (void) ___clear_bit(ADDR, mask);
103 "mov %%o7, %%g4\n\t"
104 "call ___clear_bit\n\t"
105 " add %%o7, 8, %%o7\n"
106 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
107 : "0" (mask), "r" (ADDR)
108 : "memory", "cc");
109} 65}
110 66
111static inline int test_and_change_bit(unsigned long nr, volatile unsigned long *addr) 67static inline int test_and_change_bit(unsigned long nr, volatile unsigned long *addr)
112{ 68{
113 register unsigned long mask asm("g2"); 69 unsigned long *ADDR, mask;
114 register unsigned long *ADDR asm("g1");
115 register int tmp1 asm("g3");
116 register int tmp2 asm("g4");
117 register int tmp3 asm("g5");
118 register int tmp4 asm("g7");
119 70
120 ADDR = ((unsigned long *) addr) + (nr >> 5); 71 ADDR = ((unsigned long *) addr) + (nr >> 5);
121 mask = 1 << (nr & 31); 72 mask = 1 << (nr & 31);
122 73
123 __asm__ __volatile__( 74 return ___change_bit(ADDR, mask) != 0;
124 "mov %%o7, %%g4\n\t"
125 "call ___change_bit\n\t"
126 " add %%o7, 8, %%o7\n"
127 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
128 : "0" (mask), "r" (ADDR)
129 : "memory", "cc");
130
131 return mask != 0;
132} 75}
133 76
134static inline void change_bit(unsigned long nr, volatile unsigned long *addr) 77static inline void change_bit(unsigned long nr, volatile unsigned long *addr)
135{ 78{
136 register unsigned long mask asm("g2"); 79 unsigned long *ADDR, mask;
137 register unsigned long *ADDR asm("g1");
138 register int tmp1 asm("g3");
139 register int tmp2 asm("g4");
140 register int tmp3 asm("g5");
141 register int tmp4 asm("g7");
142 80
143 ADDR = ((unsigned long *) addr) + (nr >> 5); 81 ADDR = ((unsigned long *) addr) + (nr >> 5);
144 mask = 1 << (nr & 31); 82 mask = 1 << (nr & 31);
145 83
146 __asm__ __volatile__( 84 (void) ___change_bit(ADDR, mask);
147 "mov %%o7, %%g4\n\t"
148 "call ___change_bit\n\t"
149 " add %%o7, 8, %%o7\n"
150 : "=&r" (mask), "=r" (tmp1), "=r" (tmp2), "=r" (tmp3), "=r" (tmp4)
151 : "0" (mask), "r" (ADDR)
152 : "memory", "cc");
153} 85}
154 86
155#include <asm-generic/bitops/non-atomic.h> 87#include <asm-generic/bitops/non-atomic.h>
diff --git a/include/asm-sparc64/hw_irq.h b/include/asm-sparc64/hw_irq.h
index 599b3b073450..8e44a8360829 100644
--- a/include/asm-sparc64/hw_irq.h
+++ b/include/asm-sparc64/hw_irq.h
@@ -1,6 +1,4 @@
1#ifndef __ASM_SPARC64_HW_IRQ_H 1#ifndef __ASM_SPARC64_HW_IRQ_H
2#define __ASM_SPARC64_HW_IRQ_H 2#define __ASM_SPARC64_HW_IRQ_H
3 3
4extern void hw_resend_irq(struct hw_interrupt_type *handler, unsigned int virt_irq);
5
6#endif 4#endif
diff --git a/include/asm-sparc64/percpu.h b/include/asm-sparc64/percpu.h
index ced8cbde046d..0d3df76aa47f 100644
--- a/include/asm-sparc64/percpu.h
+++ b/include/asm-sparc64/percpu.h
@@ -5,6 +5,16 @@
5 5
6#ifdef CONFIG_SMP 6#ifdef CONFIG_SMP
7 7
8#ifdef CONFIG_MODULES
9# define PERCPU_MODULE_RESERVE 8192
10#else
11# define PERCPU_MODULE_RESERVE 0
12#endif
13
14#define PERCPU_ENOUGH_ROOM \
15 (ALIGN(__per_cpu_end - __per_cpu_start, SMP_CACHE_BYTES) + \
16 PERCPU_MODULE_RESERVE)
17
8extern void setup_per_cpu_areas(void); 18extern void setup_per_cpu_areas(void);
9 19
10extern unsigned long __per_cpu_base; 20extern unsigned long __per_cpu_base;
diff --git a/include/linux/connector.h b/include/linux/connector.h
index 3ea1cd58de97..10eb56b2940a 100644
--- a/include/linux/connector.h
+++ b/include/linux/connector.h
@@ -133,7 +133,7 @@ struct cn_callback_data {
133struct cn_callback_entry { 133struct cn_callback_entry {
134 struct list_head callback_entry; 134 struct list_head callback_entry;
135 struct cn_callback *cb; 135 struct cn_callback *cb;
136 struct delayed_work work; 136 struct work_struct work;
137 struct cn_queue_dev *pdev; 137 struct cn_queue_dev *pdev;
138 138
139 struct cn_callback_id id; 139 struct cn_callback_id id;
diff --git a/include/linux/input.h b/include/linux/input.h
index 4e61158b06a0..bde65c8a3519 100644
--- a/include/linux/input.h
+++ b/include/linux/input.h
@@ -491,6 +491,21 @@ struct input_absinfo {
491#define KEY_DIGITS 0x19d 491#define KEY_DIGITS 0x19d
492#define KEY_TEEN 0x19e 492#define KEY_TEEN 0x19e
493#define KEY_TWEN 0x19f 493#define KEY_TWEN 0x19f
494#define KEY_VIDEOPHONE 0x1a0
495#define KEY_GAMES 0x1a1
496#define KEY_ZOOMIN 0x1a2
497#define KEY_ZOOMOUT 0x1a3
498#define KEY_ZOOMRESET 0x1a4
499#define KEY_WORDPROCESSOR 0x1a5
500#define KEY_EDITOR 0x1a6
501#define KEY_SPREADSHEET 0x1a7
502#define KEY_GRAPHICSEDITOR 0x1a8
503#define KEY_PRESENTATION 0x1a9
504#define KEY_DATABASE 0x1aa
505#define KEY_NEWS 0x1ab
506#define KEY_VOICEMAIL 0x1ac
507#define KEY_ADDRESSBOOK 0x1ad
508#define KEY_MESSENGER 0x1ae
494 509
495#define KEY_DEL_EOL 0x1c0 510#define KEY_DEL_EOL 0x1c0
496#define KEY_DEL_EOS 0x1c1 511#define KEY_DEL_EOS 0x1c1
diff --git a/include/net/ax25.h b/include/net/ax25.h
index 14b72d868f03..5ae10dd2e32e 100644
--- a/include/net/ax25.h
+++ b/include/net/ax25.h
@@ -277,7 +277,7 @@ struct sock *ax25_get_socket(ax25_address *, ax25_address *, int);
277extern ax25_cb *ax25_find_cb(ax25_address *, ax25_address *, ax25_digi *, struct net_device *); 277extern ax25_cb *ax25_find_cb(ax25_address *, ax25_address *, ax25_digi *, struct net_device *);
278extern void ax25_send_to_raw(ax25_address *, struct sk_buff *, int); 278extern void ax25_send_to_raw(ax25_address *, struct sk_buff *, int);
279extern void ax25_destroy_socket(ax25_cb *); 279extern void ax25_destroy_socket(ax25_cb *);
280extern ax25_cb *ax25_create_cb(void); 280extern ax25_cb * __must_check ax25_create_cb(void);
281extern void ax25_fillin_cb(ax25_cb *, ax25_dev *); 281extern void ax25_fillin_cb(ax25_cb *, ax25_dev *);
282extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *); 282extern struct sock *ax25_make_new(struct sock *, struct ax25_dev *);
283 283
@@ -333,11 +333,25 @@ extern void ax25_ds_t3timer_expiry(ax25_cb *);
333extern void ax25_ds_idletimer_expiry(ax25_cb *); 333extern void ax25_ds_idletimer_expiry(ax25_cb *);
334 334
335/* ax25_iface.c */ 335/* ax25_iface.c */
336extern int ax25_protocol_register(unsigned int, int (*)(struct sk_buff *, ax25_cb *)); 336
337struct ax25_protocol {
338 struct ax25_protocol *next;
339 unsigned int pid;
340 int (*func)(struct sk_buff *, ax25_cb *);
341};
342
343extern void ax25_register_pid(struct ax25_protocol *ap);
337extern void ax25_protocol_release(unsigned int); 344extern void ax25_protocol_release(unsigned int);
338extern int ax25_linkfail_register(void (*)(ax25_cb *, int)); 345
339extern void ax25_linkfail_release(void (*)(ax25_cb *, int)); 346struct ax25_linkfail {
340extern int ax25_listen_register(ax25_address *, struct net_device *); 347 struct hlist_node lf_node;
348 void (*func)(ax25_cb *, int);
349};
350
351extern void ax25_linkfail_register(struct ax25_linkfail *lf);
352extern void ax25_linkfail_release(struct ax25_linkfail *lf);
353extern int __must_check ax25_listen_register(ax25_address *,
354 struct net_device *);
341extern void ax25_listen_release(ax25_address *, struct net_device *); 355extern void ax25_listen_release(ax25_address *, struct net_device *);
342extern int (*ax25_protocol_function(unsigned int))(struct sk_buff *, ax25_cb *); 356extern int (*ax25_protocol_function(unsigned int))(struct sk_buff *, ax25_cb *);
343extern int ax25_listen_mine(ax25_address *, struct net_device *); 357extern int ax25_listen_mine(ax25_address *, struct net_device *);
@@ -415,7 +429,7 @@ extern unsigned long ax25_display_timer(struct timer_list *);
415/* ax25_uid.c */ 429/* ax25_uid.c */
416extern int ax25_uid_policy; 430extern int ax25_uid_policy;
417extern ax25_uid_assoc *ax25_findbyuid(uid_t); 431extern ax25_uid_assoc *ax25_findbyuid(uid_t);
418extern int ax25_uid_ioctl(int, struct sockaddr_ax25 *); 432extern int __must_check ax25_uid_ioctl(int, struct sockaddr_ax25 *);
419extern struct file_operations ax25_uid_fops; 433extern struct file_operations ax25_uid_fops;
420extern void ax25_uid_free(void); 434extern void ax25_uid_free(void);
421 435
diff --git a/include/net/rose.h b/include/net/rose.h
index 012b09ed2401..4c05a88b921b 100644
--- a/include/net/rose.h
+++ b/include/net/rose.h
@@ -188,13 +188,13 @@ extern void rose_kick(struct sock *);
188extern void rose_enquiry_response(struct sock *); 188extern void rose_enquiry_response(struct sock *);
189 189
190/* rose_route.c */ 190/* rose_route.c */
191extern struct rose_neigh *rose_loopback_neigh; 191extern struct rose_neigh rose_loopback_neigh;
192extern struct file_operations rose_neigh_fops; 192extern struct file_operations rose_neigh_fops;
193extern struct file_operations rose_nodes_fops; 193extern struct file_operations rose_nodes_fops;
194extern struct file_operations rose_routes_fops; 194extern struct file_operations rose_routes_fops;
195 195
196extern int rose_add_loopback_neigh(void); 196extern void rose_add_loopback_neigh(void);
197extern int rose_add_loopback_node(rose_address *); 197extern int __must_check rose_add_loopback_node(rose_address *);
198extern void rose_del_loopback_node(rose_address *); 198extern void rose_del_loopback_node(rose_address *);
199extern void rose_rt_device_down(struct net_device *); 199extern void rose_rt_device_down(struct net_device *);
200extern void rose_link_device_down(struct net_device *); 200extern void rose_link_device_down(struct net_device *);
diff --git a/include/sound/pcm_oss.h b/include/sound/pcm_oss.h
index c854647b6f3c..1cd4f64cdf31 100644
--- a/include/sound/pcm_oss.h
+++ b/include/sound/pcm_oss.h
@@ -56,6 +56,7 @@ struct snd_pcm_oss_runtime {
56 size_t mmap_bytes; 56 size_t mmap_bytes;
57 char *buffer; /* vmallocated period */ 57 char *buffer; /* vmallocated period */
58 size_t buffer_used; /* used length from period buffer */ 58 size_t buffer_used; /* used length from period buffer */
59 struct mutex params_lock;
59#ifdef CONFIG_SND_PCM_OSS_PLUGINS 60#ifdef CONFIG_SND_PCM_OSS_PLUGINS
60 struct snd_pcm_plugin *plugin_first; 61 struct snd_pcm_plugin *plugin_first;
61 struct snd_pcm_plugin *plugin_last; 62 struct snd_pcm_plugin *plugin_last;
diff --git a/include/sound/version.h b/include/sound/version.h
index 17137f3a3b6f..2949b9b991b5 100644
--- a/include/sound/version.h
+++ b/include/sound/version.h
@@ -1,3 +1,3 @@
1/* include/version.h. Generated by alsa/ksync script. */ 1/* include/version.h. Generated by alsa/ksync script. */
2#define CONFIG_SND_VERSION "1.0.13" 2#define CONFIG_SND_VERSION "1.0.14rc1"
3#define CONFIG_SND_DATE " (Tue Nov 28 14:07:24 2006 UTC)" 3#define CONFIG_SND_DATE " (Wed Dec 20 08:11:48 2006 UTC)"
diff --git a/include/sound/ymfpci.h b/include/sound/ymfpci.h
index d41cda97e952..f3514ee96bd9 100644
--- a/include/sound/ymfpci.h
+++ b/include/sound/ymfpci.h
@@ -286,7 +286,7 @@ struct snd_ymfpci {
286 int irq; 286 int irq;
287 287
288 unsigned int device_id; /* PCI device ID */ 288 unsigned int device_id; /* PCI device ID */
289 unsigned int rev; /* PCI revision */ 289 unsigned char rev; /* PCI revision */
290 unsigned long reg_area_phys; 290 unsigned long reg_area_phys;
291 void __iomem *reg_area_virt; 291 void __iomem *reg_area_virt;
292 struct resource *res_reg_area; 292 struct resource *res_reg_area;
@@ -345,7 +345,6 @@ struct snd_ymfpci {
345 struct snd_kcontrol *spdif_pcm_ctl; 345 struct snd_kcontrol *spdif_pcm_ctl;
346 int mode_dup4ch; 346 int mode_dup4ch;
347 int rear_opened; 347 int rear_opened;
348 int rear_swap;
349 int spdif_opened; 348 int spdif_opened;
350 struct { 349 struct {
351 u16 left; 350 u16 left;
@@ -378,7 +377,7 @@ int snd_ymfpci_pcm(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
378int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); 377int snd_ymfpci_pcm2(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
379int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); 378int snd_ymfpci_pcm_spdif(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
380int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm); 379int snd_ymfpci_pcm_4ch(struct snd_ymfpci *chip, int device, struct snd_pcm **rpcm);
381int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap); 380int snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch);
382int snd_ymfpci_timer(struct snd_ymfpci *chip, int device); 381int snd_ymfpci_timer(struct snd_ymfpci *chip, int device);
383 382
384#endif /* __SOUND_YMFPCI_H */ 383#endif /* __SOUND_YMFPCI_H */
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index 6cabf6d8a751..42233df2b099 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -1088,8 +1088,8 @@ out:
1088/* 1088/*
1089 * FIXME: nonblock behaviour looks like it may have a bug. 1089 * FIXME: nonblock behaviour looks like it may have a bug.
1090 */ 1090 */
1091static int ax25_connect(struct socket *sock, struct sockaddr *uaddr, 1091static int __must_check ax25_connect(struct socket *sock,
1092 int addr_len, int flags) 1092 struct sockaddr *uaddr, int addr_len, int flags)
1093{ 1093{
1094 struct sock *sk = sock->sk; 1094 struct sock *sk = sock->sk;
1095 ax25_cb *ax25 = ax25_sk(sk), *ax25t; 1095 ax25_cb *ax25 = ax25_sk(sk), *ax25t;
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c
index 07ac0207eb69..aff3e652c2d1 100644
--- a/net/ax25/ax25_iface.c
+++ b/net/ax25/ax25_iface.c
@@ -29,17 +29,10 @@
29#include <linux/mm.h> 29#include <linux/mm.h>
30#include <linux/interrupt.h> 30#include <linux/interrupt.h>
31 31
32static struct protocol_struct { 32static struct ax25_protocol *protocol_list;
33 struct protocol_struct *next;
34 unsigned int pid;
35 int (*func)(struct sk_buff *, ax25_cb *);
36} *protocol_list = NULL;
37static DEFINE_RWLOCK(protocol_list_lock); 33static DEFINE_RWLOCK(protocol_list_lock);
38 34
39static struct linkfail_struct { 35static HLIST_HEAD(ax25_linkfail_list);
40 struct linkfail_struct *next;
41 void (*func)(ax25_cb *, int);
42} *linkfail_list = NULL;
43static DEFINE_SPINLOCK(linkfail_lock); 36static DEFINE_SPINLOCK(linkfail_lock);
44 37
45static struct listen_struct { 38static struct listen_struct {
@@ -49,36 +42,23 @@ static struct listen_struct {
49} *listen_list = NULL; 42} *listen_list = NULL;
50static DEFINE_SPINLOCK(listen_lock); 43static DEFINE_SPINLOCK(listen_lock);
51 44
52int ax25_protocol_register(unsigned int pid, 45/*
53 int (*func)(struct sk_buff *, ax25_cb *)) 46 * Do not register the internal protocols AX25_P_TEXT, AX25_P_SEGMENT,
47 * AX25_P_IP or AX25_P_ARP ...
48 */
49void ax25_register_pid(struct ax25_protocol *ap)
54{ 50{
55 struct protocol_struct *protocol;
56
57 if (pid == AX25_P_TEXT || pid == AX25_P_SEGMENT)
58 return 0;
59#ifdef CONFIG_INET
60 if (pid == AX25_P_IP || pid == AX25_P_ARP)
61 return 0;
62#endif
63 if ((protocol = kmalloc(sizeof(*protocol), GFP_ATOMIC)) == NULL)
64 return 0;
65
66 protocol->pid = pid;
67 protocol->func = func;
68
69 write_lock_bh(&protocol_list_lock); 51 write_lock_bh(&protocol_list_lock);
70 protocol->next = protocol_list; 52 ap->next = protocol_list;
71 protocol_list = protocol; 53 protocol_list = ap;
72 write_unlock_bh(&protocol_list_lock); 54 write_unlock_bh(&protocol_list_lock);
73
74 return 1;
75} 55}
76 56
77EXPORT_SYMBOL(ax25_protocol_register); 57EXPORT_SYMBOL_GPL(ax25_register_pid);
78 58
79void ax25_protocol_release(unsigned int pid) 59void ax25_protocol_release(unsigned int pid)
80{ 60{
81 struct protocol_struct *s, *protocol; 61 struct ax25_protocol *s, *protocol;
82 62
83 write_lock_bh(&protocol_list_lock); 63 write_lock_bh(&protocol_list_lock);
84 protocol = protocol_list; 64 protocol = protocol_list;
@@ -110,54 +90,19 @@ void ax25_protocol_release(unsigned int pid)
110 90
111EXPORT_SYMBOL(ax25_protocol_release); 91EXPORT_SYMBOL(ax25_protocol_release);
112 92
113int ax25_linkfail_register(void (*func)(ax25_cb *, int)) 93void ax25_linkfail_register(struct ax25_linkfail *lf)
114{ 94{
115 struct linkfail_struct *linkfail;
116
117 if ((linkfail = kmalloc(sizeof(*linkfail), GFP_ATOMIC)) == NULL)
118 return 0;
119
120 linkfail->func = func;
121
122 spin_lock_bh(&linkfail_lock); 95 spin_lock_bh(&linkfail_lock);
123 linkfail->next = linkfail_list; 96 hlist_add_head(&lf->lf_node, &ax25_linkfail_list);
124 linkfail_list = linkfail;
125 spin_unlock_bh(&linkfail_lock); 97 spin_unlock_bh(&linkfail_lock);
126
127 return 1;
128} 98}
129 99
130EXPORT_SYMBOL(ax25_linkfail_register); 100EXPORT_SYMBOL(ax25_linkfail_register);
131 101
132void ax25_linkfail_release(void (*func)(ax25_cb *, int)) 102void ax25_linkfail_release(struct ax25_linkfail *lf)
133{ 103{
134 struct linkfail_struct *s, *linkfail;
135
136 spin_lock_bh(&linkfail_lock); 104 spin_lock_bh(&linkfail_lock);
137 linkfail = linkfail_list; 105 hlist_del_init(&lf->lf_node);
138 if (linkfail == NULL) {
139 spin_unlock_bh(&linkfail_lock);
140 return;
141 }
142
143 if (linkfail->func == func) {
144 linkfail_list = linkfail->next;
145 spin_unlock_bh(&linkfail_lock);
146 kfree(linkfail);
147 return;
148 }
149
150 while (linkfail != NULL && linkfail->next != NULL) {
151 if (linkfail->next->func == func) {
152 s = linkfail->next;
153 linkfail->next = linkfail->next->next;
154 spin_unlock_bh(&linkfail_lock);
155 kfree(s);
156 return;
157 }
158
159 linkfail = linkfail->next;
160 }
161 spin_unlock_bh(&linkfail_lock); 106 spin_unlock_bh(&linkfail_lock);
162} 107}
163 108
@@ -171,7 +116,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev)
171 return 0; 116 return 0;
172 117
173 if ((listen = kmalloc(sizeof(*listen), GFP_ATOMIC)) == NULL) 118 if ((listen = kmalloc(sizeof(*listen), GFP_ATOMIC)) == NULL)
174 return 0; 119 return -ENOMEM;
175 120
176 listen->callsign = *callsign; 121 listen->callsign = *callsign;
177 listen->dev = dev; 122 listen->dev = dev;
@@ -181,7 +126,7 @@ int ax25_listen_register(ax25_address *callsign, struct net_device *dev)
181 listen_list = listen; 126 listen_list = listen;
182 spin_unlock_bh(&listen_lock); 127 spin_unlock_bh(&listen_lock);
183 128
184 return 1; 129 return 0;
185} 130}
186 131
187EXPORT_SYMBOL(ax25_listen_register); 132EXPORT_SYMBOL(ax25_listen_register);
@@ -223,7 +168,7 @@ EXPORT_SYMBOL(ax25_listen_release);
223int (*ax25_protocol_function(unsigned int pid))(struct sk_buff *, ax25_cb *) 168int (*ax25_protocol_function(unsigned int pid))(struct sk_buff *, ax25_cb *)
224{ 169{
225 int (*res)(struct sk_buff *, ax25_cb *) = NULL; 170 int (*res)(struct sk_buff *, ax25_cb *) = NULL;
226 struct protocol_struct *protocol; 171 struct ax25_protocol *protocol;
227 172
228 read_lock(&protocol_list_lock); 173 read_lock(&protocol_list_lock);
229 for (protocol = protocol_list; protocol != NULL; protocol = protocol->next) 174 for (protocol = protocol_list; protocol != NULL; protocol = protocol->next)
@@ -242,7 +187,8 @@ int ax25_listen_mine(ax25_address *callsign, struct net_device *dev)
242 187
243 spin_lock_bh(&listen_lock); 188 spin_lock_bh(&listen_lock);
244 for (listen = listen_list; listen != NULL; listen = listen->next) 189 for (listen = listen_list; listen != NULL; listen = listen->next)
245 if (ax25cmp(&listen->callsign, callsign) == 0 && (listen->dev == dev || listen->dev == NULL)) { 190 if (ax25cmp(&listen->callsign, callsign) == 0 &&
191 (listen->dev == dev || listen->dev == NULL)) {
246 spin_unlock_bh(&listen_lock); 192 spin_unlock_bh(&listen_lock);
247 return 1; 193 return 1;
248 } 194 }
@@ -253,17 +199,18 @@ int ax25_listen_mine(ax25_address *callsign, struct net_device *dev)
253 199
254void ax25_link_failed(ax25_cb *ax25, int reason) 200void ax25_link_failed(ax25_cb *ax25, int reason)
255{ 201{
256 struct linkfail_struct *linkfail; 202 struct ax25_linkfail *lf;
203 struct hlist_node *node;
257 204
258 spin_lock_bh(&linkfail_lock); 205 spin_lock_bh(&linkfail_lock);
259 for (linkfail = linkfail_list; linkfail != NULL; linkfail = linkfail->next) 206 hlist_for_each_entry(lf, node, &ax25_linkfail_list, lf_node)
260 (linkfail->func)(ax25, reason); 207 lf->func(ax25, reason);
261 spin_unlock_bh(&linkfail_lock); 208 spin_unlock_bh(&linkfail_lock);
262} 209}
263 210
264int ax25_protocol_is_registered(unsigned int pid) 211int ax25_protocol_is_registered(unsigned int pid)
265{ 212{
266 struct protocol_struct *protocol; 213 struct ax25_protocol *protocol;
267 int res = 0; 214 int res = 0;
268 215
269 read_lock_bh(&protocol_list_lock); 216 read_lock_bh(&protocol_list_lock);
diff --git a/net/ax25/ax25_route.c b/net/ax25/ax25_route.c
index 8580356ace5c..0a0381622b1c 100644
--- a/net/ax25/ax25_route.c
+++ b/net/ax25/ax25_route.c
@@ -71,7 +71,7 @@ void ax25_rt_device_down(struct net_device *dev)
71 write_unlock(&ax25_route_lock); 71 write_unlock(&ax25_route_lock);
72} 72}
73 73
74static int ax25_rt_add(struct ax25_routes_struct *route) 74static int __must_check ax25_rt_add(struct ax25_routes_struct *route)
75{ 75{
76 ax25_route *ax25_rt; 76 ax25_route *ax25_rt;
77 ax25_dev *ax25_dev; 77 ax25_dev *ax25_dev;
diff --git a/net/ipv4/route.c b/net/ipv4/route.c
index 1aaff0a2e098..2daa0dc19d33 100644
--- a/net/ipv4/route.c
+++ b/net/ipv4/route.c
@@ -1325,7 +1325,8 @@ void ip_rt_send_redirect(struct sk_buff *skb)
1325 /* Check for load limit; set rate_last to the latest sent 1325 /* Check for load limit; set rate_last to the latest sent
1326 * redirect. 1326 * redirect.
1327 */ 1327 */
1328 if (time_after(jiffies, 1328 if (rt->u.dst.rate_tokens == 0 ||
1329 time_after(jiffies,
1329 (rt->u.dst.rate_last + 1330 (rt->u.dst.rate_last +
1330 (ip_rt_redirect_load << rt->u.dst.rate_tokens)))) { 1331 (ip_rt_redirect_load << rt->u.dst.rate_tokens)))) {
1331 icmp_send(skb, ICMP_REDIRECT, ICMP_REDIR_HOST, rt->rt_gateway); 1332 icmp_send(skb, ICMP_REDIRECT, ICMP_REDIR_HOST, rt->rt_gateway);
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
index a1222d6968c4..bf7a22412bcb 100644
--- a/net/ipv4/tcp_ipv4.c
+++ b/net/ipv4/tcp_ipv4.c
@@ -928,6 +928,7 @@ int tcp_v4_md5_do_del(struct sock *sk, __be32 addr)
928 if (tp->md5sig_info->entries4 == 0) { 928 if (tp->md5sig_info->entries4 == 0) {
929 kfree(tp->md5sig_info->keys4); 929 kfree(tp->md5sig_info->keys4);
930 tp->md5sig_info->keys4 = NULL; 930 tp->md5sig_info->keys4 = NULL;
931 tp->md5sig_info->alloced4 = 0;
931 } else if (tp->md5sig_info->entries4 != i) { 932 } else if (tp->md5sig_info->entries4 != i) {
932 /* Need to do some manipulation */ 933 /* Need to do some manipulation */
933 memcpy(&tp->md5sig_info->keys4[i], 934 memcpy(&tp->md5sig_info->keys4[i],
@@ -1185,7 +1186,7 @@ done_opts:
1185 return 0; 1186 return 0;
1186 1187
1187 if (hash_expected && !hash_location) { 1188 if (hash_expected && !hash_location) {
1188 LIMIT_NETDEBUG(KERN_INFO "MD5 Hash NOT expected but found " 1189 LIMIT_NETDEBUG(KERN_INFO "MD5 Hash expected but NOT found "
1189 "(" NIPQUAD_FMT ", %d)->(" NIPQUAD_FMT ", %d)\n", 1190 "(" NIPQUAD_FMT ", %d)->(" NIPQUAD_FMT ", %d)\n",
1190 NIPQUAD(iph->saddr), ntohs(th->source), 1191 NIPQUAD(iph->saddr), ntohs(th->source),
1191 NIPQUAD(iph->daddr), ntohs(th->dest)); 1192 NIPQUAD(iph->daddr), ntohs(th->dest));
diff --git a/net/ipv6/netfilter/Kconfig b/net/ipv6/netfilter/Kconfig
index fc3e5eb4bc3f..adcd6131df2a 100644
--- a/net/ipv6/netfilter/Kconfig
+++ b/net/ipv6/netfilter/Kconfig
@@ -7,7 +7,7 @@ menu "IPv6: Netfilter Configuration (EXPERIMENTAL)"
7 7
8config NF_CONNTRACK_IPV6 8config NF_CONNTRACK_IPV6
9 tristate "IPv6 connection tracking support (EXPERIMENTAL)" 9 tristate "IPv6 connection tracking support (EXPERIMENTAL)"
10 depends on EXPERIMENTAL && NF_CONNTRACK 10 depends on INET && IPV6 && EXPERIMENTAL && NF_CONNTRACK
11 ---help--- 11 ---help---
12 Connection tracking keeps a record of what packets have passed 12 Connection tracking keeps a record of what packets have passed
13 through your machine, in order to figure out how they are related 13 through your machine, in order to figure out how they are related
@@ -21,6 +21,7 @@ config NF_CONNTRACK_IPV6
21 21
22config IP6_NF_QUEUE 22config IP6_NF_QUEUE
23 tristate "IP6 Userspace queueing via NETLINK (OBSOLETE)" 23 tristate "IP6 Userspace queueing via NETLINK (OBSOLETE)"
24 depends on INET && IPV6 && NETFILTER && EXPERIMENTAL
24 ---help--- 25 ---help---
25 26
26 This option adds a queue handler to the kernel for IPv6 27 This option adds a queue handler to the kernel for IPv6
@@ -41,7 +42,7 @@ config IP6_NF_QUEUE
41 42
42config IP6_NF_IPTABLES 43config IP6_NF_IPTABLES
43 tristate "IP6 tables support (required for filtering)" 44 tristate "IP6 tables support (required for filtering)"
44 depends on NETFILTER_XTABLES 45 depends on INET && IPV6 && EXPERIMENTAL && NETFILTER_XTABLES
45 help 46 help
46 ip6tables is a general, extensible packet identification framework. 47 ip6tables is a general, extensible packet identification framework.
47 Currently only the packet filtering and packet mangling subsystem 48 Currently only the packet filtering and packet mangling subsystem
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index 1d50f801f181..43bbe2c9e49a 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -1377,6 +1377,15 @@ static struct notifier_block nr_dev_notifier = {
1377 1377
1378static struct net_device **dev_nr; 1378static struct net_device **dev_nr;
1379 1379
1380static struct ax25_protocol nr_pid = {
1381 .pid = AX25_P_NETROM,
1382 .func = nr_route_frame
1383};
1384
1385static struct ax25_linkfail nr_linkfail_notifier = {
1386 .func = nr_link_failed,
1387};
1388
1380static int __init nr_proto_init(void) 1389static int __init nr_proto_init(void)
1381{ 1390{
1382 int i; 1391 int i;
@@ -1424,8 +1433,8 @@ static int __init nr_proto_init(void)
1424 1433
1425 register_netdevice_notifier(&nr_dev_notifier); 1434 register_netdevice_notifier(&nr_dev_notifier);
1426 1435
1427 ax25_protocol_register(AX25_P_NETROM, nr_route_frame); 1436 ax25_register_pid(&nr_pid);
1428 ax25_linkfail_register(nr_link_failed); 1437 ax25_linkfail_register(&nr_linkfail_notifier);
1429 1438
1430#ifdef CONFIG_SYSCTL 1439#ifdef CONFIG_SYSCTL
1431 nr_register_sysctl(); 1440 nr_register_sysctl();
@@ -1474,7 +1483,7 @@ static void __exit nr_exit(void)
1474 nr_unregister_sysctl(); 1483 nr_unregister_sysctl();
1475#endif 1484#endif
1476 1485
1477 ax25_linkfail_release(nr_link_failed); 1486 ax25_linkfail_release(&nr_linkfail_notifier);
1478 ax25_protocol_release(AX25_P_NETROM); 1487 ax25_protocol_release(AX25_P_NETROM);
1479 1488
1480 unregister_netdevice_notifier(&nr_dev_notifier); 1489 unregister_netdevice_notifier(&nr_dev_notifier);
diff --git a/net/netrom/nr_dev.c b/net/netrom/nr_dev.c
index 9b8eb54971ab..4700d5225b78 100644
--- a/net/netrom/nr_dev.c
+++ b/net/netrom/nr_dev.c
@@ -128,25 +128,37 @@ static int nr_header(struct sk_buff *skb, struct net_device *dev, unsigned short
128 return -37; 128 return -37;
129} 129}
130 130
131static int nr_set_mac_address(struct net_device *dev, void *addr) 131static int __must_check nr_set_mac_address(struct net_device *dev, void *addr)
132{ 132{
133 struct sockaddr *sa = addr; 133 struct sockaddr *sa = addr;
134 int err;
135
136 if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len))
137 return 0;
138
139 if (dev->flags & IFF_UP) {
140 err = ax25_listen_register((ax25_address *)sa->sa_data, NULL);
141 if (err)
142 return err;
134 143
135 if (dev->flags & IFF_UP)
136 ax25_listen_release((ax25_address *)dev->dev_addr, NULL); 144 ax25_listen_release((ax25_address *)dev->dev_addr, NULL);
145 }
137 146
138 memcpy(dev->dev_addr, sa->sa_data, dev->addr_len); 147 memcpy(dev->dev_addr, sa->sa_data, dev->addr_len);
139 148
140 if (dev->flags & IFF_UP)
141 ax25_listen_register((ax25_address *)dev->dev_addr, NULL);
142
143 return 0; 149 return 0;
144} 150}
145 151
146static int nr_open(struct net_device *dev) 152static int nr_open(struct net_device *dev)
147{ 153{
154 int err;
155
156 err = ax25_listen_register((ax25_address *)dev->dev_addr, NULL);
157 if (err)
158 return err;
159
148 netif_start_queue(dev); 160 netif_start_queue(dev);
149 ax25_listen_register((ax25_address *)dev->dev_addr, NULL); 161
150 return 0; 162 return 0;
151} 163}
152 164
diff --git a/net/netrom/nr_route.c b/net/netrom/nr_route.c
index 0096105bcd47..8f88964099ef 100644
--- a/net/netrom/nr_route.c
+++ b/net/netrom/nr_route.c
@@ -87,8 +87,9 @@ static void nr_remove_neigh(struct nr_neigh *);
87 * Add a new route to a node, and in the process add the node and the 87 * Add a new route to a node, and in the process add the node and the
88 * neighbour if it is new. 88 * neighbour if it is new.
89 */ 89 */
90static int nr_add_node(ax25_address *nr, const char *mnemonic, ax25_address *ax25, 90static int __must_check nr_add_node(ax25_address *nr, const char *mnemonic,
91 ax25_digi *ax25_digi, struct net_device *dev, int quality, int obs_count) 91 ax25_address *ax25, ax25_digi *ax25_digi, struct net_device *dev,
92 int quality, int obs_count)
92{ 93{
93 struct nr_node *nr_node; 94 struct nr_node *nr_node;
94 struct nr_neigh *nr_neigh; 95 struct nr_neigh *nr_neigh;
@@ -406,7 +407,8 @@ static int nr_del_node(ax25_address *callsign, ax25_address *neighbour, struct n
406/* 407/*
407 * Lock a neighbour with a quality. 408 * Lock a neighbour with a quality.
408 */ 409 */
409static int nr_add_neigh(ax25_address *callsign, ax25_digi *ax25_digi, struct net_device *dev, unsigned int quality) 410static int __must_check nr_add_neigh(ax25_address *callsign,
411 ax25_digi *ax25_digi, struct net_device *dev, unsigned int quality)
410{ 412{
411 struct nr_neigh *nr_neigh; 413 struct nr_neigh *nr_neigh;
412 414
@@ -777,9 +779,13 @@ int nr_route_frame(struct sk_buff *skb, ax25_cb *ax25)
777 nr_src = (ax25_address *)(skb->data + 0); 779 nr_src = (ax25_address *)(skb->data + 0);
778 nr_dest = (ax25_address *)(skb->data + 7); 780 nr_dest = (ax25_address *)(skb->data + 7);
779 781
780 if (ax25 != NULL) 782 if (ax25 != NULL) {
781 nr_add_node(nr_src, "", &ax25->dest_addr, ax25->digipeat, 783 ret = nr_add_node(nr_src, "", &ax25->dest_addr, ax25->digipeat,
782 ax25->ax25_dev->dev, 0, sysctl_netrom_obsolescence_count_initialiser); 784 ax25->ax25_dev->dev, 0,
785 sysctl_netrom_obsolescence_count_initialiser);
786 if (ret)
787 return ret;
788 }
783 789
784 if ((dev = nr_dev_get(nr_dest)) != NULL) { /* Its for me */ 790 if ((dev = nr_dev_get(nr_dest)) != NULL) { /* Its for me */
785 if (ax25 == NULL) /* Its from me */ 791 if (ax25 == NULL) /* Its from me */
@@ -844,6 +850,7 @@ int nr_route_frame(struct sk_buff *skb, ax25_cb *ax25)
844 ret = (nr_neigh->ax25 != NULL); 850 ret = (nr_neigh->ax25 != NULL);
845 nr_node_unlock(nr_node); 851 nr_node_unlock(nr_node);
846 nr_node_put(nr_node); 852 nr_node_put(nr_node);
853
847 return ret; 854 return ret;
848} 855}
849 856
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index 08a542855654..9e279464c9d1 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -1314,7 +1314,8 @@ static int rose_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
1314 if (copy_from_user(&rose_callsign, argp, sizeof(ax25_address))) 1314 if (copy_from_user(&rose_callsign, argp, sizeof(ax25_address)))
1315 return -EFAULT; 1315 return -EFAULT;
1316 if (ax25cmp(&rose_callsign, &null_ax25_address) != 0) 1316 if (ax25cmp(&rose_callsign, &null_ax25_address) != 0)
1317 ax25_listen_register(&rose_callsign, NULL); 1317 return ax25_listen_register(&rose_callsign, NULL);
1318
1318 return 0; 1319 return 0;
1319 1320
1320 case SIOCRSGL2CALL: 1321 case SIOCRSGL2CALL:
@@ -1481,6 +1482,15 @@ static struct notifier_block rose_dev_notifier = {
1481 1482
1482static struct net_device **dev_rose; 1483static struct net_device **dev_rose;
1483 1484
1485static struct ax25_protocol rose_pid = {
1486 .pid = AX25_P_ROSE,
1487 .func = rose_route_frame
1488};
1489
1490static struct ax25_linkfail rose_linkfail_notifier = {
1491 .func = rose_link_failed
1492};
1493
1484static int __init rose_proto_init(void) 1494static int __init rose_proto_init(void)
1485{ 1495{
1486 int i; 1496 int i;
@@ -1530,8 +1540,8 @@ static int __init rose_proto_init(void)
1530 sock_register(&rose_family_ops); 1540 sock_register(&rose_family_ops);
1531 register_netdevice_notifier(&rose_dev_notifier); 1541 register_netdevice_notifier(&rose_dev_notifier);
1532 1542
1533 ax25_protocol_register(AX25_P_ROSE, rose_route_frame); 1543 ax25_register_pid(&rose_pid);
1534 ax25_linkfail_register(rose_link_failed); 1544 ax25_linkfail_register(&rose_linkfail_notifier);
1535 1545
1536#ifdef CONFIG_SYSCTL 1546#ifdef CONFIG_SYSCTL
1537 rose_register_sysctl(); 1547 rose_register_sysctl();
@@ -1579,7 +1589,7 @@ static void __exit rose_exit(void)
1579 rose_rt_free(); 1589 rose_rt_free();
1580 1590
1581 ax25_protocol_release(AX25_P_ROSE); 1591 ax25_protocol_release(AX25_P_ROSE);
1582 ax25_linkfail_release(rose_link_failed); 1592 ax25_linkfail_release(&rose_linkfail_notifier);
1583 1593
1584 if (ax25cmp(&rose_callsign, &null_ax25_address) != 0) 1594 if (ax25cmp(&rose_callsign, &null_ax25_address) != 0)
1585 ax25_listen_release(&rose_callsign, NULL); 1595 ax25_listen_release(&rose_callsign, NULL);
diff --git a/net/rose/rose_dev.c b/net/rose/rose_dev.c
index 7c279e2659ec..50824d345fa6 100644
--- a/net/rose/rose_dev.c
+++ b/net/rose/rose_dev.c
@@ -93,20 +93,34 @@ static int rose_rebuild_header(struct sk_buff *skb)
93static int rose_set_mac_address(struct net_device *dev, void *addr) 93static int rose_set_mac_address(struct net_device *dev, void *addr)
94{ 94{
95 struct sockaddr *sa = addr; 95 struct sockaddr *sa = addr;
96 int err;
96 97
97 rose_del_loopback_node((rose_address *)dev->dev_addr); 98 if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len))
99 return 0;
98 100
99 memcpy(dev->dev_addr, sa->sa_data, dev->addr_len); 101 if (dev->flags & IFF_UP) {
102 err = rose_add_loopback_node((rose_address *)dev->dev_addr);
103 if (err)
104 return err;
105
106 rose_del_loopback_node((rose_address *)dev->dev_addr);
107 }
100 108
101 rose_add_loopback_node((rose_address *)dev->dev_addr); 109 memcpy(dev->dev_addr, sa->sa_data, dev->addr_len);
102 110
103 return 0; 111 return 0;
104} 112}
105 113
106static int rose_open(struct net_device *dev) 114static int rose_open(struct net_device *dev)
107{ 115{
116 int err;
117
118 err = rose_add_loopback_node((rose_address *)dev->dev_addr);
119 if (err)
120 return err;
121
108 netif_start_queue(dev); 122 netif_start_queue(dev);
109 rose_add_loopback_node((rose_address *)dev->dev_addr); 123
110 return 0; 124 return 0;
111} 125}
112 126
diff --git a/net/rose/rose_loopback.c b/net/rose/rose_loopback.c
index 103b4d38f88a..3e41bd93ab9f 100644
--- a/net/rose/rose_loopback.c
+++ b/net/rose/rose_loopback.c
@@ -79,7 +79,8 @@ static void rose_loopback_timer(unsigned long param)
79 79
80 skb->h.raw = skb->data; 80 skb->h.raw = skb->data;
81 81
82 if ((sk = rose_find_socket(lci_o, rose_loopback_neigh)) != NULL) { 82 sk = rose_find_socket(lci_o, &rose_loopback_neigh);
83 if (sk) {
83 if (rose_process_rx_frame(sk, skb) == 0) 84 if (rose_process_rx_frame(sk, skb) == 0)
84 kfree_skb(skb); 85 kfree_skb(skb);
85 continue; 86 continue;
@@ -87,7 +88,7 @@ static void rose_loopback_timer(unsigned long param)
87 88
88 if (frametype == ROSE_CALL_REQUEST) { 89 if (frametype == ROSE_CALL_REQUEST) {
89 if ((dev = rose_dev_get(dest)) != NULL) { 90 if ((dev = rose_dev_get(dest)) != NULL) {
90 if (rose_rx_call_request(skb, dev, rose_loopback_neigh, lci_o) == 0) 91 if (rose_rx_call_request(skb, dev, &rose_loopback_neigh, lci_o) == 0)
91 kfree_skb(skb); 92 kfree_skb(skb);
92 } else { 93 } else {
93 kfree_skb(skb); 94 kfree_skb(skb);
diff --git a/net/rose/rose_route.c b/net/rose/rose_route.c
index 7252344779a0..8028c0d425dc 100644
--- a/net/rose/rose_route.c
+++ b/net/rose/rose_route.c
@@ -46,13 +46,13 @@ static DEFINE_SPINLOCK(rose_neigh_list_lock);
46static struct rose_route *rose_route_list; 46static struct rose_route *rose_route_list;
47static DEFINE_SPINLOCK(rose_route_list_lock); 47static DEFINE_SPINLOCK(rose_route_list_lock);
48 48
49struct rose_neigh *rose_loopback_neigh; 49struct rose_neigh rose_loopback_neigh;
50 50
51/* 51/*
52 * Add a new route to a node, and in the process add the node and the 52 * Add a new route to a node, and in the process add the node and the
53 * neighbour if it is new. 53 * neighbour if it is new.
54 */ 54 */
55static int rose_add_node(struct rose_route_struct *rose_route, 55static int __must_check rose_add_node(struct rose_route_struct *rose_route,
56 struct net_device *dev) 56 struct net_device *dev)
57{ 57{
58 struct rose_node *rose_node, *rose_tmpn, *rose_tmpp; 58 struct rose_node *rose_node, *rose_tmpn, *rose_tmpp;
@@ -361,33 +361,30 @@ out:
361/* 361/*
362 * Add the loopback neighbour. 362 * Add the loopback neighbour.
363 */ 363 */
364int rose_add_loopback_neigh(void) 364void rose_add_loopback_neigh(void)
365{ 365{
366 if ((rose_loopback_neigh = kmalloc(sizeof(struct rose_neigh), GFP_ATOMIC)) == NULL) 366 struct rose_neigh *sn = &rose_loopback_neigh;
367 return -ENOMEM;
368 367
369 rose_loopback_neigh->callsign = null_ax25_address; 368 sn->callsign = null_ax25_address;
370 rose_loopback_neigh->digipeat = NULL; 369 sn->digipeat = NULL;
371 rose_loopback_neigh->ax25 = NULL; 370 sn->ax25 = NULL;
372 rose_loopback_neigh->dev = NULL; 371 sn->dev = NULL;
373 rose_loopback_neigh->count = 0; 372 sn->count = 0;
374 rose_loopback_neigh->use = 0; 373 sn->use = 0;
375 rose_loopback_neigh->dce_mode = 1; 374 sn->dce_mode = 1;
376 rose_loopback_neigh->loopback = 1; 375 sn->loopback = 1;
377 rose_loopback_neigh->number = rose_neigh_no++; 376 sn->number = rose_neigh_no++;
378 rose_loopback_neigh->restarted = 1; 377 sn->restarted = 1;
379 378
380 skb_queue_head_init(&rose_loopback_neigh->queue); 379 skb_queue_head_init(&sn->queue);
381 380
382 init_timer(&rose_loopback_neigh->ftimer); 381 init_timer(&sn->ftimer);
383 init_timer(&rose_loopback_neigh->t0timer); 382 init_timer(&sn->t0timer);
384 383
385 spin_lock_bh(&rose_neigh_list_lock); 384 spin_lock_bh(&rose_neigh_list_lock);
386 rose_loopback_neigh->next = rose_neigh_list; 385 sn->next = rose_neigh_list;
387 rose_neigh_list = rose_loopback_neigh; 386 rose_neigh_list = sn;
388 spin_unlock_bh(&rose_neigh_list_lock); 387 spin_unlock_bh(&rose_neigh_list_lock);
389
390 return 0;
391} 388}
392 389
393/* 390/*
@@ -421,13 +418,13 @@ int rose_add_loopback_node(rose_address *address)
421 rose_node->mask = 10; 418 rose_node->mask = 10;
422 rose_node->count = 1; 419 rose_node->count = 1;
423 rose_node->loopback = 1; 420 rose_node->loopback = 1;
424 rose_node->neighbour[0] = rose_loopback_neigh; 421 rose_node->neighbour[0] = &rose_loopback_neigh;
425 422
426 /* Insert at the head of list. Address is always mask=10 */ 423 /* Insert at the head of list. Address is always mask=10 */
427 rose_node->next = rose_node_list; 424 rose_node->next = rose_node_list;
428 rose_node_list = rose_node; 425 rose_node_list = rose_node;
429 426
430 rose_loopback_neigh->count++; 427 rose_loopback_neigh.count++;
431 428
432out: 429out:
433 spin_unlock_bh(&rose_node_list_lock); 430 spin_unlock_bh(&rose_node_list_lock);
@@ -458,7 +455,7 @@ void rose_del_loopback_node(rose_address *address)
458 455
459 rose_remove_node(rose_node); 456 rose_remove_node(rose_node);
460 457
461 rose_loopback_neigh->count--; 458 rose_loopback_neigh.count--;
462 459
463out: 460out:
464 spin_unlock_bh(&rose_node_list_lock); 461 spin_unlock_bh(&rose_node_list_lock);
diff --git a/sound/aoa/codecs/snd-aoa-codec-onyx.h b/sound/aoa/codecs/snd-aoa-codec-onyx.h
index aeedda773699..ffd20254ff76 100644
--- a/sound/aoa/codecs/snd-aoa-codec-onyx.h
+++ b/sound/aoa/codecs/snd-aoa-codec-onyx.h
@@ -9,7 +9,6 @@
9#define __SND_AOA_CODEC_ONYX_H 9#define __SND_AOA_CODEC_ONYX_H
10#include <stddef.h> 10#include <stddef.h>
11#include <linux/i2c.h> 11#include <linux/i2c.h>
12#include <linux/i2c-dev.h>
13#include <asm/pmac_low_i2c.h> 12#include <asm/pmac_low_i2c.h>
14#include <asm/prom.h> 13#include <asm/prom.h>
15 14
diff --git a/sound/aoa/codecs/snd-aoa-codec-tas.c b/sound/aoa/codecs/snd-aoa-codec-tas.c
index 9de8485ba3f5..2cd81fa07ce1 100644
--- a/sound/aoa/codecs/snd-aoa-codec-tas.c
+++ b/sound/aoa/codecs/snd-aoa-codec-tas.c
@@ -61,7 +61,6 @@
61 */ 61 */
62#include <stddef.h> 62#include <stddef.h>
63#include <linux/i2c.h> 63#include <linux/i2c.h>
64#include <linux/i2c-dev.h>
65#include <asm/pmac_low_i2c.h> 64#include <asm/pmac_low_i2c.h>
66#include <asm/prom.h> 65#include <asm/prom.h>
67#include <linux/delay.h> 66#include <linux/delay.h>
diff --git a/sound/core/control.c b/sound/core/control.c
index 48ef0a09a7a7..0c7bcd62e5b2 100644
--- a/sound/core/control.c
+++ b/sound/core/control.c
@@ -1275,7 +1275,7 @@ static ssize_t snd_ctl_read(struct file *file, char __user *buffer,
1275 schedule(); 1275 schedule();
1276 remove_wait_queue(&ctl->change_sleep, &wait); 1276 remove_wait_queue(&ctl->change_sleep, &wait);
1277 if (signal_pending(current)) 1277 if (signal_pending(current))
1278 return result > 0 ? result : -ERESTARTSYS; 1278 return -ERESTARTSYS;
1279 spin_lock_irq(&ctl->read_lock); 1279 spin_lock_irq(&ctl->read_lock);
1280 } 1280 }
1281 kev = snd_kctl_event(ctl->events.next); 1281 kev = snd_kctl_event(ctl->events.next);
diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
index e0821eb3d851..786a82e68890 100644
--- a/sound/core/oss/pcm_oss.c
+++ b/sound/core/oss/pcm_oss.c
@@ -810,6 +810,8 @@ static int snd_pcm_oss_change_params(struct snd_pcm_substream *substream)
810 struct snd_mask sformat_mask; 810 struct snd_mask sformat_mask;
811 struct snd_mask mask; 811 struct snd_mask mask;
812 812
813 if (mutex_lock_interruptible(&runtime->oss.params_lock))
814 return -EINTR;
813 sw_params = kmalloc(sizeof(*sw_params), GFP_KERNEL); 815 sw_params = kmalloc(sizeof(*sw_params), GFP_KERNEL);
814 params = kmalloc(sizeof(*params), GFP_KERNEL); 816 params = kmalloc(sizeof(*params), GFP_KERNEL);
815 sparams = kmalloc(sizeof(*sparams), GFP_KERNEL); 817 sparams = kmalloc(sizeof(*sparams), GFP_KERNEL);
@@ -1020,6 +1022,7 @@ failure:
1020 kfree(sw_params); 1022 kfree(sw_params);
1021 kfree(params); 1023 kfree(params);
1022 kfree(sparams); 1024 kfree(sparams);
1025 mutex_unlock(&runtime->oss.params_lock);
1023 return err; 1026 return err;
1024} 1027}
1025 1028
@@ -1307,14 +1310,17 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
1307 1310
1308 if ((tmp = snd_pcm_oss_make_ready(substream)) < 0) 1311 if ((tmp = snd_pcm_oss_make_ready(substream)) < 0)
1309 return tmp; 1312 return tmp;
1313 mutex_lock(&runtime->oss.params_lock);
1310 while (bytes > 0) { 1314 while (bytes > 0) {
1311 if (bytes < runtime->oss.period_bytes || runtime->oss.buffer_used > 0) { 1315 if (bytes < runtime->oss.period_bytes || runtime->oss.buffer_used > 0) {
1312 tmp = bytes; 1316 tmp = bytes;
1313 if (tmp + runtime->oss.buffer_used > runtime->oss.period_bytes) 1317 if (tmp + runtime->oss.buffer_used > runtime->oss.period_bytes)
1314 tmp = runtime->oss.period_bytes - runtime->oss.buffer_used; 1318 tmp = runtime->oss.period_bytes - runtime->oss.buffer_used;
1315 if (tmp > 0) { 1319 if (tmp > 0) {
1316 if (copy_from_user(runtime->oss.buffer + runtime->oss.buffer_used, buf, tmp)) 1320 if (copy_from_user(runtime->oss.buffer + runtime->oss.buffer_used, buf, tmp)) {
1317 return xfer > 0 ? (snd_pcm_sframes_t)xfer : -EFAULT; 1321 tmp = -EFAULT;
1322 goto err;
1323 }
1318 } 1324 }
1319 runtime->oss.buffer_used += tmp; 1325 runtime->oss.buffer_used += tmp;
1320 buf += tmp; 1326 buf += tmp;
@@ -1325,22 +1331,24 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
1325 tmp = snd_pcm_oss_write2(substream, runtime->oss.buffer + runtime->oss.period_ptr, 1331 tmp = snd_pcm_oss_write2(substream, runtime->oss.buffer + runtime->oss.period_ptr,
1326 runtime->oss.buffer_used - runtime->oss.period_ptr, 1); 1332 runtime->oss.buffer_used - runtime->oss.period_ptr, 1);
1327 if (tmp <= 0) 1333 if (tmp <= 0)
1328 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp; 1334 goto err;
1329 runtime->oss.bytes += tmp; 1335 runtime->oss.bytes += tmp;
1330 runtime->oss.period_ptr += tmp; 1336 runtime->oss.period_ptr += tmp;
1331 runtime->oss.period_ptr %= runtime->oss.period_bytes; 1337 runtime->oss.period_ptr %= runtime->oss.period_bytes;
1332 if (runtime->oss.period_ptr == 0 || 1338 if (runtime->oss.period_ptr == 0 ||
1333 runtime->oss.period_ptr == runtime->oss.buffer_used) 1339 runtime->oss.period_ptr == runtime->oss.buffer_used)
1334 runtime->oss.buffer_used = 0; 1340 runtime->oss.buffer_used = 0;
1335 else if ((substream->f_flags & O_NONBLOCK) != 0) 1341 else if ((substream->f_flags & O_NONBLOCK) != 0) {
1336 return xfer > 0 ? xfer : -EAGAIN; 1342 tmp = -EAGAIN;
1343 goto err;
1344 }
1337 } 1345 }
1338 } else { 1346 } else {
1339 tmp = snd_pcm_oss_write2(substream, 1347 tmp = snd_pcm_oss_write2(substream,
1340 (const char __force *)buf, 1348 (const char __force *)buf,
1341 runtime->oss.period_bytes, 0); 1349 runtime->oss.period_bytes, 0);
1342 if (tmp <= 0) 1350 if (tmp <= 0)
1343 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp; 1351 goto err;
1344 runtime->oss.bytes += tmp; 1352 runtime->oss.bytes += tmp;
1345 buf += tmp; 1353 buf += tmp;
1346 bytes -= tmp; 1354 bytes -= tmp;
@@ -1350,7 +1358,12 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
1350 break; 1358 break;
1351 } 1359 }
1352 } 1360 }
1361 mutex_unlock(&runtime->oss.params_lock);
1353 return xfer; 1362 return xfer;
1363
1364 err:
1365 mutex_unlock(&runtime->oss.params_lock);
1366 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp;
1354} 1367}
1355 1368
1356static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf, size_t bytes, int in_kernel) 1369static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf, size_t bytes, int in_kernel)
@@ -1397,12 +1410,13 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
1397 1410
1398 if ((tmp = snd_pcm_oss_make_ready(substream)) < 0) 1411 if ((tmp = snd_pcm_oss_make_ready(substream)) < 0)
1399 return tmp; 1412 return tmp;
1413 mutex_lock(&runtime->oss.params_lock);
1400 while (bytes > 0) { 1414 while (bytes > 0) {
1401 if (bytes < runtime->oss.period_bytes || runtime->oss.buffer_used > 0) { 1415 if (bytes < runtime->oss.period_bytes || runtime->oss.buffer_used > 0) {
1402 if (runtime->oss.buffer_used == 0) { 1416 if (runtime->oss.buffer_used == 0) {
1403 tmp = snd_pcm_oss_read2(substream, runtime->oss.buffer, runtime->oss.period_bytes, 1); 1417 tmp = snd_pcm_oss_read2(substream, runtime->oss.buffer, runtime->oss.period_bytes, 1);
1404 if (tmp <= 0) 1418 if (tmp <= 0)
1405 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp; 1419 goto err;
1406 runtime->oss.bytes += tmp; 1420 runtime->oss.bytes += tmp;
1407 runtime->oss.period_ptr = tmp; 1421 runtime->oss.period_ptr = tmp;
1408 runtime->oss.buffer_used = tmp; 1422 runtime->oss.buffer_used = tmp;
@@ -1410,8 +1424,10 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
1410 tmp = bytes; 1424 tmp = bytes;
1411 if ((size_t) tmp > runtime->oss.buffer_used) 1425 if ((size_t) tmp > runtime->oss.buffer_used)
1412 tmp = runtime->oss.buffer_used; 1426 tmp = runtime->oss.buffer_used;
1413 if (copy_to_user(buf, runtime->oss.buffer + (runtime->oss.period_ptr - runtime->oss.buffer_used), tmp)) 1427 if (copy_to_user(buf, runtime->oss.buffer + (runtime->oss.period_ptr - runtime->oss.buffer_used), tmp)) {
1414 return xfer > 0 ? (snd_pcm_sframes_t)xfer : -EFAULT; 1428 tmp = -EFAULT;
1429 goto err;
1430 }
1415 buf += tmp; 1431 buf += tmp;
1416 bytes -= tmp; 1432 bytes -= tmp;
1417 xfer += tmp; 1433 xfer += tmp;
@@ -1420,14 +1436,19 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
1420 tmp = snd_pcm_oss_read2(substream, (char __force *)buf, 1436 tmp = snd_pcm_oss_read2(substream, (char __force *)buf,
1421 runtime->oss.period_bytes, 0); 1437 runtime->oss.period_bytes, 0);
1422 if (tmp <= 0) 1438 if (tmp <= 0)
1423 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp; 1439 goto err;
1424 runtime->oss.bytes += tmp; 1440 runtime->oss.bytes += tmp;
1425 buf += tmp; 1441 buf += tmp;
1426 bytes -= tmp; 1442 bytes -= tmp;
1427 xfer += tmp; 1443 xfer += tmp;
1428 } 1444 }
1429 } 1445 }
1446 mutex_unlock(&runtime->oss.params_lock);
1430 return xfer; 1447 return xfer;
1448
1449 err:
1450 mutex_unlock(&runtime->oss.params_lock);
1451 return xfer > 0 ? (snd_pcm_sframes_t)xfer : tmp;
1431} 1452}
1432 1453
1433static int snd_pcm_oss_reset(struct snd_pcm_oss_file *pcm_oss_file) 1454static int snd_pcm_oss_reset(struct snd_pcm_oss_file *pcm_oss_file)
@@ -1528,6 +1549,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
1528 return err; 1549 return err;
1529 format = snd_pcm_oss_format_from(runtime->oss.format); 1550 format = snd_pcm_oss_format_from(runtime->oss.format);
1530 width = snd_pcm_format_physical_width(format); 1551 width = snd_pcm_format_physical_width(format);
1552 mutex_lock(&runtime->oss.params_lock);
1531 if (runtime->oss.buffer_used > 0) { 1553 if (runtime->oss.buffer_used > 0) {
1532#ifdef OSS_DEBUG 1554#ifdef OSS_DEBUG
1533 printk("sync: buffer_used\n"); 1555 printk("sync: buffer_used\n");
@@ -1537,8 +1559,10 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
1537 runtime->oss.buffer + runtime->oss.buffer_used, 1559 runtime->oss.buffer + runtime->oss.buffer_used,
1538 size); 1560 size);
1539 err = snd_pcm_oss_sync1(substream, runtime->oss.period_bytes); 1561 err = snd_pcm_oss_sync1(substream, runtime->oss.period_bytes);
1540 if (err < 0) 1562 if (err < 0) {
1563 mutex_unlock(&runtime->oss.params_lock);
1541 return err; 1564 return err;
1565 }
1542 } else if (runtime->oss.period_ptr > 0) { 1566 } else if (runtime->oss.period_ptr > 0) {
1543#ifdef OSS_DEBUG 1567#ifdef OSS_DEBUG
1544 printk("sync: period_ptr\n"); 1568 printk("sync: period_ptr\n");
@@ -1548,8 +1572,10 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
1548 runtime->oss.buffer, 1572 runtime->oss.buffer,
1549 size * 8 / width); 1573 size * 8 / width);
1550 err = snd_pcm_oss_sync1(substream, size); 1574 err = snd_pcm_oss_sync1(substream, size);
1551 if (err < 0) 1575 if (err < 0) {
1576 mutex_unlock(&runtime->oss.params_lock);
1552 return err; 1577 return err;
1578 }
1553 } 1579 }
1554 /* 1580 /*
1555 * The ALSA's period might be a bit large than OSS one. 1581 * The ALSA's period might be a bit large than OSS one.
@@ -1579,6 +1605,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
1579 snd_pcm_lib_writev(substream, buffers, size); 1605 snd_pcm_lib_writev(substream, buffers, size);
1580 } 1606 }
1581 } 1607 }
1608 mutex_unlock(&runtime->oss.params_lock);
1582 /* 1609 /*
1583 * finish sync: drain the buffer 1610 * finish sync: drain the buffer
1584 */ 1611 */
@@ -2172,6 +2199,7 @@ static void snd_pcm_oss_init_substream(struct snd_pcm_substream *substream,
2172 runtime->oss.params = 1; 2199 runtime->oss.params = 1;
2173 runtime->oss.trigger = 1; 2200 runtime->oss.trigger = 1;
2174 runtime->oss.rate = 8000; 2201 runtime->oss.rate = 8000;
2202 mutex_init(&runtime->oss.params_lock);
2175 switch (SNDRV_MINOR_OSS_DEVICE(minor)) { 2203 switch (SNDRV_MINOR_OSS_DEVICE(minor)) {
2176 case SNDRV_MINOR_OSS_PCM_8: 2204 case SNDRV_MINOR_OSS_PCM_8:
2177 runtime->oss.format = AFMT_U8; 2205 runtime->oss.format = AFMT_U8;
diff --git a/sound/core/pcm.c b/sound/core/pcm.c
index 5ac6e19ccb41..8e0189885516 100644
--- a/sound/core/pcm.c
+++ b/sound/core/pcm.c
@@ -640,6 +640,10 @@ int snd_pcm_new_stream(struct snd_pcm *pcm, int stream, int substream_count)
640 err = snd_pcm_substream_proc_init(substream); 640 err = snd_pcm_substream_proc_init(substream);
641 if (err < 0) { 641 if (err < 0) {
642 snd_printk(KERN_ERR "Error in snd_pcm_stream_proc_init\n"); 642 snd_printk(KERN_ERR "Error in snd_pcm_stream_proc_init\n");
643 if (prev == NULL)
644 pstr->substream = NULL;
645 else
646 prev->next = NULL;
643 kfree(substream); 647 kfree(substream);
644 return err; 648 return err;
645 } 649 }
diff --git a/sound/core/pcm_lib.c b/sound/core/pcm_lib.c
index 0bb142a28539..b336797be4fc 100644
--- a/sound/core/pcm_lib.c
+++ b/sound/core/pcm_lib.c
@@ -79,19 +79,17 @@ void snd_pcm_playback_silence(struct snd_pcm_substream *substream, snd_pcm_ufram
79 runtime->silence_filled -= frames; 79 runtime->silence_filled -= frames;
80 if ((snd_pcm_sframes_t)runtime->silence_filled < 0) { 80 if ((snd_pcm_sframes_t)runtime->silence_filled < 0) {
81 runtime->silence_filled = 0; 81 runtime->silence_filled = 0;
82 runtime->silence_start = (ofs + frames) - runtime->buffer_size; 82 runtime->silence_start = new_hw_ptr;
83 } else { 83 } else {
84 runtime->silence_start = ofs - runtime->silence_filled; 84 runtime->silence_start = ofs;
85 } 85 }
86 if ((snd_pcm_sframes_t)runtime->silence_start < 0)
87 runtime->silence_start += runtime->boundary;
88 } 86 }
89 frames = runtime->buffer_size - runtime->silence_filled; 87 frames = runtime->buffer_size - runtime->silence_filled;
90 } 88 }
91 snd_assert(frames <= runtime->buffer_size, return); 89 snd_assert(frames <= runtime->buffer_size, return);
92 if (frames == 0) 90 if (frames == 0)
93 return; 91 return;
94 ofs = (runtime->silence_start + runtime->silence_filled) % runtime->buffer_size; 92 ofs = runtime->silence_start % runtime->buffer_size;
95 while (frames > 0) { 93 while (frames > 0) {
96 transfer = ofs + frames > runtime->buffer_size ? runtime->buffer_size - ofs : frames; 94 transfer = ofs + frames > runtime->buffer_size ? runtime->buffer_size - ofs : frames;
97 if (runtime->access == SNDRV_PCM_ACCESS_RW_INTERLEAVED || 95 if (runtime->access == SNDRV_PCM_ACCESS_RW_INTERLEAVED ||
diff --git a/sound/core/rawmidi.c b/sound/core/rawmidi.c
index 269c467ca9bb..0f055bfcbdac 100644
--- a/sound/core/rawmidi.c
+++ b/sound/core/rawmidi.c
@@ -1385,7 +1385,6 @@ static int snd_rawmidi_alloc_substreams(struct snd_rawmidi *rmidi,
1385 struct snd_rawmidi_substream *substream; 1385 struct snd_rawmidi_substream *substream;
1386 int idx; 1386 int idx;
1387 1387
1388 INIT_LIST_HEAD(&stream->substreams);
1389 for (idx = 0; idx < count; idx++) { 1388 for (idx = 0; idx < count; idx++) {
1390 substream = kzalloc(sizeof(*substream), GFP_KERNEL); 1389 substream = kzalloc(sizeof(*substream), GFP_KERNEL);
1391 if (substream == NULL) { 1390 if (substream == NULL) {
@@ -1440,6 +1439,9 @@ int snd_rawmidi_new(struct snd_card *card, char *id, int device,
1440 rmidi->device = device; 1439 rmidi->device = device;
1441 mutex_init(&rmidi->open_mutex); 1440 mutex_init(&rmidi->open_mutex);
1442 init_waitqueue_head(&rmidi->open_wait); 1441 init_waitqueue_head(&rmidi->open_wait);
1442 INIT_LIST_HEAD(&rmidi->streams[SNDRV_RAWMIDI_STREAM_INPUT].substreams);
1443 INIT_LIST_HEAD(&rmidi->streams[SNDRV_RAWMIDI_STREAM_OUTPUT].substreams);
1444
1443 if (id != NULL) 1445 if (id != NULL)
1444 strlcpy(rmidi->id, id, sizeof(rmidi->id)); 1446 strlcpy(rmidi->id, id, sizeof(rmidi->id));
1445 if ((err = snd_rawmidi_alloc_substreams(rmidi, 1447 if ((err = snd_rawmidi_alloc_substreams(rmidi,
diff --git a/sound/core/seq/seq_memory.c b/sound/core/seq/seq_memory.c
index 4bffe509f719..a3dc5e01e9f2 100644
--- a/sound/core/seq/seq_memory.c
+++ b/sound/core/seq/seq_memory.c
@@ -151,7 +151,7 @@ int snd_seq_expand_var_event(const struct snd_seq_event *event, int count, char
151 return len; 151 return len;
152 newlen = len; 152 newlen = len;
153 if (size_aligned > 0) 153 if (size_aligned > 0)
154 newlen = ((len + size_aligned - 1) / size_aligned) * size_aligned; 154 newlen = roundup(len, size_aligned);
155 if (count < newlen) 155 if (count < newlen)
156 return -EAGAIN; 156 return -EAGAIN;
157 157
diff --git a/sound/core/sgbuf.c b/sound/core/sgbuf.c
index c30669f14ac0..cefd228cd2aa 100644
--- a/sound/core/sgbuf.c
+++ b/sound/core/sgbuf.c
@@ -27,7 +27,7 @@
27 27
28/* table entries are align to 32 */ 28/* table entries are align to 32 */
29#define SGBUF_TBL_ALIGN 32 29#define SGBUF_TBL_ALIGN 32
30#define sgbuf_align_table(tbl) ((((tbl) + SGBUF_TBL_ALIGN - 1) / SGBUF_TBL_ALIGN) * SGBUF_TBL_ALIGN) 30#define sgbuf_align_table(tbl) ALIGN((tbl), SGBUF_TBL_ALIGN)
31 31
32int snd_free_sgbuf_pages(struct snd_dma_buffer *dmab) 32int snd_free_sgbuf_pages(struct snd_dma_buffer *dmab)
33{ 33{
diff --git a/sound/isa/gus/gus_mem.c b/sound/isa/gus/gus_mem.c
index f50c276caee8..7107753b85b5 100644
--- a/sound/isa/gus/gus_mem.c
+++ b/sound/isa/gus/gus_mem.c
@@ -143,9 +143,8 @@ static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
143 struct snd_gf1_mem_block *pblock; 143 struct snd_gf1_mem_block *pblock;
144 unsigned int ptr1, ptr2; 144 unsigned int ptr1, ptr2;
145 145
146 align--; 146 if (w_16 && align < 2)
147 if (w_16 && align < 1) 147 align = 2;
148 align = 1;
149 block->flags = w_16 ? SNDRV_GF1_MEM_BLOCK_16BIT : 0; 148 block->flags = w_16 ? SNDRV_GF1_MEM_BLOCK_16BIT : 0;
150 block->owner = SNDRV_GF1_MEM_OWNER_DRIVER; 149 block->owner = SNDRV_GF1_MEM_OWNER_DRIVER;
151 block->share = 0; 150 block->share = 0;
@@ -165,7 +164,7 @@ static int snd_gf1_mem_find(struct snd_gf1_mem * alloc,
165 if (pblock->next->ptr < boundary) 164 if (pblock->next->ptr < boundary)
166 ptr2 = pblock->next->ptr; 165 ptr2 = pblock->next->ptr;
167 } 166 }
168 ptr1 = (pblock->ptr + pblock->size + align) & ~align; 167 ptr1 = ALIGN(pblock->ptr + pblock->size, align);
169 if (ptr1 >= ptr2) 168 if (ptr1 >= ptr2)
170 continue; 169 continue;
171 size1 = ptr2 - ptr1; 170 size1 = ptr2 - ptr1;
diff --git a/sound/isa/sb/sb_common.c b/sound/isa/sb/sb_common.c
index c62a9e3d2ae4..3094f3852167 100644
--- a/sound/isa/sb/sb_common.c
+++ b/sound/isa/sb/sb_common.c
@@ -232,7 +232,7 @@ int snd_sbdsp_create(struct snd_card *card,
232 chip->port = port; 232 chip->port = port;
233 233
234 if (request_irq(irq, irq_handler, hardware == SB_HW_ALS4000 ? 234 if (request_irq(irq, irq_handler, hardware == SB_HW_ALS4000 ?
235 IRQF_DISABLED | IRQF_SHARED : IRQF_DISABLED, 235 IRQF_SHARED : IRQF_DISABLED,
236 "SoundBlaster", (void *) chip)) { 236 "SoundBlaster", (void *) chip)) {
237 snd_printk(KERN_ERR "sb: can't grab irq %d\n", irq); 237 snd_printk(KERN_ERR "sb: can't grab irq %d\n", irq);
238 snd_sbdsp_free(chip); 238 snd_sbdsp_free(chip);
diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index bed329edbdd7..78020d832e04 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1068,7 +1068,7 @@ wavefront_send_sample (snd_wavefront_t *dev,
1068 blocksize = max_blksize; 1068 blocksize = max_blksize;
1069 } else { 1069 } else {
1070 /* round to nearest 16-byte value */ 1070 /* round to nearest 16-byte value */
1071 blocksize = ((length-written+7)&~0x7); 1071 blocksize = ALIGN(length - written, 8);
1072 } 1072 }
1073 1073
1074 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_BLOCK, NULL, NULL)) { 1074 if (snd_wavefront_cmd (dev, WFC_DOWNLOAD_BLOCK, NULL, NULL)) {
diff --git a/sound/oss/dmasound/tas3001c.c b/sound/oss/dmasound/tas3001c.c
index f227c9f688cc..2f21a3c00374 100644
--- a/sound/oss/dmasound/tas3001c.c
+++ b/sound/oss/dmasound/tas3001c.c
@@ -50,6 +50,7 @@ struct tas3001c_data_t {
50 int output_id; 50 int output_id;
51 int speaker_id; 51 int speaker_id;
52 struct tas_drce_t drce_state; 52 struct tas_drce_t drce_state;
53 struct work_struct change;
53}; 54};
54 55
55 56
@@ -667,14 +668,13 @@ tas3001c_update_device_parameters(struct tas3001c_data_t *self)
667} 668}
668 669
669static void 670static void
670tas3001c_device_change_handler(void *self) 671tas3001c_device_change_handler(struct work_struct *work)
671{ 672{
672 if (self) 673 struct tas3001c_data_t *self;
673 tas3001c_update_device_parameters(self); 674 self = container_of(work, struct tas3001c_data_t, change);
675 tas3001c_update_device_parameters(self);
674} 676}
675 677
676static struct work_struct device_change;
677
678static int 678static int
679tas3001c_output_device_change( struct tas3001c_data_t *self, 679tas3001c_output_device_change( struct tas3001c_data_t *self,
680 int device_id, 680 int device_id,
@@ -685,7 +685,7 @@ tas3001c_output_device_change( struct tas3001c_data_t *self,
685 self->output_id=output_id; 685 self->output_id=output_id;
686 self->speaker_id=speaker_id; 686 self->speaker_id=speaker_id;
687 687
688 schedule_work(&device_change); 688 schedule_work(&self->change);
689 return 0; 689 return 0;
690} 690}
691 691
@@ -823,7 +823,7 @@ tas3001c_init(struct i2c_client *client)
823 tas3001c_write_biquad_shadow(self, i, j, 823 tas3001c_write_biquad_shadow(self, i, j,
824 &tas3001c_eq_unity); 824 &tas3001c_eq_unity);
825 825
826 INIT_WORK(&device_change, tas3001c_device_change_handler, self); 826 INIT_WORK(&self->change, tas3001c_device_change_handler);
827 return 0; 827 return 0;
828} 828}
829 829
diff --git a/sound/oss/dmasound/tas3004.c b/sound/oss/dmasound/tas3004.c
index 82eaaca2db9a..af34fb39bc29 100644
--- a/sound/oss/dmasound/tas3004.c
+++ b/sound/oss/dmasound/tas3004.c
@@ -48,6 +48,7 @@ struct tas3004_data_t {
48 int output_id; 48 int output_id;
49 int speaker_id; 49 int speaker_id;
50 struct tas_drce_t drce_state; 50 struct tas_drce_t drce_state;
51 struct work_struct change;
51}; 52};
52 53
53#define MAKE_TIME(sec,usec) (((sec)<<12) + (50000+(usec/10)*(1<<12))/100000) 54#define MAKE_TIME(sec,usec) (((sec)<<12) + (50000+(usec/10)*(1<<12))/100000)
@@ -914,15 +915,13 @@ tas3004_update_device_parameters(struct tas3004_data_t *self)
914} 915}
915 916
916static void 917static void
917tas3004_device_change_handler(void *self) 918tas3004_device_change_handler(struct work_struct *work)
918{ 919{
919 if (!self) return; 920 struct tas3004_data_t *self;
920 921 self = container_of(work, struct tas3004_data_t, change);
921 tas3004_update_device_parameters((struct tas3004_data_t *)self); 922 tas3004_update_device_parameters(self);
922} 923}
923 924
924static struct work_struct device_change;
925
926static int 925static int
927tas3004_output_device_change( struct tas3004_data_t *self, 926tas3004_output_device_change( struct tas3004_data_t *self,
928 int device_id, 927 int device_id,
@@ -933,7 +932,7 @@ tas3004_output_device_change( struct tas3004_data_t *self,
933 self->output_id=output_id; 932 self->output_id=output_id;
934 self->speaker_id=speaker_id; 933 self->speaker_id=speaker_id;
935 934
936 schedule_work(&device_change); 935 schedule_work(&self->change);
937 936
938 return 0; 937 return 0;
939} 938}
@@ -1112,7 +1111,7 @@ tas3004_init(struct i2c_client *client)
1112 tas3004_write_register(self, TAS3004_REG_MCR2, &mcr2, WRITE_SHADOW); 1111 tas3004_write_register(self, TAS3004_REG_MCR2, &mcr2, WRITE_SHADOW);
1113 tas3004_write_register(self, TAS3004_REG_DRC, drce_init, WRITE_SHADOW); 1112 tas3004_write_register(self, TAS3004_REG_DRC, drce_init, WRITE_SHADOW);
1114 1113
1115 INIT_WORK(&device_change, tas3004_device_change_handler, self); 1114 INIT_WORK(&self->change, tas3004_device_change_handler);
1116 return 0; 1115 return 0;
1117} 1116}
1118 1117
diff --git a/sound/pci/ac97/ac97_codec.c b/sound/pci/ac97/ac97_codec.c
index 7abcb10b2754..d2994cb4c8c9 100644
--- a/sound/pci/ac97/ac97_codec.c
+++ b/sound/pci/ac97/ac97_codec.c
@@ -129,9 +129,9 @@ static const struct ac97_codec_id snd_ac97_codec_ids[] = {
129{ 0x434d4941, 0xffffffff, "CMI9738", patch_cm9738, NULL }, 129{ 0x434d4941, 0xffffffff, "CMI9738", patch_cm9738, NULL },
130{ 0x434d4961, 0xffffffff, "CMI9739", patch_cm9739, NULL }, 130{ 0x434d4961, 0xffffffff, "CMI9739", patch_cm9739, NULL },
131{ 0x434d4969, 0xffffffff, "CMI9780", patch_cm9780, NULL }, 131{ 0x434d4969, 0xffffffff, "CMI9780", patch_cm9780, NULL },
132{ 0x434d4978, 0xffffffff, "CMI9761", patch_cm9761, NULL }, 132{ 0x434d4978, 0xffffffff, "CMI9761A", patch_cm9761, NULL },
133{ 0x434d4982, 0xffffffff, "CMI9761", patch_cm9761, NULL }, 133{ 0x434d4982, 0xffffffff, "CMI9761B", patch_cm9761, NULL },
134{ 0x434d4983, 0xffffffff, "CMI9761", patch_cm9761, NULL }, 134{ 0x434d4983, 0xffffffff, "CMI9761A+", patch_cm9761, NULL },
135{ 0x43525900, 0xfffffff8, "CS4297", NULL, NULL }, 135{ 0x43525900, 0xfffffff8, "CS4297", NULL, NULL },
136{ 0x43525910, 0xfffffff8, "CS4297A", patch_cirrus_spdif, NULL }, 136{ 0x43525910, 0xfffffff8, "CS4297A", patch_cirrus_spdif, NULL },
137{ 0x43525920, 0xfffffff8, "CS4298", patch_cirrus_spdif, NULL }, 137{ 0x43525920, 0xfffffff8, "CS4298", patch_cirrus_spdif, NULL },
@@ -382,7 +382,7 @@ int snd_ac97_update_bits_nolock(struct snd_ac97 *ac97, unsigned short reg,
382 unsigned short old, new; 382 unsigned short old, new;
383 383
384 old = snd_ac97_read_cache(ac97, reg); 384 old = snd_ac97_read_cache(ac97, reg);
385 new = (old & ~mask) | value; 385 new = (old & ~mask) | (value & mask);
386 change = old != new; 386 change = old != new;
387 if (change) { 387 if (change) {
388 ac97->regs[reg] = new; 388 ac97->regs[reg] = new;
@@ -399,7 +399,7 @@ static int snd_ac97_ad18xx_update_pcm_bits(struct snd_ac97 *ac97, int codec, uns
399 399
400 mutex_lock(&ac97->page_mutex); 400 mutex_lock(&ac97->page_mutex);
401 old = ac97->spec.ad18xx.pcmreg[codec]; 401 old = ac97->spec.ad18xx.pcmreg[codec];
402 new = (old & ~mask) | value; 402 new = (old & ~mask) | (value & mask);
403 change = old != new; 403 change = old != new;
404 if (change) { 404 if (change) {
405 mutex_lock(&ac97->reg_mutex); 405 mutex_lock(&ac97->reg_mutex);
diff --git a/sound/pci/ac97/ac97_patch.c b/sound/pci/ac97/ac97_patch.c
index 15be6ba87c82..e813968e0cf8 100644
--- a/sound/pci/ac97/ac97_patch.c
+++ b/sound/pci/ac97/ac97_patch.c
@@ -1467,7 +1467,9 @@ static void patch_ad1881_chained(struct snd_ac97 * ac97, int unchained_idx, int
1467 snd_ac97_write_cache(ac97, AC97_AD_CODEC_CFG, 0x0002); // ID1C 1467 snd_ac97_write_cache(ac97, AC97_AD_CODEC_CFG, 0x0002); // ID1C
1468 ac97->spec.ad18xx.codec_cfg[unchained_idx] = 0x0002; 1468 ac97->spec.ad18xx.codec_cfg[unchained_idx] = 0x0002;
1469 if (cidx1 >= 0) { 1469 if (cidx1 >= 0) {
1470 if (patch_ad1881_chained1(ac97, cidx1, 0x0006)) // SDIE | ID1C 1470 if (cidx2 < 0)
1471 patch_ad1881_chained1(ac97, cidx1, 0);
1472 else if (patch_ad1881_chained1(ac97, cidx1, 0x0006)) // SDIE | ID1C
1471 patch_ad1881_chained1(ac97, cidx2, 0); 1473 patch_ad1881_chained1(ac97, cidx2, 0);
1472 else if (patch_ad1881_chained1(ac97, cidx2, 0x0006)) // SDIE | ID1C 1474 else if (patch_ad1881_chained1(ac97, cidx2, 0x0006)) // SDIE | ID1C
1473 patch_ad1881_chained1(ac97, cidx1, 0); 1475 patch_ad1881_chained1(ac97, cidx1, 0);
@@ -2261,7 +2263,8 @@ int patch_alc655(struct snd_ac97 * ac97)
2261 else { /* ALC655 */ 2263 else { /* ALC655 */
2262 if (ac97->subsystem_vendor == 0x1462 && 2264 if (ac97->subsystem_vendor == 0x1462 &&
2263 (ac97->subsystem_device == 0x0131 || /* MSI S270 laptop */ 2265 (ac97->subsystem_device == 0x0131 || /* MSI S270 laptop */
2264 ac97->subsystem_device == 0x0161)) /* LG K1 Express */ 2266 ac97->subsystem_device == 0x0161 || /* LG K1 Express */
2267 ac97->subsystem_device == 0x0351)) /* MSI L725 laptop */
2265 val &= ~(1 << 1); /* Pin 47 is EAPD (for internal speaker) */ 2268 val &= ~(1 << 1); /* Pin 47 is EAPD (for internal speaker) */
2266 else 2269 else
2267 val |= (1 << 1); /* Pin 47 is spdif input pin */ 2270 val |= (1 << 1); /* Pin 47 is spdif input pin */
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c
index cbf8331c3d33..98970d401be9 100644
--- a/sound/pci/ad1889.c
+++ b/sound/pci/ad1889.c
@@ -858,7 +858,7 @@ snd_ad1889_free(struct snd_ad1889 *chip)
858 synchronize_irq(chip->irq); 858 synchronize_irq(chip->irq);
859 859
860 if (chip->irq >= 0) 860 if (chip->irq >= 0)
861 free_irq(chip->irq, (void*)chip); 861 free_irq(chip->irq, chip);
862 862
863skip_hw: 863skip_hw:
864 if (chip->iobase) 864 if (chip->iobase)
@@ -945,7 +945,7 @@ snd_ad1889_create(struct snd_card *card,
945 spin_lock_init(&chip->lock); /* only now can we call ad1889_free */ 945 spin_lock_init(&chip->lock); /* only now can we call ad1889_free */
946 946
947 if (request_irq(pci->irq, snd_ad1889_interrupt, 947 if (request_irq(pci->irq, snd_ad1889_interrupt,
948 IRQF_DISABLED|IRQF_SHARED, card->driver, (void*)chip)) { 948 IRQF_SHARED, card->driver, chip)) {
949 printk(KERN_ERR PFX "cannot obtain IRQ %d\n", pci->irq); 949 printk(KERN_ERR PFX "cannot obtain IRQ %d\n", pci->irq);
950 snd_ad1889_free(chip); 950 snd_ad1889_free(chip);
951 return -EBUSY; 951 return -EBUSY;
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index a7edd56542d4..9327ab2eccb0 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -2095,7 +2095,7 @@ static int snd_ali_free(struct snd_ali * codec)
2095 snd_ali_disable_address_interrupt(codec); 2095 snd_ali_disable_address_interrupt(codec);
2096 if (codec->irq >= 0) { 2096 if (codec->irq >= 0) {
2097 synchronize_irq(codec->irq); 2097 synchronize_irq(codec->irq);
2098 free_irq(codec->irq, (void *)codec); 2098 free_irq(codec->irq, codec);
2099 } 2099 }
2100 if (codec->port) 2100 if (codec->port)
2101 pci_release_regions(codec->pci); 2101 pci_release_regions(codec->pci);
@@ -2192,7 +2192,8 @@ static int __devinit snd_ali_resources(struct snd_ali *codec)
2192 return err; 2192 return err;
2193 codec->port = pci_resource_start(codec->pci, 0); 2193 codec->port = pci_resource_start(codec->pci, 0);
2194 2194
2195 if (request_irq(codec->pci->irq, snd_ali_card_interrupt, IRQF_DISABLED|IRQF_SHARED, "ALI 5451", (void *)codec)) { 2195 if (request_irq(codec->pci->irq, snd_ali_card_interrupt,
2196 IRQF_SHARED, "ALI 5451", codec)) {
2196 snd_printk(KERN_ERR "Unable to request irq.\n"); 2197 snd_printk(KERN_ERR "Unable to request irq.\n");
2197 return -EBUSY; 2198 return -EBUSY;
2198 } 2199 }
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index 95f70f3cc37e..9f406fbe0d95 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -190,7 +190,7 @@ static int snd_als300_free(struct snd_als300 *chip)
190 snd_als300_dbgcallenter(); 190 snd_als300_dbgcallenter();
191 snd_als300_set_irq_flag(chip, IRQ_DISABLE); 191 snd_als300_set_irq_flag(chip, IRQ_DISABLE);
192 if (chip->irq >= 0) 192 if (chip->irq >= 0)
193 free_irq(chip->irq, (void *)chip); 193 free_irq(chip->irq, chip);
194 pci_release_regions(chip->pci); 194 pci_release_regions(chip->pci);
195 pci_disable_device(chip->pci); 195 pci_disable_device(chip->pci);
196 kfree(chip); 196 kfree(chip);
@@ -722,8 +722,8 @@ static int __devinit snd_als300_create(snd_card_t *card,
722 else 722 else
723 irq_handler = snd_als300_interrupt; 723 irq_handler = snd_als300_interrupt;
724 724
725 if (request_irq(pci->irq, irq_handler, IRQF_DISABLED|IRQF_SHARED, 725 if (request_irq(pci->irq, irq_handler, IRQF_SHARED,
726 card->shortname, (void *)chip)) { 726 card->shortname, chip)) {
727 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 727 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
728 snd_als300_free(chip); 728 snd_als300_free(chip);
729 return -EBUSY; 729 return -EBUSY;
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c
index e3e99f396711..476c3433073e 100644
--- a/sound/pci/atiixp.c
+++ b/sound/pci/atiixp.c
@@ -1583,7 +1583,7 @@ static int __devinit snd_atiixp_create(struct snd_card *card,
1583 return -EIO; 1583 return -EIO;
1584 } 1584 }
1585 1585
1586 if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_DISABLED|IRQF_SHARED, 1586 if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED,
1587 card->shortname, chip)) { 1587 card->shortname, chip)) {
1588 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1588 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1589 snd_atiixp_free(chip); 1589 snd_atiixp_free(chip);
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c
index dc54f2c68ed7..cc2e6b9d407e 100644
--- a/sound/pci/atiixp_modem.c
+++ b/sound/pci/atiixp_modem.c
@@ -1256,7 +1256,7 @@ static int __devinit snd_atiixp_create(struct snd_card *card,
1256 return -EIO; 1256 return -EIO;
1257 } 1257 }
1258 1258
1259 if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_DISABLED|IRQF_SHARED, 1259 if (request_irq(pci->irq, snd_atiixp_interrupt, IRQF_SHARED,
1260 card->shortname, chip)) { 1260 card->shortname, chip)) {
1261 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1261 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1262 snd_atiixp_free(chip); 1262 snd_atiixp_free(chip);
diff --git a/sound/pci/au88x0/au88x0.c b/sound/pci/au88x0/au88x0.c
index 6ed5ad59f5b5..238154bb7a25 100644
--- a/sound/pci/au88x0/au88x0.c
+++ b/sound/pci/au88x0/au88x0.c
@@ -198,7 +198,7 @@ snd_vortex_create(struct snd_card *card, struct pci_dev *pci, vortex_t ** rchip)
198 } 198 }
199 199
200 if ((err = request_irq(pci->irq, vortex_interrupt, 200 if ((err = request_irq(pci->irq, vortex_interrupt,
201 IRQF_DISABLED | IRQF_SHARED, CARD_NAME_SHORT, 201 IRQF_SHARED, CARD_NAME_SHORT,
202 chip)) != 0) { 202 chip)) != 0) {
203 printk(KERN_ERR "cannot grab irq\n"); 203 printk(KERN_ERR "cannot grab irq\n");
204 goto irq_out; 204 goto irq_out;
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c
index 2414ee630756..43edd2839b5a 100644
--- a/sound/pci/azt3328.c
+++ b/sound/pci/azt3328.c
@@ -1513,7 +1513,7 @@ snd_azf3328_free(struct snd_azf3328 *chip)
1513__end_hw: 1513__end_hw:
1514 snd_azf3328_free_joystick(chip); 1514 snd_azf3328_free_joystick(chip);
1515 if (chip->irq >= 0) 1515 if (chip->irq >= 0)
1516 free_irq(chip->irq, (void *)chip); 1516 free_irq(chip->irq, chip);
1517 pci_release_regions(chip->pci); 1517 pci_release_regions(chip->pci);
1518 pci_disable_device(chip->pci); 1518 pci_disable_device(chip->pci);
1519 1519
@@ -1724,7 +1724,8 @@ snd_azf3328_create(struct snd_card *card,
1724 chip->synth_port = pci_resource_start(pci, 3); 1724 chip->synth_port = pci_resource_start(pci, 3);
1725 chip->mixer_port = pci_resource_start(pci, 4); 1725 chip->mixer_port = pci_resource_start(pci, 4);
1726 1726
1727 if (request_irq(pci->irq, snd_azf3328_interrupt, IRQF_DISABLED|IRQF_SHARED, card->shortname, (void *)chip)) { 1727 if (request_irq(pci->irq, snd_azf3328_interrupt,
1728 IRQF_SHARED, card->shortname, chip)) {
1728 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1729 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1729 err = -EBUSY; 1730 err = -EBUSY;
1730 goto out_err; 1731 goto out_err;
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index d33a37086df9..c3f3da211234 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -699,7 +699,7 @@ static int __devinit snd_bt87x_pcm(struct snd_bt87x *chip, int device, char *nam
699 SNDRV_DMA_TYPE_DEV_SG, 699 SNDRV_DMA_TYPE_DEV_SG,
700 snd_dma_pci_data(chip->pci), 700 snd_dma_pci_data(chip->pci),
701 128 * 1024, 701 128 * 1024,
702 (255 * 4092 + 1023) & ~1023); 702 ALIGN(255 * 4092, 1024));
703} 703}
704 704
705static int __devinit snd_bt87x_create(struct snd_card *card, 705static int __devinit snd_bt87x_create(struct snd_card *card,
@@ -747,7 +747,7 @@ static int __devinit snd_bt87x_create(struct snd_card *card,
747 snd_bt87x_writel(chip, REG_INT_MASK, 0); 747 snd_bt87x_writel(chip, REG_INT_MASK, 0);
748 snd_bt87x_writel(chip, REG_INT_STAT, MY_INTERRUPTS); 748 snd_bt87x_writel(chip, REG_INT_STAT, MY_INTERRUPTS);
749 749
750 if (request_irq(pci->irq, snd_bt87x_interrupt, IRQF_DISABLED | IRQF_SHARED, 750 if (request_irq(pci->irq, snd_bt87x_interrupt, IRQF_SHARED,
751 "Bt87x audio", chip)) { 751 "Bt87x audio", chip)) {
752 snd_bt87x_free(chip); 752 snd_bt87x_free(chip);
753 snd_printk(KERN_ERR "cannot grab irq\n"); 753 snd_printk(KERN_ERR "cannot grab irq\n");
diff --git a/sound/pci/ca0106/ca0106.h b/sound/pci/ca0106/ca0106.h
index 9cb66c59f523..aaac6e5b4767 100644
--- a/sound/pci/ca0106/ca0106.h
+++ b/sound/pci/ca0106/ca0106.h
@@ -590,7 +590,7 @@ struct snd_ca0106 {
590 struct resource *res_port; 590 struct resource *res_port;
591 int irq; 591 int irq;
592 592
593 unsigned int revision; /* chip revision */ 593 unsigned char revision; /* chip revision */
594 unsigned int serial; /* serial number */ 594 unsigned int serial; /* serial number */
595 unsigned short model; /* subsystem id */ 595 unsigned short model; /* subsystem id */
596 596
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index 6fa4a302f7de..f61f052f6d14 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -154,6 +154,7 @@ MODULE_SUPPORTED_DEVICE("{{Creative,SB CA0106 chip}}");
154static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX; 154static int index[SNDRV_CARDS] = SNDRV_DEFAULT_IDX;
155static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR; 155static char *id[SNDRV_CARDS] = SNDRV_DEFAULT_STR;
156static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP; 156static int enable[SNDRV_CARDS] = SNDRV_DEFAULT_ENABLE_PNP;
157static uint subsystem[SNDRV_CARDS]; /* Force card subsystem model */
157 158
158module_param_array(index, int, NULL, 0444); 159module_param_array(index, int, NULL, 0444);
159MODULE_PARM_DESC(index, "Index value for the CA0106 soundcard."); 160MODULE_PARM_DESC(index, "Index value for the CA0106 soundcard.");
@@ -161,6 +162,8 @@ module_param_array(id, charp, NULL, 0444);
161MODULE_PARM_DESC(id, "ID string for the CA0106 soundcard."); 162MODULE_PARM_DESC(id, "ID string for the CA0106 soundcard.");
162module_param_array(enable, bool, NULL, 0444); 163module_param_array(enable, bool, NULL, 0444);
163MODULE_PARM_DESC(enable, "Enable the CA0106 soundcard."); 164MODULE_PARM_DESC(enable, "Enable the CA0106 soundcard.");
165module_param_array(subsystem, uint, NULL, 0444);
166MODULE_PARM_DESC(subsystem, "Force card subsystem model.");
164 167
165#include "ca0106.h" 168#include "ca0106.h"
166 169
@@ -194,6 +197,17 @@ static struct snd_ca0106_details ca0106_chip_details[] = {
194 .gpio_type = 1, 197 .gpio_type = 1,
195 .i2c_adc = 1, 198 .i2c_adc = 1,
196 .spi_dac = 1 } , 199 .spi_dac = 1 } ,
200 /* New Audigy LS. Has a different DAC. */
201 /* SB0570:
202 * CTRL:CA0106-DAT
203 * ADC: WM8775EDS
204 * DAC: WM8768GEDS
205 */
206 { .serial = 0x10111102,
207 .name = "Audigy SE OEM [SB0570a]",
208 .gpio_type = 1,
209 .i2c_adc = 1,
210 .spi_dac = 1 } ,
197 /* MSI K8N Diamond Motherboard with onboard SB Live 24bit without AC97 */ 211 /* MSI K8N Diamond Motherboard with onboard SB Live 24bit without AC97 */
198 /* SB0438 212 /* SB0438
199 * CTRL:CA0106-DAT 213 * CTRL:CA0106-DAT
@@ -1046,7 +1060,7 @@ static int snd_ca0106_free(struct snd_ca0106 *chip)
1046 1060
1047 // release the irq 1061 // release the irq
1048 if (chip->irq >= 0) 1062 if (chip->irq >= 0)
1049 free_irq(chip->irq, (void *)chip); 1063 free_irq(chip->irq, chip);
1050 pci_disable_device(chip->pci); 1064 pci_disable_device(chip->pci);
1051 kfree(chip); 1065 kfree(chip);
1052 return 0; 1066 return 0;
@@ -1223,7 +1237,7 @@ static unsigned int i2c_adc_init[][2] = {
1223 { 0x15, ADC_MUX_LINEIN }, /* ADC Mixer control */ 1237 { 0x15, ADC_MUX_LINEIN }, /* ADC Mixer control */
1224}; 1238};
1225 1239
1226static int __devinit snd_ca0106_create(struct snd_card *card, 1240static int __devinit snd_ca0106_create(int dev, struct snd_card *card,
1227 struct pci_dev *pci, 1241 struct pci_dev *pci,
1228 struct snd_ca0106 **rchip) 1242 struct snd_ca0106 **rchip)
1229{ 1243{
@@ -1267,8 +1281,7 @@ static int __devinit snd_ca0106_create(struct snd_card *card,
1267 } 1281 }
1268 1282
1269 if (request_irq(pci->irq, snd_ca0106_interrupt, 1283 if (request_irq(pci->irq, snd_ca0106_interrupt,
1270 IRQF_DISABLED|IRQF_SHARED, "snd_ca0106", 1284 IRQF_SHARED, "snd_ca0106", chip)) {
1271 (void *)chip)) {
1272 snd_ca0106_free(chip); 1285 snd_ca0106_free(chip);
1273 printk(KERN_ERR "cannot grab irq\n"); 1286 printk(KERN_ERR "cannot grab irq\n");
1274 return -EBUSY; 1287 return -EBUSY;
@@ -1283,21 +1296,29 @@ static int __devinit snd_ca0106_create(struct snd_card *card,
1283 1296
1284 pci_set_master(pci); 1297 pci_set_master(pci);
1285 /* read revision & serial */ 1298 /* read revision & serial */
1286 pci_read_config_byte(pci, PCI_REVISION_ID, (char *)&chip->revision); 1299 pci_read_config_byte(pci, PCI_REVISION_ID, &chip->revision);
1287 pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &chip->serial); 1300 pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &chip->serial);
1288 pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &chip->model); 1301 pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &chip->model);
1289#if 1 1302#if 1
1290 printk(KERN_INFO "Model %04x Rev %08x Serial %08x\n", chip->model, 1303 printk(KERN_INFO "snd-ca0106: Model %04x Rev %08x Serial %08x\n", chip->model,
1291 chip->revision, chip->serial); 1304 chip->revision, chip->serial);
1292#endif 1305#endif
1293 strcpy(card->driver, "CA0106"); 1306 strcpy(card->driver, "CA0106");
1294 strcpy(card->shortname, "CA0106"); 1307 strcpy(card->shortname, "CA0106");
1295 1308
1296 for (c = ca0106_chip_details; c->serial; c++) { 1309 for (c = ca0106_chip_details; c->serial; c++) {
1297 if (c->serial == chip->serial) 1310 if (subsystem[dev]) {
1311 if (c->serial == subsystem[dev])
1312 break;
1313 } else if (c->serial == chip->serial)
1298 break; 1314 break;
1299 } 1315 }
1300 chip->details = c; 1316 chip->details = c;
1317 if (subsystem[dev]) {
1318 printk(KERN_INFO "snd-ca0106: Sound card name=%s, subsystem=0x%x. Forced to subsystem=0x%x\n",
1319 c->name, chip->serial, subsystem[dev]);
1320 }
1321
1301 sprintf(card->longname, "%s at 0x%lx irq %i", 1322 sprintf(card->longname, "%s at 0x%lx irq %i",
1302 c->name, chip->port, chip->irq); 1323 c->name, chip->port, chip->irq);
1303 1324
@@ -1540,7 +1561,7 @@ static int __devinit snd_ca0106_probe(struct pci_dev *pci,
1540 if (card == NULL) 1561 if (card == NULL)
1541 return -ENOMEM; 1562 return -ENOMEM;
1542 1563
1543 if ((err = snd_ca0106_create(card, pci, &chip)) < 0) { 1564 if ((err = snd_ca0106_create(dev, card, pci, &chip)) < 0) {
1544 snd_card_free(card); 1565 snd_card_free(card);
1545 return err; 1566 return err;
1546 } 1567 }
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 0093cd1f92db..71c58df4af28 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -2862,7 +2862,7 @@ static int __devinit snd_cmipci_create(struct snd_card *card, struct pci_dev *pc
2862 cm->iobase = pci_resource_start(pci, 0); 2862 cm->iobase = pci_resource_start(pci, 0);
2863 2863
2864 if (request_irq(pci->irq, snd_cmipci_interrupt, 2864 if (request_irq(pci->irq, snd_cmipci_interrupt,
2865 IRQF_DISABLED|IRQF_SHARED, card->driver, cm)) { 2865 IRQF_SHARED, card->driver, cm)) {
2866 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2866 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2867 snd_cmipci_free(cm); 2867 snd_cmipci_free(cm);
2868 return -EBUSY; 2868 return -EBUSY;
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c
index 0905fa88129d..8e5519de7115 100644
--- a/sound/pci/cs4281.c
+++ b/sound/pci/cs4281.c
@@ -1391,7 +1391,7 @@ static int __devinit snd_cs4281_create(struct snd_card *card,
1391 return -ENOMEM; 1391 return -ENOMEM;
1392 } 1392 }
1393 1393
1394 if (request_irq(pci->irq, snd_cs4281_interrupt, IRQF_DISABLED|IRQF_SHARED, 1394 if (request_irq(pci->irq, snd_cs4281_interrupt, IRQF_SHARED,
1395 "CS4281", chip)) { 1395 "CS4281", chip)) {
1396 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1396 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1397 snd_cs4281_free(chip); 1397 snd_cs4281_free(chip);
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 2807b9756ef0..2ae539b195fd 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -3867,7 +3867,7 @@ int __devinit snd_cs46xx_create(struct snd_card *card,
3867 } 3867 }
3868 } 3868 }
3869 3869
3870 if (request_irq(pci->irq, snd_cs46xx_interrupt, IRQF_DISABLED|IRQF_SHARED, 3870 if (request_irq(pci->irq, snd_cs46xx_interrupt, IRQF_SHARED,
3871 "CS46XX", chip)) { 3871 "CS46XX", chip)) {
3872 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 3872 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
3873 snd_cs46xx_free(chip); 3873 snd_cs46xx_free(chip);
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
index 2441238f2004..b8e75ef9c1e6 100644
--- a/sound/pci/cs5535audio/cs5535audio.c
+++ b/sound/pci/cs5535audio/cs5535audio.c
@@ -320,7 +320,7 @@ static int __devinit snd_cs5535audio_create(struct snd_card *card,
320 cs5535au->port = pci_resource_start(pci, 0); 320 cs5535au->port = pci_resource_start(pci, 0);
321 321
322 if (request_irq(pci->irq, snd_cs5535audio_interrupt, 322 if (request_irq(pci->irq, snd_cs5535audio_interrupt,
323 IRQF_DISABLED|IRQF_SHARED, "CS5535 Audio", cs5535au)) { 323 IRQF_SHARED, "CS5535 Audio", cs5535au)) {
324 snd_printk("unable to grab IRQ %d\n", pci->irq); 324 snd_printk("unable to grab IRQ %d\n", pci->irq);
325 err = -EBUSY; 325 err = -EBUSY;
326 goto sndfail; 326 goto sndfail;
diff --git a/sound/pci/echoaudio/echoaudio.c b/sound/pci/echoaudio/echoaudio.c
index e5e88fe54de0..047e0b5bf15d 100644
--- a/sound/pci/echoaudio/echoaudio.c
+++ b/sound/pci/echoaudio/echoaudio.c
@@ -1872,7 +1872,7 @@ static int snd_echo_free(struct echoaudio *chip)
1872 DE_INIT(("Stopped.\n")); 1872 DE_INIT(("Stopped.\n"));
1873 1873
1874 if (chip->irq >= 0) 1874 if (chip->irq >= 0)
1875 free_irq(chip->irq, (void *)chip); 1875 free_irq(chip->irq, chip);
1876 1876
1877 if (chip->dsp_registers) 1877 if (chip->dsp_registers)
1878 iounmap(chip->dsp_registers); 1878 iounmap(chip->dsp_registers);
@@ -1950,8 +1950,8 @@ static __devinit int snd_echo_create(struct snd_card *card,
1950 chip->dsp_registers = (volatile u32 __iomem *) 1950 chip->dsp_registers = (volatile u32 __iomem *)
1951 ioremap_nocache(chip->dsp_registers_phys, sz); 1951 ioremap_nocache(chip->dsp_registers_phys, sz);
1952 1952
1953 if (request_irq(pci->irq, snd_echo_interrupt, IRQF_DISABLED | IRQF_SHARED, 1953 if (request_irq(pci->irq, snd_echo_interrupt, IRQF_SHARED,
1954 ECHOCARD_NAME, (void *)chip)) { 1954 ECHOCARD_NAME, chip)) {
1955 snd_echo_free(chip); 1955 snd_echo_free(chip);
1956 snd_printk(KERN_ERR "cannot grab irq\n"); 1956 snd_printk(KERN_ERR "cannot grab irq\n");
1957 return -EBUSY; 1957 return -EBUSY;
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index 8bc4ffa6220d..972ec40d8166 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -759,7 +759,7 @@ static int snd_emu10k1_free(struct snd_emu10k1 *emu)
759 free_pm_buffer(emu); 759 free_pm_buffer(emu);
760#endif 760#endif
761 if (emu->irq >= 0) 761 if (emu->irq >= 0)
762 free_irq(emu->irq, (void *)emu); 762 free_irq(emu->irq, emu);
763 if (emu->port) 763 if (emu->port)
764 pci_release_regions(emu->pci); 764 pci_release_regions(emu->pci);
765 if (emu->card_capabilities->ca0151_chip) /* P16V */ 765 if (emu->card_capabilities->ca0151_chip) /* P16V */
@@ -1246,7 +1246,8 @@ int __devinit snd_emu10k1_create(struct snd_card *card,
1246 } 1246 }
1247 emu->port = pci_resource_start(pci, 0); 1247 emu->port = pci_resource_start(pci, 0);
1248 1248
1249 if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_DISABLED|IRQF_SHARED, "EMU10K1", (void *)emu)) { 1249 if (request_irq(pci->irq, snd_emu10k1_interrupt, IRQF_SHARED,
1250 "EMU10K1", emu)) {
1250 err = -EBUSY; 1251 err = -EBUSY;
1251 goto error; 1252 goto error;
1252 } 1253 }
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index c46905a11175..2199b42a6019 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -235,7 +235,7 @@ struct emu10k1x {
235 struct resource *res_port; 235 struct resource *res_port;
236 int irq; 236 int irq;
237 237
238 unsigned int revision; /* chip revision */ 238 unsigned char revision; /* chip revision */
239 unsigned int serial; /* serial number */ 239 unsigned int serial; /* serial number */
240 unsigned short model; /* subsystem id */ 240 unsigned short model; /* subsystem id */
241 241
@@ -760,7 +760,7 @@ static int snd_emu10k1x_free(struct emu10k1x *chip)
760 760
761 // release the irq 761 // release the irq
762 if (chip->irq >= 0) 762 if (chip->irq >= 0)
763 free_irq(chip->irq, (void *)chip); 763 free_irq(chip->irq, chip);
764 764
765 // release the DMA 765 // release the DMA
766 if (chip->dma_buffer.area) { 766 if (chip->dma_buffer.area) {
@@ -927,8 +927,7 @@ static int __devinit snd_emu10k1x_create(struct snd_card *card,
927 } 927 }
928 928
929 if (request_irq(pci->irq, snd_emu10k1x_interrupt, 929 if (request_irq(pci->irq, snd_emu10k1x_interrupt,
930 IRQF_DISABLED|IRQF_SHARED, "EMU10K1X", 930 IRQF_SHARED, "EMU10K1X", chip)) {
931 (void *)chip)) {
932 snd_printk(KERN_ERR "emu10k1x: cannot grab irq %d\n", pci->irq); 931 snd_printk(KERN_ERR "emu10k1x: cannot grab irq %d\n", pci->irq);
933 snd_emu10k1x_free(chip); 932 snd_emu10k1x_free(chip);
934 return -EBUSY; 933 return -EBUSY;
@@ -943,7 +942,7 @@ static int __devinit snd_emu10k1x_create(struct snd_card *card,
943 942
944 pci_set_master(pci); 943 pci_set_master(pci);
945 /* read revision & serial */ 944 /* read revision & serial */
946 pci_read_config_byte(pci, PCI_REVISION_ID, (char *)&chip->revision); 945 pci_read_config_byte(pci, PCI_REVISION_ID, &chip->revision);
947 pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &chip->serial); 946 pci_read_config_dword(pci, PCI_SUBSYSTEM_VENDOR_ID, &chip->serial);
948 pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &chip->model); 947 pci_read_config_word(pci, PCI_SUBSYSTEM_ID, &chip->model);
949 snd_printk(KERN_INFO "Model %04x Rev %08x Serial %08x\n", chip->model, 948 snd_printk(KERN_INFO "Model %04x Rev %08x Serial %08x\n", chip->model,
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index d2a811f222c9..a84f6b21024f 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -2141,7 +2141,7 @@ static int __devinit snd_ensoniq_create(struct snd_card *card,
2141 return err; 2141 return err;
2142 } 2142 }
2143 ensoniq->port = pci_resource_start(pci, 0); 2143 ensoniq->port = pci_resource_start(pci, 0);
2144 if (request_irq(pci->irq, snd_audiopci_interrupt, IRQF_DISABLED|IRQF_SHARED, 2144 if (request_irq(pci->irq, snd_audiopci_interrupt, IRQF_SHARED,
2145 "Ensoniq AudioPCI", ensoniq)) { 2145 "Ensoniq AudioPCI", ensoniq)) {
2146 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2146 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2147 snd_ensoniq_free(ensoniq); 2147 snd_ensoniq_free(ensoniq);
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c
index 1a8d36df4b5d..66ac26c5a240 100644
--- a/sound/pci/es1938.c
+++ b/sound/pci/es1938.c
@@ -1508,7 +1508,7 @@ static int es1938_resume(struct pci_dev *pci)
1508 } 1508 }
1509 1509
1510 if (request_irq(pci->irq, snd_es1938_interrupt, 1510 if (request_irq(pci->irq, snd_es1938_interrupt,
1511 IRQF_DISABLED|IRQF_SHARED, "ES1938", chip)) { 1511 IRQF_SHARED, "ES1938", chip)) {
1512 printk(KERN_ERR "es1938: unable to grab IRQ %d, " 1512 printk(KERN_ERR "es1938: unable to grab IRQ %d, "
1513 "disabling device\n", pci->irq); 1513 "disabling device\n", pci->irq);
1514 snd_card_disconnect(card); 1514 snd_card_disconnect(card);
@@ -1631,7 +1631,7 @@ static int __devinit snd_es1938_create(struct snd_card *card,
1631 chip->vc_port = pci_resource_start(pci, 2); 1631 chip->vc_port = pci_resource_start(pci, 2);
1632 chip->mpu_port = pci_resource_start(pci, 3); 1632 chip->mpu_port = pci_resource_start(pci, 3);
1633 chip->game_port = pci_resource_start(pci, 4); 1633 chip->game_port = pci_resource_start(pci, 4);
1634 if (request_irq(pci->irq, snd_es1938_interrupt, IRQF_DISABLED|IRQF_SHARED, 1634 if (request_irq(pci->irq, snd_es1938_interrupt, IRQF_SHARED,
1635 "ES1938", chip)) { 1635 "ES1938", chip)) {
1636 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1636 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1637 snd_es1938_free(chip); 1637 snd_es1938_free(chip);
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index 092da53e1464..dc84c189b05f 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -1337,7 +1337,7 @@ static struct esm_memory *snd_es1968_new_memory(struct es1968 *chip, int size)
1337 struct esm_memory *buf; 1337 struct esm_memory *buf;
1338 struct list_head *p; 1338 struct list_head *p;
1339 1339
1340 size = ((size + ESM_MEM_ALIGN - 1) / ESM_MEM_ALIGN) * ESM_MEM_ALIGN; 1340 size = ALIGN(size, ESM_MEM_ALIGN);
1341 mutex_lock(&chip->memory_mutex); 1341 mutex_lock(&chip->memory_mutex);
1342 list_for_each(p, &chip->buf_list) { 1342 list_for_each(p, &chip->buf_list) {
1343 buf = list_entry(p, struct esm_memory, list); 1343 buf = list_entry(p, struct esm_memory, list);
@@ -2462,7 +2462,7 @@ static int snd_es1968_free(struct es1968 *chip)
2462 } 2462 }
2463 2463
2464 if (chip->irq >= 0) 2464 if (chip->irq >= 0)
2465 free_irq(chip->irq, (void *)chip); 2465 free_irq(chip->irq, chip);
2466 snd_es1968_free_gameport(chip); 2466 snd_es1968_free_gameport(chip);
2467 chip->master_switch = NULL; 2467 chip->master_switch = NULL;
2468 chip->master_volume = NULL; 2468 chip->master_volume = NULL;
@@ -2552,8 +2552,8 @@ static int __devinit snd_es1968_create(struct snd_card *card,
2552 return err; 2552 return err;
2553 } 2553 }
2554 chip->io_port = pci_resource_start(pci, 0); 2554 chip->io_port = pci_resource_start(pci, 0);
2555 if (request_irq(pci->irq, snd_es1968_interrupt, IRQF_DISABLED|IRQF_SHARED, 2555 if (request_irq(pci->irq, snd_es1968_interrupt, IRQF_SHARED,
2556 "ESS Maestro", (void*)chip)) { 2556 "ESS Maestro", chip)) {
2557 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2557 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2558 snd_es1968_free(chip); 2558 snd_es1968_free(chip);
2559 return -EBUSY; 2559 return -EBUSY;
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index 77e3d5c18302..b7b361ce3a93 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -1395,7 +1395,7 @@ static int __devinit snd_fm801_create(struct snd_card *card,
1395 } 1395 }
1396 chip->port = pci_resource_start(pci, 0); 1396 chip->port = pci_resource_start(pci, 0);
1397 if ((tea575x_tuner & 0x0010) == 0) { 1397 if ((tea575x_tuner & 0x0010) == 0) {
1398 if (request_irq(pci->irq, snd_fm801_interrupt, IRQF_DISABLED|IRQF_SHARED, 1398 if (request_irq(pci->irq, snd_fm801_interrupt, IRQF_SHARED,
1399 "FM801", chip)) { 1399 "FM801", chip)) {
1400 snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->irq); 1400 snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->irq);
1401 snd_fm801_free(chip); 1401 snd_fm801_free(chip);
diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
index 71482c15a852..18bbc87e376f 100644
--- a/sound/pci/hda/hda_codec.c
+++ b/sound/pci/hda/hda_codec.c
@@ -1367,9 +1367,6 @@ static struct hda_rate_tbl rate_bits[] = {
1367 { 176400, SNDRV_PCM_RATE_176400, 0x5800 },/* 4 x 44 */ 1367 { 176400, SNDRV_PCM_RATE_176400, 0x5800 },/* 4 x 44 */
1368 { 192000, SNDRV_PCM_RATE_192000, 0x1800 }, /* 4 x 48 */ 1368 { 192000, SNDRV_PCM_RATE_192000, 0x1800 }, /* 4 x 48 */
1369 1369
1370 /* not autodetected value */
1371 { 9600, SNDRV_PCM_RATE_KNOT, 0x0400 }, /* 1/5 x 48 */
1372
1373 { 0 } /* terminator */ 1370 { 0 } /* terminator */
1374}; 1371};
1375 1372
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index e35cfd326df2..9fd34f85cad5 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1380,7 +1380,8 @@ static int __devinit azx_init_stream(struct azx *chip)
1380 1380
1381static int azx_acquire_irq(struct azx *chip, int do_disconnect) 1381static int azx_acquire_irq(struct azx *chip, int do_disconnect)
1382{ 1382{
1383 if (request_irq(chip->pci->irq, azx_interrupt, IRQF_DISABLED|IRQF_SHARED, 1383 if (request_irq(chip->pci->irq, azx_interrupt,
1384 chip->msi ? 0 : IRQF_SHARED,
1384 "HDA Intel", chip)) { 1385 "HDA Intel", chip)) {
1385 printk(KERN_ERR "hda-intel: unable to grab IRQ %d, " 1386 printk(KERN_ERR "hda-intel: unable to grab IRQ %d, "
1386 "disabling device\n", chip->pci->irq); 1387 "disabling device\n", chip->pci->irq);
diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
index d737f17695a3..17df4d0fe135 100644
--- a/sound/pci/hda/hda_proc.c
+++ b/sound/pci/hda/hda_proc.c
@@ -45,7 +45,7 @@ static const char *get_wid_type_name(unsigned int wid_value)
45 if (names[wid_value]) 45 if (names[wid_value])
46 return names[wid_value]; 46 return names[wid_value];
47 else 47 else
48 return "UNKOWN Widget"; 48 return "UNKNOWN Widget";
49} 49}
50 50
51static void print_amp_caps(struct snd_info_buffer *buffer, 51static void print_amp_caps(struct snd_info_buffer *buffer,
@@ -88,6 +88,48 @@ static void print_amp_vals(struct snd_info_buffer *buffer,
88 snd_iprintf(buffer, "\n"); 88 snd_iprintf(buffer, "\n");
89} 89}
90 90
91static void print_pcm_rates(struct snd_info_buffer *buffer, unsigned int pcm)
92{
93 static unsigned int rates[] = {
94 8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200,
95 96000, 176400, 192000, 384000
96 };
97 int i;
98
99 pcm &= AC_SUPPCM_RATES;
100 snd_iprintf(buffer, " rates [0x%x]:", pcm);
101 for (i = 0; i < ARRAY_SIZE(rates); i++)
102 if (pcm & (1 << i))
103 snd_iprintf(buffer, " %d", rates[i]);
104 snd_iprintf(buffer, "\n");
105}
106
107static void print_pcm_bits(struct snd_info_buffer *buffer, unsigned int pcm)
108{
109 static unsigned int bits[] = { 8, 16, 20, 24, 32 };
110 int i;
111
112 pcm = (pcm >> 16) & 0xff;
113 snd_iprintf(buffer, " bits [0x%x]:", pcm);
114 for (i = 0; i < ARRAY_SIZE(bits); i++)
115 if (pcm & (1 << i))
116 snd_iprintf(buffer, " %d", bits[i]);
117 snd_iprintf(buffer, "\n");
118}
119
120static void print_pcm_formats(struct snd_info_buffer *buffer,
121 unsigned int streams)
122{
123 snd_iprintf(buffer, " formats [0x%x]:", streams & 0xf);
124 if (streams & AC_SUPFMT_PCM)
125 snd_iprintf(buffer, " PCM");
126 if (streams & AC_SUPFMT_FLOAT32)
127 snd_iprintf(buffer, " FLOAT");
128 if (streams & AC_SUPFMT_AC3)
129 snd_iprintf(buffer, " AC3");
130 snd_iprintf(buffer, "\n");
131}
132
91static void print_pcm_caps(struct snd_info_buffer *buffer, 133static void print_pcm_caps(struct snd_info_buffer *buffer,
92 struct hda_codec *codec, hda_nid_t nid) 134 struct hda_codec *codec, hda_nid_t nid)
93{ 135{
@@ -97,8 +139,9 @@ static void print_pcm_caps(struct snd_info_buffer *buffer,
97 snd_iprintf(buffer, "N/A\n"); 139 snd_iprintf(buffer, "N/A\n");
98 return; 140 return;
99 } 141 }
100 snd_iprintf(buffer, "rates 0x%03x, bits 0x%02x, types 0x%x\n", 142 print_pcm_rates(buffer, pcm);
101 pcm & AC_SUPPCM_RATES, (pcm >> 16) & 0xff, stream & 0xf); 143 print_pcm_bits(buffer, pcm);
144 print_pcm_formats(buffer, stream);
102} 145}
103 146
104static const char *get_jack_location(u32 cfg) 147static const char *get_jack_location(u32 cfg)
@@ -210,7 +253,7 @@ static void print_codec_info(struct snd_info_entry *entry, struct snd_info_buffe
210 snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id); 253 snd_iprintf(buffer, "Revision Id: 0x%x\n", codec->revision_id);
211 if (! codec->afg) 254 if (! codec->afg)
212 return; 255 return;
213 snd_iprintf(buffer, "Default PCM: "); 256 snd_iprintf(buffer, "Default PCM:\n");
214 print_pcm_caps(buffer, codec, codec->afg); 257 print_pcm_caps(buffer, codec, codec->afg);
215 snd_iprintf(buffer, "Default Amp-In caps: "); 258 snd_iprintf(buffer, "Default Amp-In caps: ");
216 print_amp_caps(buffer, codec, codec->afg, HDA_INPUT); 259 print_amp_caps(buffer, codec, codec->afg, HDA_INPUT);
@@ -278,7 +321,7 @@ static void print_codec_info(struct snd_info_entry *entry, struct snd_info_buffe
278 321
279 if ((wid_type == AC_WID_AUD_OUT || wid_type == AC_WID_AUD_IN) && 322 if ((wid_type == AC_WID_AUD_OUT || wid_type == AC_WID_AUD_IN) &&
280 (wid_caps & AC_WCAP_FORMAT_OVRD)) { 323 (wid_caps & AC_WCAP_FORMAT_OVRD)) {
281 snd_iprintf(buffer, " PCM: "); 324 snd_iprintf(buffer, " PCM:\n");
282 print_pcm_caps(buffer, codec, nid); 325 print_pcm_caps(buffer, codec, nid);
283 } 326 }
284 327
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index edd22dec8286..076365bc10e9 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -794,6 +794,8 @@ static struct hda_board_config ad1986a_cfg_tbl[] = {
794 { .modelname = "3stack", .config = AD1986A_3STACK }, 794 { .modelname = "3stack", .config = AD1986A_3STACK },
795 { .pci_subvendor = 0x10de, .pci_subdevice = 0xcb84, 795 { .pci_subvendor = 0x10de, .pci_subdevice = 0xcb84,
796 .config = AD1986A_3STACK }, /* ASUS A8N-VM CSM */ 796 .config = AD1986A_3STACK }, /* ASUS A8N-VM CSM */
797 { .pci_subvendor = 0x1043, .pci_subdevice = 0x817f,
798 .config = AD1986A_3STACK }, /* ASUS P5P-L2 */
797 { .pci_subvendor = 0x1043, .pci_subdevice = 0x81b3, 799 { .pci_subvendor = 0x1043, .pci_subdevice = 0x81b3,
798 .config = AD1986A_3STACK }, /* ASUS P5RD2-VM / P5GPL-X SE */ 800 .config = AD1986A_3STACK }, /* ASUS P5RD2-VM / P5GPL-X SE */
799 { .pci_subvendor = 0x1043, .pci_subdevice = 0x81cb, 801 { .pci_subvendor = 0x1043, .pci_subdevice = 0x81cb,
@@ -811,7 +813,7 @@ static struct hda_board_config ad1986a_cfg_tbl[] = {
811 { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024, 813 { .pci_subvendor = 0x144d, .pci_subdevice = 0xc024,
812 .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */ 814 .config = AD1986A_LAPTOP_EAPD }, /* Samsung R65-T2300 Charis */
813 { .pci_subvendor = 0x144d, .pci_subdevice = 0xc026, 815 { .pci_subvendor = 0x144d, .pci_subdevice = 0xc026,
814 .config = AD1986A_LAPTOP_EAPD }, /* Samsung X10-T2300 Culesa */ 816 .config = AD1986A_LAPTOP_EAPD }, /* Samsung X11-T2300 Culesa */
815 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1153, 817 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1153,
816 .config = AD1986A_LAPTOP_EAPD }, /* ASUS M9 */ 818 .config = AD1986A_LAPTOP_EAPD }, /* ASUS M9 */
817 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213, 819 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1213,
@@ -822,6 +824,8 @@ static struct hda_board_config ad1986a_cfg_tbl[] = {
822 .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5F */ 824 .config = AD1986A_LAPTOP_EAPD }, /* ASUS U5F */
823 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1297, 825 { .pci_subvendor = 0x1043, .pci_subdevice = 0x1297,
824 .config = AD1986A_LAPTOP_EAPD }, /* ASUS Z62F */ 826 .config = AD1986A_LAPTOP_EAPD }, /* ASUS Z62F */
827 { .pci_subvendor = 0x1043, .pci_subdevice = 0x12b3,
828 .config = AD1986A_LAPTOP_EAPD }, /* ASUS V1j */
825 { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af, 829 { .pci_subvendor = 0x103c, .pci_subdevice = 0x30af,
826 .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */ 830 .config = AD1986A_LAPTOP_EAPD }, /* HP Compaq Presario B2800 */
827 { .pci_subvendor = 0x17aa, .pci_subdevice = 0x2066, 831 { .pci_subvendor = 0x17aa, .pci_subdevice = 0x2066,
@@ -1640,7 +1644,7 @@ static int ad198x_ch_mode_put(struct snd_kcontrol *kcontrol,
1640 int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, 1644 int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode,
1641 spec->num_channel_mode, 1645 spec->num_channel_mode,
1642 &spec->multiout.max_channels); 1646 &spec->multiout.max_channels);
1643 if (! err && spec->need_dac_fix) 1647 if (err >= 0 && spec->need_dac_fix)
1644 spec->multiout.num_dacs = spec->multiout.max_channels / 2; 1648 spec->multiout.num_dacs = spec->multiout.max_channels / 2;
1645 return err; 1649 return err;
1646} 1650}
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index fb961448db19..29e4c48151bc 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -271,7 +271,7 @@ static int alc_ch_mode_put(struct snd_kcontrol *kcontrol,
271 int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode, 271 int err = snd_hda_ch_mode_put(codec, ucontrol, spec->channel_mode,
272 spec->num_channel_mode, 272 spec->num_channel_mode,
273 &spec->multiout.max_channels); 273 &spec->multiout.max_channels);
274 if (! err && spec->need_dac_fix) 274 if (err >= 0 && spec->need_dac_fix)
275 spec->multiout.num_dacs = spec->multiout.max_channels / 2; 275 spec->multiout.num_dacs = spec->multiout.max_channels / 2;
276 return err; 276 return err;
277} 277}
@@ -5872,6 +5872,8 @@ static struct hda_board_config alc262_cfg_tbl[] = {
5872 { .modelname = "hp-bpc", .config = ALC262_HP_BPC }, 5872 { .modelname = "hp-bpc", .config = ALC262_HP_BPC },
5873 { .pci_subvendor = 0x103c, .pci_subdevice = 0x280c, 5873 { .pci_subvendor = 0x103c, .pci_subdevice = 0x280c,
5874 .config = ALC262_HP_BPC }, /* xw4400 */ 5874 .config = ALC262_HP_BPC }, /* xw4400 */
5875 { .pci_subvendor = 0x103c, .pci_subdevice = 0x2801,
5876 .config = ALC262_HP_BPC }, /* q965 */
5875 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3014, 5877 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3014,
5876 .config = ALC262_HP_BPC }, /* xw6400 */ 5878 .config = ALC262_HP_BPC }, /* xw6400 */
5877 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3015, 5879 { .pci_subvendor = 0x103c, .pci_subdevice = 0x3015,
diff --git a/sound/pci/hda/patch_si3054.c b/sound/pci/hda/patch_si3054.c
index cc87dff1eb56..ed5e45e35963 100644
--- a/sound/pci/hda/patch_si3054.c
+++ b/sound/pci/hda/patch_si3054.c
@@ -243,7 +243,8 @@ static int si3054_init(struct hda_codec *codec)
243 243
244 if((val&SI3054_MEI_READY) != SI3054_MEI_READY) { 244 if((val&SI3054_MEI_READY) != SI3054_MEI_READY) {
245 snd_printk(KERN_ERR "si3054: cannot initialize. EXT MID = %04x\n", val); 245 snd_printk(KERN_ERR "si3054: cannot initialize. EXT MID = %04x\n", val);
246 return -EACCES; 246 /* let's pray that this is no fatal error */
247 /* return -EACCES; */
247 } 248 }
248 249
249 SET_REG(codec, SI3054_GPIO_POLARITY, 0xffff); 250 SET_REG(codec, SI3054_GPIO_POLARITY, 0xffff);
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 8a576b78bee5..8ba31cfb9045 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -2614,7 +2614,7 @@ static int __devinit snd_ice1712_create(struct snd_card *card,
2614 ice->dmapath_port = pci_resource_start(pci, 2); 2614 ice->dmapath_port = pci_resource_start(pci, 2);
2615 ice->profi_port = pci_resource_start(pci, 3); 2615 ice->profi_port = pci_resource_start(pci, 3);
2616 2616
2617 if (request_irq(pci->irq, snd_ice1712_interrupt, IRQF_DISABLED|IRQF_SHARED, 2617 if (request_irq(pci->irq, snd_ice1712_interrupt, IRQF_SHARED,
2618 "ICE1712", ice)) { 2618 "ICE1712", ice)) {
2619 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2619 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2620 snd_ice1712_free(ice); 2620 snd_ice1712_free(ice);
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index e9cbfdf37059..3e3a102e6c34 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -2253,7 +2253,7 @@ static int __devinit snd_vt1724_create(struct snd_card *card,
2253 ice->profi_port = pci_resource_start(pci, 1); 2253 ice->profi_port = pci_resource_start(pci, 1);
2254 2254
2255 if (request_irq(pci->irq, snd_vt1724_interrupt, 2255 if (request_irq(pci->irq, snd_vt1724_interrupt,
2256 IRQF_DISABLED|IRQF_SHARED, "ICE1724", ice)) { 2256 IRQF_SHARED, "ICE1724", ice)) {
2257 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2257 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2258 snd_vt1724_free(ice); 2258 snd_vt1724_free(ice);
2259 return -EIO; 2259 return -EIO;
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 9c1bce7afa86..30aaa6092a84 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -2509,7 +2509,7 @@ static int intel8x0_resume(struct pci_dev *pci)
2509 } 2509 }
2510 pci_set_master(pci); 2510 pci_set_master(pci);
2511 if (request_irq(pci->irq, snd_intel8x0_interrupt, 2511 if (request_irq(pci->irq, snd_intel8x0_interrupt,
2512 IRQF_DISABLED|IRQF_SHARED, card->shortname, chip)) { 2512 IRQF_SHARED, card->shortname, chip)) {
2513 printk(KERN_ERR "intel8x0: unable to grab IRQ %d, " 2513 printk(KERN_ERR "intel8x0: unable to grab IRQ %d, "
2514 "disabling device\n", pci->irq); 2514 "disabling device\n", pci->irq);
2515 snd_card_disconnect(card); 2515 snd_card_disconnect(card);
@@ -2887,7 +2887,7 @@ static int __devinit snd_intel8x0_create(struct snd_card *card,
2887 2887
2888 /* request irq after initializaing int_sta_mask, etc */ 2888 /* request irq after initializaing int_sta_mask, etc */
2889 if (request_irq(pci->irq, snd_intel8x0_interrupt, 2889 if (request_irq(pci->irq, snd_intel8x0_interrupt,
2890 IRQF_DISABLED|IRQF_SHARED, card->shortname, chip)) { 2890 IRQF_SHARED, card->shortname, chip)) {
2891 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2891 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2892 snd_intel8x0_free(chip); 2892 snd_intel8x0_free(chip);
2893 return -EBUSY; 2893 return -EBUSY;
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index bd467c501123..09dcf923b547 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -1071,7 +1071,7 @@ static int intel8x0m_resume(struct pci_dev *pci)
1071 } 1071 }
1072 pci_set_master(pci); 1072 pci_set_master(pci);
1073 if (request_irq(pci->irq, snd_intel8x0_interrupt, 1073 if (request_irq(pci->irq, snd_intel8x0_interrupt,
1074 IRQF_DISABLED|IRQF_SHARED, card->shortname, chip)) { 1074 IRQF_SHARED, card->shortname, chip)) {
1075 printk(KERN_ERR "intel8x0m: unable to grab IRQ %d, " 1075 printk(KERN_ERR "intel8x0m: unable to grab IRQ %d, "
1076 "disabling device\n", pci->irq); 1076 "disabling device\n", pci->irq);
1077 snd_card_disconnect(card); 1077 snd_card_disconnect(card);
@@ -1205,7 +1205,7 @@ static int __devinit snd_intel8x0m_create(struct snd_card *card,
1205 } 1205 }
1206 1206
1207 port_inited: 1207 port_inited:
1208 if (request_irq(pci->irq, snd_intel8x0_interrupt, IRQF_DISABLED|IRQF_SHARED, 1208 if (request_irq(pci->irq, snd_intel8x0_interrupt, IRQF_SHARED,
1209 card->shortname, chip)) { 1209 card->shortname, chip)) {
1210 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1210 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1211 snd_intel8x0_free(chip); 1211 snd_intel8x0_free(chip);
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
index fa8cd8cecc21..345eefeedb39 100644
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -2233,7 +2233,7 @@ static int __devinit snd_korg1212_create(struct snd_card *card, struct pci_dev *
2233 } 2233 }
2234 2234
2235 err = request_irq(pci->irq, snd_korg1212_interrupt, 2235 err = request_irq(pci->irq, snd_korg1212_interrupt,
2236 IRQF_DISABLED|IRQF_SHARED, 2236 IRQF_SHARED,
2237 "korg1212", korg1212); 2237 "korg1212", korg1212);
2238 2238
2239 if (err) { 2239 if (err) {
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 8cab342bbaaf..6efe6d5ade1e 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -2377,7 +2377,7 @@ static int __devinit snd_m3_assp_client_init(struct snd_m3 *chip, struct m3_dma
2377 * shifted list address is aligned. 2377 * shifted list address is aligned.
2378 * list address = (mem address >> 1) >> 7; 2378 * list address = (mem address >> 1) >> 7;
2379 */ 2379 */
2380 data_bytes = (data_bytes + 255) & ~255; 2380 data_bytes = ALIGN(data_bytes, 256);
2381 address = 0x1100 + ((data_bytes/2) * index); 2381 address = 0x1100 + ((data_bytes/2) * index);
2382 2382
2383 if ((address + (data_bytes/2)) >= 0x1c00) { 2383 if ((address + (data_bytes/2)) >= 0x1c00) {
@@ -2762,7 +2762,7 @@ snd_m3_create(struct snd_card *card, struct pci_dev *pci,
2762 2762
2763 tasklet_init(&chip->hwvol_tq, snd_m3_update_hw_volume, (unsigned long)chip); 2763 tasklet_init(&chip->hwvol_tq, snd_m3_update_hw_volume, (unsigned long)chip);
2764 2764
2765 if (request_irq(pci->irq, snd_m3_interrupt, IRQF_DISABLED|IRQF_SHARED, 2765 if (request_irq(pci->irq, snd_m3_interrupt, IRQF_SHARED,
2766 card->driver, chip)) { 2766 card->driver, chip)) {
2767 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2767 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2768 snd_m3_free(chip); 2768 snd_m3_free(chip);
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c
index 216aee5f93e7..21386da3bc86 100644
--- a/sound/pci/mixart/mixart.c
+++ b/sound/pci/mixart/mixart.c
@@ -1066,7 +1066,7 @@ static int snd_mixart_free(struct mixart_mgr *mgr)
1066 1066
1067 /* release irq */ 1067 /* release irq */
1068 if (mgr->irq >= 0) 1068 if (mgr->irq >= 0)
1069 free_irq(mgr->irq, (void *)mgr); 1069 free_irq(mgr->irq, mgr);
1070 1070
1071 /* reset board if some firmware was loaded */ 1071 /* reset board if some firmware was loaded */
1072 if(mgr->dsp_loaded) { 1072 if(mgr->dsp_loaded) {
@@ -1319,7 +1319,8 @@ static int __devinit snd_mixart_probe(struct pci_dev *pci,
1319 pci_resource_len(pci, i)); 1319 pci_resource_len(pci, i));
1320 } 1320 }
1321 1321
1322 if (request_irq(pci->irq, snd_mixart_interrupt, IRQF_DISABLED|IRQF_SHARED, CARD_NAME, (void *)mgr)) { 1322 if (request_irq(pci->irq, snd_mixart_interrupt, IRQF_SHARED,
1323 CARD_NAME, mgr)) {
1323 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1324 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1324 snd_mixart_free(mgr); 1325 snd_mixart_free(mgr);
1325 return -EBUSY; 1326 return -EBUSY;
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
index 945d21bf187e..879e31a9f9c6 100644
--- a/sound/pci/nm256/nm256.c
+++ b/sound/pci/nm256/nm256.c
@@ -465,7 +465,7 @@ static int snd_nm256_acquire_irq(struct nm256 *chip)
465{ 465{
466 mutex_lock(&chip->irq_mutex); 466 mutex_lock(&chip->irq_mutex);
467 if (chip->irq < 0) { 467 if (chip->irq < 0) {
468 if (request_irq(chip->pci->irq, chip->interrupt, IRQF_DISABLED|IRQF_SHARED, 468 if (request_irq(chip->pci->irq, chip->interrupt, IRQF_SHARED,
469 chip->card->driver, chip)) { 469 chip->card->driver, chip)) {
470 snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->pci->irq); 470 snd_printk(KERN_ERR "unable to grab IRQ %d\n", chip->pci->irq);
471 mutex_unlock(&chip->irq_mutex); 471 mutex_unlock(&chip->irq_mutex);
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c
index 533c672ae8f3..d97413484ae9 100644
--- a/sound/pci/pcxhr/pcxhr.c
+++ b/sound/pci/pcxhr/pcxhr.c
@@ -1250,7 +1250,7 @@ static int __devinit pcxhr_probe(struct pci_dev *pci, const struct pci_device_id
1250 mgr->pci = pci; 1250 mgr->pci = pci;
1251 mgr->irq = -1; 1251 mgr->irq = -1;
1252 1252
1253 if (request_irq(pci->irq, pcxhr_interrupt, IRQF_DISABLED|IRQF_SHARED, 1253 if (request_irq(pci->irq, pcxhr_interrupt, IRQF_SHARED,
1254 card_name, mgr)) { 1254 card_name, mgr)) {
1255 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1255 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1256 pcxhr_free(mgr); 1256 pcxhr_free(mgr);
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index 56e0c01123e7..5e1d5d2b2850 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -1899,9 +1899,8 @@ snd_riptide_create(struct snd_card *card, struct pci_dev *pci,
1899 hwport = (struct riptideport *)chip->port; 1899 hwport = (struct riptideport *)chip->port;
1900 UNSET_AIE(hwport); 1900 UNSET_AIE(hwport);
1901 1901
1902 if (request_irq 1902 if (request_irq(pci->irq, snd_riptide_interrupt, IRQF_SHARED,
1903 (pci->irq, snd_riptide_interrupt, IRQF_DISABLED | IRQF_SHARED, 1903 "RIPTIDE", chip)) {
1904 "RIPTIDE", chip)) {
1905 snd_printk(KERN_ERR "Riptide: unable to grab IRQ %d\n", 1904 snd_printk(KERN_ERR "Riptide: unable to grab IRQ %d\n",
1906 pci->irq); 1905 pci->irq);
1907 snd_riptide_free(chip); 1906 snd_riptide_free(chip);
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c
index dc8d1302e22d..6bb7ac650ec4 100644
--- a/sound/pci/rme32.c
+++ b/sound/pci/rme32.c
@@ -1373,7 +1373,8 @@ static int __devinit snd_rme32_create(struct rme32 * rme32)
1373 return -ENOMEM; 1373 return -ENOMEM;
1374 } 1374 }
1375 1375
1376 if (request_irq(pci->irq, snd_rme32_interrupt, IRQF_DISABLED | IRQF_SHARED, "RME32", (void *) rme32)) { 1376 if (request_irq(pci->irq, snd_rme32_interrupt, IRQF_SHARED,
1377 "RME32", rme32)) {
1377 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1378 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1378 return -EBUSY; 1379 return -EBUSY;
1379 } 1380 }
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index 106110a89a4c..e3304b7ccbcb 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -1587,7 +1587,8 @@ snd_rme96_create(struct rme96 *rme96)
1587 return -ENOMEM; 1587 return -ENOMEM;
1588 } 1588 }
1589 1589
1590 if (request_irq(pci->irq, snd_rme96_interrupt, IRQF_DISABLED|IRQF_SHARED, "RME96", (void *)rme96)) { 1590 if (request_irq(pci->irq, snd_rme96_interrupt, IRQF_SHARED,
1591 "RME96", rme96)) {
1591 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1592 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1592 return -EBUSY; 1593 return -EBUSY;
1593 } 1594 }
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index 694aa057ed49..6383987b460e 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -3516,8 +3516,8 @@ static int __devinit snd_hdsp_initialize_memory(struct hdsp *hdsp)
3516 3516
3517 /* Align to bus-space 64K boundary */ 3517 /* Align to bus-space 64K boundary */
3518 3518
3519 cb_bus = (hdsp->capture_dma_buf.addr + 0xFFFF) & ~0xFFFFl; 3519 cb_bus = ALIGN(hdsp->capture_dma_buf.addr, 0x10000ul);
3520 pb_bus = (hdsp->playback_dma_buf.addr + 0xFFFF) & ~0xFFFFl; 3520 pb_bus = ALIGN(hdsp->playback_dma_buf.addr, 0x10000ul);
3521 3521
3522 /* Tell the card where it is */ 3522 /* Tell the card where it is */
3523 3523
@@ -4934,13 +4934,14 @@ static int __devinit snd_hdsp_create(struct snd_card *card,
4934 return -EBUSY; 4934 return -EBUSY;
4935 } 4935 }
4936 4936
4937 if (request_irq(pci->irq, snd_hdsp_interrupt, IRQF_DISABLED|IRQF_SHARED, "hdsp", (void *)hdsp)) { 4937 if (request_irq(pci->irq, snd_hdsp_interrupt, IRQF_SHARED,
4938 "hdsp", hdsp)) {
4938 snd_printk(KERN_ERR "Hammerfall-DSP: unable to use IRQ %d\n", pci->irq); 4939 snd_printk(KERN_ERR "Hammerfall-DSP: unable to use IRQ %d\n", pci->irq);
4939 return -EBUSY; 4940 return -EBUSY;
4940 } 4941 }
4941 4942
4942 hdsp->irq = pci->irq; 4943 hdsp->irq = pci->irq;
4943 hdsp->precise_ptr = 1; 4944 hdsp->precise_ptr = 0;
4944 hdsp->use_midi_tasklet = 1; 4945 hdsp->use_midi_tasklet = 1;
4945 4946
4946 if ((err = snd_hdsp_initialize_memory(hdsp)) < 0) 4947 if ((err = snd_hdsp_initialize_memory(hdsp)) < 0)
diff --git a/sound/pci/rme9652/hdspm.c b/sound/pci/rme9652/hdspm.c
index 7055d893855d..0547f6f04bdc 100644
--- a/sound/pci/rme9652/hdspm.c
+++ b/sound/pci/rme9652/hdspm.c
@@ -3496,8 +3496,7 @@ static int __devinit snd_hdspm_create(struct snd_card *card, struct hdspm * hdsp
3496 hdspm->port + io_extent - 1); 3496 hdspm->port + io_extent - 1);
3497 3497
3498 if (request_irq(pci->irq, snd_hdspm_interrupt, 3498 if (request_irq(pci->irq, snd_hdspm_interrupt,
3499 IRQF_DISABLED | IRQF_SHARED, "hdspm", 3499 IRQF_SHARED, "hdspm", hdspm)) {
3500 (void *) hdspm)) {
3501 snd_printk(KERN_ERR "HDSPM: unable to use IRQ %d\n", pci->irq); 3500 snd_printk(KERN_ERR "HDSPM: unable to use IRQ %d\n", pci->irq);
3502 return -EBUSY; 3501 return -EBUSY;
3503 } 3502 }
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
index cf0427b4bfde..cc3bdececce7 100644
--- a/sound/pci/rme9652/rme9652.c
+++ b/sound/pci/rme9652/rme9652.c
@@ -1827,8 +1827,8 @@ static int __devinit snd_rme9652_initialize_memory(struct snd_rme9652 *rme9652)
1827 1827
1828 /* Align to bus-space 64K boundary */ 1828 /* Align to bus-space 64K boundary */
1829 1829
1830 cb_bus = (rme9652->capture_dma_buf.addr + 0xFFFF) & ~0xFFFFl; 1830 cb_bus = ALIGN(rme9652->capture_dma_buf.addr, 0x10000ul);
1831 pb_bus = (rme9652->playback_dma_buf.addr + 0xFFFF) & ~0xFFFFl; 1831 pb_bus = ALIGN(rme9652->playback_dma_buf.addr, 0x10000ul);
1832 1832
1833 /* Tell the card where it is */ 1833 /* Tell the card where it is */
1834 1834
@@ -2500,7 +2500,8 @@ static int __devinit snd_rme9652_create(struct snd_card *card,
2500 return -EBUSY; 2500 return -EBUSY;
2501 } 2501 }
2502 2502
2503 if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_DISABLED|IRQF_SHARED, "rme9652", (void *)rme9652)) { 2503 if (request_irq(pci->irq, snd_rme9652_interrupt, IRQF_SHARED,
2504 "rme9652", rme9652)) {
2504 snd_printk(KERN_ERR "unable to request IRQ %d\n", pci->irq); 2505 snd_printk(KERN_ERR "unable to request IRQ %d\n", pci->irq);
2505 return -EBUSY; 2506 return -EBUSY;
2506 } 2507 }
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
index f9b8afabda9c..9f25d93cbec2 100644
--- a/sound/pci/sonicvibes.c
+++ b/sound/pci/sonicvibes.c
@@ -1195,7 +1195,7 @@ static int snd_sonicvibes_free(struct sonicvibes *sonic)
1195 pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port); 1195 pci_write_config_dword(sonic->pci, 0x40, sonic->dmaa_port);
1196 pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port); 1196 pci_write_config_dword(sonic->pci, 0x48, sonic->dmac_port);
1197 if (sonic->irq >= 0) 1197 if (sonic->irq >= 0)
1198 free_irq(sonic->irq, (void *)sonic); 1198 free_irq(sonic->irq, sonic);
1199 release_and_free_resource(sonic->res_dmaa); 1199 release_and_free_resource(sonic->res_dmaa);
1200 release_and_free_resource(sonic->res_dmac); 1200 release_and_free_resource(sonic->res_dmac);
1201 pci_release_regions(sonic->pci); 1201 pci_release_regions(sonic->pci);
@@ -1257,7 +1257,8 @@ static int __devinit snd_sonicvibes_create(struct snd_card *card,
1257 sonic->midi_port = pci_resource_start(pci, 3); 1257 sonic->midi_port = pci_resource_start(pci, 3);
1258 sonic->game_port = pci_resource_start(pci, 4); 1258 sonic->game_port = pci_resource_start(pci, 4);
1259 1259
1260 if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_DISABLED|IRQF_SHARED, "S3 SonicVibes", (void *)sonic)) { 1260 if (request_irq(pci->irq, snd_sonicvibes_interrupt, IRQF_SHARED,
1261 "S3 SonicVibes", sonic)) {
1261 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1262 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1262 snd_sonicvibes_free(sonic); 1263 snd_sonicvibes_free(sonic);
1263 return -EBUSY; 1264 return -EBUSY;
diff --git a/sound/pci/trident/trident_main.c b/sound/pci/trident/trident_main.c
index 1fbc4321122f..474f2d451ae8 100644
--- a/sound/pci/trident/trident_main.c
+++ b/sound/pci/trident/trident_main.c
@@ -3380,8 +3380,8 @@ static int __devinit snd_trident_tlb_alloc(struct snd_trident *trident)
3380 snd_printk(KERN_ERR "trident: unable to allocate TLB buffer\n"); 3380 snd_printk(KERN_ERR "trident: unable to allocate TLB buffer\n");
3381 return -ENOMEM; 3381 return -ENOMEM;
3382 } 3382 }
3383 trident->tlb.entries = (unsigned int*)(((unsigned long)trident->tlb.buffer.area + SNDRV_TRIDENT_MAX_PAGES * 4 - 1) & ~(SNDRV_TRIDENT_MAX_PAGES * 4 - 1)); 3383 trident->tlb.entries = (unsigned int*)ALIGN((unsigned long)trident->tlb.buffer.area, SNDRV_TRIDENT_MAX_PAGES * 4);
3384 trident->tlb.entries_dmaaddr = (trident->tlb.buffer.addr + SNDRV_TRIDENT_MAX_PAGES * 4 - 1) & ~(SNDRV_TRIDENT_MAX_PAGES * 4 - 1); 3384 trident->tlb.entries_dmaaddr = ALIGN(trident->tlb.buffer.addr, SNDRV_TRIDENT_MAX_PAGES * 4);
3385 /* allocate shadow TLB page table (virtual addresses) */ 3385 /* allocate shadow TLB page table (virtual addresses) */
3386 trident->tlb.shadow_entries = vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long)); 3386 trident->tlb.shadow_entries = vmalloc(SNDRV_TRIDENT_MAX_PAGES*sizeof(unsigned long));
3387 if (trident->tlb.shadow_entries == NULL) { 3387 if (trident->tlb.shadow_entries == NULL) {
@@ -3608,7 +3608,7 @@ int __devinit snd_trident_create(struct snd_card *card,
3608 } 3608 }
3609 trident->port = pci_resource_start(pci, 0); 3609 trident->port = pci_resource_start(pci, 0);
3610 3610
3611 if (request_irq(pci->irq, snd_trident_interrupt, IRQF_DISABLED|IRQF_SHARED, 3611 if (request_irq(pci->irq, snd_trident_interrupt, IRQF_SHARED,
3612 "Trident Audio", trident)) { 3612 "Trident Audio", trident)) {
3613 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 3613 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
3614 snd_trident_free(trident); 3614 snd_trident_free(trident);
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 92b0736c0fdb..a572b018807f 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -2307,7 +2307,7 @@ static int __devinit snd_via82xx_create(struct snd_card *card,
2307 if (request_irq(pci->irq, 2307 if (request_irq(pci->irq,
2308 chip_type == TYPE_VIA8233 ? 2308 chip_type == TYPE_VIA8233 ?
2309 snd_via8233_interrupt : snd_via686_interrupt, 2309 snd_via8233_interrupt : snd_via686_interrupt,
2310 IRQF_DISABLED|IRQF_SHARED, 2310 IRQF_SHARED,
2311 card->driver, chip)) { 2311 card->driver, chip)) {
2312 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2312 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2313 snd_via82xx_free(chip); 2313 snd_via82xx_free(chip);
@@ -2366,7 +2366,7 @@ struct dxs_whitelist {
2366 2366
2367static int __devinit check_dxs_list(struct pci_dev *pci, int revision) 2367static int __devinit check_dxs_list(struct pci_dev *pci, int revision)
2368{ 2368{
2369 static struct dxs_whitelist whitelist[] = { 2369 static struct dxs_whitelist whitelist[] __devinitdata = {
2370 { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */ 2370 { .subvendor = 0x1005, .subdevice = 0x4710, .action = VIA_DXS_ENABLE }, /* Avance Logic Mobo */
2371 { .subvendor = 0x1019, .subdevice = 0x0996, .action = VIA_DXS_48K }, 2371 { .subvendor = 0x1019, .subdevice = 0x0996, .action = VIA_DXS_48K },
2372 { .subvendor = 0x1019, .subdevice = 0x0a81, .action = VIA_DXS_NO_VRA }, /* ECS K7VTA3 v8.0 */ 2372 { .subvendor = 0x1019, .subdevice = 0x0a81, .action = VIA_DXS_NO_VRA }, /* ECS K7VTA3 v8.0 */
@@ -2427,7 +2427,7 @@ static int __devinit check_dxs_list(struct pci_dev *pci, int revision)
2427 { .subvendor = 0x4005, .subdevice = 0x4710, .action = VIA_DXS_SRC }, /* MSI K7T266 Pro2 (MS-6380 V2.0) BIOS 3.7 */ 2427 { .subvendor = 0x4005, .subdevice = 0x4710, .action = VIA_DXS_SRC }, /* MSI K7T266 Pro2 (MS-6380 V2.0) BIOS 3.7 */
2428 { } /* terminator */ 2428 { } /* terminator */
2429 }; 2429 };
2430 struct dxs_whitelist *w; 2430 const struct dxs_whitelist *w;
2431 unsigned short subsystem_vendor; 2431 unsigned short subsystem_vendor;
2432 unsigned short subsystem_device; 2432 unsigned short subsystem_device;
2433 2433
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index feb27c966256..17d6b847585f 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -1124,7 +1124,7 @@ static int __devinit snd_via82xx_create(struct snd_card *card,
1124 return err; 1124 return err;
1125 } 1125 }
1126 chip->port = pci_resource_start(pci, 0); 1126 chip->port = pci_resource_start(pci, 0);
1127 if (request_irq(pci->irq, snd_via82xx_interrupt, IRQF_DISABLED|IRQF_SHARED, 1127 if (request_irq(pci->irq, snd_via82xx_interrupt, IRQF_SHARED,
1128 card->driver, chip)) { 1128 card->driver, chip)) {
1129 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 1129 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
1130 snd_via82xx_free(chip); 1130 snd_via82xx_free(chip);
diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c
index af49e8aabf55..89f58ea180b3 100644
--- a/sound/pci/vx222/vx222.c
+++ b/sound/pci/vx222/vx222.c
@@ -169,8 +169,8 @@ static int __devinit snd_vx222_create(struct snd_card *card, struct pci_dev *pci
169 for (i = 0; i < 2; i++) 169 for (i = 0; i < 2; i++)
170 vx->port[i] = pci_resource_start(pci, i + 1); 170 vx->port[i] = pci_resource_start(pci, i + 1);
171 171
172 if (request_irq(pci->irq, snd_vx_irq_handler, IRQF_DISABLED|IRQF_SHARED, 172 if (request_irq(pci->irq, snd_vx_irq_handler, IRQF_SHARED,
173 CARD_NAME, (void *) chip)) { 173 CARD_NAME, chip)) {
174 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 174 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
175 snd_vx222_free(chip); 175 snd_vx222_free(chip);
176 return -EBUSY; 176 return -EBUSY;
diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c
index 186453f7abe7..fd9b7b83a884 100644
--- a/sound/pci/ymfpci/ymfpci.c
+++ b/sound/pci/ymfpci/ymfpci.c
@@ -49,7 +49,6 @@ static long mpu_port[SNDRV_CARDS];
49static long joystick_port[SNDRV_CARDS]; 49static long joystick_port[SNDRV_CARDS];
50#endif 50#endif
51static int rear_switch[SNDRV_CARDS]; 51static int rear_switch[SNDRV_CARDS];
52static int rear_swap[SNDRV_CARDS] = { [0 ... (SNDRV_CARDS-1)] = 1 };
53 52
54module_param_array(index, int, NULL, 0444); 53module_param_array(index, int, NULL, 0444);
55MODULE_PARM_DESC(index, "Index value for the Yamaha DS-1 PCI soundcard."); 54MODULE_PARM_DESC(index, "Index value for the Yamaha DS-1 PCI soundcard.");
@@ -67,8 +66,6 @@ MODULE_PARM_DESC(joystick_port, "Joystick port address");
67#endif 66#endif
68module_param_array(rear_switch, bool, NULL, 0444); 67module_param_array(rear_switch, bool, NULL, 0444);
69MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch"); 68MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch");
70module_param_array(rear_swap, bool, NULL, 0444);
71MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output");
72 69
73static struct pci_device_id snd_ymfpci_ids[] = { 70static struct pci_device_id snd_ymfpci_ids[] = {
74 { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ 71 { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */
@@ -298,7 +295,7 @@ static int __devinit snd_card_ymfpci_probe(struct pci_dev *pci,
298 snd_card_free(card); 295 snd_card_free(card);
299 return err; 296 return err;
300 } 297 }
301 if ((err = snd_ymfpci_mixer(chip, rear_switch[dev], rear_swap[dev])) < 0) { 298 if ((err = snd_ymfpci_mixer(chip, rear_switch[dev])) < 0) {
302 snd_card_free(card); 299 snd_card_free(card);
303 return err; 300 return err;
304 } 301 }
diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
index a40c1085fd20..7881944a1957 100644
--- a/sound/pci/ymfpci/ymfpci_main.c
+++ b/sound/pci/ymfpci/ymfpci_main.c
@@ -910,7 +910,7 @@ static int snd_ymfpci_playback_open(struct snd_pcm_substream *substream)
910 ypcm = runtime->private_data; 910 ypcm = runtime->private_data;
911 ypcm->output_front = 1; 911 ypcm->output_front = 1;
912 ypcm->output_rear = chip->mode_dup4ch ? 1 : 0; 912 ypcm->output_rear = chip->mode_dup4ch ? 1 : 0;
913 ypcm->swap_rear = chip->rear_swap; 913 ypcm->swap_rear = 0;
914 spin_lock_irq(&chip->reg_lock); 914 spin_lock_irq(&chip->reg_lock);
915 if (ypcm->output_rear) { 915 if (ypcm->output_rear) {
916 ymfpci_open_extension(chip); 916 ymfpci_open_extension(chip);
@@ -936,6 +936,7 @@ static int snd_ymfpci_playback_spdif_open(struct snd_pcm_substream *substream)
936 ypcm = runtime->private_data; 936 ypcm = runtime->private_data;
937 ypcm->output_front = 0; 937 ypcm->output_front = 0;
938 ypcm->output_rear = 1; 938 ypcm->output_rear = 1;
939 ypcm->swap_rear = 1;
939 spin_lock_irq(&chip->reg_lock); 940 spin_lock_irq(&chip->reg_lock);
940 snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTCTRL, 941 snd_ymfpci_writew(chip, YDSXGR_SPDIFOUTCTRL,
941 snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) | 2); 942 snd_ymfpci_readw(chip, YDSXGR_SPDIFOUTCTRL) | 2);
@@ -963,6 +964,7 @@ static int snd_ymfpci_playback_4ch_open(struct snd_pcm_substream *substream)
963 ypcm = runtime->private_data; 964 ypcm = runtime->private_data;
964 ypcm->output_front = 0; 965 ypcm->output_front = 0;
965 ypcm->output_rear = 1; 966 ypcm->output_rear = 1;
967 ypcm->swap_rear = 0;
966 spin_lock_irq(&chip->reg_lock); 968 spin_lock_irq(&chip->reg_lock);
967 ymfpci_open_extension(chip); 969 ymfpci_open_extension(chip);
968 chip->rear_opened++; 970 chip->rear_opened++;
@@ -1755,7 +1757,7 @@ static void snd_ymfpci_mixer_free_ac97(struct snd_ac97 *ac97)
1755 chip->ac97 = NULL; 1757 chip->ac97 = NULL;
1756} 1758}
1757 1759
1758int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rear_swap) 1760int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch)
1759{ 1761{
1760 struct snd_ac97_template ac97; 1762 struct snd_ac97_template ac97;
1761 struct snd_kcontrol *kctl; 1763 struct snd_kcontrol *kctl;
@@ -1767,7 +1769,6 @@ int __devinit snd_ymfpci_mixer(struct snd_ymfpci *chip, int rear_switch, int rea
1767 .read = snd_ymfpci_codec_read, 1769 .read = snd_ymfpci_codec_read,
1768 }; 1770 };
1769 1771
1770 chip->rear_swap = rear_swap;
1771 if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0) 1772 if ((err = snd_ac97_bus(chip->card, 0, &ops, chip, &chip->ac97_bus)) < 0)
1772 return err; 1773 return err;
1773 chip->ac97_bus->private_free = snd_ymfpci_mixer_free_ac97_bus; 1774 chip->ac97_bus->private_free = snd_ymfpci_mixer_free_ac97_bus;
@@ -2025,10 +2026,10 @@ static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip)
2025 chip->bank_size_effect = snd_ymfpci_readl(chip, YDSXGR_EFFCTRLSIZE) << 2; 2026 chip->bank_size_effect = snd_ymfpci_readl(chip, YDSXGR_EFFCTRLSIZE) << 2;
2026 chip->work_size = YDSXG_DEFAULT_WORK_SIZE; 2027 chip->work_size = YDSXG_DEFAULT_WORK_SIZE;
2027 2028
2028 size = ((playback_ctrl_size + 0x00ff) & ~0x00ff) + 2029 size = ALIGN(playback_ctrl_size, 0x100) +
2029 ((chip->bank_size_playback * 2 * YDSXG_PLAYBACK_VOICES + 0x00ff) & ~0x00ff) + 2030 ALIGN(chip->bank_size_playback * 2 * YDSXG_PLAYBACK_VOICES, 0x100) +
2030 ((chip->bank_size_capture * 2 * YDSXG_CAPTURE_VOICES + 0x00ff) & ~0x00ff) + 2031 ALIGN(chip->bank_size_capture * 2 * YDSXG_CAPTURE_VOICES, 0x100) +
2031 ((chip->bank_size_effect * 2 * YDSXG_EFFECT_VOICES + 0x00ff) & ~0x00ff) + 2032 ALIGN(chip->bank_size_effect * 2 * YDSXG_EFFECT_VOICES, 0x100) +
2032 chip->work_size; 2033 chip->work_size;
2033 /* work_ptr must be aligned to 256 bytes, but it's already 2034 /* work_ptr must be aligned to 256 bytes, but it's already
2034 covered with the kernel page allocation mechanism */ 2035 covered with the kernel page allocation mechanism */
@@ -2043,8 +2044,8 @@ static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip)
2043 chip->bank_base_playback_addr = ptr_addr; 2044 chip->bank_base_playback_addr = ptr_addr;
2044 chip->ctrl_playback = (u32 *)ptr; 2045 chip->ctrl_playback = (u32 *)ptr;
2045 chip->ctrl_playback[0] = cpu_to_le32(YDSXG_PLAYBACK_VOICES); 2046 chip->ctrl_playback[0] = cpu_to_le32(YDSXG_PLAYBACK_VOICES);
2046 ptr += (playback_ctrl_size + 0x00ff) & ~0x00ff; 2047 ptr += ALIGN(playback_ctrl_size, 0x100);
2047 ptr_addr += (playback_ctrl_size + 0x00ff) & ~0x00ff; 2048 ptr_addr += ALIGN(playback_ctrl_size, 0x100);
2048 for (voice = 0; voice < YDSXG_PLAYBACK_VOICES; voice++) { 2049 for (voice = 0; voice < YDSXG_PLAYBACK_VOICES; voice++) {
2049 chip->voices[voice].number = voice; 2050 chip->voices[voice].number = voice;
2050 chip->voices[voice].bank = (struct snd_ymfpci_playback_bank *)ptr; 2051 chip->voices[voice].bank = (struct snd_ymfpci_playback_bank *)ptr;
@@ -2055,8 +2056,8 @@ static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip)
2055 ptr_addr += chip->bank_size_playback; 2056 ptr_addr += chip->bank_size_playback;
2056 } 2057 }
2057 } 2058 }
2058 ptr = (char *)(((unsigned long)ptr + 0x00ff) & ~0x00ff); 2059 ptr = (char *)ALIGN((unsigned long)ptr, 0x100);
2059 ptr_addr = (ptr_addr + 0x00ff) & ~0x00ff; 2060 ptr_addr = ALIGN(ptr_addr, 0x100);
2060 chip->bank_base_capture = ptr; 2061 chip->bank_base_capture = ptr;
2061 chip->bank_base_capture_addr = ptr_addr; 2062 chip->bank_base_capture_addr = ptr_addr;
2062 for (voice = 0; voice < YDSXG_CAPTURE_VOICES; voice++) 2063 for (voice = 0; voice < YDSXG_CAPTURE_VOICES; voice++)
@@ -2065,8 +2066,8 @@ static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip)
2065 ptr += chip->bank_size_capture; 2066 ptr += chip->bank_size_capture;
2066 ptr_addr += chip->bank_size_capture; 2067 ptr_addr += chip->bank_size_capture;
2067 } 2068 }
2068 ptr = (char *)(((unsigned long)ptr + 0x00ff) & ~0x00ff); 2069 ptr = (char *)ALIGN((unsigned long)ptr, 0x100);
2069 ptr_addr = (ptr_addr + 0x00ff) & ~0x00ff; 2070 ptr_addr = ALIGN(ptr_addr, 0x100);
2070 chip->bank_base_effect = ptr; 2071 chip->bank_base_effect = ptr;
2071 chip->bank_base_effect_addr = ptr_addr; 2072 chip->bank_base_effect_addr = ptr_addr;
2072 for (voice = 0; voice < YDSXG_EFFECT_VOICES; voice++) 2073 for (voice = 0; voice < YDSXG_EFFECT_VOICES; voice++)
@@ -2075,8 +2076,8 @@ static int __devinit snd_ymfpci_memalloc(struct snd_ymfpci *chip)
2075 ptr += chip->bank_size_effect; 2076 ptr += chip->bank_size_effect;
2076 ptr_addr += chip->bank_size_effect; 2077 ptr_addr += chip->bank_size_effect;
2077 } 2078 }
2078 ptr = (char *)(((unsigned long)ptr + 0x00ff) & ~0x00ff); 2079 ptr = (char *)ALIGN((unsigned long)ptr, 0x100);
2079 ptr_addr = (ptr_addr + 0x00ff) & ~0x00ff; 2080 ptr_addr = ALIGN(ptr_addr, 0x100);
2080 chip->work_base = ptr; 2081 chip->work_base = ptr;
2081 chip->work_base_addr = ptr_addr; 2082 chip->work_base_addr = ptr_addr;
2082 2083
@@ -2153,7 +2154,7 @@ static int snd_ymfpci_free(struct snd_ymfpci *chip)
2153 snd_dma_free_pages(&chip->work_ptr); 2154 snd_dma_free_pages(&chip->work_ptr);
2154 2155
2155 if (chip->irq >= 0) 2156 if (chip->irq >= 0)
2156 free_irq(chip->irq, (void *)chip); 2157 free_irq(chip->irq, chip);
2157 release_and_free_resource(chip->res_reg_area); 2158 release_and_free_resource(chip->res_reg_area);
2158 2159
2159 pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl); 2160 pci_write_config_word(chip->pci, 0x40, chip->old_legacy_ctrl);
@@ -2290,7 +2291,7 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
2290 chip->pci = pci; 2291 chip->pci = pci;
2291 chip->irq = -1; 2292 chip->irq = -1;
2292 chip->device_id = pci->device; 2293 chip->device_id = pci->device;
2293 pci_read_config_byte(pci, PCI_REVISION_ID, (u8 *)&chip->rev); 2294 pci_read_config_byte(pci, PCI_REVISION_ID, &chip->rev);
2294 chip->reg_area_phys = pci_resource_start(pci, 0); 2295 chip->reg_area_phys = pci_resource_start(pci, 0);
2295 chip->reg_area_virt = ioremap_nocache(chip->reg_area_phys, 0x8000); 2296 chip->reg_area_virt = ioremap_nocache(chip->reg_area_phys, 0x8000);
2296 pci_set_master(pci); 2297 pci_set_master(pci);
@@ -2300,7 +2301,8 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
2300 snd_ymfpci_free(chip); 2301 snd_ymfpci_free(chip);
2301 return -EBUSY; 2302 return -EBUSY;
2302 } 2303 }
2303 if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_DISABLED|IRQF_SHARED, "YMFPCI", (void *) chip)) { 2304 if (request_irq(pci->irq, snd_ymfpci_interrupt, IRQF_SHARED,
2305 "YMFPCI", chip)) {
2304 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq); 2306 snd_printk(KERN_ERR "unable to grab IRQ %d\n", pci->irq);
2305 snd_ymfpci_free(chip); 2307 snd_ymfpci_free(chip);
2306 return -EBUSY; 2308 return -EBUSY;
@@ -2322,7 +2324,6 @@ int __devinit snd_ymfpci_create(struct snd_card *card,
2322 return -EIO; 2324 return -EIO;
2323 } 2325 }
2324 2326
2325 chip->rear_swap = 1;
2326 if ((err = snd_ymfpci_ac3_init(chip)) < 0) { 2327 if ((err = snd_ymfpci_ac3_init(chip)) < 0) {
2327 snd_ymfpci_free(chip); 2328 snd_ymfpci_free(chip);
2328 return err; 2329 return err;
diff --git a/sound/usb/usbaudio.c b/sound/usb/usbaudio.c
index 67202b9eeb77..3d7f36fb4cf0 100644
--- a/sound/usb/usbaudio.c
+++ b/sound/usb/usbaudio.c
@@ -3577,8 +3577,7 @@ static int __init snd_usb_audio_init(void)
3577 printk(KERN_WARNING "invalid nrpacks value.\n"); 3577 printk(KERN_WARNING "invalid nrpacks value.\n");
3578 return -EINVAL; 3578 return -EINVAL;
3579 } 3579 }
3580 usb_register(&usb_audio_driver); 3580 return usb_register(&usb_audio_driver);
3581 return 0;
3582} 3581}
3583 3582
3584 3583