aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CREDITS12
-rw-r--r--Documentation/00-INDEX6
-rw-r--r--Documentation/HOWTO618
-rw-r--r--Documentation/devices.txt12
-rw-r--r--Documentation/feature-removal-schedule.txt10
-rw-r--r--Documentation/usb/bluetooth.txt44
-rw-r--r--MAINTAINERS16
-rw-r--r--arch/arm/boot/compressed/head.S30
-rw-r--r--arch/arm/common/sa1111.c12
-rw-r--r--arch/arm/configs/s3c2410_defconfig119
-rw-r--r--arch/arm/mach-pxa/corgi_lcd.c2
-rw-r--r--arch/arm/mach-realview/core.h2
-rw-r--r--arch/arm/mach-realview/localtimer.c2
-rw-r--r--arch/arm/mach-realview/platsmp.c3
-rw-r--r--arch/arm/mach-s3c2410/mach-bast.c28
-rw-r--r--arch/arm/plat-omap/dmtimer.c2
-rw-r--r--arch/arm/plat-omap/ocpi.c2
-rw-r--r--arch/arm/plat-omap/pm.c2
-rw-r--r--arch/arm/plat-omap/sram-fn.S2
-rw-r--r--arch/ia64/kernel/ivt.S133
-rw-r--r--arch/mips/Makefile1
-rw-r--r--arch/mips/au1000/common/setup.c2
-rw-r--r--arch/mips/configs/atlas_defconfig67
-rw-r--r--arch/mips/configs/bigsur_defconfig47
-rw-r--r--arch/mips/configs/capcella_defconfig44
-rw-r--r--arch/mips/configs/cobalt_defconfig44
-rw-r--r--arch/mips/configs/db1000_defconfig69
-rw-r--r--arch/mips/configs/db1100_defconfig69
-rw-r--r--arch/mips/configs/db1200_defconfig72
-rw-r--r--arch/mips/configs/db1500_defconfig159
-rw-r--r--arch/mips/configs/db1550_defconfig70
-rw-r--r--arch/mips/configs/ddb5476_defconfig48
-rw-r--r--arch/mips/configs/ddb5477_defconfig44
-rw-r--r--arch/mips/configs/decstation_defconfig55
-rw-r--r--arch/mips/configs/e55_defconfig44
-rw-r--r--arch/mips/configs/ev64120_defconfig44
-rw-r--r--arch/mips/configs/ev96100_defconfig42
-rw-r--r--arch/mips/configs/ip22_defconfig64
-rw-r--r--arch/mips/configs/ip27_defconfig63
-rw-r--r--arch/mips/configs/ip32_defconfig45
-rw-r--r--arch/mips/configs/it8172_defconfig50
-rw-r--r--arch/mips/configs/ivr_defconfig46
-rw-r--r--arch/mips/configs/jaguar-atx_defconfig42
-rw-r--r--arch/mips/configs/jmr3927_defconfig47
-rw-r--r--arch/mips/configs/lasat200_defconfig49
-rw-r--r--arch/mips/configs/malta_defconfig67
-rw-r--r--arch/mips/configs/mipssim_defconfig54
-rw-r--r--arch/mips/configs/mpc30x_defconfig48
-rw-r--r--arch/mips/configs/ocelot_3_defconfig59
-rw-r--r--arch/mips/configs/ocelot_c_defconfig42
-rw-r--r--arch/mips/configs/ocelot_defconfig43
-rw-r--r--arch/mips/configs/ocelot_g_defconfig42
-rw-r--r--arch/mips/configs/pb1100_defconfig68
-rw-r--r--arch/mips/configs/pb1500_defconfig70
-rw-r--r--arch/mips/configs/pb1550_defconfig70
-rw-r--r--arch/mips/configs/pnx8550-jbs_defconfig80
-rw-r--r--arch/mips/configs/pnx8550-v2pci_defconfig89
-rw-r--r--arch/mips/configs/qemu_defconfig43
-rw-r--r--arch/mips/configs/rbhma4500_defconfig65
-rw-r--r--arch/mips/configs/rm200_defconfig71
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig45
-rw-r--r--arch/mips/configs/sead_defconfig37
-rw-r--r--arch/mips/configs/tb0226_defconfig52
-rw-r--r--arch/mips/configs/tb0229_defconfig48
-rw-r--r--arch/mips/configs/workpad_defconfig46
-rw-r--r--arch/mips/configs/yosemite_defconfig44
-rw-r--r--arch/mips/ddb5xxx/ddb5477/lcd44780.c10
-rw-r--r--arch/mips/defconfig64
-rw-r--r--arch/mips/jmr3927/common/rtc_ds1742.c2
-rw-r--r--arch/mips/jmr3927/rbhma3100/setup.c2
-rw-r--r--arch/mips/mips-boards/sead/sead_int.c12
-rw-r--r--arch/mips/mips-boards/sead/sead_setup.c4
-rw-r--r--arch/mips/momentum/ocelot_g/gt-irq.c2
-rw-r--r--arch/mips/pci/Makefile2
-rw-r--r--arch/mips/pci/ops-tx3927.c114
-rw-r--r--arch/mips/pci/pci-jmr3927.c2
-rw-r--r--arch/mips/sgi-ip32/crime.c7
-rw-r--r--arch/parisc/kernel/drivers.c8
-rw-r--r--arch/parisc/kernel/entry.S1
-rw-r--r--arch/parisc/kernel/inventory.c2
-rw-r--r--arch/parisc/kernel/ioctl32.c546
-rw-r--r--arch/parisc/kernel/irq.c110
-rw-r--r--arch/parisc/kernel/perf.c33
-rw-r--r--arch/parisc/kernel/ptrace.c5
-rw-r--r--arch/parisc/kernel/signal.c1
-rw-r--r--arch/parisc/kernel/smp.c24
-rw-r--r--arch/parisc/kernel/syscall.S3
-rw-r--r--arch/powerpc/sysdev/mpic.c13
-rw-r--r--block/as-iosched.c2
-rw-r--r--block/cfq-iosched.c2
-rw-r--r--block/deadline-iosched.c2
-rw-r--r--block/elevator.c2
-rw-r--r--block/ll_rw_blk.c2
-rw-r--r--drivers/acpi/processor_idle.c14
-rw-r--r--drivers/block/cciss.c40
-rw-r--r--drivers/char/ipmi/ipmi_si_intf.c2
-rw-r--r--drivers/char/tpm/Kconfig2
-rw-r--r--drivers/char/tpm/tpm.c2
-rw-r--r--drivers/char/tpm/tpm_atmel.c47
-rw-r--r--drivers/char/tpm/tpm_atmel.h22
-rw-r--r--drivers/i2c/busses/i2c-ixp4xx.c7
-rw-r--r--drivers/ide/Kconfig6
-rw-r--r--drivers/ide/Makefile2
-rw-r--r--drivers/ide/ide-cd.c2
-rw-r--r--drivers/ide/ide-disk.c2
-rw-r--r--drivers/ide/ide-floppy.c2
-rw-r--r--drivers/ide/ide-lib.c8
-rw-r--r--drivers/ide/ide-tape.c2
-rw-r--r--drivers/ide/mips/Makefile1
-rw-r--r--drivers/ide/mips/swarm.c201
-rw-r--r--drivers/ide/pci/aec62xx.c47
-rw-r--r--drivers/ide/pci/alim15x3.c9
-rw-r--r--drivers/ide/pci/cs5520.c5
-rw-r--r--drivers/ide/pci/siimage.c8
-rw-r--r--drivers/ide/pci/via82cxxx.c377
-rw-r--r--drivers/ide/ppc/pmac.c14
-rw-r--r--drivers/ide/setup-pci.c2
-rw-r--r--drivers/infiniband/core/user_mad.c2
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c37
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c17
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.h1
-rw-r--r--drivers/isdn/hisax/Kconfig12
-rw-r--r--drivers/isdn/pcbit/Kconfig2
-rw-r--r--drivers/md/bitmap.c4
-rw-r--r--drivers/md/md.c17
-rw-r--r--drivers/net/au1000_eth.c1
-rw-r--r--drivers/net/e100.c275
-rw-r--r--drivers/net/fec_8xx/Kconfig2
-rw-r--r--drivers/net/ioc3-eth.c2
-rw-r--r--drivers/net/r8169.c6
-rw-r--r--drivers/net/saa9730.h36
-rw-r--r--drivers/net/smc91x.c17
-rw-r--r--drivers/net/wan/hdlc_cisco.c6
-rw-r--r--drivers/net/wan/hdlc_fr.c4
-rw-r--r--drivers/net/wan/hdlc_generic.c6
-rw-r--r--drivers/net/wireless/hermes.c6
-rw-r--r--drivers/net/wireless/hermes.h6
-rw-r--r--drivers/net/wireless/i82593.h11
-rw-r--r--drivers/net/wireless/ipw2100.c29
-rw-r--r--drivers/net/wireless/ipw2100.h2
-rw-r--r--drivers/net/wireless/ipw2200.c7
-rw-r--r--drivers/net/wireless/prism54/isl_38xx.c4
-rw-r--r--drivers/parisc/iosapic.c26
-rw-r--r--drivers/parisc/superio.c35
-rw-r--r--drivers/s390/char/raw3270.c4
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/ahci.c30
-rw-r--r--drivers/scsi/ata_piix.c2
-rw-r--r--drivers/scsi/ide-scsi.c2
-rw-r--r--drivers/scsi/libata-core.c38
-rw-r--r--drivers/scsi/libata.h2
-rw-r--r--drivers/scsi/sata_mv.c994
-rw-r--r--drivers/scsi/sata_promise.c2
-rw-r--r--drivers/scsi/sata_qstor.c2
-rw-r--r--drivers/scsi/sata_sil24.c218
-rw-r--r--drivers/scsi/sata_svw.c2
-rw-r--r--drivers/scsi/sata_sx4.c2
-rw-r--r--drivers/scsi/sata_vsc.c2
-rw-r--r--drivers/serial/Kconfig2
-rw-r--r--drivers/serial/mux.c19
-rw-r--r--drivers/tc/zs.c150
-rw-r--r--drivers/tc/zs.h13
-rw-r--r--drivers/usb/atm/Makefile4
-rw-r--r--drivers/usb/atm/usbatm.h5
-rw-r--r--drivers/usb/core/Makefile4
-rw-r--r--drivers/usb/core/buffer.c8
-rw-r--r--drivers/usb/core/config.c5
-rw-r--r--drivers/usb/core/devio.c6
-rw-r--r--drivers/usb/core/file.c6
-rw-r--r--drivers/usb/core/hcd-pci.c7
-rw-r--r--drivers/usb/core/hcd.c5
-rw-r--r--drivers/usb/core/hub.c5
-rw-r--r--drivers/usb/core/inode.c7
-rw-r--r--drivers/usb/core/message.c10
-rw-r--r--drivers/usb/core/notify.c6
-rw-r--r--drivers/usb/core/sysfs.c7
-rw-r--r--drivers/usb/core/urb.c6
-rw-r--r--drivers/usb/core/usb.c7
-rw-r--r--drivers/usb/gadget/dummy_hcd.c4
-rw-r--r--drivers/usb/host/ohci-lh7a404.c2
-rw-r--r--drivers/usb/host/ohci-ppc-soc.c2
-rw-r--r--drivers/usb/image/microtek.c35
-rw-r--r--drivers/usb/image/microtek.h2
-rw-r--r--drivers/usb/input/Makefile4
-rw-r--r--drivers/usb/input/hid-core.c12
-rw-r--r--drivers/usb/input/itmtouch.c7
-rw-r--r--drivers/usb/input/keyspan_remote.c5
-rw-r--r--drivers/usb/input/mtouchusb.c7
-rw-r--r--drivers/usb/input/pid.c2
-rw-r--r--drivers/usb/input/touchkitusb.c4
-rw-r--r--drivers/usb/input/wacom.c133
-rw-r--r--drivers/usb/misc/Makefile6
-rw-r--r--drivers/usb/misc/auerswald.c1
-rw-r--r--drivers/usb/misc/phidgetservo.c3
-rw-r--r--drivers/usb/misc/rio500.c2
-rw-r--r--drivers/usb/misc/usbled.c3
-rw-r--r--drivers/usb/misc/usbtest.c3
-rw-r--r--drivers/usb/misc/uss720.c2
-rw-r--r--drivers/usb/net/Makefile4
-rw-r--r--drivers/usb/net/asix.c3
-rw-r--r--drivers/usb/net/cdc_ether.c3
-rw-r--r--drivers/usb/net/cdc_subset.c3
-rw-r--r--drivers/usb/net/gl620a.c3
-rw-r--r--drivers/usb/net/kaweth.c13
-rw-r--r--drivers/usb/net/net1080.c3
-rw-r--r--drivers/usb/net/pegasus.c2
-rw-r--r--drivers/usb/net/plusb.c3
-rw-r--r--drivers/usb/net/rndis_host.c3
-rw-r--r--drivers/usb/net/usbnet.c3
-rw-r--r--drivers/usb/net/zaurus.c3
-rw-r--r--drivers/usb/serial/ChangeLog.history (renamed from drivers/usb/serial/ChangeLog.old)2
-rw-r--r--drivers/usb/serial/Kconfig18
-rw-r--r--drivers/usb/serial/Makefile2
-rw-r--r--drivers/usb/serial/anydata.c123
-rw-r--r--drivers/usb/serial/cp2101.c1
-rw-r--r--drivers/usb/serial/generic.c1
-rw-r--r--drivers/usb/serial/nokia_dku2.c142
-rw-r--r--drivers/usb/serial/pl2303.c6
-rw-r--r--drivers/usb/serial/pl2303.h2
-rw-r--r--drivers/usb/storage/Kconfig2
-rw-r--r--drivers/usb/storage/shuttle_usbat.c2
-rw-r--r--drivers/usb/storage/unusual_devs.h10
-rw-r--r--fs/compat_ioctl.c36
-rw-r--r--include/asm-arm/arch-clps711x/uncompress.h2
-rw-r--r--include/asm-arm/arch-epxa10db/uncompress.h2
-rw-r--r--include/asm-arm/arch-h720x/uncompress.h2
-rw-r--r--include/asm-arm/arch-imx/irqs.h2
-rw-r--r--include/asm-arm/arch-imx/timex.h2
-rw-r--r--include/asm-arm/arch-integrator/smp.h2
-rw-r--r--include/asm-arm/arch-l7200/aux_reg.h2
-rw-r--r--include/asm-arm/arch-l7200/gp_timers.h2
-rw-r--r--include/asm-arm/arch-omap/gpio.h2
-rw-r--r--include/asm-arm/arch-omap/irqs.h2
-rw-r--r--include/asm-arm/arch-omap/mcbsp.h2
-rw-r--r--include/asm-arm/arch-omap/system.h2
-rw-r--r--include/asm-arm/arch-realview/hardware.h1
-rw-r--r--include/asm-arm/arch-realview/system.h2
-rw-r--r--include/asm-arm/arch-rpc/system.h2
-rw-r--r--include/asm-arm/arch-sa1100/memory.h14
-rw-r--r--include/asm-arm/atomic.h4
-rw-r--r--include/asm-arm/bitops.h1
-rw-r--r--include/asm-arm/hardware/dec21285.h2
-rw-r--r--include/asm-arm/mmu_context.h1
-rw-r--r--include/asm-arm/system.h4
-rw-r--r--include/asm-arm/thread_info.h1
-rw-r--r--include/asm-i386/signal.h31
-rw-r--r--include/asm-mips/atomic.h14
-rw-r--r--include/asm-mips/io.h6
-rw-r--r--include/asm-mips/ip32/crime.h2
-rw-r--r--include/asm-mips/ip32/mace.h44
-rw-r--r--include/asm-mips/mach-db1x00/db1200.h3
-rw-r--r--include/asm-mips/mach-db1x00/db1x00.h6
-rw-r--r--include/asm-mips/mach-ip32/mc146818rtc.h7
-rw-r--r--include/asm-mips/mach-jmr3927/ds1742.h (renamed from include/asm-mips/mach-jmr3927/asm/ds1742.h)6
-rw-r--r--include/asm-mips/mach-pb1x00/pb1200.h3
-rw-r--r--include/asm-mips/mach-pb1x00/pb1550.h7
-rw-r--r--include/asm-mips/mips-boards/seadint.h11
-rw-r--r--include/asm-mips/signal.h21
-rw-r--r--include/asm-parisc/irq.h5
-rw-r--r--include/asm-parisc/smp.h7
-rw-r--r--include/asm-parisc/spinlock.h19
-rw-r--r--include/asm-parisc/tlbflush.h16
-rw-r--r--include/asm-powerpc/page_64.h4
-rw-r--r--include/asm-ppc/cpm2.h2
-rw-r--r--include/linux/cciss_ioctl.h2
-rw-r--r--include/linux/ds17287rtc.h67
-rw-r--r--include/linux/ds1742rtc.h53
-rw-r--r--include/linux/ide.h4
-rw-r--r--include/linux/mm.h2
-rw-r--r--include/linux/pci_ids.h1
-rw-r--r--include/net/ieee80211.h2
-rw-r--r--kernel/rcutorture.c30
-rw-r--r--mm/mmap.c2
-rw-r--r--mm/page-writeback.c1
-rw-r--r--mm/page_alloc.c7
-rw-r--r--net/ipv4/ip_fragment.c40
-rw-r--r--net/ipv4/netfilter/ip_conntrack_ftp.c4
-rw-r--r--net/ipv4/netfilter/ip_conntrack_irc.c4
-rw-r--r--net/ipv4/netfilter/ip_conntrack_tftp.c4
-rw-r--r--net/ipv4/tcp_highspeed.c2
-rw-r--r--net/ipv6/reassembly.c41
-rw-r--r--net/ipv6/route.c2
-rw-r--r--net/llc/llc_c_ac.c8
-rw-r--r--net/netfilter/nf_conntrack_core.c2
-rw-r--r--net/sched/Kconfig37
285 files changed, 5768 insertions, 2974 deletions
diff --git a/CREDITS b/CREDITS
index 192f749eba25..1b4f8694fa48 100644
--- a/CREDITS
+++ b/CREDITS
@@ -611,8 +611,7 @@ S: USA
611N: Randolph Chung 611N: Randolph Chung
612E: tausq@debian.org 612E: tausq@debian.org
613D: Linux/PA-RISC hacker 613D: Linux/PA-RISC hacker
614S: Los Altos, CA 94022 614S: Hong Kong
615S: USA
616 615
617N: Juan Jose Ciarlante 616N: Juan Jose Ciarlante
618W: http://juanjox.kernelnotes.org/ 617W: http://juanjox.kernelnotes.org/
@@ -3405,6 +3404,15 @@ S: Chudenicka 8
3405S: 10200 Prague 10, Hostivar 3404S: 10200 Prague 10, Hostivar
3406S: Czech Republic 3405S: Czech Republic
3407 3406
3407N: Thibaut Varene
3408E: T-Bone@parisc-linux.org
3409W: http://www.parisc-linux.org/
3410P: 1024D/B7D2F063 E67C 0D43 A75E 12A5 BB1C FA2F 1E32 C3DA B7D2 F063
3411D: PA-RISC port minion, PDC and GSCPS2 drivers, debuglocks and other bits
3412D: Some bits in an ARM port, S1D13XXX FB driver, random patches here and there
3413D: AD1889 sound driver
3414S: Paris, France
3415
3408N: Heikki Vatiainen 3416N: Heikki Vatiainen
3409E: hessu@cs.tut.fi 3417E: hessu@cs.tut.fi
3410D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks 3418D: Co-author of Multi-Protocol Over ATM (MPOA), some LANE hacks
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 433cf5e9ae04..5f7f7d7f77d2 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -24,6 +24,8 @@ DMA-mapping.txt
24 - info for PCI drivers using DMA portably across all platforms. 24 - info for PCI drivers using DMA portably across all platforms.
25DocBook/ 25DocBook/
26 - directory with DocBook templates etc. for kernel documentation. 26 - directory with DocBook templates etc. for kernel documentation.
27HOWTO
28 - The process and procedures of how to do Linux kernel development.
27IO-mapping.txt 29IO-mapping.txt
28 - how to access I/O mapped memory from within device drivers. 30 - how to access I/O mapped memory from within device drivers.
29IPMI.txt 31IPMI.txt
@@ -256,6 +258,10 @@ specialix.txt
256 - info on hardware/driver for specialix IO8+ multiport serial card. 258 - info on hardware/driver for specialix IO8+ multiport serial card.
257spinlocks.txt 259spinlocks.txt
258 - info on using spinlocks to provide exclusive access in kernel. 260 - info on using spinlocks to provide exclusive access in kernel.
261stable_api_nonsense.txt
262 - info on why the kernel does not have a stable in-kernel api or abi.
263stable_kernel_rules.txt
264 - rules and procedures for the -stable kernel releases.
259stallion.txt 265stallion.txt
260 - info on using the Stallion multiport serial driver. 266 - info on using the Stallion multiport serial driver.
261svga.txt 267svga.txt
diff --git a/Documentation/HOWTO b/Documentation/HOWTO
new file mode 100644
index 000000000000..6c9e746267da
--- /dev/null
+++ b/Documentation/HOWTO
@@ -0,0 +1,618 @@
1HOWTO do Linux kernel development
2---------------------------------
3
4This is the be-all, end-all document on this topic. It contains
5instructions on how to become a Linux kernel developer and how to learn
6to work with the Linux kernel development community. It tries to not
7contain anything related to the technical aspects of kernel programming,
8but will help point you in the right direction for that.
9
10If anything in this document becomes out of date, please send in patches
11to the maintainer of this file, who is listed at the bottom of the
12document.
13
14
15Introduction
16------------
17
18So, you want to learn how to become a Linux kernel developer? Or you
19have been told by your manager, "Go write a Linux driver for this
20device." This document's goal is to teach you everything you need to
21know to achieve this by describing the process you need to go through,
22and hints on how to work with the community. It will also try to
23explain some of the reasons why the community works like it does.
24
25The kernel is written mostly in C, with some architecture-dependent
26parts written in assembly. A good understanding of C is required for
27kernel development. Assembly (any architecture) is not required unless
28you plan to do low-level development for that architecture. Though they
29are not a good substitute for a solid C education and/or years of
30experience, the following books are good for, if anything, reference:
31 - "The C Programming Language" by Kernighan and Ritchie [Prentice Hall]
32 - "Practical C Programming" by Steve Oualline [O'Reilly]
33
34The kernel is written using GNU C and the GNU toolchain. While it
35adheres to the ISO C89 standard, it uses a number of extensions that are
36not featured in the standard. The kernel is a freestanding C
37environment, with no reliance on the standard C library, so some
38portions of the C standard are not supported. Arbitrary long long
39divisions and floating point are not allowed. It can sometimes be
40difficult to understand the assumptions the kernel has on the toolchain
41and the extensions that it uses, and unfortunately there is no
42definitive reference for them. Please check the gcc info pages (`info
43gcc`) for some information on them.
44
45Please remember that you are trying to learn how to work with the
46existing development community. It is a diverse group of people, with
47high standards for coding, style and procedure. These standards have
48been created over time based on what they have found to work best for
49such a large and geographically dispersed team. Try to learn as much as
50possible about these standards ahead of time, as they are well
51documented; do not expect people to adapt to you or your company's way
52of doing things.
53
54
55Legal Issues
56------------
57
58The Linux kernel source code is released under the GPL. Please see the
59file, COPYING, in the main directory of the source tree, for details on
60the license. If you have further questions about the license, please
61contact a lawyer, and do not ask on the Linux kernel mailing list. The
62people on the mailing lists are not lawyers, and you should not rely on
63their statements on legal matters.
64
65For common questions and answers about the GPL, please see:
66 http://www.gnu.org/licenses/gpl-faq.html
67
68
69Documentation
70------------
71
72The Linux kernel source tree has a large range of documents that are
73invaluable for learning how to interact with the kernel community. When
74new features are added to the kernel, it is recommended that new
75documentation files are also added which explain how to use the feature.
76When a kernel change causes the interface that the kernel exposes to
77userspace to change, it is recommended that you send the information or
78a patch to the manual pages explaining the change to the manual pages
79maintainer at mtk-manpages@gmx.net.
80
81Here is a list of files that are in the kernel source tree that are
82required reading:
83 README
84 This file gives a short background on the Linux kernel and describes
85 what is necessary to do to configure and build the kernel. People
86 who are new to the kernel should start here.
87
88 Documentation/Changes
89 This file gives a list of the minimum levels of various software
90 packages that are necessary to build and run the kernel
91 successfully.
92
93 Documentation/CodingStyle
94 This describes the Linux kernel coding style, and some of the
95 rationale behind it. All new code is expected to follow the
96 guidelines in this document. Most maintainers will only accept
97 patches if these rules are followed, and many people will only
98 review code if it is in the proper style.
99
100 Documentation/SubmittingPatches
101 Documentation/SubmittingDrivers
102 These files describe in explicit detail how to successfully create
103 and send a patch, including (but not limited to):
104 - Email contents
105 - Email format
106 - Who to send it to
107 Following these rules will not guarantee success (as all patches are
108 subject to scrutiny for content and style), but not following them
109 will almost always prevent it.
110
111 Other excellent descriptions of how to create patches properly are:
112 "The Perfect Patch"
113 http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
114 "Linux kernel patch submission format"
115 http://linux.yyz.us/patch-format.html
116
117 Documentation/stable_api_nonsense.txt
118 This file describes the rationale behind the conscious decision to
119 not have a stable API within the kernel, including things like:
120 - Subsystem shim-layers (for compatibility?)
121 - Driver portability between Operating Systems.
122 - Mitigating rapid change within the kernel source tree (or
123 preventing rapid change)
124 This document is crucial for understanding the Linux development
125 philosophy and is very important for people moving to Linux from
126 development on other Operating Systems.
127
128 Documentation/SecurityBugs
129 If you feel you have found a security problem in the Linux kernel,
130 please follow the steps in this document to help notify the kernel
131 developers, and help solve the issue.
132
133 Documentation/ManagementStyle
134 This document describes how Linux kernel maintainers operate and the
135 shared ethos behind their methodologies. This is important reading
136 for anyone new to kernel development (or anyone simply curious about
137 it), as it resolves a lot of common misconceptions and confusion
138 about the unique behavior of kernel maintainers.
139
140 Documentation/stable_kernel_rules.txt
141 This file describes the rules on how the stable kernel releases
142 happen, and what to do if you want to get a change into one of these
143 releases.
144
145 Documentation/kernel-docs.txt
146 A list of external documentation that pertains to kernel
147 development. Please consult this list if you do not find what you
148 are looking for within the in-kernel documentation.
149
150 Documentation/applying-patches.txt
151 A good introduction describing exactly what a patch is and how to
152 apply it to the different development branches of the kernel.
153
154The kernel also has a large number of documents that can be
155automatically generated from the source code itself. This includes a
156full description of the in-kernel API, and rules on how to handle
157locking properly. The documents will be created in the
158Documentation/DocBook/ directory and can be generated as PDF,
159Postscript, HTML, and man pages by running:
160 make pdfdocs
161 make psdocs
162 make htmldocs
163 make mandocs
164respectively from the main kernel source directory.
165
166
167Becoming A Kernel Developer
168---------------------------
169
170If you do not know anything about Linux kernel development, you should
171look at the Linux KernelNewbies project:
172 http://kernelnewbies.org
173It consists of a helpful mailing list where you can ask almost any type
174of basic kernel development question (make sure to search the archives
175first, before asking something that has already been answered in the
176past.) It also has an IRC channel that you can use to ask questions in
177real-time, and a lot of helpful documentation that is useful for
178learning about Linux kernel development.
179
180The website has basic information about code organization, subsystems,
181and current projects (both in-tree and out-of-tree). It also describes
182some basic logistical information, like how to compile a kernel and
183apply a patch.
184
185If you do not know where you want to start, but you want to look for
186some task to start doing to join into the kernel development community,
187go to the Linux Kernel Janitor's project:
188 http://janitor.kernelnewbies.org/
189It is a great place to start. It describes a list of relatively simple
190problems that need to be cleaned up and fixed within the Linux kernel
191source tree. Working with the developers in charge of this project, you
192will learn the basics of getting your patch into the Linux kernel tree,
193and possibly be pointed in the direction of what to go work on next, if
194you do not already have an idea.
195
196If you already have a chunk of code that you want to put into the kernel
197tree, but need some help getting it in the proper form, the
198kernel-mentors project was created to help you out with this. It is a
199mailing list, and can be found at:
200 http://selenic.com/mailman/listinfo/kernel-mentors
201
202Before making any actual modifications to the Linux kernel code, it is
203imperative to understand how the code in question works. For this
204purpose, nothing is better than reading through it directly (most tricky
205bits are commented well), perhaps even with the help of specialized
206tools. One such tool that is particularly recommended is the Linux
207Cross-Reference project, which is able to present source code in a
208self-referential, indexed webpage format. An excellent up-to-date
209repository of the kernel code may be found at:
210 http://sosdg.org/~coywolf/lxr/
211
212
213The development process
214-----------------------
215
216Linux kernel development process currently consists of a few different
217main kernel "branches" and lots of different subsystem-specific kernel
218branches. These different branches are:
219 - main 2.6.x kernel tree
220 - 2.6.x.y -stable kernel tree
221 - 2.6.x -git kernel patches
222 - 2.6.x -mm kernel patches
223 - subsystem specific kernel trees and patches
224
2252.6.x kernel tree
226-----------------
2272.6.x kernels are maintained by Linus Torvalds, and can be found on
228kernel.org in the pub/linux/kernel/v2.6/ directory. Its development
229process is as follows:
230 - As soon as a new kernel is released a two weeks window is open,
231 during this period of time maintainers can submit big diffs to
232 Linus, usually the patches that have already been included in the
233 -mm kernel for a few weeks. The preferred way to submit big changes
234 is using git (the kernel's source management tool, more information
235 can be found at http://git.or.cz/) but plain patches are also just
236 fine.
237 - After two weeks a -rc1 kernel is released it is now possible to push
238 only patches that do not include new features that could affect the
239 stability of the whole kernel. Please note that a whole new driver
240 (or filesystem) might be accepted after -rc1 because there is no
241 risk of causing regressions with such a change as long as the change
242 is self-contained and does not affect areas outside of the code that
243 is being added. git can be used to send patches to Linus after -rc1
244 is released, but the patches need to also be sent to a public
245 mailing list for review.
246 - A new -rc is released whenever Linus deems the current git tree to
247 be in a reasonably sane state adequate for testing. The goal is to
248 release a new -rc kernel every week.
249 - Process continues until the kernel is considered "ready", the
250 process should last around 6 weeks.
251
252It is worth mentioning what Andrew Morton wrote on the linux-kernel
253mailing list about kernel releases:
254 "Nobody knows when a kernel will be released, because it's
255 released according to perceived bug status, not according to a
256 preconceived timeline."
257
2582.6.x.y -stable kernel tree
259---------------------------
260Kernels with 4 digit versions are -stable kernels. They contain
261relatively small and critical fixes for security problems or significant
262regressions discovered in a given 2.6.x kernel.
263
264This is the recommended branch for users who want the most recent stable
265kernel and are not interested in helping test development/experimental
266versions.
267
268If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
269kernel is the current stable kernel.
270
2712.6.x.y are maintained by the "stable" team <stable@kernel.org>, and are
272released almost every other week.
273
274The file Documentation/stable_kernel_rules.txt in the kernel tree
275documents what kinds of changes are acceptable for the -stable tree, and
276how the release process works.
277
2782.6.x -git patches
279------------------
280These are daily snapshots of Linus' kernel tree which are managed in a
281git repository (hence the name.) These patches are usually released
282daily and represent the current state of Linus' tree. They are more
283experimental than -rc kernels since they are generated automatically
284without even a cursory glance to see if they are sane.
285
2862.6.x -mm kernel patches
287------------------------
288These are experimental kernel patches released by Andrew Morton. Andrew
289takes all of the different subsystem kernel trees and patches and mushes
290them together, along with a lot of patches that have been plucked from
291the linux-kernel mailing list. This tree serves as a proving ground for
292new features and patches. Once a patch has proved its worth in -mm for
293a while Andrew or the subsystem maintainer pushes it on to Linus for
294inclusion in mainline.
295
296It is heavily encouraged that all new patches get tested in the -mm tree
297before they are sent to Linus for inclusion in the main kernel tree.
298
299These kernels are not appropriate for use on systems that are supposed
300to be stable and they are more risky to run than any of the other
301branches.
302
303If you wish to help out with the kernel development process, please test
304and use these kernel releases and provide feedback to the linux-kernel
305mailing list if you have any problems, and if everything works properly.
306
307In addition to all the other experimental patches, these kernels usually
308also contain any changes in the mainline -git kernels available at the
309time of release.
310
311The -mm kernels are not released on a fixed schedule, but usually a few
312-mm kernels are released in between each -rc kernel (1 to 3 is common).
313
314Subsystem Specific kernel trees and patches
315-------------------------------------------
316A number of the different kernel subsystem developers expose their
317development trees so that others can see what is happening in the
318different areas of the kernel. These trees are pulled into the -mm
319kernel releases as described above.
320
321Here is a list of some of the different kernel trees available:
322 git trees:
323 - Kbuild development tree, Sam Ravnborg <sam@ravnborg.org>
324 kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git
325
326 - ACPI development tree, Len Brown <len.brown@intel.com>
327 kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
328
329 - Block development tree, Jens Axboe <axboe@suse.de>
330 kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
331
332 - DRM development tree, Dave Airlie <airlied@linux.ie>
333 kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git
334
335 - ia64 development tree, Tony Luck <tony.luck@intel.com>
336 kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
337
338 - ieee1394 development tree, Jody McIntyre <scjody@modernduck.com>
339 kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394.git
340
341 - infiniband, Roland Dreier <rolandd@cisco.com>
342 kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git
343
344 - libata, Jeff Garzik <jgarzik@pobox.com>
345 kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
346
347 - network drivers, Jeff Garzik <jgarzik@pobox.com>
348 kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git
349
350 - pcmcia, Dominik Brodowski <linux@dominikbrodowski.net>
351 kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git
352
353 - SCSI, James Bottomley <James.Bottomley@SteelEye.com>
354 kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
355
356 Other git kernel trees can be found listed at http://kernel.org/git
357
358 quilt trees:
359 - USB, PCI, Driver Core, and I2C, Greg Kroah-Hartman <gregkh@suse.de>
360 kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
361
362
363Bug Reporting
364-------------
365
366bugzilla.kernel.org is where the Linux kernel developers track kernel
367bugs. Users are encouraged to report all bugs that they find in this
368tool. For details on how to use the kernel bugzilla, please see:
369 http://test.kernel.org/bugzilla/faq.html
370
371The file REPORTING-BUGS in the main kernel source directory has a good
372template for how to report a possible kernel bug, and details what kind
373of information is needed by the kernel developers to help track down the
374problem.
375
376
377Mailing lists
378-------------
379
380As some of the above documents describe, the majority of the core kernel
381developers participate on the Linux Kernel Mailing list. Details on how
382to subscribe and unsubscribe from the list can be found at:
383 http://vger.kernel.org/vger-lists.html#linux-kernel
384There are archives of the mailing list on the web in many different
385places. Use a search engine to find these archives. For example:
386 http://dir.gmane.org/gmane.linux.kernel
387It is highly recommended that you search the archives about the topic
388you want to bring up, before you post it to the list. A lot of things
389already discussed in detail are only recorded at the mailing list
390archives.
391
392Most of the individual kernel subsystems also have their own separate
393mailing list where they do their development efforts. See the
394MAINTAINERS file for a list of what these lists are for the different
395groups.
396
397Many of the lists are hosted on kernel.org. Information on them can be
398found at:
399 http://vger.kernel.org/vger-lists.html
400
401Please remember to follow good behavioral habits when using the lists.
402Though a bit cheesy, the following URL has some simple guidelines for
403interacting with the list (or any list):
404 http://www.albion.com/netiquette/
405
406If multiple people respond to your mail, the CC: list of recipients may
407get pretty large. Don't remove anybody from the CC: list without a good
408reason, or don't reply only to the list address. Get used to receiving the
409mail twice, one from the sender and the one from the list, and don't try
410to tune that by adding fancy mail-headers, people will not like it.
411
412Remember to keep the context and the attribution of your replies intact,
413keep the "John Kernelhacker wrote ...:" lines at the top of your reply, and
414add your statements between the individual quoted sections instead of
415writing at the top of the mail.
416
417If you add patches to your mail, make sure they are plain readable text
418as stated in Documentation/SubmittingPatches. Kernel developers don't
419want to deal with attachments or compressed patches; they may want
420to comment on individual lines of your patch, which works only that way.
421Make sure you use a mail program that does not mangle spaces and tab
422characters. A good first test is to send the mail to yourself and try
423to apply your own patch by yourself. If that doesn't work, get your
424mail program fixed or change it until it works.
425
426Above all, please remember to show respect to other subscribers.
427
428
429Working with the community
430--------------------------
431
432The goal of the kernel community is to provide the best possible kernel
433there is. When you submit a patch for acceptance, it will be reviewed
434on its technical merits and those alone. So, what should you be
435expecting?
436 - criticism
437 - comments
438 - requests for change
439 - requests for justification
440 - silence
441
442Remember, this is part of getting your patch into the kernel. You have
443to be able to take criticism and comments about your patches, evaluate
444them at a technical level and either rework your patches or provide
445clear and concise reasoning as to why those changes should not be made.
446If there are no responses to your posting, wait a few days and try
447again, sometimes things get lost in the huge volume.
448
449What should you not do?
450 - expect your patch to be accepted without question
451 - become defensive
452 - ignore comments
453 - resubmit the patch without making any of the requested changes
454
455In a community that is looking for the best technical solution possible,
456there will always be differing opinions on how beneficial a patch is.
457You have to be cooperative, and willing to adapt your idea to fit within
458the kernel. Or at least be willing to prove your idea is worth it.
459Remember, being wrong is acceptable as long as you are willing to work
460toward a solution that is right.
461
462It is normal that the answers to your first patch might simply be a list
463of a dozen things you should correct. This does _not_ imply that your
464patch will not be accepted, and it is _not_ meant against you
465personally. Simply correct all issues raised against your patch and
466resend it.
467
468
469Differences between the kernel community and corporate structures
470-----------------------------------------------------------------
471
472The kernel community works differently than most traditional corporate
473development environments. Here are a list of things that you can try to
474do to try to avoid problems:
475 Good things to say regarding your proposed changes:
476 - "This solves multiple problems."
477 - "This deletes 2000 lines of code."
478 - "Here is a patch that explains what I am trying to describe."
479 - "I tested it on 5 different architectures..."
480 - "Here is a series of small patches that..."
481 - "This increases performance on typical machines..."
482
483 Bad things you should avoid saying:
484 - "We did it this way in AIX/ptx/Solaris, so therefore it must be
485 good..."
486 - "I've being doing this for 20 years, so..."
487 - "This is required for my company to make money"
488 - "This is for our Enterprise product line."
489 - "Here is my 1000 page design document that describes my idea"
490 - "I've been working on this for 6 months..."
491 - "Here's a 5000 line patch that..."
492 - "I rewrote all of the current mess, and here it is..."
493 - "I have a deadline, and this patch needs to be applied now."
494
495Another way the kernel community is different than most traditional
496software engineering work environments is the faceless nature of
497interaction. One benefit of using email and irc as the primary forms of
498communication is the lack of discrimination based on gender or race.
499The Linux kernel work environment is accepting of women and minorities
500because all you are is an email address. The international aspect also
501helps to level the playing field because you can't guess gender based on
502a person's name. A man may be named Andrea and a woman may be named Pat.
503Most women who have worked in the Linux kernel and have expressed an
504opinion have had positive experiences.
505
506The language barrier can cause problems for some people who are not
507comfortable with English. A good grasp of the language can be needed in
508order to get ideas across properly on mailing lists, so it is
509recommended that you check your emails to make sure they make sense in
510English before sending them.
511
512
513Break up your changes
514---------------------
515
516The Linux kernel community does not gladly accept large chunks of code
517dropped on it all at once. The changes need to be properly introduced,
518discussed, and broken up into tiny, individual portions. This is almost
519the exact opposite of what companies are used to doing. Your proposal
520should also be introduced very early in the development process, so that
521you can receive feedback on what you are doing. It also lets the
522community feel that you are working with them, and not simply using them
523as a dumping ground for your feature. However, don't send 50 emails at
524one time to a mailing list, your patch series should be smaller than
525that almost all of the time.
526
527The reasons for breaking things up are the following:
528
5291) Small patches increase the likelihood that your patches will be
530 applied, since they don't take much time or effort to verify for
531 correctness. A 5 line patch can be applied by a maintainer with
532 barely a second glance. However, a 500 line patch may take hours to
533 review for correctness (the time it takes is exponentially
534 proportional to the size of the patch, or something).
535
536 Small patches also make it very easy to debug when something goes
537 wrong. It's much easier to back out patches one by one than it is
538 to dissect a very large patch after it's been applied (and broken
539 something).
540
5412) It's important not only to send small patches, but also to rewrite
542 and simplify (or simply re-order) patches before submitting them.
543
544Here is an analogy from kernel developer Al Viro:
545 "Think of a teacher grading homework from a math student. The
546 teacher does not want to see the student's trials and errors
547 before they came up with the solution. They want to see the
548 cleanest, most elegant answer. A good student knows this, and
549 would never submit her intermediate work before the final
550 solution."
551
552 The same is true of kernel development. The maintainers and
553 reviewers do not want to see the thought process behind the
554 solution to the problem one is solving. They want to see a
555 simple and elegant solution."
556
557It may be challenging to keep the balance between presenting an elegant
558solution and working together with the community and discussing your
559unfinished work. Therefore it is good to get early in the process to
560get feedback to improve your work, but also keep your changes in small
561chunks that they may get already accepted, even when your whole task is
562not ready for inclusion now.
563
564Also realize that it is not acceptable to send patches for inclusion
565that are unfinished and will be "fixed up later."
566
567
568Justify your change
569-------------------
570
571Along with breaking up your patches, it is very important for you to let
572the Linux community know why they should add this change. New features
573must be justified as being needed and useful.
574
575
576Document your change
577--------------------
578
579When sending in your patches, pay special attention to what you say in
580the text in your email. This information will become the ChangeLog
581information for the patch, and will be preserved for everyone to see for
582all time. It should describe the patch completely, containing:
583 - why the change is necessary
584 - the overall design approach in the patch
585 - implementation details
586 - testing results
587
588For more details on what this should all look like, please see the
589ChangeLog section of the document:
590 "The Perfect Patch"
591 http://www.zip.com.au/~akpm/linux/patches/stuff/tpp.txt
592
593
594
595
596All of these things are sometimes very hard to do. It can take years to
597perfect these practices (if at all). It's a continuous process of
598improvement that requires a lot of patience and determination. But
599don't give up, it's possible. Many have done it before, and each had to
600start exactly where you are now.
601
602
603
604
605----------
606Thanks to Paolo Ciarrocchi who allowed the "Development Process" section
607to be based on text he had written, and to Randy Dunlap and Gerrit
608Huizenga for some of the list of things you should and should not say.
609Also thanks to Pat Mochel, Hanna Linder, Randy Dunlap, Kay Sievers,
610Vojtech Pavlik, Jan Kara, Josh Boyer, Kees Cook, Andrew Morton, Andi
611Kleen, Vadim Lobanov, Jesper Juhl, Adrian Bunk, Keri Harris, Frans Pop,
612David A. Wheeler, Junio Hamano, Michael Kerrisk, and Alex Shepard for
613their review, comments, and contributions. Without their help, this
614document would not have been possible.
615
616
617
618Maintainer: Greg Kroah-Hartman <greg@kroah.com>
diff --git a/Documentation/devices.txt b/Documentation/devices.txt
index 0f515175c72a..3c406acd4dfa 100644
--- a/Documentation/devices.txt
+++ b/Documentation/devices.txt
@@ -2903,14 +2903,14 @@ Your cooperation is appreciated.
2903 196 = /dev/dvb/adapter3/video0 first video decoder of fourth card 2903 196 = /dev/dvb/adapter3/video0 first video decoder of fourth card
2904 2904
2905 2905
2906216 char USB BlueTooth devices 2906216 char Bluetooth RFCOMM TTY devices
2907 0 = /dev/ttyUB0 First USB BlueTooth device 2907 0 = /dev/rfcomm0 First Bluetooth RFCOMM TTY device
2908 1 = /dev/ttyUB1 Second USB BlueTooth device 2908 1 = /dev/rfcomm1 Second Bluetooth RFCOMM TTY device
2909 ... 2909 ...
2910 2910
2911217 char USB BlueTooth devices (alternate devices) 2911217 char Bluetooth RFCOMM TTY devices (alternate devices)
2912 0 = /dev/cuub0 Callout device for ttyUB0 2912 0 = /dev/curf0 Callout device for rfcomm0
2913 1 = /dev/cuub1 Callout device for ttyUB1 2913 1 = /dev/curf1 Callout device for rfcomm1
2914 ... 2914 ...
2915 2915
2916218 char The Logical Company bus Unibus/Qbus adapters 2916218 char The Logical Company bus Unibus/Qbus adapters
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index 24fe8edad304..9b743198f77a 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -149,3 +149,13 @@ Files: drivers/md/md.c
149Why: Not reliable by design - can fail when most needed. 149Why: Not reliable by design - can fail when most needed.
150 Alternatives exist 150 Alternatives exist
151Who: NeilBrown <neilb@suse.de> 151Who: NeilBrown <neilb@suse.de>
152
153---------------------------
154
155What: au1x00_uart driver
156When: January 2006
157Why: The 8250 serial driver now has the ability to deal with the differences
158 between the standard 8250 family of UARTs and their slightly strange
159 brother on Alchemy SOCs. The loss of features is not considered an
160 issue.
161Who: Ralf Baechle <ralf@linux-mips.org>
diff --git a/Documentation/usb/bluetooth.txt b/Documentation/usb/bluetooth.txt
deleted file mode 100644
index 774f5d3835cc..000000000000
--- a/Documentation/usb/bluetooth.txt
+++ /dev/null
@@ -1,44 +0,0 @@
1INTRODUCTION
2
3 The USB Bluetooth driver supports any USB Bluetooth device.
4 It currently works well with the Linux USB Bluetooth stack from Axis
5 (available at http://developer.axis.com/software/bluetooth/ ) and
6 has been rumored to work with other Linux USB Bluetooth stacks.
7
8
9CONFIGURATION
10
11 Currently the driver can handle up to 256 different USB Bluetooth
12 devices at once.
13
14 If you are not using devfs:
15 The major number that the driver uses is 216 so to use the driver,
16 create the following nodes:
17 mknod /dev/ttyUB0 c 216 0
18 mknod /dev/ttyUB1 c 216 1
19 mknod /dev/ttyUB2 c 216 2
20 mknod /dev/ttyUB3 c 216 3
21 .
22 .
23 .
24 mknod /dev/ttyUB254 c 216 254
25 mknod /dev/ttyUB255 c 216 255
26
27 If you are using devfs:
28 The devices supported by this driver will show up as
29 /dev/usb/ttub/{0,1,...}
30
31 When the device is connected and recognized by the driver, the driver
32 will print to the system log, which node the device has been bound to.
33
34
35CONTACT:
36
37 If anyone has any problems using this driver, please contact me, or
38 join the Linux-USB mailing list (information on joining the mailing
39 list, as well as a link to its searchable archive is at
40 http://www.linux-usb.org/ )
41
42
43Greg Kroah-Hartman
44greg@kroah.com
diff --git a/MAINTAINERS b/MAINTAINERS
index 509927e40bbb..f239ac4762dd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -58,6 +58,7 @@ P: Person
58M: Mail patches to 58M: Mail patches to
59L: Mailing list that is relevant to this area 59L: Mailing list that is relevant to this area
60W: Web-page with status/info 60W: Web-page with status/info
61T: SCM tree type and URL. Type is one of: git, hg, quilt.
61S: Status, one of the following: 62S: Status, one of the following:
62 63
63 Supported: Someone is actually paid to look after this. 64 Supported: Someone is actually paid to look after this.
@@ -183,6 +184,7 @@ P: Len Brown
183M: len.brown@intel.com 184M: len.brown@intel.com
184L: acpi-devel@lists.sourceforge.net 185L: acpi-devel@lists.sourceforge.net
185W: http://acpi.sourceforge.net/ 186W: http://acpi.sourceforge.net/
187T: git kernel.org:/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6.git
186S: Maintained 188S: Maintained
187 189
188AD1816 SOUND DRIVER 190AD1816 SOUND DRIVER
@@ -418,6 +420,7 @@ BLOCK LAYER
418P: Jens Axboe 420P: Jens Axboe
419M: axboe@suse.de 421M: axboe@suse.de
420L: linux-kernel@vger.kernel.org 422L: linux-kernel@vger.kernel.org
423T: git kernel.org:/pub/scm/linux/kernel/git/axboe/linux-2.6-block.git
421S: Maintained 424S: Maintained
422 425
423BLUETOOTH SUBSYSTEM 426BLUETOOTH SUBSYSTEM
@@ -803,12 +806,14 @@ DRIVER CORE, KOBJECTS, AND SYSFS
803P: Greg Kroah-Hartman 806P: Greg Kroah-Hartman
804M: gregkh@suse.de 807M: gregkh@suse.de
805L: linux-kernel@vger.kernel.org 808L: linux-kernel@vger.kernel.org
809T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
806S: Supported 810S: Supported
807 811
808DRM DRIVERS 812DRM DRIVERS
809P: David Airlie 813P: David Airlie
810M: airlied@linux.ie 814M: airlied@linux.ie
811L: dri-devel@lists.sourceforge.net 815L: dri-devel@lists.sourceforge.net
816T: git kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6.git
812S: Maintained 817S: Maintained
813 818
814DSCC4 DRIVER 819DSCC4 DRIVER
@@ -1113,6 +1118,7 @@ P: Jean Delvare
1113M: khali@linux-fr.org 1118M: khali@linux-fr.org
1114L: lm-sensors@lm-sensors.org 1119L: lm-sensors@lm-sensors.org
1115W: http://www.lm-sensors.nu/ 1120W: http://www.lm-sensors.nu/
1121T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
1116S: Maintained 1122S: Maintained
1117 1123
1118I2O 1124I2O
@@ -1145,6 +1151,7 @@ P: Tony Luck
1145M: tony.luck@intel.com 1151M: tony.luck@intel.com
1146L: linux-ia64@vger.kernel.org 1152L: linux-ia64@vger.kernel.org
1147W: http://www.ia64-linux.org/ 1153W: http://www.ia64-linux.org/
1154T: git kernel.org:/pub/scm/linux/kernel/git/aegl/linux-2.6.git
1148S: Maintained 1155S: Maintained
1149 1156
1150SN-IA64 (Itanium) SUB-PLATFORM 1157SN-IA64 (Itanium) SUB-PLATFORM
@@ -1212,6 +1219,7 @@ P: Jody McIntyre
1212M: scjody@steamballoon.com 1219M: scjody@steamballoon.com
1213L: linux1394-devel@lists.sourceforge.net 1220L: linux1394-devel@lists.sourceforge.net
1214W: http://www.linux1394.org/ 1221W: http://www.linux1394.org/
1222T: git kernel.org:/pub/scm/linux/kernel/git/scjody/ieee1394.git
1215S: Maintained 1223S: Maintained
1216 1224
1217IEEE 1394 OHCI DRIVER 1225IEEE 1394 OHCI DRIVER
@@ -1263,6 +1271,7 @@ P: Hal Rosenstock
1263M: halr@voltaire.com 1271M: halr@voltaire.com
1264L: openib-general@openib.org 1272L: openib-general@openib.org
1265W: http://www.openib.org/ 1273W: http://www.openib.org/
1274T: git kernel.org:/pub/scm/linux/kernel/git/roland/infiniband.git
1266S: Supported 1275S: Supported
1267 1276
1268INPUT (KEYBOARD, MOUSE, JOYSTICK) DRIVERS 1277INPUT (KEYBOARD, MOUSE, JOYSTICK) DRIVERS
@@ -1436,6 +1445,7 @@ P: Kai Germaschewski
1436M: kai@germaschewski.name 1445M: kai@germaschewski.name
1437P: Sam Ravnborg 1446P: Sam Ravnborg
1438M: sam@ravnborg.org 1447M: sam@ravnborg.org
1448T: git kernel.org:/pub/scm/linux/kernel/git/sam/kbuild.git
1439S: Maintained 1449S: Maintained
1440 1450
1441KERNEL JANITORS 1451KERNEL JANITORS
@@ -1782,6 +1792,7 @@ M: akpm@osdl.org
1782P: Jeff Garzik 1792P: Jeff Garzik
1783M: jgarzik@pobox.com 1793M: jgarzik@pobox.com
1784L: netdev@vger.kernel.org 1794L: netdev@vger.kernel.org
1795T: git kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6.git
1785S: Maintained 1796S: Maintained
1786 1797
1787NETWORKING [GENERAL] 1798NETWORKING [GENERAL]
@@ -1959,6 +1970,7 @@ P: Greg Kroah-Hartman
1959M: gregkh@suse.de 1970M: gregkh@suse.de
1960L: linux-kernel@vger.kernel.org 1971L: linux-kernel@vger.kernel.org
1961L: linux-pci@atrey.karlin.mff.cuni.cz 1972L: linux-pci@atrey.karlin.mff.cuni.cz
1973T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
1962S: Supported 1974S: Supported
1963 1975
1964PCI HOTPLUG CORE 1976PCI HOTPLUG CORE
@@ -1980,6 +1992,7 @@ S: Maintained
1980PCMCIA SUBSYSTEM 1992PCMCIA SUBSYSTEM
1981P: Linux PCMCIA Team 1993P: Linux PCMCIA Team
1982L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia 1994L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia
1995T: git kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git
1983S: Maintained 1996S: Maintained
1984 1997
1985PCNET32 NETWORK DRIVER 1998PCNET32 NETWORK DRIVER
@@ -2189,6 +2202,7 @@ SCSI SUBSYSTEM
2189P: James E.J. Bottomley 2202P: James E.J. Bottomley
2190M: James.Bottomley@SteelEye.com 2203M: James.Bottomley@SteelEye.com
2191L: linux-scsi@vger.kernel.org 2204L: linux-scsi@vger.kernel.org
2205T: git kernel.org:/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6.git
2192S: Maintained 2206S: Maintained
2193 2207
2194SCSI TAPE DRIVER 2208SCSI TAPE DRIVER
@@ -2228,6 +2242,7 @@ SERIAL ATA (SATA) SUBSYSTEM:
2228P: Jeff Garzik 2242P: Jeff Garzik
2229M: jgarzik@pobox.com 2243M: jgarzik@pobox.com
2230L: linux-ide@vger.kernel.org 2244L: linux-ide@vger.kernel.org
2245T: git kernel.org:/pub/scm/linux/kernel/git/jgarzik/libata-dev.git
2231S: Supported 2246S: Supported
2232 2247
2233SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER 2248SGI SN-IA64 (Altix) SERIAL CONSOLE DRIVER
@@ -2749,6 +2764,7 @@ M: gregkh@suse.de
2749L: linux-usb-users@lists.sourceforge.net 2764L: linux-usb-users@lists.sourceforge.net
2750L: linux-usb-devel@lists.sourceforge.net 2765L: linux-usb-devel@lists.sourceforge.net
2751W: http://www.linux-usb.org 2766W: http://www.linux-usb.org
2767T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
2752S: Supported 2768S: Supported
2753 2769
2754USB UHCI DRIVER 2770USB UHCI DRIVER
diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
index 7c7f475e213e..6abafb6f1844 100644
--- a/arch/arm/boot/compressed/head.S
+++ b/arch/arm/boot/compressed/head.S
@@ -19,38 +19,28 @@
19 */ 19 */
20#ifdef DEBUG 20#ifdef DEBUG
21 21
22#include <asm/arch/debug-macro.S>
23
24#if defined(CONFIG_DEBUG_ICEDCC) 22#if defined(CONFIG_DEBUG_ICEDCC)
25 .macro loadsp, rb 23 .macro loadsp, rb
26 .endm 24 .endm
27 .macro writeb, ch, rb 25 .macro writeb, ch, rb
28 mcr p14, 0, \ch, c0, c1, 0 26 mcr p14, 0, \ch, c0, c1, 0
29 .endm 27 .endm
30#else 28#else
29
30#include <asm/arch/debug-macro.S>
31
31 .macro writeb, ch, rb 32 .macro writeb, ch, rb
32 senduart \ch, \rb 33 senduart \ch, \rb
33 .endm 34 .endm
34 35
35#if defined(CONFIG_FOOTBRIDGE) || \ 36#if defined(CONFIG_ARCH_SA1100)
36 defined(CONFIG_ARCH_RPC) || \
37 defined(CONFIG_ARCH_INTEGRATOR) || \
38 defined(CONFIG_ARCH_PXA) || \
39 defined(CONFIG_ARCH_IXP4XX) || \
40 defined(CONFIG_ARCH_IXP2000) || \
41 defined(CONFIG_ARCH_LH7A40X) || \
42 defined(CONFIG_ARCH_OMAP)
43 .macro loadsp, rb
44 addruart \rb
45 .endm
46#elif defined(CONFIG_ARCH_SA1100)
47 .macro loadsp, rb 37 .macro loadsp, rb
48 mov \rb, #0x80000000 @ physical base address 38 mov \rb, #0x80000000 @ physical base address
49# if defined(CONFIG_DEBUG_LL_SER3) 39#ifdef CONFIG_DEBUG_LL_SER3
50 add \rb, \rb, #0x00050000 @ Ser3 40 add \rb, \rb, #0x00050000 @ Ser3
51# else 41#else
52 add \rb, \rb, #0x00010000 @ Ser1 42 add \rb, \rb, #0x00010000 @ Ser1
53# endif 43#endif
54 .endm 44 .endm
55#elif defined(CONFIG_ARCH_IOP331) 45#elif defined(CONFIG_ARCH_IOP331)
56 .macro loadsp, rb 46 .macro loadsp, rb
@@ -64,7 +54,9 @@
64 add \rb, \rb, #0x4000 * CONFIG_S3C2410_LOWLEVEL_UART_PORT 54 add \rb, \rb, #0x4000 * CONFIG_S3C2410_LOWLEVEL_UART_PORT
65 .endm 55 .endm
66#else 56#else
67#error no serial architecture defined 57 .macro loadsp, rb
58 addruart \rb
59 .endm
68#endif 60#endif
69#endif 61#endif
70#endif 62#endif
diff --git a/arch/arm/common/sa1111.c b/arch/arm/common/sa1111.c
index 39a6eea300a2..d0d6e6d2d649 100644
--- a/arch/arm/common/sa1111.c
+++ b/arch/arm/common/sa1111.c
@@ -32,6 +32,7 @@
32#include <asm/io.h> 32#include <asm/io.h>
33#include <asm/irq.h> 33#include <asm/irq.h>
34#include <asm/mach/irq.h> 34#include <asm/mach/irq.h>
35#include <asm/sizes.h>
35 36
36#include <asm/hardware/sa1111.h> 37#include <asm/hardware/sa1111.h>
37 38
@@ -132,6 +133,17 @@ static struct sa1111_dev_info sa1111_devices[] = {
132 }, 133 },
133}; 134};
134 135
136void __init sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes)
137{
138 unsigned int sz = SZ_1M >> PAGE_SHIFT;
139
140 if (node != 0)
141 sz = 0;
142
143 size[1] = size[0] - sz;
144 size[0] = sz;
145}
146
135/* 147/*
136 * SA1111 interrupt support. Since clearing an IRQ while there are 148 * SA1111 interrupt support. Since clearing an IRQ while there are
137 * active IRQs causes the interrupt output to pulse, the upper levels 149 * active IRQs causes the interrupt output to pulse, the upper levels
diff --git a/arch/arm/configs/s3c2410_defconfig b/arch/arm/configs/s3c2410_defconfig
index 756348bf5170..3f97590c91f2 100644
--- a/arch/arm/configs/s3c2410_defconfig
+++ b/arch/arm/configs/s3c2410_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.13-git8 3# Linux kernel version: 2.6.15-rc1
4# Thu Sep 8 19:24:02 2005 4# Sun Nov 13 17:41:24 2005
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
@@ -62,6 +62,23 @@ CONFIG_OBSOLETE_MODPARM=y
62CONFIG_KMOD=y 62CONFIG_KMOD=y
63 63
64# 64#
65# Block layer
66#
67
68#
69# IO Schedulers
70#
71CONFIG_IOSCHED_NOOP=y
72CONFIG_IOSCHED_AS=y
73CONFIG_IOSCHED_DEADLINE=y
74CONFIG_IOSCHED_CFQ=y
75CONFIG_DEFAULT_AS=y
76# CONFIG_DEFAULT_DEADLINE is not set
77# CONFIG_DEFAULT_CFQ is not set
78# CONFIG_DEFAULT_NOOP is not set
79CONFIG_DEFAULT_IOSCHED="anticipatory"
80
81#
65# System Type 82# System Type
66# 83#
67# CONFIG_ARCH_CLPS7500 is not set 84# CONFIG_ARCH_CLPS7500 is not set
@@ -83,6 +100,7 @@ CONFIG_ARCH_S3C2410=y
83# CONFIG_ARCH_LH7A40X is not set 100# CONFIG_ARCH_LH7A40X is not set
84# CONFIG_ARCH_OMAP is not set 101# CONFIG_ARCH_OMAP is not set
85# CONFIG_ARCH_VERSATILE is not set 102# CONFIG_ARCH_VERSATILE is not set
103# CONFIG_ARCH_REALVIEW is not set
86# CONFIG_ARCH_IMX is not set 104# CONFIG_ARCH_IMX is not set
87# CONFIG_ARCH_H720X is not set 105# CONFIG_ARCH_H720X is not set
88# CONFIG_ARCH_AAEC2000 is not set 106# CONFIG_ARCH_AAEC2000 is not set
@@ -108,6 +126,7 @@ CONFIG_CPU_S3C2440=y
108# S3C2410 Boot 126# S3C2410 Boot
109# 127#
110# CONFIG_S3C2410_BOOT_WATCHDOG is not set 128# CONFIG_S3C2410_BOOT_WATCHDOG is not set
129# CONFIG_S3C2410_BOOT_ERROR_RESET is not set
111 130
112# 131#
113# S3C2410 Setup 132# S3C2410 Setup
@@ -142,6 +161,7 @@ CONFIG_CPU_TLB_V4WBI=y
142# 161#
143# Bus support 162# Bus support
144# 163#
164CONFIG_ISA=y
145CONFIG_ISA_DMA_API=y 165CONFIG_ISA_DMA_API=y
146 166
147# 167#
@@ -152,7 +172,6 @@ CONFIG_ISA_DMA_API=y
152# 172#
153# Kernel Features 173# Kernel Features
154# 174#
155# CONFIG_SMP is not set
156# CONFIG_PREEMPT is not set 175# CONFIG_PREEMPT is not set
157# CONFIG_NO_IDLE_HZ is not set 176# CONFIG_NO_IDLE_HZ is not set
158# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set 177# CONFIG_ARCH_DISCONTIGMEM_ENABLE is not set
@@ -163,6 +182,7 @@ CONFIG_FLATMEM_MANUAL=y
163CONFIG_FLATMEM=y 182CONFIG_FLATMEM=y
164CONFIG_FLAT_NODE_MEM_MAP=y 183CONFIG_FLAT_NODE_MEM_MAP=y
165# CONFIG_SPARSEMEM_STATIC is not set 184# CONFIG_SPARSEMEM_STATIC is not set
185CONFIG_SPLIT_PTLOCK_CPUS=4096
166CONFIG_ALIGNMENT_TRAP=y 186CONFIG_ALIGNMENT_TRAP=y
167 187
168# 188#
@@ -253,6 +273,10 @@ CONFIG_TCP_CONG_BIC=y
253# CONFIG_NET_DIVERT is not set 273# CONFIG_NET_DIVERT is not set
254# CONFIG_ECONET is not set 274# CONFIG_ECONET is not set
255# CONFIG_WAN_ROUTER is not set 275# CONFIG_WAN_ROUTER is not set
276
277#
278# QoS and/or fair queueing
279#
256# CONFIG_NET_SCHED is not set 280# CONFIG_NET_SCHED is not set
257# CONFIG_NET_CLS_ROUTE is not set 281# CONFIG_NET_CLS_ROUTE is not set
258 282
@@ -260,7 +284,6 @@ CONFIG_TCP_CONG_BIC=y
260# Network testing 284# Network testing
261# 285#
262# CONFIG_NET_PKTGEN is not set 286# CONFIG_NET_PKTGEN is not set
263# CONFIG_NETFILTER_NETLINK is not set
264# CONFIG_HAMRADIO is not set 287# CONFIG_HAMRADIO is not set
265# CONFIG_IRDA is not set 288# CONFIG_IRDA is not set
266# CONFIG_BT is not set 289# CONFIG_BT is not set
@@ -300,6 +323,7 @@ CONFIG_MTD_BLOCK=y
300# CONFIG_FTL is not set 323# CONFIG_FTL is not set
301# CONFIG_NFTL is not set 324# CONFIG_NFTL is not set
302# CONFIG_INFTL is not set 325# CONFIG_INFTL is not set
326# CONFIG_RFD_FTL is not set
303 327
304# 328#
305# RAM/ROM/Flash chip drivers 329# RAM/ROM/Flash chip drivers
@@ -335,7 +359,6 @@ CONFIG_MTD_ROM=y
335# CONFIG_MTD_COMPLEX_MAPPINGS is not set 359# CONFIG_MTD_COMPLEX_MAPPINGS is not set
336# CONFIG_MTD_PHYSMAP is not set 360# CONFIG_MTD_PHYSMAP is not set
337# CONFIG_MTD_ARM_INTEGRATOR is not set 361# CONFIG_MTD_ARM_INTEGRATOR is not set
338# CONFIG_MTD_EDB7312 is not set
339# CONFIG_MTD_IMPA7 is not set 362# CONFIG_MTD_IMPA7 is not set
340CONFIG_MTD_BAST=y 363CONFIG_MTD_BAST=y
341CONFIG_MTD_BAST_MAXSIZE=4 364CONFIG_MTD_BAST_MAXSIZE=4
@@ -370,6 +393,11 @@ CONFIG_MTD_NAND_S3C2410=y
370# CONFIG_MTD_NAND_NANDSIM is not set 393# CONFIG_MTD_NAND_NANDSIM is not set
371 394
372# 395#
396# OneNAND Flash Device Drivers
397#
398# CONFIG_MTD_ONENAND is not set
399
400#
373# Parallel port support 401# Parallel port support
374# 402#
375CONFIG_PARPORT=y 403CONFIG_PARPORT=y
@@ -381,10 +409,12 @@ CONFIG_PARPORT_1284=y
381# 409#
382# Plug and Play support 410# Plug and Play support
383# 411#
412# CONFIG_PNP is not set
384 413
385# 414#
386# Block devices 415# Block devices
387# 416#
417# CONFIG_BLK_DEV_XD is not set
388# CONFIG_PARIDE is not set 418# CONFIG_PARIDE is not set
389# CONFIG_BLK_DEV_COW_COMMON is not set 419# CONFIG_BLK_DEV_COW_COMMON is not set
390CONFIG_BLK_DEV_LOOP=y 420CONFIG_BLK_DEV_LOOP=y
@@ -395,14 +425,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
395CONFIG_BLK_DEV_RAM_SIZE=4096 425CONFIG_BLK_DEV_RAM_SIZE=4096
396CONFIG_BLK_DEV_INITRD=y 426CONFIG_BLK_DEV_INITRD=y
397# CONFIG_CDROM_PKTCDVD is not set 427# CONFIG_CDROM_PKTCDVD is not set
398
399#
400# IO Schedulers
401#
402CONFIG_IOSCHED_NOOP=y
403CONFIG_IOSCHED_AS=y
404CONFIG_IOSCHED_DEADLINE=y
405CONFIG_IOSCHED_CFQ=y
406CONFIG_ATA_OVER_ETH=m 428CONFIG_ATA_OVER_ETH=m
407 429
408# 430#
@@ -428,6 +450,7 @@ CONFIG_BLK_DEV_IDEFLOPPY=m
428CONFIG_IDE_GENERIC=y 450CONFIG_IDE_GENERIC=y
429# CONFIG_IDE_ARM is not set 451# CONFIG_IDE_ARM is not set
430CONFIG_BLK_DEV_IDE_BAST=y 452CONFIG_BLK_DEV_IDE_BAST=y
453# CONFIG_IDE_CHIPSETS is not set
431# CONFIG_BLK_DEV_IDEDMA is not set 454# CONFIG_BLK_DEV_IDEDMA is not set
432# CONFIG_IDEDMA_AUTO is not set 455# CONFIG_IDEDMA_AUTO is not set
433# CONFIG_BLK_DEV_HD is not set 456# CONFIG_BLK_DEV_HD is not set
@@ -467,6 +490,11 @@ CONFIG_NETDEVICES=y
467# CONFIG_TUN is not set 490# CONFIG_TUN is not set
468 491
469# 492#
493# ARCnet devices
494#
495# CONFIG_ARCNET is not set
496
497#
470# PHY device support 498# PHY device support
471# 499#
472# CONFIG_PHYLIB is not set 500# CONFIG_PHYLIB is not set
@@ -475,9 +503,19 @@ CONFIG_NETDEVICES=y
475# Ethernet (10 or 100Mbit) 503# Ethernet (10 or 100Mbit)
476# 504#
477CONFIG_NET_ETHERNET=y 505CONFIG_NET_ETHERNET=y
478CONFIG_MII=m 506CONFIG_MII=y
507# CONFIG_NET_VENDOR_3COM is not set
508# CONFIG_LANCE is not set
509# CONFIG_NET_VENDOR_SMC is not set
479# CONFIG_SMC91X is not set 510# CONFIG_SMC91X is not set
480CONFIG_DM9000=m 511CONFIG_DM9000=y
512# CONFIG_NET_VENDOR_RACAL is not set
513# CONFIG_AT1700 is not set
514# CONFIG_DEPCA is not set
515# CONFIG_HP100 is not set
516# CONFIG_NET_ISA is not set
517# CONFIG_NET_PCI is not set
518# CONFIG_NET_POCKET is not set
481 519
482# 520#
483# Ethernet (1000 Mbit) 521# Ethernet (1000 Mbit)
@@ -490,6 +528,7 @@ CONFIG_DM9000=m
490# 528#
491# Token Ring devices 529# Token Ring devices
492# 530#
531# CONFIG_TR is not set
493 532
494# 533#
495# Wireless LAN (non-hamradio) 534# Wireless LAN (non-hamradio)
@@ -542,6 +581,9 @@ CONFIG_KEYBOARD_ATKBD=y
542CONFIG_INPUT_MOUSE=y 581CONFIG_INPUT_MOUSE=y
543CONFIG_MOUSE_PS2=y 582CONFIG_MOUSE_PS2=y
544# CONFIG_MOUSE_SERIAL is not set 583# CONFIG_MOUSE_SERIAL is not set
584# CONFIG_MOUSE_INPORT is not set
585# CONFIG_MOUSE_LOGIBM is not set
586# CONFIG_MOUSE_PC110PAD is not set
545# CONFIG_MOUSE_VSXXXAA is not set 587# CONFIG_MOUSE_VSXXXAA is not set
546# CONFIG_INPUT_JOYSTICK is not set 588# CONFIG_INPUT_JOYSTICK is not set
547# CONFIG_INPUT_TOUCHSCREEN is not set 589# CONFIG_INPUT_TOUCHSCREEN is not set
@@ -568,6 +610,7 @@ CONFIG_SERIAL_NONSTANDARD=y
568# CONFIG_ROCKETPORT is not set 610# CONFIG_ROCKETPORT is not set
569# CONFIG_CYCLADES is not set 611# CONFIG_CYCLADES is not set
570# CONFIG_DIGIEPCA is not set 612# CONFIG_DIGIEPCA is not set
613# CONFIG_ESPSERIAL is not set
571# CONFIG_MOXA_INTELLIO is not set 614# CONFIG_MOXA_INTELLIO is not set
572# CONFIG_MOXA_SMARTIO is not set 615# CONFIG_MOXA_SMARTIO is not set
573# CONFIG_ISI is not set 616# CONFIG_ISI is not set
@@ -590,6 +633,10 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
590CONFIG_SERIAL_8250_SHARE_IRQ=y 633CONFIG_SERIAL_8250_SHARE_IRQ=y
591# CONFIG_SERIAL_8250_DETECT_IRQ is not set 634# CONFIG_SERIAL_8250_DETECT_IRQ is not set
592# CONFIG_SERIAL_8250_RSA is not set 635# CONFIG_SERIAL_8250_RSA is not set
636# CONFIG_SERIAL_8250_FOURPORT is not set
637# CONFIG_SERIAL_8250_ACCENT is not set
638# CONFIG_SERIAL_8250_BOCA is not set
639# CONFIG_SERIAL_8250_HUB6 is not set
593 640
594# 641#
595# Non-8250 serial port support 642# Non-8250 serial port support
@@ -622,6 +669,13 @@ CONFIG_WATCHDOG=y
622# 669#
623# CONFIG_SOFT_WATCHDOG is not set 670# CONFIG_SOFT_WATCHDOG is not set
624CONFIG_S3C2410_WATCHDOG=y 671CONFIG_S3C2410_WATCHDOG=y
672
673#
674# ISA-based Watchdog Cards
675#
676# CONFIG_PCWATCHDOG is not set
677# CONFIG_MIXCOMWD is not set
678# CONFIG_WDT is not set
625# CONFIG_NVRAM is not set 679# CONFIG_NVRAM is not set
626# CONFIG_RTC is not set 680# CONFIG_RTC is not set
627CONFIG_S3C2410_RTC=y 681CONFIG_S3C2410_RTC=y
@@ -636,6 +690,7 @@ CONFIG_S3C2410_RTC=y
636# 690#
637# TPM devices 691# TPM devices
638# 692#
693# CONFIG_TELCLOCK is not set
639 694
640# 695#
641# I2C support 696# I2C support
@@ -653,6 +708,7 @@ CONFIG_I2C_ALGOBIT=m
653# 708#
654# I2C Hardware Bus support 709# I2C Hardware Bus support
655# 710#
711# CONFIG_I2C_ELEKTOR is not set
656CONFIG_I2C_ISA=m 712CONFIG_I2C_ISA=m
657# CONFIG_I2C_PARPORT is not set 713# CONFIG_I2C_PARPORT is not set
658# CONFIG_I2C_PARPORT_LIGHT is not set 714# CONFIG_I2C_PARPORT_LIGHT is not set
@@ -671,6 +727,7 @@ CONFIG_SENSORS_EEPROM=m
671# CONFIG_SENSORS_PCF8591 is not set 727# CONFIG_SENSORS_PCF8591 is not set
672# CONFIG_SENSORS_RTC8564 is not set 728# CONFIG_SENSORS_RTC8564 is not set
673# CONFIG_SENSORS_MAX6875 is not set 729# CONFIG_SENSORS_MAX6875 is not set
730# CONFIG_RTC_X1205_I2C is not set
674# CONFIG_I2C_DEBUG_CORE is not set 731# CONFIG_I2C_DEBUG_CORE is not set
675# CONFIG_I2C_DEBUG_ALGO is not set 732# CONFIG_I2C_DEBUG_ALGO is not set
676# CONFIG_I2C_DEBUG_BUS is not set 733# CONFIG_I2C_DEBUG_BUS is not set
@@ -737,22 +794,28 @@ CONFIG_SENSORS_LM85=m
737# Graphics support 794# Graphics support
738# 795#
739CONFIG_FB=y 796CONFIG_FB=y
740# CONFIG_FB_CFB_FILLRECT is not set 797CONFIG_FB_CFB_FILLRECT=y
741# CONFIG_FB_CFB_COPYAREA is not set 798CONFIG_FB_CFB_COPYAREA=y
742# CONFIG_FB_CFB_IMAGEBLIT is not set 799CONFIG_FB_CFB_IMAGEBLIT=y
743# CONFIG_FB_SOFT_CURSOR is not set
744# CONFIG_FB_MACMODES is not set 800# CONFIG_FB_MACMODES is not set
745CONFIG_FB_MODE_HELPERS=y 801CONFIG_FB_MODE_HELPERS=y
746# CONFIG_FB_TILEBLITTING is not set 802# CONFIG_FB_TILEBLITTING is not set
747# CONFIG_FB_S1D13XXX is not set 803# CONFIG_FB_S1D13XXX is not set
804CONFIG_FB_S3C2410=y
805# CONFIG_FB_S3C2410_DEBUG is not set
748# CONFIG_FB_VIRTUAL is not set 806# CONFIG_FB_VIRTUAL is not set
749 807
750# 808#
751# Console display driver support 809# Console display driver support
752# 810#
753# CONFIG_VGA_CONSOLE is not set 811# CONFIG_VGA_CONSOLE is not set
812# CONFIG_MDA_CONSOLE is not set
754CONFIG_DUMMY_CONSOLE=y 813CONFIG_DUMMY_CONSOLE=y
755# CONFIG_FRAMEBUFFER_CONSOLE is not set 814CONFIG_FRAMEBUFFER_CONSOLE=y
815# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
816# CONFIG_FONTS is not set
817CONFIG_FONT_8x8=y
818CONFIG_FONT_8x16=y
756 819
757# 820#
758# Logo configuration 821# Logo configuration
@@ -773,6 +836,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
773# CONFIG_USB is not set 836# CONFIG_USB is not set
774 837
775# 838#
839# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
840#
841
842#
776# USB Gadget Support 843# USB Gadget Support
777# 844#
778# CONFIG_USB_GADGET is not set 845# CONFIG_USB_GADGET is not set
@@ -798,10 +865,6 @@ CONFIG_FS_MBCACHE=y
798# CONFIG_REISERFS_FS is not set 865# CONFIG_REISERFS_FS is not set
799# CONFIG_JFS_FS is not set 866# CONFIG_JFS_FS is not set
800# CONFIG_FS_POSIX_ACL is not set 867# CONFIG_FS_POSIX_ACL is not set
801
802#
803# XFS support
804#
805# CONFIG_XFS_FS is not set 868# CONFIG_XFS_FS is not set
806# CONFIG_MINIX_FS is not set 869# CONFIG_MINIX_FS is not set
807CONFIG_ROMFS_FS=y 870CONFIG_ROMFS_FS=y
@@ -810,6 +873,7 @@ CONFIG_INOTIFY=y
810CONFIG_DNOTIFY=y 873CONFIG_DNOTIFY=y
811# CONFIG_AUTOFS_FS is not set 874# CONFIG_AUTOFS_FS is not set
812# CONFIG_AUTOFS4_FS is not set 875# CONFIG_AUTOFS4_FS is not set
876# CONFIG_FUSE_FS is not set
813 877
814# 878#
815# CD-ROM/DVD Filesystems 879# CD-ROM/DVD Filesystems
@@ -854,6 +918,7 @@ CONFIG_JFFS_FS_VERBOSE=0
854CONFIG_JFFS2_FS=y 918CONFIG_JFFS2_FS=y
855CONFIG_JFFS2_FS_DEBUG=0 919CONFIG_JFFS2_FS_DEBUG=0
856CONFIG_JFFS2_FS_WRITEBUFFER=y 920CONFIG_JFFS2_FS_WRITEBUFFER=y
921# CONFIG_JFFS2_SUMMARY is not set
857# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 922# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
858CONFIG_JFFS2_ZLIB=y 923CONFIG_JFFS2_ZLIB=y
859CONFIG_JFFS2_RTIME=y 924CONFIG_JFFS2_RTIME=y
@@ -884,6 +949,7 @@ CONFIG_SUNRPC=y
884# CONFIG_NCP_FS is not set 949# CONFIG_NCP_FS is not set
885# CONFIG_CODA_FS is not set 950# CONFIG_CODA_FS is not set
886# CONFIG_AFS_FS is not set 951# CONFIG_AFS_FS is not set
952# CONFIG_9P_FS is not set
887 953
888# 954#
889# Partition Types 955# Partition Types
@@ -959,7 +1025,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
959# 1025#
960# CONFIG_PRINTK_TIME is not set 1026# CONFIG_PRINTK_TIME is not set
961CONFIG_DEBUG_KERNEL=y 1027CONFIG_DEBUG_KERNEL=y
962# CONFIG_MAGIC_SYSRQ is not set 1028CONFIG_MAGIC_SYSRQ=y
963CONFIG_LOG_BUF_SHIFT=16 1029CONFIG_LOG_BUF_SHIFT=16
964CONFIG_DETECT_SOFTLOCKUP=y 1030CONFIG_DETECT_SOFTLOCKUP=y
965# CONFIG_SCHEDSTATS is not set 1031# CONFIG_SCHEDSTATS is not set
@@ -970,7 +1036,9 @@ CONFIG_DETECT_SOFTLOCKUP=y
970CONFIG_DEBUG_BUGVERBOSE=y 1036CONFIG_DEBUG_BUGVERBOSE=y
971CONFIG_DEBUG_INFO=y 1037CONFIG_DEBUG_INFO=y
972# CONFIG_DEBUG_FS is not set 1038# CONFIG_DEBUG_FS is not set
1039# CONFIG_DEBUG_VM is not set
973CONFIG_FRAME_POINTER=y 1040CONFIG_FRAME_POINTER=y
1041# CONFIG_RCU_TORTURE_TEST is not set
974CONFIG_DEBUG_USER=y 1042CONFIG_DEBUG_USER=y
975# CONFIG_DEBUG_WAITQ is not set 1043# CONFIG_DEBUG_WAITQ is not set
976# CONFIG_DEBUG_ERRORS is not set 1044# CONFIG_DEBUG_ERRORS is not set
@@ -998,6 +1066,7 @@ CONFIG_DEBUG_S3C2410_UART=0
998# Library routines 1066# Library routines
999# 1067#
1000# CONFIG_CRC_CCITT is not set 1068# CONFIG_CRC_CCITT is not set
1069# CONFIG_CRC16 is not set
1001CONFIG_CRC32=y 1070CONFIG_CRC32=y
1002# CONFIG_LIBCRC32C is not set 1071# CONFIG_LIBCRC32C is not set
1003CONFIG_ZLIB_INFLATE=y 1072CONFIG_ZLIB_INFLATE=y
diff --git a/arch/arm/mach-pxa/corgi_lcd.c b/arch/arm/mach-pxa/corgi_lcd.c
index 698eb06545c4..6dbcaf114ad7 100644
--- a/arch/arm/mach-pxa/corgi_lcd.c
+++ b/arch/arm/mach-pxa/corgi_lcd.c
@@ -22,7 +22,7 @@
22#include <linux/string.h> 22#include <linux/string.h>
23#include <asm/arch/akita.h> 23#include <asm/arch/akita.h>
24#include <asm/arch/corgi.h> 24#include <asm/arch/corgi.h>
25#include <asm/arch/hardware.h> 25#include <asm/hardware.h>
26#include <asm/arch/pxa-regs.h> 26#include <asm/arch/pxa-regs.h>
27#include <asm/arch/sharpsl.h> 27#include <asm/arch/sharpsl.h>
28#include <asm/arch/spitz.h> 28#include <asm/arch/spitz.h>
diff --git a/arch/arm/mach-realview/core.h b/arch/arm/mach-realview/core.h
index d83e8bad2038..c06e6041df41 100644
--- a/arch/arm/mach-realview/core.h
+++ b/arch/arm/mach-realview/core.h
@@ -26,8 +26,6 @@
26#include <asm/leds.h> 26#include <asm/leds.h>
27#include <asm/io.h> 27#include <asm/io.h>
28 28
29#define __io_address(n) __io(IO_ADDRESS(n))
30
31extern struct sys_timer realview_timer; 29extern struct sys_timer realview_timer;
32 30
33#define AMBA_DEVICE(name,busid,base,plat) \ 31#define AMBA_DEVICE(name,busid,base,plat) \
diff --git a/arch/arm/mach-realview/localtimer.c b/arch/arm/mach-realview/localtimer.c
index 5e917e37d095..c9d7c596b200 100644
--- a/arch/arm/mach-realview/localtimer.c
+++ b/arch/arm/mach-realview/localtimer.c
@@ -21,8 +21,6 @@
21#include <asm/io.h> 21#include <asm/io.h>
22#include <asm/irq.h> 22#include <asm/irq.h>
23 23
24#include "core.h"
25
26#define TWD_BASE(cpu) (__io_address(REALVIEW_TWD_BASE) + \ 24#define TWD_BASE(cpu) (__io_address(REALVIEW_TWD_BASE) + \
27 ((cpu) * REALVIEW_TWD_SIZE)) 25 ((cpu) * REALVIEW_TWD_SIZE))
28 26
diff --git a/arch/arm/mach-realview/platsmp.c b/arch/arm/mach-realview/platsmp.c
index 0c7d4ac9a7b3..a8fbd76d8be5 100644
--- a/arch/arm/mach-realview/platsmp.c
+++ b/arch/arm/mach-realview/platsmp.c
@@ -17,8 +17,7 @@
17#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
18#include <asm/hardware/arm_scu.h> 18#include <asm/hardware/arm_scu.h>
19#include <asm/hardware.h> 19#include <asm/hardware.h>
20 20#include <asm/io.h>
21#include "core.h"
22 21
23extern void realview_secondary_startup(void); 22extern void realview_secondary_startup(void);
24 23
diff --git a/arch/arm/mach-s3c2410/mach-bast.c b/arch/arm/mach-s3c2410/mach-bast.c
index 1be2567a7486..4d962717fdf7 100644
--- a/arch/arm/mach-s3c2410/mach-bast.c
+++ b/arch/arm/mach-s3c2410/mach-bast.c
@@ -203,7 +203,7 @@ static struct s3c24xx_uart_clksrc bast_serial_clocks[] = {
203 .name = "pclk", 203 .name = "pclk",
204 .divisor = 1, 204 .divisor = 1,
205 .min_baud = 0, 205 .min_baud = 0,
206 .max_baud = 0. 206 .max_baud = 0,
207 } 207 }
208}; 208};
209 209
@@ -216,7 +216,7 @@ static struct s3c2410_uartcfg bast_uartcfgs[] = {
216 .ulcon = ULCON, 216 .ulcon = ULCON,
217 .ufcon = UFCON, 217 .ufcon = UFCON,
218 .clocks = bast_serial_clocks, 218 .clocks = bast_serial_clocks,
219 .clocks_size = ARRAY_SIZE(bast_serial_clocks) 219 .clocks_size = ARRAY_SIZE(bast_serial_clocks),
220 }, 220 },
221 [1] = { 221 [1] = {
222 .hwport = 1, 222 .hwport = 1,
@@ -225,7 +225,7 @@ static struct s3c2410_uartcfg bast_uartcfgs[] = {
225 .ulcon = ULCON, 225 .ulcon = ULCON,
226 .ufcon = UFCON, 226 .ufcon = UFCON,
227 .clocks = bast_serial_clocks, 227 .clocks = bast_serial_clocks,
228 .clocks_size = ARRAY_SIZE(bast_serial_clocks) 228 .clocks_size = ARRAY_SIZE(bast_serial_clocks),
229 }, 229 },
230 /* port 2 is not actually used */ 230 /* port 2 is not actually used */
231 [2] = { 231 [2] = {
@@ -235,7 +235,7 @@ static struct s3c2410_uartcfg bast_uartcfgs[] = {
235 .ulcon = ULCON, 235 .ulcon = ULCON,
236 .ufcon = UFCON, 236 .ufcon = UFCON,
237 .clocks = bast_serial_clocks, 237 .clocks = bast_serial_clocks,
238 .clocks_size = ARRAY_SIZE(bast_serial_clocks) 238 .clocks_size = ARRAY_SIZE(bast_serial_clocks),
239 } 239 }
240}; 240};
241 241
@@ -268,7 +268,7 @@ static struct mtd_partition bast_default_nand_part[] = {
268 [0] = { 268 [0] = {
269 .name = "Boot Agent", 269 .name = "Boot Agent",
270 .size = SZ_16K, 270 .size = SZ_16K,
271 .offset = 0 271 .offset = 0,
272 }, 272 },
273 [1] = { 273 [1] = {
274 .name = "/boot", 274 .name = "/boot",
@@ -296,28 +296,28 @@ static struct s3c2410_nand_set bast_nand_sets[] = {
296 .nr_chips = 1, 296 .nr_chips = 1,
297 .nr_map = smartmedia_map, 297 .nr_map = smartmedia_map,
298 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 298 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
299 .partitions = bast_default_nand_part 299 .partitions = bast_default_nand_part,
300 }, 300 },
301 [1] = { 301 [1] = {
302 .name = "chip0", 302 .name = "chip0",
303 .nr_chips = 1, 303 .nr_chips = 1,
304 .nr_map = chip0_map, 304 .nr_map = chip0_map,
305 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 305 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
306 .partitions = bast_default_nand_part 306 .partitions = bast_default_nand_part,
307 }, 307 },
308 [2] = { 308 [2] = {
309 .name = "chip1", 309 .name = "chip1",
310 .nr_chips = 1, 310 .nr_chips = 1,
311 .nr_map = chip1_map, 311 .nr_map = chip1_map,
312 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 312 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
313 .partitions = bast_default_nand_part 313 .partitions = bast_default_nand_part,
314 }, 314 },
315 [3] = { 315 [3] = {
316 .name = "chip2", 316 .name = "chip2",
317 .nr_chips = 1, 317 .nr_chips = 1,
318 .nr_map = chip2_map, 318 .nr_map = chip2_map,
319 .nr_partitions = ARRAY_SIZE(bast_default_nand_part), 319 .nr_partitions = ARRAY_SIZE(bast_default_nand_part),
320 .partitions = bast_default_nand_part 320 .partitions = bast_default_nand_part,
321 } 321 }
322}; 322};
323 323
@@ -355,17 +355,17 @@ static struct resource bast_dm9k_resource[] = {
355 [0] = { 355 [0] = {
356 .start = S3C2410_CS5 + BAST_PA_DM9000, 356 .start = S3C2410_CS5 + BAST_PA_DM9000,
357 .end = S3C2410_CS5 + BAST_PA_DM9000 + 3, 357 .end = S3C2410_CS5 + BAST_PA_DM9000 + 3,
358 .flags = IORESOURCE_MEM 358 .flags = IORESOURCE_MEM,
359 }, 359 },
360 [1] = { 360 [1] = {
361 .start = S3C2410_CS5 + BAST_PA_DM9000 + 0x40, 361 .start = S3C2410_CS5 + BAST_PA_DM9000 + 0x40,
362 .end = S3C2410_CS5 + BAST_PA_DM9000 + 0x40 + 0x3f, 362 .end = S3C2410_CS5 + BAST_PA_DM9000 + 0x40 + 0x3f,
363 .flags = IORESOURCE_MEM 363 .flags = IORESOURCE_MEM,
364 }, 364 },
365 [2] = { 365 [2] = {
366 .start = IRQ_DM9000, 366 .start = IRQ_DM9000,
367 .end = IRQ_DM9000, 367 .end = IRQ_DM9000,
368 .flags = IORESOURCE_IRQ 368 .flags = IORESOURCE_IRQ,
369 } 369 }
370 370
371}; 371};
@@ -375,7 +375,7 @@ static struct resource bast_dm9k_resource[] = {
375*/ 375*/
376 376
377static struct dm9000_plat_data bast_dm9k_platdata = { 377static struct dm9000_plat_data bast_dm9k_platdata = {
378 .flags = DM9000_PLATF_16BITONLY 378 .flags = DM9000_PLATF_16BITONLY,
379}; 379};
380 380
381static struct platform_device bast_device_dm9k = { 381static struct platform_device bast_device_dm9k = {
@@ -492,7 +492,7 @@ static struct s3c24xx_board bast_board __initdata = {
492 .devices = bast_devices, 492 .devices = bast_devices,
493 .devices_count = ARRAY_SIZE(bast_devices), 493 .devices_count = ARRAY_SIZE(bast_devices),
494 .clocks = bast_clocks, 494 .clocks = bast_clocks,
495 .clocks_count = ARRAY_SIZE(bast_clocks) 495 .clocks_count = ARRAY_SIZE(bast_clocks),
496}; 496};
497 497
498static void __init bast_map_io(void) 498static void __init bast_map_io(void)
diff --git a/arch/arm/plat-omap/dmtimer.c b/arch/arm/plat-omap/dmtimer.c
index a1468d7326eb..38d7ebf87920 100644
--- a/arch/arm/plat-omap/dmtimer.c
+++ b/arch/arm/plat-omap/dmtimer.c
@@ -26,7 +26,7 @@
26 */ 26 */
27 27
28#include <linux/init.h> 28#include <linux/init.h>
29#include <asm/arch/hardware.h> 29#include <asm/hardware.h>
30#include <asm/arch/dmtimer.h> 30#include <asm/arch/dmtimer.h>
31#include <asm/io.h> 31#include <asm/io.h>
32#include <asm/arch/irqs.h> 32#include <asm/arch/irqs.h>
diff --git a/arch/arm/plat-omap/ocpi.c b/arch/arm/plat-omap/ocpi.c
index 2ede2ee8cae4..b86148227480 100644
--- a/arch/arm/plat-omap/ocpi.c
+++ b/arch/arm/plat-omap/ocpi.c
@@ -34,7 +34,7 @@
34 34
35#include <asm/io.h> 35#include <asm/io.h>
36#include <asm/hardware/clock.h> 36#include <asm/hardware/clock.h>
37#include <asm/arch/hardware.h> 37#include <asm/hardware.h>
38 38
39#define OCPI_BASE 0xfffec320 39#define OCPI_BASE 0xfffec320
40#define OCPI_FAULT (OCPI_BASE + 0x00) 40#define OCPI_FAULT (OCPI_BASE + 0x00)
diff --git a/arch/arm/plat-omap/pm.c b/arch/arm/plat-omap/pm.c
index 966cca031ca7..1a24e2c10714 100644
--- a/arch/arm/plat-omap/pm.c
+++ b/arch/arm/plat-omap/pm.c
@@ -509,7 +509,7 @@ static void omap_pm_init_proc(void)
509 * @state: suspend state we're entering. 509 * @state: suspend state we're entering.
510 * 510 *
511 */ 511 */
512//#include <asm/arch/hardware.h> 512//#include <asm/hardware.h>
513 513
514static int omap_pm_prepare(suspend_state_t state) 514static int omap_pm_prepare(suspend_state_t state)
515{ 515{
diff --git a/arch/arm/plat-omap/sram-fn.S b/arch/arm/plat-omap/sram-fn.S
index 4bea36964a00..66414cc8e6e3 100644
--- a/arch/arm/plat-omap/sram-fn.S
+++ b/arch/arm/plat-omap/sram-fn.S
@@ -12,7 +12,7 @@
12#include <linux/linkage.h> 12#include <linux/linkage.h>
13#include <asm/assembler.h> 13#include <asm/assembler.h>
14#include <asm/arch/io.h> 14#include <asm/arch/io.h>
15#include <asm/arch/hardware.h> 15#include <asm/hardware.h>
16 16
17 .text 17 .text
18 18
diff --git a/arch/ia64/kernel/ivt.S b/arch/ia64/kernel/ivt.S
index e06f21f60dc5..301f2e9d262e 100644
--- a/arch/ia64/kernel/ivt.S
+++ b/arch/ia64/kernel/ivt.S
@@ -91,16 +91,17 @@ ENTRY(vhpt_miss)
91 * (the "original") TLB miss, which may either be caused by an instruction 91 * (the "original") TLB miss, which may either be caused by an instruction
92 * fetch or a data access (or non-access). 92 * fetch or a data access (or non-access).
93 * 93 *
94 * What we do here is normal TLB miss handing for the _original_ miss, followed 94 * What we do here is normal TLB miss handing for the _original_ miss,
95 * by inserting the TLB entry for the virtual page table page that the VHPT 95 * followed by inserting the TLB entry for the virtual page table page
96 * walker was attempting to access. The latter gets inserted as long 96 * that the VHPT walker was attempting to access. The latter gets
97 * as both L1 and L2 have valid mappings for the faulting address. 97 * inserted as long as page table entry above pte level have valid
98 * The TLB entry for the original miss gets inserted only if 98 * mappings for the faulting address. The TLB entry for the original
99 * the L3 entry indicates that the page is present. 99 * miss gets inserted only if the pte entry indicates that the page is
100 * present.
100 * 101 *
101 * do_page_fault gets invoked in the following cases: 102 * do_page_fault gets invoked in the following cases:
102 * - the faulting virtual address uses unimplemented address bits 103 * - the faulting virtual address uses unimplemented address bits
103 * - the faulting virtual address has no L1, L2, or L3 mapping 104 * - the faulting virtual address has no valid page table mapping
104 */ 105 */
105 mov r16=cr.ifa // get address that caused the TLB miss 106 mov r16=cr.ifa // get address that caused the TLB miss
106#ifdef CONFIG_HUGETLB_PAGE 107#ifdef CONFIG_HUGETLB_PAGE
@@ -126,7 +127,7 @@ ENTRY(vhpt_miss)
126#endif 127#endif
127 ;; 128 ;;
128 cmp.eq p6,p7=5,r17 // is IFA pointing into to region 5? 129 cmp.eq p6,p7=5,r17 // is IFA pointing into to region 5?
129 shr.u r18=r22,PGDIR_SHIFT // get bits 33-63 of the faulting address 130 shr.u r18=r22,PGDIR_SHIFT // get bottom portion of pgd index bit
130 ;; 131 ;;
131(p7) dep r17=r17,r19,(PAGE_SHIFT-3),3 // put region number bits in place 132(p7) dep r17=r17,r19,(PAGE_SHIFT-3),3 // put region number bits in place
132 133
@@ -137,38 +138,38 @@ ENTRY(vhpt_miss)
137(p6) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT 138(p6) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT
138(p7) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT-3 139(p7) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT-3
139 ;; 140 ;;
140(p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=PTA + IFA(33,42)*8 141(p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=pgd_offset for region 5
141(p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=PTA + (((IFA(61,63) << 7) | IFA(33,39))*8) 142(p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=pgd_offset for region[0-4]
142 cmp.eq p7,p6=0,r21 // unused address bits all zeroes? 143 cmp.eq p7,p6=0,r21 // unused address bits all zeroes?
143#ifdef CONFIG_PGTABLE_4 144#ifdef CONFIG_PGTABLE_4
144 shr.u r28=r22,PUD_SHIFT // shift L2 index into position 145 shr.u r28=r22,PUD_SHIFT // shift pud index into position
145#else 146#else
146 shr.u r18=r22,PMD_SHIFT // shift L3 index into position 147 shr.u r18=r22,PMD_SHIFT // shift pmd index into position
147#endif 148#endif
148 ;; 149 ;;
149 ld8 r17=[r17] // fetch the L1 entry (may be 0) 150 ld8 r17=[r17] // get *pgd (may be 0)
150 ;; 151 ;;
151(p7) cmp.eq p6,p7=r17,r0 // was L1 entry NULL? 152(p7) cmp.eq p6,p7=r17,r0 // was pgd_present(*pgd) == NULL?
152#ifdef CONFIG_PGTABLE_4 153#ifdef CONFIG_PGTABLE_4
153 dep r28=r28,r17,3,(PAGE_SHIFT-3) // compute address of L2 page table entry 154 dep r28=r28,r17,3,(PAGE_SHIFT-3) // r28=pud_offset(pgd,addr)
154 ;; 155 ;;
155 shr.u r18=r22,PMD_SHIFT // shift L3 index into position 156 shr.u r18=r22,PMD_SHIFT // shift pmd index into position
156(p7) ld8 r29=[r28] // fetch the L2 entry (may be 0) 157(p7) ld8 r29=[r28] // get *pud (may be 0)
157 ;; 158 ;;
158(p7) cmp.eq.or.andcm p6,p7=r29,r0 // was L2 entry NULL? 159(p7) cmp.eq.or.andcm p6,p7=r29,r0 // was pud_present(*pud) == NULL?
159 dep r17=r18,r29,3,(PAGE_SHIFT-3) // compute address of L3 page table entry 160 dep r17=r18,r29,3,(PAGE_SHIFT-3) // r17=pmd_offset(pud,addr)
160#else 161#else
161 dep r17=r18,r17,3,(PAGE_SHIFT-3) // compute address of L3 page table entry 162 dep r17=r18,r17,3,(PAGE_SHIFT-3) // r17=pmd_offset(pgd,addr)
162#endif 163#endif
163 ;; 164 ;;
164(p7) ld8 r20=[r17] // fetch the L3 entry (may be 0) 165(p7) ld8 r20=[r17] // get *pmd (may be 0)
165 shr.u r19=r22,PAGE_SHIFT // shift L4 index into position 166 shr.u r19=r22,PAGE_SHIFT // shift pte index into position
166 ;; 167 ;;
167(p7) cmp.eq.or.andcm p6,p7=r20,r0 // was L3 entry NULL? 168(p7) cmp.eq.or.andcm p6,p7=r20,r0 // was pmd_present(*pmd) == NULL?
168 dep r21=r19,r20,3,(PAGE_SHIFT-3) // compute address of L4 page table entry 169 dep r21=r19,r20,3,(PAGE_SHIFT-3) // r21=pte_offset(pmd,addr)
169 ;; 170 ;;
170(p7) ld8 r18=[r21] // read the L4 PTE 171(p7) ld8 r18=[r21] // read *pte
171 mov r19=cr.isr // cr.isr bit 0 tells us if this is an insn miss 172 mov r19=cr.isr // cr.isr bit 32 tells us if this is an insn miss
172 ;; 173 ;;
173(p7) tbit.z p6,p7=r18,_PAGE_P_BIT // page present bit cleared? 174(p7) tbit.z p6,p7=r18,_PAGE_P_BIT // page present bit cleared?
174 mov r22=cr.iha // get the VHPT address that caused the TLB miss 175 mov r22=cr.iha // get the VHPT address that caused the TLB miss
@@ -202,25 +203,33 @@ ENTRY(vhpt_miss)
202 dv_serialize_data 203 dv_serialize_data
203 204
204 /* 205 /*
205 * Re-check L2 and L3 pagetable. If they changed, we may have received a ptc.g 206 * Re-check pagetable entry. If they changed, we may have received a ptc.g
206 * between reading the pagetable and the "itc". If so, flush the entry we 207 * between reading the pagetable and the "itc". If so, flush the entry we
207 * inserted and retry. 208 * inserted and retry. At this point, we have:
209 *
210 * r28 = equivalent of pud_offset(pgd, ifa)
211 * r17 = equivalent of pmd_offset(pud, ifa)
212 * r21 = equivalent of pte_offset(pmd, ifa)
213 *
214 * r29 = *pud
215 * r20 = *pmd
216 * r18 = *pte
208 */ 217 */
209 ld8 r25=[r21] // read L4 entry again 218 ld8 r25=[r21] // read *pte again
210 ld8 r26=[r17] // read L3 PTE again 219 ld8 r26=[r17] // read *pmd again
211#ifdef CONFIG_PGTABLE_4 220#ifdef CONFIG_PGTABLE_4
212 ld8 r18=[r28] // read L2 entry again 221 ld8 r19=[r28] // read *pud again
213#endif 222#endif
214 cmp.ne p6,p7=r0,r0 223 cmp.ne p6,p7=r0,r0
215 ;; 224 ;;
216 cmp.ne.or.andcm p6,p7=r26,r20 // did L3 entry change 225 cmp.ne.or.andcm p6,p7=r26,r20 // did *pmd change
217#ifdef CONFIG_PGTABLE_4 226#ifdef CONFIG_PGTABLE_4
218 cmp.ne.or.andcm p6,p7=r29,r18 // did L4 PTE change 227 cmp.ne.or.andcm p6,p7=r19,r29 // did *pud change
219#endif 228#endif
220 mov r27=PAGE_SHIFT<<2 229 mov r27=PAGE_SHIFT<<2
221 ;; 230 ;;
222(p6) ptc.l r22,r27 // purge PTE page translation 231(p6) ptc.l r22,r27 // purge PTE page translation
223(p7) cmp.ne.or.andcm p6,p7=r25,r18 // did L4 PTE change 232(p7) cmp.ne.or.andcm p6,p7=r25,r18 // did *pte change
224 ;; 233 ;;
225(p6) ptc.l r16,r27 // purge translation 234(p6) ptc.l r16,r27 // purge translation
226#endif 235#endif
@@ -235,19 +244,19 @@ END(vhpt_miss)
235ENTRY(itlb_miss) 244ENTRY(itlb_miss)
236 DBG_FAULT(1) 245 DBG_FAULT(1)
237 /* 246 /*
238 * The ITLB handler accesses the L3 PTE via the virtually mapped linear 247 * The ITLB handler accesses the PTE via the virtually mapped linear
239 * page table. If a nested TLB miss occurs, we switch into physical 248 * page table. If a nested TLB miss occurs, we switch into physical
240 * mode, walk the page table, and then re-execute the L3 PTE read 249 * mode, walk the page table, and then re-execute the PTE read and
241 * and go on normally after that. 250 * go on normally after that.
242 */ 251 */
243 mov r16=cr.ifa // get virtual address 252 mov r16=cr.ifa // get virtual address
244 mov r29=b0 // save b0 253 mov r29=b0 // save b0
245 mov r31=pr // save predicates 254 mov r31=pr // save predicates
246.itlb_fault: 255.itlb_fault:
247 mov r17=cr.iha // get virtual address of L3 PTE 256 mov r17=cr.iha // get virtual address of PTE
248 movl r30=1f // load nested fault continuation point 257 movl r30=1f // load nested fault continuation point
249 ;; 258 ;;
2501: ld8 r18=[r17] // read L3 PTE 2591: ld8 r18=[r17] // read *pte
251 ;; 260 ;;
252 mov b0=r29 261 mov b0=r29
253 tbit.z p6,p0=r18,_PAGE_P_BIT // page present bit cleared? 262 tbit.z p6,p0=r18,_PAGE_P_BIT // page present bit cleared?
@@ -262,7 +271,7 @@ ENTRY(itlb_miss)
262 */ 271 */
263 dv_serialize_data 272 dv_serialize_data
264 273
265 ld8 r19=[r17] // read L3 PTE again and see if same 274 ld8 r19=[r17] // read *pte again and see if same
266 mov r20=PAGE_SHIFT<<2 // setup page size for purge 275 mov r20=PAGE_SHIFT<<2 // setup page size for purge
267 ;; 276 ;;
268 cmp.ne p7,p0=r18,r19 277 cmp.ne p7,p0=r18,r19
@@ -279,19 +288,19 @@ END(itlb_miss)
279ENTRY(dtlb_miss) 288ENTRY(dtlb_miss)
280 DBG_FAULT(2) 289 DBG_FAULT(2)
281 /* 290 /*
282 * The DTLB handler accesses the L3 PTE via the virtually mapped linear 291 * The DTLB handler accesses the PTE via the virtually mapped linear
283 * page table. If a nested TLB miss occurs, we switch into physical 292 * page table. If a nested TLB miss occurs, we switch into physical
284 * mode, walk the page table, and then re-execute the L3 PTE read 293 * mode, walk the page table, and then re-execute the PTE read and
285 * and go on normally after that. 294 * go on normally after that.
286 */ 295 */
287 mov r16=cr.ifa // get virtual address 296 mov r16=cr.ifa // get virtual address
288 mov r29=b0 // save b0 297 mov r29=b0 // save b0
289 mov r31=pr // save predicates 298 mov r31=pr // save predicates
290dtlb_fault: 299dtlb_fault:
291 mov r17=cr.iha // get virtual address of L3 PTE 300 mov r17=cr.iha // get virtual address of PTE
292 movl r30=1f // load nested fault continuation point 301 movl r30=1f // load nested fault continuation point
293 ;; 302 ;;
2941: ld8 r18=[r17] // read L3 PTE 3031: ld8 r18=[r17] // read *pte
295 ;; 304 ;;
296 mov b0=r29 305 mov b0=r29
297 tbit.z p6,p0=r18,_PAGE_P_BIT // page present bit cleared? 306 tbit.z p6,p0=r18,_PAGE_P_BIT // page present bit cleared?
@@ -306,7 +315,7 @@ dtlb_fault:
306 */ 315 */
307 dv_serialize_data 316 dv_serialize_data
308 317
309 ld8 r19=[r17] // read L3 PTE again and see if same 318 ld8 r19=[r17] // read *pte again and see if same
310 mov r20=PAGE_SHIFT<<2 // setup page size for purge 319 mov r20=PAGE_SHIFT<<2 // setup page size for purge
311 ;; 320 ;;
312 cmp.ne p7,p0=r18,r19 321 cmp.ne p7,p0=r18,r19
@@ -420,7 +429,7 @@ ENTRY(nested_dtlb_miss)
420 * r30: continuation address 429 * r30: continuation address
421 * r31: saved pr 430 * r31: saved pr
422 * 431 *
423 * Output: r17: physical address of L3 PTE of faulting address 432 * Output: r17: physical address of PTE of faulting address
424 * r29: saved b0 433 * r29: saved b0
425 * r30: continuation address 434 * r30: continuation address
426 * r31: saved pr 435 * r31: saved pr
@@ -450,33 +459,33 @@ ENTRY(nested_dtlb_miss)
450(p6) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT 459(p6) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT
451(p7) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT-3 460(p7) shr.u r21=r21,PGDIR_SHIFT+PAGE_SHIFT-3
452 ;; 461 ;;
453(p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=PTA + IFA(33,42)*8 462(p6) dep r17=r18,r19,3,(PAGE_SHIFT-3) // r17=pgd_offset for region 5
454(p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=PTA + (((IFA(61,63) << 7) | IFA(33,39))*8) 463(p7) dep r17=r18,r17,3,(PAGE_SHIFT-6) // r17=pgd_offset for region[0-4]
455 cmp.eq p7,p6=0,r21 // unused address bits all zeroes? 464 cmp.eq p7,p6=0,r21 // unused address bits all zeroes?
456#ifdef CONFIG_PGTABLE_4 465#ifdef CONFIG_PGTABLE_4
457 shr.u r18=r22,PUD_SHIFT // shift L2 index into position 466 shr.u r18=r22,PUD_SHIFT // shift pud index into position
458#else 467#else
459 shr.u r18=r22,PMD_SHIFT // shift L3 index into position 468 shr.u r18=r22,PMD_SHIFT // shift pmd index into position
460#endif 469#endif
461 ;; 470 ;;
462 ld8 r17=[r17] // fetch the L1 entry (may be 0) 471 ld8 r17=[r17] // get *pgd (may be 0)
463 ;; 472 ;;
464(p7) cmp.eq p6,p7=r17,r0 // was L1 entry NULL? 473(p7) cmp.eq p6,p7=r17,r0 // was pgd_present(*pgd) == NULL?
465 dep r17=r18,r17,3,(PAGE_SHIFT-3) // compute address of L2 page table entry 474 dep r17=r18,r17,3,(PAGE_SHIFT-3) // r17=p[u|m]d_offset(pgd,addr)
466 ;; 475 ;;
467#ifdef CONFIG_PGTABLE_4 476#ifdef CONFIG_PGTABLE_4
468(p7) ld8 r17=[r17] // fetch the L2 entry (may be 0) 477(p7) ld8 r17=[r17] // get *pud (may be 0)
469 shr.u r18=r22,PMD_SHIFT // shift L3 index into position 478 shr.u r18=r22,PMD_SHIFT // shift pmd index into position
470 ;; 479 ;;
471(p7) cmp.eq.or.andcm p6,p7=r17,r0 // was L2 entry NULL? 480(p7) cmp.eq.or.andcm p6,p7=r17,r0 // was pud_present(*pud) == NULL?
472 dep r17=r18,r17,3,(PAGE_SHIFT-3) // compute address of L2 page table entry 481 dep r17=r18,r17,3,(PAGE_SHIFT-3) // r17=pmd_offset(pud,addr)
473 ;; 482 ;;
474#endif 483#endif
475(p7) ld8 r17=[r17] // fetch the L3 entry (may be 0) 484(p7) ld8 r17=[r17] // get *pmd (may be 0)
476 shr.u r19=r22,PAGE_SHIFT // shift L4 index into position 485 shr.u r19=r22,PAGE_SHIFT // shift pte index into position
477 ;; 486 ;;
478(p7) cmp.eq.or.andcm p6,p7=r17,r0 // was L3 entry NULL? 487(p7) cmp.eq.or.andcm p6,p7=r17,r0 // was pmd_present(*pmd) == NULL?
479 dep r17=r19,r17,3,(PAGE_SHIFT-3) // compute address of L4 page table entry 488 dep r17=r19,r17,3,(PAGE_SHIFT-3) // r17=pte_offset(pmd,addr);
480(p6) br.cond.spnt page_fault 489(p6) br.cond.spnt page_fault
481 mov b0=r30 490 mov b0=r30
482 br.sptk.many b0 // return to continuation point 491 br.sptk.many b0 // return to continuation point
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index 02692027730a..e14ba5e01a36 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -700,6 +700,7 @@ load-$(CONFIG_SNI_RM200_PCI) += 0xffffffff80600000
700# 700#
701core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \ 701core-$(CONFIG_TOSHIBA_JMR3927) += arch/mips/jmr3927/rbhma3100/ \
702 arch/mips/jmr3927/common/ 702 arch/mips/jmr3927/common/
703cflags-$(CONFIG_TOSHIBA_JMR3927) += -Iinclude/asm-mips/mach-jmr3927
703load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000 704load-$(CONFIG_TOSHIBA_JMR3927) += 0xffffffff80050000
704 705
705# 706#
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c
index 4f21f42d096b..08c8c855cc9c 100644
--- a/arch/mips/au1000/common/setup.c
+++ b/arch/mips/au1000/common/setup.c
@@ -93,7 +93,7 @@ void __init plat_setup(void)
93 93
94 argptr = prom_getcmdline(); 94 argptr = prom_getcmdline();
95 95
96#ifdef CONFIG_SERIAL_AU1X00_CONSOLE 96#if defined(CONFIG_SERIAL_AU1X00_CONSOLE) || defined(CONFIG_SERIAL_8250_CONSOLE)
97 if ((argptr = strstr(argptr, "console=")) == NULL) { 97 if ((argptr = strstr(argptr, "console=")) == NULL) {
98 argptr = prom_getcmdline(); 98 argptr = prom_getcmdline();
99 strcat(argptr, " console=ttyS0,115200"); 99 strcat(argptr, " console=ttyS0,115200");
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig
index 132ec3dac63f..74990758154b 100644
--- a/arch/mips/configs/atlas_defconfig
+++ b/arch/mips/configs/atlas_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:13 2005 4# Thu Nov 10 12:14:02 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -191,6 +209,7 @@ CONFIG_FLATMEM_MANUAL=y
191CONFIG_FLATMEM=y 209CONFIG_FLATMEM=y
192CONFIG_FLAT_NODE_MEM_MAP=y 210CONFIG_FLAT_NODE_MEM_MAP=y
193# CONFIG_SPARSEMEM_STATIC is not set 211# CONFIG_SPARSEMEM_STATIC is not set
212CONFIG_SPLIT_PTLOCK_CPUS=4
194CONFIG_PREEMPT_NONE=y 213CONFIG_PREEMPT_NONE=y
195# CONFIG_PREEMPT_VOLUNTARY is not set 214# CONFIG_PREEMPT_VOLUNTARY is not set
196# CONFIG_PREEMPT is not set 215# CONFIG_PREEMPT is not set
@@ -309,6 +328,10 @@ CONFIG_IPV6_TUNNEL=m
309CONFIG_NETFILTER=y 328CONFIG_NETFILTER=y
310# CONFIG_NETFILTER_DEBUG is not set 329# CONFIG_NETFILTER_DEBUG is not set
311CONFIG_BRIDGE_NETFILTER=y 330CONFIG_BRIDGE_NETFILTER=y
331
332#
333# Core Netfilter Configuration
334#
312CONFIG_NETFILTER_NETLINK=m 335CONFIG_NETFILTER_NETLINK=m
313CONFIG_NETFILTER_NETLINK_QUEUE=m 336CONFIG_NETFILTER_NETLINK_QUEUE=m
314CONFIG_NETFILTER_NETLINK_LOG=m 337CONFIG_NETFILTER_NETLINK_LOG=m
@@ -363,6 +386,7 @@ CONFIG_IP_NF_TARGET_REJECT=m
363CONFIG_IP_NF_TARGET_LOG=m 386CONFIG_IP_NF_TARGET_LOG=m
364CONFIG_IP_NF_TARGET_ULOG=m 387CONFIG_IP_NF_TARGET_ULOG=m
365CONFIG_IP_NF_TARGET_TCPMSS=m 388CONFIG_IP_NF_TARGET_TCPMSS=m
389CONFIG_IP_NF_TARGET_NFQUEUE=m
366CONFIG_IP_NF_NAT=m 390CONFIG_IP_NF_NAT=m
367CONFIG_IP_NF_NAT_NEEDED=y 391CONFIG_IP_NF_NAT_NEEDED=y
368CONFIG_IP_NF_TARGET_MASQUERADE=m 392CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -412,6 +436,7 @@ CONFIG_IP6_NF_MATCH_PHYSDEV=m
412CONFIG_IP6_NF_FILTER=m 436CONFIG_IP6_NF_FILTER=m
413CONFIG_IP6_NF_TARGET_LOG=m 437CONFIG_IP6_NF_TARGET_LOG=m
414CONFIG_IP6_NF_TARGET_REJECT=m 438CONFIG_IP6_NF_TARGET_REJECT=m
439CONFIG_IP6_NF_TARGET_NFQUEUE=m
415CONFIG_IP6_NF_MANGLE=m 440CONFIG_IP6_NF_MANGLE=m
416CONFIG_IP6_NF_TARGET_MARK=m 441CONFIG_IP6_NF_TARGET_MARK=m
417CONFIG_IP6_NF_TARGET_HL=m 442CONFIG_IP6_NF_TARGET_HL=m
@@ -472,10 +497,18 @@ CONFIG_IPDDP_DECAP=y
472CONFIG_NET_DIVERT=y 497CONFIG_NET_DIVERT=y
473# CONFIG_ECONET is not set 498# CONFIG_ECONET is not set
474# CONFIG_WAN_ROUTER is not set 499# CONFIG_WAN_ROUTER is not set
500
501#
502# QoS and/or fair queueing
503#
475CONFIG_NET_SCHED=y 504CONFIG_NET_SCHED=y
476CONFIG_NET_SCH_CLK_JIFFIES=y 505CONFIG_NET_SCH_CLK_JIFFIES=y
477# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set 506# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
478# CONFIG_NET_SCH_CLK_CPU is not set 507# CONFIG_NET_SCH_CLK_CPU is not set
508
509#
510# Queueing/Scheduling
511#
479CONFIG_NET_SCH_CBQ=m 512CONFIG_NET_SCH_CBQ=m
480CONFIG_NET_SCH_HTB=m 513CONFIG_NET_SCH_HTB=m
481CONFIG_NET_SCH_HFSC=m 514CONFIG_NET_SCH_HFSC=m
@@ -488,8 +521,10 @@ CONFIG_NET_SCH_GRED=m
488CONFIG_NET_SCH_DSMARK=m 521CONFIG_NET_SCH_DSMARK=m
489CONFIG_NET_SCH_NETEM=m 522CONFIG_NET_SCH_NETEM=m
490CONFIG_NET_SCH_INGRESS=m 523CONFIG_NET_SCH_INGRESS=m
491CONFIG_NET_QOS=y 524
492CONFIG_NET_ESTIMATOR=y 525#
526# Classification
527#
493CONFIG_NET_CLS=y 528CONFIG_NET_CLS=y
494CONFIG_NET_CLS_BASIC=m 529CONFIG_NET_CLS_BASIC=m
495CONFIG_NET_CLS_TCINDEX=m 530CONFIG_NET_CLS_TCINDEX=m
@@ -498,13 +533,14 @@ CONFIG_NET_CLS_ROUTE=y
498CONFIG_NET_CLS_FW=m 533CONFIG_NET_CLS_FW=m
499CONFIG_NET_CLS_U32=m 534CONFIG_NET_CLS_U32=m
500# CONFIG_CLS_U32_PERF is not set 535# CONFIG_CLS_U32_PERF is not set
501CONFIG_NET_CLS_IND=y
502# CONFIG_CLS_U32_MARK is not set 536# CONFIG_CLS_U32_MARK is not set
503CONFIG_NET_CLS_RSVP=m 537CONFIG_NET_CLS_RSVP=m
504CONFIG_NET_CLS_RSVP6=m 538CONFIG_NET_CLS_RSVP6=m
505# CONFIG_NET_EMATCH is not set 539# CONFIG_NET_EMATCH is not set
506# CONFIG_NET_CLS_ACT is not set 540# CONFIG_NET_CLS_ACT is not set
507CONFIG_NET_CLS_POLICE=y 541CONFIG_NET_CLS_POLICE=y
542CONFIG_NET_CLS_IND=y
543CONFIG_NET_ESTIMATOR=y
508 544
509# 545#
510# Network testing 546# Network testing
@@ -565,18 +601,9 @@ CONFIG_BLK_DEV_RAM=y
565CONFIG_BLK_DEV_RAM_COUNT=16 601CONFIG_BLK_DEV_RAM_COUNT=16
566CONFIG_BLK_DEV_RAM_SIZE=4096 602CONFIG_BLK_DEV_RAM_SIZE=4096
567# CONFIG_BLK_DEV_INITRD is not set 603# CONFIG_BLK_DEV_INITRD is not set
568# CONFIG_LBD is not set
569CONFIG_CDROM_PKTCDVD=m 604CONFIG_CDROM_PKTCDVD=m
570CONFIG_CDROM_PKTCDVD_BUFFERS=8 605CONFIG_CDROM_PKTCDVD_BUFFERS=8
571# CONFIG_CDROM_PKTCDVD_WCACHE is not set 606# CONFIG_CDROM_PKTCDVD_WCACHE is not set
572
573#
574# IO Schedulers
575#
576CONFIG_IOSCHED_NOOP=y
577CONFIG_IOSCHED_AS=y
578CONFIG_IOSCHED_DEADLINE=y
579CONFIG_IOSCHED_CFQ=y
580CONFIG_ATA_OVER_ETH=m 607CONFIG_ATA_OVER_ETH=m
581 608
582# 609#
@@ -643,6 +670,7 @@ CONFIG_SCSI_SAS_ATTRS=m
643# 670#
644# SCSI low-level drivers 671# SCSI low-level drivers
645# 672#
673CONFIG_ISCSI_TCP=m
646# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 674# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
647# CONFIG_SCSI_3W_9XXX is not set 675# CONFIG_SCSI_3W_9XXX is not set
648# CONFIG_SCSI_ACARD is not set 676# CONFIG_SCSI_ACARD is not set
@@ -653,6 +681,7 @@ CONFIG_SCSI_SAS_ATTRS=m
653# CONFIG_SCSI_DPT_I2O is not set 681# CONFIG_SCSI_DPT_I2O is not set
654# CONFIG_MEGARAID_NEWGEN is not set 682# CONFIG_MEGARAID_NEWGEN is not set
655# CONFIG_MEGARAID_LEGACY is not set 683# CONFIG_MEGARAID_LEGACY is not set
684# CONFIG_MEGARAID_SAS is not set
656# CONFIG_SCSI_SATA is not set 685# CONFIG_SCSI_SATA is not set
657# CONFIG_SCSI_DMX3191D is not set 686# CONFIG_SCSI_DMX3191D is not set
658# CONFIG_SCSI_FUTURE_DOMAIN is not set 687# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -707,6 +736,7 @@ CONFIG_DM_MULTIPATH_EMC=m
707# CONFIG_FUSION is not set 736# CONFIG_FUSION is not set
708# CONFIG_FUSION_SPI is not set 737# CONFIG_FUSION_SPI is not set
709# CONFIG_FUSION_FC is not set 738# CONFIG_FUSION_FC is not set
739# CONFIG_FUSION_SAS is not set
710 740
711# 741#
712# IEEE 1394 (FireWire) support 742# IEEE 1394 (FireWire) support
@@ -736,7 +766,6 @@ CONFIG_TUN=m
736# PHY device support 766# PHY device support
737# 767#
738CONFIG_PHYLIB=m 768CONFIG_PHYLIB=m
739CONFIG_PHYCONTROL=y
740 769
741# 770#
742# MII PHY device drivers 771# MII PHY device drivers
@@ -754,6 +783,7 @@ CONFIG_NET_ETHERNET=y
754CONFIG_MII=y 783CONFIG_MII=y
755# CONFIG_HAPPYMEAL is not set 784# CONFIG_HAPPYMEAL is not set
756# CONFIG_SUNGEM is not set 785# CONFIG_SUNGEM is not set
786# CONFIG_CASSINI is not set
757# CONFIG_NET_VENDOR_3COM is not set 787# CONFIG_NET_VENDOR_3COM is not set
758 788
759# 789#
@@ -933,6 +963,7 @@ CONFIG_LEGACY_PTY_COUNT=256
933# TPM devices 963# TPM devices
934# 964#
935# CONFIG_TCG_TPM is not set 965# CONFIG_TCG_TPM is not set
966# CONFIG_TELCLOCK is not set
936 967
937# 968#
938# I2C support 969# I2C support
@@ -992,6 +1023,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
992# CONFIG_USB is not set 1023# CONFIG_USB is not set
993 1024
994# 1025#
1026# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1027#
1028
1029#
995# USB Gadget Support 1030# USB Gadget Support
996# 1031#
997# CONFIG_USB_GADGET is not set 1032# CONFIG_USB_GADGET is not set
@@ -1037,7 +1072,7 @@ CONFIG_JFS_SECURITY=y
1037CONFIG_FS_POSIX_ACL=y 1072CONFIG_FS_POSIX_ACL=y
1038CONFIG_XFS_FS=m 1073CONFIG_XFS_FS=m
1039CONFIG_XFS_EXPORT=y 1074CONFIG_XFS_EXPORT=y
1040CONFIG_XFS_QUOTA=m 1075CONFIG_XFS_QUOTA=y
1041CONFIG_XFS_SECURITY=y 1076CONFIG_XFS_SECURITY=y
1042CONFIG_XFS_POSIX_ACL=y 1077CONFIG_XFS_POSIX_ACL=y
1043# CONFIG_XFS_RT is not set 1078# CONFIG_XFS_RT is not set
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index 25e8a08e68be..ea4b75604c23 100644
--- a/arch/mips/configs/bigsur_defconfig
+++ b/arch/mips/configs/bigsur_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:17 2005 4# Mon Nov 7 23:04:36 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -61,6 +61,23 @@ CONFIG_KMOD=y
61CONFIG_STOP_MACHINE=y 61CONFIG_STOP_MACHINE=y
62 62
63# 63#
64# Block layer
65#
66
67#
68# IO Schedulers
69#
70CONFIG_IOSCHED_NOOP=y
71CONFIG_IOSCHED_AS=y
72CONFIG_IOSCHED_DEADLINE=y
73CONFIG_IOSCHED_CFQ=y
74CONFIG_DEFAULT_AS=y
75# CONFIG_DEFAULT_DEADLINE is not set
76# CONFIG_DEFAULT_CFQ is not set
77# CONFIG_DEFAULT_NOOP is not set
78CONFIG_DEFAULT_IOSCHED="anticipatory"
79
80#
64# Machine selection 81# Machine selection
65# 82#
66# CONFIG_MIPS_MTX1 is not set 83# CONFIG_MIPS_MTX1 is not set
@@ -127,8 +144,8 @@ CONFIG_SIBYTE_SB1xxx_SOC=y
127# CONFIG_CPU_SB1_PASS_2_112x is not set 144# CONFIG_CPU_SB1_PASS_2_112x is not set
128# CONFIG_CPU_SB1_PASS_3 is not set 145# CONFIG_CPU_SB1_PASS_3 is not set
129# CONFIG_SIMULATION is not set 146# CONFIG_SIMULATION is not set
130# CONFIG_CONFIG_SB1_CEX_ALWAYS_FATAL is not set 147# CONFIG_SB1_CEX_ALWAYS_FATAL is not set
131# CONFIG_CONFIG_SB1_CERR_STALL is not set 148# CONFIG_SB1_CERR_STALL is not set
132CONFIG_SIBYTE_CFE=y 149CONFIG_SIBYTE_CFE=y
133# CONFIG_SIBYTE_CFE_CONSOLE is not set 150# CONFIG_SIBYTE_CFE_CONSOLE is not set
134# CONFIG_SIBYTE_BUS_WATCHER is not set 151# CONFIG_SIBYTE_BUS_WATCHER is not set
@@ -198,6 +215,7 @@ CONFIG_FLATMEM_MANUAL=y
198CONFIG_FLATMEM=y 215CONFIG_FLATMEM=y
199CONFIG_FLAT_NODE_MEM_MAP=y 216CONFIG_FLAT_NODE_MEM_MAP=y
200# CONFIG_SPARSEMEM_STATIC is not set 217# CONFIG_SPARSEMEM_STATIC is not set
218CONFIG_SPLIT_PTLOCK_CPUS=4
201CONFIG_SMP=y 219CONFIG_SMP=y
202CONFIG_NR_CPUS=4 220CONFIG_NR_CPUS=4
203CONFIG_PREEMPT_NONE=y 221CONFIG_PREEMPT_NONE=y
@@ -295,6 +313,10 @@ CONFIG_TCP_CONG_BIC=y
295# CONFIG_NET_DIVERT is not set 313# CONFIG_NET_DIVERT is not set
296# CONFIG_ECONET is not set 314# CONFIG_ECONET is not set
297# CONFIG_WAN_ROUTER is not set 315# CONFIG_WAN_ROUTER is not set
316
317#
318# QoS and/or fair queueing
319#
298# CONFIG_NET_SCHED is not set 320# CONFIG_NET_SCHED is not set
299# CONFIG_NET_CLS_ROUTE is not set 321# CONFIG_NET_CLS_ROUTE is not set
300 322
@@ -353,14 +375,6 @@ CONFIG_BLK_DEV_NBD=m
353# CONFIG_BLK_DEV_RAM is not set 375# CONFIG_BLK_DEV_RAM is not set
354CONFIG_BLK_DEV_RAM_COUNT=16 376CONFIG_BLK_DEV_RAM_COUNT=16
355# CONFIG_CDROM_PKTCDVD is not set 377# CONFIG_CDROM_PKTCDVD is not set
356
357#
358# IO Schedulers
359#
360CONFIG_IOSCHED_NOOP=y
361CONFIG_IOSCHED_AS=y
362CONFIG_IOSCHED_DEADLINE=y
363CONFIG_IOSCHED_CFQ=y
364# CONFIG_ATA_OVER_ETH is not set 378# CONFIG_ATA_OVER_ETH is not set
365 379
366# 380#
@@ -443,6 +457,7 @@ CONFIG_NET_ETHERNET=y
443CONFIG_MII=y 457CONFIG_MII=y
444# CONFIG_HAPPYMEAL is not set 458# CONFIG_HAPPYMEAL is not set
445# CONFIG_SUNGEM is not set 459# CONFIG_SUNGEM is not set
460# CONFIG_CASSINI is not set
446# CONFIG_NET_VENDOR_3COM is not set 461# CONFIG_NET_VENDOR_3COM is not set
447 462
448# 463#
@@ -582,6 +597,7 @@ CONFIG_GEN_RTC=y
582# TPM devices 597# TPM devices
583# 598#
584# CONFIG_TCG_TPM is not set 599# CONFIG_TCG_TPM is not set
600# CONFIG_TELCLOCK is not set
585 601
586# 602#
587# I2C support 603# I2C support
@@ -634,6 +650,7 @@ CONFIG_SENSORS_PCA9539=y
634CONFIG_SENSORS_PCF8591=y 650CONFIG_SENSORS_PCF8591=y
635CONFIG_SENSORS_RTC8564=y 651CONFIG_SENSORS_RTC8564=y
636CONFIG_SENSORS_MAX6875=y 652CONFIG_SENSORS_MAX6875=y
653# CONFIG_RTC_X1205_I2C is not set
637CONFIG_I2C_DEBUG_CORE=y 654CONFIG_I2C_DEBUG_CORE=y
638CONFIG_I2C_DEBUG_ALGO=y 655CONFIG_I2C_DEBUG_ALGO=y
639CONFIG_I2C_DEBUG_BUS=y 656CONFIG_I2C_DEBUG_BUS=y
@@ -686,6 +703,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
686# CONFIG_USB is not set 703# CONFIG_USB is not set
687 704
688# 705#
706# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
707#
708
709#
689# USB Gadget Support 710# USB Gadget Support
690# 711#
691# CONFIG_USB_GADGET is not set 712# CONFIG_USB_GADGET is not set
@@ -823,6 +844,8 @@ CONFIG_DETECT_SOFTLOCKUP=y
823# CONFIG_DEBUG_KOBJECT is not set 844# CONFIG_DEBUG_KOBJECT is not set
824# CONFIG_DEBUG_INFO is not set 845# CONFIG_DEBUG_INFO is not set
825# CONFIG_DEBUG_FS is not set 846# CONFIG_DEBUG_FS is not set
847# CONFIG_DEBUG_VM is not set
848# CONFIG_RCU_TORTURE_TEST is not set
826CONFIG_CROSSCOMPILE=y 849CONFIG_CROSSCOMPILE=y
827CONFIG_CMDLINE="" 850CONFIG_CMDLINE=""
828# CONFIG_DEBUG_STACK_USAGE is not set 851# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig
index bfbaa08c47cb..a86cc9d9bdae 100644
--- a/arch/mips/configs/capcella_defconfig
+++ b/arch/mips/configs/capcella_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:20 2005 4# Mon Nov 7 23:04:39 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -182,6 +200,7 @@ CONFIG_FLATMEM_MANUAL=y
182CONFIG_FLATMEM=y 200CONFIG_FLATMEM=y
183CONFIG_FLAT_NODE_MEM_MAP=y 201CONFIG_FLAT_NODE_MEM_MAP=y
184# CONFIG_SPARSEMEM_STATIC is not set 202# CONFIG_SPARSEMEM_STATIC is not set
203CONFIG_SPLIT_PTLOCK_CPUS=4
185CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -270,6 +289,10 @@ CONFIG_TCP_CONG_BIC=y
270# CONFIG_NET_DIVERT is not set 289# CONFIG_NET_DIVERT is not set
271# CONFIG_ECONET is not set 290# CONFIG_ECONET is not set
272# CONFIG_WAN_ROUTER is not set 291# CONFIG_WAN_ROUTER is not set
292
293#
294# QoS and/or fair queueing
295#
273# CONFIG_NET_SCHED is not set 296# CONFIG_NET_SCHED is not set
274# CONFIG_NET_CLS_ROUTE is not set 297# CONFIG_NET_CLS_ROUTE is not set
275 298
@@ -329,16 +352,7 @@ CONFIG_CONNECTOR=m
329# CONFIG_BLK_DEV_SX8 is not set 352# CONFIG_BLK_DEV_SX8 is not set
330# CONFIG_BLK_DEV_RAM is not set 353# CONFIG_BLK_DEV_RAM is not set
331CONFIG_BLK_DEV_RAM_COUNT=16 354CONFIG_BLK_DEV_RAM_COUNT=16
332# CONFIG_LBD is not set
333# CONFIG_CDROM_PKTCDVD is not set 355# CONFIG_CDROM_PKTCDVD is not set
334
335#
336# IO Schedulers
337#
338CONFIG_IOSCHED_NOOP=y
339CONFIG_IOSCHED_AS=y
340CONFIG_IOSCHED_DEADLINE=y
341CONFIG_IOSCHED_CFQ=y
342CONFIG_ATA_OVER_ETH=m 356CONFIG_ATA_OVER_ETH=m
343 357
344# 358#
@@ -412,7 +426,6 @@ CONFIG_NETDEVICES=y
412# PHY device support 426# PHY device support
413# 427#
414CONFIG_PHYLIB=m 428CONFIG_PHYLIB=m
415CONFIG_PHYCONTROL=y
416 429
417# 430#
418# MII PHY device drivers 431# MII PHY device drivers
@@ -430,6 +443,7 @@ CONFIG_NET_ETHERNET=y
430CONFIG_MII=y 443CONFIG_MII=y
431# CONFIG_HAPPYMEAL is not set 444# CONFIG_HAPPYMEAL is not set
432# CONFIG_SUNGEM is not set 445# CONFIG_SUNGEM is not set
446# CONFIG_CASSINI is not set
433# CONFIG_NET_VENDOR_3COM is not set 447# CONFIG_NET_VENDOR_3COM is not set
434 448
435# 449#
@@ -586,6 +600,7 @@ CONFIG_LEGACY_PTY_COUNT=256
586# CONFIG_WATCHDOG is not set 600# CONFIG_WATCHDOG is not set
587# CONFIG_RTC is not set 601# CONFIG_RTC is not set
588# CONFIG_GEN_RTC is not set 602# CONFIG_GEN_RTC is not set
603# CONFIG_RTC_VR41XX is not set
589# CONFIG_DTLK is not set 604# CONFIG_DTLK is not set
590# CONFIG_R3964 is not set 605# CONFIG_R3964 is not set
591# CONFIG_APPLICOM is not set 606# CONFIG_APPLICOM is not set
@@ -601,6 +616,7 @@ CONFIG_GPIO_VR41XX=y
601# TPM devices 616# TPM devices
602# 617#
603# CONFIG_TCG_TPM is not set 618# CONFIG_TCG_TPM is not set
619# CONFIG_TELCLOCK is not set
604 620
605# 621#
606# I2C support 622# I2C support
@@ -660,6 +676,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
660# CONFIG_USB is not set 676# CONFIG_USB is not set
661 677
662# 678#
679# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
680#
681
682#
663# USB Gadget Support 683# USB Gadget Support
664# 684#
665# CONFIG_USB_GADGET is not set 685# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index 4b4d1ddb3d42..3558c79b0eb7 100644
--- a/arch/mips/configs/cobalt_defconfig
+++ b/arch/mips/configs/cobalt_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:23 2005 4# Mon Nov 7 23:04:42 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,24 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56# CONFIG_LBD is not set
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
54# Machine selection 72# Machine selection
55# 73#
56# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -172,6 +190,7 @@ CONFIG_FLATMEM_MANUAL=y
172CONFIG_FLATMEM=y 190CONFIG_FLATMEM=y
173CONFIG_FLAT_NODE_MEM_MAP=y 191CONFIG_FLAT_NODE_MEM_MAP=y
174# CONFIG_SPARSEMEM_STATIC is not set 192# CONFIG_SPARSEMEM_STATIC is not set
193CONFIG_SPLIT_PTLOCK_CPUS=4
175CONFIG_PREEMPT_NONE=y 194CONFIG_PREEMPT_NONE=y
176# CONFIG_PREEMPT_VOLUNTARY is not set 195# CONFIG_PREEMPT_VOLUNTARY is not set
177# CONFIG_PREEMPT is not set 196# CONFIG_PREEMPT is not set
@@ -256,6 +275,10 @@ CONFIG_TCP_CONG_BIC=y
256# CONFIG_NET_DIVERT is not set 275# CONFIG_NET_DIVERT is not set
257# CONFIG_ECONET is not set 276# CONFIG_ECONET is not set
258# CONFIG_WAN_ROUTER is not set 277# CONFIG_WAN_ROUTER is not set
278
279#
280# QoS and/or fair queueing
281#
259# CONFIG_NET_SCHED is not set 282# CONFIG_NET_SCHED is not set
260# CONFIG_NET_CLS_ROUTE is not set 283# CONFIG_NET_CLS_ROUTE is not set
261 284
@@ -287,6 +310,7 @@ CONFIG_FW_LOADER=y
287# Connector - unified userspace <-> kernelspace linker 310# Connector - unified userspace <-> kernelspace linker
288# 311#
289CONFIG_CONNECTOR=y 312CONFIG_CONNECTOR=y
313CONFIG_PROC_EVENTS=y
290 314
291# 315#
292# Memory Technology Devices (MTD) 316# Memory Technology Devices (MTD)
@@ -316,18 +340,9 @@ CONFIG_BLK_DEV_LOOP=y
316# CONFIG_BLK_DEV_SX8 is not set 340# CONFIG_BLK_DEV_SX8 is not set
317# CONFIG_BLK_DEV_RAM is not set 341# CONFIG_BLK_DEV_RAM is not set
318CONFIG_BLK_DEV_RAM_COUNT=16 342CONFIG_BLK_DEV_RAM_COUNT=16
319# CONFIG_LBD is not set
320CONFIG_CDROM_PKTCDVD=y 343CONFIG_CDROM_PKTCDVD=y
321CONFIG_CDROM_PKTCDVD_BUFFERS=8 344CONFIG_CDROM_PKTCDVD_BUFFERS=8
322# CONFIG_CDROM_PKTCDVD_WCACHE is not set 345# CONFIG_CDROM_PKTCDVD_WCACHE is not set
323
324#
325# IO Schedulers
326#
327CONFIG_IOSCHED_NOOP=y
328CONFIG_IOSCHED_AS=y
329CONFIG_IOSCHED_DEADLINE=y
330CONFIG_IOSCHED_CFQ=y
331CONFIG_ATA_OVER_ETH=y 346CONFIG_ATA_OVER_ETH=y
332 347
333# 348#
@@ -401,7 +416,6 @@ CONFIG_NETDEVICES=y
401# PHY device support 416# PHY device support
402# 417#
403CONFIG_PHYLIB=y 418CONFIG_PHYLIB=y
404CONFIG_PHYCONTROL=y
405 419
406# 420#
407# MII PHY device drivers 421# MII PHY device drivers
@@ -419,6 +433,7 @@ CONFIG_NET_ETHERNET=y
419# CONFIG_MII is not set 433# CONFIG_MII is not set
420# CONFIG_HAPPYMEAL is not set 434# CONFIG_HAPPYMEAL is not set
421# CONFIG_SUNGEM is not set 435# CONFIG_SUNGEM is not set
436# CONFIG_CASSINI is not set
422# CONFIG_NET_VENDOR_3COM is not set 437# CONFIG_NET_VENDOR_3COM is not set
423 438
424# 439#
@@ -574,6 +589,7 @@ CONFIG_COBALT_LCD=y
574# TPM devices 589# TPM devices
575# 590#
576# CONFIG_TCG_TPM is not set 591# CONFIG_TCG_TPM is not set
592# CONFIG_TELCLOCK is not set
577 593
578# 594#
579# I2C support 595# I2C support
@@ -633,6 +649,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
633# CONFIG_USB is not set 649# CONFIG_USB is not set
634 650
635# 651#
652# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
653#
654
655#
636# USB Gadget Support 656# USB Gadget Support
637# 657#
638# CONFIG_USB_GADGET is not set 658# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 6501144ec612..3b103fec7b86 100644
--- a/arch/mips/configs/db1000_defconfig
+++ b/arch/mips/configs/db1000_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:25:26 2005 4# Tue Nov 15 11:11:04 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -178,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
181CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -201,7 +220,6 @@ CONFIG_PCMCIA_IOCTL=y
201# 220#
202# PC-card bridges 221# PC-card bridges
203# 222#
204# CONFIG_TCIC is not set
205# CONFIG_PCMCIA_AU1X00 is not set 223# CONFIG_PCMCIA_AU1X00 is not set
206 224
207# 225#
@@ -259,15 +277,19 @@ CONFIG_TCP_CONG_BIC=y
259# CONFIG_IPV6 is not set 277# CONFIG_IPV6 is not set
260CONFIG_NETFILTER=y 278CONFIG_NETFILTER=y
261# CONFIG_NETFILTER_DEBUG is not set 279# CONFIG_NETFILTER_DEBUG is not set
280
281#
282# Core Netfilter Configuration
283#
262CONFIG_NETFILTER_NETLINK=m 284CONFIG_NETFILTER_NETLINK=m
263CONFIG_NETFILTER_NETLINK_QUEUE=m 285CONFIG_NETFILTER_NETLINK_QUEUE=m
264CONFIG_NETFILTER_NETLINK_LOG=m 286CONFIG_NETFILTER_NETLINK_LOG=m
287# CONFIG_NF_CONNTRACK is not set
265 288
266# 289#
267# IP: Netfilter Configuration 290# IP: Netfilter Configuration
268# 291#
269# CONFIG_IP_NF_CONNTRACK is not set 292# CONFIG_IP_NF_CONNTRACK is not set
270CONFIG_IP_NF_PPTP=m
271# CONFIG_IP_NF_QUEUE is not set 293# CONFIG_IP_NF_QUEUE is not set
272# CONFIG_IP_NF_IPTABLES is not set 294# CONFIG_IP_NF_IPTABLES is not set
273# CONFIG_IP_NF_ARPTABLES is not set 295# CONFIG_IP_NF_ARPTABLES is not set
@@ -293,6 +315,10 @@ CONFIG_IP_NF_PPTP=m
293# CONFIG_NET_DIVERT is not set 315# CONFIG_NET_DIVERT is not set
294# CONFIG_ECONET is not set 316# CONFIG_ECONET is not set
295# CONFIG_WAN_ROUTER is not set 317# CONFIG_WAN_ROUTER is not set
318
319#
320# QoS and/or fair queueing
321#
296# CONFIG_NET_SCHED is not set 322# CONFIG_NET_SCHED is not set
297# CONFIG_NET_CLS_ROUTE is not set 323# CONFIG_NET_CLS_ROUTE is not set
298 324
@@ -343,6 +369,7 @@ CONFIG_MTD_BLOCK=y
343# CONFIG_FTL is not set 369# CONFIG_FTL is not set
344# CONFIG_NFTL is not set 370# CONFIG_NFTL is not set
345# CONFIG_INFTL is not set 371# CONFIG_INFTL is not set
372# CONFIG_RFD_FTL is not set
346 373
347# 374#
348# RAM/ROM/Flash chip drivers 375# RAM/ROM/Flash chip drivers
@@ -400,6 +427,11 @@ CONFIG_MTD_ALCHEMY=y
400# CONFIG_MTD_NAND is not set 427# CONFIG_MTD_NAND is not set
401 428
402# 429#
430# OneNAND Flash Device Drivers
431#
432# CONFIG_MTD_ONENAND is not set
433
434#
403# Parallel port support 435# Parallel port support
404# 436#
405# CONFIG_PARPORT is not set 437# CONFIG_PARPORT is not set
@@ -417,18 +449,9 @@ CONFIG_BLK_DEV_LOOP=y
417# CONFIG_BLK_DEV_NBD is not set 449# CONFIG_BLK_DEV_NBD is not set
418# CONFIG_BLK_DEV_RAM is not set 450# CONFIG_BLK_DEV_RAM is not set
419CONFIG_BLK_DEV_RAM_COUNT=16 451CONFIG_BLK_DEV_RAM_COUNT=16
420# CONFIG_LBD is not set
421CONFIG_CDROM_PKTCDVD=m 452CONFIG_CDROM_PKTCDVD=m
422CONFIG_CDROM_PKTCDVD_BUFFERS=8 453CONFIG_CDROM_PKTCDVD_BUFFERS=8
423# CONFIG_CDROM_PKTCDVD_WCACHE is not set 454# CONFIG_CDROM_PKTCDVD_WCACHE is not set
424
425#
426# IO Schedulers
427#
428CONFIG_IOSCHED_NOOP=y
429CONFIG_IOSCHED_AS=y
430CONFIG_IOSCHED_DEADLINE=y
431CONFIG_IOSCHED_CFQ=y
432CONFIG_ATA_OVER_ETH=m 455CONFIG_ATA_OVER_ETH=m
433 456
434# 457#
@@ -473,7 +496,6 @@ CONFIG_NETDEVICES=y
473# PHY device support 496# PHY device support
474# 497#
475CONFIG_PHYLIB=m 498CONFIG_PHYLIB=m
476CONFIG_PHYCONTROL=y
477 499
478# 500#
479# MII PHY device drivers 501# MII PHY device drivers
@@ -490,6 +512,7 @@ CONFIG_CICADA_PHY=m
490CONFIG_NET_ETHERNET=y 512CONFIG_NET_ETHERNET=y
491CONFIG_MII=m 513CONFIG_MII=m
492CONFIG_MIPS_AU1X00_ENET=y 514CONFIG_MIPS_AU1X00_ENET=y
515# CONFIG_SMC91X is not set
493 516
494# 517#
495# Ethernet (1000 Mbit) 518# Ethernet (1000 Mbit)
@@ -532,6 +555,7 @@ CONFIG_PPP_ASYNC=m
532# CONFIG_PPP_SYNC_TTY is not set 555# CONFIG_PPP_SYNC_TTY is not set
533CONFIG_PPP_DEFLATE=m 556CONFIG_PPP_DEFLATE=m
534# CONFIG_PPP_BSDCOMP is not set 557# CONFIG_PPP_BSDCOMP is not set
558CONFIG_PPP_MPPE=m
535CONFIG_PPPOE=m 559CONFIG_PPPOE=m
536# CONFIG_SLIP is not set 560# CONFIG_SLIP is not set
537# CONFIG_SHAPER is not set 561# CONFIG_SHAPER is not set
@@ -598,13 +622,17 @@ CONFIG_HW_CONSOLE=y
598# 622#
599# Serial drivers 623# Serial drivers
600# 624#
601# CONFIG_SERIAL_8250 is not set 625CONFIG_SERIAL_8250=y
626CONFIG_SERIAL_8250_CONSOLE=y
627CONFIG_SERIAL_8250_CS=m
628CONFIG_SERIAL_8250_NR_UARTS=4
629# CONFIG_SERIAL_8250_EXTENDED is not set
630CONFIG_SERIAL_8250_AU1X00=y
602 631
603# 632#
604# Non-8250 serial port support 633# Non-8250 serial port support
605# 634#
606CONFIG_SERIAL_AU1X00=y 635# CONFIG_SERIAL_AU1X00 is not set
607CONFIG_SERIAL_AU1X00_CONSOLE=y
608CONFIG_SERIAL_CORE=y 636CONFIG_SERIAL_CORE=y
609CONFIG_SERIAL_CORE_CONSOLE=y 637CONFIG_SERIAL_CORE_CONSOLE=y
610CONFIG_UNIX98_PTYS=y 638CONFIG_UNIX98_PTYS=y
@@ -633,11 +661,14 @@ CONFIG_LEGACY_PTY_COUNT=256
633# PCMCIA character devices 661# PCMCIA character devices
634# 662#
635CONFIG_SYNCLINK_CS=m 663CONFIG_SYNCLINK_CS=m
664# CONFIG_CARDMAN_4000 is not set
665# CONFIG_CARDMAN_4040 is not set
636# CONFIG_RAW_DRIVER is not set 666# CONFIG_RAW_DRIVER is not set
637 667
638# 668#
639# TPM devices 669# TPM devices
640# 670#
671# CONFIG_TELCLOCK is not set
641 672
642# 673#
643# I2C support 674# I2C support
@@ -697,6 +728,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
697# CONFIG_USB is not set 728# CONFIG_USB is not set
698 729
699# 730#
731# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
732#
733
734#
700# USB Gadget Support 735# USB Gadget Support
701# 736#
702# CONFIG_USB_GADGET is not set 737# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index b8cd2cd923dd..79cdd940c6a8 100644
--- a/arch/mips/configs/db1100_defconfig
+++ b/arch/mips/configs/db1100_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:25:29 2005 4# Tue Nov 15 11:11:07 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -178,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
181CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -247,15 +266,19 @@ CONFIG_TCP_CONG_BIC=y
247# CONFIG_IPV6 is not set 266# CONFIG_IPV6 is not set
248CONFIG_NETFILTER=y 267CONFIG_NETFILTER=y
249# CONFIG_NETFILTER_DEBUG is not set 268# CONFIG_NETFILTER_DEBUG is not set
269
270#
271# Core Netfilter Configuration
272#
250CONFIG_NETFILTER_NETLINK=m 273CONFIG_NETFILTER_NETLINK=m
251CONFIG_NETFILTER_NETLINK_QUEUE=m 274CONFIG_NETFILTER_NETLINK_QUEUE=m
252CONFIG_NETFILTER_NETLINK_LOG=m 275CONFIG_NETFILTER_NETLINK_LOG=m
276# CONFIG_NF_CONNTRACK is not set
253 277
254# 278#
255# IP: Netfilter Configuration 279# IP: Netfilter Configuration
256# 280#
257# CONFIG_IP_NF_CONNTRACK is not set 281# CONFIG_IP_NF_CONNTRACK is not set
258CONFIG_IP_NF_PPTP=m
259# CONFIG_IP_NF_QUEUE is not set 282# CONFIG_IP_NF_QUEUE is not set
260# CONFIG_IP_NF_IPTABLES is not set 283# CONFIG_IP_NF_IPTABLES is not set
261# CONFIG_IP_NF_ARPTABLES is not set 284# CONFIG_IP_NF_ARPTABLES is not set
@@ -281,6 +304,10 @@ CONFIG_IP_NF_PPTP=m
281# CONFIG_NET_DIVERT is not set 304# CONFIG_NET_DIVERT is not set
282# CONFIG_ECONET is not set 305# CONFIG_ECONET is not set
283# CONFIG_WAN_ROUTER is not set 306# CONFIG_WAN_ROUTER is not set
307
308#
309# QoS and/or fair queueing
310#
284# CONFIG_NET_SCHED is not set 311# CONFIG_NET_SCHED is not set
285# CONFIG_NET_CLS_ROUTE is not set 312# CONFIG_NET_CLS_ROUTE is not set
286 313
@@ -331,6 +358,7 @@ CONFIG_MTD_BLOCK=y
331# CONFIG_FTL is not set 358# CONFIG_FTL is not set
332# CONFIG_NFTL is not set 359# CONFIG_NFTL is not set
333# CONFIG_INFTL is not set 360# CONFIG_INFTL is not set
361# CONFIG_RFD_FTL is not set
334 362
335# 363#
336# RAM/ROM/Flash chip drivers 364# RAM/ROM/Flash chip drivers
@@ -388,6 +416,11 @@ CONFIG_MTD_ALCHEMY=y
388# CONFIG_MTD_NAND is not set 416# CONFIG_MTD_NAND is not set
389 417
390# 418#
419# OneNAND Flash Device Drivers
420#
421# CONFIG_MTD_ONENAND is not set
422
423#
391# Parallel port support 424# Parallel port support
392# 425#
393# CONFIG_PARPORT is not set 426# CONFIG_PARPORT is not set
@@ -405,18 +438,9 @@ CONFIG_BLK_DEV_LOOP=y
405# CONFIG_BLK_DEV_NBD is not set 438# CONFIG_BLK_DEV_NBD is not set
406# CONFIG_BLK_DEV_RAM is not set 439# CONFIG_BLK_DEV_RAM is not set
407CONFIG_BLK_DEV_RAM_COUNT=16 440CONFIG_BLK_DEV_RAM_COUNT=16
408# CONFIG_LBD is not set
409CONFIG_CDROM_PKTCDVD=m 441CONFIG_CDROM_PKTCDVD=m
410CONFIG_CDROM_PKTCDVD_BUFFERS=8 442CONFIG_CDROM_PKTCDVD_BUFFERS=8
411# CONFIG_CDROM_PKTCDVD_WCACHE is not set 443# CONFIG_CDROM_PKTCDVD_WCACHE is not set
412
413#
414# IO Schedulers
415#
416CONFIG_IOSCHED_NOOP=y
417CONFIG_IOSCHED_AS=y
418CONFIG_IOSCHED_DEADLINE=y
419CONFIG_IOSCHED_CFQ=y
420CONFIG_ATA_OVER_ETH=m 444CONFIG_ATA_OVER_ETH=m
421 445
422# 446#
@@ -461,7 +485,6 @@ CONFIG_NETDEVICES=y
461# PHY device support 485# PHY device support
462# 486#
463CONFIG_PHYLIB=m 487CONFIG_PHYLIB=m
464CONFIG_PHYCONTROL=y
465 488
466# 489#
467# MII PHY device drivers 490# MII PHY device drivers
@@ -478,6 +501,7 @@ CONFIG_CICADA_PHY=m
478CONFIG_NET_ETHERNET=y 501CONFIG_NET_ETHERNET=y
479CONFIG_MII=m 502CONFIG_MII=m
480CONFIG_MIPS_AU1X00_ENET=y 503CONFIG_MIPS_AU1X00_ENET=y
504# CONFIG_SMC91X is not set
481 505
482# 506#
483# Ethernet (1000 Mbit) 507# Ethernet (1000 Mbit)
@@ -507,6 +531,7 @@ CONFIG_PPP_ASYNC=m
507# CONFIG_PPP_SYNC_TTY is not set 531# CONFIG_PPP_SYNC_TTY is not set
508CONFIG_PPP_DEFLATE=m 532CONFIG_PPP_DEFLATE=m
509# CONFIG_PPP_BSDCOMP is not set 533# CONFIG_PPP_BSDCOMP is not set
534CONFIG_PPP_MPPE=m
510CONFIG_PPPOE=m 535CONFIG_PPPOE=m
511# CONFIG_SLIP is not set 536# CONFIG_SLIP is not set
512# CONFIG_SHAPER is not set 537# CONFIG_SHAPER is not set
@@ -573,13 +598,16 @@ CONFIG_HW_CONSOLE=y
573# 598#
574# Serial drivers 599# Serial drivers
575# 600#
576# CONFIG_SERIAL_8250 is not set 601CONFIG_SERIAL_8250=y
602CONFIG_SERIAL_8250_CONSOLE=y
603CONFIG_SERIAL_8250_NR_UARTS=4
604# CONFIG_SERIAL_8250_EXTENDED is not set
605CONFIG_SERIAL_8250_AU1X00=y
577 606
578# 607#
579# Non-8250 serial port support 608# Non-8250 serial port support
580# 609#
581CONFIG_SERIAL_AU1X00=y 610# CONFIG_SERIAL_AU1X00 is not set
582CONFIG_SERIAL_AU1X00_CONSOLE=y
583CONFIG_SERIAL_CORE=y 611CONFIG_SERIAL_CORE=y
584CONFIG_SERIAL_CORE_CONSOLE=y 612CONFIG_SERIAL_CORE_CONSOLE=y
585CONFIG_UNIX98_PTYS=y 613CONFIG_UNIX98_PTYS=y
@@ -608,6 +636,7 @@ CONFIG_LEGACY_PTY_COUNT=256
608# 636#
609# TPM devices 637# TPM devices
610# 638#
639# CONFIG_TELCLOCK is not set
611 640
612# 641#
613# I2C support 642# I2C support
@@ -650,12 +679,11 @@ CONFIG_FB=y
650CONFIG_FB_CFB_FILLRECT=y 679CONFIG_FB_CFB_FILLRECT=y
651CONFIG_FB_CFB_COPYAREA=y 680CONFIG_FB_CFB_COPYAREA=y
652CONFIG_FB_CFB_IMAGEBLIT=y 681CONFIG_FB_CFB_IMAGEBLIT=y
653CONFIG_FB_SOFT_CURSOR=y
654# CONFIG_FB_MACMODES is not set 682# CONFIG_FB_MACMODES is not set
655# CONFIG_FB_MODE_HELPERS is not set 683# CONFIG_FB_MODE_HELPERS is not set
656# CONFIG_FB_TILEBLITTING is not set 684# CONFIG_FB_TILEBLITTING is not set
657CONFIG_FB_AU1100=y
658# CONFIG_FB_S1D13XXX is not set 685# CONFIG_FB_S1D13XXX is not set
686CONFIG_FB_AU1100=y
659# CONFIG_FB_VIRTUAL is not set 687# CONFIG_FB_VIRTUAL is not set
660 688
661# 689#
@@ -664,6 +692,7 @@ CONFIG_FB_AU1100=y
664# CONFIG_VGA_CONSOLE is not set 692# CONFIG_VGA_CONSOLE is not set
665CONFIG_DUMMY_CONSOLE=y 693CONFIG_DUMMY_CONSOLE=y
666CONFIG_FRAMEBUFFER_CONSOLE=y 694CONFIG_FRAMEBUFFER_CONSOLE=y
695# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
667CONFIG_FONTS=y 696CONFIG_FONTS=y
668CONFIG_FONT_8x8=y 697CONFIG_FONT_8x8=y
669CONFIG_FONT_8x16=y 698CONFIG_FONT_8x16=y
@@ -698,6 +727,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
698# CONFIG_USB is not set 727# CONFIG_USB is not set
699 728
700# 729#
730# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
731#
732
733#
701# USB Gadget Support 734# USB Gadget Support
702# 735#
703# CONFIG_USB_GADGET is not set 736# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index 530b6c2d99f6..b6bad69398e1 100644
--- a/arch/mips/configs/db1200_defconfig
+++ b/arch/mips/configs/db1200_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:25:32 2005 4# Tue Nov 15 11:11:10 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +197,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 197CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
200CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -200,7 +219,6 @@ CONFIG_PCMCIA_IOCTL=y
200# 219#
201# PC-card bridges 220# PC-card bridges
202# 221#
203# CONFIG_TCIC is not set
204CONFIG_PCMCIA_AU1X00=m 222CONFIG_PCMCIA_AU1X00=m
205 223
206# 224#
@@ -255,13 +273,17 @@ CONFIG_TCP_CONG_BIC=y
255# CONFIG_IPV6 is not set 273# CONFIG_IPV6 is not set
256CONFIG_NETFILTER=y 274CONFIG_NETFILTER=y
257# CONFIG_NETFILTER_DEBUG is not set 275# CONFIG_NETFILTER_DEBUG is not set
276
277#
278# Core Netfilter Configuration
279#
258# CONFIG_NETFILTER_NETLINK is not set 280# CONFIG_NETFILTER_NETLINK is not set
281# CONFIG_NF_CONNTRACK is not set
259 282
260# 283#
261# IP: Netfilter Configuration 284# IP: Netfilter Configuration
262# 285#
263# CONFIG_IP_NF_CONNTRACK is not set 286# CONFIG_IP_NF_CONNTRACK is not set
264CONFIG_IP_NF_PPTP=m
265# CONFIG_IP_NF_QUEUE is not set 287# CONFIG_IP_NF_QUEUE is not set
266# CONFIG_IP_NF_IPTABLES is not set 288# CONFIG_IP_NF_IPTABLES is not set
267# CONFIG_IP_NF_ARPTABLES is not set 289# CONFIG_IP_NF_ARPTABLES is not set
@@ -287,6 +309,10 @@ CONFIG_IP_NF_PPTP=m
287# CONFIG_NET_DIVERT is not set 309# CONFIG_NET_DIVERT is not set
288# CONFIG_ECONET is not set 310# CONFIG_ECONET is not set
289# CONFIG_WAN_ROUTER is not set 311# CONFIG_WAN_ROUTER is not set
312
313#
314# QoS and/or fair queueing
315#
290# CONFIG_NET_SCHED is not set 316# CONFIG_NET_SCHED is not set
291# CONFIG_NET_CLS_ROUTE is not set 317# CONFIG_NET_CLS_ROUTE is not set
292 318
@@ -333,6 +359,7 @@ CONFIG_MTD_BLOCK=y
333# CONFIG_FTL is not set 359# CONFIG_FTL is not set
334# CONFIG_NFTL is not set 360# CONFIG_NFTL is not set
335# CONFIG_INFTL is not set 361# CONFIG_INFTL is not set
362# CONFIG_RFD_FTL is not set
336 363
337# 364#
338# RAM/ROM/Flash chip drivers 365# RAM/ROM/Flash chip drivers
@@ -395,6 +422,11 @@ CONFIG_MTD_NAND_IDS=y
395# CONFIG_MTD_NAND_NANDSIM is not set 422# CONFIG_MTD_NAND_NANDSIM is not set
396 423
397# 424#
425# OneNAND Flash Device Drivers
426#
427# CONFIG_MTD_ONENAND is not set
428
429#
398# Parallel port support 430# Parallel port support
399# 431#
400# CONFIG_PARPORT is not set 432# CONFIG_PARPORT is not set
@@ -414,16 +446,7 @@ CONFIG_BLK_DEV_RAM=y
414CONFIG_BLK_DEV_RAM_COUNT=16 446CONFIG_BLK_DEV_RAM_COUNT=16
415CONFIG_BLK_DEV_RAM_SIZE=4096 447CONFIG_BLK_DEV_RAM_SIZE=4096
416# CONFIG_BLK_DEV_INITRD is not set 448# CONFIG_BLK_DEV_INITRD is not set
417# CONFIG_LBD is not set
418# CONFIG_CDROM_PKTCDVD is not set 449# CONFIG_CDROM_PKTCDVD is not set
419
420#
421# IO Schedulers
422#
423CONFIG_IOSCHED_NOOP=y
424CONFIG_IOSCHED_AS=y
425CONFIG_IOSCHED_DEADLINE=y
426CONFIG_IOSCHED_CFQ=y
427# CONFIG_ATA_OVER_ETH is not set 450# CONFIG_ATA_OVER_ETH is not set
428 451
429# 452#
@@ -495,6 +518,7 @@ CONFIG_SCSI_MULTI_LUN=y
495# 518#
496# SCSI low-level drivers 519# SCSI low-level drivers
497# 520#
521# CONFIG_ISCSI_TCP is not set
498# CONFIG_SCSI_SATA is not set 522# CONFIG_SCSI_SATA is not set
499# CONFIG_SCSI_DEBUG is not set 523# CONFIG_SCSI_DEBUG is not set
500 524
@@ -545,6 +569,7 @@ CONFIG_NETDEVICES=y
545CONFIG_NET_ETHERNET=y 569CONFIG_NET_ETHERNET=y
546CONFIG_MII=m 570CONFIG_MII=m
547# CONFIG_MIPS_AU1X00_ENET is not set 571# CONFIG_MIPS_AU1X00_ENET is not set
572# CONFIG_SMC91X is not set
548 573
549# 574#
550# Ethernet (1000 Mbit) 575# Ethernet (1000 Mbit)
@@ -638,13 +663,17 @@ CONFIG_HW_CONSOLE=y
638# 663#
639# Serial drivers 664# Serial drivers
640# 665#
641# CONFIG_SERIAL_8250 is not set 666CONFIG_SERIAL_8250=y
667CONFIG_SERIAL_8250_CONSOLE=y
668# CONFIG_SERIAL_8250_CS is not set
669CONFIG_SERIAL_8250_NR_UARTS=4
670# CONFIG_SERIAL_8250_EXTENDED is not set
671CONFIG_SERIAL_8250_AU1X00=y
642 672
643# 673#
644# Non-8250 serial port support 674# Non-8250 serial port support
645# 675#
646CONFIG_SERIAL_AU1X00=y 676# CONFIG_SERIAL_AU1X00 is not set
647CONFIG_SERIAL_AU1X00_CONSOLE=y
648CONFIG_SERIAL_CORE=y 677CONFIG_SERIAL_CORE=y
649CONFIG_SERIAL_CORE_CONSOLE=y 678CONFIG_SERIAL_CORE_CONSOLE=y
650CONFIG_UNIX98_PTYS=y 679CONFIG_UNIX98_PTYS=y
@@ -673,11 +702,14 @@ CONFIG_LEGACY_PTY_COUNT=256
673# PCMCIA character devices 702# PCMCIA character devices
674# 703#
675# CONFIG_SYNCLINK_CS is not set 704# CONFIG_SYNCLINK_CS is not set
705# CONFIG_CARDMAN_4000 is not set
706# CONFIG_CARDMAN_4040 is not set
676# CONFIG_RAW_DRIVER is not set 707# CONFIG_RAW_DRIVER is not set
677 708
678# 709#
679# TPM devices 710# TPM devices
680# 711#
712# CONFIG_TELCLOCK is not set
681 713
682# 714#
683# I2C support 715# I2C support
@@ -720,12 +752,11 @@ CONFIG_FB=y
720CONFIG_FB_CFB_FILLRECT=y 752CONFIG_FB_CFB_FILLRECT=y
721CONFIG_FB_CFB_COPYAREA=y 753CONFIG_FB_CFB_COPYAREA=y
722CONFIG_FB_CFB_IMAGEBLIT=y 754CONFIG_FB_CFB_IMAGEBLIT=y
723CONFIG_FB_SOFT_CURSOR=y
724# CONFIG_FB_MACMODES is not set 755# CONFIG_FB_MACMODES is not set
725# CONFIG_FB_MODE_HELPERS is not set 756# CONFIG_FB_MODE_HELPERS is not set
726# CONFIG_FB_TILEBLITTING is not set 757# CONFIG_FB_TILEBLITTING is not set
727CONFIG_FB_AU1200=y
728# CONFIG_FB_S1D13XXX is not set 758# CONFIG_FB_S1D13XXX is not set
759CONFIG_FB_AU1200=y
729# CONFIG_FB_VIRTUAL is not set 760# CONFIG_FB_VIRTUAL is not set
730 761
731# 762#
@@ -757,6 +788,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
757# CONFIG_USB is not set 788# CONFIG_USB is not set
758 789
759# 790#
791# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
792#
793
794#
760# USB Gadget Support 795# USB Gadget Support
761# 796#
762CONFIG_USB_GADGET=m 797CONFIG_USB_GADGET=m
@@ -862,6 +897,7 @@ CONFIG_RAMFS=y
862CONFIG_JFFS2_FS=y 897CONFIG_JFFS2_FS=y
863CONFIG_JFFS2_FS_DEBUG=0 898CONFIG_JFFS2_FS_DEBUG=0
864CONFIG_JFFS2_FS_WRITEBUFFER=y 899CONFIG_JFFS2_FS_WRITEBUFFER=y
900# CONFIG_JFFS2_SUMMARY is not set
865# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 901# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
866CONFIG_JFFS2_ZLIB=y 902CONFIG_JFFS2_ZLIB=y
867CONFIG_JFFS2_RTIME=y 903CONFIG_JFFS2_RTIME=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index 1c2784dee697..dbaf189fc9c0 100644
--- a/arch/mips/configs/db1500_defconfig
+++ b/arch/mips/configs/db1500_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:25:36 2005 4# Tue Nov 15 11:11:15 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -180,6 +198,7 @@ CONFIG_FLATMEM_MANUAL=y
180CONFIG_FLATMEM=y 198CONFIG_FLATMEM=y
181CONFIG_FLAT_NODE_MEM_MAP=y 199CONFIG_FLAT_NODE_MEM_MAP=y
182# CONFIG_SPARSEMEM_STATIC is not set 200# CONFIG_SPARSEMEM_STATIC is not set
201CONFIG_SPLIT_PTLOCK_CPUS=4
183CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -208,7 +227,6 @@ CONFIG_CARDBUS=y
208# CONFIG_YENTA is not set 227# CONFIG_YENTA is not set
209# CONFIG_PD6729 is not set 228# CONFIG_PD6729 is not set
210# CONFIG_I82092 is not set 229# CONFIG_I82092 is not set
211# CONFIG_TCIC is not set
212CONFIG_PCMCIA_AU1X00=m 230CONFIG_PCMCIA_AU1X00=m
213 231
214# 232#
@@ -267,15 +285,19 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
268CONFIG_NETFILTER=y 286CONFIG_NETFILTER=y
269# CONFIG_NETFILTER_DEBUG is not set 287# CONFIG_NETFILTER_DEBUG is not set
288
289#
290# Core Netfilter Configuration
291#
270CONFIG_NETFILTER_NETLINK=m 292CONFIG_NETFILTER_NETLINK=m
271CONFIG_NETFILTER_NETLINK_QUEUE=m 293CONFIG_NETFILTER_NETLINK_QUEUE=m
272CONFIG_NETFILTER_NETLINK_LOG=m 294CONFIG_NETFILTER_NETLINK_LOG=m
295# CONFIG_NF_CONNTRACK is not set
273 296
274# 297#
275# IP: Netfilter Configuration 298# IP: Netfilter Configuration
276# 299#
277# CONFIG_IP_NF_CONNTRACK is not set 300# CONFIG_IP_NF_CONNTRACK is not set
278CONFIG_IP_NF_PPTP=m
279# CONFIG_IP_NF_QUEUE is not set 301# CONFIG_IP_NF_QUEUE is not set
280# CONFIG_IP_NF_IPTABLES is not set 302# CONFIG_IP_NF_IPTABLES is not set
281# CONFIG_IP_NF_ARPTABLES is not set 303# CONFIG_IP_NF_ARPTABLES is not set
@@ -301,6 +323,10 @@ CONFIG_IP_NF_PPTP=m
301# CONFIG_NET_DIVERT is not set 323# CONFIG_NET_DIVERT is not set
302# CONFIG_ECONET is not set 324# CONFIG_ECONET is not set
303# CONFIG_WAN_ROUTER is not set 325# CONFIG_WAN_ROUTER is not set
326
327#
328# QoS and/or fair queueing
329#
304# CONFIG_NET_SCHED is not set 330# CONFIG_NET_SCHED is not set
305# CONFIG_NET_CLS_ROUTE is not set 331# CONFIG_NET_CLS_ROUTE is not set
306 332
@@ -351,6 +377,7 @@ CONFIG_MTD_BLOCK=y
351# CONFIG_FTL is not set 377# CONFIG_FTL is not set
352# CONFIG_NFTL is not set 378# CONFIG_NFTL is not set
353# CONFIG_INFTL is not set 379# CONFIG_INFTL is not set
380# CONFIG_RFD_FTL is not set
354 381
355# 382#
356# RAM/ROM/Flash chip drivers 383# RAM/ROM/Flash chip drivers
@@ -409,6 +436,11 @@ CONFIG_MTD_ALCHEMY=y
409# CONFIG_MTD_NAND is not set 436# CONFIG_MTD_NAND is not set
410 437
411# 438#
439# OneNAND Flash Device Drivers
440#
441# CONFIG_MTD_ONENAND is not set
442
443#
412# Parallel port support 444# Parallel port support
413# 445#
414# CONFIG_PARPORT is not set 446# CONFIG_PARPORT is not set
@@ -432,18 +464,9 @@ CONFIG_BLK_DEV_LOOP=y
432# CONFIG_BLK_DEV_UB is not set 464# CONFIG_BLK_DEV_UB is not set
433# CONFIG_BLK_DEV_RAM is not set 465# CONFIG_BLK_DEV_RAM is not set
434CONFIG_BLK_DEV_RAM_COUNT=16 466CONFIG_BLK_DEV_RAM_COUNT=16
435# CONFIG_LBD is not set
436CONFIG_CDROM_PKTCDVD=m 467CONFIG_CDROM_PKTCDVD=m
437CONFIG_CDROM_PKTCDVD_BUFFERS=8 468CONFIG_CDROM_PKTCDVD_BUFFERS=8
438# CONFIG_CDROM_PKTCDVD_WCACHE is not set 469# CONFIG_CDROM_PKTCDVD_WCACHE is not set
439
440#
441# IO Schedulers
442#
443CONFIG_IOSCHED_NOOP=y
444CONFIG_IOSCHED_AS=y
445CONFIG_IOSCHED_DEADLINE=y
446CONFIG_IOSCHED_CFQ=y
447CONFIG_ATA_OVER_ETH=m 470CONFIG_ATA_OVER_ETH=m
448 471
449# 472#
@@ -518,7 +541,6 @@ CONFIG_NETDEVICES=y
518# PHY device support 541# PHY device support
519# 542#
520CONFIG_PHYLIB=m 543CONFIG_PHYLIB=m
521CONFIG_PHYCONTROL=y
522 544
523# 545#
524# MII PHY device drivers 546# MII PHY device drivers
@@ -537,7 +559,9 @@ CONFIG_NET_ETHERNET=y
537CONFIG_MIPS_AU1X00_ENET=y 559CONFIG_MIPS_AU1X00_ENET=y
538# CONFIG_HAPPYMEAL is not set 560# CONFIG_HAPPYMEAL is not set
539# CONFIG_SUNGEM is not set 561# CONFIG_SUNGEM is not set
562# CONFIG_CASSINI is not set
540# CONFIG_NET_VENDOR_3COM is not set 563# CONFIG_NET_VENDOR_3COM is not set
564# CONFIG_SMC91X is not set
541 565
542# 566#
543# Tulip family network device support 567# Tulip family network device support
@@ -599,6 +623,7 @@ CONFIG_PPP_ASYNC=m
599# CONFIG_PPP_SYNC_TTY is not set 623# CONFIG_PPP_SYNC_TTY is not set
600CONFIG_PPP_DEFLATE=m 624CONFIG_PPP_DEFLATE=m
601# CONFIG_PPP_BSDCOMP is not set 625# CONFIG_PPP_BSDCOMP is not set
626CONFIG_PPP_MPPE=m
602CONFIG_PPPOE=m 627CONFIG_PPPOE=m
603# CONFIG_SLIP is not set 628# CONFIG_SLIP is not set
604# CONFIG_SHAPER is not set 629# CONFIG_SHAPER is not set
@@ -664,13 +689,17 @@ CONFIG_SERIO_RAW=m
664# 689#
665# Serial drivers 690# Serial drivers
666# 691#
667# CONFIG_SERIAL_8250 is not set 692CONFIG_SERIAL_8250=y
693CONFIG_SERIAL_8250_CONSOLE=y
694# CONFIG_SERIAL_8250_CS is not set
695CONFIG_SERIAL_8250_NR_UARTS=4
696# CONFIG_SERIAL_8250_EXTENDED is not set
697CONFIG_SERIAL_8250_AU1X00=y
668 698
669# 699#
670# Non-8250 serial port support 700# Non-8250 serial port support
671# 701#
672CONFIG_SERIAL_AU1X00=y 702# CONFIG_SERIAL_AU1X00 is not set
673CONFIG_SERIAL_AU1X00_CONSOLE=y
674CONFIG_SERIAL_CORE=y 703CONFIG_SERIAL_CORE=y
675CONFIG_SERIAL_CORE_CONSOLE=y 704CONFIG_SERIAL_CORE_CONSOLE=y
676# CONFIG_SERIAL_JSM is not set 705# CONFIG_SERIAL_JSM is not set
@@ -702,12 +731,15 @@ CONFIG_LEGACY_PTY_COUNT=256
702# PCMCIA character devices 731# PCMCIA character devices
703# 732#
704CONFIG_SYNCLINK_CS=m 733CONFIG_SYNCLINK_CS=m
734# CONFIG_CARDMAN_4000 is not set
735# CONFIG_CARDMAN_4040 is not set
705# CONFIG_RAW_DRIVER is not set 736# CONFIG_RAW_DRIVER is not set
706 737
707# 738#
708# TPM devices 739# TPM devices
709# 740#
710# CONFIG_TCG_TPM is not set 741# CONFIG_TCG_TPM is not set
742# CONFIG_TELCLOCK is not set
711 743
712# 744#
713# I2C support 745# I2C support
@@ -756,12 +788,94 @@ CONFIG_SOUND=y
756# 788#
757# Advanced Linux Sound Architecture 789# Advanced Linux Sound Architecture
758# 790#
759# CONFIG_SND is not set 791CONFIG_SND=m
792CONFIG_SND_AC97_CODEC=m
793CONFIG_SND_AC97_BUS=m
794CONFIG_SND_TIMER=m
795CONFIG_SND_PCM=m
796CONFIG_SND_RAWMIDI=m
797CONFIG_SND_SEQUENCER=m
798CONFIG_SND_SEQ_DUMMY=m
799CONFIG_SND_OSSEMUL=y
800CONFIG_SND_MIXER_OSS=m
801CONFIG_SND_PCM_OSS=m
802CONFIG_SND_SEQUENCER_OSS=y
803# CONFIG_SND_VERBOSE_PRINTK is not set
804# CONFIG_SND_DEBUG is not set
805CONFIG_SND_GENERIC_DRIVER=y
806
807#
808# Generic devices
809#
810# CONFIG_SND_DUMMY is not set
811CONFIG_SND_VIRMIDI=m
812CONFIG_SND_MTPAV=m
813# CONFIG_SND_SERIAL_U16550 is not set
814# CONFIG_SND_MPU401 is not set
815
816#
817# PCI devices
818#
819# CONFIG_SND_ALI5451 is not set
820# CONFIG_SND_ATIIXP is not set
821# CONFIG_SND_ATIIXP_MODEM is not set
822# CONFIG_SND_AU8810 is not set
823# CONFIG_SND_AU8820 is not set
824# CONFIG_SND_AU8830 is not set
825# CONFIG_SND_AZT3328 is not set
826# CONFIG_SND_BT87X is not set
827# CONFIG_SND_CS46XX is not set
828# CONFIG_SND_CS4281 is not set
829# CONFIG_SND_EMU10K1 is not set
830# CONFIG_SND_EMU10K1X is not set
831# CONFIG_SND_CA0106 is not set
832# CONFIG_SND_KORG1212 is not set
833# CONFIG_SND_MIXART is not set
834# CONFIG_SND_NM256 is not set
835# CONFIG_SND_RME32 is not set
836# CONFIG_SND_RME96 is not set
837# CONFIG_SND_RME9652 is not set
838# CONFIG_SND_HDSP is not set
839# CONFIG_SND_HDSPM is not set
840# CONFIG_SND_TRIDENT is not set
841# CONFIG_SND_YMFPCI is not set
842# CONFIG_SND_AD1889 is not set
843# CONFIG_SND_CMIPCI is not set
844# CONFIG_SND_ENS1370 is not set
845# CONFIG_SND_ENS1371 is not set
846# CONFIG_SND_ES1938 is not set
847# CONFIG_SND_ES1968 is not set
848# CONFIG_SND_MAESTRO3 is not set
849# CONFIG_SND_FM801 is not set
850# CONFIG_SND_ICE1712 is not set
851# CONFIG_SND_ICE1724 is not set
852# CONFIG_SND_INTEL8X0 is not set
853# CONFIG_SND_INTEL8X0M is not set
854# CONFIG_SND_SONICVIBES is not set
855# CONFIG_SND_VIA82XX is not set
856# CONFIG_SND_VIA82XX_MODEM is not set
857# CONFIG_SND_VX222 is not set
858# CONFIG_SND_HDA_INTEL is not set
859
860#
861# ALSA MIPS devices
862#
863CONFIG_SND_AU1X00=m
864
865#
866# USB devices
867#
868# CONFIG_SND_USB_AUDIO is not set
869
870#
871# PCMCIA devices
872#
760 873
761# 874#
762# Open Sound System 875# Open Sound System
763# 876#
764CONFIG_SOUND_PRIME=y 877CONFIG_SOUND_PRIME=y
878CONFIG_OBSOLETE_OSS_DRIVER=y
765# CONFIG_SOUND_BT878 is not set 879# CONFIG_SOUND_BT878 is not set
766# CONFIG_SOUND_CMPCI is not set 880# CONFIG_SOUND_CMPCI is not set
767# CONFIG_SOUND_EMU10K1 is not set 881# CONFIG_SOUND_EMU10K1 is not set
@@ -774,7 +888,7 @@ CONFIG_SOUND_PRIME=y
774# CONFIG_SOUND_MAESTRO3 is not set 888# CONFIG_SOUND_MAESTRO3 is not set
775# CONFIG_SOUND_ICH is not set 889# CONFIG_SOUND_ICH is not set
776# CONFIG_SOUND_SONICVIBES is not set 890# CONFIG_SOUND_SONICVIBES is not set
777CONFIG_SOUND_AU1000=y 891# CONFIG_SOUND_AU1000 is not set
778# CONFIG_SOUND_TRIDENT is not set 892# CONFIG_SOUND_TRIDENT is not set
779# CONFIG_SOUND_MSNDCLAS is not set 893# CONFIG_SOUND_MSNDCLAS is not set
780# CONFIG_SOUND_MSNDPIN is not set 894# CONFIG_SOUND_MSNDPIN is not set
@@ -815,12 +929,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
815# USB Device Class drivers 929# USB Device Class drivers
816# 930#
817# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set 931# CONFIG_OBSOLETE_OSS_USB_DRIVER is not set
818# CONFIG_USB_BLUETOOTH_TTY is not set
819# CONFIG_USB_ACM is not set 932# CONFIG_USB_ACM is not set
820# CONFIG_USB_PRINTER is not set 933# CONFIG_USB_PRINTER is not set
821 934
822# 935#
823# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 936# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
937#
938
939#
940# may also be needed; see USB_STORAGE Help for more information
824# 941#
825# CONFIG_USB_STORAGE is not set 942# CONFIG_USB_STORAGE is not set
826 943
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index 64248e2e924a..59c1ef214fc0 100644
--- a/arch/mips/configs/db1550_defconfig
+++ b/arch/mips/configs/db1550_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:25:39 2005 4# Tue Nov 15 11:11:18 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +197,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 197CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
200CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -207,7 +226,6 @@ CONFIG_CARDBUS=y
207# CONFIG_YENTA is not set 226# CONFIG_YENTA is not set
208# CONFIG_PD6729 is not set 227# CONFIG_PD6729 is not set
209# CONFIG_I82092 is not set 228# CONFIG_I82092 is not set
210# CONFIG_TCIC is not set
211CONFIG_PCMCIA_AU1X00=m 229CONFIG_PCMCIA_AU1X00=m
212 230
213# 231#
@@ -266,15 +284,19 @@ CONFIG_TCP_CONG_BIC=y
266# CONFIG_IPV6 is not set 284# CONFIG_IPV6 is not set
267CONFIG_NETFILTER=y 285CONFIG_NETFILTER=y
268# CONFIG_NETFILTER_DEBUG is not set 286# CONFIG_NETFILTER_DEBUG is not set
287
288#
289# Core Netfilter Configuration
290#
269CONFIG_NETFILTER_NETLINK=m 291CONFIG_NETFILTER_NETLINK=m
270CONFIG_NETFILTER_NETLINK_QUEUE=m 292CONFIG_NETFILTER_NETLINK_QUEUE=m
271CONFIG_NETFILTER_NETLINK_LOG=m 293CONFIG_NETFILTER_NETLINK_LOG=m
294# CONFIG_NF_CONNTRACK is not set
272 295
273# 296#
274# IP: Netfilter Configuration 297# IP: Netfilter Configuration
275# 298#
276# CONFIG_IP_NF_CONNTRACK is not set 299# CONFIG_IP_NF_CONNTRACK is not set
277CONFIG_IP_NF_PPTP=m
278# CONFIG_IP_NF_QUEUE is not set 300# CONFIG_IP_NF_QUEUE is not set
279# CONFIG_IP_NF_IPTABLES is not set 301# CONFIG_IP_NF_IPTABLES is not set
280# CONFIG_IP_NF_ARPTABLES is not set 302# CONFIG_IP_NF_ARPTABLES is not set
@@ -300,6 +322,10 @@ CONFIG_IP_NF_PPTP=m
300# CONFIG_NET_DIVERT is not set 322# CONFIG_NET_DIVERT is not set
301# CONFIG_ECONET is not set 323# CONFIG_ECONET is not set
302# CONFIG_WAN_ROUTER is not set 324# CONFIG_WAN_ROUTER is not set
325
326#
327# QoS and/or fair queueing
328#
303# CONFIG_NET_SCHED is not set 329# CONFIG_NET_SCHED is not set
304# CONFIG_NET_CLS_ROUTE is not set 330# CONFIG_NET_CLS_ROUTE is not set
305 331
@@ -350,6 +376,7 @@ CONFIG_MTD_BLOCK=y
350# CONFIG_FTL is not set 376# CONFIG_FTL is not set
351# CONFIG_NFTL is not set 377# CONFIG_NFTL is not set
352# CONFIG_INFTL is not set 378# CONFIG_INFTL is not set
379# CONFIG_RFD_FTL is not set
353 380
354# 381#
355# RAM/ROM/Flash chip drivers 382# RAM/ROM/Flash chip drivers
@@ -413,6 +440,11 @@ CONFIG_MTD_NAND_AU1550=m
413# CONFIG_MTD_NAND_NANDSIM is not set 440# CONFIG_MTD_NAND_NANDSIM is not set
414 441
415# 442#
443# OneNAND Flash Device Drivers
444#
445# CONFIG_MTD_ONENAND is not set
446
447#
416# Parallel port support 448# Parallel port support
417# 449#
418# CONFIG_PARPORT is not set 450# CONFIG_PARPORT is not set
@@ -435,18 +467,9 @@ CONFIG_BLK_DEV_LOOP=y
435# CONFIG_BLK_DEV_SX8 is not set 467# CONFIG_BLK_DEV_SX8 is not set
436# CONFIG_BLK_DEV_RAM is not set 468# CONFIG_BLK_DEV_RAM is not set
437CONFIG_BLK_DEV_RAM_COUNT=16 469CONFIG_BLK_DEV_RAM_COUNT=16
438# CONFIG_LBD is not set
439CONFIG_CDROM_PKTCDVD=m 470CONFIG_CDROM_PKTCDVD=m
440CONFIG_CDROM_PKTCDVD_BUFFERS=8 471CONFIG_CDROM_PKTCDVD_BUFFERS=8
441# CONFIG_CDROM_PKTCDVD_WCACHE is not set 472# CONFIG_CDROM_PKTCDVD_WCACHE is not set
442
443#
444# IO Schedulers
445#
446CONFIG_IOSCHED_NOOP=y
447CONFIG_IOSCHED_AS=y
448CONFIG_IOSCHED_DEADLINE=y
449CONFIG_IOSCHED_CFQ=y
450CONFIG_ATA_OVER_ETH=m 473CONFIG_ATA_OVER_ETH=m
451 474
452# 475#
@@ -550,7 +573,6 @@ CONFIG_NETDEVICES=y
550# PHY device support 573# PHY device support
551# 574#
552CONFIG_PHYLIB=m 575CONFIG_PHYLIB=m
553CONFIG_PHYCONTROL=y
554 576
555# 577#
556# MII PHY device drivers 578# MII PHY device drivers
@@ -569,7 +591,9 @@ CONFIG_MII=m
569CONFIG_MIPS_AU1X00_ENET=y 591CONFIG_MIPS_AU1X00_ENET=y
570# CONFIG_HAPPYMEAL is not set 592# CONFIG_HAPPYMEAL is not set
571# CONFIG_SUNGEM is not set 593# CONFIG_SUNGEM is not set
594# CONFIG_CASSINI is not set
572# CONFIG_NET_VENDOR_3COM is not set 595# CONFIG_NET_VENDOR_3COM is not set
596# CONFIG_SMC91X is not set
573 597
574# 598#
575# Tulip family network device support 599# Tulip family network device support
@@ -639,6 +663,7 @@ CONFIG_PPP_ASYNC=m
639# CONFIG_PPP_SYNC_TTY is not set 663# CONFIG_PPP_SYNC_TTY is not set
640CONFIG_PPP_DEFLATE=m 664CONFIG_PPP_DEFLATE=m
641# CONFIG_PPP_BSDCOMP is not set 665# CONFIG_PPP_BSDCOMP is not set
666CONFIG_PPP_MPPE=m
642CONFIG_PPPOE=m 667CONFIG_PPPOE=m
643# CONFIG_SLIP is not set 668# CONFIG_SLIP is not set
644# CONFIG_SHAPER is not set 669# CONFIG_SHAPER is not set
@@ -704,13 +729,17 @@ CONFIG_SERIO_RAW=m
704# 729#
705# Serial drivers 730# Serial drivers
706# 731#
707# CONFIG_SERIAL_8250 is not set 732CONFIG_SERIAL_8250=y
733CONFIG_SERIAL_8250_CONSOLE=y
734# CONFIG_SERIAL_8250_CS is not set
735CONFIG_SERIAL_8250_NR_UARTS=4
736# CONFIG_SERIAL_8250_EXTENDED is not set
737CONFIG_SERIAL_8250_AU1X00=y
708 738
709# 739#
710# Non-8250 serial port support 740# Non-8250 serial port support
711# 741#
712CONFIG_SERIAL_AU1X00=y 742# CONFIG_SERIAL_AU1X00 is not set
713CONFIG_SERIAL_AU1X00_CONSOLE=y
714CONFIG_SERIAL_CORE=y 743CONFIG_SERIAL_CORE=y
715CONFIG_SERIAL_CORE_CONSOLE=y 744CONFIG_SERIAL_CORE_CONSOLE=y
716# CONFIG_SERIAL_JSM is not set 745# CONFIG_SERIAL_JSM is not set
@@ -742,12 +771,15 @@ CONFIG_LEGACY_PTY_COUNT=256
742# PCMCIA character devices 771# PCMCIA character devices
743# 772#
744CONFIG_SYNCLINK_CS=m 773CONFIG_SYNCLINK_CS=m
774# CONFIG_CARDMAN_4000 is not set
775# CONFIG_CARDMAN_4040 is not set
745# CONFIG_RAW_DRIVER is not set 776# CONFIG_RAW_DRIVER is not set
746 777
747# 778#
748# TPM devices 779# TPM devices
749# 780#
750# CONFIG_TCG_TPM is not set 781# CONFIG_TCG_TPM is not set
782# CONFIG_TELCLOCK is not set
751 783
752# 784#
753# I2C support 785# I2C support
@@ -801,6 +833,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
801# CONFIG_USB is not set 833# CONFIG_USB is not set
802 834
803# 835#
836# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
837#
838
839#
804# USB Gadget Support 840# USB Gadget Support
805# 841#
806# CONFIG_USB_GADGET is not set 842# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ddb5476_defconfig b/arch/mips/configs/ddb5476_defconfig
index 326f3aa63741..4ba29e612bdf 100644
--- a/arch/mips/configs/ddb5476_defconfig
+++ b/arch/mips/configs/ddb5476_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:42 2005 4# Mon Nov 7 23:05:04 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,24 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56# CONFIG_LBD is not set
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
54# Machine selection 72# Machine selection
55# 73#
56# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -173,6 +191,7 @@ CONFIG_FLATMEM_MANUAL=y
173CONFIG_FLATMEM=y 191CONFIG_FLATMEM=y
174CONFIG_FLAT_NODE_MEM_MAP=y 192CONFIG_FLAT_NODE_MEM_MAP=y
175# CONFIG_SPARSEMEM_STATIC is not set 193# CONFIG_SPARSEMEM_STATIC is not set
194CONFIG_SPLIT_PTLOCK_CPUS=4
176CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
@@ -261,6 +280,10 @@ CONFIG_TCP_CONG_BIC=y
261# CONFIG_NET_DIVERT is not set 280# CONFIG_NET_DIVERT is not set
262# CONFIG_ECONET is not set 281# CONFIG_ECONET is not set
263# CONFIG_WAN_ROUTER is not set 282# CONFIG_WAN_ROUTER is not set
283
284#
285# QoS and/or fair queueing
286#
264# CONFIG_NET_SCHED is not set 287# CONFIG_NET_SCHED is not set
265# CONFIG_NET_CLS_ROUTE is not set 288# CONFIG_NET_CLS_ROUTE is not set
266 289
@@ -292,6 +315,7 @@ CONFIG_FW_LOADER=y
292# Connector - unified userspace <-> kernelspace linker 315# Connector - unified userspace <-> kernelspace linker
293# 316#
294CONFIG_CONNECTOR=y 317CONFIG_CONNECTOR=y
318CONFIG_PROC_EVENTS=y
295 319
296# 320#
297# Memory Technology Devices (MTD) 321# Memory Technology Devices (MTD)
@@ -321,18 +345,9 @@ CONFIG_CONNECTOR=y
321# CONFIG_BLK_DEV_SX8 is not set 345# CONFIG_BLK_DEV_SX8 is not set
322# CONFIG_BLK_DEV_RAM is not set 346# CONFIG_BLK_DEV_RAM is not set
323CONFIG_BLK_DEV_RAM_COUNT=16 347CONFIG_BLK_DEV_RAM_COUNT=16
324# CONFIG_LBD is not set
325CONFIG_CDROM_PKTCDVD=y 348CONFIG_CDROM_PKTCDVD=y
326CONFIG_CDROM_PKTCDVD_BUFFERS=8 349CONFIG_CDROM_PKTCDVD_BUFFERS=8
327# CONFIG_CDROM_PKTCDVD_WCACHE is not set 350# CONFIG_CDROM_PKTCDVD_WCACHE is not set
328
329#
330# IO Schedulers
331#
332CONFIG_IOSCHED_NOOP=y
333CONFIG_IOSCHED_AS=y
334CONFIG_IOSCHED_DEADLINE=y
335CONFIG_IOSCHED_CFQ=y
336CONFIG_ATA_OVER_ETH=y 351CONFIG_ATA_OVER_ETH=y
337 352
338# 353#
@@ -412,7 +427,6 @@ CONFIG_NETDEVICES=y
412# PHY device support 427# PHY device support
413# 428#
414CONFIG_PHYLIB=y 429CONFIG_PHYLIB=y
415CONFIG_PHYCONTROL=y
416 430
417# 431#
418# MII PHY device drivers 432# MII PHY device drivers
@@ -430,6 +444,7 @@ CONFIG_NET_ETHERNET=y
430# CONFIG_MII is not set 444# CONFIG_MII is not set
431# CONFIG_HAPPYMEAL is not set 445# CONFIG_HAPPYMEAL is not set
432# CONFIG_SUNGEM is not set 446# CONFIG_SUNGEM is not set
447# CONFIG_CASSINI is not set
433# CONFIG_NET_VENDOR_3COM is not set 448# CONFIG_NET_VENDOR_3COM is not set
434# CONFIG_NET_VENDOR_SMC is not set 449# CONFIG_NET_VENDOR_SMC is not set
435# CONFIG_NET_VENDOR_RACAL is not set 450# CONFIG_NET_VENDOR_RACAL is not set
@@ -443,7 +458,6 @@ CONFIG_NET_ETHERNET=y
443# CONFIG_HP100 is not set 458# CONFIG_HP100 is not set
444# CONFIG_NET_ISA is not set 459# CONFIG_NET_ISA is not set
445# CONFIG_NET_PCI is not set 460# CONFIG_NET_PCI is not set
446# CONFIG_NET_POCKET is not set
447 461
448# 462#
449# Ethernet (1000 Mbit) 463# Ethernet (1000 Mbit)
@@ -591,6 +605,7 @@ CONFIG_LEGACY_PTY_COUNT=256
591# TPM devices 605# TPM devices
592# 606#
593# CONFIG_TCG_TPM is not set 607# CONFIG_TCG_TPM is not set
608# CONFIG_TELCLOCK is not set
594 609
595# 610#
596# I2C support 611# I2C support
@@ -633,7 +648,6 @@ CONFIG_FB=y
633# CONFIG_FB_CFB_FILLRECT is not set 648# CONFIG_FB_CFB_FILLRECT is not set
634# CONFIG_FB_CFB_COPYAREA is not set 649# CONFIG_FB_CFB_COPYAREA is not set
635# CONFIG_FB_CFB_IMAGEBLIT is not set 650# CONFIG_FB_CFB_IMAGEBLIT is not set
636# CONFIG_FB_SOFT_CURSOR is not set
637# CONFIG_FB_MACMODES is not set 651# CONFIG_FB_MACMODES is not set
638# CONFIG_FB_MODE_HELPERS is not set 652# CONFIG_FB_MODE_HELPERS is not set
639# CONFIG_FB_TILEBLITTING is not set 653# CONFIG_FB_TILEBLITTING is not set
@@ -642,6 +656,7 @@ CONFIG_FB=y
642# CONFIG_FB_CYBER2000 is not set 656# CONFIG_FB_CYBER2000 is not set
643# CONFIG_FB_ASILIANT is not set 657# CONFIG_FB_ASILIANT is not set
644# CONFIG_FB_IMSTT is not set 658# CONFIG_FB_IMSTT is not set
659# CONFIG_FB_S1D13XXX is not set
645# CONFIG_FB_NVIDIA is not set 660# CONFIG_FB_NVIDIA is not set
646# CONFIG_FB_RIVA is not set 661# CONFIG_FB_RIVA is not set
647# CONFIG_FB_MATROX is not set 662# CONFIG_FB_MATROX is not set
@@ -658,7 +673,6 @@ CONFIG_FB=y
658# CONFIG_FB_SMIVGX is not set 673# CONFIG_FB_SMIVGX is not set
659# CONFIG_FB_CYBLA is not set 674# CONFIG_FB_CYBLA is not set
660# CONFIG_FB_TRIDENT is not set 675# CONFIG_FB_TRIDENT is not set
661# CONFIG_FB_S1D13XXX is not set
662# CONFIG_FB_VIRTUAL is not set 676# CONFIG_FB_VIRTUAL is not set
663 677
664# 678#
@@ -688,6 +702,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
688# CONFIG_USB is not set 702# CONFIG_USB is not set
689 703
690# 704#
705# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
706#
707
708#
691# USB Gadget Support 709# USB Gadget Support
692# 710#
693# CONFIG_USB_GADGET is not set 711# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig
index c2a01df3c8df..ea4e9046bbee 100644
--- a/arch/mips/configs/ddb5477_defconfig
+++ b/arch/mips/configs/ddb5477_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:45 2005 4# Mon Nov 7 23:05:08 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,24 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56# CONFIG_LBD is not set
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
54# Machine selection 72# Machine selection
55# 73#
56# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -173,6 +191,7 @@ CONFIG_FLATMEM_MANUAL=y
173CONFIG_FLATMEM=y 191CONFIG_FLATMEM=y
174CONFIG_FLAT_NODE_MEM_MAP=y 192CONFIG_FLAT_NODE_MEM_MAP=y
175# CONFIG_SPARSEMEM_STATIC is not set 193# CONFIG_SPARSEMEM_STATIC is not set
194CONFIG_SPLIT_PTLOCK_CPUS=4
176CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
@@ -260,6 +279,10 @@ CONFIG_TCP_CONG_BIC=y
260# CONFIG_NET_DIVERT is not set 279# CONFIG_NET_DIVERT is not set
261# CONFIG_ECONET is not set 280# CONFIG_ECONET is not set
262# CONFIG_WAN_ROUTER is not set 281# CONFIG_WAN_ROUTER is not set
282
283#
284# QoS and/or fair queueing
285#
263# CONFIG_NET_SCHED is not set 286# CONFIG_NET_SCHED is not set
264# CONFIG_NET_CLS_ROUTE is not set 287# CONFIG_NET_CLS_ROUTE is not set
265 288
@@ -291,6 +314,7 @@ CONFIG_FW_LOADER=y
291# Connector - unified userspace <-> kernelspace linker 314# Connector - unified userspace <-> kernelspace linker
292# 315#
293CONFIG_CONNECTOR=y 316CONFIG_CONNECTOR=y
317CONFIG_PROC_EVENTS=y
294 318
295# 319#
296# Memory Technology Devices (MTD) 320# Memory Technology Devices (MTD)
@@ -319,18 +343,9 @@ CONFIG_CONNECTOR=y
319# CONFIG_BLK_DEV_SX8 is not set 343# CONFIG_BLK_DEV_SX8 is not set
320# CONFIG_BLK_DEV_RAM is not set 344# CONFIG_BLK_DEV_RAM is not set
321CONFIG_BLK_DEV_RAM_COUNT=16 345CONFIG_BLK_DEV_RAM_COUNT=16
322# CONFIG_LBD is not set
323CONFIG_CDROM_PKTCDVD=y 346CONFIG_CDROM_PKTCDVD=y
324CONFIG_CDROM_PKTCDVD_BUFFERS=8 347CONFIG_CDROM_PKTCDVD_BUFFERS=8
325# CONFIG_CDROM_PKTCDVD_WCACHE is not set 348# CONFIG_CDROM_PKTCDVD_WCACHE is not set
326
327#
328# IO Schedulers
329#
330CONFIG_IOSCHED_NOOP=y
331CONFIG_IOSCHED_AS=y
332CONFIG_IOSCHED_DEADLINE=y
333CONFIG_IOSCHED_CFQ=y
334CONFIG_ATA_OVER_ETH=y 349CONFIG_ATA_OVER_ETH=y
335 350
336# 351#
@@ -382,7 +397,6 @@ CONFIG_NETDEVICES=y
382# PHY device support 397# PHY device support
383# 398#
384CONFIG_PHYLIB=y 399CONFIG_PHYLIB=y
385CONFIG_PHYCONTROL=y
386 400
387# 401#
388# MII PHY device drivers 402# MII PHY device drivers
@@ -400,6 +414,7 @@ CONFIG_NET_ETHERNET=y
400CONFIG_MII=y 414CONFIG_MII=y
401# CONFIG_HAPPYMEAL is not set 415# CONFIG_HAPPYMEAL is not set
402# CONFIG_SUNGEM is not set 416# CONFIG_SUNGEM is not set
417# CONFIG_CASSINI is not set
403# CONFIG_NET_VENDOR_3COM is not set 418# CONFIG_NET_VENDOR_3COM is not set
404 419
405# 420#
@@ -575,6 +590,7 @@ CONFIG_LEGACY_PTY_COUNT=256
575# TPM devices 590# TPM devices
576# 591#
577# CONFIG_TCG_TPM is not set 592# CONFIG_TCG_TPM is not set
593# CONFIG_TELCLOCK is not set
578 594
579# 595#
580# I2C support 596# I2C support
@@ -634,6 +650,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
634# CONFIG_USB is not set 650# CONFIG_USB is not set
635 651
636# 652#
653# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
654#
655
656#
637# USB Gadget Support 657# USB Gadget Support
638# 658#
639# CONFIG_USB_GADGET is not set 659# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig
index 5bc885b72d14..1ac6c9b7ef96 100644
--- a/arch/mips/configs/decstation_defconfig
+++ b/arch/mips/configs/decstation_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:48 2005 4# Fri Nov 11 13:29:30 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -178,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
181CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -262,6 +281,10 @@ CONFIG_TCP_CONG_BIC=y
262# CONFIG_NET_DIVERT is not set 281# CONFIG_NET_DIVERT is not set
263# CONFIG_ECONET is not set 282# CONFIG_ECONET is not set
264# CONFIG_WAN_ROUTER is not set 283# CONFIG_WAN_ROUTER is not set
284
285#
286# QoS and/or fair queueing
287#
265# CONFIG_NET_SCHED is not set 288# CONFIG_NET_SCHED is not set
266# CONFIG_NET_CLS_ROUTE is not set 289# CONFIG_NET_CLS_ROUTE is not set
267 290
@@ -318,16 +341,7 @@ CONFIG_BLK_DEV_LOOP=m
318# CONFIG_BLK_DEV_NBD is not set 341# CONFIG_BLK_DEV_NBD is not set
319# CONFIG_BLK_DEV_RAM is not set 342# CONFIG_BLK_DEV_RAM is not set
320CONFIG_BLK_DEV_RAM_COUNT=16 343CONFIG_BLK_DEV_RAM_COUNT=16
321# CONFIG_LBD is not set
322# CONFIG_CDROM_PKTCDVD is not set 344# CONFIG_CDROM_PKTCDVD is not set
323
324#
325# IO Schedulers
326#
327CONFIG_IOSCHED_NOOP=y
328CONFIG_IOSCHED_AS=y
329CONFIG_IOSCHED_DEADLINE=y
330CONFIG_IOSCHED_CFQ=y
331# CONFIG_ATA_OVER_ETH is not set 345# CONFIG_ATA_OVER_ETH is not set
332 346
333# 347#
@@ -365,12 +379,13 @@ CONFIG_SCSI_CONSTANTS=y
365# 379#
366CONFIG_SCSI_SPI_ATTRS=m 380CONFIG_SCSI_SPI_ATTRS=m
367# CONFIG_SCSI_FC_ATTRS is not set 381# CONFIG_SCSI_FC_ATTRS is not set
368# CONFIG_SCSI_ISCSI_ATTRS is not set 382CONFIG_SCSI_ISCSI_ATTRS=m
369CONFIG_SCSI_SAS_ATTRS=m 383CONFIG_SCSI_SAS_ATTRS=m
370 384
371# 385#
372# SCSI low-level drivers 386# SCSI low-level drivers
373# 387#
388CONFIG_ISCSI_TCP=m
374CONFIG_SCSI_DECNCR=y 389CONFIG_SCSI_DECNCR=y
375# CONFIG_SCSI_DECSII is not set 390# CONFIG_SCSI_DECSII is not set
376# CONFIG_SCSI_SATA is not set 391# CONFIG_SCSI_SATA is not set
@@ -407,7 +422,6 @@ CONFIG_NETDEVICES=y
407# PHY device support 422# PHY device support
408# 423#
409CONFIG_PHYLIB=m 424CONFIG_PHYLIB=m
410CONFIG_PHYCONTROL=y
411 425
412# 426#
413# MII PHY device drivers 427# MII PHY device drivers
@@ -491,10 +505,7 @@ CONFIG_ZS=y
491# 505#
492# Non-8250 serial port support 506# Non-8250 serial port support
493# 507#
494CONFIG_SERIAL_DZ=y 508# CONFIG_SERIAL_DZ is not set
495CONFIG_SERIAL_DZ_CONSOLE=y
496CONFIG_SERIAL_CORE=y
497CONFIG_SERIAL_CORE_CONSOLE=y
498CONFIG_UNIX98_PTYS=y 509CONFIG_UNIX98_PTYS=y
499CONFIG_LEGACY_PTYS=y 510CONFIG_LEGACY_PTYS=y
500CONFIG_LEGACY_PTY_COUNT=256 511CONFIG_LEGACY_PTY_COUNT=256
@@ -520,6 +531,7 @@ CONFIG_RTC=y
520# 531#
521# TPM devices 532# TPM devices
522# 533#
534# CONFIG_TELCLOCK is not set
523 535
524# 536#
525# I2C support 537# I2C support
@@ -562,15 +574,14 @@ CONFIG_FB=y
562CONFIG_FB_CFB_FILLRECT=y 574CONFIG_FB_CFB_FILLRECT=y
563CONFIG_FB_CFB_COPYAREA=y 575CONFIG_FB_CFB_COPYAREA=y
564CONFIG_FB_CFB_IMAGEBLIT=y 576CONFIG_FB_CFB_IMAGEBLIT=y
565CONFIG_FB_SOFT_CURSOR=y
566# CONFIG_FB_MACMODES is not set 577# CONFIG_FB_MACMODES is not set
567# CONFIG_FB_MODE_HELPERS is not set 578# CONFIG_FB_MODE_HELPERS is not set
568# CONFIG_FB_TILEBLITTING is not set 579# CONFIG_FB_TILEBLITTING is not set
580# CONFIG_FB_S1D13XXX is not set
569# CONFIG_FB_PMAG_AA is not set 581# CONFIG_FB_PMAG_AA is not set
570CONFIG_FB_PMAG_BA=y 582CONFIG_FB_PMAG_BA=y
571CONFIG_FB_PMAGB_B=y 583CONFIG_FB_PMAGB_B=y
572# CONFIG_FB_MAXINE is not set 584# CONFIG_FB_MAXINE is not set
573# CONFIG_FB_S1D13XXX is not set
574# CONFIG_FB_VIRTUAL is not set 585# CONFIG_FB_VIRTUAL is not set
575 586
576# 587#
@@ -595,6 +606,10 @@ CONFIG_LOGO_DEC_CLUT224=y
595# CONFIG_USB_ARCH_HAS_OHCI is not set 606# CONFIG_USB_ARCH_HAS_OHCI is not set
596 607
597# 608#
609# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
610#
611
612#
598# USB Gadget Support 613# USB Gadget Support
599# 614#
600# CONFIG_USB_GADGET is not set 615# CONFIG_USB_GADGET is not set
@@ -746,6 +761,8 @@ CONFIG_DETECT_SOFTLOCKUP=y
746# CONFIG_DEBUG_KOBJECT is not set 761# CONFIG_DEBUG_KOBJECT is not set
747# CONFIG_DEBUG_INFO is not set 762# CONFIG_DEBUG_INFO is not set
748# CONFIG_DEBUG_FS is not set 763# CONFIG_DEBUG_FS is not set
764# CONFIG_DEBUG_VM is not set
765# CONFIG_RCU_TORTURE_TEST is not set
749CONFIG_CROSSCOMPILE=y 766CONFIG_CROSSCOMPILE=y
750CONFIG_CMDLINE="" 767CONFIG_CMDLINE=""
751# CONFIG_DEBUG_STACK_USAGE is not set 768# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index c0d06ea5566c..a89d2f66cdfa 100644
--- a/arch/mips/configs/e55_defconfig
+++ b/arch/mips/configs/e55_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:51 2005 4# Mon Nov 7 23:05:15 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -180,6 +198,7 @@ CONFIG_FLATMEM_MANUAL=y
180CONFIG_FLATMEM=y 198CONFIG_FLATMEM=y
181CONFIG_FLAT_NODE_MEM_MAP=y 199CONFIG_FLAT_NODE_MEM_MAP=y
182# CONFIG_SPARSEMEM_STATIC is not set 200# CONFIG_SPARSEMEM_STATIC is not set
201CONFIG_SPLIT_PTLOCK_CPUS=4
183CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -262,6 +281,10 @@ CONFIG_TCP_CONG_BIC=y
262# CONFIG_NET_DIVERT is not set 281# CONFIG_NET_DIVERT is not set
263# CONFIG_ECONET is not set 282# CONFIG_ECONET is not set
264# CONFIG_WAN_ROUTER is not set 283# CONFIG_WAN_ROUTER is not set
284
285#
286# QoS and/or fair queueing
287#
265# CONFIG_NET_SCHED is not set 288# CONFIG_NET_SCHED is not set
266# CONFIG_NET_CLS_ROUTE is not set 289# CONFIG_NET_CLS_ROUTE is not set
267 290
@@ -317,16 +340,7 @@ CONFIG_CONNECTOR=m
317# CONFIG_BLK_DEV_NBD is not set 340# CONFIG_BLK_DEV_NBD is not set
318# CONFIG_BLK_DEV_RAM is not set 341# CONFIG_BLK_DEV_RAM is not set
319CONFIG_BLK_DEV_RAM_COUNT=16 342CONFIG_BLK_DEV_RAM_COUNT=16
320# CONFIG_LBD is not set
321# CONFIG_CDROM_PKTCDVD is not set 343# CONFIG_CDROM_PKTCDVD is not set
322
323#
324# IO Schedulers
325#
326CONFIG_IOSCHED_NOOP=y
327CONFIG_IOSCHED_AS=y
328CONFIG_IOSCHED_DEADLINE=y
329CONFIG_IOSCHED_CFQ=y
330# CONFIG_ATA_OVER_ETH is not set 344# CONFIG_ATA_OVER_ETH is not set
331 345
332# 346#
@@ -403,7 +417,6 @@ CONFIG_NETDEVICES=y
403# PHY device support 417# PHY device support
404# 418#
405CONFIG_PHYLIB=m 419CONFIG_PHYLIB=m
406CONFIG_PHYCONTROL=y
407 420
408# 421#
409# MII PHY device drivers 422# MII PHY device drivers
@@ -427,7 +440,6 @@ CONFIG_NET_ETHERNET=y
427# CONFIG_HP100 is not set 440# CONFIG_HP100 is not set
428# CONFIG_NET_ISA is not set 441# CONFIG_NET_ISA is not set
429# CONFIG_NET_PCI is not set 442# CONFIG_NET_PCI is not set
430# CONFIG_NET_POCKET is not set
431 443
432# 444#
433# Ethernet (1000 Mbit) 445# Ethernet (1000 Mbit)
@@ -552,6 +564,7 @@ CONFIG_WATCHDOG=y
552# CONFIG_WDT is not set 564# CONFIG_WDT is not set
553# CONFIG_RTC is not set 565# CONFIG_RTC is not set
554# CONFIG_GEN_RTC is not set 566# CONFIG_GEN_RTC is not set
567# CONFIG_RTC_VR41XX is not set
555# CONFIG_DTLK is not set 568# CONFIG_DTLK is not set
556# CONFIG_R3964 is not set 569# CONFIG_R3964 is not set
557 570
@@ -564,6 +577,7 @@ CONFIG_GPIO_VR41XX=y
564# 577#
565# TPM devices 578# TPM devices
566# 579#
580# CONFIG_TELCLOCK is not set
567 581
568# 582#
569# I2C support 583# I2C support
@@ -623,6 +637,10 @@ CONFIG_DUMMY_CONSOLE=y
623# CONFIG_USB_ARCH_HAS_OHCI is not set 637# CONFIG_USB_ARCH_HAS_OHCI is not set
624 638
625# 639#
640# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
641#
642
643#
626# USB Gadget Support 644# USB Gadget Support
627# 645#
628# CONFIG_USB_GADGET is not set 646# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig
index f1309d84d2fe..e6c3c27f41fe 100644
--- a/arch/mips/configs/ev64120_defconfig
+++ b/arch/mips/configs/ev64120_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:54 2005 4# Wed Nov 9 11:05:12 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57# CONFIG_KMOD is not set 57# CONFIG_KMOD is not set
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -181,6 +199,7 @@ CONFIG_FLATMEM_MANUAL=y
181CONFIG_FLATMEM=y 199CONFIG_FLATMEM=y
182CONFIG_FLAT_NODE_MEM_MAP=y 200CONFIG_FLAT_NODE_MEM_MAP=y
183# CONFIG_SPARSEMEM_STATIC is not set 201# CONFIG_SPARSEMEM_STATIC is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4
184CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -267,6 +286,10 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_NET_DIVERT is not set 286# CONFIG_NET_DIVERT is not set
268# CONFIG_ECONET is not set 287# CONFIG_ECONET is not set
269# CONFIG_WAN_ROUTER is not set 288# CONFIG_WAN_ROUTER is not set
289
290#
291# QoS and/or fair queueing
292#
270# CONFIG_NET_SCHED is not set 293# CONFIG_NET_SCHED is not set
271# CONFIG_NET_CLS_ROUTE is not set 294# CONFIG_NET_CLS_ROUTE is not set
272 295
@@ -326,18 +349,9 @@ CONFIG_CONNECTOR=m
326# CONFIG_BLK_DEV_SX8 is not set 349# CONFIG_BLK_DEV_SX8 is not set
327# CONFIG_BLK_DEV_RAM is not set 350# CONFIG_BLK_DEV_RAM is not set
328CONFIG_BLK_DEV_RAM_COUNT=16 351CONFIG_BLK_DEV_RAM_COUNT=16
329# CONFIG_LBD is not set
330CONFIG_CDROM_PKTCDVD=m 352CONFIG_CDROM_PKTCDVD=m
331CONFIG_CDROM_PKTCDVD_BUFFERS=8 353CONFIG_CDROM_PKTCDVD_BUFFERS=8
332# CONFIG_CDROM_PKTCDVD_WCACHE is not set 354# CONFIG_CDROM_PKTCDVD_WCACHE is not set
333
334#
335# IO Schedulers
336#
337CONFIG_IOSCHED_NOOP=y
338CONFIG_IOSCHED_AS=y
339CONFIG_IOSCHED_DEADLINE=y
340CONFIG_IOSCHED_CFQ=y
341CONFIG_ATA_OVER_ETH=m 355CONFIG_ATA_OVER_ETH=m
342 356
343# 357#
@@ -389,7 +403,6 @@ CONFIG_NETDEVICES=y
389# PHY device support 403# PHY device support
390# 404#
391CONFIG_PHYLIB=m 405CONFIG_PHYLIB=m
392CONFIG_PHYCONTROL=y
393 406
394# 407#
395# MII PHY device drivers 408# MII PHY device drivers
@@ -407,6 +420,7 @@ CONFIG_NET_ETHERNET=y
407# CONFIG_MII is not set 420# CONFIG_MII is not set
408# CONFIG_HAPPYMEAL is not set 421# CONFIG_HAPPYMEAL is not set
409# CONFIG_SUNGEM is not set 422# CONFIG_SUNGEM is not set
423# CONFIG_CASSINI is not set
410# CONFIG_NET_VENDOR_3COM is not set 424# CONFIG_NET_VENDOR_3COM is not set
411 425
412# 426#
@@ -464,6 +478,7 @@ CONFIG_PPP_ASYNC=y
464# CONFIG_PPP_SYNC_TTY is not set 478# CONFIG_PPP_SYNC_TTY is not set
465# CONFIG_PPP_DEFLATE is not set 479# CONFIG_PPP_DEFLATE is not set
466# CONFIG_PPP_BSDCOMP is not set 480# CONFIG_PPP_BSDCOMP is not set
481CONFIG_PPP_MPPE=m
467# CONFIG_PPPOE is not set 482# CONFIG_PPPOE is not set
468# CONFIG_SLIP is not set 483# CONFIG_SLIP is not set
469# CONFIG_SHAPER is not set 484# CONFIG_SHAPER is not set
@@ -569,6 +584,7 @@ CONFIG_LEGACY_PTY_COUNT=256
569# TPM devices 584# TPM devices
570# 585#
571# CONFIG_TCG_TPM is not set 586# CONFIG_TCG_TPM is not set
587# CONFIG_TELCLOCK is not set
572 588
573# 589#
574# I2C support 590# I2C support
@@ -628,6 +644,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
628# CONFIG_USB is not set 644# CONFIG_USB is not set
629 645
630# 646#
647# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
648#
649
650#
631# USB Gadget Support 651# USB Gadget Support
632# 652#
633# CONFIG_USB_GADGET is not set 653# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig
index 8ac55b7acc01..52ca6bf5be66 100644
--- a/arch/mips/configs/ev96100_defconfig
+++ b/arch/mips/configs/ev96100_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:57 2005 4# Mon Nov 7 23:05:22 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57# CONFIG_KMOD is not set 57# CONFIG_KMOD is not set
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -185,6 +203,7 @@ CONFIG_FLATMEM_MANUAL=y
185CONFIG_FLATMEM=y 203CONFIG_FLATMEM=y
186CONFIG_FLAT_NODE_MEM_MAP=y 204CONFIG_FLAT_NODE_MEM_MAP=y
187# CONFIG_SPARSEMEM_STATIC is not set 205# CONFIG_SPARSEMEM_STATIC is not set
206CONFIG_SPLIT_PTLOCK_CPUS=4
188CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
189# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
190# CONFIG_PREEMPT is not set 209# CONFIG_PREEMPT is not set
@@ -269,6 +288,10 @@ CONFIG_TCP_CONG_BIC=y
269# CONFIG_NET_DIVERT is not set 288# CONFIG_NET_DIVERT is not set
270# CONFIG_ECONET is not set 289# CONFIG_ECONET is not set
271# CONFIG_WAN_ROUTER is not set 290# CONFIG_WAN_ROUTER is not set
291
292#
293# QoS and/or fair queueing
294#
272# CONFIG_NET_SCHED is not set 295# CONFIG_NET_SCHED is not set
273# CONFIG_NET_CLS_ROUTE is not set 296# CONFIG_NET_CLS_ROUTE is not set
274 297
@@ -323,18 +346,9 @@ CONFIG_CONNECTOR=m
323# CONFIG_BLK_DEV_NBD is not set 346# CONFIG_BLK_DEV_NBD is not set
324# CONFIG_BLK_DEV_RAM is not set 347# CONFIG_BLK_DEV_RAM is not set
325CONFIG_BLK_DEV_RAM_COUNT=16 348CONFIG_BLK_DEV_RAM_COUNT=16
326# CONFIG_LBD is not set
327CONFIG_CDROM_PKTCDVD=m 349CONFIG_CDROM_PKTCDVD=m
328CONFIG_CDROM_PKTCDVD_BUFFERS=8 350CONFIG_CDROM_PKTCDVD_BUFFERS=8
329# CONFIG_CDROM_PKTCDVD_WCACHE is not set 351# CONFIG_CDROM_PKTCDVD_WCACHE is not set
330
331#
332# IO Schedulers
333#
334CONFIG_IOSCHED_NOOP=y
335CONFIG_IOSCHED_AS=y
336CONFIG_IOSCHED_DEADLINE=y
337CONFIG_IOSCHED_CFQ=y
338CONFIG_ATA_OVER_ETH=m 352CONFIG_ATA_OVER_ETH=m
339 353
340# 354#
@@ -379,7 +393,6 @@ CONFIG_NETDEVICES=y
379# PHY device support 393# PHY device support
380# 394#
381CONFIG_PHYLIB=m 395CONFIG_PHYLIB=m
382CONFIG_PHYCONTROL=y
383 396
384# 397#
385# MII PHY device drivers 398# MII PHY device drivers
@@ -518,6 +531,7 @@ CONFIG_LEGACY_PTY_COUNT=256
518# 531#
519# TPM devices 532# TPM devices
520# 533#
534# CONFIG_TELCLOCK is not set
521 535
522# 536#
523# I2C support 537# I2C support
@@ -576,6 +590,10 @@ CONFIG_DUMMY_CONSOLE=y
576# CONFIG_USB_ARCH_HAS_OHCI is not set 590# CONFIG_USB_ARCH_HAS_OHCI is not set
577 591
578# 592#
593# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
594#
595
596#
579# USB Gadget Support 597# USB Gadget Support
580# 598#
581# CONFIG_USB_GADGET is not set 599# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index 3ae3838f283c..79e3fe7e2d54 100644
--- a/arch/mips/configs/ip22_defconfig
+++ b/arch/mips/configs/ip22_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:01 2005 4# Thu Nov 10 13:38:41 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -187,6 +205,7 @@ CONFIG_FLATMEM_MANUAL=y
187CONFIG_FLATMEM=y 205CONFIG_FLATMEM=y
188CONFIG_FLAT_NODE_MEM_MAP=y 206CONFIG_FLAT_NODE_MEM_MAP=y
189# CONFIG_SPARSEMEM_STATIC is not set 207# CONFIG_SPARSEMEM_STATIC is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_PREEMPT_NONE is not set 209# CONFIG_PREEMPT_NONE is not set
191CONFIG_PREEMPT_VOLUNTARY=y 210CONFIG_PREEMPT_VOLUNTARY=y
192# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -292,6 +311,10 @@ CONFIG_INET6_TUNNEL=m
292CONFIG_IPV6_TUNNEL=m 311CONFIG_IPV6_TUNNEL=m
293CONFIG_NETFILTER=y 312CONFIG_NETFILTER=y
294# CONFIG_NETFILTER_DEBUG is not set 313# CONFIG_NETFILTER_DEBUG is not set
314
315#
316# Core Netfilter Configuration
317#
295CONFIG_NETFILTER_NETLINK=m 318CONFIG_NETFILTER_NETLINK=m
296CONFIG_NETFILTER_NETLINK_QUEUE=m 319CONFIG_NETFILTER_NETLINK_QUEUE=m
297CONFIG_NETFILTER_NETLINK_LOG=m 320CONFIG_NETFILTER_NETLINK_LOG=m
@@ -345,6 +368,7 @@ CONFIG_IP_NF_TARGET_REJECT=m
345CONFIG_IP_NF_TARGET_LOG=m 368CONFIG_IP_NF_TARGET_LOG=m
346CONFIG_IP_NF_TARGET_ULOG=m 369CONFIG_IP_NF_TARGET_ULOG=m
347CONFIG_IP_NF_TARGET_TCPMSS=m 370CONFIG_IP_NF_TARGET_TCPMSS=m
371CONFIG_IP_NF_TARGET_NFQUEUE=m
348CONFIG_IP_NF_NAT=m 372CONFIG_IP_NF_NAT=m
349CONFIG_IP_NF_NAT_NEEDED=y 373CONFIG_IP_NF_NAT_NEEDED=y
350CONFIG_IP_NF_TARGET_MASQUERADE=m 374CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -393,6 +417,7 @@ CONFIG_IP6_NF_MATCH_EUI64=m
393CONFIG_IP6_NF_FILTER=m 417CONFIG_IP6_NF_FILTER=m
394CONFIG_IP6_NF_TARGET_LOG=m 418CONFIG_IP6_NF_TARGET_LOG=m
395CONFIG_IP6_NF_TARGET_REJECT=m 419CONFIG_IP6_NF_TARGET_REJECT=m
420CONFIG_IP6_NF_TARGET_NFQUEUE=m
396CONFIG_IP6_NF_MANGLE=m 421CONFIG_IP6_NF_MANGLE=m
397CONFIG_IP6_NF_TARGET_MARK=m 422CONFIG_IP6_NF_TARGET_MARK=m
398CONFIG_IP6_NF_TARGET_HL=m 423CONFIG_IP6_NF_TARGET_HL=m
@@ -424,10 +449,18 @@ CONFIG_SCTP_HMAC_MD5=y
424CONFIG_NET_DIVERT=y 449CONFIG_NET_DIVERT=y
425# CONFIG_ECONET is not set 450# CONFIG_ECONET is not set
426# CONFIG_WAN_ROUTER is not set 451# CONFIG_WAN_ROUTER is not set
452
453#
454# QoS and/or fair queueing
455#
427CONFIG_NET_SCHED=y 456CONFIG_NET_SCHED=y
428# CONFIG_NET_SCH_CLK_JIFFIES is not set 457# CONFIG_NET_SCH_CLK_JIFFIES is not set
429CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y 458CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
430# CONFIG_NET_SCH_CLK_CPU is not set 459# CONFIG_NET_SCH_CLK_CPU is not set
460
461#
462# Queueing/Scheduling
463#
431CONFIG_NET_SCH_CBQ=m 464CONFIG_NET_SCH_CBQ=m
432CONFIG_NET_SCH_HTB=m 465CONFIG_NET_SCH_HTB=m
433CONFIG_NET_SCH_HFSC=m 466CONFIG_NET_SCH_HFSC=m
@@ -440,8 +473,10 @@ CONFIG_NET_SCH_GRED=m
440CONFIG_NET_SCH_DSMARK=m 473CONFIG_NET_SCH_DSMARK=m
441CONFIG_NET_SCH_NETEM=m 474CONFIG_NET_SCH_NETEM=m
442CONFIG_NET_SCH_INGRESS=m 475CONFIG_NET_SCH_INGRESS=m
443CONFIG_NET_QOS=y 476
444CONFIG_NET_ESTIMATOR=y 477#
478# Classification
479#
445CONFIG_NET_CLS=y 480CONFIG_NET_CLS=y
446CONFIG_NET_CLS_BASIC=m 481CONFIG_NET_CLS_BASIC=m
447CONFIG_NET_CLS_TCINDEX=m 482CONFIG_NET_CLS_TCINDEX=m
@@ -450,13 +485,14 @@ CONFIG_NET_CLS_ROUTE=y
450CONFIG_NET_CLS_FW=m 485CONFIG_NET_CLS_FW=m
451CONFIG_NET_CLS_U32=m 486CONFIG_NET_CLS_U32=m
452# CONFIG_CLS_U32_PERF is not set 487# CONFIG_CLS_U32_PERF is not set
453# CONFIG_NET_CLS_IND is not set
454# CONFIG_CLS_U32_MARK is not set 488# CONFIG_CLS_U32_MARK is not set
455CONFIG_NET_CLS_RSVP=m 489CONFIG_NET_CLS_RSVP=m
456CONFIG_NET_CLS_RSVP6=m 490CONFIG_NET_CLS_RSVP6=m
457# CONFIG_NET_EMATCH is not set 491# CONFIG_NET_EMATCH is not set
458# CONFIG_NET_CLS_ACT is not set 492# CONFIG_NET_CLS_ACT is not set
459CONFIG_NET_CLS_POLICE=y 493CONFIG_NET_CLS_POLICE=y
494# CONFIG_NET_CLS_IND is not set
495CONFIG_NET_ESTIMATOR=y
460 496
461# 497#
462# Network testing 498# Network testing
@@ -509,18 +545,9 @@ CONFIG_CONNECTOR=m
509# CONFIG_BLK_DEV_NBD is not set 545# CONFIG_BLK_DEV_NBD is not set
510# CONFIG_BLK_DEV_RAM is not set 546# CONFIG_BLK_DEV_RAM is not set
511CONFIG_BLK_DEV_RAM_COUNT=16 547CONFIG_BLK_DEV_RAM_COUNT=16
512# CONFIG_LBD is not set
513CONFIG_CDROM_PKTCDVD=m 548CONFIG_CDROM_PKTCDVD=m
514CONFIG_CDROM_PKTCDVD_BUFFERS=8 549CONFIG_CDROM_PKTCDVD_BUFFERS=8
515# CONFIG_CDROM_PKTCDVD_WCACHE is not set 550# CONFIG_CDROM_PKTCDVD_WCACHE is not set
516
517#
518# IO Schedulers
519#
520CONFIG_IOSCHED_NOOP=y
521CONFIG_IOSCHED_AS=y
522CONFIG_IOSCHED_DEADLINE=y
523CONFIG_IOSCHED_CFQ=y
524CONFIG_ATA_OVER_ETH=m 551CONFIG_ATA_OVER_ETH=m
525 552
526# 553#
@@ -564,6 +591,7 @@ CONFIG_SCSI_SAS_ATTRS=m
564# 591#
565# SCSI low-level drivers 592# SCSI low-level drivers
566# 593#
594CONFIG_ISCSI_TCP=m
567CONFIG_SGIWD93_SCSI=y 595CONFIG_SGIWD93_SCSI=y
568# CONFIG_SCSI_SATA is not set 596# CONFIG_SCSI_SATA is not set
569# CONFIG_SCSI_DEBUG is not set 597# CONFIG_SCSI_DEBUG is not set
@@ -599,7 +627,6 @@ CONFIG_TUN=m
599# PHY device support 627# PHY device support
600# 628#
601CONFIG_PHYLIB=m 629CONFIG_PHYLIB=m
602CONFIG_PHYCONTROL=y
603 630
604# 631#
605# MII PHY device drivers 632# MII PHY device drivers
@@ -752,6 +779,7 @@ CONFIG_MAX_RAW_DEVS=256
752# 779#
753# TPM devices 780# TPM devices
754# 781#
782# CONFIG_TELCLOCK is not set
755 783
756# 784#
757# I2C support 785# I2C support
@@ -821,6 +849,10 @@ CONFIG_LOGO_SGI_CLUT224=y
821# CONFIG_USB_ARCH_HAS_OHCI is not set 849# CONFIG_USB_ARCH_HAS_OHCI is not set
822 850
823# 851#
852# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
853#
854
855#
824# USB Gadget Support 856# USB Gadget Support
825# 857#
826# CONFIG_USB_GADGET is not set 858# CONFIG_USB_GADGET is not set
@@ -856,7 +888,7 @@ CONFIG_FS_MBCACHE=y
856CONFIG_FS_POSIX_ACL=y 888CONFIG_FS_POSIX_ACL=y
857CONFIG_XFS_FS=m 889CONFIG_XFS_FS=m
858CONFIG_XFS_EXPORT=y 890CONFIG_XFS_EXPORT=y
859CONFIG_XFS_QUOTA=m 891CONFIG_XFS_QUOTA=y
860CONFIG_XFS_SECURITY=y 892CONFIG_XFS_SECURITY=y
861# CONFIG_XFS_POSIX_ACL is not set 893# CONFIG_XFS_POSIX_ACL is not set
862# CONFIG_XFS_RT is not set 894# CONFIG_XFS_RT is not set
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index d962f61d5b98..72998ec35b0b 100644
--- a/arch/mips/configs/ip27_defconfig
+++ b/arch/mips/configs/ip27_defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:26:04 2005 4# Sun Nov 13 23:56:52 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -60,6 +60,23 @@ CONFIG_KMOD=y
60CONFIG_STOP_MACHINE=y 60CONFIG_STOP_MACHINE=y
61 61
62# 62#
63# Block layer
64#
65
66#
67# IO Schedulers
68#
69CONFIG_IOSCHED_NOOP=y
70CONFIG_IOSCHED_AS=y
71CONFIG_IOSCHED_DEADLINE=y
72CONFIG_IOSCHED_CFQ=y
73CONFIG_DEFAULT_AS=y
74# CONFIG_DEFAULT_DEADLINE is not set
75# CONFIG_DEFAULT_CFQ is not set
76# CONFIG_DEFAULT_NOOP is not set
77CONFIG_DEFAULT_IOSCHED="anticipatory"
78
79#
63# Machine selection 80# Machine selection
64# 81#
65# CONFIG_MIPS_MTX1 is not set 82# CONFIG_MIPS_MTX1 is not set
@@ -186,6 +203,7 @@ CONFIG_DISCONTIGMEM=y
186CONFIG_FLAT_NODE_MEM_MAP=y 203CONFIG_FLAT_NODE_MEM_MAP=y
187CONFIG_NEED_MULTIPLE_NODES=y 204CONFIG_NEED_MULTIPLE_NODES=y
188# CONFIG_SPARSEMEM_STATIC is not set 205# CONFIG_SPARSEMEM_STATIC is not set
206CONFIG_SPLIT_PTLOCK_CPUS=4
189CONFIG_SMP=y 207CONFIG_SMP=y
190CONFIG_NR_CPUS=64 208CONFIG_NR_CPUS=64
191CONFIG_PREEMPT_NONE=y 209CONFIG_PREEMPT_NONE=y
@@ -284,10 +302,18 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_NET_DIVERT is not set 302# CONFIG_NET_DIVERT is not set
285# CONFIG_ECONET is not set 303# CONFIG_ECONET is not set
286# CONFIG_WAN_ROUTER is not set 304# CONFIG_WAN_ROUTER is not set
305
306#
307# QoS and/or fair queueing
308#
287CONFIG_NET_SCHED=y 309CONFIG_NET_SCHED=y
288# CONFIG_NET_SCH_CLK_JIFFIES is not set 310# CONFIG_NET_SCH_CLK_JIFFIES is not set
289CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y 311CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
290# CONFIG_NET_SCH_CLK_CPU is not set 312# CONFIG_NET_SCH_CLK_CPU is not set
313
314#
315# Queueing/Scheduling
316#
291CONFIG_NET_SCH_CBQ=m 317CONFIG_NET_SCH_CBQ=m
292CONFIG_NET_SCH_HTB=m 318CONFIG_NET_SCH_HTB=m
293CONFIG_NET_SCH_HFSC=m 319CONFIG_NET_SCH_HFSC=m
@@ -300,8 +326,10 @@ CONFIG_NET_SCH_GRED=m
300CONFIG_NET_SCH_DSMARK=m 326CONFIG_NET_SCH_DSMARK=m
301CONFIG_NET_SCH_NETEM=m 327CONFIG_NET_SCH_NETEM=m
302CONFIG_NET_SCH_INGRESS=m 328CONFIG_NET_SCH_INGRESS=m
303CONFIG_NET_QOS=y 329
304CONFIG_NET_ESTIMATOR=y 330#
331# Classification
332#
305CONFIG_NET_CLS=y 333CONFIG_NET_CLS=y
306CONFIG_NET_CLS_BASIC=m 334CONFIG_NET_CLS_BASIC=m
307CONFIG_NET_CLS_TCINDEX=m 335CONFIG_NET_CLS_TCINDEX=m
@@ -310,12 +338,13 @@ CONFIG_NET_CLS_ROUTE=y
310CONFIG_NET_CLS_FW=m 338CONFIG_NET_CLS_FW=m
311CONFIG_NET_CLS_U32=m 339CONFIG_NET_CLS_U32=m
312# CONFIG_CLS_U32_PERF is not set 340# CONFIG_CLS_U32_PERF is not set
313# CONFIG_NET_CLS_IND is not set
314CONFIG_NET_CLS_RSVP=m 341CONFIG_NET_CLS_RSVP=m
315CONFIG_NET_CLS_RSVP6=m 342CONFIG_NET_CLS_RSVP6=m
316# CONFIG_NET_EMATCH is not set 343# CONFIG_NET_EMATCH is not set
317# CONFIG_NET_CLS_ACT is not set 344# CONFIG_NET_CLS_ACT is not set
318CONFIG_NET_CLS_POLICE=y 345CONFIG_NET_CLS_POLICE=y
346# CONFIG_NET_CLS_IND is not set
347CONFIG_NET_ESTIMATOR=y
319 348
320# 349#
321# Network testing 350# Network testing
@@ -377,14 +406,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
377CONFIG_CDROM_PKTCDVD=m 406CONFIG_CDROM_PKTCDVD=m
378CONFIG_CDROM_PKTCDVD_BUFFERS=8 407CONFIG_CDROM_PKTCDVD_BUFFERS=8
379# CONFIG_CDROM_PKTCDVD_WCACHE is not set 408# CONFIG_CDROM_PKTCDVD_WCACHE is not set
380
381#
382# IO Schedulers
383#
384CONFIG_IOSCHED_NOOP=y
385CONFIG_IOSCHED_AS=y
386CONFIG_IOSCHED_DEADLINE=y
387CONFIG_IOSCHED_CFQ=y
388CONFIG_ATA_OVER_ETH=m 409CONFIG_ATA_OVER_ETH=m
389 410
390# 411#
@@ -428,6 +449,7 @@ CONFIG_SCSI_SAS_ATTRS=m
428# 449#
429# SCSI low-level drivers 450# SCSI low-level drivers
430# 451#
452CONFIG_ISCSI_TCP=m
431# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 453# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
432# CONFIG_SCSI_3W_9XXX is not set 454# CONFIG_SCSI_3W_9XXX is not set
433# CONFIG_SCSI_ACARD is not set 455# CONFIG_SCSI_ACARD is not set
@@ -437,6 +459,7 @@ CONFIG_SCSI_SAS_ATTRS=m
437# CONFIG_SCSI_AIC79XX is not set 459# CONFIG_SCSI_AIC79XX is not set
438# CONFIG_MEGARAID_NEWGEN is not set 460# CONFIG_MEGARAID_NEWGEN is not set
439# CONFIG_MEGARAID_LEGACY is not set 461# CONFIG_MEGARAID_LEGACY is not set
462# CONFIG_MEGARAID_SAS is not set
440# CONFIG_SCSI_SATA is not set 463# CONFIG_SCSI_SATA is not set
441# CONFIG_SCSI_DMX3191D is not set 464# CONFIG_SCSI_DMX3191D is not set
442# CONFIG_SCSI_FUTURE_DOMAIN is not set 465# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -447,7 +470,6 @@ CONFIG_SCSI_SAS_ATTRS=m
447# CONFIG_SCSI_IPR is not set 470# CONFIG_SCSI_IPR is not set
448# CONFIG_SCSI_QLOGIC_FC is not set 471# CONFIG_SCSI_QLOGIC_FC is not set
449CONFIG_SCSI_QLOGIC_1280=y 472CONFIG_SCSI_QLOGIC_1280=y
450CONFIG_SCSI_QLOGIC_1280_1040=y
451CONFIG_SCSI_QLA2XXX=y 473CONFIG_SCSI_QLA2XXX=y
452# CONFIG_SCSI_QLA21XX is not set 474# CONFIG_SCSI_QLA21XX is not set
453# CONFIG_SCSI_QLA22XX is not set 475# CONFIG_SCSI_QLA22XX is not set
@@ -487,6 +509,7 @@ CONFIG_DM_MULTIPATH_EMC=m
487# CONFIG_FUSION is not set 509# CONFIG_FUSION is not set
488# CONFIG_FUSION_SPI is not set 510# CONFIG_FUSION_SPI is not set
489# CONFIG_FUSION_FC is not set 511# CONFIG_FUSION_FC is not set
512# CONFIG_FUSION_SAS is not set
490 513
491# 514#
492# IEEE 1394 (FireWire) support 515# IEEE 1394 (FireWire) support
@@ -516,7 +539,6 @@ CONFIG_NETDEVICES=y
516# PHY device support 539# PHY device support
517# 540#
518CONFIG_PHYLIB=m 541CONFIG_PHYLIB=m
519CONFIG_PHYCONTROL=y
520 542
521# 543#
522# MII PHY device drivers 544# MII PHY device drivers
@@ -532,8 +554,12 @@ CONFIG_CICADA_PHY=m
532# 554#
533CONFIG_NET_ETHERNET=y 555CONFIG_NET_ETHERNET=y
534CONFIG_MII=y 556CONFIG_MII=y
557CONFIG_SGI_IOC3_ETH=y
558CONFIG_SGI_IOC3_ETH_HW_RX_CSUM=y
559CONFIG_SGI_IOC3_ETH_HW_TX_CSUM=y
535# CONFIG_HAPPYMEAL is not set 560# CONFIG_HAPPYMEAL is not set
536# CONFIG_SUNGEM is not set 561# CONFIG_SUNGEM is not set
562# CONFIG_CASSINI is not set
537# CONFIG_NET_VENDOR_3COM is not set 563# CONFIG_NET_VENDOR_3COM is not set
538 564
539# 565#
@@ -672,6 +698,7 @@ CONFIG_SGI_IP27_RTC=y
672# TPM devices 698# TPM devices
673# 699#
674# CONFIG_TCG_TPM is not set 700# CONFIG_TCG_TPM is not set
701# CONFIG_TELCLOCK is not set
675 702
676# 703#
677# I2C support 704# I2C support
@@ -725,6 +752,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
725# CONFIG_USB is not set 752# CONFIG_USB is not set
726 753
727# 754#
755# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
756#
757
758#
728# USB Gadget Support 759# USB Gadget Support
729# 760#
730# CONFIG_USB_GADGET is not set 761# CONFIG_USB_GADGET is not set
@@ -762,7 +793,7 @@ CONFIG_FS_MBCACHE=y
762# CONFIG_JFS_FS is not set 793# CONFIG_JFS_FS is not set
763CONFIG_FS_POSIX_ACL=y 794CONFIG_FS_POSIX_ACL=y
764CONFIG_XFS_FS=m 795CONFIG_XFS_FS=m
765CONFIG_XFS_QUOTA=m 796CONFIG_XFS_QUOTA=y
766CONFIG_XFS_SECURITY=y 797CONFIG_XFS_SECURITY=y
767CONFIG_XFS_POSIX_ACL=y 798CONFIG_XFS_POSIX_ACL=y
768# CONFIG_XFS_RT is not set 799# CONFIG_XFS_RT is not set
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index bf8fb95b21dc..955e30f1b1ad 100644
--- a/arch/mips/configs/ip32_defconfig
+++ b/arch/mips/configs/ip32_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:07 2005 4# Mon Nov 7 23:05:32 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -52,6 +52,23 @@ CONFIG_BASE_SMALL=0
52# CONFIG_MODULES is not set 52# CONFIG_MODULES is not set
53 53
54# 54#
55# Block layer
56#
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
55# Machine selection 72# Machine selection
56# 73#
57# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
182# CONFIG_PREEMPT_NONE is not set 200# CONFIG_PREEMPT_NONE is not set
183CONFIG_PREEMPT_VOLUNTARY=y 201CONFIG_PREEMPT_VOLUNTARY=y
184# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -271,6 +289,10 @@ CONFIG_TCP_CONG_BIC=y
271# CONFIG_NET_DIVERT is not set 289# CONFIG_NET_DIVERT is not set
272# CONFIG_ECONET is not set 290# CONFIG_ECONET is not set
273# CONFIG_WAN_ROUTER is not set 291# CONFIG_WAN_ROUTER is not set
292
293#
294# QoS and/or fair queueing
295#
274# CONFIG_NET_SCHED is not set 296# CONFIG_NET_SCHED is not set
275# CONFIG_NET_CLS_ROUTE is not set 297# CONFIG_NET_CLS_ROUTE is not set
276 298
@@ -302,6 +324,7 @@ CONFIG_FW_LOADER=y
302# Connector - unified userspace <-> kernelspace linker 324# Connector - unified userspace <-> kernelspace linker
303# 325#
304CONFIG_CONNECTOR=y 326CONFIG_CONNECTOR=y
327CONFIG_PROC_EVENTS=y
305 328
306# 329#
307# Memory Technology Devices (MTD) 330# Memory Technology Devices (MTD)
@@ -334,14 +357,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
334CONFIG_CDROM_PKTCDVD=y 357CONFIG_CDROM_PKTCDVD=y
335CONFIG_CDROM_PKTCDVD_BUFFERS=8 358CONFIG_CDROM_PKTCDVD_BUFFERS=8
336# CONFIG_CDROM_PKTCDVD_WCACHE is not set 359# CONFIG_CDROM_PKTCDVD_WCACHE is not set
337
338#
339# IO Schedulers
340#
341CONFIG_IOSCHED_NOOP=y
342CONFIG_IOSCHED_AS=y
343CONFIG_IOSCHED_DEADLINE=y
344CONFIG_IOSCHED_CFQ=y
345CONFIG_ATA_OVER_ETH=y 360CONFIG_ATA_OVER_ETH=y
346 361
347# 362#
@@ -385,6 +400,7 @@ CONFIG_SCSI_SAS_ATTRS=y
385# 400#
386# SCSI low-level drivers 401# SCSI low-level drivers
387# 402#
403# CONFIG_ISCSI_TCP is not set
388# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 404# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
389# CONFIG_SCSI_3W_9XXX is not set 405# CONFIG_SCSI_3W_9XXX is not set
390# CONFIG_SCSI_ACARD is not set 406# CONFIG_SCSI_ACARD is not set
@@ -399,6 +415,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
399# CONFIG_SCSI_AIC79XX is not set 415# CONFIG_SCSI_AIC79XX is not set
400# CONFIG_MEGARAID_NEWGEN is not set 416# CONFIG_MEGARAID_NEWGEN is not set
401# CONFIG_MEGARAID_LEGACY is not set 417# CONFIG_MEGARAID_LEGACY is not set
418# CONFIG_MEGARAID_SAS is not set
402# CONFIG_SCSI_SATA is not set 419# CONFIG_SCSI_SATA is not set
403# CONFIG_SCSI_DMX3191D is not set 420# CONFIG_SCSI_DMX3191D is not set
404# CONFIG_SCSI_FUTURE_DOMAIN is not set 421# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -432,6 +449,7 @@ CONFIG_SCSI_QLA2XXX=y
432# CONFIG_FUSION is not set 449# CONFIG_FUSION is not set
433# CONFIG_FUSION_SPI is not set 450# CONFIG_FUSION_SPI is not set
434# CONFIG_FUSION_FC is not set 451# CONFIG_FUSION_FC is not set
452# CONFIG_FUSION_SAS is not set
435 453
436# 454#
437# IEEE 1394 (FireWire) support 455# IEEE 1394 (FireWire) support
@@ -461,7 +479,6 @@ CONFIG_NETDEVICES=y
461# PHY device support 479# PHY device support
462# 480#
463CONFIG_PHYLIB=y 481CONFIG_PHYLIB=y
464CONFIG_PHYCONTROL=y
465 482
466# 483#
467# MII PHY device drivers 484# MII PHY device drivers
@@ -480,6 +497,7 @@ CONFIG_NET_ETHERNET=y
480CONFIG_SGI_O2MACE_ETH=y 497CONFIG_SGI_O2MACE_ETH=y
481# CONFIG_HAPPYMEAL is not set 498# CONFIG_HAPPYMEAL is not set
482# CONFIG_SUNGEM is not set 499# CONFIG_SUNGEM is not set
500# CONFIG_CASSINI is not set
483# CONFIG_NET_VENDOR_3COM is not set 501# CONFIG_NET_VENDOR_3COM is not set
484 502
485# 503#
@@ -637,6 +655,7 @@ CONFIG_LEGACY_PTY_COUNT=256
637# TPM devices 655# TPM devices
638# 656#
639# CONFIG_TCG_TPM is not set 657# CONFIG_TCG_TPM is not set
658# CONFIG_TELCLOCK is not set
640 659
641# 660#
642# I2C support 661# I2C support
@@ -696,6 +715,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
696# CONFIG_USB is not set 715# CONFIG_USB is not set
697 716
698# 717#
718# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
719#
720
721#
699# USB Gadget Support 722# USB Gadget Support
700# 723#
701# CONFIG_USB_GADGET is not set 724# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig
index 0940771bafb1..f631385217db 100644
--- a/arch/mips/configs/it8172_defconfig
+++ b/arch/mips/configs/it8172_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:09 2005 4# Thu Nov 10 13:42:45 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -181,6 +199,7 @@ CONFIG_FLATMEM_MANUAL=y
181CONFIG_FLATMEM=y 199CONFIG_FLATMEM=y
182CONFIG_FLAT_NODE_MEM_MAP=y 200CONFIG_FLAT_NODE_MEM_MAP=y
183# CONFIG_SPARSEMEM_STATIC is not set 201# CONFIG_SPARSEMEM_STATIC is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4
184CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -266,6 +285,10 @@ CONFIG_TCP_CONG_BIC=y
266# CONFIG_NET_DIVERT is not set 285# CONFIG_NET_DIVERT is not set
267# CONFIG_ECONET is not set 286# CONFIG_ECONET is not set
268# CONFIG_WAN_ROUTER is not set 287# CONFIG_WAN_ROUTER is not set
288
289#
290# QoS and/or fair queueing
291#
269# CONFIG_NET_SCHED is not set 292# CONFIG_NET_SCHED is not set
270# CONFIG_NET_CLS_ROUTE is not set 293# CONFIG_NET_CLS_ROUTE is not set
271 294
@@ -315,6 +338,7 @@ CONFIG_MTD_CHAR=y
315# CONFIG_FTL is not set 338# CONFIG_FTL is not set
316# CONFIG_NFTL is not set 339# CONFIG_NFTL is not set
317# CONFIG_INFTL is not set 340# CONFIG_INFTL is not set
341# CONFIG_RFD_FTL is not set
318 342
319# 343#
320# RAM/ROM/Flash chip drivers 344# RAM/ROM/Flash chip drivers
@@ -373,6 +397,11 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=2
373# CONFIG_MTD_NAND is not set 397# CONFIG_MTD_NAND is not set
374 398
375# 399#
400# OneNAND Flash Device Drivers
401#
402# CONFIG_MTD_ONENAND is not set
403
404#
376# Parallel port support 405# Parallel port support
377# 406#
378# CONFIG_PARPORT is not set 407# CONFIG_PARPORT is not set
@@ -390,18 +419,9 @@ CONFIG_BLK_DEV_LOOP=y
390# CONFIG_BLK_DEV_NBD is not set 419# CONFIG_BLK_DEV_NBD is not set
391# CONFIG_BLK_DEV_RAM is not set 420# CONFIG_BLK_DEV_RAM is not set
392CONFIG_BLK_DEV_RAM_COUNT=16 421CONFIG_BLK_DEV_RAM_COUNT=16
393# CONFIG_LBD is not set
394CONFIG_CDROM_PKTCDVD=m 422CONFIG_CDROM_PKTCDVD=m
395CONFIG_CDROM_PKTCDVD_BUFFERS=8 423CONFIG_CDROM_PKTCDVD_BUFFERS=8
396# CONFIG_CDROM_PKTCDVD_WCACHE is not set 424# CONFIG_CDROM_PKTCDVD_WCACHE is not set
397
398#
399# IO Schedulers
400#
401CONFIG_IOSCHED_NOOP=y
402CONFIG_IOSCHED_AS=y
403CONFIG_IOSCHED_DEADLINE=y
404CONFIG_IOSCHED_CFQ=y
405CONFIG_ATA_OVER_ETH=m 425CONFIG_ATA_OVER_ETH=m
406 426
407# 427#
@@ -467,7 +487,6 @@ CONFIG_NETDEVICES=y
467# PHY device support 487# PHY device support
468# 488#
469CONFIG_PHYLIB=m 489CONFIG_PHYLIB=m
470CONFIG_PHYCONTROL=y
471 490
472# 491#
473# MII PHY device drivers 492# MII PHY device drivers
@@ -609,6 +628,7 @@ CONFIG_LEGACY_PTY_COUNT=256
609# 628#
610# TPM devices 629# TPM devices
611# 630#
631# CONFIG_TELCLOCK is not set
612 632
613# 633#
614# I2C support 634# I2C support
@@ -669,10 +689,10 @@ CONFIG_SOUND=y
669# Open Sound System 689# Open Sound System
670# 690#
671CONFIG_SOUND_PRIME=y 691CONFIG_SOUND_PRIME=y
692# CONFIG_OBSOLETE_OSS_DRIVER is not set
672CONFIG_SOUND_IT8172=y 693CONFIG_SOUND_IT8172=y
673# CONFIG_SOUND_MSNDCLAS is not set 694# CONFIG_SOUND_MSNDCLAS is not set
674# CONFIG_SOUND_MSNDPIN is not set 695# CONFIG_SOUND_MSNDPIN is not set
675# CONFIG_SOUND_AD1980 is not set
676 696
677# 697#
678# USB support 698# USB support
@@ -681,6 +701,10 @@ CONFIG_SOUND_IT8172=y
681# CONFIG_USB_ARCH_HAS_OHCI is not set 701# CONFIG_USB_ARCH_HAS_OHCI is not set
682 702
683# 703#
704# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
705#
706
707#
684# USB Gadget Support 708# USB Gadget Support
685# 709#
686# CONFIG_USB_GADGET is not set 710# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig
index 9ba61dfc490d..8d94ac753e78 100644
--- a/arch/mips/configs/ivr_defconfig
+++ b/arch/mips/configs/ivr_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:12 2005 4# Mon Nov 7 23:05:38 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -178,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
178CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
179CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
180# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
181CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
182# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
183# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -265,6 +284,10 @@ CONFIG_TCP_CONG_BIC=y
265# CONFIG_NET_DIVERT is not set 284# CONFIG_NET_DIVERT is not set
266# CONFIG_ECONET is not set 285# CONFIG_ECONET is not set
267# CONFIG_WAN_ROUTER is not set 286# CONFIG_WAN_ROUTER is not set
287
288#
289# QoS and/or fair queueing
290#
268# CONFIG_NET_SCHED is not set 291# CONFIG_NET_SCHED is not set
269# CONFIG_NET_CLS_ROUTE is not set 292# CONFIG_NET_CLS_ROUTE is not set
270 293
@@ -324,18 +347,9 @@ CONFIG_CONNECTOR=m
324# CONFIG_BLK_DEV_SX8 is not set 347# CONFIG_BLK_DEV_SX8 is not set
325# CONFIG_BLK_DEV_RAM is not set 348# CONFIG_BLK_DEV_RAM is not set
326CONFIG_BLK_DEV_RAM_COUNT=16 349CONFIG_BLK_DEV_RAM_COUNT=16
327# CONFIG_LBD is not set
328CONFIG_CDROM_PKTCDVD=m 350CONFIG_CDROM_PKTCDVD=m
329CONFIG_CDROM_PKTCDVD_BUFFERS=8 351CONFIG_CDROM_PKTCDVD_BUFFERS=8
330# CONFIG_CDROM_PKTCDVD_WCACHE is not set 352# CONFIG_CDROM_PKTCDVD_WCACHE is not set
331
332#
333# IO Schedulers
334#
335CONFIG_IOSCHED_NOOP=y
336CONFIG_IOSCHED_AS=y
337CONFIG_IOSCHED_DEADLINE=y
338CONFIG_IOSCHED_CFQ=y
339CONFIG_ATA_OVER_ETH=m 353CONFIG_ATA_OVER_ETH=m
340 354
341# 355#
@@ -409,7 +423,6 @@ CONFIG_NETDEVICES=y
409# PHY device support 423# PHY device support
410# 424#
411CONFIG_PHYLIB=m 425CONFIG_PHYLIB=m
412CONFIG_PHYCONTROL=y
413 426
414# 427#
415# MII PHY device drivers 428# MII PHY device drivers
@@ -427,6 +440,7 @@ CONFIG_NET_ETHERNET=y
427# CONFIG_MII is not set 440# CONFIG_MII is not set
428# CONFIG_HAPPYMEAL is not set 441# CONFIG_HAPPYMEAL is not set
429# CONFIG_SUNGEM is not set 442# CONFIG_SUNGEM is not set
443# CONFIG_CASSINI is not set
430# CONFIG_NET_VENDOR_3COM is not set 444# CONFIG_NET_VENDOR_3COM is not set
431 445
432# 446#
@@ -539,7 +553,8 @@ CONFIG_VT_CONSOLE=y
539CONFIG_HW_CONSOLE=y 553CONFIG_HW_CONSOLE=y
540# CONFIG_SERIAL_NONSTANDARD is not set 554# CONFIG_SERIAL_NONSTANDARD is not set
541CONFIG_QTRONIX_KEYBOARD=y 555CONFIG_QTRONIX_KEYBOARD=y
542# CONFIG_IT8172_SCR0 is not set 556CONFIG_IT8172_SCR0=y
557CONFIG_IT8172_SCR1=y
543 558
544# 559#
545# Serial drivers 560# Serial drivers
@@ -583,6 +598,7 @@ CONFIG_RTC=y
583# TPM devices 598# TPM devices
584# 599#
585# CONFIG_TCG_TPM is not set 600# CONFIG_TCG_TPM is not set
601# CONFIG_TELCLOCK is not set
586 602
587# 603#
588# I2C support 604# I2C support
@@ -642,6 +658,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
642# CONFIG_USB is not set 658# CONFIG_USB is not set
643 659
644# 660#
661# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
662#
663
664#
645# USB Gadget Support 665# USB Gadget Support
646# 666#
647# CONFIG_USB_GADGET is not set 667# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig
index 21b2b8042f91..a8b4c9a9a63b 100644
--- a/arch/mips/configs/jaguar-atx_defconfig
+++ b/arch/mips/configs/jaguar-atx_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:14 2005 4# Mon Nov 7 23:05:41 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -55,6 +55,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
55CONFIG_KMOD=y 55CONFIG_KMOD=y
56 56
57# 57#
58# Block layer
59#
60# CONFIG_LBD is not set
61
62#
63# IO Schedulers
64#
65CONFIG_IOSCHED_NOOP=y
66CONFIG_IOSCHED_AS=y
67CONFIG_IOSCHED_DEADLINE=y
68CONFIG_IOSCHED_CFQ=y
69CONFIG_DEFAULT_AS=y
70# CONFIG_DEFAULT_DEADLINE is not set
71# CONFIG_DEFAULT_CFQ is not set
72# CONFIG_DEFAULT_NOOP is not set
73CONFIG_DEFAULT_IOSCHED="anticipatory"
74
75#
58# Machine selection 76# Machine selection
59# 77#
60# CONFIG_MIPS_MTX1 is not set 78# CONFIG_MIPS_MTX1 is not set
@@ -184,6 +202,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
184CONFIG_FLATMEM=y 202CONFIG_FLATMEM=y
185CONFIG_FLAT_NODE_MEM_MAP=y 203CONFIG_FLAT_NODE_MEM_MAP=y
186# CONFIG_SPARSEMEM_STATIC is not set 204# CONFIG_SPARSEMEM_STATIC is not set
205CONFIG_SPLIT_PTLOCK_CPUS=4
187# CONFIG_SMP is not set 206# CONFIG_SMP is not set
188CONFIG_PREEMPT_NONE=y 207CONFIG_PREEMPT_NONE=y
189# CONFIG_PREEMPT_VOLUNTARY is not set 208# CONFIG_PREEMPT_VOLUNTARY is not set
@@ -259,6 +278,10 @@ CONFIG_IPV6_TUNNEL=m
259# CONFIG_LLC2 is not set 278# CONFIG_LLC2 is not set
260# CONFIG_IPX is not set 279# CONFIG_IPX is not set
261# CONFIG_ATALK is not set 280# CONFIG_ATALK is not set
281
282#
283# QoS and/or fair queueing
284#
262# CONFIG_NET_SCHED is not set 285# CONFIG_NET_SCHED is not set
263# CONFIG_NET_CLS_ROUTE is not set 286# CONFIG_NET_CLS_ROUTE is not set
264 287
@@ -317,18 +340,9 @@ CONFIG_CONNECTOR=m
317# CONFIG_BLK_DEV_SX8 is not set 340# CONFIG_BLK_DEV_SX8 is not set
318# CONFIG_BLK_DEV_RAM is not set 341# CONFIG_BLK_DEV_RAM is not set
319CONFIG_BLK_DEV_RAM_COUNT=16 342CONFIG_BLK_DEV_RAM_COUNT=16
320# CONFIG_LBD is not set
321CONFIG_CDROM_PKTCDVD=m 343CONFIG_CDROM_PKTCDVD=m
322CONFIG_CDROM_PKTCDVD_BUFFERS=8 344CONFIG_CDROM_PKTCDVD_BUFFERS=8
323# CONFIG_CDROM_PKTCDVD_WCACHE is not set 345# CONFIG_CDROM_PKTCDVD_WCACHE is not set
324
325#
326# IO Schedulers
327#
328CONFIG_IOSCHED_NOOP=y
329CONFIG_IOSCHED_AS=y
330CONFIG_IOSCHED_DEADLINE=y
331CONFIG_IOSCHED_CFQ=y
332CONFIG_ATA_OVER_ETH=m 346CONFIG_ATA_OVER_ETH=m
333 347
334# 348#
@@ -380,7 +394,6 @@ CONFIG_NETDEVICES=y
380# PHY device support 394# PHY device support
381# 395#
382CONFIG_PHYLIB=m 396CONFIG_PHYLIB=m
383CONFIG_PHYCONTROL=y
384 397
385# 398#
386# MII PHY device drivers 399# MII PHY device drivers
@@ -398,6 +411,7 @@ CONFIG_NET_ETHERNET=y
398CONFIG_MII=y 411CONFIG_MII=y
399# CONFIG_HAPPYMEAL is not set 412# CONFIG_HAPPYMEAL is not set
400# CONFIG_SUNGEM is not set 413# CONFIG_SUNGEM is not set
414# CONFIG_CASSINI is not set
401# CONFIG_NET_VENDOR_3COM is not set 415# CONFIG_NET_VENDOR_3COM is not set
402 416
403# 417#
@@ -592,6 +606,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
592# CONFIG_USB is not set 606# CONFIG_USB is not set
593 607
594# 608#
609# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
610#
611
612#
595# USB Gadget Support 613# USB Gadget Support
596# 614#
597# CONFIG_USB_GADGET is not set 615# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 6390a753e80b..c0ac5c793ec7 100644
--- a/arch/mips/configs/jmr3927_defconfig
+++ b/arch/mips/configs/jmr3927_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:17 2005 4# Mon Nov 7 23:05:44 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,24 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56# CONFIG_LBD is not set
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
54# Machine selection 72# Machine selection
55# 73#
56# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -168,6 +186,7 @@ CONFIG_FLATMEM_MANUAL=y
168CONFIG_FLATMEM=y 186CONFIG_FLATMEM=y
169CONFIG_FLAT_NODE_MEM_MAP=y 187CONFIG_FLAT_NODE_MEM_MAP=y
170# CONFIG_SPARSEMEM_STATIC is not set 188# CONFIG_SPARSEMEM_STATIC is not set
189CONFIG_SPLIT_PTLOCK_CPUS=4
171CONFIG_PREEMPT_NONE=y 190CONFIG_PREEMPT_NONE=y
172# CONFIG_PREEMPT_VOLUNTARY is not set 191# CONFIG_PREEMPT_VOLUNTARY is not set
173# CONFIG_PREEMPT is not set 192# CONFIG_PREEMPT is not set
@@ -256,6 +275,10 @@ CONFIG_TCP_CONG_BIC=y
256# CONFIG_NET_DIVERT is not set 275# CONFIG_NET_DIVERT is not set
257# CONFIG_ECONET is not set 276# CONFIG_ECONET is not set
258# CONFIG_WAN_ROUTER is not set 277# CONFIG_WAN_ROUTER is not set
278
279#
280# QoS and/or fair queueing
281#
259# CONFIG_NET_SCHED is not set 282# CONFIG_NET_SCHED is not set
260# CONFIG_NET_CLS_ROUTE is not set 283# CONFIG_NET_CLS_ROUTE is not set
261 284
@@ -287,6 +310,7 @@ CONFIG_FW_LOADER=y
287# Connector - unified userspace <-> kernelspace linker 310# Connector - unified userspace <-> kernelspace linker
288# 311#
289CONFIG_CONNECTOR=y 312CONFIG_CONNECTOR=y
313CONFIG_PROC_EVENTS=y
290 314
291# 315#
292# Memory Technology Devices (MTD) 316# Memory Technology Devices (MTD)
@@ -315,18 +339,9 @@ CONFIG_CONNECTOR=y
315# CONFIG_BLK_DEV_SX8 is not set 339# CONFIG_BLK_DEV_SX8 is not set
316# CONFIG_BLK_DEV_RAM is not set 340# CONFIG_BLK_DEV_RAM is not set
317CONFIG_BLK_DEV_RAM_COUNT=16 341CONFIG_BLK_DEV_RAM_COUNT=16
318# CONFIG_LBD is not set
319CONFIG_CDROM_PKTCDVD=y 342CONFIG_CDROM_PKTCDVD=y
320CONFIG_CDROM_PKTCDVD_BUFFERS=8 343CONFIG_CDROM_PKTCDVD_BUFFERS=8
321# CONFIG_CDROM_PKTCDVD_WCACHE is not set 344# CONFIG_CDROM_PKTCDVD_WCACHE is not set
322
323#
324# IO Schedulers
325#
326CONFIG_IOSCHED_NOOP=y
327CONFIG_IOSCHED_AS=y
328CONFIG_IOSCHED_DEADLINE=y
329CONFIG_IOSCHED_CFQ=y
330CONFIG_ATA_OVER_ETH=y 345CONFIG_ATA_OVER_ETH=y
331 346
332# 347#
@@ -378,7 +393,6 @@ CONFIG_NETDEVICES=y
378# PHY device support 393# PHY device support
379# 394#
380CONFIG_PHYLIB=y 395CONFIG_PHYLIB=y
381CONFIG_PHYCONTROL=y
382 396
383# 397#
384# MII PHY device drivers 398# MII PHY device drivers
@@ -396,6 +410,7 @@ CONFIG_NET_ETHERNET=y
396# CONFIG_MII is not set 410# CONFIG_MII is not set
397# CONFIG_HAPPYMEAL is not set 411# CONFIG_HAPPYMEAL is not set
398# CONFIG_SUNGEM is not set 412# CONFIG_SUNGEM is not set
413# CONFIG_CASSINI is not set
399# CONFIG_NET_VENDOR_3COM is not set 414# CONFIG_NET_VENDOR_3COM is not set
400 415
401# 416#
@@ -561,6 +576,7 @@ CONFIG_LEGACY_PTY_COUNT=256
561# TPM devices 576# TPM devices
562# 577#
563# CONFIG_TCG_TPM is not set 578# CONFIG_TCG_TPM is not set
579# CONFIG_TELCLOCK is not set
564 580
565# 581#
566# I2C support 582# I2C support
@@ -603,7 +619,6 @@ CONFIG_FB=y
603# CONFIG_FB_CFB_FILLRECT is not set 619# CONFIG_FB_CFB_FILLRECT is not set
604# CONFIG_FB_CFB_COPYAREA is not set 620# CONFIG_FB_CFB_COPYAREA is not set
605# CONFIG_FB_CFB_IMAGEBLIT is not set 621# CONFIG_FB_CFB_IMAGEBLIT is not set
606# CONFIG_FB_SOFT_CURSOR is not set
607# CONFIG_FB_MACMODES is not set 622# CONFIG_FB_MACMODES is not set
608# CONFIG_FB_MODE_HELPERS is not set 623# CONFIG_FB_MODE_HELPERS is not set
609# CONFIG_FB_TILEBLITTING is not set 624# CONFIG_FB_TILEBLITTING is not set
@@ -612,6 +627,7 @@ CONFIG_FB=y
612# CONFIG_FB_CYBER2000 is not set 627# CONFIG_FB_CYBER2000 is not set
613# CONFIG_FB_ASILIANT is not set 628# CONFIG_FB_ASILIANT is not set
614# CONFIG_FB_IMSTT is not set 629# CONFIG_FB_IMSTT is not set
630# CONFIG_FB_S1D13XXX is not set
615# CONFIG_FB_NVIDIA is not set 631# CONFIG_FB_NVIDIA is not set
616# CONFIG_FB_RIVA is not set 632# CONFIG_FB_RIVA is not set
617# CONFIG_FB_MATROX is not set 633# CONFIG_FB_MATROX is not set
@@ -628,7 +644,6 @@ CONFIG_FB=y
628# CONFIG_FB_SMIVGX is not set 644# CONFIG_FB_SMIVGX is not set
629# CONFIG_FB_CYBLA is not set 645# CONFIG_FB_CYBLA is not set
630# CONFIG_FB_TRIDENT is not set 646# CONFIG_FB_TRIDENT is not set
631# CONFIG_FB_S1D13XXX is not set
632# CONFIG_FB_VIRTUAL is not set 647# CONFIG_FB_VIRTUAL is not set
633 648
634# 649#
@@ -657,6 +672,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
657# CONFIG_USB is not set 672# CONFIG_USB is not set
658 673
659# 674#
675# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
676#
677
678#
660# USB Gadget Support 679# USB Gadget Support
661# 680#
662# CONFIG_USB_GADGET is not set 681# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig
index 03cd0ca6e639..f2bd620ff0fa 100644
--- a/arch/mips/configs/lasat200_defconfig
+++ b/arch/mips/configs/lasat200_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:19 2005 4# Mon Nov 7 23:05:47 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -184,6 +202,7 @@ CONFIG_FLATMEM_MANUAL=y
184CONFIG_FLATMEM=y 202CONFIG_FLATMEM=y
185CONFIG_FLAT_NODE_MEM_MAP=y 203CONFIG_FLAT_NODE_MEM_MAP=y
186# CONFIG_SPARSEMEM_STATIC is not set 204# CONFIG_SPARSEMEM_STATIC is not set
205CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_PREEMPT_NONE=y 206CONFIG_PREEMPT_NONE=y
188# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
189# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
@@ -267,6 +286,10 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_NET_DIVERT is not set 286# CONFIG_NET_DIVERT is not set
268# CONFIG_ECONET is not set 287# CONFIG_ECONET is not set
269# CONFIG_WAN_ROUTER is not set 288# CONFIG_WAN_ROUTER is not set
289
290#
291# QoS and/or fair queueing
292#
270# CONFIG_NET_SCHED is not set 293# CONFIG_NET_SCHED is not set
271# CONFIG_NET_CLS_ROUTE is not set 294# CONFIG_NET_CLS_ROUTE is not set
272 295
@@ -317,6 +340,7 @@ CONFIG_MTD_BLOCK=y
317# CONFIG_FTL is not set 340# CONFIG_FTL is not set
318# CONFIG_NFTL is not set 341# CONFIG_NFTL is not set
319# CONFIG_INFTL is not set 342# CONFIG_INFTL is not set
343# CONFIG_RFD_FTL is not set
320 344
321# 345#
322# RAM/ROM/Flash chip drivers 346# RAM/ROM/Flash chip drivers
@@ -375,6 +399,11 @@ CONFIG_MTD_LASAT=y
375# CONFIG_MTD_NAND is not set 399# CONFIG_MTD_NAND is not set
376 400
377# 401#
402# OneNAND Flash Device Drivers
403#
404# CONFIG_MTD_ONENAND is not set
405
406#
378# Parallel port support 407# Parallel port support
379# 408#
380# CONFIG_PARPORT is not set 409# CONFIG_PARPORT is not set
@@ -396,18 +425,9 @@ CONFIG_MTD_LASAT=y
396# CONFIG_BLK_DEV_SX8 is not set 425# CONFIG_BLK_DEV_SX8 is not set
397# CONFIG_BLK_DEV_RAM is not set 426# CONFIG_BLK_DEV_RAM is not set
398CONFIG_BLK_DEV_RAM_COUNT=16 427CONFIG_BLK_DEV_RAM_COUNT=16
399# CONFIG_LBD is not set
400CONFIG_CDROM_PKTCDVD=m 428CONFIG_CDROM_PKTCDVD=m
401CONFIG_CDROM_PKTCDVD_BUFFERS=8 429CONFIG_CDROM_PKTCDVD_BUFFERS=8
402# CONFIG_CDROM_PKTCDVD_WCACHE is not set 430# CONFIG_CDROM_PKTCDVD_WCACHE is not set
403
404#
405# IO Schedulers
406#
407CONFIG_IOSCHED_NOOP=y
408CONFIG_IOSCHED_AS=y
409CONFIG_IOSCHED_DEADLINE=y
410CONFIG_IOSCHED_CFQ=y
411CONFIG_ATA_OVER_ETH=m 431CONFIG_ATA_OVER_ETH=m
412 432
413# 433#
@@ -511,7 +531,6 @@ CONFIG_NETDEVICES=y
511# PHY device support 531# PHY device support
512# 532#
513CONFIG_PHYLIB=m 533CONFIG_PHYLIB=m
514CONFIG_PHYCONTROL=y
515 534
516# 535#
517# MII PHY device drivers 536# MII PHY device drivers
@@ -529,6 +548,7 @@ CONFIG_NET_ETHERNET=y
529# CONFIG_MII is not set 548# CONFIG_MII is not set
530# CONFIG_HAPPYMEAL is not set 549# CONFIG_HAPPYMEAL is not set
531# CONFIG_SUNGEM is not set 550# CONFIG_SUNGEM is not set
551# CONFIG_CASSINI is not set
532# CONFIG_NET_VENDOR_3COM is not set 552# CONFIG_NET_VENDOR_3COM is not set
533 553
534# 554#
@@ -684,6 +704,7 @@ CONFIG_LEGACY_PTY_COUNT=256
684# TPM devices 704# TPM devices
685# 705#
686# CONFIG_TCG_TPM is not set 706# CONFIG_TCG_TPM is not set
707# CONFIG_TELCLOCK is not set
687 708
688# 709#
689# I2C support 710# I2C support
@@ -743,6 +764,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
743# CONFIG_USB is not set 764# CONFIG_USB is not set
744 765
745# 766#
767# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
768#
769
770#
746# USB Gadget Support 771# USB Gadget Support
747# 772#
748# CONFIG_USB_GADGET is not set 773# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index 2acdec959dd0..e48e1de442b4 100644
--- a/arch/mips/configs/malta_defconfig
+++ b/arch/mips/configs/malta_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:22 2005 4# Thu Nov 10 13:42:55 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -197,6 +215,7 @@ CONFIG_FLATMEM_MANUAL=y
197CONFIG_FLATMEM=y 215CONFIG_FLATMEM=y
198CONFIG_FLAT_NODE_MEM_MAP=y 216CONFIG_FLAT_NODE_MEM_MAP=y
199# CONFIG_SPARSEMEM_STATIC is not set 217# CONFIG_SPARSEMEM_STATIC is not set
218CONFIG_SPLIT_PTLOCK_CPUS=4
200CONFIG_PREEMPT_NONE=y 219CONFIG_PREEMPT_NONE=y
201# CONFIG_PREEMPT_VOLUNTARY is not set 220# CONFIG_PREEMPT_VOLUNTARY is not set
202# CONFIG_PREEMPT is not set 221# CONFIG_PREEMPT is not set
@@ -315,6 +334,10 @@ CONFIG_IPV6_TUNNEL=m
315CONFIG_NETFILTER=y 334CONFIG_NETFILTER=y
316# CONFIG_NETFILTER_DEBUG is not set 335# CONFIG_NETFILTER_DEBUG is not set
317CONFIG_BRIDGE_NETFILTER=y 336CONFIG_BRIDGE_NETFILTER=y
337
338#
339# Core Netfilter Configuration
340#
318CONFIG_NETFILTER_NETLINK=m 341CONFIG_NETFILTER_NETLINK=m
319CONFIG_NETFILTER_NETLINK_QUEUE=m 342CONFIG_NETFILTER_NETLINK_QUEUE=m
320CONFIG_NETFILTER_NETLINK_LOG=m 343CONFIG_NETFILTER_NETLINK_LOG=m
@@ -369,6 +392,7 @@ CONFIG_IP_NF_TARGET_REJECT=m
369CONFIG_IP_NF_TARGET_LOG=m 392CONFIG_IP_NF_TARGET_LOG=m
370CONFIG_IP_NF_TARGET_ULOG=m 393CONFIG_IP_NF_TARGET_ULOG=m
371CONFIG_IP_NF_TARGET_TCPMSS=m 394CONFIG_IP_NF_TARGET_TCPMSS=m
395CONFIG_IP_NF_TARGET_NFQUEUE=m
372CONFIG_IP_NF_NAT=m 396CONFIG_IP_NF_NAT=m
373CONFIG_IP_NF_NAT_NEEDED=y 397CONFIG_IP_NF_NAT_NEEDED=y
374CONFIG_IP_NF_TARGET_MASQUERADE=m 398CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -418,6 +442,7 @@ CONFIG_IP6_NF_MATCH_PHYSDEV=m
418CONFIG_IP6_NF_FILTER=m 442CONFIG_IP6_NF_FILTER=m
419CONFIG_IP6_NF_TARGET_LOG=m 443CONFIG_IP6_NF_TARGET_LOG=m
420CONFIG_IP6_NF_TARGET_REJECT=m 444CONFIG_IP6_NF_TARGET_REJECT=m
445CONFIG_IP6_NF_TARGET_NFQUEUE=m
421CONFIG_IP6_NF_MANGLE=m 446CONFIG_IP6_NF_MANGLE=m
422CONFIG_IP6_NF_TARGET_MARK=m 447CONFIG_IP6_NF_TARGET_MARK=m
423CONFIG_IP6_NF_TARGET_HL=m 448CONFIG_IP6_NF_TARGET_HL=m
@@ -478,10 +503,18 @@ CONFIG_IPDDP_DECAP=y
478CONFIG_NET_DIVERT=y 503CONFIG_NET_DIVERT=y
479# CONFIG_ECONET is not set 504# CONFIG_ECONET is not set
480# CONFIG_WAN_ROUTER is not set 505# CONFIG_WAN_ROUTER is not set
506
507#
508# QoS and/or fair queueing
509#
481CONFIG_NET_SCHED=y 510CONFIG_NET_SCHED=y
482CONFIG_NET_SCH_CLK_JIFFIES=y 511CONFIG_NET_SCH_CLK_JIFFIES=y
483# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set 512# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
484# CONFIG_NET_SCH_CLK_CPU is not set 513# CONFIG_NET_SCH_CLK_CPU is not set
514
515#
516# Queueing/Scheduling
517#
485CONFIG_NET_SCH_CBQ=m 518CONFIG_NET_SCH_CBQ=m
486CONFIG_NET_SCH_HTB=m 519CONFIG_NET_SCH_HTB=m
487CONFIG_NET_SCH_HFSC=m 520CONFIG_NET_SCH_HFSC=m
@@ -494,8 +527,10 @@ CONFIG_NET_SCH_GRED=m
494CONFIG_NET_SCH_DSMARK=m 527CONFIG_NET_SCH_DSMARK=m
495CONFIG_NET_SCH_NETEM=m 528CONFIG_NET_SCH_NETEM=m
496CONFIG_NET_SCH_INGRESS=m 529CONFIG_NET_SCH_INGRESS=m
497CONFIG_NET_QOS=y 530
498CONFIG_NET_ESTIMATOR=y 531#
532# Classification
533#
499CONFIG_NET_CLS=y 534CONFIG_NET_CLS=y
500CONFIG_NET_CLS_BASIC=m 535CONFIG_NET_CLS_BASIC=m
501CONFIG_NET_CLS_TCINDEX=m 536CONFIG_NET_CLS_TCINDEX=m
@@ -504,13 +539,14 @@ CONFIG_NET_CLS_ROUTE=y
504CONFIG_NET_CLS_FW=m 539CONFIG_NET_CLS_FW=m
505CONFIG_NET_CLS_U32=m 540CONFIG_NET_CLS_U32=m
506# CONFIG_CLS_U32_PERF is not set 541# CONFIG_CLS_U32_PERF is not set
507CONFIG_NET_CLS_IND=y
508# CONFIG_CLS_U32_MARK is not set 542# CONFIG_CLS_U32_MARK is not set
509CONFIG_NET_CLS_RSVP=m 543CONFIG_NET_CLS_RSVP=m
510CONFIG_NET_CLS_RSVP6=m 544CONFIG_NET_CLS_RSVP6=m
511# CONFIG_NET_EMATCH is not set 545# CONFIG_NET_EMATCH is not set
512# CONFIG_NET_CLS_ACT is not set 546# CONFIG_NET_CLS_ACT is not set
513CONFIG_NET_CLS_POLICE=y 547CONFIG_NET_CLS_POLICE=y
548CONFIG_NET_CLS_IND=y
549CONFIG_NET_ESTIMATOR=y
514 550
515# 551#
516# Network testing 552# Network testing
@@ -572,18 +608,9 @@ CONFIG_BLK_DEV_RAM=y
572CONFIG_BLK_DEV_RAM_COUNT=16 608CONFIG_BLK_DEV_RAM_COUNT=16
573CONFIG_BLK_DEV_RAM_SIZE=4096 609CONFIG_BLK_DEV_RAM_SIZE=4096
574# CONFIG_BLK_DEV_INITRD is not set 610# CONFIG_BLK_DEV_INITRD is not set
575# CONFIG_LBD is not set
576CONFIG_CDROM_PKTCDVD=m 611CONFIG_CDROM_PKTCDVD=m
577CONFIG_CDROM_PKTCDVD_BUFFERS=8 612CONFIG_CDROM_PKTCDVD_BUFFERS=8
578# CONFIG_CDROM_PKTCDVD_WCACHE is not set 613# CONFIG_CDROM_PKTCDVD_WCACHE is not set
579
580#
581# IO Schedulers
582#
583CONFIG_IOSCHED_NOOP=y
584CONFIG_IOSCHED_AS=y
585CONFIG_IOSCHED_DEADLINE=y
586CONFIG_IOSCHED_CFQ=y
587CONFIG_ATA_OVER_ETH=m 614CONFIG_ATA_OVER_ETH=m
588 615
589# 616#
@@ -680,6 +707,7 @@ CONFIG_SCSI_SAS_ATTRS=m
680# 707#
681# SCSI low-level drivers 708# SCSI low-level drivers
682# 709#
710CONFIG_ISCSI_TCP=m
683CONFIG_BLK_DEV_3W_XXXX_RAID=m 711CONFIG_BLK_DEV_3W_XXXX_RAID=m
684CONFIG_SCSI_3W_9XXX=m 712CONFIG_SCSI_3W_9XXX=m
685CONFIG_SCSI_ACARD=m 713CONFIG_SCSI_ACARD=m
@@ -695,6 +723,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
695# CONFIG_SCSI_DPT_I2O is not set 723# CONFIG_SCSI_DPT_I2O is not set
696# CONFIG_MEGARAID_NEWGEN is not set 724# CONFIG_MEGARAID_NEWGEN is not set
697# CONFIG_MEGARAID_LEGACY is not set 725# CONFIG_MEGARAID_LEGACY is not set
726# CONFIG_MEGARAID_SAS is not set
698# CONFIG_SCSI_SATA is not set 727# CONFIG_SCSI_SATA is not set
699# CONFIG_SCSI_DMX3191D is not set 728# CONFIG_SCSI_DMX3191D is not set
700# CONFIG_SCSI_FUTURE_DOMAIN is not set 729# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -745,6 +774,7 @@ CONFIG_DM_MULTIPATH_EMC=m
745# CONFIG_FUSION is not set 774# CONFIG_FUSION is not set
746# CONFIG_FUSION_SPI is not set 775# CONFIG_FUSION_SPI is not set
747# CONFIG_FUSION_FC is not set 776# CONFIG_FUSION_FC is not set
777# CONFIG_FUSION_SAS is not set
748 778
749# 779#
750# IEEE 1394 (FireWire) support 780# IEEE 1394 (FireWire) support
@@ -774,7 +804,6 @@ CONFIG_TUN=m
774# PHY device support 804# PHY device support
775# 805#
776CONFIG_PHYLIB=m 806CONFIG_PHYLIB=m
777CONFIG_PHYCONTROL=y
778 807
779# 808#
780# MII PHY device drivers 809# MII PHY device drivers
@@ -792,6 +821,7 @@ CONFIG_NET_ETHERNET=y
792CONFIG_MII=y 821CONFIG_MII=y
793# CONFIG_HAPPYMEAL is not set 822# CONFIG_HAPPYMEAL is not set
794# CONFIG_SUNGEM is not set 823# CONFIG_SUNGEM is not set
824# CONFIG_CASSINI is not set
795# CONFIG_NET_VENDOR_3COM is not set 825# CONFIG_NET_VENDOR_3COM is not set
796 826
797# 827#
@@ -967,6 +997,7 @@ CONFIG_RTC=y
967# TPM devices 997# TPM devices
968# 998#
969# CONFIG_TCG_TPM is not set 999# CONFIG_TCG_TPM is not set
1000# CONFIG_TELCLOCK is not set
970 1001
971# 1002#
972# I2C support 1003# I2C support
@@ -1026,6 +1057,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
1026# CONFIG_USB is not set 1057# CONFIG_USB is not set
1027 1058
1028# 1059#
1060# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1061#
1062
1063#
1029# USB Gadget Support 1064# USB Gadget Support
1030# 1065#
1031# CONFIG_USB_GADGET is not set 1066# CONFIG_USB_GADGET is not set
@@ -1071,7 +1106,7 @@ CONFIG_JFS_SECURITY=y
1071CONFIG_FS_POSIX_ACL=y 1106CONFIG_FS_POSIX_ACL=y
1072CONFIG_XFS_FS=m 1107CONFIG_XFS_FS=m
1073CONFIG_XFS_EXPORT=y 1108CONFIG_XFS_EXPORT=y
1074CONFIG_XFS_QUOTA=m 1109CONFIG_XFS_QUOTA=y
1075CONFIG_XFS_SECURITY=y 1110CONFIG_XFS_SECURITY=y
1076CONFIG_XFS_POSIX_ACL=y 1111CONFIG_XFS_POSIX_ACL=y
1077# CONFIG_XFS_RT is not set 1112# CONFIG_XFS_RT is not set
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig
index fb9bdd9e3151..04abd1b3202b 100644
--- a/arch/mips/configs/mipssim_defconfig
+++ b/arch/mips/configs/mipssim_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:25 2005 4# Mon Nov 7 23:05:55 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -184,6 +202,7 @@ CONFIG_FLATMEM_MANUAL=y
184CONFIG_FLATMEM=y 202CONFIG_FLATMEM=y
185CONFIG_FLAT_NODE_MEM_MAP=y 203CONFIG_FLAT_NODE_MEM_MAP=y
186# CONFIG_SPARSEMEM_STATIC is not set 204# CONFIG_SPARSEMEM_STATIC is not set
205CONFIG_SPLIT_PTLOCK_CPUS=4
187CONFIG_PREEMPT_NONE=y 206CONFIG_PREEMPT_NONE=y
188# CONFIG_PREEMPT_VOLUNTARY is not set 207# CONFIG_PREEMPT_VOLUNTARY is not set
189# CONFIG_PREEMPT is not set 208# CONFIG_PREEMPT is not set
@@ -281,10 +300,18 @@ CONFIG_SCTP_HMAC_MD5=y
281CONFIG_NET_DIVERT=y 300CONFIG_NET_DIVERT=y
282# CONFIG_ECONET is not set 301# CONFIG_ECONET is not set
283# CONFIG_WAN_ROUTER is not set 302# CONFIG_WAN_ROUTER is not set
303
304#
305# QoS and/or fair queueing
306#
284CONFIG_NET_SCHED=y 307CONFIG_NET_SCHED=y
285CONFIG_NET_SCH_CLK_JIFFIES=y 308CONFIG_NET_SCH_CLK_JIFFIES=y
286# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set 309# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
287# CONFIG_NET_SCH_CLK_CPU is not set 310# CONFIG_NET_SCH_CLK_CPU is not set
311
312#
313# Queueing/Scheduling
314#
288CONFIG_NET_SCH_CBQ=m 315CONFIG_NET_SCH_CBQ=m
289CONFIG_NET_SCH_HTB=m 316CONFIG_NET_SCH_HTB=m
290CONFIG_NET_SCH_HFSC=m 317CONFIG_NET_SCH_HFSC=m
@@ -297,8 +324,10 @@ CONFIG_NET_SCH_GRED=m
297CONFIG_NET_SCH_DSMARK=m 324CONFIG_NET_SCH_DSMARK=m
298CONFIG_NET_SCH_NETEM=m 325CONFIG_NET_SCH_NETEM=m
299CONFIG_NET_SCH_INGRESS=m 326CONFIG_NET_SCH_INGRESS=m
300CONFIG_NET_QOS=y 327
301CONFIG_NET_ESTIMATOR=y 328#
329# Classification
330#
302CONFIG_NET_CLS=y 331CONFIG_NET_CLS=y
303CONFIG_NET_CLS_BASIC=m 332CONFIG_NET_CLS_BASIC=m
304CONFIG_NET_CLS_TCINDEX=m 333CONFIG_NET_CLS_TCINDEX=m
@@ -311,6 +340,7 @@ CONFIG_NET_CLS_ROUTE=y
311# CONFIG_NET_EMATCH is not set 340# CONFIG_NET_EMATCH is not set
312# CONFIG_NET_CLS_ACT is not set 341# CONFIG_NET_CLS_ACT is not set
313# CONFIG_NET_CLS_POLICE is not set 342# CONFIG_NET_CLS_POLICE is not set
343CONFIG_NET_ESTIMATOR=y
314 344
315# 345#
316# Network testing 346# Network testing
@@ -361,16 +391,7 @@ CONFIG_BLK_DEV_LOOP=y
361CONFIG_BLK_DEV_NBD=y 391CONFIG_BLK_DEV_NBD=y
362# CONFIG_BLK_DEV_RAM is not set 392# CONFIG_BLK_DEV_RAM is not set
363CONFIG_BLK_DEV_RAM_COUNT=16 393CONFIG_BLK_DEV_RAM_COUNT=16
364# CONFIG_LBD is not set
365# CONFIG_CDROM_PKTCDVD is not set 394# CONFIG_CDROM_PKTCDVD is not set
366
367#
368# IO Schedulers
369#
370CONFIG_IOSCHED_NOOP=y
371CONFIG_IOSCHED_AS=y
372CONFIG_IOSCHED_DEADLINE=y
373CONFIG_IOSCHED_CFQ=y
374# CONFIG_ATA_OVER_ETH is not set 395# CONFIG_ATA_OVER_ETH is not set
375 396
376# 397#
@@ -537,6 +558,7 @@ CONFIG_LEGACY_PTY_COUNT=256
537# 558#
538# TPM devices 559# TPM devices
539# 560#
561# CONFIG_TELCLOCK is not set
540 562
541# 563#
542# I2C support 564# I2C support
@@ -589,6 +611,10 @@ CONFIG_LEGACY_PTY_COUNT=256
589# CONFIG_USB_ARCH_HAS_OHCI is not set 611# CONFIG_USB_ARCH_HAS_OHCI is not set
590 612
591# 613#
614# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
615#
616
617#
592# USB Gadget Support 618# USB Gadget Support
593# 619#
594# CONFIG_USB_GADGET is not set 620# CONFIG_USB_GADGET is not set
@@ -721,6 +747,8 @@ CONFIG_LOG_BUF_SHIFT=14
721# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 747# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
722# CONFIG_DEBUG_KOBJECT is not set 748# CONFIG_DEBUG_KOBJECT is not set
723CONFIG_DEBUG_INFO=y 749CONFIG_DEBUG_INFO=y
750# CONFIG_DEBUG_VM is not set
751# CONFIG_RCU_TORTURE_TEST is not set
724CONFIG_CROSSCOMPILE=y 752CONFIG_CROSSCOMPILE=y
725CONFIG_CMDLINE="nfsroot=192.168.192.169:/u1/mipsel,timeo=20 ip=dhcp" 753CONFIG_CMDLINE="nfsroot=192.168.192.169:/u1/mipsel,timeo=20 ip=dhcp"
726# CONFIG_DEBUG_STACK_USAGE is not set 754# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index e2c082128532..46814be0ac38 100644
--- a/arch/mips/configs/mpc30x_defconfig
+++ b/arch/mips/configs/mpc30x_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:26:28 2005 4# Tue Nov 15 11:12:01 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -182,6 +200,7 @@ CONFIG_FLATMEM_MANUAL=y
182CONFIG_FLATMEM=y 200CONFIG_FLATMEM=y
183CONFIG_FLAT_NODE_MEM_MAP=y 201CONFIG_FLAT_NODE_MEM_MAP=y
184# CONFIG_SPARSEMEM_STATIC is not set 202# CONFIG_SPARSEMEM_STATIC is not set
203CONFIG_SPLIT_PTLOCK_CPUS=4
185CONFIG_PREEMPT_NONE=y 204CONFIG_PREEMPT_NONE=y
186# CONFIG_PREEMPT_VOLUNTARY is not set 205# CONFIG_PREEMPT_VOLUNTARY is not set
187# CONFIG_PREEMPT is not set 206# CONFIG_PREEMPT is not set
@@ -210,7 +229,6 @@ CONFIG_PCMCIA_IOCTL=y
210# CONFIG_YENTA is not set 229# CONFIG_YENTA is not set
211# CONFIG_PD6729 is not set 230# CONFIG_PD6729 is not set
212# CONFIG_I82092 is not set 231# CONFIG_I82092 is not set
213# CONFIG_TCIC is not set
214CONFIG_PCMCIA_VRC4173=y 232CONFIG_PCMCIA_VRC4173=y
215 233
216# 234#
@@ -281,6 +299,10 @@ CONFIG_TCP_CONG_BIC=y
281# CONFIG_NET_DIVERT is not set 299# CONFIG_NET_DIVERT is not set
282# CONFIG_ECONET is not set 300# CONFIG_ECONET is not set
283# CONFIG_WAN_ROUTER is not set 301# CONFIG_WAN_ROUTER is not set
302
303#
304# QoS and/or fair queueing
305#
284# CONFIG_NET_SCHED is not set 306# CONFIG_NET_SCHED is not set
285# CONFIG_NET_CLS_ROUTE is not set 307# CONFIG_NET_CLS_ROUTE is not set
286 308
@@ -341,16 +363,7 @@ CONFIG_CONNECTOR=m
341# CONFIG_BLK_DEV_UB is not set 363# CONFIG_BLK_DEV_UB is not set
342# CONFIG_BLK_DEV_RAM is not set 364# CONFIG_BLK_DEV_RAM is not set
343CONFIG_BLK_DEV_RAM_COUNT=16 365CONFIG_BLK_DEV_RAM_COUNT=16
344# CONFIG_LBD is not set
345# CONFIG_CDROM_PKTCDVD is not set 366# CONFIG_CDROM_PKTCDVD is not set
346
347#
348# IO Schedulers
349#
350CONFIG_IOSCHED_NOOP=y
351CONFIG_IOSCHED_AS=y
352CONFIG_IOSCHED_DEADLINE=y
353CONFIG_IOSCHED_CFQ=y
354CONFIG_ATA_OVER_ETH=m 367CONFIG_ATA_OVER_ETH=m
355 368
356# 369#
@@ -612,6 +625,7 @@ CONFIG_LEGACY_PTY_COUNT=256
612# CONFIG_WATCHDOG is not set 625# CONFIG_WATCHDOG is not set
613# CONFIG_RTC is not set 626# CONFIG_RTC is not set
614# CONFIG_GEN_RTC is not set 627# CONFIG_GEN_RTC is not set
628# CONFIG_RTC_VR41XX is not set
615# CONFIG_DTLK is not set 629# CONFIG_DTLK is not set
616# CONFIG_R3964 is not set 630# CONFIG_R3964 is not set
617# CONFIG_APPLICOM is not set 631# CONFIG_APPLICOM is not set
@@ -625,6 +639,8 @@ CONFIG_LEGACY_PTY_COUNT=256
625# PCMCIA character devices 639# PCMCIA character devices
626# 640#
627# CONFIG_SYNCLINK_CS is not set 641# CONFIG_SYNCLINK_CS is not set
642# CONFIG_CARDMAN_4000 is not set
643# CONFIG_CARDMAN_4040 is not set
628CONFIG_GPIO_VR41XX=y 644CONFIG_GPIO_VR41XX=y
629# CONFIG_RAW_DRIVER is not set 645# CONFIG_RAW_DRIVER is not set
630 646
@@ -632,6 +648,7 @@ CONFIG_GPIO_VR41XX=y
632# TPM devices 648# TPM devices
633# 649#
634# CONFIG_TCG_TPM is not set 650# CONFIG_TCG_TPM is not set
651# CONFIG_TELCLOCK is not set
635 652
636# 653#
637# I2C support 654# I2C support
@@ -713,12 +730,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
713# 730#
714# USB Device Class drivers 731# USB Device Class drivers
715# 732#
716# CONFIG_USB_BLUETOOTH_TTY is not set
717# CONFIG_USB_ACM is not set 733# CONFIG_USB_ACM is not set
718# CONFIG_USB_PRINTER is not set 734# CONFIG_USB_PRINTER is not set
719 735
720# 736#
721# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 737# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
738#
739
740#
741# may also be needed; see USB_STORAGE Help for more information
722# 742#
723# CONFIG_USB_STORAGE is not set 743# CONFIG_USB_STORAGE is not set
724 744
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig
index f18d05c2ca77..e12118c30db4 100644
--- a/arch/mips/configs/ocelot_3_defconfig
+++ b/arch/mips/configs/ocelot_3_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:30 2005 4# Thu Nov 10 14:01:36 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODVERSIONS=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -187,6 +205,7 @@ CONFIG_FLATMEM_MANUAL=y
187CONFIG_FLATMEM=y 205CONFIG_FLATMEM=y
188CONFIG_FLAT_NODE_MEM_MAP=y 206CONFIG_FLAT_NODE_MEM_MAP=y
189# CONFIG_SPARSEMEM_STATIC is not set 207# CONFIG_SPARSEMEM_STATIC is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_SMP is not set 209# CONFIG_SMP is not set
191CONFIG_PREEMPT_NONE=y 210CONFIG_PREEMPT_NONE=y
192# CONFIG_PREEMPT_VOLUNTARY is not set 211# CONFIG_PREEMPT_VOLUNTARY is not set
@@ -265,15 +284,19 @@ CONFIG_IPV6=m
265# CONFIG_IPV6_TUNNEL is not set 284# CONFIG_IPV6_TUNNEL is not set
266CONFIG_NETFILTER=y 285CONFIG_NETFILTER=y
267# CONFIG_NETFILTER_DEBUG is not set 286# CONFIG_NETFILTER_DEBUG is not set
287
288#
289# Core Netfilter Configuration
290#
268CONFIG_NETFILTER_NETLINK=m 291CONFIG_NETFILTER_NETLINK=m
269CONFIG_NETFILTER_NETLINK_QUEUE=m 292CONFIG_NETFILTER_NETLINK_QUEUE=m
270CONFIG_NETFILTER_NETLINK_LOG=m 293CONFIG_NETFILTER_NETLINK_LOG=m
294# CONFIG_NF_CONNTRACK is not set
271 295
272# 296#
273# IP: Netfilter Configuration 297# IP: Netfilter Configuration
274# 298#
275# CONFIG_IP_NF_CONNTRACK is not set 299# CONFIG_IP_NF_CONNTRACK is not set
276CONFIG_IP_NF_PPTP=m
277# CONFIG_IP_NF_QUEUE is not set 300# CONFIG_IP_NF_QUEUE is not set
278# CONFIG_IP_NF_IPTABLES is not set 301# CONFIG_IP_NF_IPTABLES is not set
279# CONFIG_IP_NF_ARPTABLES is not set 302# CONFIG_IP_NF_ARPTABLES is not set
@@ -305,6 +328,10 @@ CONFIG_IP_NF_PPTP=m
305# CONFIG_NET_DIVERT is not set 328# CONFIG_NET_DIVERT is not set
306# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
307# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
331
332#
333# QoS and/or fair queueing
334#
308# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
309# CONFIG_NET_CLS_ROUTE is not set 336# CONFIG_NET_CLS_ROUTE is not set
310 337
@@ -365,16 +392,7 @@ CONFIG_BLK_DEV_LOOP=y
365# CONFIG_BLK_DEV_SX8 is not set 392# CONFIG_BLK_DEV_SX8 is not set
366# CONFIG_BLK_DEV_RAM is not set 393# CONFIG_BLK_DEV_RAM is not set
367CONFIG_BLK_DEV_RAM_COUNT=16 394CONFIG_BLK_DEV_RAM_COUNT=16
368# CONFIG_LBD is not set
369# CONFIG_CDROM_PKTCDVD is not set 395# CONFIG_CDROM_PKTCDVD is not set
370
371#
372# IO Schedulers
373#
374CONFIG_IOSCHED_NOOP=y
375CONFIG_IOSCHED_AS=y
376CONFIG_IOSCHED_DEADLINE=y
377CONFIG_IOSCHED_CFQ=y
378CONFIG_ATA_OVER_ETH=m 396CONFIG_ATA_OVER_ETH=m
379 397
380# 398#
@@ -411,12 +429,13 @@ CONFIG_SCSI_PROC_FS=y
411# 429#
412# CONFIG_SCSI_SPI_ATTRS is not set 430# CONFIG_SCSI_SPI_ATTRS is not set
413# CONFIG_SCSI_FC_ATTRS is not set 431# CONFIG_SCSI_FC_ATTRS is not set
414# CONFIG_SCSI_ISCSI_ATTRS is not set 432CONFIG_SCSI_ISCSI_ATTRS=m
415CONFIG_SCSI_SAS_ATTRS=m 433CONFIG_SCSI_SAS_ATTRS=m
416 434
417# 435#
418# SCSI low-level drivers 436# SCSI low-level drivers
419# 437#
438CONFIG_ISCSI_TCP=m
420# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 439# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
421# CONFIG_SCSI_3W_9XXX is not set 440# CONFIG_SCSI_3W_9XXX is not set
422# CONFIG_SCSI_ACARD is not set 441# CONFIG_SCSI_ACARD is not set
@@ -427,6 +446,7 @@ CONFIG_SCSI_SAS_ATTRS=m
427# CONFIG_SCSI_DPT_I2O is not set 446# CONFIG_SCSI_DPT_I2O is not set
428# CONFIG_MEGARAID_NEWGEN is not set 447# CONFIG_MEGARAID_NEWGEN is not set
429# CONFIG_MEGARAID_LEGACY is not set 448# CONFIG_MEGARAID_LEGACY is not set
449# CONFIG_MEGARAID_SAS is not set
430# CONFIG_SCSI_SATA is not set 450# CONFIG_SCSI_SATA is not set
431# CONFIG_SCSI_DMX3191D is not set 451# CONFIG_SCSI_DMX3191D is not set
432# CONFIG_SCSI_FUTURE_DOMAIN is not set 452# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -461,6 +481,7 @@ CONFIG_SCSI_QLA2XXX=m
461# CONFIG_FUSION is not set 481# CONFIG_FUSION is not set
462# CONFIG_FUSION_SPI is not set 482# CONFIG_FUSION_SPI is not set
463# CONFIG_FUSION_FC is not set 483# CONFIG_FUSION_FC is not set
484# CONFIG_FUSION_SAS is not set
464 485
465# 486#
466# IEEE 1394 (FireWire) support 487# IEEE 1394 (FireWire) support
@@ -490,7 +511,6 @@ CONFIG_TUN=m
490# PHY device support 511# PHY device support
491# 512#
492CONFIG_PHYLIB=m 513CONFIG_PHYLIB=m
493CONFIG_PHYCONTROL=y
494 514
495# 515#
496# MII PHY device drivers 516# MII PHY device drivers
@@ -508,6 +528,7 @@ CONFIG_NET_ETHERNET=y
508CONFIG_MII=y 528CONFIG_MII=y
509# CONFIG_HAPPYMEAL is not set 529# CONFIG_HAPPYMEAL is not set
510# CONFIG_SUNGEM is not set 530# CONFIG_SUNGEM is not set
531# CONFIG_CASSINI is not set
511# CONFIG_NET_VENDOR_3COM is not set 532# CONFIG_NET_VENDOR_3COM is not set
512 533
513# 534#
@@ -589,6 +610,7 @@ CONFIG_PPP_ASYNC=m
589CONFIG_PPP_SYNC_TTY=m 610CONFIG_PPP_SYNC_TTY=m
590CONFIG_PPP_DEFLATE=m 611CONFIG_PPP_DEFLATE=m
591# CONFIG_PPP_BSDCOMP is not set 612# CONFIG_PPP_BSDCOMP is not set
613CONFIG_PPP_MPPE=m
592CONFIG_PPPOE=m 614CONFIG_PPPOE=m
593# CONFIG_SLIP is not set 615# CONFIG_SLIP is not set
594# CONFIG_NET_FC is not set 616# CONFIG_NET_FC is not set
@@ -691,6 +713,7 @@ CONFIG_RTC=y
691# TPM devices 713# TPM devices
692# 714#
693# CONFIG_TCG_TPM is not set 715# CONFIG_TCG_TPM is not set
716# CONFIG_TELCLOCK is not set
694 717
695# 718#
696# I2C support 719# I2C support
@@ -733,7 +756,6 @@ CONFIG_FB=y
733# CONFIG_FB_CFB_FILLRECT is not set 756# CONFIG_FB_CFB_FILLRECT is not set
734# CONFIG_FB_CFB_COPYAREA is not set 757# CONFIG_FB_CFB_COPYAREA is not set
735# CONFIG_FB_CFB_IMAGEBLIT is not set 758# CONFIG_FB_CFB_IMAGEBLIT is not set
736# CONFIG_FB_SOFT_CURSOR is not set
737# CONFIG_FB_MACMODES is not set 759# CONFIG_FB_MACMODES is not set
738CONFIG_FB_MODE_HELPERS=y 760CONFIG_FB_MODE_HELPERS=y
739# CONFIG_FB_TILEBLITTING is not set 761# CONFIG_FB_TILEBLITTING is not set
@@ -742,6 +764,7 @@ CONFIG_FB_MODE_HELPERS=y
742# CONFIG_FB_CYBER2000 is not set 764# CONFIG_FB_CYBER2000 is not set
743# CONFIG_FB_ASILIANT is not set 765# CONFIG_FB_ASILIANT is not set
744# CONFIG_FB_IMSTT is not set 766# CONFIG_FB_IMSTT is not set
767# CONFIG_FB_S1D13XXX is not set
745# CONFIG_FB_NVIDIA is not set 768# CONFIG_FB_NVIDIA is not set
746# CONFIG_FB_RIVA is not set 769# CONFIG_FB_RIVA is not set
747# CONFIG_FB_MATROX is not set 770# CONFIG_FB_MATROX is not set
@@ -758,7 +781,6 @@ CONFIG_FB_MODE_HELPERS=y
758# CONFIG_FB_SMIVGX is not set 781# CONFIG_FB_SMIVGX is not set
759# CONFIG_FB_CYBLA is not set 782# CONFIG_FB_CYBLA is not set
760# CONFIG_FB_TRIDENT is not set 783# CONFIG_FB_TRIDENT is not set
761# CONFIG_FB_S1D13XXX is not set
762# CONFIG_FB_VIRTUAL is not set 784# CONFIG_FB_VIRTUAL is not set
763 785
764# 786#
@@ -767,6 +789,7 @@ CONFIG_FB_MODE_HELPERS=y
767# CONFIG_VGA_CONSOLE is not set 789# CONFIG_VGA_CONSOLE is not set
768CONFIG_DUMMY_CONSOLE=y 790CONFIG_DUMMY_CONSOLE=y
769CONFIG_FRAMEBUFFER_CONSOLE=y 791CONFIG_FRAMEBUFFER_CONSOLE=y
792# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set
770# CONFIG_FONTS is not set 793# CONFIG_FONTS is not set
771CONFIG_FONT_8x8=y 794CONFIG_FONT_8x8=y
772CONFIG_FONT_8x16=y 795CONFIG_FONT_8x16=y
@@ -793,6 +816,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
793# CONFIG_USB is not set 816# CONFIG_USB is not set
794 817
795# 818#
819# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
820#
821
822#
796# USB Gadget Support 823# USB Gadget Support
797# 824#
798# CONFIG_USB_GADGET is not set 825# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index d3a5fee02b79..99f0c980aee7 100644
--- a/arch/mips/configs/ocelot_c_defconfig
+++ b/arch/mips/configs/ocelot_c_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:33 2005 4# Mon Nov 7 23:06:05 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,23 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56
57#
58# IO Schedulers
59#
60CONFIG_IOSCHED_NOOP=y
61CONFIG_IOSCHED_AS=y
62CONFIG_IOSCHED_DEADLINE=y
63CONFIG_IOSCHED_CFQ=y
64CONFIG_DEFAULT_AS=y
65# CONFIG_DEFAULT_DEADLINE is not set
66# CONFIG_DEFAULT_CFQ is not set
67# CONFIG_DEFAULT_NOOP is not set
68CONFIG_DEFAULT_IOSCHED="anticipatory"
69
70#
54# Machine selection 71# Machine selection
55# 72#
56# CONFIG_MIPS_MTX1 is not set 73# CONFIG_MIPS_MTX1 is not set
@@ -176,6 +193,7 @@ CONFIG_FLATMEM_MANUAL=y
176CONFIG_FLATMEM=y 193CONFIG_FLATMEM=y
177CONFIG_FLAT_NODE_MEM_MAP=y 194CONFIG_FLAT_NODE_MEM_MAP=y
178# CONFIG_SPARSEMEM_STATIC is not set 195# CONFIG_SPARSEMEM_STATIC is not set
196CONFIG_SPLIT_PTLOCK_CPUS=4
179CONFIG_PREEMPT_NONE=y 197CONFIG_PREEMPT_NONE=y
180# CONFIG_PREEMPT_VOLUNTARY is not set 198# CONFIG_PREEMPT_VOLUNTARY is not set
181# CONFIG_PREEMPT is not set 199# CONFIG_PREEMPT is not set
@@ -267,6 +285,10 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_NET_DIVERT is not set 285# CONFIG_NET_DIVERT is not set
268# CONFIG_ECONET is not set 286# CONFIG_ECONET is not set
269# CONFIG_WAN_ROUTER is not set 287# CONFIG_WAN_ROUTER is not set
288
289#
290# QoS and/or fair queueing
291#
270# CONFIG_NET_SCHED is not set 292# CONFIG_NET_SCHED is not set
271# CONFIG_NET_CLS_ROUTE is not set 293# CONFIG_NET_CLS_ROUTE is not set
272 294
@@ -298,6 +320,7 @@ CONFIG_FW_LOADER=y
298# Connector - unified userspace <-> kernelspace linker 320# Connector - unified userspace <-> kernelspace linker
299# 321#
300CONFIG_CONNECTOR=y 322CONFIG_CONNECTOR=y
323CONFIG_PROC_EVENTS=y
301 324
302# 325#
303# Memory Technology Devices (MTD) 326# Memory Technology Devices (MTD)
@@ -329,14 +352,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
329CONFIG_CDROM_PKTCDVD=y 352CONFIG_CDROM_PKTCDVD=y
330CONFIG_CDROM_PKTCDVD_BUFFERS=8 353CONFIG_CDROM_PKTCDVD_BUFFERS=8
331# CONFIG_CDROM_PKTCDVD_WCACHE is not set 354# CONFIG_CDROM_PKTCDVD_WCACHE is not set
332
333#
334# IO Schedulers
335#
336CONFIG_IOSCHED_NOOP=y
337CONFIG_IOSCHED_AS=y
338CONFIG_IOSCHED_DEADLINE=y
339CONFIG_IOSCHED_CFQ=y
340CONFIG_ATA_OVER_ETH=y 355CONFIG_ATA_OVER_ETH=y
341 356
342# 357#
@@ -388,7 +403,6 @@ CONFIG_NETDEVICES=y
388# PHY device support 403# PHY device support
389# 404#
390CONFIG_PHYLIB=y 405CONFIG_PHYLIB=y
391CONFIG_PHYCONTROL=y
392 406
393# 407#
394# MII PHY device drivers 408# MII PHY device drivers
@@ -406,6 +420,7 @@ CONFIG_NET_ETHERNET=y
406# CONFIG_MII is not set 420# CONFIG_MII is not set
407# CONFIG_HAPPYMEAL is not set 421# CONFIG_HAPPYMEAL is not set
408# CONFIG_SUNGEM is not set 422# CONFIG_SUNGEM is not set
423# CONFIG_CASSINI is not set
409# CONFIG_NET_VENDOR_3COM is not set 424# CONFIG_NET_VENDOR_3COM is not set
410 425
411# 426#
@@ -562,6 +577,7 @@ CONFIG_LEGACY_PTY_COUNT=256
562# TPM devices 577# TPM devices
563# 578#
564# CONFIG_TCG_TPM is not set 579# CONFIG_TCG_TPM is not set
580# CONFIG_TELCLOCK is not set
565 581
566# 582#
567# I2C support 583# I2C support
@@ -621,6 +637,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
621# CONFIG_USB is not set 637# CONFIG_USB is not set
622 638
623# 639#
640# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
641#
642
643#
624# USB Gadget Support 644# USB Gadget Support
625# 645#
626# CONFIG_USB_GADGET is not set 646# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig
index 1edde12ebff9..11c7d74ee1e5 100644
--- a/arch/mips/configs/ocelot_defconfig
+++ b/arch/mips/configs/ocelot_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:35 2005 4# Mon Nov 7 23:06:08 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,24 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56# CONFIG_LBD is not set
57
58#
59# IO Schedulers
60#
61CONFIG_IOSCHED_NOOP=y
62CONFIG_IOSCHED_AS=y
63CONFIG_IOSCHED_DEADLINE=y
64CONFIG_IOSCHED_CFQ=y
65CONFIG_DEFAULT_AS=y
66# CONFIG_DEFAULT_DEADLINE is not set
67# CONFIG_DEFAULT_CFQ is not set
68# CONFIG_DEFAULT_NOOP is not set
69CONFIG_DEFAULT_IOSCHED="anticipatory"
70
71#
54# Machine selection 72# Machine selection
55# 73#
56# CONFIG_MIPS_MTX1 is not set 74# CONFIG_MIPS_MTX1 is not set
@@ -181,6 +199,7 @@ CONFIG_FLATMEM_MANUAL=y
181CONFIG_FLATMEM=y 199CONFIG_FLATMEM=y
182CONFIG_FLAT_NODE_MEM_MAP=y 200CONFIG_FLAT_NODE_MEM_MAP=y
183# CONFIG_SPARSEMEM_STATIC is not set 201# CONFIG_SPARSEMEM_STATIC is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4
184CONFIG_PREEMPT_NONE=y 203CONFIG_PREEMPT_NONE=y
185# CONFIG_PREEMPT_VOLUNTARY is not set 204# CONFIG_PREEMPT_VOLUNTARY is not set
186# CONFIG_PREEMPT is not set 205# CONFIG_PREEMPT is not set
@@ -265,6 +284,10 @@ CONFIG_TCP_CONG_BIC=y
265# CONFIG_NET_DIVERT is not set 284# CONFIG_NET_DIVERT is not set
266# CONFIG_ECONET is not set 285# CONFIG_ECONET is not set
267# CONFIG_WAN_ROUTER is not set 286# CONFIG_WAN_ROUTER is not set
287
288#
289# QoS and/or fair queueing
290#
268# CONFIG_NET_SCHED is not set 291# CONFIG_NET_SCHED is not set
269# CONFIG_NET_CLS_ROUTE is not set 292# CONFIG_NET_CLS_ROUTE is not set
270 293
@@ -296,6 +319,7 @@ CONFIG_PREVENT_FIRMWARE_BUILD=y
296# Connector - unified userspace <-> kernelspace linker 319# Connector - unified userspace <-> kernelspace linker
297# 320#
298CONFIG_CONNECTOR=y 321CONFIG_CONNECTOR=y
322CONFIG_PROC_EVENTS=y
299 323
300# 324#
301# Memory Technology Devices (MTD) 325# Memory Technology Devices (MTD)
@@ -319,18 +343,9 @@ CONFIG_CONNECTOR=y
319# CONFIG_BLK_DEV_NBD is not set 343# CONFIG_BLK_DEV_NBD is not set
320# CONFIG_BLK_DEV_RAM is not set 344# CONFIG_BLK_DEV_RAM is not set
321CONFIG_BLK_DEV_RAM_COUNT=16 345CONFIG_BLK_DEV_RAM_COUNT=16
322# CONFIG_LBD is not set
323CONFIG_CDROM_PKTCDVD=y 346CONFIG_CDROM_PKTCDVD=y
324CONFIG_CDROM_PKTCDVD_BUFFERS=8 347CONFIG_CDROM_PKTCDVD_BUFFERS=8
325# CONFIG_CDROM_PKTCDVD_WCACHE is not set 348# CONFIG_CDROM_PKTCDVD_WCACHE is not set
326
327#
328# IO Schedulers
329#
330CONFIG_IOSCHED_NOOP=y
331CONFIG_IOSCHED_AS=y
332CONFIG_IOSCHED_DEADLINE=y
333CONFIG_IOSCHED_CFQ=y
334CONFIG_ATA_OVER_ETH=y 349CONFIG_ATA_OVER_ETH=y
335 350
336# 351#
@@ -375,7 +390,6 @@ CONFIG_NETDEVICES=y
375# PHY device support 390# PHY device support
376# 391#
377CONFIG_PHYLIB=y 392CONFIG_PHYLIB=y
378CONFIG_PHYCONTROL=y
379 393
380# 394#
381# MII PHY device drivers 395# MII PHY device drivers
@@ -513,6 +527,7 @@ CONFIG_LEGACY_PTY_COUNT=256
513# 527#
514# TPM devices 528# TPM devices
515# 529#
530# CONFIG_TELCLOCK is not set
516 531
517# 532#
518# I2C support 533# I2C support
@@ -571,6 +586,10 @@ CONFIG_DUMMY_CONSOLE=y
571# CONFIG_USB_ARCH_HAS_OHCI is not set 586# CONFIG_USB_ARCH_HAS_OHCI is not set
572 587
573# 588#
589# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
590#
591
592#
574# USB Gadget Support 593# USB Gadget Support
575# 594#
576# CONFIG_USB_GADGET is not set 595# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index e2d5188cdc15..9ced1a9029d4 100644
--- a/arch/mips/configs/ocelot_g_defconfig
+++ b/arch/mips/configs/ocelot_g_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:38 2005 4# Mon Nov 7 23:06:11 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -51,6 +51,23 @@ CONFIG_BASE_SMALL=0
51# CONFIG_MODULES is not set 51# CONFIG_MODULES is not set
52 52
53# 53#
54# Block layer
55#
56
57#
58# IO Schedulers
59#
60CONFIG_IOSCHED_NOOP=y
61CONFIG_IOSCHED_AS=y
62CONFIG_IOSCHED_DEADLINE=y
63CONFIG_IOSCHED_CFQ=y
64CONFIG_DEFAULT_AS=y
65# CONFIG_DEFAULT_DEADLINE is not set
66# CONFIG_DEFAULT_CFQ is not set
67# CONFIG_DEFAULT_NOOP is not set
68CONFIG_DEFAULT_IOSCHED="anticipatory"
69
70#
54# Machine selection 71# Machine selection
55# 72#
56# CONFIG_MIPS_MTX1 is not set 73# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +196,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 196CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 197CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 198# CONFIG_SPARSEMEM_STATIC is not set
199CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 200CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 201# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 202# CONFIG_PREEMPT is not set
@@ -270,6 +288,10 @@ CONFIG_TCP_CONG_BIC=y
270# CONFIG_NET_DIVERT is not set 288# CONFIG_NET_DIVERT is not set
271# CONFIG_ECONET is not set 289# CONFIG_ECONET is not set
272# CONFIG_WAN_ROUTER is not set 290# CONFIG_WAN_ROUTER is not set
291
292#
293# QoS and/or fair queueing
294#
273# CONFIG_NET_SCHED is not set 295# CONFIG_NET_SCHED is not set
274# CONFIG_NET_CLS_ROUTE is not set 296# CONFIG_NET_CLS_ROUTE is not set
275 297
@@ -301,6 +323,7 @@ CONFIG_FW_LOADER=y
301# Connector - unified userspace <-> kernelspace linker 323# Connector - unified userspace <-> kernelspace linker
302# 324#
303CONFIG_CONNECTOR=y 325CONFIG_CONNECTOR=y
326CONFIG_PROC_EVENTS=y
304 327
305# 328#
306# Memory Technology Devices (MTD) 329# Memory Technology Devices (MTD)
@@ -332,14 +355,6 @@ CONFIG_BLK_DEV_RAM_COUNT=16
332CONFIG_CDROM_PKTCDVD=y 355CONFIG_CDROM_PKTCDVD=y
333CONFIG_CDROM_PKTCDVD_BUFFERS=8 356CONFIG_CDROM_PKTCDVD_BUFFERS=8
334# CONFIG_CDROM_PKTCDVD_WCACHE is not set 357# CONFIG_CDROM_PKTCDVD_WCACHE is not set
335
336#
337# IO Schedulers
338#
339CONFIG_IOSCHED_NOOP=y
340CONFIG_IOSCHED_AS=y
341CONFIG_IOSCHED_DEADLINE=y
342CONFIG_IOSCHED_CFQ=y
343CONFIG_ATA_OVER_ETH=y 358CONFIG_ATA_OVER_ETH=y
344 359
345# 360#
@@ -391,7 +406,6 @@ CONFIG_NETDEVICES=y
391# PHY device support 406# PHY device support
392# 407#
393CONFIG_PHYLIB=y 408CONFIG_PHYLIB=y
394CONFIG_PHYCONTROL=y
395 409
396# 410#
397# MII PHY device drivers 411# MII PHY device drivers
@@ -410,6 +424,7 @@ CONFIG_MII=y
410CONFIG_GALILEO_64240_ETH=y 424CONFIG_GALILEO_64240_ETH=y
411# CONFIG_HAPPYMEAL is not set 425# CONFIG_HAPPYMEAL is not set
412# CONFIG_SUNGEM is not set 426# CONFIG_SUNGEM is not set
427# CONFIG_CASSINI is not set
413# CONFIG_NET_VENDOR_3COM is not set 428# CONFIG_NET_VENDOR_3COM is not set
414 429
415# 430#
@@ -565,6 +580,7 @@ CONFIG_LEGACY_PTY_COUNT=256
565# TPM devices 580# TPM devices
566# 581#
567# CONFIG_TCG_TPM is not set 582# CONFIG_TCG_TPM is not set
583# CONFIG_TELCLOCK is not set
568 584
569# 585#
570# I2C support 586# I2C support
@@ -624,6 +640,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
624# CONFIG_USB is not set 640# CONFIG_USB is not set
625 641
626# 642#
643# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
644#
645
646#
627# USB Gadget Support 647# USB Gadget Support
628# 648#
629# CONFIG_USB_GADGET is not set 649# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index 47247addee1b..dbcaa77add7c 100644
--- a/arch/mips/configs/pb1100_defconfig
+++ b/arch/mips/configs/pb1100_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:26:41 2005 4# Tue Nov 15 11:12:31 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -180,6 +198,7 @@ CONFIG_FLATMEM_MANUAL=y
180CONFIG_FLATMEM=y 198CONFIG_FLATMEM=y
181CONFIG_FLAT_NODE_MEM_MAP=y 199CONFIG_FLAT_NODE_MEM_MAP=y
182# CONFIG_SPARSEMEM_STATIC is not set 200# CONFIG_SPARSEMEM_STATIC is not set
201CONFIG_SPLIT_PTLOCK_CPUS=4
183CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -203,7 +222,6 @@ CONFIG_PCMCIA_IOCTL=y
203# 222#
204# PC-card bridges 223# PC-card bridges
205# 224#
206# CONFIG_TCIC is not set
207# CONFIG_PCMCIA_AU1X00 is not set 225# CONFIG_PCMCIA_AU1X00 is not set
208 226
209# 227#
@@ -261,15 +279,19 @@ CONFIG_TCP_CONG_BIC=y
261# CONFIG_IPV6 is not set 279# CONFIG_IPV6 is not set
262CONFIG_NETFILTER=y 280CONFIG_NETFILTER=y
263# CONFIG_NETFILTER_DEBUG is not set 281# CONFIG_NETFILTER_DEBUG is not set
282
283#
284# Core Netfilter Configuration
285#
264CONFIG_NETFILTER_NETLINK=m 286CONFIG_NETFILTER_NETLINK=m
265CONFIG_NETFILTER_NETLINK_QUEUE=m 287CONFIG_NETFILTER_NETLINK_QUEUE=m
266CONFIG_NETFILTER_NETLINK_LOG=m 288CONFIG_NETFILTER_NETLINK_LOG=m
289# CONFIG_NF_CONNTRACK is not set
267 290
268# 291#
269# IP: Netfilter Configuration 292# IP: Netfilter Configuration
270# 293#
271# CONFIG_IP_NF_CONNTRACK is not set 294# CONFIG_IP_NF_CONNTRACK is not set
272CONFIG_IP_NF_PPTP=m
273# CONFIG_IP_NF_QUEUE is not set 295# CONFIG_IP_NF_QUEUE is not set
274# CONFIG_IP_NF_IPTABLES is not set 296# CONFIG_IP_NF_IPTABLES is not set
275# CONFIG_IP_NF_ARPTABLES is not set 297# CONFIG_IP_NF_ARPTABLES is not set
@@ -295,6 +317,10 @@ CONFIG_IP_NF_PPTP=m
295# CONFIG_NET_DIVERT is not set 317# CONFIG_NET_DIVERT is not set
296# CONFIG_ECONET is not set 318# CONFIG_ECONET is not set
297# CONFIG_WAN_ROUTER is not set 319# CONFIG_WAN_ROUTER is not set
320
321#
322# QoS and/or fair queueing
323#
298# CONFIG_NET_SCHED is not set 324# CONFIG_NET_SCHED is not set
299# CONFIG_NET_CLS_ROUTE is not set 325# CONFIG_NET_CLS_ROUTE is not set
300 326
@@ -345,6 +371,7 @@ CONFIG_MTD_BLOCK=y
345# CONFIG_FTL is not set 371# CONFIG_FTL is not set
346# CONFIG_NFTL is not set 372# CONFIG_NFTL is not set
347# CONFIG_INFTL is not set 373# CONFIG_INFTL is not set
374# CONFIG_RFD_FTL is not set
348 375
349# 376#
350# RAM/ROM/Flash chip drivers 377# RAM/ROM/Flash chip drivers
@@ -402,6 +429,11 @@ CONFIG_MTD_ALCHEMY=y
402# CONFIG_MTD_NAND is not set 429# CONFIG_MTD_NAND is not set
403 430
404# 431#
432# OneNAND Flash Device Drivers
433#
434# CONFIG_MTD_ONENAND is not set
435
436#
405# Parallel port support 437# Parallel port support
406# 438#
407# CONFIG_PARPORT is not set 439# CONFIG_PARPORT is not set
@@ -419,18 +451,9 @@ CONFIG_BLK_DEV_LOOP=y
419# CONFIG_BLK_DEV_NBD is not set 451# CONFIG_BLK_DEV_NBD is not set
420# CONFIG_BLK_DEV_RAM is not set 452# CONFIG_BLK_DEV_RAM is not set
421CONFIG_BLK_DEV_RAM_COUNT=16 453CONFIG_BLK_DEV_RAM_COUNT=16
422# CONFIG_LBD is not set
423CONFIG_CDROM_PKTCDVD=m 454CONFIG_CDROM_PKTCDVD=m
424CONFIG_CDROM_PKTCDVD_BUFFERS=8 455CONFIG_CDROM_PKTCDVD_BUFFERS=8
425# CONFIG_CDROM_PKTCDVD_WCACHE is not set 456# CONFIG_CDROM_PKTCDVD_WCACHE is not set
426
427#
428# IO Schedulers
429#
430CONFIG_IOSCHED_NOOP=y
431CONFIG_IOSCHED_AS=y
432CONFIG_IOSCHED_DEADLINE=y
433CONFIG_IOSCHED_CFQ=y
434CONFIG_ATA_OVER_ETH=m 457CONFIG_ATA_OVER_ETH=m
435 458
436# 459#
@@ -475,7 +498,6 @@ CONFIG_NETDEVICES=y
475# PHY device support 498# PHY device support
476# 499#
477CONFIG_PHYLIB=m 500CONFIG_PHYLIB=m
478CONFIG_PHYCONTROL=y
479 501
480# 502#
481# MII PHY device drivers 503# MII PHY device drivers
@@ -492,6 +514,7 @@ CONFIG_CICADA_PHY=m
492CONFIG_NET_ETHERNET=y 514CONFIG_NET_ETHERNET=y
493# CONFIG_MII is not set 515# CONFIG_MII is not set
494# CONFIG_MIPS_AU1X00_ENET is not set 516# CONFIG_MIPS_AU1X00_ENET is not set
517# CONFIG_SMC91X is not set
495 518
496# 519#
497# Ethernet (1000 Mbit) 520# Ethernet (1000 Mbit)
@@ -526,6 +549,7 @@ CONFIG_PPP_ASYNC=m
526# CONFIG_PPP_SYNC_TTY is not set 549# CONFIG_PPP_SYNC_TTY is not set
527CONFIG_PPP_DEFLATE=m 550CONFIG_PPP_DEFLATE=m
528# CONFIG_PPP_BSDCOMP is not set 551# CONFIG_PPP_BSDCOMP is not set
552CONFIG_PPP_MPPE=m
529CONFIG_PPPOE=m 553CONFIG_PPPOE=m
530# CONFIG_SLIP is not set 554# CONFIG_SLIP is not set
531# CONFIG_SHAPER is not set 555# CONFIG_SHAPER is not set
@@ -592,12 +616,19 @@ CONFIG_HW_CONSOLE=y
592# 616#
593# Serial drivers 617# Serial drivers
594# 618#
595# CONFIG_SERIAL_8250 is not set 619CONFIG_SERIAL_8250=y
620CONFIG_SERIAL_8250_CONSOLE=y
621# CONFIG_SERIAL_8250_CS is not set
622CONFIG_SERIAL_8250_NR_UARTS=4
623# CONFIG_SERIAL_8250_EXTENDED is not set
624CONFIG_SERIAL_8250_AU1X00=y
596 625
597# 626#
598# Non-8250 serial port support 627# Non-8250 serial port support
599# 628#
600# CONFIG_SERIAL_AU1X00 is not set 629# CONFIG_SERIAL_AU1X00 is not set
630CONFIG_SERIAL_CORE=y
631CONFIG_SERIAL_CORE_CONSOLE=y
601CONFIG_UNIX98_PTYS=y 632CONFIG_UNIX98_PTYS=y
602CONFIG_LEGACY_PTYS=y 633CONFIG_LEGACY_PTYS=y
603CONFIG_LEGACY_PTY_COUNT=256 634CONFIG_LEGACY_PTY_COUNT=256
@@ -624,11 +655,14 @@ CONFIG_LEGACY_PTY_COUNT=256
624# PCMCIA character devices 655# PCMCIA character devices
625# 656#
626CONFIG_SYNCLINK_CS=m 657CONFIG_SYNCLINK_CS=m
658# CONFIG_CARDMAN_4000 is not set
659# CONFIG_CARDMAN_4040 is not set
627# CONFIG_RAW_DRIVER is not set 660# CONFIG_RAW_DRIVER is not set
628 661
629# 662#
630# TPM devices 663# TPM devices
631# 664#
665# CONFIG_TELCLOCK is not set
632 666
633# 667#
634# I2C support 668# I2C support
@@ -688,6 +722,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
688# CONFIG_USB is not set 722# CONFIG_USB is not set
689 723
690# 724#
725# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
726#
727
728#
691# USB Gadget Support 729# USB Gadget Support
692# 730#
693# CONFIG_USB_GADGET is not set 731# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index f91a4eaae51a..5b685ceb6fde 100644
--- a/arch/mips/configs/pb1500_defconfig
+++ b/arch/mips/configs/pb1500_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:26:44 2005 4# Tue Nov 15 11:14:25 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +197,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 197CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
200CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -207,7 +226,6 @@ CONFIG_CARDBUS=y
207# CONFIG_YENTA is not set 226# CONFIG_YENTA is not set
208CONFIG_PD6729=m 227CONFIG_PD6729=m
209# CONFIG_I82092 is not set 228# CONFIG_I82092 is not set
210# CONFIG_TCIC is not set
211# CONFIG_PCMCIA_AU1X00 is not set 229# CONFIG_PCMCIA_AU1X00 is not set
212CONFIG_PCCARD_NONSTATIC=m 230CONFIG_PCCARD_NONSTATIC=m
213 231
@@ -267,15 +285,19 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
268CONFIG_NETFILTER=y 286CONFIG_NETFILTER=y
269# CONFIG_NETFILTER_DEBUG is not set 287# CONFIG_NETFILTER_DEBUG is not set
288
289#
290# Core Netfilter Configuration
291#
270CONFIG_NETFILTER_NETLINK=m 292CONFIG_NETFILTER_NETLINK=m
271CONFIG_NETFILTER_NETLINK_QUEUE=m 293CONFIG_NETFILTER_NETLINK_QUEUE=m
272CONFIG_NETFILTER_NETLINK_LOG=m 294CONFIG_NETFILTER_NETLINK_LOG=m
295# CONFIG_NF_CONNTRACK is not set
273 296
274# 297#
275# IP: Netfilter Configuration 298# IP: Netfilter Configuration
276# 299#
277# CONFIG_IP_NF_CONNTRACK is not set 300# CONFIG_IP_NF_CONNTRACK is not set
278CONFIG_IP_NF_PPTP=m
279# CONFIG_IP_NF_QUEUE is not set 301# CONFIG_IP_NF_QUEUE is not set
280# CONFIG_IP_NF_IPTABLES is not set 302# CONFIG_IP_NF_IPTABLES is not set
281# CONFIG_IP_NF_ARPTABLES is not set 303# CONFIG_IP_NF_ARPTABLES is not set
@@ -301,6 +323,10 @@ CONFIG_IP_NF_PPTP=m
301# CONFIG_NET_DIVERT is not set 323# CONFIG_NET_DIVERT is not set
302# CONFIG_ECONET is not set 324# CONFIG_ECONET is not set
303# CONFIG_WAN_ROUTER is not set 325# CONFIG_WAN_ROUTER is not set
326
327#
328# QoS and/or fair queueing
329#
304# CONFIG_NET_SCHED is not set 330# CONFIG_NET_SCHED is not set
305# CONFIG_NET_CLS_ROUTE is not set 331# CONFIG_NET_CLS_ROUTE is not set
306 332
@@ -351,6 +377,7 @@ CONFIG_MTD_BLOCK=y
351# CONFIG_FTL is not set 377# CONFIG_FTL is not set
352# CONFIG_NFTL is not set 378# CONFIG_NFTL is not set
353# CONFIG_INFTL is not set 379# CONFIG_INFTL is not set
380# CONFIG_RFD_FTL is not set
354 381
355# 382#
356# RAM/ROM/Flash chip drivers 383# RAM/ROM/Flash chip drivers
@@ -409,6 +436,11 @@ CONFIG_MTD_ALCHEMY=y
409# CONFIG_MTD_NAND is not set 436# CONFIG_MTD_NAND is not set
410 437
411# 438#
439# OneNAND Flash Device Drivers
440#
441# CONFIG_MTD_ONENAND is not set
442
443#
412# Parallel port support 444# Parallel port support
413# 445#
414# CONFIG_PARPORT is not set 446# CONFIG_PARPORT is not set
@@ -431,18 +463,9 @@ CONFIG_BLK_DEV_LOOP=y
431# CONFIG_BLK_DEV_SX8 is not set 463# CONFIG_BLK_DEV_SX8 is not set
432# CONFIG_BLK_DEV_RAM is not set 464# CONFIG_BLK_DEV_RAM is not set
433CONFIG_BLK_DEV_RAM_COUNT=16 465CONFIG_BLK_DEV_RAM_COUNT=16
434# CONFIG_LBD is not set
435CONFIG_CDROM_PKTCDVD=m 466CONFIG_CDROM_PKTCDVD=m
436CONFIG_CDROM_PKTCDVD_BUFFERS=8 467CONFIG_CDROM_PKTCDVD_BUFFERS=8
437# CONFIG_CDROM_PKTCDVD_WCACHE is not set 468# CONFIG_CDROM_PKTCDVD_WCACHE is not set
438
439#
440# IO Schedulers
441#
442CONFIG_IOSCHED_NOOP=y
443CONFIG_IOSCHED_AS=y
444CONFIG_IOSCHED_DEADLINE=y
445CONFIG_IOSCHED_CFQ=y
446CONFIG_ATA_OVER_ETH=m 469CONFIG_ATA_OVER_ETH=m
447 470
448# 471#
@@ -546,7 +569,6 @@ CONFIG_NETDEVICES=y
546# PHY device support 569# PHY device support
547# 570#
548CONFIG_PHYLIB=m 571CONFIG_PHYLIB=m
549CONFIG_PHYCONTROL=y
550 572
551# 573#
552# MII PHY device drivers 574# MII PHY device drivers
@@ -565,7 +587,9 @@ CONFIG_MII=m
565CONFIG_MIPS_AU1X00_ENET=y 587CONFIG_MIPS_AU1X00_ENET=y
566# CONFIG_HAPPYMEAL is not set 588# CONFIG_HAPPYMEAL is not set
567# CONFIG_SUNGEM is not set 589# CONFIG_SUNGEM is not set
590# CONFIG_CASSINI is not set
568# CONFIG_NET_VENDOR_3COM is not set 591# CONFIG_NET_VENDOR_3COM is not set
592# CONFIG_SMC91X is not set
569 593
570# 594#
571# Tulip family network device support 595# Tulip family network device support
@@ -635,6 +659,7 @@ CONFIG_PPP_ASYNC=m
635# CONFIG_PPP_SYNC_TTY is not set 659# CONFIG_PPP_SYNC_TTY is not set
636CONFIG_PPP_DEFLATE=m 660CONFIG_PPP_DEFLATE=m
637# CONFIG_PPP_BSDCOMP is not set 661# CONFIG_PPP_BSDCOMP is not set
662CONFIG_PPP_MPPE=m
638CONFIG_PPPOE=m 663CONFIG_PPPOE=m
639# CONFIG_SLIP is not set 664# CONFIG_SLIP is not set
640# CONFIG_SHAPER is not set 665# CONFIG_SHAPER is not set
@@ -700,13 +725,17 @@ CONFIG_SERIO_RAW=m
700# 725#
701# Serial drivers 726# Serial drivers
702# 727#
703# CONFIG_SERIAL_8250 is not set 728CONFIG_SERIAL_8250=y
729CONFIG_SERIAL_8250_CONSOLE=y
730# CONFIG_SERIAL_8250_CS is not set
731CONFIG_SERIAL_8250_NR_UARTS=4
732# CONFIG_SERIAL_8250_EXTENDED is not set
733CONFIG_SERIAL_8250_AU1X00=y
704 734
705# 735#
706# Non-8250 serial port support 736# Non-8250 serial port support
707# 737#
708CONFIG_SERIAL_AU1X00=y 738# CONFIG_SERIAL_AU1X00 is not set
709CONFIG_SERIAL_AU1X00_CONSOLE=y
710CONFIG_SERIAL_CORE=y 739CONFIG_SERIAL_CORE=y
711CONFIG_SERIAL_CORE_CONSOLE=y 740CONFIG_SERIAL_CORE_CONSOLE=y
712# CONFIG_SERIAL_JSM is not set 741# CONFIG_SERIAL_JSM is not set
@@ -738,12 +767,15 @@ CONFIG_LEGACY_PTY_COUNT=256
738# PCMCIA character devices 767# PCMCIA character devices
739# 768#
740CONFIG_SYNCLINK_CS=m 769CONFIG_SYNCLINK_CS=m
770# CONFIG_CARDMAN_4000 is not set
771# CONFIG_CARDMAN_4040 is not set
741# CONFIG_RAW_DRIVER is not set 772# CONFIG_RAW_DRIVER is not set
742 773
743# 774#
744# TPM devices 775# TPM devices
745# 776#
746# CONFIG_TCG_TPM is not set 777# CONFIG_TCG_TPM is not set
778# CONFIG_TELCLOCK is not set
747 779
748# 780#
749# I2C support 781# I2C support
@@ -797,6 +829,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
797# CONFIG_USB is not set 829# CONFIG_USB is not set
798 830
799# 831#
832# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
833#
834
835#
800# USB Gadget Support 836# USB Gadget Support
801# 837#
802# CONFIG_USB_GADGET is not set 838# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index bbad27cb40a2..f8f32e99f72d 100644
--- a/arch/mips/configs/pb1550_defconfig
+++ b/arch/mips/configs/pb1550_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:26:47 2005 4# Tue Nov 15 11:15:34 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +197,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 197CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
200CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -207,7 +226,6 @@ CONFIG_CARDBUS=y
207# CONFIG_YENTA is not set 226# CONFIG_YENTA is not set
208CONFIG_PD6729=m 227CONFIG_PD6729=m
209# CONFIG_I82092 is not set 228# CONFIG_I82092 is not set
210# CONFIG_TCIC is not set
211# CONFIG_PCMCIA_AU1X00 is not set 229# CONFIG_PCMCIA_AU1X00 is not set
212CONFIG_PCCARD_NONSTATIC=m 230CONFIG_PCCARD_NONSTATIC=m
213 231
@@ -267,15 +285,19 @@ CONFIG_TCP_CONG_BIC=y
267# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
268CONFIG_NETFILTER=y 286CONFIG_NETFILTER=y
269# CONFIG_NETFILTER_DEBUG is not set 287# CONFIG_NETFILTER_DEBUG is not set
288
289#
290# Core Netfilter Configuration
291#
270CONFIG_NETFILTER_NETLINK=m 292CONFIG_NETFILTER_NETLINK=m
271CONFIG_NETFILTER_NETLINK_QUEUE=m 293CONFIG_NETFILTER_NETLINK_QUEUE=m
272CONFIG_NETFILTER_NETLINK_LOG=m 294CONFIG_NETFILTER_NETLINK_LOG=m
295# CONFIG_NF_CONNTRACK is not set
273 296
274# 297#
275# IP: Netfilter Configuration 298# IP: Netfilter Configuration
276# 299#
277# CONFIG_IP_NF_CONNTRACK is not set 300# CONFIG_IP_NF_CONNTRACK is not set
278CONFIG_IP_NF_PPTP=m
279# CONFIG_IP_NF_QUEUE is not set 301# CONFIG_IP_NF_QUEUE is not set
280# CONFIG_IP_NF_IPTABLES is not set 302# CONFIG_IP_NF_IPTABLES is not set
281# CONFIG_IP_NF_ARPTABLES is not set 303# CONFIG_IP_NF_ARPTABLES is not set
@@ -301,6 +323,10 @@ CONFIG_IP_NF_PPTP=m
301# CONFIG_NET_DIVERT is not set 323# CONFIG_NET_DIVERT is not set
302# CONFIG_ECONET is not set 324# CONFIG_ECONET is not set
303# CONFIG_WAN_ROUTER is not set 325# CONFIG_WAN_ROUTER is not set
326
327#
328# QoS and/or fair queueing
329#
304# CONFIG_NET_SCHED is not set 330# CONFIG_NET_SCHED is not set
305# CONFIG_NET_CLS_ROUTE is not set 331# CONFIG_NET_CLS_ROUTE is not set
306 332
@@ -351,6 +377,7 @@ CONFIG_MTD_BLOCK=y
351# CONFIG_FTL is not set 377# CONFIG_FTL is not set
352# CONFIG_NFTL is not set 378# CONFIG_NFTL is not set
353# CONFIG_INFTL is not set 379# CONFIG_INFTL is not set
380# CONFIG_RFD_FTL is not set
354 381
355# 382#
356# RAM/ROM/Flash chip drivers 383# RAM/ROM/Flash chip drivers
@@ -409,6 +436,11 @@ CONFIG_MTD_ALCHEMY=y
409# CONFIG_MTD_NAND is not set 436# CONFIG_MTD_NAND is not set
410 437
411# 438#
439# OneNAND Flash Device Drivers
440#
441# CONFIG_MTD_ONENAND is not set
442
443#
412# Parallel port support 444# Parallel port support
413# 445#
414# CONFIG_PARPORT is not set 446# CONFIG_PARPORT is not set
@@ -431,18 +463,9 @@ CONFIG_BLK_DEV_LOOP=y
431# CONFIG_BLK_DEV_SX8 is not set 463# CONFIG_BLK_DEV_SX8 is not set
432# CONFIG_BLK_DEV_RAM is not set 464# CONFIG_BLK_DEV_RAM is not set
433CONFIG_BLK_DEV_RAM_COUNT=16 465CONFIG_BLK_DEV_RAM_COUNT=16
434# CONFIG_LBD is not set
435CONFIG_CDROM_PKTCDVD=m 466CONFIG_CDROM_PKTCDVD=m
436CONFIG_CDROM_PKTCDVD_BUFFERS=8 467CONFIG_CDROM_PKTCDVD_BUFFERS=8
437# CONFIG_CDROM_PKTCDVD_WCACHE is not set 468# CONFIG_CDROM_PKTCDVD_WCACHE is not set
438
439#
440# IO Schedulers
441#
442CONFIG_IOSCHED_NOOP=y
443CONFIG_IOSCHED_AS=y
444CONFIG_IOSCHED_DEADLINE=y
445CONFIG_IOSCHED_CFQ=y
446CONFIG_ATA_OVER_ETH=m 469CONFIG_ATA_OVER_ETH=m
447 470
448# 471#
@@ -546,7 +569,6 @@ CONFIG_NETDEVICES=y
546# PHY device support 569# PHY device support
547# 570#
548CONFIG_PHYLIB=m 571CONFIG_PHYLIB=m
549CONFIG_PHYCONTROL=y
550 572
551# 573#
552# MII PHY device drivers 574# MII PHY device drivers
@@ -565,7 +587,9 @@ CONFIG_NET_ETHERNET=y
565CONFIG_MIPS_AU1X00_ENET=y 587CONFIG_MIPS_AU1X00_ENET=y
566# CONFIG_HAPPYMEAL is not set 588# CONFIG_HAPPYMEAL is not set
567# CONFIG_SUNGEM is not set 589# CONFIG_SUNGEM is not set
590# CONFIG_CASSINI is not set
568# CONFIG_NET_VENDOR_3COM is not set 591# CONFIG_NET_VENDOR_3COM is not set
592# CONFIG_SMC91X is not set
569 593
570# 594#
571# Tulip family network device support 595# Tulip family network device support
@@ -627,6 +651,7 @@ CONFIG_PPP_ASYNC=m
627# CONFIG_PPP_SYNC_TTY is not set 651# CONFIG_PPP_SYNC_TTY is not set
628CONFIG_PPP_DEFLATE=m 652CONFIG_PPP_DEFLATE=m
629# CONFIG_PPP_BSDCOMP is not set 653# CONFIG_PPP_BSDCOMP is not set
654CONFIG_PPP_MPPE=m
630CONFIG_PPPOE=m 655CONFIG_PPPOE=m
631# CONFIG_SLIP is not set 656# CONFIG_SLIP is not set
632# CONFIG_SHAPER is not set 657# CONFIG_SHAPER is not set
@@ -692,13 +717,17 @@ CONFIG_SERIO_RAW=m
692# 717#
693# Serial drivers 718# Serial drivers
694# 719#
695# CONFIG_SERIAL_8250 is not set 720CONFIG_SERIAL_8250=y
721CONFIG_SERIAL_8250_CONSOLE=y
722# CONFIG_SERIAL_8250_CS is not set
723CONFIG_SERIAL_8250_NR_UARTS=4
724# CONFIG_SERIAL_8250_EXTENDED is not set
725CONFIG_SERIAL_8250_AU1X00=y
696 726
697# 727#
698# Non-8250 serial port support 728# Non-8250 serial port support
699# 729#
700CONFIG_SERIAL_AU1X00=y 730# CONFIG_SERIAL_AU1X00 is not set
701CONFIG_SERIAL_AU1X00_CONSOLE=y
702CONFIG_SERIAL_CORE=y 731CONFIG_SERIAL_CORE=y
703CONFIG_SERIAL_CORE_CONSOLE=y 732CONFIG_SERIAL_CORE_CONSOLE=y
704# CONFIG_SERIAL_JSM is not set 733# CONFIG_SERIAL_JSM is not set
@@ -730,12 +759,15 @@ CONFIG_LEGACY_PTY_COUNT=256
730# PCMCIA character devices 759# PCMCIA character devices
731# 760#
732CONFIG_SYNCLINK_CS=m 761CONFIG_SYNCLINK_CS=m
762# CONFIG_CARDMAN_4000 is not set
763# CONFIG_CARDMAN_4040 is not set
733# CONFIG_RAW_DRIVER is not set 764# CONFIG_RAW_DRIVER is not set
734 765
735# 766#
736# TPM devices 767# TPM devices
737# 768#
738# CONFIG_TCG_TPM is not set 769# CONFIG_TCG_TPM is not set
770# CONFIG_TELCLOCK is not set
739 771
740# 772#
741# I2C support 773# I2C support
@@ -789,6 +821,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
789# CONFIG_USB is not set 821# CONFIG_USB is not set
790 822
791# 823#
824# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
825#
826
827#
792# USB Gadget Support 828# USB Gadget Support
793# 829#
794# CONFIG_USB_GADGET is not set 830# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig
index 555837e4c06f..5820e5f2295e 100644
--- a/arch/mips/configs/pnx8550-jbs_defconfig
+++ b/arch/mips/configs/pnx8550-jbs_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:50 2005 4# Mon Nov 7 23:06:25 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_OBSOLETE_MODPARM=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -179,6 +197,7 @@ CONFIG_FLATMEM_MANUAL=y
179CONFIG_FLATMEM=y 197CONFIG_FLATMEM=y
180CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
181# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
200CONFIG_SPLIT_PTLOCK_CPUS=4
182CONFIG_PREEMPT_NONE=y 201CONFIG_PREEMPT_NONE=y
183# CONFIG_PREEMPT_VOLUNTARY is not set 202# CONFIG_PREEMPT_VOLUNTARY is not set
184# CONFIG_PREEMPT is not set 203# CONFIG_PREEMPT is not set
@@ -265,6 +284,10 @@ CONFIG_TCP_CONG_BIC=y
265# CONFIG_NET_DIVERT is not set 284# CONFIG_NET_DIVERT is not set
266# CONFIG_ECONET is not set 285# CONFIG_ECONET is not set
267# CONFIG_WAN_ROUTER is not set 286# CONFIG_WAN_ROUTER is not set
287
288#
289# QoS and/or fair queueing
290#
268# CONFIG_NET_SCHED is not set 291# CONFIG_NET_SCHED is not set
269# CONFIG_NET_CLS_ROUTE is not set 292# CONFIG_NET_CLS_ROUTE is not set
270 293
@@ -325,16 +348,7 @@ CONFIG_BLK_DEV_RAM=y
325CONFIG_BLK_DEV_RAM_COUNT=16 348CONFIG_BLK_DEV_RAM_COUNT=16
326CONFIG_BLK_DEV_RAM_SIZE=8192 349CONFIG_BLK_DEV_RAM_SIZE=8192
327CONFIG_BLK_DEV_INITRD=y 350CONFIG_BLK_DEV_INITRD=y
328# CONFIG_LBD is not set
329# CONFIG_CDROM_PKTCDVD is not set 351# CONFIG_CDROM_PKTCDVD is not set
330
331#
332# IO Schedulers
333#
334CONFIG_IOSCHED_NOOP=y
335CONFIG_IOSCHED_AS=y
336CONFIG_IOSCHED_DEADLINE=y
337CONFIG_IOSCHED_CFQ=y
338# CONFIG_ATA_OVER_ETH is not set 352# CONFIG_ATA_OVER_ETH is not set
339 353
340# 354#
@@ -423,12 +437,13 @@ CONFIG_SCSI_CONSTANTS=y
423# 437#
424# CONFIG_SCSI_SPI_ATTRS is not set 438# CONFIG_SCSI_SPI_ATTRS is not set
425# CONFIG_SCSI_FC_ATTRS is not set 439# CONFIG_SCSI_FC_ATTRS is not set
426# CONFIG_SCSI_ISCSI_ATTRS is not set 440CONFIG_SCSI_ISCSI_ATTRS=m
427# CONFIG_SCSI_SAS_ATTRS is not set 441# CONFIG_SCSI_SAS_ATTRS is not set
428 442
429# 443#
430# SCSI low-level drivers 444# SCSI low-level drivers
431# 445#
446CONFIG_ISCSI_TCP=m
432# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 447# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
433# CONFIG_SCSI_3W_9XXX is not set 448# CONFIG_SCSI_3W_9XXX is not set
434# CONFIG_SCSI_ACARD is not set 449# CONFIG_SCSI_ACARD is not set
@@ -439,6 +454,7 @@ CONFIG_SCSI_CONSTANTS=y
439# CONFIG_SCSI_DPT_I2O is not set 454# CONFIG_SCSI_DPT_I2O is not set
440# CONFIG_MEGARAID_NEWGEN is not set 455# CONFIG_MEGARAID_NEWGEN is not set
441# CONFIG_MEGARAID_LEGACY is not set 456# CONFIG_MEGARAID_LEGACY is not set
457# CONFIG_MEGARAID_SAS is not set
442# CONFIG_SCSI_SATA is not set 458# CONFIG_SCSI_SATA is not set
443# CONFIG_SCSI_DMX3191D is not set 459# CONFIG_SCSI_DMX3191D is not set
444# CONFIG_SCSI_FUTURE_DOMAIN is not set 460# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -473,6 +489,7 @@ CONFIG_SCSI_QLA2XXX=y
473# CONFIG_FUSION is not set 489# CONFIG_FUSION is not set
474# CONFIG_FUSION_SPI is not set 490# CONFIG_FUSION_SPI is not set
475# CONFIG_FUSION_FC is not set 491# CONFIG_FUSION_FC is not set
492# CONFIG_FUSION_SAS is not set
476 493
477# 494#
478# IEEE 1394 (FireWire) support 495# IEEE 1394 (FireWire) support
@@ -510,6 +527,7 @@ CONFIG_NET_ETHERNET=y
510CONFIG_MII=y 527CONFIG_MII=y
511# CONFIG_HAPPYMEAL is not set 528# CONFIG_HAPPYMEAL is not set
512# CONFIG_SUNGEM is not set 529# CONFIG_SUNGEM is not set
530# CONFIG_CASSINI is not set
513# CONFIG_NET_VENDOR_3COM is not set 531# CONFIG_NET_VENDOR_3COM is not set
514 532
515# 533#
@@ -681,6 +699,7 @@ CONFIG_LEGACY_PTY_COUNT=256
681# TPM devices 699# TPM devices
682# 700#
683# CONFIG_TCG_TPM is not set 701# CONFIG_TCG_TPM is not set
702# CONFIG_TELCLOCK is not set
684 703
685# 704#
686# I2C support 705# I2C support
@@ -763,12 +782,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
763# 782#
764# USB Device Class drivers 783# USB Device Class drivers
765# 784#
766# CONFIG_USB_BLUETOOTH_TTY is not set
767# CONFIG_USB_ACM is not set 785# CONFIG_USB_ACM is not set
768# CONFIG_USB_PRINTER is not set 786# CONFIG_USB_PRINTER is not set
769 787
770# 788#
771# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 789# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
790#
791
792#
793# may also be needed; see USB_STORAGE Help for more information
772# 794#
773CONFIG_USB_STORAGE=y 795CONFIG_USB_STORAGE=y
774# CONFIG_USB_STORAGE_DEBUG is not set 796# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1039,6 +1061,8 @@ CONFIG_DEBUG_SLAB=y
1039# CONFIG_DEBUG_KOBJECT is not set 1061# CONFIG_DEBUG_KOBJECT is not set
1040# CONFIG_DEBUG_INFO is not set 1062# CONFIG_DEBUG_INFO is not set
1041# CONFIG_DEBUG_FS is not set 1063# CONFIG_DEBUG_FS is not set
1064# CONFIG_DEBUG_VM is not set
1065# CONFIG_RCU_TORTURE_TEST is not set
1042CONFIG_CROSSCOMPILE=y 1066CONFIG_CROSSCOMPILE=y
1043CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp" 1067CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp"
1044# CONFIG_DEBUG_STACK_USAGE is not set 1068# CONFIG_DEBUG_STACK_USAGE is not set
@@ -1055,7 +1079,31 @@ CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp"
1055# 1079#
1056# Cryptographic options 1080# Cryptographic options
1057# 1081#
1058# CONFIG_CRYPTO is not set 1082CONFIG_CRYPTO=y
1083# CONFIG_CRYPTO_HMAC is not set
1084# CONFIG_CRYPTO_NULL is not set
1085# CONFIG_CRYPTO_MD4 is not set
1086CONFIG_CRYPTO_MD5=m
1087# CONFIG_CRYPTO_SHA1 is not set
1088# CONFIG_CRYPTO_SHA256 is not set
1089# CONFIG_CRYPTO_SHA512 is not set
1090# CONFIG_CRYPTO_WP512 is not set
1091# CONFIG_CRYPTO_TGR192 is not set
1092# CONFIG_CRYPTO_DES is not set
1093# CONFIG_CRYPTO_BLOWFISH is not set
1094# CONFIG_CRYPTO_TWOFISH is not set
1095# CONFIG_CRYPTO_SERPENT is not set
1096# CONFIG_CRYPTO_AES is not set
1097# CONFIG_CRYPTO_CAST5 is not set
1098# CONFIG_CRYPTO_CAST6 is not set
1099# CONFIG_CRYPTO_TEA is not set
1100# CONFIG_CRYPTO_ARC4 is not set
1101# CONFIG_CRYPTO_KHAZAD is not set
1102# CONFIG_CRYPTO_ANUBIS is not set
1103# CONFIG_CRYPTO_DEFLATE is not set
1104# CONFIG_CRYPTO_MICHAEL_MIC is not set
1105CONFIG_CRYPTO_CRC32C=m
1106# CONFIG_CRYPTO_TEST is not set
1059 1107
1060# 1108#
1061# Hardware crypto devices 1109# Hardware crypto devices
@@ -1067,4 +1115,4 @@ CONFIG_CMDLINE="console=ttyS1,38400n8 kgdb=ttyS0 root=/dev/nfs ip=bootp"
1067CONFIG_CRC_CCITT=m 1115CONFIG_CRC_CCITT=m
1068# CONFIG_CRC16 is not set 1116# CONFIG_CRC16 is not set
1069CONFIG_CRC32=y 1117CONFIG_CRC32=y
1070# CONFIG_LIBCRC32C is not set 1118CONFIG_LIBCRC32C=m
diff --git a/arch/mips/configs/pnx8550-v2pci_defconfig b/arch/mips/configs/pnx8550-v2pci_defconfig
index 37bd8d5c865d..a4ebb538e15c 100644
--- a/arch/mips/configs/pnx8550-v2pci_defconfig
+++ b/arch/mips/configs/pnx8550-v2pci_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:53 2005 4# Thu Nov 10 14:02:38 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_OBSOLETE_MODPARM=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -180,6 +198,7 @@ CONFIG_FLATMEM_MANUAL=y
180CONFIG_FLATMEM=y 198CONFIG_FLATMEM=y
181CONFIG_FLAT_NODE_MEM_MAP=y 199CONFIG_FLAT_NODE_MEM_MAP=y
182# CONFIG_SPARSEMEM_STATIC is not set 200# CONFIG_SPARSEMEM_STATIC is not set
201CONFIG_SPLIT_PTLOCK_CPUS=4
183CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -255,13 +274,17 @@ CONFIG_IPV6=m
255# CONFIG_IPV6_TUNNEL is not set 274# CONFIG_IPV6_TUNNEL is not set
256CONFIG_NETFILTER=y 275CONFIG_NETFILTER=y
257# CONFIG_NETFILTER_DEBUG is not set 276# CONFIG_NETFILTER_DEBUG is not set
277
278#
279# Core Netfilter Configuration
280#
258# CONFIG_NETFILTER_NETLINK is not set 281# CONFIG_NETFILTER_NETLINK is not set
282# CONFIG_NF_CONNTRACK is not set
259 283
260# 284#
261# IP: Netfilter Configuration 285# IP: Netfilter Configuration
262# 286#
263# CONFIG_IP_NF_CONNTRACK is not set 287# CONFIG_IP_NF_CONNTRACK is not set
264CONFIG_IP_NF_PPTP=m
265# CONFIG_IP_NF_QUEUE is not set 288# CONFIG_IP_NF_QUEUE is not set
266# CONFIG_IP_NF_IPTABLES is not set 289# CONFIG_IP_NF_IPTABLES is not set
267# CONFIG_IP_NF_ARPTABLES is not set 290# CONFIG_IP_NF_ARPTABLES is not set
@@ -293,6 +316,10 @@ CONFIG_IP_NF_PPTP=m
293# CONFIG_NET_DIVERT is not set 316# CONFIG_NET_DIVERT is not set
294# CONFIG_ECONET is not set 317# CONFIG_ECONET is not set
295# CONFIG_WAN_ROUTER is not set 318# CONFIG_WAN_ROUTER is not set
319
320#
321# QoS and/or fair queueing
322#
296# CONFIG_NET_SCHED is not set 323# CONFIG_NET_SCHED is not set
297# CONFIG_NET_CLS_ROUTE is not set 324# CONFIG_NET_CLS_ROUTE is not set
298 325
@@ -352,16 +379,7 @@ CONFIG_BLK_DEV_RAM=y
352CONFIG_BLK_DEV_RAM_COUNT=16 379CONFIG_BLK_DEV_RAM_COUNT=16
353CONFIG_BLK_DEV_RAM_SIZE=8192 380CONFIG_BLK_DEV_RAM_SIZE=8192
354CONFIG_BLK_DEV_INITRD=y 381CONFIG_BLK_DEV_INITRD=y
355# CONFIG_LBD is not set
356# CONFIG_CDROM_PKTCDVD is not set 382# CONFIG_CDROM_PKTCDVD is not set
357
358#
359# IO Schedulers
360#
361CONFIG_IOSCHED_NOOP=y
362CONFIG_IOSCHED_AS=y
363CONFIG_IOSCHED_DEADLINE=y
364CONFIG_IOSCHED_CFQ=y
365# CONFIG_ATA_OVER_ETH is not set 383# CONFIG_ATA_OVER_ETH is not set
366 384
367# 385#
@@ -451,12 +469,13 @@ CONFIG_BLK_DEV_SD=y
451# 469#
452CONFIG_SCSI_SPI_ATTRS=m 470CONFIG_SCSI_SPI_ATTRS=m
453# CONFIG_SCSI_FC_ATTRS is not set 471# CONFIG_SCSI_FC_ATTRS is not set
454# CONFIG_SCSI_ISCSI_ATTRS is not set 472CONFIG_SCSI_ISCSI_ATTRS=m
455# CONFIG_SCSI_SAS_ATTRS is not set 473# CONFIG_SCSI_SAS_ATTRS is not set
456 474
457# 475#
458# SCSI low-level drivers 476# SCSI low-level drivers
459# 477#
478CONFIG_ISCSI_TCP=m
460# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 479# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
461# CONFIG_SCSI_3W_9XXX is not set 480# CONFIG_SCSI_3W_9XXX is not set
462# CONFIG_SCSI_ACARD is not set 481# CONFIG_SCSI_ACARD is not set
@@ -472,6 +491,7 @@ CONFIG_AIC7XXX_DEBUG_MASK=0
472# CONFIG_SCSI_DPT_I2O is not set 491# CONFIG_SCSI_DPT_I2O is not set
473# CONFIG_MEGARAID_NEWGEN is not set 492# CONFIG_MEGARAID_NEWGEN is not set
474# CONFIG_MEGARAID_LEGACY is not set 493# CONFIG_MEGARAID_LEGACY is not set
494# CONFIG_MEGARAID_SAS is not set
475# CONFIG_SCSI_SATA is not set 495# CONFIG_SCSI_SATA is not set
476# CONFIG_SCSI_DMX3191D is not set 496# CONFIG_SCSI_DMX3191D is not set
477# CONFIG_SCSI_FUTURE_DOMAIN is not set 497# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -506,6 +526,7 @@ CONFIG_SCSI_QLA2XXX=y
506# CONFIG_FUSION is not set 526# CONFIG_FUSION is not set
507# CONFIG_FUSION_SPI is not set 527# CONFIG_FUSION_SPI is not set
508# CONFIG_FUSION_FC is not set 528# CONFIG_FUSION_FC is not set
529# CONFIG_FUSION_SAS is not set
509 530
510# 531#
511# IEEE 1394 (FireWire) support 532# IEEE 1394 (FireWire) support
@@ -543,6 +564,7 @@ CONFIG_NET_ETHERNET=y
543CONFIG_MII=y 564CONFIG_MII=y
544# CONFIG_HAPPYMEAL is not set 565# CONFIG_HAPPYMEAL is not set
545# CONFIG_SUNGEM is not set 566# CONFIG_SUNGEM is not set
567# CONFIG_CASSINI is not set
546# CONFIG_NET_VENDOR_3COM is not set 568# CONFIG_NET_VENDOR_3COM is not set
547 569
548# 570#
@@ -622,6 +644,7 @@ CONFIG_PPP_ASYNC=m
622CONFIG_PPP_SYNC_TTY=m 644CONFIG_PPP_SYNC_TTY=m
623CONFIG_PPP_DEFLATE=m 645CONFIG_PPP_DEFLATE=m
624# CONFIG_PPP_BSDCOMP is not set 646# CONFIG_PPP_BSDCOMP is not set
647CONFIG_PPP_MPPE=m
625# CONFIG_PPPOE is not set 648# CONFIG_PPPOE is not set
626# CONFIG_SLIP is not set 649# CONFIG_SLIP is not set
627# CONFIG_NET_FC is not set 650# CONFIG_NET_FC is not set
@@ -746,6 +769,7 @@ CONFIG_LEGACY_PTY_COUNT=256
746# TPM devices 769# TPM devices
747# 770#
748# CONFIG_TCG_TPM is not set 771# CONFIG_TCG_TPM is not set
772# CONFIG_TELCLOCK is not set
749 773
750# 774#
751# I2C support 775# I2C support
@@ -796,6 +820,7 @@ CONFIG_I2C_ALGOBIT=m
796# CONFIG_SENSORS_PCF8591 is not set 820# CONFIG_SENSORS_PCF8591 is not set
797# CONFIG_SENSORS_RTC8564 is not set 821# CONFIG_SENSORS_RTC8564 is not set
798# CONFIG_SENSORS_MAX6875 is not set 822# CONFIG_SENSORS_MAX6875 is not set
823# CONFIG_RTC_X1205_I2C is not set
799# CONFIG_I2C_DEBUG_CORE is not set 824# CONFIG_I2C_DEBUG_CORE is not set
800# CONFIG_I2C_DEBUG_ALGO is not set 825# CONFIG_I2C_DEBUG_ALGO is not set
801# CONFIG_I2C_DEBUG_BUS is not set 826# CONFIG_I2C_DEBUG_BUS is not set
@@ -872,7 +897,6 @@ CONFIG_FB=y
872# CONFIG_FB_CFB_FILLRECT is not set 897# CONFIG_FB_CFB_FILLRECT is not set
873# CONFIG_FB_CFB_COPYAREA is not set 898# CONFIG_FB_CFB_COPYAREA is not set
874# CONFIG_FB_CFB_IMAGEBLIT is not set 899# CONFIG_FB_CFB_IMAGEBLIT is not set
875# CONFIG_FB_SOFT_CURSOR is not set
876# CONFIG_FB_MACMODES is not set 900# CONFIG_FB_MACMODES is not set
877# CONFIG_FB_MODE_HELPERS is not set 901# CONFIG_FB_MODE_HELPERS is not set
878# CONFIG_FB_TILEBLITTING is not set 902# CONFIG_FB_TILEBLITTING is not set
@@ -881,6 +905,7 @@ CONFIG_FB=y
881# CONFIG_FB_CYBER2000 is not set 905# CONFIG_FB_CYBER2000 is not set
882# CONFIG_FB_ASILIANT is not set 906# CONFIG_FB_ASILIANT is not set
883# CONFIG_FB_IMSTT is not set 907# CONFIG_FB_IMSTT is not set
908# CONFIG_FB_S1D13XXX is not set
884# CONFIG_FB_NVIDIA is not set 909# CONFIG_FB_NVIDIA is not set
885# CONFIG_FB_RIVA is not set 910# CONFIG_FB_RIVA is not set
886# CONFIG_FB_MATROX is not set 911# CONFIG_FB_MATROX is not set
@@ -897,7 +922,6 @@ CONFIG_FB=y
897# CONFIG_FB_SMIVGX is not set 922# CONFIG_FB_SMIVGX is not set
898# CONFIG_FB_CYBLA is not set 923# CONFIG_FB_CYBLA is not set
899# CONFIG_FB_TRIDENT is not set 924# CONFIG_FB_TRIDENT is not set
900# CONFIG_FB_S1D13XXX is not set
901# CONFIG_FB_VIRTUAL is not set 925# CONFIG_FB_VIRTUAL is not set
902 926
903# 927#
@@ -946,12 +970,15 @@ CONFIG_USB_DEVICEFS=y
946# 970#
947# USB Device Class drivers 971# USB Device Class drivers
948# 972#
949# CONFIG_USB_BLUETOOTH_TTY is not set
950# CONFIG_USB_ACM is not set 973# CONFIG_USB_ACM is not set
951# CONFIG_USB_PRINTER is not set 974# CONFIG_USB_PRINTER is not set
952 975
953# 976#
954# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 977# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
978#
979
980#
981# may also be needed; see USB_STORAGE Help for more information
955# 982#
956CONFIG_USB_STORAGE=y 983CONFIG_USB_STORAGE=y
957# CONFIG_USB_STORAGE_DEBUG is not set 984# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1235,7 +1262,31 @@ CONFIG_CMDLINE=""
1235# 1262#
1236# Cryptographic options 1263# Cryptographic options
1237# 1264#
1238# CONFIG_CRYPTO is not set 1265CONFIG_CRYPTO=y
1266# CONFIG_CRYPTO_HMAC is not set
1267# CONFIG_CRYPTO_NULL is not set
1268# CONFIG_CRYPTO_MD4 is not set
1269CONFIG_CRYPTO_MD5=m
1270CONFIG_CRYPTO_SHA1=m
1271# CONFIG_CRYPTO_SHA256 is not set
1272# CONFIG_CRYPTO_SHA512 is not set
1273# CONFIG_CRYPTO_WP512 is not set
1274# CONFIG_CRYPTO_TGR192 is not set
1275# CONFIG_CRYPTO_DES is not set
1276# CONFIG_CRYPTO_BLOWFISH is not set
1277# CONFIG_CRYPTO_TWOFISH is not set
1278# CONFIG_CRYPTO_SERPENT is not set
1279# CONFIG_CRYPTO_AES is not set
1280# CONFIG_CRYPTO_CAST5 is not set
1281# CONFIG_CRYPTO_CAST6 is not set
1282# CONFIG_CRYPTO_TEA is not set
1283CONFIG_CRYPTO_ARC4=m
1284# CONFIG_CRYPTO_KHAZAD is not set
1285# CONFIG_CRYPTO_ANUBIS is not set
1286# CONFIG_CRYPTO_DEFLATE is not set
1287# CONFIG_CRYPTO_MICHAEL_MIC is not set
1288CONFIG_CRYPTO_CRC32C=m
1289# CONFIG_CRYPTO_TEST is not set
1239 1290
1240# 1291#
1241# Hardware crypto devices 1292# Hardware crypto devices
@@ -1247,6 +1298,6 @@ CONFIG_CMDLINE=""
1247CONFIG_CRC_CCITT=m 1298CONFIG_CRC_CCITT=m
1248# CONFIG_CRC16 is not set 1299# CONFIG_CRC16 is not set
1249CONFIG_CRC32=y 1300CONFIG_CRC32=y
1250# CONFIG_LIBCRC32C is not set 1301CONFIG_LIBCRC32C=m
1251CONFIG_ZLIB_INFLATE=y 1302CONFIG_ZLIB_INFLATE=y
1252CONFIG_ZLIB_DEFLATE=m 1303CONFIG_ZLIB_DEFLATE=m
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig
index 741a9a971367..5d39162077f4 100644
--- a/arch/mips/configs/qemu_defconfig
+++ b/arch/mips/configs/qemu_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:56 2005 4# Mon Nov 7 23:06:31 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -50,6 +50,24 @@ CONFIG_BASE_SMALL=1
50# CONFIG_MODULES is not set 50# CONFIG_MODULES is not set
51 51
52# 52#
53# Block layer
54#
55# CONFIG_LBD is not set
56
57#
58# IO Schedulers
59#
60CONFIG_IOSCHED_NOOP=y
61# CONFIG_IOSCHED_AS is not set
62# CONFIG_IOSCHED_DEADLINE is not set
63# CONFIG_IOSCHED_CFQ is not set
64# CONFIG_DEFAULT_AS is not set
65# CONFIG_DEFAULT_DEADLINE is not set
66# CONFIG_DEFAULT_CFQ is not set
67CONFIG_DEFAULT_NOOP=y
68CONFIG_DEFAULT_IOSCHED="noop"
69
70#
53# Machine selection 71# Machine selection
54# 72#
55# CONFIG_MIPS_MTX1 is not set 73# CONFIG_MIPS_MTX1 is not set
@@ -168,6 +186,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
168CONFIG_FLATMEM=y 186CONFIG_FLATMEM=y
169CONFIG_FLAT_NODE_MEM_MAP=y 187CONFIG_FLAT_NODE_MEM_MAP=y
170# CONFIG_SPARSEMEM_STATIC is not set 188# CONFIG_SPARSEMEM_STATIC is not set
189CONFIG_SPLIT_PTLOCK_CPUS=4
171CONFIG_PREEMPT_NONE=y 190CONFIG_PREEMPT_NONE=y
172# CONFIG_PREEMPT_VOLUNTARY is not set 191# CONFIG_PREEMPT_VOLUNTARY is not set
173# CONFIG_PREEMPT is not set 192# CONFIG_PREEMPT is not set
@@ -234,6 +253,10 @@ CONFIG_TCP_CONG_BIC=y
234# CONFIG_LLC2 is not set 253# CONFIG_LLC2 is not set
235# CONFIG_IPX is not set 254# CONFIG_IPX is not set
236# CONFIG_ATALK is not set 255# CONFIG_ATALK is not set
256
257#
258# QoS and/or fair queueing
259#
237# CONFIG_NET_SCHED is not set 260# CONFIG_NET_SCHED is not set
238# CONFIG_NET_CLS_ROUTE is not set 261# CONFIG_NET_CLS_ROUTE is not set
239 262
@@ -265,6 +288,7 @@ CONFIG_STANDALONE=y
265# Connector - unified userspace <-> kernelspace linker 288# Connector - unified userspace <-> kernelspace linker
266# 289#
267CONFIG_CONNECTOR=y 290CONFIG_CONNECTOR=y
291CONFIG_PROC_EVENTS=y
268 292
269# 293#
270# Memory Technology Devices (MTD) 294# Memory Technology Devices (MTD)
@@ -289,16 +313,7 @@ CONFIG_CONNECTOR=y
289# CONFIG_BLK_DEV_NBD is not set 313# CONFIG_BLK_DEV_NBD is not set
290# CONFIG_BLK_DEV_RAM is not set 314# CONFIG_BLK_DEV_RAM is not set
291CONFIG_BLK_DEV_RAM_COUNT=16 315CONFIG_BLK_DEV_RAM_COUNT=16
292# CONFIG_LBD is not set
293# CONFIG_CDROM_PKTCDVD is not set 316# CONFIG_CDROM_PKTCDVD is not set
294
295#
296# IO Schedulers
297#
298CONFIG_IOSCHED_NOOP=y
299# CONFIG_IOSCHED_AS is not set
300# CONFIG_IOSCHED_DEADLINE is not set
301# CONFIG_IOSCHED_CFQ is not set
302# CONFIG_ATA_OVER_ETH is not set 317# CONFIG_ATA_OVER_ETH is not set
303 318
304# 319#
@@ -353,7 +368,6 @@ CONFIG_NETDEVICES=y
353# PHY device support 368# PHY device support
354# 369#
355CONFIG_PHYLIB=y 370CONFIG_PHYLIB=y
356CONFIG_PHYCONTROL=y
357 371
358# 372#
359# MII PHY device drivers 373# MII PHY device drivers
@@ -385,7 +399,6 @@ CONFIG_NET_ISA=y
385# CONFIG_ETH16I is not set 399# CONFIG_ETH16I is not set
386CONFIG_NE2000=y 400CONFIG_NE2000=y
387# CONFIG_NET_PCI is not set 401# CONFIG_NET_PCI is not set
388# CONFIG_NET_POCKET is not set
389 402
390# 403#
391# Ethernet (1000 Mbit) 404# Ethernet (1000 Mbit)
@@ -558,6 +571,10 @@ CONFIG_DUMMY_CONSOLE=y
558# CONFIG_USB_ARCH_HAS_OHCI is not set 571# CONFIG_USB_ARCH_HAS_OHCI is not set
559 572
560# 573#
574# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
575#
576
577#
561# USB Gadget Support 578# USB Gadget Support
562# 579#
563# CONFIG_USB_GADGET is not set 580# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig
index 897420d39053..047e0b4236f8 100644
--- a/arch/mips/configs/rbhma4500_defconfig
+++ b/arch/mips/configs/rbhma4500_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:26:59 2005 4# Thu Nov 10 14:02:45 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_OBSOLETE_MODPARM=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -188,6 +206,7 @@ CONFIG_FLATMEM_MANUAL=y
188CONFIG_FLATMEM=y 206CONFIG_FLATMEM=y
189CONFIG_FLAT_NODE_MEM_MAP=y 207CONFIG_FLAT_NODE_MEM_MAP=y
190# CONFIG_SPARSEMEM_STATIC is not set 208# CONFIG_SPARSEMEM_STATIC is not set
209CONFIG_SPLIT_PTLOCK_CPUS=4
191CONFIG_PREEMPT_NONE=y 210CONFIG_PREEMPT_NONE=y
192# CONFIG_PREEMPT_VOLUNTARY is not set 211# CONFIG_PREEMPT_VOLUNTARY is not set
193# CONFIG_PREEMPT is not set 212# CONFIG_PREEMPT is not set
@@ -265,15 +284,19 @@ CONFIG_IPV6=m
265# CONFIG_IPV6_TUNNEL is not set 284# CONFIG_IPV6_TUNNEL is not set
266CONFIG_NETFILTER=y 285CONFIG_NETFILTER=y
267# CONFIG_NETFILTER_DEBUG is not set 286# CONFIG_NETFILTER_DEBUG is not set
287
288#
289# Core Netfilter Configuration
290#
268CONFIG_NETFILTER_NETLINK=m 291CONFIG_NETFILTER_NETLINK=m
269CONFIG_NETFILTER_NETLINK_QUEUE=m 292CONFIG_NETFILTER_NETLINK_QUEUE=m
270CONFIG_NETFILTER_NETLINK_LOG=m 293CONFIG_NETFILTER_NETLINK_LOG=m
294# CONFIG_NF_CONNTRACK is not set
271 295
272# 296#
273# IP: Netfilter Configuration 297# IP: Netfilter Configuration
274# 298#
275# CONFIG_IP_NF_CONNTRACK is not set 299# CONFIG_IP_NF_CONNTRACK is not set
276CONFIG_IP_NF_PPTP=m
277# CONFIG_IP_NF_QUEUE is not set 300# CONFIG_IP_NF_QUEUE is not set
278# CONFIG_IP_NF_IPTABLES is not set 301# CONFIG_IP_NF_IPTABLES is not set
279# CONFIG_IP_NF_ARPTABLES is not set 302# CONFIG_IP_NF_ARPTABLES is not set
@@ -305,6 +328,10 @@ CONFIG_IP_NF_PPTP=m
305# CONFIG_NET_DIVERT is not set 328# CONFIG_NET_DIVERT is not set
306# CONFIG_ECONET is not set 329# CONFIG_ECONET is not set
307# CONFIG_WAN_ROUTER is not set 330# CONFIG_WAN_ROUTER is not set
331
332#
333# QoS and/or fair queueing
334#
308# CONFIG_NET_SCHED is not set 335# CONFIG_NET_SCHED is not set
309# CONFIG_NET_CLS_ROUTE is not set 336# CONFIG_NET_CLS_ROUTE is not set
310 337
@@ -355,6 +382,7 @@ CONFIG_MTD_BLOCK=y
355# CONFIG_FTL is not set 382# CONFIG_FTL is not set
356# CONFIG_NFTL is not set 383# CONFIG_NFTL is not set
357# CONFIG_INFTL is not set 384# CONFIG_INFTL is not set
385# CONFIG_RFD_FTL is not set
358 386
359# 387#
360# RAM/ROM/Flash chip drivers 388# RAM/ROM/Flash chip drivers
@@ -412,6 +440,11 @@ CONFIG_MTD_CFI_UTIL=y
412# CONFIG_MTD_NAND is not set 440# CONFIG_MTD_NAND is not set
413 441
414# 442#
443# OneNAND Flash Device Drivers
444#
445# CONFIG_MTD_ONENAND is not set
446
447#
415# Parallel port support 448# Parallel port support
416# 449#
417# CONFIG_PARPORT is not set 450# CONFIG_PARPORT is not set
@@ -438,16 +471,7 @@ CONFIG_BLK_DEV_RAM=y
438CONFIG_BLK_DEV_RAM_COUNT=16 471CONFIG_BLK_DEV_RAM_COUNT=16
439CONFIG_BLK_DEV_RAM_SIZE=8192 472CONFIG_BLK_DEV_RAM_SIZE=8192
440CONFIG_BLK_DEV_INITRD=y 473CONFIG_BLK_DEV_INITRD=y
441# CONFIG_LBD is not set
442# CONFIG_CDROM_PKTCDVD is not set 474# CONFIG_CDROM_PKTCDVD is not set
443
444#
445# IO Schedulers
446#
447CONFIG_IOSCHED_NOOP=y
448CONFIG_IOSCHED_AS=y
449CONFIG_IOSCHED_DEADLINE=y
450CONFIG_IOSCHED_CFQ=y
451# CONFIG_ATA_OVER_ETH is not set 475# CONFIG_ATA_OVER_ETH is not set
452 476
453# 477#
@@ -556,7 +580,6 @@ CONFIG_TUN=m
556# PHY device support 580# PHY device support
557# 581#
558CONFIG_PHYLIB=m 582CONFIG_PHYLIB=m
559CONFIG_PHYCONTROL=y
560 583
561# 584#
562# MII PHY device drivers 585# MII PHY device drivers
@@ -574,6 +597,7 @@ CONFIG_NET_ETHERNET=y
574# CONFIG_MII is not set 597# CONFIG_MII is not set
575# CONFIG_HAPPYMEAL is not set 598# CONFIG_HAPPYMEAL is not set
576# CONFIG_SUNGEM is not set 599# CONFIG_SUNGEM is not set
600# CONFIG_CASSINI is not set
577# CONFIG_NET_VENDOR_3COM is not set 601# CONFIG_NET_VENDOR_3COM is not set
578# CONFIG_NET_VENDOR_SMC is not set 602# CONFIG_NET_VENDOR_SMC is not set
579# CONFIG_NET_VENDOR_RACAL is not set 603# CONFIG_NET_VENDOR_RACAL is not set
@@ -619,7 +643,6 @@ CONFIG_NET_PCI=y
619# CONFIG_TLAN is not set 643# CONFIG_TLAN is not set
620# CONFIG_VIA_RHINE is not set 644# CONFIG_VIA_RHINE is not set
621# CONFIG_LAN_SAA9730 is not set 645# CONFIG_LAN_SAA9730 is not set
622# CONFIG_NET_POCKET is not set
623 646
624# 647#
625# Ethernet (1000 Mbit) 648# Ethernet (1000 Mbit)
@@ -668,7 +691,6 @@ CONFIG_NET_RADIO=y
668# CONFIG_IPW2100 is not set 691# CONFIG_IPW2100 is not set
669# CONFIG_IPW_DEBUG is not set 692# CONFIG_IPW_DEBUG is not set
670CONFIG_IPW2200=m 693CONFIG_IPW2200=m
671# CONFIG_AIRO is not set
672# CONFIG_HERMES is not set 694# CONFIG_HERMES is not set
673# CONFIG_ATMEL is not set 695# CONFIG_ATMEL is not set
674 696
@@ -692,6 +714,7 @@ CONFIG_PPP_ASYNC=m
692CONFIG_PPP_SYNC_TTY=m 714CONFIG_PPP_SYNC_TTY=m
693CONFIG_PPP_DEFLATE=m 715CONFIG_PPP_DEFLATE=m
694# CONFIG_PPP_BSDCOMP is not set 716# CONFIG_PPP_BSDCOMP is not set
717CONFIG_PPP_MPPE=m
695CONFIG_PPPOE=m 718CONFIG_PPPOE=m
696# CONFIG_SLIP is not set 719# CONFIG_SLIP is not set
697# CONFIG_SHAPER is not set 720# CONFIG_SHAPER is not set
@@ -804,6 +827,7 @@ CONFIG_LEGACY_PTY_COUNT=256
804# TPM devices 827# TPM devices
805# 828#
806# CONFIG_TCG_TPM is not set 829# CONFIG_TCG_TPM is not set
830# CONFIG_TELCLOCK is not set
807 831
808# 832#
809# I2C support 833# I2C support
@@ -847,7 +871,6 @@ CONFIG_FB=y
847CONFIG_FB_CFB_FILLRECT=y 871CONFIG_FB_CFB_FILLRECT=y
848CONFIG_FB_CFB_COPYAREA=y 872CONFIG_FB_CFB_COPYAREA=y
849CONFIG_FB_CFB_IMAGEBLIT=y 873CONFIG_FB_CFB_IMAGEBLIT=y
850CONFIG_FB_SOFT_CURSOR=y
851# CONFIG_FB_MACMODES is not set 874# CONFIG_FB_MACMODES is not set
852# CONFIG_FB_MODE_HELPERS is not set 875# CONFIG_FB_MODE_HELPERS is not set
853# CONFIG_FB_TILEBLITTING is not set 876# CONFIG_FB_TILEBLITTING is not set
@@ -856,6 +879,7 @@ CONFIG_FB_SOFT_CURSOR=y
856# CONFIG_FB_CYBER2000 is not set 879# CONFIG_FB_CYBER2000 is not set
857# CONFIG_FB_ASILIANT is not set 880# CONFIG_FB_ASILIANT is not set
858# CONFIG_FB_IMSTT is not set 881# CONFIG_FB_IMSTT is not set
882# CONFIG_FB_S1D13XXX is not set
859# CONFIG_FB_NVIDIA is not set 883# CONFIG_FB_NVIDIA is not set
860# CONFIG_FB_RIVA is not set 884# CONFIG_FB_RIVA is not set
861# CONFIG_FB_MATROX is not set 885# CONFIG_FB_MATROX is not set
@@ -876,7 +900,6 @@ CONFIG_FB_ATY_CT=y
876# CONFIG_FB_SMIVGX is not set 900# CONFIG_FB_SMIVGX is not set
877# CONFIG_FB_CYBLA is not set 901# CONFIG_FB_CYBLA is not set
878# CONFIG_FB_TRIDENT is not set 902# CONFIG_FB_TRIDENT is not set
879# CONFIG_FB_S1D13XXX is not set
880# CONFIG_FB_VIRTUAL is not set 903# CONFIG_FB_VIRTUAL is not set
881 904
882# 905#
@@ -926,12 +949,15 @@ CONFIG_USB=y
926# 949#
927# USB Device Class drivers 950# USB Device Class drivers
928# 951#
929# CONFIG_USB_BLUETOOTH_TTY is not set
930# CONFIG_USB_ACM is not set 952# CONFIG_USB_ACM is not set
931# CONFIG_USB_PRINTER is not set 953# CONFIG_USB_PRINTER is not set
932 954
933# 955#
934# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 956# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
957#
958
959#
960# may also be needed; see USB_STORAGE Help for more information
935# 961#
936# CONFIG_USB_STORAGE is not set 962# CONFIG_USB_STORAGE is not set
937 963
@@ -1106,6 +1132,7 @@ CONFIG_RELAYFS_FS=m
1106CONFIG_JFFS2_FS=y 1132CONFIG_JFFS2_FS=y
1107CONFIG_JFFS2_FS_DEBUG=0 1133CONFIG_JFFS2_FS_DEBUG=0
1108CONFIG_JFFS2_FS_WRITEBUFFER=y 1134CONFIG_JFFS2_FS_WRITEBUFFER=y
1135# CONFIG_JFFS2_SUMMARY is not set
1109# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1136# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1110CONFIG_JFFS2_ZLIB=y 1137CONFIG_JFFS2_ZLIB=y
1111CONFIG_JFFS2_RTIME=y 1138CONFIG_JFFS2_RTIME=y
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
index 988a05824f01..55458062352e 100644
--- a/arch/mips/configs/rm200_defconfig
+++ b/arch/mips/configs/rm200_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:03 2005 4# Thu Nov 10 14:02:50 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -59,6 +59,24 @@ CONFIG_MODVERSIONS=y
59CONFIG_KMOD=y 59CONFIG_KMOD=y
60 60
61# 61#
62# Block layer
63#
64# CONFIG_LBD is not set
65
66#
67# IO Schedulers
68#
69CONFIG_IOSCHED_NOOP=y
70CONFIG_IOSCHED_AS=y
71CONFIG_IOSCHED_DEADLINE=y
72CONFIG_IOSCHED_CFQ=y
73CONFIG_DEFAULT_AS=y
74# CONFIG_DEFAULT_DEADLINE is not set
75# CONFIG_DEFAULT_CFQ is not set
76# CONFIG_DEFAULT_NOOP is not set
77CONFIG_DEFAULT_IOSCHED="anticipatory"
78
79#
62# Machine selection 80# Machine selection
63# 81#
64# CONFIG_MIPS_MTX1 is not set 82# CONFIG_MIPS_MTX1 is not set
@@ -190,6 +208,7 @@ CONFIG_FLATMEM_MANUAL=y
190CONFIG_FLATMEM=y 208CONFIG_FLATMEM=y
191CONFIG_FLAT_NODE_MEM_MAP=y 209CONFIG_FLAT_NODE_MEM_MAP=y
192# CONFIG_SPARSEMEM_STATIC is not set 210# CONFIG_SPARSEMEM_STATIC is not set
211CONFIG_SPLIT_PTLOCK_CPUS=4
193# CONFIG_PREEMPT_NONE is not set 212# CONFIG_PREEMPT_NONE is not set
194CONFIG_PREEMPT_VOLUNTARY=y 213CONFIG_PREEMPT_VOLUNTARY=y
195# CONFIG_PREEMPT is not set 214# CONFIG_PREEMPT is not set
@@ -272,6 +291,10 @@ CONFIG_IPV6_TUNNEL=m
272CONFIG_NETFILTER=y 291CONFIG_NETFILTER=y
273# CONFIG_NETFILTER_DEBUG is not set 292# CONFIG_NETFILTER_DEBUG is not set
274CONFIG_BRIDGE_NETFILTER=y 293CONFIG_BRIDGE_NETFILTER=y
294
295#
296# Core Netfilter Configuration
297#
275CONFIG_NETFILTER_NETLINK=m 298CONFIG_NETFILTER_NETLINK=m
276CONFIG_NETFILTER_NETLINK_QUEUE=m 299CONFIG_NETFILTER_NETLINK_QUEUE=m
277CONFIG_NETFILTER_NETLINK_LOG=m 300CONFIG_NETFILTER_NETLINK_LOG=m
@@ -325,6 +348,7 @@ CONFIG_IP_NF_TARGET_REJECT=m
325CONFIG_IP_NF_TARGET_LOG=m 348CONFIG_IP_NF_TARGET_LOG=m
326CONFIG_IP_NF_TARGET_ULOG=m 349CONFIG_IP_NF_TARGET_ULOG=m
327CONFIG_IP_NF_TARGET_TCPMSS=m 350CONFIG_IP_NF_TARGET_TCPMSS=m
351CONFIG_IP_NF_TARGET_NFQUEUE=m
328CONFIG_IP_NF_NAT=m 352CONFIG_IP_NF_NAT=m
329CONFIG_IP_NF_NAT_NEEDED=y 353CONFIG_IP_NF_NAT_NEEDED=y
330CONFIG_IP_NF_TARGET_MASQUERADE=m 354CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -374,6 +398,7 @@ CONFIG_IP6_NF_MATCH_PHYSDEV=m
374CONFIG_IP6_NF_FILTER=m 398CONFIG_IP6_NF_FILTER=m
375CONFIG_IP6_NF_TARGET_LOG=m 399CONFIG_IP6_NF_TARGET_LOG=m
376CONFIG_IP6_NF_TARGET_REJECT=m 400CONFIG_IP6_NF_TARGET_REJECT=m
401CONFIG_IP6_NF_TARGET_NFQUEUE=m
377CONFIG_IP6_NF_MANGLE=m 402CONFIG_IP6_NF_MANGLE=m
378CONFIG_IP6_NF_TARGET_MARK=m 403CONFIG_IP6_NF_TARGET_MARK=m
379CONFIG_IP6_NF_TARGET_HL=m 404CONFIG_IP6_NF_TARGET_HL=m
@@ -430,10 +455,18 @@ CONFIG_DECNET=m
430# CONFIG_NET_DIVERT is not set 455# CONFIG_NET_DIVERT is not set
431# CONFIG_ECONET is not set 456# CONFIG_ECONET is not set
432# CONFIG_WAN_ROUTER is not set 457# CONFIG_WAN_ROUTER is not set
458
459#
460# QoS and/or fair queueing
461#
433CONFIG_NET_SCHED=y 462CONFIG_NET_SCHED=y
434CONFIG_NET_SCH_CLK_JIFFIES=y 463CONFIG_NET_SCH_CLK_JIFFIES=y
435# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set 464# CONFIG_NET_SCH_CLK_GETTIMEOFDAY is not set
436# CONFIG_NET_SCH_CLK_CPU is not set 465# CONFIG_NET_SCH_CLK_CPU is not set
466
467#
468# Queueing/Scheduling
469#
437CONFIG_NET_SCH_CBQ=m 470CONFIG_NET_SCH_CBQ=m
438CONFIG_NET_SCH_HTB=m 471CONFIG_NET_SCH_HTB=m
439CONFIG_NET_SCH_HFSC=m 472CONFIG_NET_SCH_HFSC=m
@@ -446,8 +479,10 @@ CONFIG_NET_SCH_GRED=m
446CONFIG_NET_SCH_DSMARK=m 479CONFIG_NET_SCH_DSMARK=m
447CONFIG_NET_SCH_NETEM=m 480CONFIG_NET_SCH_NETEM=m
448CONFIG_NET_SCH_INGRESS=m 481CONFIG_NET_SCH_INGRESS=m
449CONFIG_NET_QOS=y 482
450CONFIG_NET_ESTIMATOR=y 483#
484# Classification
485#
451CONFIG_NET_CLS=y 486CONFIG_NET_CLS=y
452CONFIG_NET_CLS_BASIC=m 487CONFIG_NET_CLS_BASIC=m
453CONFIG_NET_CLS_TCINDEX=m 488CONFIG_NET_CLS_TCINDEX=m
@@ -456,13 +491,14 @@ CONFIG_NET_CLS_ROUTE=y
456CONFIG_NET_CLS_FW=m 491CONFIG_NET_CLS_FW=m
457CONFIG_NET_CLS_U32=m 492CONFIG_NET_CLS_U32=m
458# CONFIG_CLS_U32_PERF is not set 493# CONFIG_CLS_U32_PERF is not set
459# CONFIG_NET_CLS_IND is not set
460# CONFIG_CLS_U32_MARK is not set 494# CONFIG_CLS_U32_MARK is not set
461CONFIG_NET_CLS_RSVP=m 495CONFIG_NET_CLS_RSVP=m
462CONFIG_NET_CLS_RSVP6=m 496CONFIG_NET_CLS_RSVP6=m
463# CONFIG_NET_EMATCH is not set 497# CONFIG_NET_EMATCH is not set
464# CONFIG_NET_CLS_ACT is not set 498# CONFIG_NET_CLS_ACT is not set
465CONFIG_NET_CLS_POLICE=y 499CONFIG_NET_CLS_POLICE=y
500# CONFIG_NET_CLS_IND is not set
501CONFIG_NET_ESTIMATOR=y
466 502
467# 503#
468# Network testing 504# Network testing
@@ -583,18 +619,9 @@ CONFIG_BLK_DEV_UB=m
583CONFIG_BLK_DEV_RAM=m 619CONFIG_BLK_DEV_RAM=m
584CONFIG_BLK_DEV_RAM_COUNT=16 620CONFIG_BLK_DEV_RAM_COUNT=16
585CONFIG_BLK_DEV_RAM_SIZE=4096 621CONFIG_BLK_DEV_RAM_SIZE=4096
586# CONFIG_LBD is not set
587CONFIG_CDROM_PKTCDVD=m 622CONFIG_CDROM_PKTCDVD=m
588CONFIG_CDROM_PKTCDVD_BUFFERS=8 623CONFIG_CDROM_PKTCDVD_BUFFERS=8
589# CONFIG_CDROM_PKTCDVD_WCACHE is not set 624# CONFIG_CDROM_PKTCDVD_WCACHE is not set
590
591#
592# IO Schedulers
593#
594CONFIG_IOSCHED_NOOP=y
595CONFIG_IOSCHED_AS=y
596CONFIG_IOSCHED_DEADLINE=y
597CONFIG_IOSCHED_CFQ=y
598CONFIG_ATA_OVER_ETH=m 625CONFIG_ATA_OVER_ETH=m
599 626
600# 627#
@@ -638,6 +665,7 @@ CONFIG_SCSI_SAS_ATTRS=m
638# 665#
639# SCSI low-level drivers 666# SCSI low-level drivers
640# 667#
668CONFIG_ISCSI_TCP=m
641# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 669# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
642# CONFIG_SCSI_3W_9XXX is not set 670# CONFIG_SCSI_3W_9XXX is not set
643# CONFIG_SCSI_ACARD is not set 671# CONFIG_SCSI_ACARD is not set
@@ -651,6 +679,7 @@ CONFIG_SCSI_SAS_ATTRS=m
651CONFIG_MEGARAID_NEWGEN=y 679CONFIG_MEGARAID_NEWGEN=y
652CONFIG_MEGARAID_MM=m 680CONFIG_MEGARAID_MM=m
653CONFIG_MEGARAID_MAILBOX=m 681CONFIG_MEGARAID_MAILBOX=m
682# CONFIG_MEGARAID_SAS is not set
654# CONFIG_SCSI_SATA is not set 683# CONFIG_SCSI_SATA is not set
655# CONFIG_SCSI_DMX3191D is not set 684# CONFIG_SCSI_DMX3191D is not set
656# CONFIG_SCSI_DTC3280 is not set 685# CONFIG_SCSI_DTC3280 is not set
@@ -723,6 +752,7 @@ CONFIG_DM_MULTIPATH_EMC=m
723# CONFIG_FUSION is not set 752# CONFIG_FUSION is not set
724# CONFIG_FUSION_SPI is not set 753# CONFIG_FUSION_SPI is not set
725# CONFIG_FUSION_FC is not set 754# CONFIG_FUSION_FC is not set
755# CONFIG_FUSION_SAS is not set
726 756
727# 757#
728# IEEE 1394 (FireWire) support 758# IEEE 1394 (FireWire) support
@@ -752,7 +782,6 @@ CONFIG_TUN=m
752# PHY device support 782# PHY device support
753# 783#
754CONFIG_PHYLIB=m 784CONFIG_PHYLIB=m
755CONFIG_PHYCONTROL=y
756 785
757# 786#
758# MII PHY device drivers 787# MII PHY device drivers
@@ -770,6 +799,7 @@ CONFIG_NET_ETHERNET=y
770CONFIG_MII=y 799CONFIG_MII=y
771# CONFIG_HAPPYMEAL is not set 800# CONFIG_HAPPYMEAL is not set
772# CONFIG_SUNGEM is not set 801# CONFIG_SUNGEM is not set
802# CONFIG_CASSINI is not set
773# CONFIG_NET_VENDOR_3COM is not set 803# CONFIG_NET_VENDOR_3COM is not set
774# CONFIG_NET_VENDOR_SMC is not set 804# CONFIG_NET_VENDOR_SMC is not set
775# CONFIG_NET_VENDOR_RACAL is not set 805# CONFIG_NET_VENDOR_RACAL is not set
@@ -984,6 +1014,7 @@ CONFIG_RTC=m
984# TPM devices 1014# TPM devices
985# 1015#
986# CONFIG_TCG_TPM is not set 1016# CONFIG_TCG_TPM is not set
1017# CONFIG_TELCLOCK is not set
987 1018
988# 1019#
989# I2C support 1020# I2C support
@@ -1074,12 +1105,15 @@ CONFIG_USB_UHCI_HCD=m
1074# 1105#
1075# USB Device Class drivers 1106# USB Device Class drivers
1076# 1107#
1077CONFIG_USB_BLUETOOTH_TTY=m
1078CONFIG_USB_ACM=m 1108CONFIG_USB_ACM=m
1079CONFIG_USB_PRINTER=m 1109CONFIG_USB_PRINTER=m
1080 1110
1081# 1111#
1082# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 1112# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1113#
1114
1115#
1116# may also be needed; see USB_STORAGE Help for more information
1083# 1117#
1084CONFIG_USB_STORAGE=m 1118CONFIG_USB_STORAGE=m
1085# CONFIG_USB_STORAGE_DEBUG is not set 1119# CONFIG_USB_STORAGE_DEBUG is not set
@@ -1196,6 +1230,7 @@ CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
1196CONFIG_USB_SERIAL_KLSI=m 1230CONFIG_USB_SERIAL_KLSI=m
1197CONFIG_USB_SERIAL_KOBIL_SCT=m 1231CONFIG_USB_SERIAL_KOBIL_SCT=m
1198CONFIG_USB_SERIAL_MCT_U232=m 1232CONFIG_USB_SERIAL_MCT_U232=m
1233# CONFIG_USB_SERIAL_NOKIA_DKU2 is not set
1199CONFIG_USB_SERIAL_PL2303=m 1234CONFIG_USB_SERIAL_PL2303=m
1200CONFIG_USB_SERIAL_HP4X=m 1235CONFIG_USB_SERIAL_HP4X=m
1201CONFIG_USB_SERIAL_SAFE=m 1236CONFIG_USB_SERIAL_SAFE=m
@@ -1271,7 +1306,7 @@ CONFIG_REISERFS_FS_SECURITY=y
1271CONFIG_FS_POSIX_ACL=y 1306CONFIG_FS_POSIX_ACL=y
1272CONFIG_XFS_FS=m 1307CONFIG_XFS_FS=m
1273CONFIG_XFS_EXPORT=y 1308CONFIG_XFS_EXPORT=y
1274CONFIG_XFS_QUOTA=m 1309CONFIG_XFS_QUOTA=y
1275CONFIG_XFS_SECURITY=y 1310CONFIG_XFS_SECURITY=y
1276# CONFIG_XFS_POSIX_ACL is not set 1311# CONFIG_XFS_POSIX_ACL is not set
1277# CONFIG_XFS_RT is not set 1312# CONFIG_XFS_RT is not set
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index 4365d9c8c42e..dc453a1e4806 100644
--- a/arch/mips/configs/sb1250-swarm_defconfig
+++ b/arch/mips/configs/sb1250-swarm_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:05 2005 4# Mon Nov 7 23:06:43 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -59,6 +59,23 @@ CONFIG_KMOD=y
59CONFIG_STOP_MACHINE=y 59CONFIG_STOP_MACHINE=y
60 60
61# 61#
62# Block layer
63#
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
62# Machine selection 79# Machine selection
63# 80#
64# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -126,8 +143,8 @@ CONFIG_CPU_SB1_PASS_1=y
126# CONFIG_CPU_SB1_PASS_3 is not set 143# CONFIG_CPU_SB1_PASS_3 is not set
127CONFIG_SIBYTE_HAS_LDT=y 144CONFIG_SIBYTE_HAS_LDT=y
128# CONFIG_SIMULATION is not set 145# CONFIG_SIMULATION is not set
129# CONFIG_CONFIG_SB1_CEX_ALWAYS_FATAL is not set 146# CONFIG_SB1_CEX_ALWAYS_FATAL is not set
130# CONFIG_CONFIG_SB1_CERR_STALL is not set 147# CONFIG_SB1_CERR_STALL is not set
131CONFIG_SIBYTE_CFE=y 148CONFIG_SIBYTE_CFE=y
132# CONFIG_SIBYTE_CFE_CONSOLE is not set 149# CONFIG_SIBYTE_CFE_CONSOLE is not set
133# CONFIG_SIBYTE_BUS_WATCHER is not set 150# CONFIG_SIBYTE_BUS_WATCHER is not set
@@ -200,6 +217,7 @@ CONFIG_FLATMEM_MANUAL=y
200CONFIG_FLATMEM=y 217CONFIG_FLATMEM=y
201CONFIG_FLAT_NODE_MEM_MAP=y 218CONFIG_FLAT_NODE_MEM_MAP=y
202# CONFIG_SPARSEMEM_STATIC is not set 219# CONFIG_SPARSEMEM_STATIC is not set
220CONFIG_SPLIT_PTLOCK_CPUS=4
203CONFIG_SMP=y 221CONFIG_SMP=y
204CONFIG_NR_CPUS=2 222CONFIG_NR_CPUS=2
205CONFIG_PREEMPT_NONE=y 223CONFIG_PREEMPT_NONE=y
@@ -295,6 +313,10 @@ CONFIG_TCP_CONG_BIC=y
295# CONFIG_NET_DIVERT is not set 313# CONFIG_NET_DIVERT is not set
296# CONFIG_ECONET is not set 314# CONFIG_ECONET is not set
297# CONFIG_WAN_ROUTER is not set 315# CONFIG_WAN_ROUTER is not set
316
317#
318# QoS and/or fair queueing
319#
298# CONFIG_NET_SCHED is not set 320# CONFIG_NET_SCHED is not set
299# CONFIG_NET_CLS_ROUTE is not set 321# CONFIG_NET_CLS_ROUTE is not set
300 322
@@ -359,14 +381,6 @@ CONFIG_BLK_DEV_INITRD=y
359CONFIG_CDROM_PKTCDVD=m 381CONFIG_CDROM_PKTCDVD=m
360CONFIG_CDROM_PKTCDVD_BUFFERS=8 382CONFIG_CDROM_PKTCDVD_BUFFERS=8
361# CONFIG_CDROM_PKTCDVD_WCACHE is not set 383# CONFIG_CDROM_PKTCDVD_WCACHE is not set
362
363#
364# IO Schedulers
365#
366CONFIG_IOSCHED_NOOP=y
367CONFIG_IOSCHED_AS=y
368CONFIG_IOSCHED_DEADLINE=y
369CONFIG_IOSCHED_CFQ=y
370CONFIG_ATA_OVER_ETH=m 384CONFIG_ATA_OVER_ETH=m
371 385
372# 386#
@@ -441,7 +455,6 @@ CONFIG_NETDEVICES=y
441# PHY device support 455# PHY device support
442# 456#
443CONFIG_PHYLIB=m 457CONFIG_PHYLIB=m
444CONFIG_PHYCONTROL=y
445 458
446# 459#
447# MII PHY device drivers 460# MII PHY device drivers
@@ -459,6 +472,7 @@ CONFIG_NET_ETHERNET=y
459CONFIG_MII=y 472CONFIG_MII=y
460# CONFIG_HAPPYMEAL is not set 473# CONFIG_HAPPYMEAL is not set
461# CONFIG_SUNGEM is not set 474# CONFIG_SUNGEM is not set
475# CONFIG_CASSINI is not set
462# CONFIG_NET_VENDOR_3COM is not set 476# CONFIG_NET_VENDOR_3COM is not set
463 477
464# 478#
@@ -599,6 +613,7 @@ CONFIG_LEGACY_PTY_COUNT=256
599# TPM devices 613# TPM devices
600# 614#
601# CONFIG_TCG_TPM is not set 615# CONFIG_TCG_TPM is not set
616# CONFIG_TELCLOCK is not set
602 617
603# 618#
604# I2C support 619# I2C support
@@ -652,6 +667,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
652# CONFIG_USB is not set 667# CONFIG_USB is not set
653 668
654# 669#
670# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
671#
672
673#
655# USB Gadget Support 674# USB Gadget Support
656# 675#
657# CONFIG_USB_GADGET is not set 676# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig
index d835f6db1f41..aa27d583162d 100644
--- a/arch/mips/configs/sead_defconfig
+++ b/arch/mips/configs/sead_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:07 2005 4# Mon Nov 7 23:06:45 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -48,6 +48,24 @@ CONFIG_BASE_SMALL=0
48# CONFIG_MODULES is not set 48# CONFIG_MODULES is not set
49 49
50# 50#
51# Block layer
52#
53# CONFIG_LBD is not set
54
55#
56# IO Schedulers
57#
58CONFIG_IOSCHED_NOOP=y
59CONFIG_IOSCHED_AS=y
60CONFIG_IOSCHED_DEADLINE=y
61CONFIG_IOSCHED_CFQ=y
62CONFIG_DEFAULT_AS=y
63# CONFIG_DEFAULT_DEADLINE is not set
64# CONFIG_DEFAULT_CFQ is not set
65# CONFIG_DEFAULT_NOOP is not set
66CONFIG_DEFAULT_IOSCHED="anticipatory"
67
68#
51# Machine selection 69# Machine selection
52# 70#
53# CONFIG_MIPS_MTX1 is not set 71# CONFIG_MIPS_MTX1 is not set
@@ -173,6 +191,7 @@ CONFIG_FLATMEM_MANUAL=y
173CONFIG_FLATMEM=y 191CONFIG_FLATMEM=y
174CONFIG_FLAT_NODE_MEM_MAP=y 192CONFIG_FLAT_NODE_MEM_MAP=y
175# CONFIG_SPARSEMEM_STATIC is not set 193# CONFIG_SPARSEMEM_STATIC is not set
194CONFIG_SPLIT_PTLOCK_CPUS=4
176CONFIG_PREEMPT_NONE=y 195CONFIG_PREEMPT_NONE=y
177# CONFIG_PREEMPT_VOLUNTARY is not set 196# CONFIG_PREEMPT_VOLUNTARY is not set
178# CONFIG_PREEMPT is not set 197# CONFIG_PREEMPT is not set
@@ -242,18 +261,9 @@ CONFIG_BLK_DEV_RAM=y
242CONFIG_BLK_DEV_RAM_COUNT=16 261CONFIG_BLK_DEV_RAM_COUNT=16
243CONFIG_BLK_DEV_RAM_SIZE=18432 262CONFIG_BLK_DEV_RAM_SIZE=18432
244CONFIG_BLK_DEV_INITRD=y 263CONFIG_BLK_DEV_INITRD=y
245# CONFIG_LBD is not set
246# CONFIG_CDROM_PKTCDVD is not set 264# CONFIG_CDROM_PKTCDVD is not set
247 265
248# 266#
249# IO Schedulers
250#
251CONFIG_IOSCHED_NOOP=y
252CONFIG_IOSCHED_AS=y
253CONFIG_IOSCHED_DEADLINE=y
254CONFIG_IOSCHED_CFQ=y
255
256#
257# ATA/ATAPI/MFM/RLL support 267# ATA/ATAPI/MFM/RLL support
258# 268#
259# CONFIG_IDE is not set 269# CONFIG_IDE is not set
@@ -353,6 +363,7 @@ CONFIG_LEGACY_PTY_COUNT=256
353# 363#
354# TPM devices 364# TPM devices
355# 365#
366# CONFIG_TELCLOCK is not set
356 367
357# 368#
358# I2C support 369# I2C support
@@ -404,6 +415,10 @@ CONFIG_LEGACY_PTY_COUNT=256
404# CONFIG_USB_ARCH_HAS_OHCI is not set 415# CONFIG_USB_ARCH_HAS_OHCI is not set
405 416
406# 417#
418# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
419#
420
421#
407# USB Gadget Support 422# USB Gadget Support
408# 423#
409# CONFIG_USB_GADGET is not set 424# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index bf60a17de2b0..ddc7e45996f2 100644
--- a/arch/mips/configs/tb0226_defconfig
+++ b/arch/mips/configs/tb0226_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:10 2005 4# Mon Nov 7 23:06:49 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -183,6 +201,7 @@ CONFIG_FLATMEM_MANUAL=y
183CONFIG_FLATMEM=y 201CONFIG_FLATMEM=y
184CONFIG_FLAT_NODE_MEM_MAP=y 202CONFIG_FLAT_NODE_MEM_MAP=y
185# CONFIG_SPARSEMEM_STATIC is not set 203# CONFIG_SPARSEMEM_STATIC is not set
204CONFIG_SPLIT_PTLOCK_CPUS=4
186CONFIG_PREEMPT_NONE=y 205CONFIG_PREEMPT_NONE=y
187# CONFIG_PREEMPT_VOLUNTARY is not set 206# CONFIG_PREEMPT_VOLUNTARY is not set
188# CONFIG_PREEMPT is not set 207# CONFIG_PREEMPT is not set
@@ -277,6 +296,10 @@ CONFIG_TCP_CONG_BIC=y
277# CONFIG_NET_DIVERT is not set 296# CONFIG_NET_DIVERT is not set
278# CONFIG_ECONET is not set 297# CONFIG_ECONET is not set
279# CONFIG_WAN_ROUTER is not set 298# CONFIG_WAN_ROUTER is not set
299
300#
301# QoS and/or fair queueing
302#
280# CONFIG_NET_SCHED is not set 303# CONFIG_NET_SCHED is not set
281# CONFIG_NET_CLS_ROUTE is not set 304# CONFIG_NET_CLS_ROUTE is not set
282 305
@@ -339,16 +362,7 @@ CONFIG_BLK_DEV_NBD=m
339CONFIG_BLK_DEV_RAM=m 362CONFIG_BLK_DEV_RAM=m
340CONFIG_BLK_DEV_RAM_COUNT=16 363CONFIG_BLK_DEV_RAM_COUNT=16
341CONFIG_BLK_DEV_RAM_SIZE=4096 364CONFIG_BLK_DEV_RAM_SIZE=4096
342# CONFIG_LBD is not set
343# CONFIG_CDROM_PKTCDVD is not set 365# CONFIG_CDROM_PKTCDVD is not set
344
345#
346# IO Schedulers
347#
348CONFIG_IOSCHED_NOOP=y
349CONFIG_IOSCHED_AS=y
350CONFIG_IOSCHED_DEADLINE=y
351CONFIG_IOSCHED_CFQ=y
352CONFIG_ATA_OVER_ETH=m 366CONFIG_ATA_OVER_ETH=m
353 367
354# 368#
@@ -385,12 +399,13 @@ CONFIG_SCSI_MULTI_LUN=y
385# 399#
386# CONFIG_SCSI_SPI_ATTRS is not set 400# CONFIG_SCSI_SPI_ATTRS is not set
387# CONFIG_SCSI_FC_ATTRS is not set 401# CONFIG_SCSI_FC_ATTRS is not set
388# CONFIG_SCSI_ISCSI_ATTRS is not set 402CONFIG_SCSI_ISCSI_ATTRS=m
389# CONFIG_SCSI_SAS_ATTRS is not set 403# CONFIG_SCSI_SAS_ATTRS is not set
390 404
391# 405#
392# SCSI low-level drivers 406# SCSI low-level drivers
393# 407#
408CONFIG_ISCSI_TCP=m
394# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 409# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
395# CONFIG_SCSI_3W_9XXX is not set 410# CONFIG_SCSI_3W_9XXX is not set
396# CONFIG_SCSI_ACARD is not set 411# CONFIG_SCSI_ACARD is not set
@@ -401,6 +416,7 @@ CONFIG_SCSI_MULTI_LUN=y
401# CONFIG_SCSI_DPT_I2O is not set 416# CONFIG_SCSI_DPT_I2O is not set
402# CONFIG_MEGARAID_NEWGEN is not set 417# CONFIG_MEGARAID_NEWGEN is not set
403# CONFIG_MEGARAID_LEGACY is not set 418# CONFIG_MEGARAID_LEGACY is not set
419# CONFIG_MEGARAID_SAS is not set
404# CONFIG_SCSI_SATA is not set 420# CONFIG_SCSI_SATA is not set
405# CONFIG_SCSI_DMX3191D is not set 421# CONFIG_SCSI_DMX3191D is not set
406# CONFIG_SCSI_FUTURE_DOMAIN is not set 422# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -435,6 +451,7 @@ CONFIG_SCSI_QLA2XXX=y
435# CONFIG_FUSION is not set 451# CONFIG_FUSION is not set
436# CONFIG_FUSION_SPI is not set 452# CONFIG_FUSION_SPI is not set
437# CONFIG_FUSION_FC is not set 453# CONFIG_FUSION_FC is not set
454# CONFIG_FUSION_SAS is not set
438 455
439# 456#
440# IEEE 1394 (FireWire) support 457# IEEE 1394 (FireWire) support
@@ -464,7 +481,6 @@ CONFIG_NETDEVICES=y
464# PHY device support 481# PHY device support
465# 482#
466CONFIG_PHYLIB=m 483CONFIG_PHYLIB=m
467CONFIG_PHYCONTROL=y
468 484
469# 485#
470# MII PHY device drivers 486# MII PHY device drivers
@@ -482,6 +498,7 @@ CONFIG_NET_ETHERNET=y
482CONFIG_MII=y 498CONFIG_MII=y
483# CONFIG_HAPPYMEAL is not set 499# CONFIG_HAPPYMEAL is not set
484# CONFIG_SUNGEM is not set 500# CONFIG_SUNGEM is not set
501# CONFIG_CASSINI is not set
485# CONFIG_NET_VENDOR_3COM is not set 502# CONFIG_NET_VENDOR_3COM is not set
486 503
487# 504#
@@ -634,6 +651,7 @@ CONFIG_LEGACY_PTY_COUNT=256
634# CONFIG_WATCHDOG is not set 651# CONFIG_WATCHDOG is not set
635# CONFIG_RTC is not set 652# CONFIG_RTC is not set
636# CONFIG_GEN_RTC is not set 653# CONFIG_GEN_RTC is not set
654# CONFIG_RTC_VR41XX is not set
637# CONFIG_DTLK is not set 655# CONFIG_DTLK is not set
638# CONFIG_R3964 is not set 656# CONFIG_R3964 is not set
639# CONFIG_APPLICOM is not set 657# CONFIG_APPLICOM is not set
@@ -650,6 +668,7 @@ CONFIG_GPIO_VR41XX=y
650# TPM devices 668# TPM devices
651# 669#
652# CONFIG_TCG_TPM is not set 670# CONFIG_TCG_TPM is not set
671# CONFIG_TELCLOCK is not set
653 672
654# 673#
655# I2C support 674# I2C support
@@ -733,12 +752,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
733# 752#
734# USB Device Class drivers 753# USB Device Class drivers
735# 754#
736# CONFIG_USB_BLUETOOTH_TTY is not set
737# CONFIG_USB_ACM is not set 755# CONFIG_USB_ACM is not set
738# CONFIG_USB_PRINTER is not set 756# CONFIG_USB_PRINTER is not set
739 757
740# 758#
741# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 759# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
760#
761
762#
763# may also be needed; see USB_STORAGE Help for more information
742# 764#
743CONFIG_USB_STORAGE=m 765CONFIG_USB_STORAGE=m
744# CONFIG_USB_STORAGE_DEBUG is not set 766# CONFIG_USB_STORAGE_DEBUG is not set
diff --git a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig
index ac8b64e87b8a..e8c82f011e98 100644
--- a/arch/mips/configs/tb0229_defconfig
+++ b/arch/mips/configs/tb0229_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:13 2005 4# Wed Nov 9 11:11:47 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -183,6 +201,7 @@ CONFIG_FLATMEM_MANUAL=y
183CONFIG_FLATMEM=y 201CONFIG_FLATMEM=y
184CONFIG_FLAT_NODE_MEM_MAP=y 202CONFIG_FLAT_NODE_MEM_MAP=y
185# CONFIG_SPARSEMEM_STATIC is not set 203# CONFIG_SPARSEMEM_STATIC is not set
204CONFIG_SPLIT_PTLOCK_CPUS=4
186CONFIG_PREEMPT_NONE=y 205CONFIG_PREEMPT_NONE=y
187# CONFIG_PREEMPT_VOLUNTARY is not set 206# CONFIG_PREEMPT_VOLUNTARY is not set
188# CONFIG_PREEMPT is not set 207# CONFIG_PREEMPT is not set
@@ -278,6 +297,10 @@ CONFIG_TCP_CONG_BIC=y
278# CONFIG_NET_DIVERT is not set 297# CONFIG_NET_DIVERT is not set
279# CONFIG_ECONET is not set 298# CONFIG_ECONET is not set
280# CONFIG_WAN_ROUTER is not set 299# CONFIG_WAN_ROUTER is not set
300
301#
302# QoS and/or fair queueing
303#
281# CONFIG_NET_SCHED is not set 304# CONFIG_NET_SCHED is not set
282# CONFIG_NET_CLS_ROUTE is not set 305# CONFIG_NET_CLS_ROUTE is not set
283 306
@@ -341,18 +364,9 @@ CONFIG_BLK_DEV_RAM=y
341CONFIG_BLK_DEV_RAM_COUNT=16 364CONFIG_BLK_DEV_RAM_COUNT=16
342CONFIG_BLK_DEV_RAM_SIZE=4096 365CONFIG_BLK_DEV_RAM_SIZE=4096
343# CONFIG_BLK_DEV_INITRD is not set 366# CONFIG_BLK_DEV_INITRD is not set
344# CONFIG_LBD is not set
345CONFIG_CDROM_PKTCDVD=m 367CONFIG_CDROM_PKTCDVD=m
346CONFIG_CDROM_PKTCDVD_BUFFERS=8 368CONFIG_CDROM_PKTCDVD_BUFFERS=8
347# CONFIG_CDROM_PKTCDVD_WCACHE is not set 369# CONFIG_CDROM_PKTCDVD_WCACHE is not set
348
349#
350# IO Schedulers
351#
352CONFIG_IOSCHED_NOOP=y
353CONFIG_IOSCHED_AS=y
354CONFIG_IOSCHED_DEADLINE=y
355CONFIG_IOSCHED_CFQ=y
356CONFIG_ATA_OVER_ETH=m 370CONFIG_ATA_OVER_ETH=m
357 371
358# 372#
@@ -404,7 +418,6 @@ CONFIG_DUMMY=m
404# PHY device support 418# PHY device support
405# 419#
406CONFIG_PHYLIB=m 420CONFIG_PHYLIB=m
407CONFIG_PHYCONTROL=y
408 421
409# 422#
410# MII PHY device drivers 423# MII PHY device drivers
@@ -422,6 +435,7 @@ CONFIG_NET_ETHERNET=y
422CONFIG_MII=y 435CONFIG_MII=y
423# CONFIG_HAPPYMEAL is not set 436# CONFIG_HAPPYMEAL is not set
424# CONFIG_SUNGEM is not set 437# CONFIG_SUNGEM is not set
438# CONFIG_CASSINI is not set
425# CONFIG_NET_VENDOR_3COM is not set 439# CONFIG_NET_VENDOR_3COM is not set
426 440
427# 441#
@@ -504,6 +518,7 @@ CONFIG_PPP_ASYNC=m
504CONFIG_PPP_SYNC_TTY=m 518CONFIG_PPP_SYNC_TTY=m
505CONFIG_PPP_DEFLATE=m 519CONFIG_PPP_DEFLATE=m
506CONFIG_PPP_BSDCOMP=m 520CONFIG_PPP_BSDCOMP=m
521CONFIG_PPP_MPPE=m
507CONFIG_PPPOE=m 522CONFIG_PPPOE=m
508CONFIG_SLIP=m 523CONFIG_SLIP=m
509CONFIG_SLIP_COMPRESSED=y 524CONFIG_SLIP_COMPRESSED=y
@@ -589,6 +604,7 @@ CONFIG_LEGACY_PTY_COUNT=256
589# CONFIG_WATCHDOG is not set 604# CONFIG_WATCHDOG is not set
590# CONFIG_RTC is not set 605# CONFIG_RTC is not set
591# CONFIG_GEN_RTC is not set 606# CONFIG_GEN_RTC is not set
607# CONFIG_RTC_VR41XX is not set
592# CONFIG_DTLK is not set 608# CONFIG_DTLK is not set
593# CONFIG_R3964 is not set 609# CONFIG_R3964 is not set
594# CONFIG_APPLICOM is not set 610# CONFIG_APPLICOM is not set
@@ -605,6 +621,7 @@ CONFIG_GPIO_VR41XX=y
605# TPM devices 621# TPM devices
606# 622#
607# CONFIG_TCG_TPM is not set 623# CONFIG_TCG_TPM is not set
624# CONFIG_TELCLOCK is not set
608 625
609# 626#
610# I2C support 627# I2C support
@@ -688,12 +705,15 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
688# 705#
689# USB Device Class drivers 706# USB Device Class drivers
690# 707#
691# CONFIG_USB_BLUETOOTH_TTY is not set
692# CONFIG_USB_ACM is not set 708# CONFIG_USB_ACM is not set
693# CONFIG_USB_PRINTER is not set 709# CONFIG_USB_PRINTER is not set
694 710
695# 711#
696# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' may also be needed; see USB_STORAGE Help for more information 712# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
713#
714
715#
716# may also be needed; see USB_STORAGE Help for more information
697# 717#
698# CONFIG_USB_STORAGE is not set 718# CONFIG_USB_STORAGE is not set
699 719
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index ab13621ef3b9..125b2997abfe 100644
--- a/arch/mips/configs/workpad_defconfig
+++ b/arch/mips/configs/workpad_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.14-rc2 3# Linux kernel version: 2.6.15-rc1
4# Thu Oct 20 22:27:16 2005 4# Tue Nov 15 11:17:02 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -57,6 +57,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
57CONFIG_KMOD=y 57CONFIG_KMOD=y
58 58
59# 59#
60# Block layer
61#
62# CONFIG_LBD is not set
63
64#
65# IO Schedulers
66#
67CONFIG_IOSCHED_NOOP=y
68CONFIG_IOSCHED_AS=y
69CONFIG_IOSCHED_DEADLINE=y
70CONFIG_IOSCHED_CFQ=y
71CONFIG_DEFAULT_AS=y
72# CONFIG_DEFAULT_DEADLINE is not set
73# CONFIG_DEFAULT_CFQ is not set
74# CONFIG_DEFAULT_NOOP is not set
75CONFIG_DEFAULT_IOSCHED="anticipatory"
76
77#
60# Machine selection 78# Machine selection
61# 79#
62# CONFIG_MIPS_MTX1 is not set 80# CONFIG_MIPS_MTX1 is not set
@@ -180,6 +198,7 @@ CONFIG_FLATMEM_MANUAL=y
180CONFIG_FLATMEM=y 198CONFIG_FLATMEM=y
181CONFIG_FLAT_NODE_MEM_MAP=y 199CONFIG_FLAT_NODE_MEM_MAP=y
182# CONFIG_SPARSEMEM_STATIC is not set 200# CONFIG_SPARSEMEM_STATIC is not set
201CONFIG_SPLIT_PTLOCK_CPUS=4
183CONFIG_PREEMPT_NONE=y 202CONFIG_PREEMPT_NONE=y
184# CONFIG_PREEMPT_VOLUNTARY is not set 203# CONFIG_PREEMPT_VOLUNTARY is not set
185# CONFIG_PREEMPT is not set 204# CONFIG_PREEMPT is not set
@@ -273,6 +292,10 @@ CONFIG_TCP_CONG_BIC=y
273# CONFIG_NET_DIVERT is not set 292# CONFIG_NET_DIVERT is not set
274# CONFIG_ECONET is not set 293# CONFIG_ECONET is not set
275# CONFIG_WAN_ROUTER is not set 294# CONFIG_WAN_ROUTER is not set
295
296#
297# QoS and/or fair queueing
298#
276# CONFIG_NET_SCHED is not set 299# CONFIG_NET_SCHED is not set
277# CONFIG_NET_CLS_ROUTE is not set 300# CONFIG_NET_CLS_ROUTE is not set
278 301
@@ -328,16 +351,7 @@ CONFIG_CONNECTOR=m
328# CONFIG_BLK_DEV_NBD is not set 351# CONFIG_BLK_DEV_NBD is not set
329# CONFIG_BLK_DEV_RAM is not set 352# CONFIG_BLK_DEV_RAM is not set
330CONFIG_BLK_DEV_RAM_COUNT=16 353CONFIG_BLK_DEV_RAM_COUNT=16
331# CONFIG_LBD is not set
332# CONFIG_CDROM_PKTCDVD is not set 354# CONFIG_CDROM_PKTCDVD is not set
333
334#
335# IO Schedulers
336#
337CONFIG_IOSCHED_NOOP=y
338CONFIG_IOSCHED_AS=y
339CONFIG_IOSCHED_DEADLINE=y
340CONFIG_IOSCHED_CFQ=y
341CONFIG_ATA_OVER_ETH=m 355CONFIG_ATA_OVER_ETH=m
342 356
343# 357#
@@ -415,7 +429,6 @@ CONFIG_NETDEVICES=y
415# PHY device support 429# PHY device support
416# 430#
417CONFIG_PHYLIB=m 431CONFIG_PHYLIB=m
418CONFIG_PHYCONTROL=y
419 432
420# 433#
421# MII PHY device drivers 434# MII PHY device drivers
@@ -439,7 +452,6 @@ CONFIG_MII=m
439# CONFIG_HP100 is not set 452# CONFIG_HP100 is not set
440# CONFIG_NET_ISA is not set 453# CONFIG_NET_ISA is not set
441# CONFIG_NET_PCI is not set 454# CONFIG_NET_PCI is not set
442# CONFIG_NET_POCKET is not set
443 455
444# 456#
445# Ethernet (1000 Mbit) 457# Ethernet (1000 Mbit)
@@ -577,6 +589,7 @@ CONFIG_WATCHDOG=y
577# CONFIG_WDT is not set 589# CONFIG_WDT is not set
578# CONFIG_RTC is not set 590# CONFIG_RTC is not set
579# CONFIG_GEN_RTC is not set 591# CONFIG_GEN_RTC is not set
592# CONFIG_RTC_VR41XX is not set
580# CONFIG_DTLK is not set 593# CONFIG_DTLK is not set
581# CONFIG_R3964 is not set 594# CONFIG_R3964 is not set
582 595
@@ -588,12 +601,15 @@ CONFIG_WATCHDOG=y
588# PCMCIA character devices 601# PCMCIA character devices
589# 602#
590# CONFIG_SYNCLINK_CS is not set 603# CONFIG_SYNCLINK_CS is not set
604# CONFIG_CARDMAN_4000 is not set
605# CONFIG_CARDMAN_4040 is not set
591# CONFIG_GPIO_VR41XX is not set 606# CONFIG_GPIO_VR41XX is not set
592# CONFIG_RAW_DRIVER is not set 607# CONFIG_RAW_DRIVER is not set
593 608
594# 609#
595# TPM devices 610# TPM devices
596# 611#
612# CONFIG_TELCLOCK is not set
597 613
598# 614#
599# I2C support 615# I2C support
@@ -653,6 +669,10 @@ CONFIG_DUMMY_CONSOLE=y
653# CONFIG_USB_ARCH_HAS_OHCI is not set 669# CONFIG_USB_ARCH_HAS_OHCI is not set
654 670
655# 671#
672# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
673#
674
675#
656# USB Gadget Support 676# USB Gadget Support
657# 677#
658# CONFIG_USB_GADGET is not set 678# CONFIG_USB_GADGET is not set
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig
index 5b0b7f30e205..d90790b2ab30 100644
--- a/arch/mips/configs/yosemite_defconfig
+++ b/arch/mips/configs/yosemite_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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:27:18 2005 4# Mon Nov 7 23:06:59 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_KMOD=y
58CONFIG_STOP_MACHINE=y 58CONFIG_STOP_MACHINE=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -181,6 +199,7 @@ CONFIG_ARCH_FLATMEM_ENABLE=y
181CONFIG_FLATMEM=y 199CONFIG_FLATMEM=y
182CONFIG_FLAT_NODE_MEM_MAP=y 200CONFIG_FLAT_NODE_MEM_MAP=y
183# CONFIG_SPARSEMEM_STATIC is not set 201# CONFIG_SPARSEMEM_STATIC is not set
202CONFIG_SPLIT_PTLOCK_CPUS=4
184CONFIG_SMP=y 203CONFIG_SMP=y
185CONFIG_NR_CPUS=2 204CONFIG_NR_CPUS=2
186CONFIG_PREEMPT_NONE=y 205CONFIG_PREEMPT_NONE=y
@@ -260,6 +279,10 @@ CONFIG_IPV6_TUNNEL=m
260# CONFIG_LLC2 is not set 279# CONFIG_LLC2 is not set
261# CONFIG_IPX is not set 280# CONFIG_IPX is not set
262# CONFIG_ATALK is not set 281# CONFIG_ATALK is not set
282
283#
284# QoS and/or fair queueing
285#
263# CONFIG_NET_SCHED is not set 286# CONFIG_NET_SCHED is not set
264# CONFIG_NET_CLS_ROUTE is not set 287# CONFIG_NET_CLS_ROUTE is not set
265 288
@@ -319,18 +342,9 @@ CONFIG_CONNECTOR=m
319# CONFIG_BLK_DEV_SX8 is not set 342# CONFIG_BLK_DEV_SX8 is not set
320# CONFIG_BLK_DEV_RAM is not set 343# CONFIG_BLK_DEV_RAM is not set
321CONFIG_BLK_DEV_RAM_COUNT=16 344CONFIG_BLK_DEV_RAM_COUNT=16
322# CONFIG_LBD is not set
323CONFIG_CDROM_PKTCDVD=m 345CONFIG_CDROM_PKTCDVD=m
324CONFIG_CDROM_PKTCDVD_BUFFERS=8 346CONFIG_CDROM_PKTCDVD_BUFFERS=8
325# CONFIG_CDROM_PKTCDVD_WCACHE is not set 347# CONFIG_CDROM_PKTCDVD_WCACHE is not set
326
327#
328# IO Schedulers
329#
330CONFIG_IOSCHED_NOOP=y
331CONFIG_IOSCHED_AS=y
332CONFIG_IOSCHED_DEADLINE=y
333CONFIG_IOSCHED_CFQ=y
334CONFIG_ATA_OVER_ETH=m 348CONFIG_ATA_OVER_ETH=m
335 349
336# 350#
@@ -382,7 +396,6 @@ CONFIG_NETDEVICES=y
382# PHY device support 396# PHY device support
383# 397#
384CONFIG_PHYLIB=m 398CONFIG_PHYLIB=m
385CONFIG_PHYCONTROL=y
386 399
387# 400#
388# MII PHY device drivers 401# MII PHY device drivers
@@ -400,6 +413,7 @@ CONFIG_NET_ETHERNET=y
400CONFIG_MII=y 413CONFIG_MII=y
401# CONFIG_HAPPYMEAL is not set 414# CONFIG_HAPPYMEAL is not set
402# CONFIG_SUNGEM is not set 415# CONFIG_SUNGEM is not set
416# CONFIG_CASSINI is not set
403# CONFIG_NET_VENDOR_3COM is not set 417# CONFIG_NET_VENDOR_3COM is not set
404 418
405# 419#
@@ -576,6 +590,10 @@ CONFIG_USB_ARCH_HAS_OHCI=y
576# CONFIG_USB is not set 590# CONFIG_USB is not set
577 591
578# 592#
593# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
594#
595
596#
579# USB Gadget Support 597# USB Gadget Support
580# 598#
581# CONFIG_USB_GADGET is not set 599# CONFIG_USB_GADGET is not set
@@ -690,6 +708,8 @@ CONFIG_DETECT_SOFTLOCKUP=y
690# CONFIG_DEBUG_HIGHMEM is not set 708# CONFIG_DEBUG_HIGHMEM is not set
691# CONFIG_DEBUG_INFO is not set 709# CONFIG_DEBUG_INFO is not set
692# CONFIG_DEBUG_FS is not set 710# CONFIG_DEBUG_FS is not set
711# CONFIG_DEBUG_VM is not set
712# CONFIG_RCU_TORTURE_TEST is not set
693CONFIG_CROSSCOMPILE=y 713CONFIG_CROSSCOMPILE=y
694CONFIG_CMDLINE="" 714CONFIG_CMDLINE=""
695# CONFIG_DEBUG_STACK_USAGE is not set 715# CONFIG_DEBUG_STACK_USAGE is not set
diff --git a/arch/mips/ddb5xxx/ddb5477/lcd44780.c b/arch/mips/ddb5xxx/ddb5477/lcd44780.c
index 35c6c22610c5..9510b9ae6453 100644
--- a/arch/mips/ddb5xxx/ddb5477/lcd44780.c
+++ b/arch/mips/ddb5xxx/ddb5477/lcd44780.c
@@ -55,7 +55,7 @@ void lcd44780_data(unsigned char c)
55 55
56void lcd44780_puts(const char* s) 56void lcd44780_puts(const char* s)
57{ 57{
58 int i,j; 58 int j;
59 int pos = 0; 59 int pos = 0;
60 60
61 lcd44780_command(LCD44780_CLEAR); 61 lcd44780_command(LCD44780_CLEAR);
@@ -76,8 +76,12 @@ void lcd44780_puts(const char* s)
76 } 76 }
77 } 77 }
78#ifdef LCD44780_PUTS_PAUSE 78#ifdef LCD44780_PUTS_PAUSE
79 for(i = 1; i < 2000; i++) 79 {
80 lcd44780_wait(); 80 int i;
81
82 for(i = 1; i < 2000; i++)
83 lcd44780_wait();
84 }
81#endif 85#endif
82} 86}
83 87
diff --git a/arch/mips/defconfig b/arch/mips/defconfig
index 4b585e642c2a..e9086da02e48 100644
--- a/arch/mips/defconfig
+++ b/arch/mips/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.14-rc2 3# Linux kernel version: 2.6.14
4# Thu Oct 20 22:25:09 2005 4# Thu Nov 10 12:13:58 2005
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -58,6 +58,24 @@ CONFIG_MODULE_SRCVERSION_ALL=y
58CONFIG_KMOD=y 58CONFIG_KMOD=y
59 59
60# 60#
61# Block layer
62#
63# CONFIG_LBD is not set
64
65#
66# IO Schedulers
67#
68CONFIG_IOSCHED_NOOP=y
69CONFIG_IOSCHED_AS=y
70CONFIG_IOSCHED_DEADLINE=y
71CONFIG_IOSCHED_CFQ=y
72CONFIG_DEFAULT_AS=y
73# CONFIG_DEFAULT_DEADLINE is not set
74# CONFIG_DEFAULT_CFQ is not set
75# CONFIG_DEFAULT_NOOP is not set
76CONFIG_DEFAULT_IOSCHED="anticipatory"
77
78#
61# Machine selection 79# Machine selection
62# 80#
63# CONFIG_MIPS_MTX1 is not set 81# CONFIG_MIPS_MTX1 is not set
@@ -187,6 +205,7 @@ CONFIG_FLATMEM_MANUAL=y
187CONFIG_FLATMEM=y 205CONFIG_FLATMEM=y
188CONFIG_FLAT_NODE_MEM_MAP=y 206CONFIG_FLAT_NODE_MEM_MAP=y
189# CONFIG_SPARSEMEM_STATIC is not set 207# CONFIG_SPARSEMEM_STATIC is not set
208CONFIG_SPLIT_PTLOCK_CPUS=4
190# CONFIG_PREEMPT_NONE is not set 209# CONFIG_PREEMPT_NONE is not set
191CONFIG_PREEMPT_VOLUNTARY=y 210CONFIG_PREEMPT_VOLUNTARY=y
192# CONFIG_PREEMPT is not set 211# CONFIG_PREEMPT is not set
@@ -292,6 +311,10 @@ CONFIG_INET6_TUNNEL=m
292CONFIG_IPV6_TUNNEL=m 311CONFIG_IPV6_TUNNEL=m
293CONFIG_NETFILTER=y 312CONFIG_NETFILTER=y
294# CONFIG_NETFILTER_DEBUG is not set 313# CONFIG_NETFILTER_DEBUG is not set
314
315#
316# Core Netfilter Configuration
317#
295CONFIG_NETFILTER_NETLINK=m 318CONFIG_NETFILTER_NETLINK=m
296CONFIG_NETFILTER_NETLINK_QUEUE=m 319CONFIG_NETFILTER_NETLINK_QUEUE=m
297CONFIG_NETFILTER_NETLINK_LOG=m 320CONFIG_NETFILTER_NETLINK_LOG=m
@@ -345,6 +368,7 @@ CONFIG_IP_NF_TARGET_REJECT=m
345CONFIG_IP_NF_TARGET_LOG=m 368CONFIG_IP_NF_TARGET_LOG=m
346CONFIG_IP_NF_TARGET_ULOG=m 369CONFIG_IP_NF_TARGET_ULOG=m
347CONFIG_IP_NF_TARGET_TCPMSS=m 370CONFIG_IP_NF_TARGET_TCPMSS=m
371CONFIG_IP_NF_TARGET_NFQUEUE=m
348CONFIG_IP_NF_NAT=m 372CONFIG_IP_NF_NAT=m
349CONFIG_IP_NF_NAT_NEEDED=y 373CONFIG_IP_NF_NAT_NEEDED=y
350CONFIG_IP_NF_TARGET_MASQUERADE=m 374CONFIG_IP_NF_TARGET_MASQUERADE=m
@@ -393,6 +417,7 @@ CONFIG_IP6_NF_MATCH_EUI64=m
393CONFIG_IP6_NF_FILTER=m 417CONFIG_IP6_NF_FILTER=m
394CONFIG_IP6_NF_TARGET_LOG=m 418CONFIG_IP6_NF_TARGET_LOG=m
395CONFIG_IP6_NF_TARGET_REJECT=m 419CONFIG_IP6_NF_TARGET_REJECT=m
420CONFIG_IP6_NF_TARGET_NFQUEUE=m
396CONFIG_IP6_NF_MANGLE=m 421CONFIG_IP6_NF_MANGLE=m
397CONFIG_IP6_NF_TARGET_MARK=m 422CONFIG_IP6_NF_TARGET_MARK=m
398CONFIG_IP6_NF_TARGET_HL=m 423CONFIG_IP6_NF_TARGET_HL=m
@@ -424,10 +449,18 @@ CONFIG_SCTP_HMAC_MD5=y
424CONFIG_NET_DIVERT=y 449CONFIG_NET_DIVERT=y
425# CONFIG_ECONET is not set 450# CONFIG_ECONET is not set
426# CONFIG_WAN_ROUTER is not set 451# CONFIG_WAN_ROUTER is not set
452
453#
454# QoS and/or fair queueing
455#
427CONFIG_NET_SCHED=y 456CONFIG_NET_SCHED=y
428# CONFIG_NET_SCH_CLK_JIFFIES is not set 457# CONFIG_NET_SCH_CLK_JIFFIES is not set
429CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y 458CONFIG_NET_SCH_CLK_GETTIMEOFDAY=y
430# CONFIG_NET_SCH_CLK_CPU is not set 459# CONFIG_NET_SCH_CLK_CPU is not set
460
461#
462# Queueing/Scheduling
463#
431CONFIG_NET_SCH_CBQ=m 464CONFIG_NET_SCH_CBQ=m
432CONFIG_NET_SCH_HTB=m 465CONFIG_NET_SCH_HTB=m
433CONFIG_NET_SCH_HFSC=m 466CONFIG_NET_SCH_HFSC=m
@@ -440,8 +473,10 @@ CONFIG_NET_SCH_GRED=m
440CONFIG_NET_SCH_DSMARK=m 473CONFIG_NET_SCH_DSMARK=m
441CONFIG_NET_SCH_NETEM=m 474CONFIG_NET_SCH_NETEM=m
442CONFIG_NET_SCH_INGRESS=m 475CONFIG_NET_SCH_INGRESS=m
443CONFIG_NET_QOS=y 476
444CONFIG_NET_ESTIMATOR=y 477#
478# Classification
479#
445CONFIG_NET_CLS=y 480CONFIG_NET_CLS=y
446CONFIG_NET_CLS_BASIC=m 481CONFIG_NET_CLS_BASIC=m
447CONFIG_NET_CLS_TCINDEX=m 482CONFIG_NET_CLS_TCINDEX=m
@@ -450,13 +485,14 @@ CONFIG_NET_CLS_ROUTE=y
450CONFIG_NET_CLS_FW=m 485CONFIG_NET_CLS_FW=m
451CONFIG_NET_CLS_U32=m 486CONFIG_NET_CLS_U32=m
452# CONFIG_CLS_U32_PERF is not set 487# CONFIG_CLS_U32_PERF is not set
453# CONFIG_NET_CLS_IND is not set
454# CONFIG_CLS_U32_MARK is not set 488# CONFIG_CLS_U32_MARK is not set
455CONFIG_NET_CLS_RSVP=m 489CONFIG_NET_CLS_RSVP=m
456CONFIG_NET_CLS_RSVP6=m 490CONFIG_NET_CLS_RSVP6=m
457# CONFIG_NET_EMATCH is not set 491# CONFIG_NET_EMATCH is not set
458# CONFIG_NET_CLS_ACT is not set 492# CONFIG_NET_CLS_ACT is not set
459CONFIG_NET_CLS_POLICE=y 493CONFIG_NET_CLS_POLICE=y
494# CONFIG_NET_CLS_IND is not set
495CONFIG_NET_ESTIMATOR=y
460 496
461# 497#
462# Network testing 498# Network testing
@@ -509,18 +545,9 @@ CONFIG_CONNECTOR=m
509# CONFIG_BLK_DEV_NBD is not set 545# CONFIG_BLK_DEV_NBD is not set
510# CONFIG_BLK_DEV_RAM is not set 546# CONFIG_BLK_DEV_RAM is not set
511CONFIG_BLK_DEV_RAM_COUNT=16 547CONFIG_BLK_DEV_RAM_COUNT=16
512# CONFIG_LBD is not set
513CONFIG_CDROM_PKTCDVD=m 548CONFIG_CDROM_PKTCDVD=m
514CONFIG_CDROM_PKTCDVD_BUFFERS=8 549CONFIG_CDROM_PKTCDVD_BUFFERS=8
515# CONFIG_CDROM_PKTCDVD_WCACHE is not set 550# CONFIG_CDROM_PKTCDVD_WCACHE is not set
516
517#
518# IO Schedulers
519#
520CONFIG_IOSCHED_NOOP=y
521CONFIG_IOSCHED_AS=y
522CONFIG_IOSCHED_DEADLINE=y
523CONFIG_IOSCHED_CFQ=y
524CONFIG_ATA_OVER_ETH=m 551CONFIG_ATA_OVER_ETH=m
525 552
526# 553#
@@ -564,6 +591,7 @@ CONFIG_SCSI_SAS_ATTRS=m
564# 591#
565# SCSI low-level drivers 592# SCSI low-level drivers
566# 593#
594CONFIG_ISCSI_TCP=m
567CONFIG_SGIWD93_SCSI=y 595CONFIG_SGIWD93_SCSI=y
568# CONFIG_SCSI_SATA is not set 596# CONFIG_SCSI_SATA is not set
569# CONFIG_SCSI_DEBUG is not set 597# CONFIG_SCSI_DEBUG is not set
@@ -599,7 +627,6 @@ CONFIG_TUN=m
599# PHY device support 627# PHY device support
600# 628#
601CONFIG_PHYLIB=m 629CONFIG_PHYLIB=m
602CONFIG_PHYCONTROL=y
603 630
604# 631#
605# MII PHY device drivers 632# MII PHY device drivers
@@ -752,6 +779,7 @@ CONFIG_MAX_RAW_DEVS=256
752# 779#
753# TPM devices 780# TPM devices
754# 781#
782# CONFIG_TELCLOCK is not set
755 783
756# 784#
757# I2C support 785# I2C support
@@ -821,6 +849,10 @@ CONFIG_LOGO_SGI_CLUT224=y
821# CONFIG_USB_ARCH_HAS_OHCI is not set 849# CONFIG_USB_ARCH_HAS_OHCI is not set
822 850
823# 851#
852# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
853#
854
855#
824# USB Gadget Support 856# USB Gadget Support
825# 857#
826# CONFIG_USB_GADGET is not set 858# CONFIG_USB_GADGET is not set
@@ -856,7 +888,7 @@ CONFIG_FS_MBCACHE=y
856CONFIG_FS_POSIX_ACL=y 888CONFIG_FS_POSIX_ACL=y
857CONFIG_XFS_FS=m 889CONFIG_XFS_FS=m
858CONFIG_XFS_EXPORT=y 890CONFIG_XFS_EXPORT=y
859CONFIG_XFS_QUOTA=m 891CONFIG_XFS_QUOTA=y
860CONFIG_XFS_SECURITY=y 892CONFIG_XFS_SECURITY=y
861# CONFIG_XFS_POSIX_ACL is not set 893# CONFIG_XFS_POSIX_ACL is not set
862# CONFIG_XFS_RT is not set 894# CONFIG_XFS_RT is not set
diff --git a/arch/mips/jmr3927/common/rtc_ds1742.c b/arch/mips/jmr3927/common/rtc_ds1742.c
index 8b407d7dc460..9a8bff153d80 100644
--- a/arch/mips/jmr3927/common/rtc_ds1742.c
+++ b/arch/mips/jmr3927/common/rtc_ds1742.c
@@ -41,11 +41,11 @@
41#include <linux/types.h> 41#include <linux/types.h>
42#include <linux/time.h> 42#include <linux/time.h>
43#include <linux/rtc.h> 43#include <linux/rtc.h>
44#include <linux/ds1742rtc.h>
44 45
45#include <asm/time.h> 46#include <asm/time.h>
46#include <asm/addrspace.h> 47#include <asm/addrspace.h>
47 48
48#include <asm/jmr3927/ds1742rtc.h>
49#include <asm/debug.h> 49#include <asm/debug.h>
50 50
51#define EPOCH 2000 51#define EPOCH 2000
diff --git a/arch/mips/jmr3927/rbhma3100/setup.c b/arch/mips/jmr3927/rbhma3100/setup.c
index 3e2fbdc66097..55ad0a578794 100644
--- a/arch/mips/jmr3927/rbhma3100/setup.c
+++ b/arch/mips/jmr3927/rbhma3100/setup.c
@@ -357,7 +357,7 @@ static void __init jmr3927_board_init(void)
357 jmr3927_io_dipsw()); 357 jmr3927_io_dipsw());
358} 358}
359 359
360void __init plat_setup(void) 360void __init tx3927_setup(void)
361{ 361{
362 int i; 362 int i;
363 363
diff --git a/arch/mips/mips-boards/sead/sead_int.c b/arch/mips/mips-boards/sead/sead_int.c
index e1dd7e009750..90fda0d9915f 100644
--- a/arch/mips/mips-boards/sead/sead_int.c
+++ b/arch/mips/mips-boards/sead/sead_int.c
@@ -30,19 +30,9 @@
30 30
31extern asmlinkage void mipsIRQ(void); 31extern asmlinkage void mipsIRQ(void);
32 32
33asmlinkage void sead_hw0_irqdispatch(struct pt_regs *regs)
34{
35 do_IRQ(SEADINT_UART0, regs);
36}
37
38asmlinkage void sead_hw1_irqdispatch(struct pt_regs *regs)
39{
40 do_IRQ(SEADINT_UART1, regs);
41}
42
43void __init arch_init_irq(void) 33void __init arch_init_irq(void)
44{ 34{
45 mips_cpu_irq_init(0); 35 mips_cpu_irq_init(MIPSCPU_INT_BASE);
46 36
47 /* Now safe to set the exception vector. */ 37 /* Now safe to set the exception vector. */
48 set_except_vector(0, mipsIRQ); 38 set_except_vector(0, mipsIRQ);
diff --git a/arch/mips/mips-boards/sead/sead_setup.c b/arch/mips/mips-boards/sead/sead_setup.c
index de90bec5505e..f966bc161dfa 100644
--- a/arch/mips/mips-boards/sead/sead_setup.c
+++ b/arch/mips/mips-boards/sead/sead_setup.c
@@ -45,7 +45,7 @@ const char *get_system_type(void)
45 return "MIPS SEAD"; 45 return "MIPS SEAD";
46} 46}
47 47
48static void __init sead_setup(void) 48void __init plat_setup(void)
49{ 49{
50 ioport_resource.end = 0x7fffffff; 50 ioport_resource.end = 0x7fffffff;
51 51
@@ -69,7 +69,7 @@ static void __init serial_init(void)
69#else 69#else
70 s.iobase = SEAD_UART0_REGS_BASE+3; 70 s.iobase = SEAD_UART0_REGS_BASE+3;
71#endif 71#endif
72 s.irq = SEADINT_UART0; 72 s.irq = MIPSCPU_INT_BASE + MIPSCPU_INT_UART0;
73 s.uartclk = SEAD_BASE_BAUD * 16; 73 s.uartclk = SEAD_BASE_BAUD * 16;
74 s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ; 74 s.flags = ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST | ASYNC_AUTO_IRQ;
75 s.iotype = 0; 75 s.iotype = 0;
diff --git a/arch/mips/momentum/ocelot_g/gt-irq.c b/arch/mips/momentum/ocelot_g/gt-irq.c
index d0b5c9dd0ea4..e5eceed1beff 100644
--- a/arch/mips/momentum/ocelot_g/gt-irq.c
+++ b/arch/mips/momentum/ocelot_g/gt-irq.c
@@ -178,7 +178,7 @@ void gt64240_time_init(void)
178 timer.name = "timer"; 178 timer.name = "timer";
179 timer.dev_id = NULL; 179 timer.dev_id = NULL;
180 timer.next = NULL; 180 timer.next = NULL;
181 timer.mask = 0; 181 timer.mask = CPU_MASK_NONE;
182 irq_desc[6].action = &timer; 182 irq_desc[6].action = &timer;
183 183
184 enable_irq(6); 184 enable_irq(6);
diff --git a/arch/mips/pci/Makefile b/arch/mips/pci/Makefile
index 7b7468304022..741e67c9195a 100644
--- a/arch/mips/pci/Makefile
+++ b/arch/mips/pci/Makefile
@@ -15,7 +15,7 @@ obj-$(CONFIG_MIPS_GT96100) += ops-gt96100.o
15obj-$(CONFIG_PCI_MARVELL) += ops-marvell.o 15obj-$(CONFIG_PCI_MARVELL) += ops-marvell.o
16obj-$(CONFIG_MIPS_MSC) += ops-msc.o 16obj-$(CONFIG_MIPS_MSC) += ops-msc.o
17obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o 17obj-$(CONFIG_MIPS_NILE4) += ops-nile4.o
18obj-$(CONFIG_MIPS_TX3927) += ops-jmr3927.o 18obj-$(CONFIG_MIPS_TX3927) += ops-tx3927.o
19obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o 19obj-$(CONFIG_PCI_VR41XX) += ops-vr41xx.o pci-vr41xx.o
20obj-$(CONFIG_NEC_CMBVR4133) += fixup-vr4133.o 20obj-$(CONFIG_NEC_CMBVR4133) += fixup-vr4133.o
21 21
diff --git a/arch/mips/pci/ops-tx3927.c b/arch/mips/pci/ops-tx3927.c
index 0e0daadc303d..42530a0b84b3 100644
--- a/arch/mips/pci/ops-tx3927.c
+++ b/arch/mips/pci/ops-tx3927.c
@@ -72,13 +72,9 @@ static inline int check_abort(void)
72static int jmr3927_pci_read_config(struct pci_bus *bus, unsigned int devfn, 72static int jmr3927_pci_read_config(struct pci_bus *bus, unsigned int devfn,
73 int where, int size, u32 * val) 73 int where, int size, u32 * val)
74{ 74{
75 int ret, busno; 75 int ret;
76 76
77 /* check if the bus is top-level */ 77 ret = mkaddr(bus->number, devfn, where);
78 if (bus->parent != NULL)
79 busno = bus->number;
80
81 ret = mkaddr(busno, devfn, where);
82 if (ret) 78 if (ret)
83 return ret; 79 return ret;
84 80
@@ -102,15 +98,9 @@ static int jmr3927_pci_read_config(struct pci_bus *bus, unsigned int devfn,
102static int jmr3927_pci_write_config(struct pci_bus *bus, unsigned int devfn, 98static int jmr3927_pci_write_config(struct pci_bus *bus, unsigned int devfn,
103 int where, int size, u32 val) 99 int where, int size, u32 val)
104{ 100{
105 int ret, busno; 101 int ret;
106
107 /* check if the bus is top-level */
108 if (bus->parent != NULL)
109 bus = bus->number;
110 else
111 bus = 0;
112 102
113 ret = mkaddr(busno, devfn, where); 103 ret = mkaddr(bus->number, devfn, where);
114 if (ret) 104 if (ret)
115 return ret; 105 return ret;
116 106
@@ -120,7 +110,7 @@ static int jmr3927_pci_write_config(struct pci_bus *bus, unsigned int devfn,
120 break; 110 break;
121 111
122 case 2: 112 case 2:
123 *(volatile u16 *) (unsigned longulong) & tx3927_pcicptr->icd | (where & 2)) = 113 *(volatile u16 *) ((unsigned long) & tx3927_pcicptr->icd | (where & 2)) =
124 cpu_to_le16(val); 114 cpu_to_le16(val);
125 break; 115 break;
126 116
@@ -137,8 +127,8 @@ static int jmr3927_pci_write_config(struct pci_bus *bus, unsigned int devfn,
137} 127}
138 128
139struct pci_ops jmr3927_pci_ops = { 129struct pci_ops jmr3927_pci_ops = {
140 jmr3927_pcibios_read_config, 130 jmr3927_pci_read_config,
141 jmr3927_pcibios_write_config, 131 jmr3927_pci_write_config,
142}; 132};
143 133
144 134
@@ -159,15 +149,14 @@ unsigned long tc_readl(volatile __u32 * addr)
159{ 149{
160 unsigned long val; 150 unsigned long val;
161 151
162 addr = PHYSADDR(addr); 152 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
163 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr = 153 (unsigned long) CPHYSADDR(addr);
164 (unsigned long) addr; 154 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
165 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe =
166 (PCI_IPCIBE_ICMD_MEMREAD << PCI_IPCIBE_ICMD_SHIFT) | 155 (PCI_IPCIBE_ICMD_MEMREAD << PCI_IPCIBE_ICMD_SHIFT) |
167 PCI_IPCIBE_IBE_LONG; 156 PCI_IPCIBE_IBE_LONG;
168 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 157 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
169 val = 158 val =
170 le32_to_cpu(*(volatile u32 *) (ulong) & tx3927_pcicptr-> 159 le32_to_cpu(*(volatile u32 *) (unsigned long) & tx3927_pcicptr->
171 ipcidata); 160 ipcidata);
172 /* clear by setting */ 161 /* clear by setting */
173 tx3927_pcicptr->istat |= PCI_ISTAT_IDICC; 162 tx3927_pcicptr->istat |= PCI_ISTAT_IDICC;
@@ -176,12 +165,11 @@ unsigned long tc_readl(volatile __u32 * addr)
176 165
177void tc_writel(unsigned long data, volatile __u32 * addr) 166void tc_writel(unsigned long data, volatile __u32 * addr)
178{ 167{
179 addr = PHYSADDR(addr); 168 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcidata =
180 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcidata =
181 cpu_to_le32(data); 169 cpu_to_le32(data);
182 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr = 170 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
183 (unsigned long) addr; 171 (unsigned long) CPHYSADDR(addr);
184 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 172 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
185 (PCI_IPCIBE_ICMD_MEMWRITE << PCI_IPCIBE_ICMD_SHIFT) | 173 (PCI_IPCIBE_ICMD_MEMWRITE << PCI_IPCIBE_ICMD_SHIFT) |
186 PCI_IPCIBE_IBE_LONG; 174 PCI_IPCIBE_IBE_LONG;
187 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 175 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
@@ -198,21 +186,15 @@ unsigned char tx_ioinb(unsigned char *addr)
198 186
199 ioaddr = (unsigned long) addr; 187 ioaddr = (unsigned long) addr;
200 offset = ioaddr & 0x3; 188 offset = ioaddr & 0x3;
201 if (offset == 0) 189 byte = 0xf & ~(8 >> offset);
202 byte = 0x7; 190
203 else if (offset == 1) 191 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
204 byte = 0xb;
205 else if (offset == 2)
206 byte = 0xd;
207 else if (offset == 3)
208 byte = 0xe;
209 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr =
210 (unsigned long) ioaddr; 192 (unsigned long) ioaddr;
211 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 193 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
212 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte; 194 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
213 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 195 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
214 val = 196 val =
215 le32_to_cpu(*(volatile u32 *) (ulong) & tx3927_pcicptr-> 197 le32_to_cpu(*(volatile u32 *) (unsigned long) & tx3927_pcicptr->
216 ipcidata); 198 ipcidata);
217 val = val & 0xff; 199 val = val & 0xff;
218 /* clear by setting */ 200 /* clear by setting */
@@ -229,18 +211,12 @@ void tx_iooutb(unsigned long data, unsigned char *addr)
229 data = data | (data << 8) | (data << 16) | (data << 24); 211 data = data | (data << 8) | (data << 16) | (data << 24);
230 ioaddr = (unsigned long) addr; 212 ioaddr = (unsigned long) addr;
231 offset = ioaddr & 0x3; 213 offset = ioaddr & 0x3;
232 if (offset == 0) 214 byte = 0xf & ~(8 >> offset);
233 byte = 0x7; 215
234 else if (offset == 1) 216 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcidata = data;
235 byte = 0xb; 217 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
236 else if (offset == 2)
237 byte = 0xd;
238 else if (offset == 3)
239 byte = 0xe;
240 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcidata = data;
241 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr =
242 (unsigned long) ioaddr; 218 (unsigned long) ioaddr;
243 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 219 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
244 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte; 220 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte;
245 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 221 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
246 /* clear by setting */ 222 /* clear by setting */
@@ -255,18 +231,16 @@ unsigned short tx_ioinw(unsigned short *addr)
255 int byte; 231 int byte;
256 232
257 ioaddr = (unsigned long) addr; 233 ioaddr = (unsigned long) addr;
258 offset = ioaddr & 0x3; 234 offset = ioaddr & 0x2;
259 if (offset == 0) 235 byte = 3 << offset;
260 byte = 0x3; 236
261 else if (offset == 2) 237 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
262 byte = 0xc;
263 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr =
264 (unsigned long) ioaddr; 238 (unsigned long) ioaddr;
265 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 239 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
266 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte; 240 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
267 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 241 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
268 val = 242 val =
269 le32_to_cpu(*(volatile u32 *) (ulong) & tx3927_pcicptr-> 243 le32_to_cpu(*(volatile u32 *) (unsigned long) & tx3927_pcicptr->
270 ipcidata); 244 ipcidata);
271 val = val & 0xffff; 245 val = val & 0xffff;
272 /* clear by setting */ 246 /* clear by setting */
@@ -283,15 +257,13 @@ void tx_iooutw(unsigned long data, unsigned short *addr)
283 257
284 data = data | (data << 16); 258 data = data | (data << 16);
285 ioaddr = (unsigned long) addr; 259 ioaddr = (unsigned long) addr;
286 offset = ioaddr & 0x3; 260 offset = ioaddr & 0x2;
287 if (offset == 0) 261 byte = 3 << offset;
288 byte = 0x3; 262
289 else if (offset == 2) 263 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcidata = data;
290 byte = 0xc; 264 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
291 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcidata = data;
292 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr =
293 (unsigned long) ioaddr; 265 (unsigned long) ioaddr;
294 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 266 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
295 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte; 267 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte;
296 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 268 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
297 /* clear by setting */ 269 /* clear by setting */
@@ -304,14 +276,14 @@ unsigned long tx_ioinl(unsigned int *addr)
304 __u32 ioaddr; 276 __u32 ioaddr;
305 277
306 ioaddr = (unsigned long) addr; 278 ioaddr = (unsigned long) addr;
307 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr = 279 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
308 (unsigned long) ioaddr; 280 (unsigned long) ioaddr;
309 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 281 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
310 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | 282 (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) |
311 PCI_IPCIBE_IBE_LONG; 283 PCI_IPCIBE_IBE_LONG;
312 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 284 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
313 val = 285 val =
314 le32_to_cpu(*(volatile u32 *) (ulong) & tx3927_pcicptr-> 286 le32_to_cpu(*(volatile u32 *) (unsigned long) & tx3927_pcicptr->
315 ipcidata); 287 ipcidata);
316 /* clear by setting */ 288 /* clear by setting */
317 tx3927_pcicptr->istat |= PCI_ISTAT_IDICC; 289 tx3927_pcicptr->istat |= PCI_ISTAT_IDICC;
@@ -323,11 +295,11 @@ void tx_iooutl(unsigned long data, unsigned int *addr)
323 __u32 ioaddr; 295 __u32 ioaddr;
324 296
325 ioaddr = (unsigned long) addr; 297 ioaddr = (unsigned long) addr;
326 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcidata = 298 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcidata =
327 cpu_to_le32(data); 299 cpu_to_le32(data);
328 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipciaddr = 300 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipciaddr =
329 (unsigned long) ioaddr; 301 (unsigned long) ioaddr;
330 *(volatile u32 *) (ulong) & tx3927_pcicptr->ipcibe = 302 *(volatile u32 *) (unsigned long) & tx3927_pcicptr->ipcibe =
331 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | 303 (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) |
332 PCI_IPCIBE_IBE_LONG; 304 PCI_IPCIBE_IBE_LONG;
333 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)); 305 while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC));
diff --git a/arch/mips/pci/pci-jmr3927.c b/arch/mips/pci/pci-jmr3927.c
index 95a028769e56..f02ef6e36b02 100644
--- a/arch/mips/pci/pci-jmr3927.c
+++ b/arch/mips/pci/pci-jmr3927.c
@@ -54,5 +54,5 @@ struct pci_controller jmr3927_controller = {
54 .pci_ops = &jmr3927_pci_ops, 54 .pci_ops = &jmr3927_pci_ops,
55 .io_resource = &pci_io_resource, 55 .io_resource = &pci_io_resource,
56 .mem_resource = &pci_mem_resource, 56 .mem_resource = &pci_mem_resource,
57 .mem_offset = JMR3927_PCIMEM; 57 .mem_offset = JMR3927_PCIMEM
58}; 58};
diff --git a/arch/mips/sgi-ip32/crime.c b/arch/mips/sgi-ip32/crime.c
index eb3a16a04fee..41b5eca1148c 100644
--- a/arch/mips/sgi-ip32/crime.c
+++ b/arch/mips/sgi-ip32/crime.c
@@ -10,6 +10,7 @@
10#include <linux/init.h> 10#include <linux/init.h>
11#include <linux/kernel.h> 11#include <linux/kernel.h>
12#include <linux/interrupt.h> 12#include <linux/interrupt.h>
13#include <linux/module.h>
13#include <asm/bootinfo.h> 14#include <asm/bootinfo.h>
14#include <asm/io.h> 15#include <asm/io.h>
15#include <asm/mipsregs.h> 16#include <asm/mipsregs.h>
@@ -18,8 +19,10 @@
18#include <asm/ip32/crime.h> 19#include <asm/ip32/crime.h>
19#include <asm/ip32/mace.h> 20#include <asm/ip32/mace.h>
20 21
21struct sgi_crime *crime; 22struct sgi_crime __iomem *crime;
22struct sgi_mace *mace; 23struct sgi_mace __iomem *mace;
24
25EXPORT_SYMBOL_GPL(mace);
23 26
24void __init crime_init(void) 27void __init crime_init(void)
25{ 28{
diff --git a/arch/parisc/kernel/drivers.c b/arch/parisc/kernel/drivers.c
index 988844a169e6..d016d672ec2b 100644
--- a/arch/parisc/kernel/drivers.c
+++ b/arch/parisc/kernel/drivers.c
@@ -499,8 +499,12 @@ alloc_pa_dev(unsigned long hpa, struct hardware_path *mod_path)
499 499
500 dev = create_parisc_device(mod_path); 500 dev = create_parisc_device(mod_path);
501 if (dev->id.hw_type != HPHW_FAULTY) { 501 if (dev->id.hw_type != HPHW_FAULTY) {
502 printk("Two devices have hardware path %s. Please file a bug with HP.\n" 502 printk(KERN_ERR "Two devices have hardware path [%s]. "
503 "In the meantime, you could try rearranging your cards.\n", parisc_pathname(dev)); 503 "IODC data for second device: "
504 "%02x%02x%02x%02x%02x%02x\n"
505 "Rearranging GSC cards sometimes helps\n",
506 parisc_pathname(dev), iodc_data[0], iodc_data[1],
507 iodc_data[3], iodc_data[4], iodc_data[5], iodc_data[6]);
504 return NULL; 508 return NULL;
505 } 509 }
506 510
diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
index c7e66ee5b083..9af4b22a6d77 100644
--- a/arch/parisc/kernel/entry.S
+++ b/arch/parisc/kernel/entry.S
@@ -1846,6 +1846,7 @@ sys_clone_wrapper:
1846 ldo -16(%r30),%r29 /* Reference param save area */ 1846 ldo -16(%r30),%r29 /* Reference param save area */
1847#endif 1847#endif
1848 1848
1849 /* WARNING - Clobbers r19 and r21, userspace must save these! */
1849 STREG %r2,PT_GR19(%r1) /* save for child */ 1850 STREG %r2,PT_GR19(%r1) /* save for child */
1850 STREG %r30,PT_GR21(%r1) 1851 STREG %r30,PT_GR21(%r1)
1851 BL sys_clone,%r2 1852 BL sys_clone,%r2
diff --git a/arch/parisc/kernel/inventory.c b/arch/parisc/kernel/inventory.c
index 1a1c66422736..8f563871e83c 100644
--- a/arch/parisc/kernel/inventory.c
+++ b/arch/parisc/kernel/inventory.c
@@ -188,7 +188,7 @@ pat_query_module(ulong pcell_loc, ulong mod_index)
188 temp = pa_pdc_cell.cba; 188 temp = pa_pdc_cell.cba;
189 dev = alloc_pa_dev(PAT_GET_CBA(temp), &pa_pdc_cell.mod_path); 189 dev = alloc_pa_dev(PAT_GET_CBA(temp), &pa_pdc_cell.mod_path);
190 if (!dev) { 190 if (!dev) {
191 return PDC_NE_MOD; 191 return PDC_OK;
192 } 192 }
193 193
194 /* alloc_pa_dev sets dev->hpa */ 194 /* alloc_pa_dev sets dev->hpa */
diff --git a/arch/parisc/kernel/ioctl32.c b/arch/parisc/kernel/ioctl32.c
index 0a331104ad56..4eada1bb27f0 100644
--- a/arch/parisc/kernel/ioctl32.c
+++ b/arch/parisc/kernel/ioctl32.c
@@ -19,536 +19,6 @@
19#define CODE 19#define CODE
20#include "compat_ioctl.c" 20#include "compat_ioctl.c"
21 21
22/* Use this to get at 32-bit user passed pointers.
23 See sys_sparc32.c for description about these. */
24#define A(__x) ((unsigned long)(__x))
25/* The same for use with copy_from_user() and copy_to_user(). */
26#define B(__x) ((void *)(unsigned long)(__x))
27
28#if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)
29/* This really belongs in include/linux/drm.h -DaveM */
30#include "../../../drivers/char/drm/drm.h"
31
32typedef struct drm32_version {
33 int version_major; /* Major version */
34 int version_minor; /* Minor version */
35 int version_patchlevel;/* Patch level */
36 int name_len; /* Length of name buffer */
37 u32 name; /* Name of driver */
38 int date_len; /* Length of date buffer */
39 u32 date; /* User-space buffer to hold date */
40 int desc_len; /* Length of desc buffer */
41 u32 desc; /* User-space buffer to hold desc */
42} drm32_version_t;
43#define DRM32_IOCTL_VERSION DRM_IOWR(0x00, drm32_version_t)
44
45static int drm32_version(unsigned int fd, unsigned int cmd, unsigned long arg)
46{
47 drm32_version_t *uversion = (drm32_version_t *)arg;
48 char *name_ptr, *date_ptr, *desc_ptr;
49 u32 tmp1, tmp2, tmp3;
50 drm_version_t kversion;
51 mm_segment_t old_fs;
52 int ret;
53
54 memset(&kversion, 0, sizeof(kversion));
55 if (get_user(kversion.name_len, &uversion->name_len) ||
56 get_user(kversion.date_len, &uversion->date_len) ||
57 get_user(kversion.desc_len, &uversion->desc_len) ||
58 get_user(tmp1, &uversion->name) ||
59 get_user(tmp2, &uversion->date) ||
60 get_user(tmp3, &uversion->desc))
61 return -EFAULT;
62
63 name_ptr = (char *) A(tmp1);
64 date_ptr = (char *) A(tmp2);
65 desc_ptr = (char *) A(tmp3);
66
67 ret = -ENOMEM;
68 if (kversion.name_len && name_ptr) {
69 kversion.name = kmalloc(kversion.name_len, GFP_KERNEL);
70 if (!kversion.name)
71 goto out;
72 }
73 if (kversion.date_len && date_ptr) {
74 kversion.date = kmalloc(kversion.date_len, GFP_KERNEL);
75 if (!kversion.date)
76 goto out;
77 }
78 if (kversion.desc_len && desc_ptr) {
79 kversion.desc = kmalloc(kversion.desc_len, GFP_KERNEL);
80 if (!kversion.desc)
81 goto out;
82 }
83
84 old_fs = get_fs();
85 set_fs(KERNEL_DS);
86 ret = sys_ioctl (fd, DRM_IOCTL_VERSION, (unsigned long)&kversion);
87 set_fs(old_fs);
88
89 if (!ret) {
90 if ((kversion.name &&
91 copy_to_user(name_ptr, kversion.name, kversion.name_len)) ||
92 (kversion.date &&
93 copy_to_user(date_ptr, kversion.date, kversion.date_len)) ||
94 (kversion.desc &&
95 copy_to_user(desc_ptr, kversion.desc, kversion.desc_len)))
96 ret = -EFAULT;
97 if (put_user(kversion.version_major, &uversion->version_major) ||
98 put_user(kversion.version_minor, &uversion->version_minor) ||
99 put_user(kversion.version_patchlevel, &uversion->version_patchlevel) ||
100 put_user(kversion.name_len, &uversion->name_len) ||
101 put_user(kversion.date_len, &uversion->date_len) ||
102 put_user(kversion.desc_len, &uversion->desc_len))
103 ret = -EFAULT;
104 }
105
106out:
107 kfree(kversion.name);
108 kfree(kversion.date);
109 kfree(kversion.desc);
110 return ret;
111}
112
113typedef struct drm32_unique {
114 int unique_len; /* Length of unique */
115 u32 unique; /* Unique name for driver instantiation */
116} drm32_unique_t;
117#define DRM32_IOCTL_GET_UNIQUE DRM_IOWR(0x01, drm32_unique_t)
118#define DRM32_IOCTL_SET_UNIQUE DRM_IOW( 0x10, drm32_unique_t)
119
120static int drm32_getsetunique(unsigned int fd, unsigned int cmd, unsigned long arg)
121{
122 drm32_unique_t *uarg = (drm32_unique_t *)arg;
123 drm_unique_t karg;
124 mm_segment_t old_fs;
125 char *uptr;
126 u32 tmp;
127 int ret;
128
129 if (get_user(karg.unique_len, &uarg->unique_len))
130 return -EFAULT;
131 karg.unique = NULL;
132
133 if (get_user(tmp, &uarg->unique))
134 return -EFAULT;
135
136 uptr = (char *) A(tmp);
137
138 if (uptr) {
139 karg.unique = kmalloc(karg.unique_len, GFP_KERNEL);
140 if (!karg.unique)
141 return -ENOMEM;
142 if (cmd == DRM32_IOCTL_SET_UNIQUE &&
143 copy_from_user(karg.unique, uptr, karg.unique_len)) {
144 kfree(karg.unique);
145 return -EFAULT;
146 }
147 }
148
149 old_fs = get_fs();
150 set_fs(KERNEL_DS);
151 if (cmd == DRM32_IOCTL_GET_UNIQUE)
152 ret = sys_ioctl (fd, DRM_IOCTL_GET_UNIQUE, (unsigned long)&karg);
153 else
154 ret = sys_ioctl (fd, DRM_IOCTL_SET_UNIQUE, (unsigned long)&karg);
155 set_fs(old_fs);
156
157 if (!ret) {
158 if (cmd == DRM32_IOCTL_GET_UNIQUE &&
159 uptr != NULL &&
160 copy_to_user(uptr, karg.unique, karg.unique_len))
161 ret = -EFAULT;
162 if (put_user(karg.unique_len, &uarg->unique_len))
163 ret = -EFAULT;
164 }
165
166 kfree(karg.unique);
167 return ret;
168}
169
170typedef struct drm32_map {
171 u32 offset; /* Requested physical address (0 for SAREA)*/
172 u32 size; /* Requested physical size (bytes) */
173 drm_map_type_t type; /* Type of memory to map */
174 drm_map_flags_t flags; /* Flags */
175 u32 handle; /* User-space: "Handle" to pass to mmap */
176 /* Kernel-space: kernel-virtual address */
177 int mtrr; /* MTRR slot used */
178 /* Private data */
179} drm32_map_t;
180#define DRM32_IOCTL_ADD_MAP DRM_IOWR(0x15, drm32_map_t)
181
182static int drm32_addmap(unsigned int fd, unsigned int cmd, unsigned long arg)
183{
184 drm32_map_t *uarg = (drm32_map_t *) arg;
185 drm_map_t karg;
186 mm_segment_t old_fs;
187 u32 tmp;
188 int ret;
189
190 ret = get_user(karg.offset, &uarg->offset);
191 ret |= get_user(karg.size, &uarg->size);
192 ret |= get_user(karg.type, &uarg->type);
193 ret |= get_user(karg.flags, &uarg->flags);
194 ret |= get_user(tmp, &uarg->handle);
195 ret |= get_user(karg.mtrr, &uarg->mtrr);
196 if (ret)
197 return -EFAULT;
198
199 karg.handle = (void *) A(tmp);
200
201 old_fs = get_fs();
202 set_fs(KERNEL_DS);
203 ret = sys_ioctl(fd, DRM_IOCTL_ADD_MAP, (unsigned long) &karg);
204 set_fs(old_fs);
205
206 if (!ret) {
207 ret = put_user(karg.offset, &uarg->offset);
208 ret |= put_user(karg.size, &uarg->size);
209 ret |= put_user(karg.type, &uarg->type);
210 ret |= put_user(karg.flags, &uarg->flags);
211 tmp = (u32) (long)karg.handle;
212 ret |= put_user(tmp, &uarg->handle);
213 ret |= put_user(karg.mtrr, &uarg->mtrr);
214 if (ret)
215 ret = -EFAULT;
216 }
217
218 return ret;
219}
220
221typedef struct drm32_buf_info {
222 int count; /* Entries in list */
223 u32 list; /* (drm_buf_desc_t *) */
224} drm32_buf_info_t;
225#define DRM32_IOCTL_INFO_BUFS DRM_IOWR(0x18, drm32_buf_info_t)
226
227static int drm32_info_bufs(unsigned int fd, unsigned int cmd, unsigned long arg)
228{
229 drm32_buf_info_t *uarg = (drm32_buf_info_t *)arg;
230 drm_buf_desc_t *ulist;
231 drm_buf_info_t karg;
232 mm_segment_t old_fs;
233 int orig_count, ret;
234 u32 tmp;
235
236 if (get_user(karg.count, &uarg->count) ||
237 get_user(tmp, &uarg->list))
238 return -EFAULT;
239
240 ulist = (drm_buf_desc_t *) A(tmp);
241
242 orig_count = karg.count;
243
244 karg.list = kmalloc(karg.count * sizeof(drm_buf_desc_t), GFP_KERNEL);
245 if (!karg.list)
246 return -EFAULT;
247
248 old_fs = get_fs();
249 set_fs(KERNEL_DS);
250 ret = sys_ioctl(fd, DRM_IOCTL_INFO_BUFS, (unsigned long) &karg);
251 set_fs(old_fs);
252
253 if (!ret) {
254 if (karg.count <= orig_count &&
255 (copy_to_user(ulist, karg.list,
256 karg.count * sizeof(drm_buf_desc_t))))
257 ret = -EFAULT;
258 if (put_user(karg.count, &uarg->count))
259 ret = -EFAULT;
260 }
261
262 kfree(karg.list);
263 return ret;
264}
265
266typedef struct drm32_buf_free {
267 int count;
268 u32 list; /* (int *) */
269} drm32_buf_free_t;
270#define DRM32_IOCTL_FREE_BUFS DRM_IOW( 0x1a, drm32_buf_free_t)
271
272static int drm32_free_bufs(unsigned int fd, unsigned int cmd, unsigned long arg)
273{
274 drm32_buf_free_t *uarg = (drm32_buf_free_t *)arg;
275 drm_buf_free_t karg;
276 mm_segment_t old_fs;
277 int *ulist;
278 int ret;
279 u32 tmp;
280
281 if (get_user(karg.count, &uarg->count) ||
282 get_user(tmp, &uarg->list))
283 return -EFAULT;
284
285 ulist = (int *) A(tmp);
286
287 karg.list = kmalloc(karg.count * sizeof(int), GFP_KERNEL);
288 if (!karg.list)
289 return -ENOMEM;
290
291 ret = -EFAULT;
292 if (copy_from_user(karg.list, ulist, (karg.count * sizeof(int))))
293 goto out;
294
295 old_fs = get_fs();
296 set_fs(KERNEL_DS);
297 ret = sys_ioctl(fd, DRM_IOCTL_FREE_BUFS, (unsigned long) &karg);
298 set_fs(old_fs);
299
300out:
301 kfree(karg.list);
302 return ret;
303}
304
305typedef struct drm32_buf_pub {
306 int idx; /* Index into master buflist */
307 int total; /* Buffer size */
308 int used; /* Amount of buffer in use (for DMA) */
309 u32 address; /* Address of buffer (void *) */
310} drm32_buf_pub_t;
311
312typedef struct drm32_buf_map {
313 int count; /* Length of buflist */
314 u32 virtual; /* Mmaped area in user-virtual (void *) */
315 u32 list; /* Buffer information (drm_buf_pub_t *) */
316} drm32_buf_map_t;
317#define DRM32_IOCTL_MAP_BUFS DRM_IOWR(0x19, drm32_buf_map_t)
318
319static int drm32_map_bufs(unsigned int fd, unsigned int cmd, unsigned long arg)
320{
321 drm32_buf_map_t *uarg = (drm32_buf_map_t *)arg;
322 drm32_buf_pub_t *ulist;
323 drm_buf_map_t karg;
324 mm_segment_t old_fs;
325 int orig_count, ret, i;
326 u32 tmp1, tmp2;
327
328 if (get_user(karg.count, &uarg->count) ||
329 get_user(tmp1, &uarg->virtual) ||
330 get_user(tmp2, &uarg->list))
331 return -EFAULT;
332
333 karg.virtual = (void *) A(tmp1);
334 ulist = (drm32_buf_pub_t *) A(tmp2);
335
336 orig_count = karg.count;
337
338 karg.list = kmalloc(karg.count * sizeof(drm_buf_pub_t), GFP_KERNEL);
339 if (!karg.list)
340 return -ENOMEM;
341
342 ret = -EFAULT;
343 for (i = 0; i < karg.count; i++) {
344 if (get_user(karg.list[i].idx, &ulist[i].idx) ||
345 get_user(karg.list[i].total, &ulist[i].total) ||
346 get_user(karg.list[i].used, &ulist[i].used) ||
347 get_user(tmp1, &ulist[i].address))
348 goto out;
349
350 karg.list[i].address = (void *) A(tmp1);
351 }
352
353 old_fs = get_fs();
354 set_fs(KERNEL_DS);
355 ret = sys_ioctl(fd, DRM_IOCTL_MAP_BUFS, (unsigned long) &karg);
356 set_fs(old_fs);
357
358 if (!ret) {
359 for (i = 0; i < orig_count; i++) {
360 tmp1 = (u32) (long) karg.list[i].address;
361 if (put_user(karg.list[i].idx, &ulist[i].idx) ||
362 put_user(karg.list[i].total, &ulist[i].total) ||
363 put_user(karg.list[i].used, &ulist[i].used) ||
364 put_user(tmp1, &ulist[i].address)) {
365 ret = -EFAULT;
366 goto out;
367 }
368 }
369 if (put_user(karg.count, &uarg->count))
370 ret = -EFAULT;
371 }
372
373out:
374 kfree(karg.list);
375 return ret;
376}
377
378typedef struct drm32_dma {
379 /* Indices here refer to the offset into
380 buflist in drm_buf_get_t. */
381 int context; /* Context handle */
382 int send_count; /* Number of buffers to send */
383 u32 send_indices; /* List of handles to buffers (int *) */
384 u32 send_sizes; /* Lengths of data to send (int *) */
385 drm_dma_flags_t flags; /* Flags */
386 int request_count; /* Number of buffers requested */
387 int request_size; /* Desired size for buffers */
388 u32 request_indices; /* Buffer information (int *) */
389 u32 request_sizes; /* (int *) */
390 int granted_count; /* Number of buffers granted */
391} drm32_dma_t;
392#define DRM32_IOCTL_DMA DRM_IOWR(0x29, drm32_dma_t)
393
394/* RED PEN The DRM layer blindly dereferences the send/request
395 * indice/size arrays even though they are userland
396 * pointers. -DaveM
397 */
398static int drm32_dma(unsigned int fd, unsigned int cmd, unsigned long arg)
399{
400 drm32_dma_t *uarg = (drm32_dma_t *) arg;
401 int *u_si, *u_ss, *u_ri, *u_rs;
402 drm_dma_t karg;
403 mm_segment_t old_fs;
404 int ret;
405 u32 tmp1, tmp2, tmp3, tmp4;
406
407 karg.send_indices = karg.send_sizes = NULL;
408 karg.request_indices = karg.request_sizes = NULL;
409
410 if (get_user(karg.context, &uarg->context) ||
411 get_user(karg.send_count, &uarg->send_count) ||
412 get_user(tmp1, &uarg->send_indices) ||
413 get_user(tmp2, &uarg->send_sizes) ||
414 get_user(karg.flags, &uarg->flags) ||
415 get_user(karg.request_count, &uarg->request_count) ||
416 get_user(karg.request_size, &uarg->request_size) ||
417 get_user(tmp3, &uarg->request_indices) ||
418 get_user(tmp4, &uarg->request_sizes) ||
419 get_user(karg.granted_count, &uarg->granted_count))
420 return -EFAULT;
421
422 u_si = (int *) A(tmp1);
423 u_ss = (int *) A(tmp2);
424 u_ri = (int *) A(tmp3);
425 u_rs = (int *) A(tmp4);
426
427 if (karg.send_count) {
428 karg.send_indices = kmalloc(karg.send_count * sizeof(int), GFP_KERNEL);
429 karg.send_sizes = kmalloc(karg.send_count * sizeof(int), GFP_KERNEL);
430
431 ret = -ENOMEM;
432 if (!karg.send_indices || !karg.send_sizes)
433 goto out;
434
435 ret = -EFAULT;
436 if (copy_from_user(karg.send_indices, u_si,
437 (karg.send_count * sizeof(int))) ||
438 copy_from_user(karg.send_sizes, u_ss,
439 (karg.send_count * sizeof(int))))
440 goto out;
441 }
442
443 if (karg.request_count) {
444 karg.request_indices = kmalloc(karg.request_count * sizeof(int), GFP_KERNEL);
445 karg.request_sizes = kmalloc(karg.request_count * sizeof(int), GFP_KERNEL);
446
447 ret = -ENOMEM;
448 if (!karg.request_indices || !karg.request_sizes)
449 goto out;
450
451 ret = -EFAULT;
452 if (copy_from_user(karg.request_indices, u_ri,
453 (karg.request_count * sizeof(int))) ||
454 copy_from_user(karg.request_sizes, u_rs,
455 (karg.request_count * sizeof(int))))
456 goto out;
457 }
458
459 old_fs = get_fs();
460 set_fs(KERNEL_DS);
461 ret = sys_ioctl(fd, DRM_IOCTL_DMA, (unsigned long) &karg);
462 set_fs(old_fs);
463
464 if (!ret) {
465 if (put_user(karg.context, &uarg->context) ||
466 put_user(karg.send_count, &uarg->send_count) ||
467 put_user(karg.flags, &uarg->flags) ||
468 put_user(karg.request_count, &uarg->request_count) ||
469 put_user(karg.request_size, &uarg->request_size) ||
470 put_user(karg.granted_count, &uarg->granted_count))
471 ret = -EFAULT;
472
473 if (karg.send_count) {
474 if (copy_to_user(u_si, karg.send_indices,
475 (karg.send_count * sizeof(int))) ||
476 copy_to_user(u_ss, karg.send_sizes,
477 (karg.send_count * sizeof(int))))
478 ret = -EFAULT;
479 }
480 if (karg.request_count) {
481 if (copy_to_user(u_ri, karg.request_indices,
482 (karg.request_count * sizeof(int))) ||
483 copy_to_user(u_rs, karg.request_sizes,
484 (karg.request_count * sizeof(int))))
485 ret = -EFAULT;
486 }
487 }
488
489out:
490 kfree(karg.send_indices);
491 kfree(karg.send_sizes);
492 kfree(karg.request_indices);
493 kfree(karg.request_sizes);
494 return ret;
495}
496
497typedef struct drm32_ctx_res {
498 int count;
499 u32 contexts; /* (drm_ctx_t *) */
500} drm32_ctx_res_t;
501#define DRM32_IOCTL_RES_CTX DRM_IOWR(0x26, drm32_ctx_res_t)
502
503static int drm32_res_ctx(unsigned int fd, unsigned int cmd, unsigned long arg)
504{
505 drm32_ctx_res_t *uarg = (drm32_ctx_res_t *) arg;
506 drm_ctx_t *ulist;
507 drm_ctx_res_t karg;
508 mm_segment_t old_fs;
509 int orig_count, ret;
510 u32 tmp;
511
512 karg.contexts = NULL;
513 if (get_user(karg.count, &uarg->count) ||
514 get_user(tmp, &uarg->contexts))
515 return -EFAULT;
516
517 ulist = (drm_ctx_t *) A(tmp);
518
519 orig_count = karg.count;
520 if (karg.count && ulist) {
521 karg.contexts = kmalloc((karg.count * sizeof(drm_ctx_t)), GFP_KERNEL);
522 if (!karg.contexts)
523 return -ENOMEM;
524 if (copy_from_user(karg.contexts, ulist,
525 (karg.count * sizeof(drm_ctx_t)))) {
526 kfree(karg.contexts);
527 return -EFAULT;
528 }
529 }
530
531 old_fs = get_fs();
532 set_fs(KERNEL_DS);
533 ret = sys_ioctl(fd, DRM_IOCTL_RES_CTX, (unsigned long) &karg);
534 set_fs(old_fs);
535
536 if (!ret) {
537 if (orig_count) {
538 if (copy_to_user(ulist, karg.contexts,
539 (orig_count * sizeof(drm_ctx_t))))
540 ret = -EFAULT;
541 }
542 if (put_user(karg.count, &uarg->count))
543 ret = -EFAULT;
544 }
545
546 kfree(karg.contexts);
547 return ret;
548}
549
550#endif
551
552#define HANDLE_IOCTL(cmd, handler) { cmd, (ioctl_trans_handler_t)handler, NULL }, 22#define HANDLE_IOCTL(cmd, handler) { cmd, (ioctl_trans_handler_t)handler, NULL },
553#define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL(cmd, sys_ioctl) 23#define COMPATIBLE_IOCTL(cmd) HANDLE_IOCTL(cmd, sys_ioctl)
554 24
@@ -561,11 +31,6 @@ IOCTL_TABLE_START
561#define DECLARES 31#define DECLARES
562#include "compat_ioctl.c" 32#include "compat_ioctl.c"
563 33
564/* PA-specific ioctls */
565COMPATIBLE_IOCTL(PA_PERF_ON)
566COMPATIBLE_IOCTL(PA_PERF_OFF)
567COMPATIBLE_IOCTL(PA_PERF_VERSION)
568
569/* And these ioctls need translation */ 34/* And these ioctls need translation */
570HANDLE_IOCTL(SIOCGPPPSTATS, dev_ifsioc) 35HANDLE_IOCTL(SIOCGPPPSTATS, dev_ifsioc)
571HANDLE_IOCTL(SIOCGPPPCSTATS, dev_ifsioc) 36HANDLE_IOCTL(SIOCGPPPCSTATS, dev_ifsioc)
@@ -590,17 +55,6 @@ HANDLE_IOCTL(RTC_EPOCH_READ, w_long)
590COMPATIBLE_IOCTL(RTC_EPOCH_SET) 55COMPATIBLE_IOCTL(RTC_EPOCH_SET)
591#endif 56#endif
592 57
593#if defined(CONFIG_DRM) || defined(CONFIG_DRM_MODULE)
594HANDLE_IOCTL(DRM32_IOCTL_VERSION, drm32_version);
595HANDLE_IOCTL(DRM32_IOCTL_GET_UNIQUE, drm32_getsetunique);
596HANDLE_IOCTL(DRM32_IOCTL_SET_UNIQUE, drm32_getsetunique);
597HANDLE_IOCTL(DRM32_IOCTL_ADD_MAP, drm32_addmap);
598HANDLE_IOCTL(DRM32_IOCTL_INFO_BUFS, drm32_info_bufs);
599HANDLE_IOCTL(DRM32_IOCTL_FREE_BUFS, drm32_free_bufs);
600HANDLE_IOCTL(DRM32_IOCTL_MAP_BUFS, drm32_map_bufs);
601HANDLE_IOCTL(DRM32_IOCTL_DMA, drm32_dma);
602HANDLE_IOCTL(DRM32_IOCTL_RES_CTX, drm32_res_ctx);
603#endif /* DRM */
604IOCTL_TABLE_END 58IOCTL_TABLE_END
605 59
606int ioctl_table_size = ARRAY_SIZE(ioctl_start); 60int ioctl_table_size = ARRAY_SIZE(ioctl_start);
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index 006385dbee66..197936d9359a 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -30,6 +30,9 @@
30#include <linux/seq_file.h> 30#include <linux/seq_file.h>
31#include <linux/spinlock.h> 31#include <linux/spinlock.h>
32#include <linux/types.h> 32#include <linux/types.h>
33#include <asm/io.h>
34
35#include <asm/smp.h>
33 36
34#undef PARISC_IRQ_CR16_COUNTS 37#undef PARISC_IRQ_CR16_COUNTS
35 38
@@ -43,26 +46,34 @@ extern irqreturn_t ipi_interrupt(int, void *, struct pt_regs *);
43*/ 46*/
44static volatile unsigned long cpu_eiem = 0; 47static volatile unsigned long cpu_eiem = 0;
45 48
46static void cpu_set_eiem(void *info) 49static void cpu_disable_irq(unsigned int irq)
47{
48 set_eiem((unsigned long) info);
49}
50
51static inline void cpu_disable_irq(unsigned int irq)
52{ 50{
53 unsigned long eirr_bit = EIEM_MASK(irq); 51 unsigned long eirr_bit = EIEM_MASK(irq);
54 52
55 cpu_eiem &= ~eirr_bit; 53 cpu_eiem &= ~eirr_bit;
56 on_each_cpu(cpu_set_eiem, (void *) cpu_eiem, 1, 1); 54 /* Do nothing on the other CPUs. If they get this interrupt,
55 * The & cpu_eiem in the do_cpu_irq_mask() ensures they won't
56 * handle it, and the set_eiem() at the bottom will ensure it
57 * then gets disabled */
57} 58}
58 59
59static void cpu_enable_irq(unsigned int irq) 60static void cpu_enable_irq(unsigned int irq)
60{ 61{
61 unsigned long eirr_bit = EIEM_MASK(irq); 62 unsigned long eirr_bit = EIEM_MASK(irq);
62 63
63 mtctl(eirr_bit, 23); /* clear EIRR bit before unmasking */
64 cpu_eiem |= eirr_bit; 64 cpu_eiem |= eirr_bit;
65 on_each_cpu(cpu_set_eiem, (void *) cpu_eiem, 1, 1); 65
66 /* FIXME: while our interrupts aren't nested, we cannot reset
67 * the eiem mask if we're already in an interrupt. Once we
68 * implement nested interrupts, this can go away
69 */
70 if (!in_interrupt())
71 set_eiem(cpu_eiem);
72
73 /* This is just a simple NOP IPI. But what it does is cause
74 * all the other CPUs to do a set_eiem(cpu_eiem) at the end
75 * of the interrupt handler */
76 smp_send_all_nop();
66} 77}
67 78
68static unsigned int cpu_startup_irq(unsigned int irq) 79static unsigned int cpu_startup_irq(unsigned int irq)
@@ -74,6 +85,35 @@ static unsigned int cpu_startup_irq(unsigned int irq)
74void no_ack_irq(unsigned int irq) { } 85void no_ack_irq(unsigned int irq) { }
75void no_end_irq(unsigned int irq) { } 86void no_end_irq(unsigned int irq) { }
76 87
88#ifdef CONFIG_SMP
89int cpu_check_affinity(unsigned int irq, cpumask_t *dest)
90{
91 int cpu_dest;
92
93 /* timer and ipi have to always be received on all CPUs */
94 if (irq == TIMER_IRQ || irq == IPI_IRQ) {
95 /* Bad linux design decision. The mask has already
96 * been set; we must reset it */
97 irq_affinity[irq] = CPU_MASK_ALL;
98 return -EINVAL;
99 }
100
101 /* whatever mask they set, we just allow one CPU */
102 cpu_dest = first_cpu(*dest);
103 *dest = cpumask_of_cpu(cpu_dest);
104
105 return 0;
106}
107
108static void cpu_set_affinity_irq(unsigned int irq, cpumask_t dest)
109{
110 if (cpu_check_affinity(irq, &dest))
111 return;
112
113 irq_affinity[irq] = dest;
114}
115#endif
116
77static struct hw_interrupt_type cpu_interrupt_type = { 117static struct hw_interrupt_type cpu_interrupt_type = {
78 .typename = "CPU", 118 .typename = "CPU",
79 .startup = cpu_startup_irq, 119 .startup = cpu_startup_irq,
@@ -82,7 +122,9 @@ static struct hw_interrupt_type cpu_interrupt_type = {
82 .disable = cpu_disable_irq, 122 .disable = cpu_disable_irq,
83 .ack = no_ack_irq, 123 .ack = no_ack_irq,
84 .end = no_end_irq, 124 .end = no_end_irq,
85// .set_affinity = cpu_set_affinity_irq, 125#ifdef CONFIG_SMP
126 .set_affinity = cpu_set_affinity_irq,
127#endif
86}; 128};
87 129
88int show_interrupts(struct seq_file *p, void *v) 130int show_interrupts(struct seq_file *p, void *v)
@@ -219,6 +261,17 @@ int txn_alloc_irq(unsigned int bits_wide)
219 return -1; 261 return -1;
220} 262}
221 263
264
265unsigned long txn_affinity_addr(unsigned int irq, int cpu)
266{
267#ifdef CONFIG_SMP
268 irq_affinity[irq] = cpumask_of_cpu(cpu);
269#endif
270
271 return cpu_data[cpu].txn_addr;
272}
273
274
222unsigned long txn_alloc_addr(unsigned int virt_irq) 275unsigned long txn_alloc_addr(unsigned int virt_irq)
223{ 276{
224 static int next_cpu = -1; 277 static int next_cpu = -1;
@@ -233,7 +286,7 @@ unsigned long txn_alloc_addr(unsigned int virt_irq)
233 if (next_cpu >= NR_CPUS) 286 if (next_cpu >= NR_CPUS)
234 next_cpu = 0; /* nothing else, assign monarch */ 287 next_cpu = 0; /* nothing else, assign monarch */
235 288
236 return cpu_data[next_cpu].txn_addr; 289 return txn_affinity_addr(virt_irq, next_cpu);
237} 290}
238 291
239 292
@@ -250,10 +303,11 @@ void do_cpu_irq_mask(struct pt_regs *regs)
250 irq_enter(); 303 irq_enter();
251 304
252 /* 305 /*
253 * Only allow interrupt processing to be interrupted by the 306 * Don't allow TIMER or IPI nested interrupts.
254 * timer tick 307 * Allowing any single interrupt to nest can lead to that CPU
308 * handling interrupts with all enabled interrupts unmasked.
255 */ 309 */
256 set_eiem(EIEM_MASK(TIMER_IRQ)); 310 set_eiem(0UL);
257 311
258 /* 1) only process IRQs that are enabled/unmasked (cpu_eiem) 312 /* 1) only process IRQs that are enabled/unmasked (cpu_eiem)
259 * 2) We loop here on EIRR contents in order to avoid 313 * 2) We loop here on EIRR contents in order to avoid
@@ -267,23 +321,41 @@ void do_cpu_irq_mask(struct pt_regs *regs)
267 if (!eirr_val) 321 if (!eirr_val)
268 break; 322 break;
269 323
270 if (eirr_val & EIEM_MASK(TIMER_IRQ))
271 set_eiem(0);
272
273 mtctl(eirr_val, 23); /* reset bits we are going to process */ 324 mtctl(eirr_val, 23); /* reset bits we are going to process */
274 325
275 /* Work our way from MSb to LSb...same order we alloc EIRs */ 326 /* Work our way from MSb to LSb...same order we alloc EIRs */
276 for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) { 327 for (irq = TIMER_IRQ; eirr_val && bit; bit>>=1, irq++) {
328#ifdef CONFIG_SMP
329 cpumask_t dest = irq_affinity[irq];
330#endif
277 if (!(bit & eirr_val)) 331 if (!(bit & eirr_val))
278 continue; 332 continue;
279 333
280 /* clear bit in mask - can exit loop sooner */ 334 /* clear bit in mask - can exit loop sooner */
281 eirr_val &= ~bit; 335 eirr_val &= ~bit;
282 336
337#ifdef CONFIG_SMP
338 /* FIXME: because generic set affinity mucks
339 * with the affinity before sending it to us
340 * we can get the situation where the affinity is
341 * wrong for our CPU type interrupts */
342 if (irq != TIMER_IRQ && irq != IPI_IRQ &&
343 !cpu_isset(smp_processor_id(), dest)) {
344 int cpu = first_cpu(dest);
345
346 printk(KERN_DEBUG "redirecting irq %d from CPU %d to %d\n",
347 irq, smp_processor_id(), cpu);
348 gsc_writel(irq + CPU_IRQ_BASE,
349 cpu_data[cpu].hpa);
350 continue;
351 }
352#endif
353
283 __do_IRQ(irq, regs); 354 __do_IRQ(irq, regs);
284 } 355 }
285 } 356 }
286 set_eiem(cpu_eiem); 357
358 set_eiem(cpu_eiem); /* restore original mask */
287 irq_exit(); 359 irq_exit();
288} 360}
289 361
@@ -291,12 +363,14 @@ void do_cpu_irq_mask(struct pt_regs *regs)
291static struct irqaction timer_action = { 363static struct irqaction timer_action = {
292 .handler = timer_interrupt, 364 .handler = timer_interrupt,
293 .name = "timer", 365 .name = "timer",
366 .flags = SA_INTERRUPT,
294}; 367};
295 368
296#ifdef CONFIG_SMP 369#ifdef CONFIG_SMP
297static struct irqaction ipi_action = { 370static struct irqaction ipi_action = {
298 .handler = ipi_interrupt, 371 .handler = ipi_interrupt,
299 .name = "IPI", 372 .name = "IPI",
373 .flags = SA_INTERRUPT,
300}; 374};
301#endif 375#endif
302 376
diff --git a/arch/parisc/kernel/perf.c b/arch/parisc/kernel/perf.c
index 44670d6e06f4..f6fec62b6a2f 100644
--- a/arch/parisc/kernel/perf.c
+++ b/arch/parisc/kernel/perf.c
@@ -196,8 +196,7 @@ static int perf_open(struct inode *inode, struct file *file);
196static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t *ppos); 196static ssize_t perf_read(struct file *file, char __user *buf, size_t cnt, loff_t *ppos);
197static ssize_t perf_write(struct file *file, const char __user *buf, size_t count, 197static ssize_t perf_write(struct file *file, const char __user *buf, size_t count,
198 loff_t *ppos); 198 loff_t *ppos);
199static int perf_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 199static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg);
200 unsigned long arg);
201static void perf_start_counters(void); 200static void perf_start_counters(void);
202static int perf_stop_counters(uint32_t *raddr); 201static int perf_stop_counters(uint32_t *raddr);
203static struct rdr_tbl_ent * perf_rdr_get_entry(uint32_t rdr_num); 202static struct rdr_tbl_ent * perf_rdr_get_entry(uint32_t rdr_num);
@@ -438,48 +437,56 @@ static void perf_patch_images(void)
438 * must be running on the processor that you wish to change. 437 * must be running on the processor that you wish to change.
439 */ 438 */
440 439
441static int perf_ioctl(struct inode *inode, struct file *file, unsigned int cmd, 440static long perf_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
442 unsigned long arg)
443{ 441{
444 long error_start; 442 long error_start;
445 uint32_t raddr[4]; 443 uint32_t raddr[4];
444 int error = 0;
446 445
446 lock_kernel();
447 switch (cmd) { 447 switch (cmd) {
448 448
449 case PA_PERF_ON: 449 case PA_PERF_ON:
450 /* Start the counters */ 450 /* Start the counters */
451 perf_start_counters(); 451 perf_start_counters();
452 return 0; 452 break;
453 453
454 case PA_PERF_OFF: 454 case PA_PERF_OFF:
455 error_start = perf_stop_counters(raddr); 455 error_start = perf_stop_counters(raddr);
456 if (error_start != 0) { 456 if (error_start != 0) {
457 printk(KERN_ERR "perf_off: perf_stop_counters = %ld\n", error_start); 457 printk(KERN_ERR "perf_off: perf_stop_counters = %ld\n", error_start);
458 return -EFAULT; 458 error = -EFAULT;
459 break;
459 } 460 }
460 461
461 /* copy out the Counters */ 462 /* copy out the Counters */
462 if (copy_to_user((void __user *)arg, raddr, 463 if (copy_to_user((void __user *)arg, raddr,
463 sizeof (raddr)) != 0) { 464 sizeof (raddr)) != 0) {
464 return -EFAULT; 465 error = -EFAULT;
466 break;
465 } 467 }
466 return 0; 468 break;
467 469
468 case PA_PERF_VERSION: 470 case PA_PERF_VERSION:
469 /* Return the version # */ 471 /* Return the version # */
470 return put_user(PERF_VERSION, (int *)arg); 472 error = put_user(PERF_VERSION, (int *)arg);
473 break;
471 474
472 default: 475 default:
473 break; 476 error = -ENOTTY;
474 } 477 }
475 return -ENOTTY; 478
479 unlock_kernel();
480
481 return error;
476} 482}
477 483
478static struct file_operations perf_fops = { 484static struct file_operations perf_fops = {
479 .llseek = no_llseek, 485 .llseek = no_llseek,
480 .read = perf_read, 486 .read = perf_read,
481 .write = perf_write, 487 .write = perf_write,
482 .ioctl = perf_ioctl, 488 .unlocked_ioctl = perf_ioctl,
489 .compat_ioctl = perf_ioctl,
483 .open = perf_open, 490 .open = perf_open,
484 .release = perf_release 491 .release = perf_release
485}; 492};
diff --git a/arch/parisc/kernel/ptrace.c b/arch/parisc/kernel/ptrace.c
index b6fe202a620d..27160e8bf15b 100644
--- a/arch/parisc/kernel/ptrace.c
+++ b/arch/parisc/kernel/ptrace.c
@@ -264,6 +264,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
264 * sigkill. perhaps it should be put in the status 264 * sigkill. perhaps it should be put in the status
265 * that it wants to exit. 265 * that it wants to exit.
266 */ 266 */
267 ret = 0;
267 DBG("sys_ptrace(KILL)\n"); 268 DBG("sys_ptrace(KILL)\n");
268 if (child->exit_state == EXIT_ZOMBIE) /* already dead */ 269 if (child->exit_state == EXIT_ZOMBIE) /* already dead */
269 goto out_tsk; 270 goto out_tsk;
@@ -344,11 +345,11 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data)
344 345
345 case PTRACE_GETEVENTMSG: 346 case PTRACE_GETEVENTMSG:
346 ret = put_user(child->ptrace_message, (unsigned int __user *) data); 347 ret = put_user(child->ptrace_message, (unsigned int __user *) data);
347 goto out; 348 goto out_tsk;
348 349
349 default: 350 default:
350 ret = ptrace_request(child, request, addr, data); 351 ret = ptrace_request(child, request, addr, data);
351 goto out; 352 goto out_tsk;
352 } 353 }
353 354
354out_wake_notrap: 355out_wake_notrap:
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c
index 82c24e62ab63..3a25a7bd673e 100644
--- a/arch/parisc/kernel/signal.c
+++ b/arch/parisc/kernel/signal.c
@@ -296,7 +296,6 @@ setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
296 struct rt_sigframe __user *frame; 296 struct rt_sigframe __user *frame;
297 unsigned long rp, usp; 297 unsigned long rp, usp;
298 unsigned long haddr, sigframe_size; 298 unsigned long haddr, sigframe_size;
299 struct siginfo si;
300 int err = 0; 299 int err = 0;
301#ifdef __LP64__ 300#ifdef __LP64__
302 compat_int_t compat_val; 301 compat_int_t compat_val;
diff --git a/arch/parisc/kernel/smp.c b/arch/parisc/kernel/smp.c
index a9ecf6465784..ce89da0f654d 100644
--- a/arch/parisc/kernel/smp.c
+++ b/arch/parisc/kernel/smp.c
@@ -181,12 +181,19 @@ ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
181 while (ops) { 181 while (ops) {
182 unsigned long which = ffz(~ops); 182 unsigned long which = ffz(~ops);
183 183
184 ops &= ~(1 << which);
185
184 switch (which) { 186 switch (which) {
187 case IPI_NOP:
188#if (kDEBUG>=100)
189 printk(KERN_DEBUG "CPU%d IPI_NOP\n",this_cpu);
190#endif /* kDEBUG */
191 break;
192
185 case IPI_RESCHEDULE: 193 case IPI_RESCHEDULE:
186#if (kDEBUG>=100) 194#if (kDEBUG>=100)
187 printk(KERN_DEBUG "CPU%d IPI_RESCHEDULE\n",this_cpu); 195 printk(KERN_DEBUG "CPU%d IPI_RESCHEDULE\n",this_cpu);
188#endif /* kDEBUG */ 196#endif /* kDEBUG */
189 ops &= ~(1 << IPI_RESCHEDULE);
190 /* 197 /*
191 * Reschedule callback. Everything to be 198 * Reschedule callback. Everything to be
192 * done is done by the interrupt return path. 199 * done is done by the interrupt return path.
@@ -197,7 +204,6 @@ ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
197#if (kDEBUG>=100) 204#if (kDEBUG>=100)
198 printk(KERN_DEBUG "CPU%d IPI_CALL_FUNC\n",this_cpu); 205 printk(KERN_DEBUG "CPU%d IPI_CALL_FUNC\n",this_cpu);
199#endif /* kDEBUG */ 206#endif /* kDEBUG */
200 ops &= ~(1 << IPI_CALL_FUNC);
201 { 207 {
202 volatile struct smp_call_struct *data; 208 volatile struct smp_call_struct *data;
203 void (*func)(void *info); 209 void (*func)(void *info);
@@ -231,7 +237,6 @@ ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
231#if (kDEBUG>=100) 237#if (kDEBUG>=100)
232 printk(KERN_DEBUG "CPU%d IPI_CPU_START\n",this_cpu); 238 printk(KERN_DEBUG "CPU%d IPI_CPU_START\n",this_cpu);
233#endif /* kDEBUG */ 239#endif /* kDEBUG */
234 ops &= ~(1 << IPI_CPU_START);
235#ifdef ENTRY_SYS_CPUS 240#ifdef ENTRY_SYS_CPUS
236 p->state = STATE_RUNNING; 241 p->state = STATE_RUNNING;
237#endif 242#endif
@@ -241,7 +246,6 @@ ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
241#if (kDEBUG>=100) 246#if (kDEBUG>=100)
242 printk(KERN_DEBUG "CPU%d IPI_CPU_STOP\n",this_cpu); 247 printk(KERN_DEBUG "CPU%d IPI_CPU_STOP\n",this_cpu);
243#endif /* kDEBUG */ 248#endif /* kDEBUG */
244 ops &= ~(1 << IPI_CPU_STOP);
245#ifdef ENTRY_SYS_CPUS 249#ifdef ENTRY_SYS_CPUS
246#else 250#else
247 halt_processor(); 251 halt_processor();
@@ -252,13 +256,11 @@ ipi_interrupt(int irq, void *dev_id, struct pt_regs *regs)
252#if (kDEBUG>=100) 256#if (kDEBUG>=100)
253 printk(KERN_DEBUG "CPU%d is alive!\n",this_cpu); 257 printk(KERN_DEBUG "CPU%d is alive!\n",this_cpu);
254#endif /* kDEBUG */ 258#endif /* kDEBUG */
255 ops &= ~(1 << IPI_CPU_TEST);
256 break; 259 break;
257 260
258 default: 261 default:
259 printk(KERN_CRIT "Unknown IPI num on CPU%d: %lu\n", 262 printk(KERN_CRIT "Unknown IPI num on CPU%d: %lu\n",
260 this_cpu, which); 263 this_cpu, which);
261 ops &= ~(1 << which);
262 return IRQ_NONE; 264 return IRQ_NONE;
263 } /* Switch */ 265 } /* Switch */
264 } /* while (ops) */ 266 } /* while (ops) */
@@ -312,6 +314,12 @@ smp_send_start(void) { send_IPI_allbutself(IPI_CPU_START); }
312void 314void
313smp_send_reschedule(int cpu) { send_IPI_single(cpu, IPI_RESCHEDULE); } 315smp_send_reschedule(int cpu) { send_IPI_single(cpu, IPI_RESCHEDULE); }
314 316
317void
318smp_send_all_nop(void)
319{
320 send_IPI_allbutself(IPI_NOP);
321}
322
315 323
316/** 324/**
317 * Run a function on all other CPUs. 325 * Run a function on all other CPUs.
@@ -338,6 +346,10 @@ smp_call_function (void (*func) (void *info), void *info, int retry, int wait)
338 346
339 /* Can deadlock when called with interrupts disabled */ 347 /* Can deadlock when called with interrupts disabled */
340 WARN_ON(irqs_disabled()); 348 WARN_ON(irqs_disabled());
349
350 /* can also deadlock if IPIs are disabled */
351 WARN_ON((get_eiem() & (1UL<<(CPU_IRQ_MAX - IPI_IRQ))) == 0);
352
341 353
342 data.func = func; 354 data.func = func;
343 data.info = info; 355 data.info = info;
diff --git a/arch/parisc/kernel/syscall.S b/arch/parisc/kernel/syscall.S
index b29b76b42bb7..d66163492890 100644
--- a/arch/parisc/kernel/syscall.S
+++ b/arch/parisc/kernel/syscall.S
@@ -164,7 +164,7 @@ linux_gateway_entry:
164#endif 164#endif
165 STREG %r2, TASK_PT_GR30(%r1) /* ... and save it */ 165 STREG %r2, TASK_PT_GR30(%r1) /* ... and save it */
166 166
167 STREG %r20, TASK_PT_GR20(%r1) 167 STREG %r20, TASK_PT_GR20(%r1) /* Syscall number */
168 STREG %r21, TASK_PT_GR21(%r1) 168 STREG %r21, TASK_PT_GR21(%r1)
169 STREG %r22, TASK_PT_GR22(%r1) 169 STREG %r22, TASK_PT_GR22(%r1)
170 STREG %r23, TASK_PT_GR23(%r1) /* 4th argument */ 170 STREG %r23, TASK_PT_GR23(%r1) /* 4th argument */
@@ -527,6 +527,7 @@ lws_compare_and_swap:
527 We *must* giveup this call and fail. 527 We *must* giveup this call and fail.
528 */ 528 */
529 ldw 4(%sr2,%r20), %r28 /* Load thread register */ 529 ldw 4(%sr2,%r20), %r28 /* Load thread register */
530 /* WARNING: If cr27 cycles to the same value we have problems */
530 mfctl %cr27, %r21 /* Get current thread register */ 531 mfctl %cr27, %r21 /* Get current thread register */
531 cmpb,<>,n %r21, %r28, cas_lock /* Called recursive? */ 532 cmpb,<>,n %r21, %r28, cas_lock /* Called recursive? */
532 b lws_exit /* Return error! */ 533 b lws_exit /* Return error! */
diff --git a/arch/powerpc/sysdev/mpic.c b/arch/powerpc/sysdev/mpic.c
index 105f05341a41..58d1cc2023c8 100644
--- a/arch/powerpc/sysdev/mpic.c
+++ b/arch/powerpc/sysdev/mpic.c
@@ -361,7 +361,8 @@ static void mpic_enable_irq(unsigned int irq)
361 DBG("%p: %s: enable_irq: %d (src %d)\n", mpic, mpic->name, irq, src); 361 DBG("%p: %s: enable_irq: %d (src %d)\n", mpic, mpic->name, irq, src);
362 362
363 mpic_irq_write(src, MPIC_IRQ_VECTOR_PRI, 363 mpic_irq_write(src, MPIC_IRQ_VECTOR_PRI,
364 mpic_irq_read(src, MPIC_IRQ_VECTOR_PRI) & ~MPIC_VECPRI_MASK); 364 mpic_irq_read(src, MPIC_IRQ_VECTOR_PRI) &
365 ~MPIC_VECPRI_MASK);
365 366
366 /* make sure mask gets to controller before we return to user */ 367 /* make sure mask gets to controller before we return to user */
367 do { 368 do {
@@ -381,7 +382,8 @@ static void mpic_disable_irq(unsigned int irq)
381 DBG("%s: disable_irq: %d (src %d)\n", mpic->name, irq, src); 382 DBG("%s: disable_irq: %d (src %d)\n", mpic->name, irq, src);
382 383
383 mpic_irq_write(src, MPIC_IRQ_VECTOR_PRI, 384 mpic_irq_write(src, MPIC_IRQ_VECTOR_PRI,
384 mpic_irq_read(src, MPIC_IRQ_VECTOR_PRI) | MPIC_VECPRI_MASK); 385 mpic_irq_read(src, MPIC_IRQ_VECTOR_PRI) |
386 MPIC_VECPRI_MASK);
385 387
386 /* make sure mask gets to controller before we return to user */ 388 /* make sure mask gets to controller before we return to user */
387 do { 389 do {
@@ -735,12 +737,13 @@ void mpic_irq_set_priority(unsigned int irq, unsigned int pri)
735 737
736 spin_lock_irqsave(&mpic_lock, flags); 738 spin_lock_irqsave(&mpic_lock, flags);
737 if (is_ipi) { 739 if (is_ipi) {
738 reg = mpic_ipi_read(irq - mpic->ipi_offset) & MPIC_VECPRI_PRIORITY_MASK; 740 reg = mpic_ipi_read(irq - mpic->ipi_offset) &
741 ~MPIC_VECPRI_PRIORITY_MASK;
739 mpic_ipi_write(irq - mpic->ipi_offset, 742 mpic_ipi_write(irq - mpic->ipi_offset,
740 reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT)); 743 reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT));
741 } else { 744 } else {
742 reg = mpic_irq_read(irq - mpic->irq_offset, MPIC_IRQ_VECTOR_PRI) 745 reg = mpic_irq_read(irq - mpic->irq_offset,MPIC_IRQ_VECTOR_PRI)
743 & MPIC_VECPRI_PRIORITY_MASK; 746 & ~MPIC_VECPRI_PRIORITY_MASK;
744 mpic_irq_write(irq - mpic->irq_offset, MPIC_IRQ_VECTOR_PRI, 747 mpic_irq_write(irq - mpic->irq_offset, MPIC_IRQ_VECTOR_PRI,
745 reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT)); 748 reg | (pri << MPIC_VECPRI_PRIORITY_SHIFT));
746 } 749 }
diff --git a/block/as-iosched.c b/block/as-iosched.c
index a78e160b59a3..fbe050124ec5 100644
--- a/block/as-iosched.c
+++ b/block/as-iosched.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/drivers/block/as-iosched.c
3 *
4 * Anticipatory & deadline i/o scheduler. 2 * Anticipatory & deadline i/o scheduler.
5 * 3 *
6 * Copyright (C) 2002 Jens Axboe <axboe@suse.de> 4 * Copyright (C) 2002 Jens Axboe <axboe@suse.de>
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index 2b64f5852bfd..ee0bb41694b0 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/drivers/block/cfq-iosched.c
3 *
4 * CFQ, or complete fairness queueing, disk scheduler. 2 * CFQ, or complete fairness queueing, disk scheduler.
5 * 3 *
6 * Based on ideas from a previously unfinished io 4 * Based on ideas from a previously unfinished io
diff --git a/block/deadline-iosched.c b/block/deadline-iosched.c
index 7929471d7df7..9cbec09e8415 100644
--- a/block/deadline-iosched.c
+++ b/block/deadline-iosched.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/drivers/block/deadline-iosched.c
3 *
4 * Deadline i/o scheduler. 2 * Deadline i/o scheduler.
5 * 3 *
6 * Copyright (C) 2002 Jens Axboe <axboe@suse.de> 4 * Copyright (C) 2002 Jens Axboe <axboe@suse.de>
diff --git a/block/elevator.c b/block/elevator.c
index e4c58827bb46..6c3fc8a10bf2 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/drivers/block/elevator.c
3 *
4 * Block device elevator/IO-scheduler. 2 * Block device elevator/IO-scheduler.
5 * 3 *
6 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE 4 * Copyright (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 5f52e30b43f8..99c9ca6d5992 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -1,6 +1,4 @@
1/* 1/*
2 * linux/drivers/block/ll_rw_blk.c
3 *
4 * Copyright (C) 1991, 1992 Linus Torvalds 2 * Copyright (C) 1991, 1992 Linus Torvalds
5 * Copyright (C) 1994, Karl Keyte: Added support for disk statistics 3 * Copyright (C) 1994, Karl Keyte: Added support for disk statistics
6 * Elevator latency, (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE 4 * Elevator latency, (C) 2000 Andrea Arcangeli <andrea@suse.de> SuSE
diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
index 573b6a97bb1f..70d8a6ec0920 100644
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -514,8 +514,6 @@ static int acpi_processor_set_power_policy(struct acpi_processor *pr)
514 514
515static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr) 515static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
516{ 516{
517 int i;
518
519 ACPI_FUNCTION_TRACE("acpi_processor_get_power_info_fadt"); 517 ACPI_FUNCTION_TRACE("acpi_processor_get_power_info_fadt");
520 518
521 if (!pr) 519 if (!pr)
@@ -524,8 +522,7 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
524 if (!pr->pblk) 522 if (!pr->pblk)
525 return_VALUE(-ENODEV); 523 return_VALUE(-ENODEV);
526 524
527 for (i = 0; i < ACPI_PROCESSOR_MAX_POWER; i++) 525 memset(pr->power.states, 0, sizeof(pr->power.states));
528 memset(pr->power.states, 0, sizeof(struct acpi_processor_cx));
529 526
530 /* if info is obtained from pblk/fadt, type equals state */ 527 /* if info is obtained from pblk/fadt, type equals state */
531 pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1; 528 pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1;
@@ -555,13 +552,9 @@ static int acpi_processor_get_power_info_fadt(struct acpi_processor *pr)
555 552
556static int acpi_processor_get_power_info_default_c1(struct acpi_processor *pr) 553static int acpi_processor_get_power_info_default_c1(struct acpi_processor *pr)
557{ 554{
558 int i;
559
560 ACPI_FUNCTION_TRACE("acpi_processor_get_power_info_default_c1"); 555 ACPI_FUNCTION_TRACE("acpi_processor_get_power_info_default_c1");
561 556
562 for (i = 0; i < ACPI_PROCESSOR_MAX_POWER; i++) 557 memset(pr->power.states, 0, sizeof(pr->power.states));
563 memset(&(pr->power.states[i]), 0,
564 sizeof(struct acpi_processor_cx));
565 558
566 /* if info is obtained from pblk/fadt, type equals state */ 559 /* if info is obtained from pblk/fadt, type equals state */
567 pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1; 560 pr->power.states[ACPI_STATE_C1].type = ACPI_STATE_C1;
@@ -873,7 +866,8 @@ static int acpi_processor_get_power_info(struct acpi_processor *pr)
873 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) { 866 for (i = 1; i < ACPI_PROCESSOR_MAX_POWER; i++) {
874 if (pr->power.states[i].valid) { 867 if (pr->power.states[i].valid) {
875 pr->power.count = i; 868 pr->power.count = i;
876 pr->flags.power = 1; 869 if (pr->power.states[i].type >= ACPI_STATE_C2)
870 pr->flags.power = 1;
877 } 871 }
878 } 872 }
879 873
diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
index e239a6c29230..a9e33db46e68 100644
--- a/drivers/block/cciss.c
+++ b/drivers/block/cciss.c
@@ -1017,10 +1017,11 @@ static int cciss_ioctl(struct inode *inode, struct file *filep,
1017 status = -ENOMEM; 1017 status = -ENOMEM;
1018 goto cleanup1; 1018 goto cleanup1;
1019 } 1019 }
1020 if (ioc->Request.Type.Direction == XFER_WRITE && 1020 if (ioc->Request.Type.Direction == XFER_WRITE) {
1021 copy_from_user(buff[sg_used], data_ptr, sz)) { 1021 if (copy_from_user(buff[sg_used], data_ptr, sz)) {
1022 status = -ENOMEM; 1022 status = -ENOMEM;
1023 goto cleanup1; 1023 goto cleanup1;
1024 }
1024 } else { 1025 } else {
1025 memset(buff[sg_used], 0, sz); 1026 memset(buff[sg_used], 0, sz);
1026 } 1027 }
@@ -1138,8 +1139,15 @@ static int revalidate_allvol(ctlr_info_t *host)
1138 1139
1139 for(i=0; i< NWD; i++) { 1140 for(i=0; i< NWD; i++) {
1140 struct gendisk *disk = host->gendisk[i]; 1141 struct gendisk *disk = host->gendisk[i];
1141 if (disk->flags & GENHD_FL_UP) 1142 if (disk) {
1142 del_gendisk(disk); 1143 request_queue_t *q = disk->queue;
1144
1145 if (disk->flags & GENHD_FL_UP)
1146 del_gendisk(disk);
1147 if (q)
1148 blk_cleanup_queue(q);
1149 put_disk(disk);
1150 }
1143 } 1151 }
1144 1152
1145 /* 1153 /*
@@ -1453,10 +1461,13 @@ static int deregister_disk(struct gendisk *disk, drive_info_struct *drv,
1453 * allows us to delete disk zero but keep the controller registered. 1461 * allows us to delete disk zero but keep the controller registered.
1454 */ 1462 */
1455 if (h->gendisk[0] != disk){ 1463 if (h->gendisk[0] != disk){
1456 if (disk->flags & GENHD_FL_UP){ 1464 if (disk) {
1457 blk_cleanup_queue(disk->queue); 1465 request_queue_t *q = disk->queue;
1458 del_gendisk(disk); 1466 if (disk->flags & GENHD_FL_UP)
1459 drv->queue = NULL; 1467 del_gendisk(disk);
1468 if (q)
1469 blk_cleanup_queue(q);
1470 put_disk(disk);
1460 } 1471 }
1461 } 1472 }
1462 1473
@@ -3225,9 +3236,14 @@ static void __devexit cciss_remove_one (struct pci_dev *pdev)
3225 /* remove it from the disk list */ 3236 /* remove it from the disk list */
3226 for (j = 0; j < NWD; j++) { 3237 for (j = 0; j < NWD; j++) {
3227 struct gendisk *disk = hba[i]->gendisk[j]; 3238 struct gendisk *disk = hba[i]->gendisk[j];
3228 if (disk->flags & GENHD_FL_UP) { 3239 if (disk) {
3229 del_gendisk(disk); 3240 request_queue_t *q = disk->queue;
3230 blk_cleanup_queue(disk->queue); 3241
3242 if (disk->flags & GENHD_FL_UP)
3243 del_gendisk(disk);
3244 if (q)
3245 blk_cleanup_queue(q);
3246 put_disk(disk);
3231 } 3247 }
3232 } 3248 }
3233 3249
diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
index ea89dca3dbb5..01a1f6badb53 100644
--- a/drivers/char/ipmi/ipmi_si_intf.c
+++ b/drivers/char/ipmi/ipmi_si_intf.c
@@ -2203,7 +2203,7 @@ static void setup_xaction_handlers(struct smi_info *smi_info)
2203 2203
2204static inline void wait_for_timer_and_thread(struct smi_info *smi_info) 2204static inline void wait_for_timer_and_thread(struct smi_info *smi_info)
2205{ 2205{
2206 if (smi_info->thread != ERR_PTR(-ENOMEM)) 2206 if (smi_info->thread != NULL && smi_info->thread != ERR_PTR(-ENOMEM))
2207 kthread_stop(smi_info->thread); 2207 kthread_stop(smi_info->thread);
2208 del_timer_sync(&smi_info->si_timer); 2208 del_timer_sync(&smi_info->si_timer);
2209} 2209}
diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
index b58adfe3ed19..a6873bf89ffa 100644
--- a/drivers/char/tpm/Kconfig
+++ b/drivers/char/tpm/Kconfig
@@ -6,7 +6,7 @@ menu "TPM devices"
6 6
7config TCG_TPM 7config TCG_TPM
8 tristate "TPM Hardware Support" 8 tristate "TPM Hardware Support"
9 depends on EXPERIMENTAL && PCI 9 depends on EXPERIMENTAL
10 ---help--- 10 ---help---
11 If you have a TPM security chip in your system, which 11 If you have a TPM security chip in your system, which
12 implements the Trusted Computing Group's specification, 12 implements the Trusted Computing Group's specification,
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index 0b283d246730..a9be0e8eaea5 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -377,6 +377,7 @@ int tpm_release(struct inode *inode, struct file *file)
377 file->private_data = NULL; 377 file->private_data = NULL;
378 chip->num_opens--; 378 chip->num_opens--;
379 del_singleshot_timer_sync(&chip->user_read_timer); 379 del_singleshot_timer_sync(&chip->user_read_timer);
380 flush_scheduled_work();
380 atomic_set(&chip->data_pending, 0); 381 atomic_set(&chip->data_pending, 0);
381 put_device(chip->dev); 382 put_device(chip->dev);
382 kfree(chip->data_buffer); 383 kfree(chip->data_buffer);
@@ -428,6 +429,7 @@ ssize_t tpm_read(struct file * file, char __user *buf,
428 int ret_size; 429 int ret_size;
429 430
430 del_singleshot_timer_sync(&chip->user_read_timer); 431 del_singleshot_timer_sync(&chip->user_read_timer);
432 flush_scheduled_work();
431 ret_size = atomic_read(&chip->data_pending); 433 ret_size = atomic_read(&chip->data_pending);
432 atomic_set(&chip->data_pending, 0); 434 atomic_set(&chip->data_pending, 0);
433 if (ret_size > 0) { /* relay data */ 435 if (ret_size > 0) { /* relay data */
diff --git a/drivers/char/tpm/tpm_atmel.c b/drivers/char/tpm/tpm_atmel.c
index deb4b5c80914..ff3654964fe3 100644
--- a/drivers/char/tpm/tpm_atmel.c
+++ b/drivers/char/tpm/tpm_atmel.c
@@ -47,13 +47,12 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
47 return -EIO; 47 return -EIO;
48 48
49 for (i = 0; i < 6; i++) { 49 for (i = 0; i < 6; i++) {
50 status = atmel_getb(chip, 1); 50 status = ioread8(chip->vendor->iobase + 1);
51 if ((status & ATML_STATUS_DATA_AVAIL) == 0) { 51 if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
52 dev_err(chip->dev, 52 dev_err(chip->dev, "error reading header\n");
53 "error reading header\n");
54 return -EIO; 53 return -EIO;
55 } 54 }
56 *buf++ = atmel_getb(chip, 0); 55 *buf++ = ioread8(chip->vendor->iobase);
57 } 56 }
58 57
59 /* size of the data received */ 58 /* size of the data received */
@@ -64,10 +63,9 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
64 dev_err(chip->dev, 63 dev_err(chip->dev,
65 "Recv size(%d) less than available space\n", size); 64 "Recv size(%d) less than available space\n", size);
66 for (; i < size; i++) { /* clear the waiting data anyway */ 65 for (; i < size; i++) { /* clear the waiting data anyway */
67 status = atmel_getb(chip, 1); 66 status = ioread8(chip->vendor->iobase + 1);
68 if ((status & ATML_STATUS_DATA_AVAIL) == 0) { 67 if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
69 dev_err(chip->dev, 68 dev_err(chip->dev, "error reading data\n");
70 "error reading data\n");
71 return -EIO; 69 return -EIO;
72 } 70 }
73 } 71 }
@@ -76,17 +74,17 @@ static int tpm_atml_recv(struct tpm_chip *chip, u8 *buf, size_t count)
76 74
77 /* read all the data available */ 75 /* read all the data available */
78 for (; i < size; i++) { 76 for (; i < size; i++) {
79 status = atmel_getb(chip, 1); 77 status = ioread8(chip->vendor->iobase + 1);
80 if ((status & ATML_STATUS_DATA_AVAIL) == 0) { 78 if ((status & ATML_STATUS_DATA_AVAIL) == 0) {
81 dev_err(chip->dev, 79 dev_err(chip->dev, "error reading data\n");
82 "error reading data\n");
83 return -EIO; 80 return -EIO;
84 } 81 }
85 *buf++ = atmel_getb(chip, 0); 82 *buf++ = ioread8(chip->vendor->iobase);
86 } 83 }
87 84
88 /* make sure data available is gone */ 85 /* make sure data available is gone */
89 status = atmel_getb(chip, 1); 86 status = ioread8(chip->vendor->iobase + 1);
87
90 if (status & ATML_STATUS_DATA_AVAIL) { 88 if (status & ATML_STATUS_DATA_AVAIL) {
91 dev_err(chip->dev, "data available is stuck\n"); 89 dev_err(chip->dev, "data available is stuck\n");
92 return -EIO; 90 return -EIO;
@@ -102,7 +100,7 @@ static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
102 dev_dbg(chip->dev, "tpm_atml_send:\n"); 100 dev_dbg(chip->dev, "tpm_atml_send:\n");
103 for (i = 0; i < count; i++) { 101 for (i = 0; i < count; i++) {
104 dev_dbg(chip->dev, "%d 0x%x(%d)\n", i, buf[i], buf[i]); 102 dev_dbg(chip->dev, "%d 0x%x(%d)\n", i, buf[i], buf[i]);
105 atmel_putb(buf[i], chip, 0); 103 iowrite8(buf[i], chip->vendor->iobase);
106 } 104 }
107 105
108 return count; 106 return count;
@@ -110,12 +108,12 @@ static int tpm_atml_send(struct tpm_chip *chip, u8 *buf, size_t count)
110 108
111static void tpm_atml_cancel(struct tpm_chip *chip) 109static void tpm_atml_cancel(struct tpm_chip *chip)
112{ 110{
113 atmel_putb(ATML_STATUS_ABORT, chip, 1); 111 iowrite8(ATML_STATUS_ABORT, chip->vendor->iobase + 1);
114} 112}
115 113
116static u8 tpm_atml_status(struct tpm_chip *chip) 114static u8 tpm_atml_status(struct tpm_chip *chip)
117{ 115{
118 return atmel_getb(chip, 1); 116 return ioread8(chip->vendor->iobase + 1);
119} 117}
120 118
121static struct file_operations atmel_ops = { 119static struct file_operations atmel_ops = {
@@ -162,7 +160,8 @@ static void atml_plat_remove(void)
162 160
163 if (chip) { 161 if (chip) {
164 if (chip->vendor->have_region) 162 if (chip->vendor->have_region)
165 atmel_release_region(chip->vendor->base, chip->vendor->region_size); 163 atmel_release_region(chip->vendor->base,
164 chip->vendor->region_size);
166 atmel_put_base_addr(chip->vendor); 165 atmel_put_base_addr(chip->vendor);
167 tpm_remove_hardware(chip->dev); 166 tpm_remove_hardware(chip->dev);
168 platform_device_unregister(pdev); 167 platform_device_unregister(pdev);
@@ -183,14 +182,19 @@ static int __init init_atmel(void)
183 182
184 driver_register(&atml_drv); 183 driver_register(&atml_drv);
185 184
186 if (atmel_get_base_addr(&tpm_atmel) != 0) { 185 if ((tpm_atmel.iobase = atmel_get_base_addr(&tpm_atmel)) == NULL) {
187 rc = -ENODEV; 186 rc = -ENODEV;
188 goto err_unreg_drv; 187 goto err_unreg_drv;
189 } 188 }
190 189
191 tpm_atmel.have_region = (atmel_request_region( tpm_atmel.base, tpm_atmel.region_size, "tpm_atmel0") == NULL) ? 0 : 1; 190 tpm_atmel.have_region =
191 (atmel_request_region
192 (tpm_atmel.base, tpm_atmel.region_size,
193 "tpm_atmel0") == NULL) ? 0 : 1;
192 194
193 if (IS_ERR(pdev = platform_device_register_simple("tpm_atmel", -1, NULL, 0 ))) { 195 if (IS_ERR
196 (pdev =
197 platform_device_register_simple("tpm_atmel", -1, NULL, 0))) {
194 rc = PTR_ERR(pdev); 198 rc = PTR_ERR(pdev);
195 goto err_rel_reg; 199 goto err_rel_reg;
196 } 200 }
@@ -202,9 +206,10 @@ static int __init init_atmel(void)
202err_unreg_dev: 206err_unreg_dev:
203 platform_device_unregister(pdev); 207 platform_device_unregister(pdev);
204err_rel_reg: 208err_rel_reg:
205 if (tpm_atmel.have_region)
206 atmel_release_region(tpm_atmel.base, tpm_atmel.region_size);
207 atmel_put_base_addr(&tpm_atmel); 209 atmel_put_base_addr(&tpm_atmel);
210 if (tpm_atmel.have_region)
211 atmel_release_region(tpm_atmel.base,
212 tpm_atmel.region_size);
208err_unreg_drv: 213err_unreg_drv:
209 driver_unregister(&atml_drv); 214 driver_unregister(&atml_drv);
210 return rc; 215 return rc;
diff --git a/drivers/char/tpm/tpm_atmel.h b/drivers/char/tpm/tpm_atmel.h
index 3c5b9a8d1c49..d3478aaadd77 100644
--- a/drivers/char/tpm/tpm_atmel.h
+++ b/drivers/char/tpm/tpm_atmel.h
@@ -27,12 +27,14 @@
27#define atmel_putb(val, chip, offset) writeb(val, chip->vendor->iobase + offset) 27#define atmel_putb(val, chip, offset) writeb(val, chip->vendor->iobase + offset)
28#define atmel_request_region request_mem_region 28#define atmel_request_region request_mem_region
29#define atmel_release_region release_mem_region 29#define atmel_release_region release_mem_region
30static inline void atmel_put_base_addr(struct tpm_vendor_specific *vendor) 30
31static inline void atmel_put_base_addr(struct tpm_vendor_specific
32 *vendor)
31{ 33{
32 iounmap(vendor->iobase); 34 iounmap(vendor->iobase);
33} 35}
34 36
35static int atmel_get_base_addr(struct tpm_vendor_specific *vendor) 37static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific *vendor)
36{ 38{
37 struct device_node *dn; 39 struct device_node *dn;
38 unsigned long address, size; 40 unsigned long address, size;
@@ -44,11 +46,11 @@ static int atmel_get_base_addr(struct tpm_vendor_specific *vendor)
44 dn = of_find_node_by_name(NULL, "tpm"); 46 dn = of_find_node_by_name(NULL, "tpm");
45 47
46 if (!dn) 48 if (!dn)
47 return 1; 49 return NULL;
48 50
49 if (!device_is_compatible(dn, "AT97SC3201")) { 51 if (!device_is_compatible(dn, "AT97SC3201")) {
50 of_node_put(dn); 52 of_node_put(dn);
51 return 1; 53 return NULL;
52 } 54 }
53 55
54 reg = (unsigned int *) get_property(dn, "reg", &reglen); 56 reg = (unsigned int *) get_property(dn, "reg", &reglen);
@@ -71,8 +73,7 @@ static int atmel_get_base_addr(struct tpm_vendor_specific *vendor)
71 73
72 vendor->base = address; 74 vendor->base = address;
73 vendor->region_size = size; 75 vendor->region_size = size;
74 vendor->iobase = ioremap(address, size); 76 return ioremap(vendor->base, vendor->region_size);
75 return 0;
76} 77}
77#else 78#else
78#define atmel_getb(chip, offset) inb(chip->vendor->base + offset) 79#define atmel_getb(chip, offset) inb(chip->vendor->base + offset)
@@ -105,18 +106,19 @@ static int atmel_verify_tpm11(void)
105 return 0; 106 return 0;
106} 107}
107 108
108static inline void atmel_put_base_addr(struct tpm_vendor_specific *vendor) 109static inline void atmel_put_base_addr(struct tpm_vendor_specific
110 *vendor)
109{ 111{
110} 112}
111 113
112/* Determine where to talk to device */ 114/* Determine where to talk to device */
113static unsigned long atmel_get_base_addr(struct tpm_vendor_specific 115static void __iomem * atmel_get_base_addr(struct tpm_vendor_specific
114 *vendor) 116 *vendor)
115{ 117{
116 int lo, hi; 118 int lo, hi;
117 119
118 if (atmel_verify_tpm11() != 0) 120 if (atmel_verify_tpm11() != 0)
119 return 1; 121 return NULL;
120 122
121 lo = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_LO); 123 lo = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_LO);
122 hi = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_HI); 124 hi = tpm_read_index(TPM_ADDR, TPM_ATMEL_BASE_ADDR_HI);
@@ -124,6 +126,6 @@ static unsigned long atmel_get_base_addr(struct tpm_vendor_specific
124 vendor->base = (hi << 8) | lo; 126 vendor->base = (hi << 8) | lo;
125 vendor->region_size = 2; 127 vendor->region_size = 2;
126 128
127 return 0; 129 return ioport_map(vendor->base, vendor->region_size);
128} 130}
129#endif 131#endif
diff --git a/drivers/i2c/busses/i2c-ixp4xx.c b/drivers/i2c/busses/i2c-ixp4xx.c
index aa36855fa995..f87220be3c87 100644
--- a/drivers/i2c/busses/i2c-ixp4xx.c
+++ b/drivers/i2c/busses/i2c-ixp4xx.c
@@ -35,7 +35,7 @@
35 35
36#include <asm/hardware.h> /* Pick up IXP4xx-specific bits */ 36#include <asm/hardware.h> /* Pick up IXP4xx-specific bits */
37 37
38static struct device_driver ixp4xx_i2c_driver; 38static struct platform_driver ixp4xx_i2c_driver;
39 39
40static inline int ixp4xx_scl_pin(void *data) 40static inline int ixp4xx_scl_pin(void *data)
41{ 41{
@@ -128,7 +128,7 @@ static int ixp4xx_i2c_probe(struct platform_device *plat_dev)
128 drv_data->algo_data.timeout = 100; 128 drv_data->algo_data.timeout = 100;
129 129
130 drv_data->adapter.id = I2C_HW_B_IXP4XX; 130 drv_data->adapter.id = I2C_HW_B_IXP4XX;
131 strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.name, 131 strlcpy(drv_data->adapter.name, ixp4xx_i2c_driver.driver.name,
132 I2C_NAME_SIZE); 132 I2C_NAME_SIZE);
133 drv_data->adapter.algo_data = &drv_data->algo_data; 133 drv_data->adapter.algo_data = &drv_data->algo_data;
134 134
@@ -140,7 +140,8 @@ static int ixp4xx_i2c_probe(struct platform_device *plat_dev)
140 gpio_line_set(gpio->sda_pin, 0); 140 gpio_line_set(gpio->sda_pin, 0);
141 141
142 if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) { 142 if ((err = i2c_bit_add_bus(&drv_data->adapter) != 0)) {
143 printk(KERN_ERR "ERROR: Could not install %s\n", dev->bus_id); 143 printk(KERN_ERR "ERROR: Could not install %s\n",
144 plat_dev->dev.bus_id);
144 145
145 kfree(drv_data); 146 kfree(drv_data);
146 return err; 147 return err;
diff --git a/drivers/ide/Kconfig b/drivers/ide/Kconfig
index 42e5b8175cbf..31e649a9ff71 100644
--- a/drivers/ide/Kconfig
+++ b/drivers/ide/Kconfig
@@ -625,7 +625,7 @@ config BLK_DEV_NS87415
625 tristate "NS87415 chipset support" 625 tristate "NS87415 chipset support"
626 help 626 help
627 This driver adds detection and support for the NS87415 chip 627 This driver adds detection and support for the NS87415 chip
628 (used in SPARC64, among others). 628 (used mainly on SPARC64 and PA-RISC machines).
629 629
630 Please read the comments at the top of <file:drivers/ide/pci/ns87415.c>. 630 Please read the comments at the top of <file:drivers/ide/pci/ns87415.c>.
631 631
@@ -787,6 +787,10 @@ config BLK_DEV_IDE_PMAC_BLINK
787 This option enables the use of the sleep LED as a hard drive 787 This option enables the use of the sleep LED as a hard drive
788 activity LED. 788 activity LED.
789 789
790config BLK_DEV_IDE_SWARM
791 tristate "IDE for Sibyte evaluation boards"
792 depends on SIBYTE_SB1xxx_SOC
793
790config BLK_DEV_IDE_AU1XXX 794config BLK_DEV_IDE_AU1XXX
791 bool "IDE for AMD Alchemy Au1200" 795 bool "IDE for AMD Alchemy Au1200"
792 depends on SOC_AU1200 796 depends on SOC_AU1200
diff --git a/drivers/ide/Makefile b/drivers/ide/Makefile
index cca9c075966d..569fae717503 100644
--- a/drivers/ide/Makefile
+++ b/drivers/ide/Makefile
@@ -48,6 +48,6 @@ obj-$(CONFIG_BLK_DEV_IDECD) += ide-cd.o
48obj-$(CONFIG_BLK_DEV_IDETAPE) += ide-tape.o 48obj-$(CONFIG_BLK_DEV_IDETAPE) += ide-tape.o
49obj-$(CONFIG_BLK_DEV_IDEFLOPPY) += ide-floppy.o 49obj-$(CONFIG_BLK_DEV_IDEFLOPPY) += ide-floppy.o
50 50
51obj-$(CONFIG_BLK_DEV_IDE) += legacy/ arm/ 51obj-$(CONFIG_BLK_DEV_IDE) += legacy/ arm/ mips/
52obj-$(CONFIG_BLK_DEV_HD) += legacy/ 52obj-$(CONFIG_BLK_DEV_HD) += legacy/
53obj-$(CONFIG_ETRAX_IDE) += cris/ 53obj-$(CONFIG_ETRAX_IDE) += cris/
diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
index c2f47923d174..421b62d900af 100644
--- a/drivers/ide/ide-cd.c
+++ b/drivers/ide/ide-cd.c
@@ -3328,8 +3328,8 @@ static ide_proc_entry_t idecd_proc[] = {
3328#endif 3328#endif
3329 3329
3330static ide_driver_t ide_cdrom_driver = { 3330static ide_driver_t ide_cdrom_driver = {
3331 .owner = THIS_MODULE,
3332 .gen_driver = { 3331 .gen_driver = {
3332 .owner = THIS_MODULE,
3333 .name = "ide-cdrom", 3333 .name = "ide-cdrom",
3334 .bus = &ide_bus_type, 3334 .bus = &ide_bus_type,
3335 .probe = ide_cd_probe, 3335 .probe = ide_cd_probe,
diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
index e827b39e4b3c..1a45f75dc9b2 100644
--- a/drivers/ide/ide-disk.c
+++ b/drivers/ide/ide-disk.c
@@ -1089,8 +1089,8 @@ static void ide_device_shutdown(struct device *dev)
1089} 1089}
1090 1090
1091static ide_driver_t idedisk_driver = { 1091static ide_driver_t idedisk_driver = {
1092 .owner = THIS_MODULE,
1093 .gen_driver = { 1092 .gen_driver = {
1093 .owner = THIS_MODULE,
1094 .name = "ide-disk", 1094 .name = "ide-disk",
1095 .bus = &ide_bus_type, 1095 .bus = &ide_bus_type,
1096 .probe = ide_disk_probe, 1096 .probe = ide_disk_probe,
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c
index f615ab759962..94c147b79a49 100644
--- a/drivers/ide/ide-floppy.c
+++ b/drivers/ide/ide-floppy.c
@@ -1925,8 +1925,8 @@ static ide_proc_entry_t idefloppy_proc[] = {
1925static int ide_floppy_probe(struct device *); 1925static int ide_floppy_probe(struct device *);
1926 1926
1927static ide_driver_t idefloppy_driver = { 1927static ide_driver_t idefloppy_driver = {
1928 .owner = THIS_MODULE,
1929 .gen_driver = { 1928 .gen_driver = {
1929 .owner = THIS_MODULE,
1930 .name = "ide-floppy", 1930 .name = "ide-floppy",
1931 .bus = &ide_bus_type, 1931 .bus = &ide_bus_type,
1932 .probe = ide_floppy_probe, 1932 .probe = ide_floppy_probe,
diff --git a/drivers/ide/ide-lib.c b/drivers/ide/ide-lib.c
index b09a6537c7a8..41d46dbe6c24 100644
--- a/drivers/ide/ide-lib.c
+++ b/drivers/ide/ide-lib.c
@@ -410,10 +410,10 @@ void ide_toggle_bounce(ide_drive_t *drive, int on)
410{ 410{
411 u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */ 411 u64 addr = BLK_BOUNCE_HIGH; /* dma64_addr_t */
412 412
413 if (on && drive->media == ide_disk) { 413 if (!PCI_DMA_BUS_IS_PHYS) {
414 if (!PCI_DMA_BUS_IS_PHYS) 414 addr = BLK_BOUNCE_ANY;
415 addr = BLK_BOUNCE_ANY; 415 } else if (on && drive->media == ide_disk) {
416 else if (HWIF(drive)->pci_dev) 416 if (HWIF(drive)->pci_dev)
417 addr = HWIF(drive)->pci_dev->dma_mask; 417 addr = HWIF(drive)->pci_dev->dma_mask;
418 } 418 }
419 419
diff --git a/drivers/ide/ide-tape.c b/drivers/ide/ide-tape.c
index 0ac7eb8f40d5..2069dd693c9f 100644
--- a/drivers/ide/ide-tape.c
+++ b/drivers/ide/ide-tape.c
@@ -4748,8 +4748,8 @@ static ide_proc_entry_t idetape_proc[] = {
4748static int ide_tape_probe(struct device *); 4748static int ide_tape_probe(struct device *);
4749 4749
4750static ide_driver_t idetape_driver = { 4750static ide_driver_t idetape_driver = {
4751 .owner = THIS_MODULE,
4752 .gen_driver = { 4751 .gen_driver = {
4752 .owner = THIS_MODULE,
4753 .name = "ide-tape", 4753 .name = "ide-tape",
4754 .bus = &ide_bus_type, 4754 .bus = &ide_bus_type,
4755 .probe = ide_tape_probe, 4755 .probe = ide_tape_probe,
diff --git a/drivers/ide/mips/Makefile b/drivers/ide/mips/Makefile
new file mode 100644
index 000000000000..578e52a59588
--- /dev/null
+++ b/drivers/ide/mips/Makefile
@@ -0,0 +1 @@
obj-$(CONFIG_BLK_DEV_IDE_SWARM) += swarm.o
diff --git a/drivers/ide/mips/swarm.c b/drivers/ide/mips/swarm.c
new file mode 100644
index 000000000000..66f6064f4640
--- /dev/null
+++ b/drivers/ide/mips/swarm.c
@@ -0,0 +1,201 @@
1/*
2 * Copyright (C) 2001, 2002, 2003 Broadcom Corporation
3 * Copyright (C) 2004 MontaVista Software Inc.
4 * Author: Manish Lachwani, mlachwani@mvista.com
5 * Copyright (C) 2004 MIPS Technologies, Inc. All rights reserved.
6 * Author: Maciej W. Rozycki <macro@mips.com>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21 */
22
23/*
24 * Derived loosely from ide-pmac.c, so:
25 * Copyright (C) 1998 Paul Mackerras.
26 * Copyright (C) 1995-1998 Mark Lord
27 */
28
29/*
30 * Boards with SiByte processors so far have supported IDE devices via
31 * the Generic Bus, PCI bus, and built-in PCMCIA interface. In all
32 * cases, byte-swapping must be avoided for these devices (whereas
33 * other PCI devices, for example, will require swapping). Any
34 * SiByte-targetted kernel including IDE support will include this
35 * file. Probing of a Generic Bus for an IDE device is controlled by
36 * the definition of "SIBYTE_HAVE_IDE", which is provided by
37 * <asm/sibyte/board.h> for Broadcom boards.
38 */
39
40#include <linux/ide.h>
41#include <linux/ioport.h>
42#include <linux/kernel.h>
43#include <linux/types.h>
44#include <linux/platform_device.h>
45
46#include <asm/io.h>
47
48#include <asm/sibyte/board.h>
49#include <asm/sibyte/sb1250_genbus.h>
50#include <asm/sibyte/sb1250_regs.h>
51
52#define DRV_NAME "ide-swarm"
53
54static char swarm_ide_string[] = DRV_NAME;
55
56static struct resource swarm_ide_resource = {
57 .name = "SWARM GenBus IDE",
58 .flags = IORESOURCE_MEM,
59};
60
61static struct platform_device *swarm_ide_dev;
62
63/*
64 * swarm_ide_probe - if the board header indicates the existence of
65 * Generic Bus IDE, allocate a HWIF for it.
66 */
67static int __devinit swarm_ide_probe(struct device *dev)
68{
69 ide_hwif_t *hwif;
70 u8 __iomem *base;
71 phys_t offset, size;
72 int i;
73
74 if (!SIBYTE_HAVE_IDE)
75 return -ENODEV;
76
77 /* Find an empty slot. */
78 for (i = 0; i < MAX_HWIFS; i++)
79 if (!ide_hwifs[i].io_ports[IDE_DATA_OFFSET])
80 break;
81 if (i >= MAX_HWIFS) {
82 printk(KERN_ERR DRV_NAME ": no free slot for interface\n");
83 return -ENOMEM;
84 }
85
86 hwif = ide_hwifs + i;
87
88 base = ioremap(A_IO_EXT_BASE, 0x800);
89 offset = __raw_readq(base + R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS));
90 size = __raw_readq(base + R_IO_EXT_REG(R_IO_EXT_MULT_SIZE, IDE_CS));
91 iounmap(base);
92
93 offset = G_IO_START_ADDR(offset) << S_IO_ADDRBASE;
94 size = (G_IO_MULT_SIZE(size) + 1) << S_IO_REGSIZE;
95 if (offset < A_PHYS_GENBUS || offset >= A_PHYS_GENBUS_END) {
96 printk(KERN_INFO DRV_NAME
97 ": IDE interface at GenBus disabled\n");
98 return -EBUSY;
99 }
100
101 printk(KERN_INFO DRV_NAME ": IDE interface at GenBus slot %i\n",
102 IDE_CS);
103
104 swarm_ide_resource.start = offset;
105 swarm_ide_resource.end = offset + size - 1;
106 if (request_resource(&iomem_resource, &swarm_ide_resource)) {
107 printk(KERN_ERR DRV_NAME
108 ": can't request I/O memory resource\n");
109 return -EBUSY;
110 }
111
112 base = ioremap(offset, size);
113
114 /* Setup MMIO ops. */
115 default_hwif_mmiops(hwif);
116 /* Prevent resource map manipulation. */
117 hwif->mmio = 2;
118 hwif->noprobe = 0;
119
120 for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++)
121 hwif->hw.io_ports[i] =
122 (unsigned long)(base + ((0x1f0 + i) << 5));
123 hwif->hw.io_ports[IDE_CONTROL_OFFSET] =
124 (unsigned long)(base + (0x3f6 << 5));
125 hwif->hw.irq = K_INT_GB_IDE;
126
127 memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
128 hwif->irq = hwif->hw.irq;
129
130 dev_set_drvdata(dev, hwif);
131
132 return 0;
133}
134
135static struct device_driver swarm_ide_driver = {
136 .name = swarm_ide_string,
137 .bus = &platform_bus_type,
138 .probe = swarm_ide_probe,
139};
140
141static void swarm_ide_platform_release(struct device *device)
142{
143 struct platform_device *pldev;
144
145 /* free device */
146 pldev = to_platform_device(device);
147 kfree(pldev);
148}
149
150static int __devinit swarm_ide_init_module(void)
151{
152 struct platform_device *pldev;
153 int err;
154
155 printk(KERN_INFO "SWARM IDE driver\n");
156
157 if (driver_register(&swarm_ide_driver)) {
158 printk(KERN_ERR "Driver registration failed\n");
159 err = -ENODEV;
160 goto out;
161 }
162
163 if (!(pldev = kmalloc(sizeof (*pldev), GFP_KERNEL))) {
164 err = -ENOMEM;
165 goto out_unregister_driver;
166 }
167
168 memset (pldev, 0, sizeof (*pldev));
169 pldev->name = swarm_ide_string;
170 pldev->id = 0;
171 pldev->dev.release = swarm_ide_platform_release;
172
173 if (platform_device_register(pldev)) {
174 err = -ENODEV;
175 goto out_free_pldev;
176 }
177
178 if (!pldev->dev.driver) {
179 /*
180 * The driver was not bound to this device, there was
181 * no hardware at this address. Unregister it, as the
182 * release fuction will take care of freeing the
183 * allocated structure
184 */
185 platform_device_unregister (pldev);
186 }
187
188 swarm_ide_dev = pldev;
189
190 return 0;
191
192out_free_pldev:
193 kfree(pldev);
194
195out_unregister_driver:
196 driver_unregister(&swarm_ide_driver);
197out:
198 return err;
199}
200
201module_init(swarm_ide_init_module);
diff --git a/drivers/ide/pci/aec62xx.c b/drivers/ide/pci/aec62xx.c
index 52cadc005d72..a21b1e11eef4 100644
--- a/drivers/ide/pci/aec62xx.c
+++ b/drivers/ide/pci/aec62xx.c
@@ -65,23 +65,6 @@ static struct chipset_bus_clock_list_entry aec6xxx_34_base [] = {
65#define BUSCLOCK(D) \ 65#define BUSCLOCK(D) \
66 ((struct chipset_bus_clock_list_entry *) pci_get_drvdata((D))) 66 ((struct chipset_bus_clock_list_entry *) pci_get_drvdata((D)))
67 67
68#if 0
69 if (dev->device == PCI_DEVICE_ID_ARTOP_ATP850UF) {
70 (void) pci_read_config_byte(dev, 0x54, &art);
71 p += sprintf(p, "DMA Mode: %s(%s)",
72 (c0&0x20)?((art&0x03)?"UDMA":" DMA"):" PIO",
73 (art&0x02)?"2":(art&0x01)?"1":"0");
74 p += sprintf(p, " %s(%s)",
75 (c0&0x40)?((art&0x0c)?"UDMA":" DMA"):" PIO",
76 (art&0x08)?"2":(art&0x04)?"1":"0");
77 p += sprintf(p, " %s(%s)",
78 (c1&0x20)?((art&0x30)?"UDMA":" DMA"):" PIO",
79 (art&0x20)?"2":(art&0x10)?"1":"0");
80 p += sprintf(p, " %s(%s)\n",
81 (c1&0x40)?((art&0xc0)?"UDMA":" DMA"):" PIO",
82 (art&0x80)?"2":(art&0x40)?"1":"0");
83 } else {
84#endif
85 68
86/* 69/*
87 * TO DO: active tuning and correction of cards without a bios. 70 * TO DO: active tuning and correction of cards without a bios.
@@ -112,13 +95,9 @@ static u8 aec62xx_ratemask (ide_drive_t *drive)
112 switch(hwif->pci_dev->device) { 95 switch(hwif->pci_dev->device) {
113 case PCI_DEVICE_ID_ARTOP_ATP865: 96 case PCI_DEVICE_ID_ARTOP_ATP865:
114 case PCI_DEVICE_ID_ARTOP_ATP865R: 97 case PCI_DEVICE_ID_ARTOP_ATP865R:
115#if 0
116 mode = (hwif->INB(hwif->dma_master) & 0x10) ? 4 : 3;
117#else
118 mode = (hwif->INB(((hwif->channel) ? 98 mode = (hwif->INB(((hwif->channel) ?
119 hwif->mate->dma_status : 99 hwif->mate->dma_status :
120 hwif->dma_status)) & 0x10) ? 4 : 3; 100 hwif->dma_status)) & 0x10) ? 4 : 3;
121#endif
122 break; 101 break;
123 case PCI_DEVICE_ID_ARTOP_ATP860: 102 case PCI_DEVICE_ID_ARTOP_ATP860:
124 case PCI_DEVICE_ID_ARTOP_ATP860R: 103 case PCI_DEVICE_ID_ARTOP_ATP860R:
@@ -263,35 +242,9 @@ static int aec62xx_irq_timeout (ide_drive_t *drive)
263 case PCI_DEVICE_ID_ARTOP_ATP865: 242 case PCI_DEVICE_ID_ARTOP_ATP865:
264 case PCI_DEVICE_ID_ARTOP_ATP865R: 243 case PCI_DEVICE_ID_ARTOP_ATP865R:
265 printk(" AEC62XX time out "); 244 printk(" AEC62XX time out ");
266#if 0
267 {
268 int i = 0;
269 u8 reg49h = 0;
270 pci_read_config_byte(HWIF(drive)->pci_dev, 0x49, &reg49h);
271 for (i=0;i<256;i++)
272 pci_write_config_byte(HWIF(drive)->pci_dev, 0x49, reg49h|0x10);
273 pci_write_config_byte(HWIF(drive)->pci_dev, 0x49, reg49h & ~0x10);
274 }
275 return 0;
276#endif
277 default: 245 default:
278 break; 246 break;
279 } 247 }
280#if 0
281 {
282 ide_hwif_t *hwif = HWIF(drive);
283 struct pci_dev *dev = hwif->pci_dev;
284 u8 tmp1 = 0, tmp2 = 0, mode6 = 0;
285
286 pci_read_config_byte(dev, 0x44, &tmp1);
287 pci_read_config_byte(dev, 0x45, &tmp2);
288 printk(" AEC6280 r44=%x r45=%x ",tmp1,tmp2);
289 mode6 = HWIF(drive)->INB(((hwif->channel) ?
290 hwif->mate->dma_status :
291 hwif->dma_status));
292 printk(" AEC6280 133=%x ", (mode6 & 0x10));
293 }
294#endif
295 return 0; 248 return 0;
296} 249}
297 250
diff --git a/drivers/ide/pci/alim15x3.c b/drivers/ide/pci/alim15x3.c
index 6cf49394a80f..cf84350efc55 100644
--- a/drivers/ide/pci/alim15x3.c
+++ b/drivers/ide/pci/alim15x3.c
@@ -876,10 +876,15 @@ static ide_pci_device_t ali15x3_chipset __devinitdata = {
876 876
877static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_device_id *id) 877static int __devinit alim15x3_init_one(struct pci_dev *dev, const struct pci_device_id *id)
878{ 878{
879 static struct pci_device_id ati_rs100[] = {
880 { PCI_DEVICE(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100) },
881 { },
882 };
883
879 ide_pci_device_t *d = &ali15x3_chipset; 884 ide_pci_device_t *d = &ali15x3_chipset;
880 885
881 if(pci_find_device(PCI_VENDOR_ID_ATI, PCI_DEVICE_ID_ATI_RS100, NULL)) 886 if (pci_dev_present(ati_rs100))
882 printk(KERN_ERR "Warning: ATI Radeon IGP Northbridge is not yet fully tested.\n"); 887 printk(KERN_WARNING "alim15x3: ATI Radeon IGP Northbridge is not yet fully tested.\n");
883 888
884#if defined(CONFIG_SPARC64) 889#if defined(CONFIG_SPARC64)
885 d->init_hwif = init_hwif_common_ali15x3; 890 d->init_hwif = init_hwif_common_ali15x3;
diff --git a/drivers/ide/pci/cs5520.c b/drivers/ide/pci/cs5520.c
index 7dc24682d197..ea3c52cc8ac1 100644
--- a/drivers/ide/pci/cs5520.c
+++ b/drivers/ide/pci/cs5520.c
@@ -222,10 +222,9 @@ static int __devinit cs5520_init_one(struct pci_dev *dev, const struct pci_devic
222 222
223 /* We must not grab the entire device, it has 'ISA' space in its 223 /* We must not grab the entire device, it has 'ISA' space in its
224 BARS too and we will freak out other bits of the kernel */ 224 BARS too and we will freak out other bits of the kernel */
225 if(pci_enable_device_bars(dev, 1<<2)) 225 if (pci_enable_device_bars(dev, 1<<2)) {
226 {
227 printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name); 226 printk(KERN_WARNING "%s: Unable to enable 55x0.\n", d->name);
228 return 1; 227 return -ENODEV;
229 } 228 }
230 pci_set_master(dev); 229 pci_set_master(dev);
231 if (pci_set_dma_mask(dev, DMA_32BIT_MASK)) { 230 if (pci_set_dma_mask(dev, DMA_32BIT_MASK)) {
diff --git a/drivers/ide/pci/siimage.c b/drivers/ide/pci/siimage.c
index 022d244f2eb0..f1ca154dd52c 100644
--- a/drivers/ide/pci/siimage.c
+++ b/drivers/ide/pci/siimage.c
@@ -6,7 +6,13 @@
6 * 6 *
7 * May be copied or modified under the terms of the GNU General Public License 7 * May be copied or modified under the terms of the GNU General Public License
8 * 8 *
9 * Documentation available under NDA only 9 * Documentation for CMD680:
10 * http://gkernel.sourceforge.net/specs/sii/sii-0680a-v1.31.pdf.bz2
11 *
12 * Documentation for SiI 3112:
13 * http://gkernel.sourceforge.net/specs/sii/3112A_SiI-DS-0095-B2.pdf.bz2
14 *
15 * Errata and other documentation only available under NDA.
10 * 16 *
11 * 17 *
12 * FAQ Items: 18 * FAQ Items:
diff --git a/drivers/ide/pci/via82cxxx.c b/drivers/ide/pci/via82cxxx.c
index a4d099c937ff..cee2c374cd2f 100644
--- a/drivers/ide/pci/via82cxxx.c
+++ b/drivers/ide/pci/via82cxxx.c
@@ -100,185 +100,14 @@ static struct via_isa_bridge {
100 { NULL } 100 { NULL }
101}; 101};
102 102
103static struct via_isa_bridge *via_config;
104static unsigned int via_80w;
105static unsigned int via_clock; 103static unsigned int via_clock;
106static char *via_dma[] = { "MWDMA16", "UDMA33", "UDMA66", "UDMA100", "UDMA133" }; 104static char *via_dma[] = { "MWDMA16", "UDMA33", "UDMA66", "UDMA100", "UDMA133" };
107 105
108/* 106struct via82cxxx_dev
109 * VIA /proc entry.
110 */
111
112#if defined(DISPLAY_VIA_TIMINGS) && defined(CONFIG_PROC_FS)
113
114#include <linux/stat.h>
115#include <linux/proc_fs.h>
116
117static u8 via_proc = 0;
118static unsigned long via_base;
119static struct pci_dev *bmide_dev, *isa_dev;
120
121static char *via_control3[] = { "No limit", "64", "128", "192" };
122
123#define via_print(format, arg...) p += sprintf(p, format "\n" , ## arg)
124#define via_print_drive(name, format, arg...)\
125 p += sprintf(p, name); for (i = 0; i < 4; i++) p += sprintf(p, format, ## arg); p += sprintf(p, "\n");
126
127
128/**
129 * via_get_info - generate via /proc file
130 * @buffer: buffer for data
131 * @addr: set to start of data to use
132 * @offset: current file offset
133 * @count: size of read
134 *
135 * Fills in buffer with the debugging/configuration information for
136 * the VIA chipset tuning and attached drives
137 */
138
139static int via_get_info(char *buffer, char **addr, off_t offset, int count)
140{ 107{
141 int speed[4], cycle[4], setup[4], active[4], recover[4], den[4], 108 struct via_isa_bridge *via_config;
142 uen[4], udma[4], umul[4], active8b[4], recover8b[4]; 109 unsigned int via_80w;
143 struct pci_dev *dev = bmide_dev; 110};
144 unsigned int v, u, i;
145 int len;
146 u16 c, w;
147 u8 t, x;
148 char *p = buffer;
149
150 via_print("----------VIA BusMastering IDE Configuration"
151 "----------------");
152
153 via_print("Driver Version: 3.38");
154 via_print("South Bridge: VIA %s",
155 via_config->name);
156
157 pci_read_config_byte(isa_dev, PCI_REVISION_ID, &t);
158 pci_read_config_byte(dev, PCI_REVISION_ID, &x);
159 via_print("Revision: ISA %#x IDE %#x", t, x);
160 via_print("Highest DMA rate: %s",
161 via_dma[via_config->flags & VIA_UDMA]);
162
163 via_print("BM-DMA base: %#lx", via_base);
164 via_print("PCI clock: %d.%dMHz",
165 via_clock / 1000, via_clock / 100 % 10);
166
167 pci_read_config_byte(dev, VIA_MISC_1, &t);
168 via_print("Master Read Cycle IRDY: %dws",
169 (t & 64) >> 6);
170 via_print("Master Write Cycle IRDY: %dws",
171 (t & 32) >> 5);
172 via_print("BM IDE Status Register Read Retry: %s",
173 (t & 8) ? "yes" : "no");
174
175 pci_read_config_byte(dev, VIA_MISC_3, &t);
176 via_print("Max DRDY Pulse Width: %s%s",
177 via_control3[(t & 0x03)], (t & 0x03) ? " PCI clocks" : "");
178
179 via_print("-----------------------Primary IDE"
180 "-------Secondary IDE------");
181 via_print("Read DMA FIFO flush: %10s%20s",
182 (t & 0x80) ? "yes" : "no", (t & 0x40) ? "yes" : "no");
183 via_print("End Sector FIFO flush: %10s%20s",
184 (t & 0x20) ? "yes" : "no", (t & 0x10) ? "yes" : "no");
185
186 pci_read_config_byte(dev, VIA_IDE_CONFIG, &t);
187 via_print("Prefetch Buffer: %10s%20s",
188 (t & 0x80) ? "yes" : "no", (t & 0x20) ? "yes" : "no");
189 via_print("Post Write Buffer: %10s%20s",
190 (t & 0x40) ? "yes" : "no", (t & 0x10) ? "yes" : "no");
191
192 pci_read_config_byte(dev, VIA_IDE_ENABLE, &t);
193 via_print("Enabled: %10s%20s",
194 (t & 0x02) ? "yes" : "no", (t & 0x01) ? "yes" : "no");
195
196 c = inb(via_base + 0x02) | (inb(via_base + 0x0a) << 8);
197 via_print("Simplex only: %10s%20s",
198 (c & 0x80) ? "yes" : "no", (c & 0x8000) ? "yes" : "no");
199
200 via_print("Cable Type: %10s%20s",
201 (via_80w & 1) ? "80w" : "40w", (via_80w & 2) ? "80w" : "40w");
202
203 via_print("-------------------drive0----drive1"
204 "----drive2----drive3-----");
205
206 pci_read_config_byte(dev, VIA_ADDRESS_SETUP, &t);
207 pci_read_config_dword(dev, VIA_DRIVE_TIMING, &v);
208 pci_read_config_word(dev, VIA_8BIT_TIMING, &w);
209
210 if (via_config->flags & VIA_UDMA)
211 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
212 else u = 0;
213
214 for (i = 0; i < 4; i++) {
215
216 setup[i] = ((t >> ((3 - i) << 1)) & 0x3) + 1;
217 recover8b[i] = ((w >> ((1 - (i >> 1)) << 3)) & 0xf) + 1;
218 active8b[i] = ((w >> (((1 - (i >> 1)) << 3) + 4)) & 0xf) + 1;
219 active[i] = ((v >> (((3 - i) << 3) + 4)) & 0xf) + 1;
220 recover[i] = ((v >> ((3 - i) << 3)) & 0xf) + 1;
221 udma[i] = ((u >> ((3 - i) << 3)) & 0x7) + 2;
222 umul[i] = ((u >> (((3 - i) & 2) << 3)) & 0x8) ? 1 : 2;
223 uen[i] = ((u >> ((3 - i) << 3)) & 0x20);
224 den[i] = (c & ((i & 1) ? 0x40 : 0x20) << ((i & 2) << 2));
225
226 speed[i] = 2 * via_clock / (active[i] + recover[i]);
227 cycle[i] = 1000000 * (active[i] + recover[i]) / via_clock;
228
229 if (!uen[i] || !den[i])
230 continue;
231
232 switch (via_config->flags & VIA_UDMA) {
233
234 case VIA_UDMA_33:
235 speed[i] = 2 * via_clock / udma[i];
236 cycle[i] = 1000000 * udma[i] / via_clock;
237 break;
238
239 case VIA_UDMA_66:
240 speed[i] = 4 * via_clock / (udma[i] * umul[i]);
241 cycle[i] = 500000 * (udma[i] * umul[i]) / via_clock;
242 break;
243
244 case VIA_UDMA_100:
245 speed[i] = 6 * via_clock / udma[i];
246 cycle[i] = 333333 * udma[i] / via_clock;
247 break;
248
249 case VIA_UDMA_133:
250 speed[i] = 8 * via_clock / udma[i];
251 cycle[i] = 250000 * udma[i] / via_clock;
252 break;
253 }
254 }
255
256 via_print_drive("Transfer Mode: ", "%10s",
257 den[i] ? (uen[i] ? "UDMA" : "DMA") : "PIO");
258
259 via_print_drive("Address Setup: ", "%8dns",
260 1000000 * setup[i] / via_clock);
261 via_print_drive("Cmd Active: ", "%8dns",
262 1000000 * active8b[i] / via_clock);
263 via_print_drive("Cmd Recovery: ", "%8dns",
264 1000000 * recover8b[i] / via_clock);
265 via_print_drive("Data Active: ", "%8dns",
266 1000000 * active[i] / via_clock);
267 via_print_drive("Data Recovery: ", "%8dns",
268 1000000 * recover[i] / via_clock);
269 via_print_drive("Cycle Time: ", "%8dns",
270 cycle[i]);
271 via_print_drive("Transfer Rate: ", "%4d.%dMB/s",
272 speed[i] / 1000, speed[i] / 100 % 10);
273
274 /* hoping it is less than 4K... */
275 len = (p - buffer) - offset;
276 *addr = buffer + offset;
277
278 return len > count ? count : len;
279}
280
281#endif /* DISPLAY_VIA_TIMINGS && CONFIG_PROC_FS */
282 111
283/** 112/**
284 * via_set_speed - write timing registers 113 * via_set_speed - write timing registers
@@ -289,11 +118,13 @@ static int via_get_info(char *buffer, char **addr, off_t offset, int count)
289 * via_set_speed writes timing values to the chipset registers 118 * via_set_speed writes timing values to the chipset registers
290 */ 119 */
291 120
292static void via_set_speed(struct pci_dev *dev, u8 dn, struct ide_timing *timing) 121static void via_set_speed(ide_hwif_t *hwif, u8 dn, struct ide_timing *timing)
293{ 122{
123 struct pci_dev *dev = hwif->pci_dev;
124 struct via82cxxx_dev *vdev = ide_get_hwifdata(hwif);
294 u8 t; 125 u8 t;
295 126
296 if (~via_config->flags & VIA_BAD_AST) { 127 if (~vdev->via_config->flags & VIA_BAD_AST) {
297 pci_read_config_byte(dev, VIA_ADDRESS_SETUP, &t); 128 pci_read_config_byte(dev, VIA_ADDRESS_SETUP, &t);
298 t = (t & ~(3 << ((3 - dn) << 1))) | ((FIT(timing->setup, 1, 4) - 1) << ((3 - dn) << 1)); 129 t = (t & ~(3 << ((3 - dn) << 1))) | ((FIT(timing->setup, 1, 4) - 1) << ((3 - dn) << 1));
299 pci_write_config_byte(dev, VIA_ADDRESS_SETUP, t); 130 pci_write_config_byte(dev, VIA_ADDRESS_SETUP, t);
@@ -305,7 +136,7 @@ static void via_set_speed(struct pci_dev *dev, u8 dn, struct ide_timing *timing)
305 pci_write_config_byte(dev, VIA_DRIVE_TIMING + (3 - dn), 136 pci_write_config_byte(dev, VIA_DRIVE_TIMING + (3 - dn),
306 ((FIT(timing->active, 1, 16) - 1) << 4) | (FIT(timing->recover, 1, 16) - 1)); 137 ((FIT(timing->active, 1, 16) - 1) << 4) | (FIT(timing->recover, 1, 16) - 1));
307 138
308 switch (via_config->flags & VIA_UDMA) { 139 switch (vdev->via_config->flags & VIA_UDMA) {
309 case VIA_UDMA_33: t = timing->udma ? (0xe0 | (FIT(timing->udma, 2, 5) - 2)) : 0x03; break; 140 case VIA_UDMA_33: t = timing->udma ? (0xe0 | (FIT(timing->udma, 2, 5) - 2)) : 0x03; break;
310 case VIA_UDMA_66: t = timing->udma ? (0xe8 | (FIT(timing->udma, 2, 9) - 2)) : 0x0f; break; 141 case VIA_UDMA_66: t = timing->udma ? (0xe8 | (FIT(timing->udma, 2, 9) - 2)) : 0x0f; break;
311 case VIA_UDMA_100: t = timing->udma ? (0xe0 | (FIT(timing->udma, 2, 9) - 2)) : 0x07; break; 142 case VIA_UDMA_100: t = timing->udma ? (0xe0 | (FIT(timing->udma, 2, 9) - 2)) : 0x07; break;
@@ -329,6 +160,7 @@ static void via_set_speed(struct pci_dev *dev, u8 dn, struct ide_timing *timing)
329static int via_set_drive(ide_drive_t *drive, u8 speed) 160static int via_set_drive(ide_drive_t *drive, u8 speed)
330{ 161{
331 ide_drive_t *peer = HWIF(drive)->drives + (~drive->dn & 1); 162 ide_drive_t *peer = HWIF(drive)->drives + (~drive->dn & 1);
163 struct via82cxxx_dev *vdev = ide_get_hwifdata(drive->hwif);
332 struct ide_timing t, p; 164 struct ide_timing t, p;
333 unsigned int T, UT; 165 unsigned int T, UT;
334 166
@@ -337,7 +169,7 @@ static int via_set_drive(ide_drive_t *drive, u8 speed)
337 169
338 T = 1000000000 / via_clock; 170 T = 1000000000 / via_clock;
339 171
340 switch (via_config->flags & VIA_UDMA) { 172 switch (vdev->via_config->flags & VIA_UDMA) {
341 case VIA_UDMA_33: UT = T; break; 173 case VIA_UDMA_33: UT = T; break;
342 case VIA_UDMA_66: UT = T/2; break; 174 case VIA_UDMA_66: UT = T/2; break;
343 case VIA_UDMA_100: UT = T/3; break; 175 case VIA_UDMA_100: UT = T/3; break;
@@ -352,7 +184,7 @@ static int via_set_drive(ide_drive_t *drive, u8 speed)
352 ide_timing_merge(&p, &t, &t, IDE_TIMING_8BIT); 184 ide_timing_merge(&p, &t, &t, IDE_TIMING_8BIT);
353 } 185 }
354 186
355 via_set_speed(HWIF(drive)->pci_dev, drive->dn, &t); 187 via_set_speed(HWIF(drive), drive->dn, &t);
356 188
357 if (!drive->init_speed) 189 if (!drive->init_speed)
358 drive->init_speed = speed; 190 drive->init_speed = speed;
@@ -390,20 +222,41 @@ static void via82cxxx_tune_drive(ide_drive_t *drive, u8 pio)
390 222
391static int via82cxxx_ide_dma_check (ide_drive_t *drive) 223static int via82cxxx_ide_dma_check (ide_drive_t *drive)
392{ 224{
393 u16 w80 = HWIF(drive)->udma_four; 225 ide_hwif_t *hwif = HWIF(drive);
226 struct via82cxxx_dev *vdev = ide_get_hwifdata(hwif);
227 u16 w80 = hwif->udma_four;
394 228
395 u16 speed = ide_find_best_mode(drive, 229 u16 speed = ide_find_best_mode(drive,
396 XFER_PIO | XFER_EPIO | XFER_SWDMA | XFER_MWDMA | 230 XFER_PIO | XFER_EPIO | XFER_SWDMA | XFER_MWDMA |
397 (via_config->flags & VIA_UDMA ? XFER_UDMA : 0) | 231 (vdev->via_config->flags & VIA_UDMA ? XFER_UDMA : 0) |
398 (w80 && (via_config->flags & VIA_UDMA) >= VIA_UDMA_66 ? XFER_UDMA_66 : 0) | 232 (w80 && (vdev->via_config->flags & VIA_UDMA) >= VIA_UDMA_66 ? XFER_UDMA_66 : 0) |
399 (w80 && (via_config->flags & VIA_UDMA) >= VIA_UDMA_100 ? XFER_UDMA_100 : 0) | 233 (w80 && (vdev->via_config->flags & VIA_UDMA) >= VIA_UDMA_100 ? XFER_UDMA_100 : 0) |
400 (w80 && (via_config->flags & VIA_UDMA) >= VIA_UDMA_133 ? XFER_UDMA_133 : 0)); 234 (w80 && (vdev->via_config->flags & VIA_UDMA) >= VIA_UDMA_133 ? XFER_UDMA_133 : 0));
401 235
402 via_set_drive(drive, speed); 236 via_set_drive(drive, speed);
403 237
404 if (drive->autodma && (speed & XFER_MODE) != XFER_PIO) 238 if (drive->autodma && (speed & XFER_MODE) != XFER_PIO)
405 return HWIF(drive)->ide_dma_on(drive); 239 return hwif->ide_dma_on(drive);
406 return HWIF(drive)->ide_dma_off_quietly(drive); 240 return hwif->ide_dma_off_quietly(drive);
241}
242
243static struct via_isa_bridge *via_config_find(struct pci_dev **isa)
244{
245 struct via_isa_bridge *via_config;
246 u8 t;
247
248 for (via_config = via_isa_bridges; via_config->id; via_config++)
249 if ((*isa = pci_find_device(PCI_VENDOR_ID_VIA +
250 !!(via_config->flags & VIA_BAD_ID),
251 via_config->id, NULL))) {
252
253 pci_read_config_byte(*isa, PCI_REVISION_ID, &t);
254 if (t >= via_config->rev_min &&
255 t <= via_config->rev_max)
256 break;
257 }
258
259 return via_config;
407} 260}
408 261
409/** 262/**
@@ -418,82 +271,28 @@ static int via82cxxx_ide_dma_check (ide_drive_t *drive)
418static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const char *name) 271static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const char *name)
419{ 272{
420 struct pci_dev *isa = NULL; 273 struct pci_dev *isa = NULL;
274 struct via_isa_bridge *via_config;
421 u8 t, v; 275 u8 t, v;
422 unsigned int u; 276 unsigned int u;
423 int i;
424 277
425 /* 278 /*
426 * Find the ISA bridge to see how good the IDE is. 279 * Find the ISA bridge to see how good the IDE is.
427 */ 280 */
428 281 via_config = via_config_find(&isa);
429 for (via_config = via_isa_bridges; via_config->id; via_config++)
430 if ((isa = pci_find_device(PCI_VENDOR_ID_VIA +
431 !!(via_config->flags & VIA_BAD_ID),
432 via_config->id, NULL))) {
433
434 pci_read_config_byte(isa, PCI_REVISION_ID, &t);
435 if (t >= via_config->rev_min &&
436 t <= via_config->rev_max)
437 break;
438 }
439
440 if (!via_config->id) { 282 if (!via_config->id) {
441 printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, disabling DMA.\n"); 283 printk(KERN_WARNING "VP_IDE: Unknown VIA SouthBridge, disabling DMA.\n");
442 return -ENODEV; 284 return -ENODEV;
443 } 285 }
444 286
445 /* 287 /*
446 * Check 80-wire cable presence and setup Clk66. 288 * Setup or disable Clk66 if appropriate
447 */ 289 */
448 290
449 switch (via_config->flags & VIA_UDMA) { 291 if ((via_config->flags & VIA_UDMA) == VIA_UDMA_66) {
450 292 /* Enable Clk66 */
451 case VIA_UDMA_66: 293 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
452 /* Enable Clk66 */ 294 pci_write_config_dword(dev, VIA_UDMA_TIMING, u|0x80008);
453 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u); 295 } else if (via_config->flags & VIA_BAD_CLK66) {
454 pci_write_config_dword(dev, VIA_UDMA_TIMING, u|0x80008);
455 for (i = 24; i >= 0; i -= 8)
456 if (((u >> (i & 16)) & 8) &&
457 ((u >> i) & 0x20) &&
458 (((u >> i) & 7) < 2)) {
459 /*
460 * 2x PCI clock and
461 * UDMA w/ < 3T/cycle
462 */
463 via_80w |= (1 << (1 - (i >> 4)));
464 }
465 break;
466
467 case VIA_UDMA_100:
468 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
469 for (i = 24; i >= 0; i -= 8)
470 if (((u >> i) & 0x10) ||
471 (((u >> i) & 0x20) &&
472 (((u >> i) & 7) < 4))) {
473 /* BIOS 80-wire bit or
474 * UDMA w/ < 60ns/cycle
475 */
476 via_80w |= (1 << (1 - (i >> 4)));
477 }
478 break;
479
480 case VIA_UDMA_133:
481 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
482 for (i = 24; i >= 0; i -= 8)
483 if (((u >> i) & 0x10) ||
484 (((u >> i) & 0x20) &&
485 (((u >> i) & 7) < 6))) {
486 /* BIOS 80-wire bit or
487 * UDMA w/ < 60ns/cycle
488 */
489 via_80w |= (1 << (1 - (i >> 4)));
490 }
491 break;
492
493 }
494
495 /* Disable Clk66 */
496 if (via_config->flags & VIA_BAD_CLK66) {
497 /* Would cause trouble on 596a and 686 */ 296 /* Would cause trouble on 596a and 686 */
498 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u); 297 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
499 pci_write_config_dword(dev, VIA_UDMA_TIMING, u & ~0x80008); 298 pci_write_config_dword(dev, VIA_UDMA_TIMING, u & ~0x80008);
@@ -560,26 +359,78 @@ static unsigned int __devinit init_chipset_via82cxxx(struct pci_dev *dev, const
560 via_dma[via_config->flags & VIA_UDMA], 359 via_dma[via_config->flags & VIA_UDMA],
561 pci_name(dev)); 360 pci_name(dev));
562 361
563 /* 362 return 0;
564 * Setup /proc/ide/via entry. 363}
565 */ 364
365/*
366 * Check and handle 80-wire cable presence
367 */
368static void __devinit via_cable_detect(struct pci_dev *dev, struct via82cxxx_dev *vdev)
369{
370 unsigned int u;
371 int i;
372 pci_read_config_dword(dev, VIA_UDMA_TIMING, &u);
373
374 switch (vdev->via_config->flags & VIA_UDMA) {
375
376 case VIA_UDMA_66:
377 for (i = 24; i >= 0; i -= 8)
378 if (((u >> (i & 16)) & 8) &&
379 ((u >> i) & 0x20) &&
380 (((u >> i) & 7) < 2)) {
381 /*
382 * 2x PCI clock and
383 * UDMA w/ < 3T/cycle
384 */
385 vdev->via_80w |= (1 << (1 - (i >> 4)));
386 }
387 break;
388
389 case VIA_UDMA_100:
390 for (i = 24; i >= 0; i -= 8)
391 if (((u >> i) & 0x10) ||
392 (((u >> i) & 0x20) &&
393 (((u >> i) & 7) < 4))) {
394 /* BIOS 80-wire bit or
395 * UDMA w/ < 60ns/cycle
396 */
397 vdev->via_80w |= (1 << (1 - (i >> 4)));
398 }
399 break;
400
401 case VIA_UDMA_133:
402 for (i = 24; i >= 0; i -= 8)
403 if (((u >> i) & 0x10) ||
404 (((u >> i) & 0x20) &&
405 (((u >> i) & 7) < 6))) {
406 /* BIOS 80-wire bit or
407 * UDMA w/ < 60ns/cycle
408 */
409 vdev->via_80w |= (1 << (1 - (i >> 4)));
410 }
411 break;
566 412
567#if defined(DISPLAY_VIA_TIMINGS) && defined(CONFIG_PROC_FS)
568 if (!via_proc) {
569 via_base = pci_resource_start(dev, 4);
570 bmide_dev = dev;
571 isa_dev = isa;
572 ide_pci_create_host_proc("via", via_get_info);
573 via_proc = 1;
574 } 413 }
575#endif /* DISPLAY_VIA_TIMINGS && CONFIG_PROC_FS */
576 return 0;
577} 414}
578 415
579static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif) 416static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
580{ 417{
418 struct via82cxxx_dev *vdev = kmalloc(sizeof(struct via82cxxx_dev),
419 GFP_KERNEL);
420 struct pci_dev *isa = NULL;
581 int i; 421 int i;
582 422
423 if (vdev == NULL) {
424 printk(KERN_ERR "VP_IDE: out of memory :(\n");
425 return;
426 }
427
428 memset(vdev, 0, sizeof(struct via82cxxx_dev));
429 ide_set_hwifdata(hwif, vdev);
430
431 vdev->via_config = via_config_find(&isa);
432 via_cable_detect(hwif->pci_dev, vdev);
433
583 hwif->autodma = 0; 434 hwif->autodma = 0;
584 435
585 hwif->tuneproc = &via82cxxx_tune_drive; 436 hwif->tuneproc = &via82cxxx_tune_drive;
@@ -594,7 +445,7 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
594 445
595 for (i = 0; i < 2; i++) { 446 for (i = 0; i < 2; i++) {
596 hwif->drives[i].io_32bit = 1; 447 hwif->drives[i].io_32bit = 1;
597 hwif->drives[i].unmask = (via_config->flags & VIA_NO_UNMASK) ? 0 : 1; 448 hwif->drives[i].unmask = (vdev->via_config->flags & VIA_NO_UNMASK) ? 0 : 1;
598 hwif->drives[i].autotune = 1; 449 hwif->drives[i].autotune = 1;
599 hwif->drives[i].dn = hwif->channel * 2 + i; 450 hwif->drives[i].dn = hwif->channel * 2 + i;
600 } 451 }
@@ -608,7 +459,7 @@ static void __devinit init_hwif_via82cxxx(ide_hwif_t *hwif)
608 hwif->swdma_mask = 0x07; 459 hwif->swdma_mask = 0x07;
609 460
610 if (!hwif->udma_four) 461 if (!hwif->udma_four)
611 hwif->udma_four = (via_80w >> hwif->channel) & 1; 462 hwif->udma_four = (vdev->via_80w >> hwif->channel) & 1;
612 hwif->ide_dma_check = &via82cxxx_ide_dma_check; 463 hwif->ide_dma_check = &via82cxxx_ide_dma_check;
613 if (!noautodma) 464 if (!noautodma)
614 hwif->autodma = 1; 465 hwif->autodma = 1;
diff --git a/drivers/ide/ppc/pmac.c b/drivers/ide/ppc/pmac.c
index 136911a86e84..16b28357885b 100644
--- a/drivers/ide/ppc/pmac.c
+++ b/drivers/ide/ppc/pmac.c
@@ -1401,20 +1401,6 @@ pmac_ide_setup_device(pmac_ide_hwif_t *pmif, ide_hwif_t *hwif)
1401 /* We probe the hwif now */ 1401 /* We probe the hwif now */
1402 probe_hwif_init(hwif); 1402 probe_hwif_init(hwif);
1403 1403
1404 /* The code IDE code will have set hwif->present if we have devices attached,
1405 * if we don't, the discard the interface except if we are on a media bay slot
1406 */
1407 if (!hwif->present && !pmif->mediabay) {
1408 printk(KERN_INFO "ide%d: Bus empty, interface released.\n",
1409 hwif->index);
1410 default_hwif_iops(hwif);
1411 for (i = IDE_DATA_OFFSET; i <= IDE_CONTROL_OFFSET; ++i)
1412 hwif->io_ports[i] = 0;
1413 hwif->chipset = ide_unknown;
1414 hwif->noprobe = 1;
1415 return -ENODEV;
1416 }
1417
1418 return 0; 1404 return 0;
1419} 1405}
1420 1406
diff --git a/drivers/ide/setup-pci.c b/drivers/ide/setup-pci.c
index d4f2111d4364..7ebf992e8c2f 100644
--- a/drivers/ide/setup-pci.c
+++ b/drivers/ide/setup-pci.c
@@ -787,7 +787,7 @@ static int pre_init = 1; /* Before first ordered IDE scan */
787static LIST_HEAD(ide_pci_drivers); 787static LIST_HEAD(ide_pci_drivers);
788 788
789/* 789/*
790 * __ide_register_pci_driver - attach IDE driver 790 * __ide_pci_register_driver - attach IDE driver
791 * @driver: pci driver 791 * @driver: pci driver
792 * @module: owner module of the driver 792 * @module: owner module of the driver
793 * 793 *
diff --git a/drivers/infiniband/core/user_mad.c b/drivers/infiniband/core/user_mad.c
index 5ea741f47fc8..e73f81c22381 100644
--- a/drivers/infiniband/core/user_mad.c
+++ b/drivers/infiniband/core/user_mad.c
@@ -312,7 +312,7 @@ static ssize_t ib_umad_write(struct file *filp, const char __user *buf,
312 int ret, length, hdr_len, copy_offset; 312 int ret, length, hdr_len, copy_offset;
313 int rmpp_active = 0; 313 int rmpp_active = 0;
314 314
315 if (count < sizeof (struct ib_user_mad)) 315 if (count < sizeof (struct ib_user_mad) + IB_MGMT_RMPP_HDR)
316 return -EINVAL; 316 return -EINVAL;
317 317
318 length = count - sizeof (struct ib_user_mad); 318 length = count - sizeof (struct ib_user_mad);
diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index 760c418d5bc9..dd4e13303e96 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -730,15 +730,16 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
730 } 730 }
731 731
732 if (attr_mask & IB_QP_ACCESS_FLAGS) { 732 if (attr_mask & IB_QP_ACCESS_FLAGS) {
733 qp_context->params2 |=
734 cpu_to_be32(attr->qp_access_flags & IB_ACCESS_REMOTE_WRITE ?
735 MTHCA_QP_BIT_RWE : 0);
736
733 /* 737 /*
734 * Only enable RDMA/atomics if we have responder 738 * Only enable RDMA reads and atomics if we have
735 * resources set to a non-zero value. 739 * responder resources set to a non-zero value.
736 */ 740 */
737 if (qp->resp_depth) { 741 if (qp->resp_depth) {
738 qp_context->params2 |= 742 qp_context->params2 |=
739 cpu_to_be32(attr->qp_access_flags & IB_ACCESS_REMOTE_WRITE ?
740 MTHCA_QP_BIT_RWE : 0);
741 qp_context->params2 |=
742 cpu_to_be32(attr->qp_access_flags & IB_ACCESS_REMOTE_READ ? 743 cpu_to_be32(attr->qp_access_flags & IB_ACCESS_REMOTE_READ ?
743 MTHCA_QP_BIT_RRE : 0); 744 MTHCA_QP_BIT_RRE : 0);
744 qp_context->params2 |= 745 qp_context->params2 |=
@@ -759,31 +760,27 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
759 if (qp->resp_depth && !attr->max_dest_rd_atomic) { 760 if (qp->resp_depth && !attr->max_dest_rd_atomic) {
760 /* 761 /*
761 * Lowering our responder resources to zero. 762 * Lowering our responder resources to zero.
762 * Turn off RDMA/atomics as responder. 763 * Turn off reads RDMA and atomics as responder.
763 * (RWE/RRE/RAE in params2 already zero) 764 * (RRE/RAE in params2 already zero)
764 */ 765 */
765 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_RWE | 766 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_RRE |
766 MTHCA_QP_OPTPAR_RRE |
767 MTHCA_QP_OPTPAR_RAE); 767 MTHCA_QP_OPTPAR_RAE);
768 } 768 }
769 769
770 if (!qp->resp_depth && attr->max_dest_rd_atomic) { 770 if (!qp->resp_depth && attr->max_dest_rd_atomic) {
771 /* 771 /*
772 * Increasing our responder resources from 772 * Increasing our responder resources from
773 * zero. Turn on RDMA/atomics as appropriate. 773 * zero. Turn on RDMA reads and atomics as
774 * appropriate.
774 */ 775 */
775 qp_context->params2 |= 776 qp_context->params2 |=
776 cpu_to_be32(qp->atomic_rd_en & IB_ACCESS_REMOTE_WRITE ?
777 MTHCA_QP_BIT_RWE : 0);
778 qp_context->params2 |=
779 cpu_to_be32(qp->atomic_rd_en & IB_ACCESS_REMOTE_READ ? 777 cpu_to_be32(qp->atomic_rd_en & IB_ACCESS_REMOTE_READ ?
780 MTHCA_QP_BIT_RRE : 0); 778 MTHCA_QP_BIT_RRE : 0);
781 qp_context->params2 |= 779 qp_context->params2 |=
782 cpu_to_be32(qp->atomic_rd_en & IB_ACCESS_REMOTE_ATOMIC ? 780 cpu_to_be32(qp->atomic_rd_en & IB_ACCESS_REMOTE_ATOMIC ?
783 MTHCA_QP_BIT_RAE : 0); 781 MTHCA_QP_BIT_RAE : 0);
784 782
785 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_RWE | 783 qp_param->opt_param_mask |= cpu_to_be32(MTHCA_QP_OPTPAR_RRE |
786 MTHCA_QP_OPTPAR_RRE |
787 MTHCA_QP_OPTPAR_RAE); 784 MTHCA_QP_OPTPAR_RAE);
788 } 785 }
789 786
@@ -921,10 +918,12 @@ static void mthca_adjust_qp_caps(struct mthca_dev *dev,
921 else 918 else
922 qp->max_inline_data = max_data_size - MTHCA_INLINE_HEADER_SIZE; 919 qp->max_inline_data = max_data_size - MTHCA_INLINE_HEADER_SIZE;
923 920
924 qp->sq.max_gs = max_data_size / sizeof (struct mthca_data_seg); 921 qp->sq.max_gs = min_t(int, dev->limits.max_sg,
925 qp->rq.max_gs = (min(dev->limits.max_desc_sz, 1 << qp->rq.wqe_shift) - 922 max_data_size / sizeof (struct mthca_data_seg));
926 sizeof (struct mthca_next_seg)) / 923 qp->rq.max_gs = min_t(int, dev->limits.max_sg,
927 sizeof (struct mthca_data_seg); 924 (min(dev->limits.max_desc_sz, 1 << qp->rq.wqe_shift) -
925 sizeof (struct mthca_next_seg)) /
926 sizeof (struct mthca_data_seg));
928} 927}
929 928
930/* 929/*
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 321a3a10e69b..ee9fe226ae99 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -802,13 +802,21 @@ static int srp_post_recv(struct srp_target_port *target)
802 802
803/* 803/*
804 * Must be called with target->scsi_host->host_lock held to protect 804 * Must be called with target->scsi_host->host_lock held to protect
805 * req_lim and tx_head. 805 * req_lim and tx_head. Lock cannot be dropped between call here and
806 * call to __srp_post_send().
806 */ 807 */
807static struct srp_iu *__srp_get_tx_iu(struct srp_target_port *target) 808static struct srp_iu *__srp_get_tx_iu(struct srp_target_port *target)
808{ 809{
809 if (target->tx_head - target->tx_tail >= SRP_SQ_SIZE) 810 if (target->tx_head - target->tx_tail >= SRP_SQ_SIZE)
810 return NULL; 811 return NULL;
811 812
813 if (unlikely(target->req_lim < 1)) {
814 if (printk_ratelimit())
815 printk(KERN_DEBUG PFX "Target has req_lim %d\n",
816 target->req_lim);
817 return NULL;
818 }
819
812 return target->tx_ring[target->tx_head & SRP_SQ_SIZE]; 820 return target->tx_ring[target->tx_head & SRP_SQ_SIZE];
813} 821}
814 822
@@ -823,11 +831,6 @@ static int __srp_post_send(struct srp_target_port *target,
823 struct ib_send_wr wr, *bad_wr; 831 struct ib_send_wr wr, *bad_wr;
824 int ret = 0; 832 int ret = 0;
825 833
826 if (target->req_lim < 1) {
827 printk(KERN_ERR PFX "Target has req_lim %d\n", target->req_lim);
828 return -EAGAIN;
829 }
830
831 list.addr = iu->dma; 834 list.addr = iu->dma;
832 list.length = len; 835 list.length = len;
833 list.lkey = target->srp_host->mr->lkey; 836 list.lkey = target->srp_host->mr->lkey;
@@ -1417,6 +1420,8 @@ static ssize_t srp_create_target(struct class_device *class_dev,
1417 if (!target_host) 1420 if (!target_host)
1418 return -ENOMEM; 1421 return -ENOMEM;
1419 1422
1423 target_host->max_lun = SRP_MAX_LUN;
1424
1420 target = host_to_target(target_host); 1425 target = host_to_target(target_host);
1421 memset(target, 0, sizeof *target); 1426 memset(target, 0, sizeof *target);
1422 1427
diff --git a/drivers/infiniband/ulp/srp/ib_srp.h b/drivers/infiniband/ulp/srp/ib_srp.h
index 4fec28a71367..b564f18caf78 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.h
+++ b/drivers/infiniband/ulp/srp/ib_srp.h
@@ -54,6 +54,7 @@ enum {
54 SRP_PORT_REDIRECT = 1, 54 SRP_PORT_REDIRECT = 1,
55 SRP_DLID_REDIRECT = 2, 55 SRP_DLID_REDIRECT = 2,
56 56
57 SRP_MAX_LUN = 512,
57 SRP_MAX_IU_LEN = 256, 58 SRP_MAX_IU_LEN = 256,
58 59
59 SRP_RQ_SHIFT = 6, 60 SRP_RQ_SHIFT = 6,
diff --git a/drivers/isdn/hisax/Kconfig b/drivers/isdn/hisax/Kconfig
index 801c98f30e5c..c82105920d71 100644
--- a/drivers/isdn/hisax/Kconfig
+++ b/drivers/isdn/hisax/Kconfig
@@ -110,7 +110,7 @@ config HISAX_16_3
110 110
111config HISAX_TELESPCI 111config HISAX_TELESPCI
112 bool "Teles PCI" 112 bool "Teles PCI"
113 depends on PCI && (BROKEN || !(SPARC64 || PPC)) 113 depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
114 help 114 help
115 This enables HiSax support for the Teles PCI. 115 This enables HiSax support for the Teles PCI.
116 See <file:Documentation/isdn/README.HiSax> on how to configure it. 116 See <file:Documentation/isdn/README.HiSax> on how to configure it.
@@ -238,7 +238,7 @@ config HISAX_MIC
238 238
239config HISAX_NETJET 239config HISAX_NETJET
240 bool "NETjet card" 240 bool "NETjet card"
241 depends on PCI && (BROKEN || !(SPARC64 || PPC)) 241 depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
242 help 242 help
243 This enables HiSax support for the NetJet from Traverse 243 This enables HiSax support for the NetJet from Traverse
244 Technologies. 244 Technologies.
@@ -249,7 +249,7 @@ config HISAX_NETJET
249 249
250config HISAX_NETJET_U 250config HISAX_NETJET_U
251 bool "NETspider U card" 251 bool "NETspider U card"
252 depends on PCI && (BROKEN || !(SPARC64 || PPC)) 252 depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
253 help 253 help
254 This enables HiSax support for the Netspider U interface ISDN card 254 This enables HiSax support for the Netspider U interface ISDN card
255 from Traverse Technologies. 255 from Traverse Technologies.
@@ -317,7 +317,7 @@ config HISAX_GAZEL
317 317
318config HISAX_HFC_PCI 318config HISAX_HFC_PCI
319 bool "HFC PCI-Bus cards" 319 bool "HFC PCI-Bus cards"
320 depends on PCI && (BROKEN || !(SPARC64 || PPC)) 320 depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
321 help 321 help
322 This enables HiSax support for the HFC-S PCI 2BDS0 based cards. 322 This enables HiSax support for the HFC-S PCI 2BDS0 based cards.
323 323
@@ -344,14 +344,14 @@ config HISAX_HFC_SX
344 344
345config HISAX_ENTERNOW_PCI 345config HISAX_ENTERNOW_PCI
346 bool "Formula-n enter:now PCI card" 346 bool "Formula-n enter:now PCI card"
347 depends on PCI && (BROKEN || !(SPARC64 || PPC)) 347 depends on PCI && (BROKEN || !(SPARC || PPC || PARISC || M68K))
348 help 348 help
349 This enables HiSax support for the Formula-n enter:now PCI 349 This enables HiSax support for the Formula-n enter:now PCI
350 ISDN card. 350 ISDN card.
351 351
352config HISAX_AMD7930 352config HISAX_AMD7930
353 bool "Am7930 (EXPERIMENTAL)" 353 bool "Am7930 (EXPERIMENTAL)"
354 depends on EXPERIMENTAL && (SPARC32 || SPARC64) 354 depends on EXPERIMENTAL && SPARC
355 help 355 help
356 This enables HiSax support for the AMD7930 chips on some SPARCs. 356 This enables HiSax support for the AMD7930 chips on some SPARCs.
357 This code is not finished yet. 357 This code is not finished yet.
diff --git a/drivers/isdn/pcbit/Kconfig b/drivers/isdn/pcbit/Kconfig
index f06997faef16..0933881ab0c2 100644
--- a/drivers/isdn/pcbit/Kconfig
+++ b/drivers/isdn/pcbit/Kconfig
@@ -3,7 +3,7 @@
3# 3#
4config ISDN_DRV_PCBIT 4config ISDN_DRV_PCBIT
5 tristate "PCBIT-D support" 5 tristate "PCBIT-D support"
6 depends on ISDN_I4L && ISA && (BROKEN || !PPC) 6 depends on ISDN_I4L && ISA && (BROKEN || X86)
7 help 7 help
8 This enables support for the PCBIT ISDN-card. This card is 8 This enables support for the PCBIT ISDN-card. This card is
9 manufactured in Portugal by Octal. For running this card, 9 manufactured in Portugal by Octal. For running this card,
diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
index 51315302a85e..252d55df9642 100644
--- a/drivers/md/bitmap.c
+++ b/drivers/md/bitmap.c
@@ -326,9 +326,9 @@ static int write_page(struct bitmap *bitmap, struct page *page, int wait)
326 } 326 }
327 } 327 }
328 328
329 ret = page->mapping->a_ops->prepare_write(NULL, page, 0, PAGE_SIZE); 329 ret = page->mapping->a_ops->prepare_write(bitmap->file, page, 0, PAGE_SIZE);
330 if (!ret) 330 if (!ret)
331 ret = page->mapping->a_ops->commit_write(NULL, page, 0, 331 ret = page->mapping->a_ops->commit_write(bitmap->file, page, 0,
332 PAGE_SIZE); 332 PAGE_SIZE);
333 if (ret) { 333 if (ret) {
334 unlock_page(page); 334 unlock_page(page);
diff --git a/drivers/md/md.c b/drivers/md/md.c
index f3fed662f32e..78c7418478d6 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -3846,11 +3846,20 @@ static int is_mddev_idle(mddev_t *mddev)
3846 curr_events = disk_stat_read(disk, sectors[0]) + 3846 curr_events = disk_stat_read(disk, sectors[0]) +
3847 disk_stat_read(disk, sectors[1]) - 3847 disk_stat_read(disk, sectors[1]) -
3848 atomic_read(&disk->sync_io); 3848 atomic_read(&disk->sync_io);
3849 /* Allow some slack between valud of curr_events and last_events, 3849 /* The difference between curr_events and last_events
3850 * as there are some uninteresting races. 3850 * will be affected by any new non-sync IO (making
3851 * curr_events bigger) and any difference in the amount of
3852 * in-flight syncio (making current_events bigger or smaller)
3853 * The amount in-flight is currently limited to
3854 * 32*64K in raid1/10 and 256*PAGE_SIZE in raid5/6
3855 * which is at most 4096 sectors.
3856 * These numbers are fairly fragile and should be made
3857 * more robust, probably by enforcing the
3858 * 'window size' that md_do_sync sort-of uses.
3859 *
3851 * Note: the following is an unsigned comparison. 3860 * Note: the following is an unsigned comparison.
3852 */ 3861 */
3853 if ((curr_events - rdev->last_events + 32) > 64) { 3862 if ((curr_events - rdev->last_events + 4096) > 8192) {
3854 rdev->last_events = curr_events; 3863 rdev->last_events = curr_events;
3855 idle = 0; 3864 idle = 0;
3856 } 3865 }
@@ -4109,7 +4118,7 @@ static void md_do_sync(mddev_t *mddev)
4109 if (currspeed > sysctl_speed_limit_min) { 4118 if (currspeed > sysctl_speed_limit_min) {
4110 if ((currspeed > sysctl_speed_limit_max) || 4119 if ((currspeed > sysctl_speed_limit_max) ||
4111 !is_mddev_idle(mddev)) { 4120 !is_mddev_idle(mddev)) {
4112 msleep(250); 4121 msleep(500);
4113 goto repeat; 4122 goto repeat;
4114 } 4123 }
4115 } 4124 }
diff --git a/drivers/net/au1000_eth.c b/drivers/net/au1000_eth.c
index 332e9953c55c..cd0b1dccfb61 100644
--- a/drivers/net/au1000_eth.c
+++ b/drivers/net/au1000_eth.c
@@ -32,6 +32,7 @@
32 * 32 *
33 */ 33 */
34 34
35#include <linux/config.h>
35#include <linux/module.h> 36#include <linux/module.h>
36#include <linux/kernel.h> 37#include <linux/kernel.h>
37#include <linux/sched.h> 38#include <linux/sched.h>
diff --git a/drivers/net/e100.c b/drivers/net/e100.c
index 7a6aeae2c9fa..22cd04556707 100644
--- a/drivers/net/e100.c
+++ b/drivers/net/e100.c
@@ -156,7 +156,7 @@
156 156
157#define DRV_NAME "e100" 157#define DRV_NAME "e100"
158#define DRV_EXT "-NAPI" 158#define DRV_EXT "-NAPI"
159#define DRV_VERSION "3.4.14-k2"DRV_EXT 159#define DRV_VERSION "3.4.14-k4"DRV_EXT
160#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver" 160#define DRV_DESCRIPTION "Intel(R) PRO/100 Network Driver"
161#define DRV_COPYRIGHT "Copyright(c) 1999-2005 Intel Corporation" 161#define DRV_COPYRIGHT "Copyright(c) 1999-2005 Intel Corporation"
162#define PFX DRV_NAME ": " 162#define PFX DRV_NAME ": "
@@ -903,8 +903,8 @@ static void mdio_write(struct net_device *netdev, int addr, int reg, int data)
903 903
904static void e100_get_defaults(struct nic *nic) 904static void e100_get_defaults(struct nic *nic)
905{ 905{
906 struct param_range rfds = { .min = 16, .max = 256, .count = 64 }; 906 struct param_range rfds = { .min = 16, .max = 256, .count = 256 };
907 struct param_range cbs = { .min = 64, .max = 256, .count = 64 }; 907 struct param_range cbs = { .min = 64, .max = 256, .count = 128 };
908 908
909 pci_read_config_byte(nic->pdev, PCI_REVISION_ID, &nic->rev_id); 909 pci_read_config_byte(nic->pdev, PCI_REVISION_ID, &nic->rev_id);
910 /* MAC type is encoded as rev ID; exception: ICH is treated as 82559 */ 910 /* MAC type is encoded as rev ID; exception: ICH is treated as 82559 */
@@ -1007,25 +1007,264 @@ static void e100_configure(struct nic *nic, struct cb *cb, struct sk_buff *skb)
1007 c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23]); 1007 c[16], c[17], c[18], c[19], c[20], c[21], c[22], c[23]);
1008} 1008}
1009 1009
1010/********************************************************/
1011/* Micro code for 8086:1229 Rev 8 */
1012/********************************************************/
1013
1014/* Parameter values for the D101M B-step */
1015#define D101M_CPUSAVER_TIMER_DWORD 78
1016#define D101M_CPUSAVER_BUNDLE_DWORD 65
1017#define D101M_CPUSAVER_MIN_SIZE_DWORD 126
1018
1019#define D101M_B_RCVBUNDLE_UCODE \
1020{\
10210x00550215, 0xFFFF0437, 0xFFFFFFFF, 0x06A70789, 0xFFFFFFFF, 0x0558FFFF, \
10220x000C0001, 0x00101312, 0x000C0008, 0x00380216, \
10230x0010009C, 0x00204056, 0x002380CC, 0x00380056, \
10240x0010009C, 0x00244C0B, 0x00000800, 0x00124818, \
10250x00380438, 0x00000000, 0x00140000, 0x00380555, \
10260x00308000, 0x00100662, 0x00100561, 0x000E0408, \
10270x00134861, 0x000C0002, 0x00103093, 0x00308000, \
10280x00100624, 0x00100561, 0x000E0408, 0x00100861, \
10290x000C007E, 0x00222C21, 0x000C0002, 0x00103093, \
10300x00380C7A, 0x00080000, 0x00103090, 0x00380C7A, \
10310x00000000, 0x00000000, 0x00000000, 0x00000000, \
10320x0010009C, 0x00244C2D, 0x00010004, 0x00041000, \
10330x003A0437, 0x00044010, 0x0038078A, 0x00000000, \
10340x00100099, 0x00206C7A, 0x0010009C, 0x00244C48, \
10350x00130824, 0x000C0001, 0x00101213, 0x00260C75, \
10360x00041000, 0x00010004, 0x00130826, 0x000C0006, \
10370x002206A8, 0x0013C926, 0x00101313, 0x003806A8, \
10380x00000000, 0x00000000, 0x00000000, 0x00000000, \
10390x00000000, 0x00000000, 0x00000000, 0x00000000, \
10400x00080600, 0x00101B10, 0x00050004, 0x00100826, \
10410x00101210, 0x00380C34, 0x00000000, 0x00000000, \
10420x0021155B, 0x00100099, 0x00206559, 0x0010009C, \
10430x00244559, 0x00130836, 0x000C0000, 0x00220C62, \
10440x000C0001, 0x00101B13, 0x00229C0E, 0x00210C0E, \
10450x00226C0E, 0x00216C0E, 0x0022FC0E, 0x00215C0E, \
10460x00214C0E, 0x00380555, 0x00010004, 0x00041000, \
10470x00278C67, 0x00040800, 0x00018100, 0x003A0437, \
10480x00130826, 0x000C0001, 0x00220559, 0x00101313, \
10490x00380559, 0x00000000, 0x00000000, 0x00000000, \
10500x00000000, 0x00000000, 0x00000000, 0x00000000, \
10510x00000000, 0x00130831, 0x0010090B, 0x00124813, \
10520x000CFF80, 0x002606AB, 0x00041000, 0x00010004, \
10530x003806A8, 0x00000000, 0x00000000, 0x00000000, \
1054}
1055
1056/********************************************************/
1057/* Micro code for 8086:1229 Rev 9 */
1058/********************************************************/
1059
1060/* Parameter values for the D101S */
1061#define D101S_CPUSAVER_TIMER_DWORD 78
1062#define D101S_CPUSAVER_BUNDLE_DWORD 67
1063#define D101S_CPUSAVER_MIN_SIZE_DWORD 128
1064
1065#define D101S_RCVBUNDLE_UCODE \
1066{\
10670x00550242, 0xFFFF047E, 0xFFFFFFFF, 0x06FF0818, 0xFFFFFFFF, 0x05A6FFFF, \
10680x000C0001, 0x00101312, 0x000C0008, 0x00380243, \
10690x0010009C, 0x00204056, 0x002380D0, 0x00380056, \
10700x0010009C, 0x00244F8B, 0x00000800, 0x00124818, \
10710x0038047F, 0x00000000, 0x00140000, 0x003805A3, \
10720x00308000, 0x00100610, 0x00100561, 0x000E0408, \
10730x00134861, 0x000C0002, 0x00103093, 0x00308000, \
10740x00100624, 0x00100561, 0x000E0408, 0x00100861, \
10750x000C007E, 0x00222FA1, 0x000C0002, 0x00103093, \
10760x00380F90, 0x00080000, 0x00103090, 0x00380F90, \
10770x00000000, 0x00000000, 0x00000000, 0x00000000, \
10780x0010009C, 0x00244FAD, 0x00010004, 0x00041000, \
10790x003A047E, 0x00044010, 0x00380819, 0x00000000, \
10800x00100099, 0x00206FFD, 0x0010009A, 0x0020AFFD, \
10810x0010009C, 0x00244FC8, 0x00130824, 0x000C0001, \
10820x00101213, 0x00260FF7, 0x00041000, 0x00010004, \
10830x00130826, 0x000C0006, 0x00220700, 0x0013C926, \
10840x00101313, 0x00380700, 0x00000000, 0x00000000, \
10850x00000000, 0x00000000, 0x00000000, 0x00000000, \
10860x00080600, 0x00101B10, 0x00050004, 0x00100826, \
10870x00101210, 0x00380FB6, 0x00000000, 0x00000000, \
10880x002115A9, 0x00100099, 0x002065A7, 0x0010009A, \
10890x0020A5A7, 0x0010009C, 0x002445A7, 0x00130836, \
10900x000C0000, 0x00220FE4, 0x000C0001, 0x00101B13, \
10910x00229F8E, 0x00210F8E, 0x00226F8E, 0x00216F8E, \
10920x0022FF8E, 0x00215F8E, 0x00214F8E, 0x003805A3, \
10930x00010004, 0x00041000, 0x00278FE9, 0x00040800, \
10940x00018100, 0x003A047E, 0x00130826, 0x000C0001, \
10950x002205A7, 0x00101313, 0x003805A7, 0x00000000, \
10960x00000000, 0x00000000, 0x00000000, 0x00000000, \
10970x00000000, 0x00000000, 0x00000000, 0x00130831, \
10980x0010090B, 0x00124813, 0x000CFF80, 0x00260703, \
10990x00041000, 0x00010004, 0x00380700 \
1100}
1101
1102/********************************************************/
1103/* Micro code for the 8086:1229 Rev F/10 */
1104/********************************************************/
1105
1106/* Parameter values for the D102 E-step */
1107#define D102_E_CPUSAVER_TIMER_DWORD 42
1108#define D102_E_CPUSAVER_BUNDLE_DWORD 54
1109#define D102_E_CPUSAVER_MIN_SIZE_DWORD 46
1110
1111#define D102_E_RCVBUNDLE_UCODE \
1112{\
11130x007D028F, 0x0E4204F9, 0x14ED0C85, 0x14FA14E9, 0x0EF70E36, 0x1FFF1FFF, \
11140x00E014B9, 0x00000000, 0x00000000, 0x00000000, \
11150x00E014BD, 0x00000000, 0x00000000, 0x00000000, \
11160x00E014D5, 0x00000000, 0x00000000, 0x00000000, \
11170x00000000, 0x00000000, 0x00000000, 0x00000000, \
11180x00E014C1, 0x00000000, 0x00000000, 0x00000000, \
11190x00000000, 0x00000000, 0x00000000, 0x00000000, \
11200x00000000, 0x00000000, 0x00000000, 0x00000000, \
11210x00000000, 0x00000000, 0x00000000, 0x00000000, \
11220x00E014C8, 0x00000000, 0x00000000, 0x00000000, \
11230x00200600, 0x00E014EE, 0x00000000, 0x00000000, \
11240x0030FF80, 0x00940E46, 0x00038200, 0x00102000, \
11250x00E00E43, 0x00000000, 0x00000000, 0x00000000, \
11260x00300006, 0x00E014FB, 0x00000000, 0x00000000, \
11270x00000000, 0x00000000, 0x00000000, 0x00000000, \
11280x00000000, 0x00000000, 0x00000000, 0x00000000, \
11290x00000000, 0x00000000, 0x00000000, 0x00000000, \
11300x00906E41, 0x00800E3C, 0x00E00E39, 0x00000000, \
11310x00906EFD, 0x00900EFD, 0x00E00EF8, 0x00000000, \
11320x00000000, 0x00000000, 0x00000000, 0x00000000, \
11330x00000000, 0x00000000, 0x00000000, 0x00000000, \
11340x00000000, 0x00000000, 0x00000000, 0x00000000, \
11350x00000000, 0x00000000, 0x00000000, 0x00000000, \
11360x00000000, 0x00000000, 0x00000000, 0x00000000, \
11370x00000000, 0x00000000, 0x00000000, 0x00000000, \
11380x00000000, 0x00000000, 0x00000000, 0x00000000, \
11390x00000000, 0x00000000, 0x00000000, 0x00000000, \
11400x00000000, 0x00000000, 0x00000000, 0x00000000, \
11410x00000000, 0x00000000, 0x00000000, 0x00000000, \
11420x00000000, 0x00000000, 0x00000000, 0x00000000, \
11430x00000000, 0x00000000, 0x00000000, 0x00000000, \
11440x00000000, 0x00000000, 0x00000000, 0x00000000, \
11450x00000000, 0x00000000, 0x00000000, 0x00000000, \
1146}
1147
1010static void e100_load_ucode(struct nic *nic, struct cb *cb, struct sk_buff *skb) 1148static void e100_load_ucode(struct nic *nic, struct cb *cb, struct sk_buff *skb)
1011{ 1149{
1012 int i; 1150/* *INDENT-OFF* */
1013 static const u32 ucode[UCODE_SIZE] = { 1151 static struct {
1014 /* NFS packets are misinterpreted as TCO packets and 1152 u32 ucode[UCODE_SIZE + 1];
1015 * incorrectly routed to the BMC over SMBus. This 1153 u8 mac;
1016 * microcode patch checks the fragmented IP bit in the 1154 u8 timer_dword;
1017 * NFS/UDP header to distinguish between NFS and TCO. */ 1155 u8 bundle_dword;
1018 0x0EF70E36, 0x1FFF1FFF, 0x1FFF1FFF, 0x1FFF1FFF, 0x1FFF1FFF, 1156 u8 min_size_dword;
1019 0x1FFF1FFF, 0x00906E41, 0x00800E3C, 0x00E00E39, 0x00000000, 1157 } ucode_opts[] = {
1020 0x00906EFD, 0x00900EFD, 0x00E00EF8, 1158 { D101M_B_RCVBUNDLE_UCODE,
1021 }; 1159 mac_82559_D101M,
1022 1160 D101M_CPUSAVER_TIMER_DWORD,
1023 if(nic->mac == mac_82551_F || nic->mac == mac_82551_10) { 1161 D101M_CPUSAVER_BUNDLE_DWORD,
1024 for(i = 0; i < UCODE_SIZE; i++) 1162 D101M_CPUSAVER_MIN_SIZE_DWORD },
1163 { D101S_RCVBUNDLE_UCODE,
1164 mac_82559_D101S,
1165 D101S_CPUSAVER_TIMER_DWORD,
1166 D101S_CPUSAVER_BUNDLE_DWORD,
1167 D101S_CPUSAVER_MIN_SIZE_DWORD },
1168 { D102_E_RCVBUNDLE_UCODE,
1169 mac_82551_F,
1170 D102_E_CPUSAVER_TIMER_DWORD,
1171 D102_E_CPUSAVER_BUNDLE_DWORD,
1172 D102_E_CPUSAVER_MIN_SIZE_DWORD },
1173 { D102_E_RCVBUNDLE_UCODE,
1174 mac_82551_10,
1175 D102_E_CPUSAVER_TIMER_DWORD,
1176 D102_E_CPUSAVER_BUNDLE_DWORD,
1177 D102_E_CPUSAVER_MIN_SIZE_DWORD },
1178 { {0}, 0, 0, 0, 0}
1179 }, *opts;
1180/* *INDENT-ON* */
1181
1182/*************************************************************************
1183* CPUSaver parameters
1184*
1185* All CPUSaver parameters are 16-bit literals that are part of a
1186* "move immediate value" instruction. By changing the value of
1187* the literal in the instruction before the code is loaded, the
1188* driver can change the algorithm.
1189*
1190* INTDELAY - This loads the dead-man timer with its inital value.
1191* When this timer expires the interrupt is asserted, and the
1192* timer is reset each time a new packet is received. (see
1193* BUNDLEMAX below to set the limit on number of chained packets)
1194* The current default is 0x600 or 1536. Experiments show that
1195* the value should probably stay within the 0x200 - 0x1000.
1196*
1197* BUNDLEMAX -
1198* This sets the maximum number of frames that will be bundled. In
1199* some situations, such as the TCP windowing algorithm, it may be
1200* better to limit the growth of the bundle size than let it go as
1201* high as it can, because that could cause too much added latency.
1202* The default is six, because this is the number of packets in the
1203* default TCP window size. A value of 1 would make CPUSaver indicate
1204* an interrupt for every frame received. If you do not want to put
1205* a limit on the bundle size, set this value to xFFFF.
1206*
1207* BUNDLESMALL -
1208* This contains a bit-mask describing the minimum size frame that
1209* will be bundled. The default masks the lower 7 bits, which means
1210* that any frame less than 128 bytes in length will not be bundled,
1211* but will instead immediately generate an interrupt. This does
1212* not affect the current bundle in any way. Any frame that is 128
1213* bytes or large will be bundled normally. This feature is meant
1214* to provide immediate indication of ACK frames in a TCP environment.
1215* Customers were seeing poor performance when a machine with CPUSaver
1216* enabled was sending but not receiving. The delay introduced when
1217* the ACKs were received was enough to reduce total throughput, because
1218* the sender would sit idle until the ACK was finally seen.
1219*
1220* The current default is 0xFF80, which masks out the lower 7 bits.
1221* This means that any frame which is x7F (127) bytes or smaller
1222* will cause an immediate interrupt. Because this value must be a
1223* bit mask, there are only a few valid values that can be used. To
1224* turn this feature off, the driver can write the value xFFFF to the
1225* lower word of this instruction (in the same way that the other
1226* parameters are used). Likewise, a value of 0xF800 (2047) would
1227* cause an interrupt to be generated for every frame, because all
1228* standard Ethernet frames are <= 2047 bytes in length.
1229*************************************************************************/
1230
1231/* if you wish to disable the ucode functionality, while maintaining the
1232 * workarounds it provides, set the following defines to:
1233 * BUNDLESMALL 0
1234 * BUNDLEMAX 1
1235 * INTDELAY 1
1236 */
1237#define BUNDLESMALL 1
1238#define BUNDLEMAX (u16)6
1239#define INTDELAY (u16)1536 /* 0x600 */
1240
1241 /* do not load u-code for ICH devices */
1242 if (nic->flags & ich)
1243 goto noloaducode;
1244
1245 /* Search for ucode match against h/w rev_id */
1246 for (opts = ucode_opts; opts->mac; opts++) {
1247 int i;
1248 u32 *ucode = opts->ucode;
1249 if (nic->mac != opts->mac)
1250 continue;
1251
1252 /* Insert user-tunable settings */
1253 ucode[opts->timer_dword] &= 0xFFFF0000;
1254 ucode[opts->timer_dword] |= INTDELAY;
1255 ucode[opts->bundle_dword] &= 0xFFFF0000;
1256 ucode[opts->bundle_dword] |= BUNDLEMAX;
1257 ucode[opts->min_size_dword] &= 0xFFFF0000;
1258 ucode[opts->min_size_dword] |= (BUNDLESMALL) ? 0xFFFF : 0xFF80;
1259
1260 for (i = 0; i < UCODE_SIZE; i++)
1025 cb->u.ucode[i] = cpu_to_le32(ucode[i]); 1261 cb->u.ucode[i] = cpu_to_le32(ucode[i]);
1026 cb->command = cpu_to_le16(cb_ucode); 1262 cb->command = cpu_to_le16(cb_ucode);
1027 } else 1263 return;
1028 cb->command = cpu_to_le16(cb_nop); 1264 }
1265
1266noloaducode:
1267 cb->command = cpu_to_le16(cb_nop);
1029} 1268}
1030 1269
1031static void e100_setup_iaaddr(struct nic *nic, struct cb *cb, 1270static void e100_setup_iaaddr(struct nic *nic, struct cb *cb,
diff --git a/drivers/net/fec_8xx/Kconfig b/drivers/net/fec_8xx/Kconfig
index 94e7a9af8705..a84c232395e3 100644
--- a/drivers/net/fec_8xx/Kconfig
+++ b/drivers/net/fec_8xx/Kconfig
@@ -1,6 +1,6 @@
1config FEC_8XX 1config FEC_8XX
2 tristate "Motorola 8xx FEC driver" 2 tristate "Motorola 8xx FEC driver"
3 depends on NET_ETHERNET && FEC 3 depends on NET_ETHERNET && 8xx
4 select MII 4 select MII
5 5
6config FEC_8XX_GENERIC_PHY 6config FEC_8XX_GENERIC_PHY
diff --git a/drivers/net/ioc3-eth.c b/drivers/net/ioc3-eth.c
index 6a3129bc15a6..9b8295ee06ef 100644
--- a/drivers/net/ioc3-eth.c
+++ b/drivers/net/ioc3-eth.c
@@ -1360,7 +1360,7 @@ static struct pci_driver ioc3_driver = {
1360 1360
1361static int __init ioc3_init_module(void) 1361static int __init ioc3_init_module(void)
1362{ 1362{
1363 return pci_module_init(&ioc3_driver); 1363 return pci_register_driver(&ioc3_driver);
1364} 1364}
1365 1365
1366static void __exit ioc3_cleanup_module(void) 1366static void __exit ioc3_cleanup_module(void)
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
index 159b56a56ef4..14a76f7cf900 100644
--- a/drivers/net/r8169.c
+++ b/drivers/net/r8169.c
@@ -1346,10 +1346,8 @@ rtl8169_init_board(struct pci_dev *pdev, struct net_device **dev_out,
1346 } else { 1346 } else {
1347 if (netif_msg_probe(tp)) { 1347 if (netif_msg_probe(tp)) {
1348 printk(KERN_ERR PFX 1348 printk(KERN_ERR PFX
1349 "Cannot find PowerManagement capability. " 1349 "PowerManagement capability not found.\n");
1350 "Aborting.\n");
1351 } 1350 }
1352 goto err_out_mwi;
1353 } 1351 }
1354 1352
1355 /* make sure PCI base addr 1 is MMIO */ 1353 /* make sure PCI base addr 1 is MMIO */
@@ -2516,7 +2514,7 @@ rtl8169_interrupt(int irq, void *dev_instance, struct pt_regs *regs)
2516 } while (boguscnt > 0); 2514 } while (boguscnt > 0);
2517 2515
2518 if (boguscnt <= 0) { 2516 if (boguscnt <= 0) {
2519 if (net_ratelimit() && netif_msg_intr(tp)) { 2517 if (netif_msg_intr(tp) && net_ratelimit() ) {
2520 printk(KERN_WARNING 2518 printk(KERN_WARNING
2521 "%s: Too much work at interrupt!\n", dev->name); 2519 "%s: Too much work at interrupt!\n", dev->name);
2522 } 2520 }
diff --git a/drivers/net/saa9730.h b/drivers/net/saa9730.h
index 9e9da6b4080f..a7e9d29a86a7 100644
--- a/drivers/net/saa9730.h
+++ b/drivers/net/saa9730.h
@@ -1,6 +1,7 @@
1/* 1/*
2 * Carsten Langgaard, carstenl@mips.com 2 * Copyright (C) 2000, 2005 MIPS Technologies, Inc. All rights reserved.
3 * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved. 3 * Authors: Carsten Langgaard <carstenl@mips.com>
4 * Maciej W. Rozycki <macro@mips.com>
4 * 5 *
5 * ######################################################################## 6 * ########################################################################
6 * 7 *
@@ -265,6 +266,7 @@
265 266
266/* The SAA9730 (LAN) controller register map, as seen via the PCI-bus. */ 267/* The SAA9730 (LAN) controller register map, as seen via the PCI-bus. */
267#define SAA9730_LAN_REGS_ADDR 0x20400 268#define SAA9730_LAN_REGS_ADDR 0x20400
269#define SAA9730_LAN_REGS_SIZE 0x00400
268 270
269struct lan_saa9730_regmap { 271struct lan_saa9730_regmap {
270 volatile unsigned int TxBuffA; /* 0x20400 */ 272 volatile unsigned int TxBuffA; /* 0x20400 */
@@ -309,6 +311,7 @@ typedef volatile struct lan_saa9730_regmap t_lan_saa9730_regmap;
309 311
310/* The SAA9730 (EVM) controller register map, as seen via the PCI-bus. */ 312/* The SAA9730 (EVM) controller register map, as seen via the PCI-bus. */
311#define SAA9730_EVM_REGS_ADDR 0x02000 313#define SAA9730_EVM_REGS_ADDR 0x02000
314#define SAA9730_EVM_REGS_SIZE 0x00400
312 315
313struct evm_saa9730_regmap { 316struct evm_saa9730_regmap {
314 volatile unsigned int InterruptStatus1; /* 0x2000 */ 317 volatile unsigned int InterruptStatus1; /* 0x2000 */
@@ -329,16 +332,32 @@ typedef volatile struct evm_saa9730_regmap t_evm_saa9730_regmap;
329 332
330 333
331struct lan_saa9730_private { 334struct lan_saa9730_private {
335 /*
336 * Rx/Tx packet buffers.
337 * The Rx and Tx packets must be PACKET_SIZE aligned.
338 */
339 void *buffer_start;
340 unsigned int buffer_size;
341
342 /*
343 * DMA address of beginning of this object, returned
344 * by pci_alloc_consistent().
345 */
346 dma_addr_t dma_addr;
347
348 /* Pointer to the associated pci device structure */
349 struct pci_dev *pci_dev;
350
332 /* Pointer for the SAA9730 LAN controller register set. */ 351 /* Pointer for the SAA9730 LAN controller register set. */
333 t_lan_saa9730_regmap *lan_saa9730_regs; 352 t_lan_saa9730_regmap *lan_saa9730_regs;
334 353
335 /* Pointer to the SAA9730 EVM register. */ 354 /* Pointer to the SAA9730 EVM register. */
336 t_evm_saa9730_regmap *evm_saa9730_regs; 355 t_evm_saa9730_regmap *evm_saa9730_regs;
337 356
338 /* TRUE if the next buffer to write is RxBuffA, FALSE if RxBuffB. */
339 unsigned char NextRcvToUseIsA;
340 /* Rcv buffer Index. */ 357 /* Rcv buffer Index. */
341 unsigned char NextRcvPacketIndex; 358 unsigned char NextRcvPacketIndex;
359 /* Next buffer index. */
360 unsigned char NextRcvBufferIndex;
342 361
343 /* Index of next packet to use in that buffer. */ 362 /* Index of next packet to use in that buffer. */
344 unsigned char NextTxmPacketIndex; 363 unsigned char NextTxmPacketIndex;
@@ -353,13 +372,8 @@ struct lan_saa9730_private {
353 unsigned char DmaRcvPackets; 372 unsigned char DmaRcvPackets;
354 unsigned char DmaTxmPackets; 373 unsigned char DmaTxmPackets;
355 374
356 unsigned char RcvAIndex; /* index into RcvBufferSpace[] for Blk A */ 375 void *TxmBuffer[LAN_SAA9730_BUFFERS][LAN_SAA9730_TXM_Q_SIZE];
357 unsigned char RcvBIndex; /* index into RcvBufferSpace[] for Blk B */ 376 void *RcvBuffer[LAN_SAA9730_BUFFERS][LAN_SAA9730_RCV_Q_SIZE];
358
359 unsigned int
360 TxmBuffer[LAN_SAA9730_BUFFERS][LAN_SAA9730_TXM_Q_SIZE];
361 unsigned int
362 RcvBuffer[LAN_SAA9730_BUFFERS][LAN_SAA9730_RCV_Q_SIZE];
363 unsigned int TxBufferFree[LAN_SAA9730_BUFFERS]; 377 unsigned int TxBufferFree[LAN_SAA9730_BUFFERS];
364 378
365 unsigned char PhysicalAddress[LAN_SAA9730_CAM_ENTRIES][6]; 379 unsigned char PhysicalAddress[LAN_SAA9730_CAM_ENTRIES][6];
diff --git a/drivers/net/smc91x.c b/drivers/net/smc91x.c
index c91e2e81f131..28bf2e69eb5e 100644
--- a/drivers/net/smc91x.c
+++ b/drivers/net/smc91x.c
@@ -155,6 +155,12 @@ MODULE_LICENSE("GPL");
155#define MEMORY_WAIT_TIME 16 155#define MEMORY_WAIT_TIME 16
156 156
157/* 157/*
158 * The maximum number of processing loops allowed for each call to the
159 * IRQ handler.
160 */
161#define MAX_IRQ_LOOPS 8
162
163/*
158 * This selects whether TX packets are sent one by one to the SMC91x internal 164 * This selects whether TX packets are sent one by one to the SMC91x internal
159 * memory and throttled until transmission completes. This may prevent 165 * memory and throttled until transmission completes. This may prevent
160 * RX overruns a litle by keeping much of the memory free for RX packets 166 * RX overruns a litle by keeping much of the memory free for RX packets
@@ -684,7 +690,6 @@ static void smc_hardware_send_pkt(unsigned long data)
684 690
685 /* queue the packet for TX */ 691 /* queue the packet for TX */
686 SMC_SET_MMU_CMD(MC_ENQUEUE); 692 SMC_SET_MMU_CMD(MC_ENQUEUE);
687 SMC_ACK_INT(IM_TX_EMPTY_INT);
688 smc_special_unlock(&lp->lock); 693 smc_special_unlock(&lp->lock);
689 694
690 dev->trans_start = jiffies; 695 dev->trans_start = jiffies;
@@ -1207,6 +1212,7 @@ static void smc_phy_configure(void *data)
1207 smc_phy_check_media(dev, 1); 1212 smc_phy_check_media(dev, 1);
1208 1213
1209smc_phy_configure_exit: 1214smc_phy_configure_exit:
1215 SMC_SELECT_BANK(2);
1210 spin_unlock_irq(&lp->lock); 1216 spin_unlock_irq(&lp->lock);
1211 lp->work_pending = 0; 1217 lp->work_pending = 0;
1212} 1218}
@@ -1305,7 +1311,7 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1305 SMC_SET_INT_MASK(0); 1311 SMC_SET_INT_MASK(0);
1306 1312
1307 /* set a timeout value, so I don't stay here forever */ 1313 /* set a timeout value, so I don't stay here forever */
1308 timeout = 8; 1314 timeout = MAX_IRQ_LOOPS;
1309 1315
1310 do { 1316 do {
1311 status = SMC_GET_INT(); 1317 status = SMC_GET_INT();
@@ -1372,10 +1378,13 @@ static irqreturn_t smc_interrupt(int irq, void *dev_id, struct pt_regs *regs)
1372 /* restore register states */ 1378 /* restore register states */
1373 SMC_SET_PTR(saved_pointer); 1379 SMC_SET_PTR(saved_pointer);
1374 SMC_SET_INT_MASK(mask); 1380 SMC_SET_INT_MASK(mask);
1375
1376 spin_unlock(&lp->lock); 1381 spin_unlock(&lp->lock);
1377 1382
1378 DBG(3, "%s: Interrupt done (%d loops)\n", dev->name, 8-timeout); 1383 if (timeout == MAX_IRQ_LOOPS)
1384 PRINTK("%s: spurious interrupt (mask = 0x%02x)\n",
1385 dev->name, mask);
1386 DBG(3, "%s: Interrupt done (%d loops)\n",
1387 dev->name, MAX_IRQ_LOOPS - timeout);
1379 1388
1380 /* 1389 /*
1381 * We return IRQ_HANDLED unconditionally here even if there was 1390 * We return IRQ_HANDLED unconditionally here even if there was
diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c
index a01efa6d5c62..1fd04662c4fc 100644
--- a/drivers/net/wan/hdlc_cisco.c
+++ b/drivers/net/wan/hdlc_cisco.c
@@ -192,7 +192,9 @@ static int cisco_rx(struct sk_buff *skb)
192 "uptime %ud%uh%um%us)\n", 192 "uptime %ud%uh%um%us)\n",
193 dev->name, days, hrs, 193 dev->name, days, hrs,
194 min, sec); 194 min, sec);
195#if 0
195 netif_carrier_on(dev); 196 netif_carrier_on(dev);
197#endif
196 hdlc->state.cisco.up = 1; 198 hdlc->state.cisco.up = 1;
197 } 199 }
198 } 200 }
@@ -225,7 +227,9 @@ static void cisco_timer(unsigned long arg)
225 hdlc->state.cisco.settings.timeout * HZ)) { 227 hdlc->state.cisco.settings.timeout * HZ)) {
226 hdlc->state.cisco.up = 0; 228 hdlc->state.cisco.up = 0;
227 printk(KERN_INFO "%s: Link down\n", dev->name); 229 printk(KERN_INFO "%s: Link down\n", dev->name);
230#if 0
228 netif_carrier_off(dev); 231 netif_carrier_off(dev);
232#endif
229 } 233 }
230 234
231 cisco_keepalive_send(dev, CISCO_KEEPALIVE_REQ, 235 cisco_keepalive_send(dev, CISCO_KEEPALIVE_REQ,
@@ -261,8 +265,10 @@ static void cisco_stop(struct net_device *dev)
261{ 265{
262 hdlc_device *hdlc = dev_to_hdlc(dev); 266 hdlc_device *hdlc = dev_to_hdlc(dev);
263 del_timer_sync(&hdlc->state.cisco.timer); 267 del_timer_sync(&hdlc->state.cisco.timer);
268#if 0
264 if (netif_carrier_ok(dev)) 269 if (netif_carrier_ok(dev))
265 netif_carrier_off(dev); 270 netif_carrier_off(dev);
271#endif
266 hdlc->state.cisco.up = 0; 272 hdlc->state.cisco.up = 0;
267 hdlc->state.cisco.request_sent = 0; 273 hdlc->state.cisco.request_sent = 0;
268} 274}
diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c
index e1601d35dced..523afe17564e 100644
--- a/drivers/net/wan/hdlc_fr.c
+++ b/drivers/net/wan/hdlc_fr.c
@@ -545,8 +545,10 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
545 545
546 hdlc->state.fr.reliable = reliable; 546 hdlc->state.fr.reliable = reliable;
547 if (reliable) { 547 if (reliable) {
548#if 0
548 if (!netif_carrier_ok(dev)) 549 if (!netif_carrier_ok(dev))
549 netif_carrier_on(dev); 550 netif_carrier_on(dev);
551#endif
550 552
551 hdlc->state.fr.n391cnt = 0; /* Request full status */ 553 hdlc->state.fr.n391cnt = 0; /* Request full status */
552 hdlc->state.fr.dce_changed = 1; 554 hdlc->state.fr.dce_changed = 1;
@@ -560,8 +562,10 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
560 } 562 }
561 } 563 }
562 } else { 564 } else {
565#if 0
563 if (netif_carrier_ok(dev)) 566 if (netif_carrier_ok(dev))
564 netif_carrier_off(dev); 567 netif_carrier_off(dev);
568#endif
565 569
566 while (pvc) { /* Deactivate all PVCs */ 570 while (pvc) { /* Deactivate all PVCs */
567 pvc_carrier(0, pvc); 571 pvc_carrier(0, pvc);
diff --git a/drivers/net/wan/hdlc_generic.c b/drivers/net/wan/hdlc_generic.c
index cdd4c09c2d90..46cef8f92133 100644
--- a/drivers/net/wan/hdlc_generic.c
+++ b/drivers/net/wan/hdlc_generic.c
@@ -79,11 +79,13 @@ static void __hdlc_set_carrier_on(struct net_device *dev)
79 hdlc_device *hdlc = dev_to_hdlc(dev); 79 hdlc_device *hdlc = dev_to_hdlc(dev);
80 if (hdlc->proto.start) 80 if (hdlc->proto.start)
81 return hdlc->proto.start(dev); 81 return hdlc->proto.start(dev);
82#if 0
82#ifdef DEBUG_LINK 83#ifdef DEBUG_LINK
83 if (netif_carrier_ok(dev)) 84 if (netif_carrier_ok(dev))
84 printk(KERN_ERR "hdlc_set_carrier_on(): already on\n"); 85 printk(KERN_ERR "hdlc_set_carrier_on(): already on\n");
85#endif 86#endif
86 netif_carrier_on(dev); 87 netif_carrier_on(dev);
88#endif
87} 89}
88 90
89 91
@@ -94,11 +96,13 @@ static void __hdlc_set_carrier_off(struct net_device *dev)
94 if (hdlc->proto.stop) 96 if (hdlc->proto.stop)
95 return hdlc->proto.stop(dev); 97 return hdlc->proto.stop(dev);
96 98
99#if 0
97#ifdef DEBUG_LINK 100#ifdef DEBUG_LINK
98 if (!netif_carrier_ok(dev)) 101 if (!netif_carrier_ok(dev))
99 printk(KERN_ERR "hdlc_set_carrier_off(): already off\n"); 102 printk(KERN_ERR "hdlc_set_carrier_off(): already off\n");
100#endif 103#endif
101 netif_carrier_off(dev); 104 netif_carrier_off(dev);
105#endif
102} 106}
103 107
104 108
@@ -294,8 +298,10 @@ int register_hdlc_device(struct net_device *dev)
294 if (result != 0) 298 if (result != 0)
295 return -EIO; 299 return -EIO;
296 300
301#if 0
297 if (netif_carrier_ok(dev)) 302 if (netif_carrier_ok(dev))
298 netif_carrier_off(dev); /* no carrier until DCD goes up */ 303 netif_carrier_off(dev); /* no carrier until DCD goes up */
304#endif
299 305
300 return 0; 306 return 0;
301} 307}
diff --git a/drivers/net/wireless/hermes.c b/drivers/net/wireless/hermes.c
index 579480dad374..346c6febb033 100644
--- a/drivers/net/wireless/hermes.c
+++ b/drivers/net/wireless/hermes.c
@@ -398,7 +398,7 @@ static int hermes_bap_seek(hermes_t *hw, int bap, u16 id, u16 offset)
398 * 398 *
399 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware 399 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
400 */ 400 */
401int hermes_bap_pread(hermes_t *hw, int bap, void *buf, unsigned len, 401int hermes_bap_pread(hermes_t *hw, int bap, void *buf, int len,
402 u16 id, u16 offset) 402 u16 id, u16 offset)
403{ 403{
404 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0; 404 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0;
@@ -424,7 +424,7 @@ int hermes_bap_pread(hermes_t *hw, int bap, void *buf, unsigned len,
424 * 424 *
425 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware 425 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
426 */ 426 */
427int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, unsigned len, 427int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, int len,
428 u16 id, u16 offset) 428 u16 id, u16 offset)
429{ 429{
430 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0; 430 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0;
@@ -450,7 +450,7 @@ int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, unsigned len,
450 * 450 *
451 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware 451 * Returns: < 0 on internal failure (errno), 0 on success, > 0 on error from firmware
452 */ 452 */
453int hermes_bap_pwrite_pad(hermes_t *hw, int bap, const void *buf, unsigned data_len, unsigned len, 453int hermes_bap_pwrite_pad(hermes_t *hw, int bap, const void *buf, unsigned data_len, int len,
454 u16 id, u16 offset) 454 u16 id, u16 offset)
455{ 455{
456 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0; 456 int dreg = bap ? HERMES_DATA1 : HERMES_DATA0;
diff --git a/drivers/net/wireless/hermes.h b/drivers/net/wireless/hermes.h
index a6bd472d75d4..7644f72a9f4e 100644
--- a/drivers/net/wireless/hermes.h
+++ b/drivers/net/wireless/hermes.h
@@ -372,12 +372,12 @@ int hermes_docmd_wait(hermes_t *hw, u16 cmd, u16 parm0,
372 struct hermes_response *resp); 372 struct hermes_response *resp);
373int hermes_allocate(hermes_t *hw, u16 size, u16 *fid); 373int hermes_allocate(hermes_t *hw, u16 size, u16 *fid);
374 374
375int hermes_bap_pread(hermes_t *hw, int bap, void *buf, unsigned len, 375int hermes_bap_pread(hermes_t *hw, int bap, void *buf, int len,
376 u16 id, u16 offset); 376 u16 id, u16 offset);
377int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, unsigned len, 377int hermes_bap_pwrite(hermes_t *hw, int bap, const void *buf, int len,
378 u16 id, u16 offset); 378 u16 id, u16 offset);
379int hermes_bap_pwrite_pad(hermes_t *hw, int bap, const void *buf, 379int hermes_bap_pwrite_pad(hermes_t *hw, int bap, const void *buf,
380 unsigned data_len, unsigned len, u16 id, u16 offset); 380 unsigned data_len, int len, u16 id, u16 offset);
381int hermes_read_ltv(hermes_t *hw, int bap, u16 rid, unsigned buflen, 381int hermes_read_ltv(hermes_t *hw, int bap, u16 rid, unsigned buflen,
382 u16 *length, void *buf); 382 u16 *length, void *buf);
383int hermes_write_ltv(hermes_t *hw, int bap, u16 rid, 383int hermes_write_ltv(hermes_t *hw, int bap, u16 rid,
diff --git a/drivers/net/wireless/i82593.h b/drivers/net/wireless/i82593.h
index 33acb8add4d6..afac5c7a323d 100644
--- a/drivers/net/wireless/i82593.h
+++ b/drivers/net/wireless/i82593.h
@@ -7,11 +7,16 @@
7 * 7 *
8 * Copyright 1994, Anders Klemets <klemets@it.kth.se> 8 * Copyright 1994, Anders Klemets <klemets@it.kth.se>
9 * 9 *
10 * This software may be freely distributed for noncommercial purposes
11 * as long as this notice is retained.
12 *
13 * HISTORY 10 * HISTORY
14 * i82593.h,v 11 * i82593.h,v
12 * Revision 1.4 2005/11/4 09:15:00 baroniunas
13 * Modified copyright with permission of author as follows:
14 *
15 * "If I82539.H is the only file with my copyright statement
16 * that is included in the Source Forge project, then you have
17 * my approval to change the copyright statement to be a GPL
18 * license, in the way you proposed on October 10."
19 *
15 * Revision 1.1 1996/07/17 15:23:12 root 20 * Revision 1.1 1996/07/17 15:23:12 root
16 * Initial revision 21 * Initial revision
17 * 22 *
diff --git a/drivers/net/wireless/ipw2100.c b/drivers/net/wireless/ipw2100.c
index a2e6214169e9..77d2a21d4cd0 100644
--- a/drivers/net/wireless/ipw2100.c
+++ b/drivers/net/wireless/ipw2100.c
@@ -6344,7 +6344,8 @@ static struct net_device *ipw2100_alloc_device(struct pci_dev *pci_dev,
6344 dev->ethtool_ops = &ipw2100_ethtool_ops; 6344 dev->ethtool_ops = &ipw2100_ethtool_ops;
6345 dev->tx_timeout = ipw2100_tx_timeout; 6345 dev->tx_timeout = ipw2100_tx_timeout;
6346 dev->wireless_handlers = &ipw2100_wx_handler_def; 6346 dev->wireless_handlers = &ipw2100_wx_handler_def;
6347 dev->get_wireless_stats = ipw2100_wx_wireless_stats; 6347 priv->wireless_data.ieee80211 = priv->ieee;
6348 dev->wireless_data = &priv->wireless_data;
6348 dev->set_mac_address = ipw2100_set_address; 6349 dev->set_mac_address = ipw2100_set_address;
6349 dev->watchdog_timeo = 3 * HZ; 6350 dev->watchdog_timeo = 3 * HZ;
6350 dev->irq = 0; 6351 dev->irq = 0;
@@ -7178,6 +7179,11 @@ static int ipw2100_wx_get_range(struct net_device *dev,
7178 } 7179 }
7179 range->num_frequency = val; 7180 range->num_frequency = val;
7180 7181
7182 /* Event capability (kernel + driver) */
7183 range->event_capa[0] = (IW_EVENT_CAPA_K_0 |
7184 IW_EVENT_CAPA_MASK(SIOCGIWAP));
7185 range->event_capa[1] = IW_EVENT_CAPA_K_1;
7186
7181 IPW_DEBUG_WX("GET Range\n"); 7187 IPW_DEBUG_WX("GET Range\n");
7182 7188
7183 return 0; 7189 return 0;
@@ -8446,16 +8452,6 @@ static iw_handler ipw2100_private_handler[] = {
8446#endif /* CONFIG_IPW2100_MONITOR */ 8452#endif /* CONFIG_IPW2100_MONITOR */
8447}; 8453};
8448 8454
8449static struct iw_handler_def ipw2100_wx_handler_def = {
8450 .standard = ipw2100_wx_handlers,
8451 .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
8452 .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
8453 .num_private_args = sizeof(ipw2100_private_args) /
8454 sizeof(struct iw_priv_args),
8455 .private = (iw_handler *) ipw2100_private_handler,
8456 .private_args = (struct iw_priv_args *)ipw2100_private_args,
8457};
8458
8459/* 8455/*
8460 * Get wireless statistics. 8456 * Get wireless statistics.
8461 * Called by /proc/net/wireless 8457 * Called by /proc/net/wireless
@@ -8597,6 +8593,17 @@ static struct iw_statistics *ipw2100_wx_wireless_stats(struct net_device *dev)
8597 return (struct iw_statistics *)NULL; 8593 return (struct iw_statistics *)NULL;
8598} 8594}
8599 8595
8596static struct iw_handler_def ipw2100_wx_handler_def = {
8597 .standard = ipw2100_wx_handlers,
8598 .num_standard = sizeof(ipw2100_wx_handlers) / sizeof(iw_handler),
8599 .num_private = sizeof(ipw2100_private_handler) / sizeof(iw_handler),
8600 .num_private_args = sizeof(ipw2100_private_args) /
8601 sizeof(struct iw_priv_args),
8602 .private = (iw_handler *) ipw2100_private_handler,
8603 .private_args = (struct iw_priv_args *)ipw2100_private_args,
8604 .get_wireless_stats = ipw2100_wx_wireless_stats,
8605};
8606
8600static void ipw2100_wx_event_work(struct ipw2100_priv *priv) 8607static void ipw2100_wx_event_work(struct ipw2100_priv *priv)
8601{ 8608{
8602 union iwreq_data wrqu; 8609 union iwreq_data wrqu;
diff --git a/drivers/net/wireless/ipw2100.h b/drivers/net/wireless/ipw2100.h
index 140fdf2a0a09..7c65b10bb164 100644
--- a/drivers/net/wireless/ipw2100.h
+++ b/drivers/net/wireless/ipw2100.h
@@ -571,6 +571,8 @@ struct ipw2100_priv {
571 struct net_device *net_dev; 571 struct net_device *net_dev;
572 struct iw_statistics wstats; 572 struct iw_statistics wstats;
573 573
574 struct iw_public_data wireless_data;
575
574 struct tasklet_struct irq_tasklet; 576 struct tasklet_struct irq_tasklet;
575 577
576 struct workqueue_struct *workqueue; 578 struct workqueue_struct *workqueue;
diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c
index b0d195d1721a..5e7c7e944c9d 100644
--- a/drivers/net/wireless/ipw2200.c
+++ b/drivers/net/wireless/ipw2200.c
@@ -1110,8 +1110,7 @@ static struct ipw_fw_error *ipw_alloc_error_log(struct ipw_priv *priv)
1110 error->elem_len = elem_len; 1110 error->elem_len = elem_len;
1111 error->log_len = log_len; 1111 error->log_len = log_len;
1112 error->elem = (struct ipw_error_elem *)error->payload; 1112 error->elem = (struct ipw_error_elem *)error->payload;
1113 error->log = (struct ipw_event *)(error->elem + 1113 error->log = (struct ipw_event *)(error->elem + elem_len);
1114 (sizeof(*error->elem) * elem_len));
1115 1114
1116 ipw_capture_event_log(priv, log_len, error->log); 1115 ipw_capture_event_log(priv, log_len, error->log);
1117 1116
@@ -8926,6 +8925,10 @@ static int ipw_request_direct_scan(struct ipw_priv *priv, char *essid,
8926 struct ipw_scan_request_ext scan; 8925 struct ipw_scan_request_ext scan;
8927 int err = 0, scan_type; 8926 int err = 0, scan_type;
8928 8927
8928 if (!(priv->status & STATUS_INIT) ||
8929 (priv->status & STATUS_EXIT_PENDING))
8930 return 0;
8931
8929 down(&priv->sem); 8932 down(&priv->sem);
8930 8933
8931 if (priv->status & STATUS_RF_KILL_MASK) { 8934 if (priv->status & STATUS_RF_KILL_MASK) {
diff --git a/drivers/net/wireless/prism54/isl_38xx.c b/drivers/net/wireless/prism54/isl_38xx.c
index 109a96d90007..23deee69974b 100644
--- a/drivers/net/wireless/prism54/isl_38xx.c
+++ b/drivers/net/wireless/prism54/isl_38xx.c
@@ -164,12 +164,12 @@ isl38xx_trigger_device(int asleep, void __iomem *device_base)
164 /* assert the Wakeup interrupt in the Device Interrupt Register */ 164 /* assert the Wakeup interrupt in the Device Interrupt Register */
165 isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_WAKEUP, 165 isl38xx_w32_flush(device_base, ISL38XX_DEV_INT_WAKEUP,
166 ISL38XX_DEV_INT_REG); 166 ISL38XX_DEV_INT_REG);
167
168#if VERBOSE > SHOW_ERROR_MESSAGES
167 udelay(ISL38XX_WRITEIO_DELAY); 169 udelay(ISL38XX_WRITEIO_DELAY);
168 170
169 /* perform another read on the Device Status Register */ 171 /* perform another read on the Device Status Register */
170 reg = readl(device_base + ISL38XX_CTRL_STAT_REG); 172 reg = readl(device_base + ISL38XX_CTRL_STAT_REG);
171
172#if VERBOSE > SHOW_ERROR_MESSAGES
173 do_gettimeofday(&current_time); 173 do_gettimeofday(&current_time);
174 DEBUG(SHOW_TRACING, "%08li.%08li Device register read %08x\n", 174 DEBUG(SHOW_TRACING, "%08li.%08li Device register read %08x\n",
175 current_time.tv_sec, (long)current_time.tv_usec, reg); 175 current_time.tv_sec, (long)current_time.tv_usec, reg);
diff --git a/drivers/parisc/iosapic.c b/drivers/parisc/iosapic.c
index a39fbfef789a..19657efa8dc3 100644
--- a/drivers/parisc/iosapic.c
+++ b/drivers/parisc/iosapic.c
@@ -700,6 +700,28 @@ static unsigned int iosapic_startup_irq(unsigned int irq)
700 return 0; 700 return 0;
701} 701}
702 702
703#ifdef CONFIG_SMP
704static void iosapic_set_affinity_irq(unsigned int irq, cpumask_t dest)
705{
706 struct vector_info *vi = iosapic_get_vector(irq);
707 u32 d0, d1, dummy_d0;
708 unsigned long flags;
709
710 if (cpu_check_affinity(irq, &dest))
711 return;
712
713 vi->txn_addr = txn_affinity_addr(irq, first_cpu(dest));
714
715 spin_lock_irqsave(&iosapic_lock, flags);
716 /* d1 contains the destination CPU, so only want to set that
717 * entry */
718 iosapic_rd_irt_entry(vi, &d0, &d1);
719 iosapic_set_irt_data(vi, &dummy_d0, &d1);
720 iosapic_wr_irt_entry(vi, d0, d1);
721 spin_unlock_irqrestore(&iosapic_lock, flags);
722}
723#endif
724
703static struct hw_interrupt_type iosapic_interrupt_type = { 725static struct hw_interrupt_type iosapic_interrupt_type = {
704 .typename = "IO-SAPIC-level", 726 .typename = "IO-SAPIC-level",
705 .startup = iosapic_startup_irq, 727 .startup = iosapic_startup_irq,
@@ -708,7 +730,9 @@ static struct hw_interrupt_type iosapic_interrupt_type = {
708 .disable = iosapic_disable_irq, 730 .disable = iosapic_disable_irq,
709 .ack = no_ack_irq, 731 .ack = no_ack_irq,
710 .end = iosapic_end_irq, 732 .end = iosapic_end_irq,
711// .set_affinity = iosapic_set_affinity_irq, 733#ifdef CONFIG_SMP
734 .set_affinity = iosapic_set_affinity_irq,
735#endif
712}; 736};
713 737
714int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev) 738int iosapic_fixup_irq(void *isi_obj, struct pci_dev *pcidev)
diff --git a/drivers/parisc/superio.c b/drivers/parisc/superio.c
index bab3bcabcb6e..d14888e149bb 100644
--- a/drivers/parisc/superio.c
+++ b/drivers/parisc/superio.c
@@ -24,6 +24,9 @@
24 * Major changes to get basic interrupt infrastructure working to 24 * Major changes to get basic interrupt infrastructure working to
25 * hopefully be able to support all SuperIO devices. Currently 25 * hopefully be able to support all SuperIO devices. Currently
26 * works with serial. -- John Marvin <jsm@fc.hp.com> 26 * works with serial. -- John Marvin <jsm@fc.hp.com>
27 *
28 * Converted superio_init() to be a PCI_FIXUP_FINAL callee.
29 * -- Kyle McMartin <kyle@parisc-linux.org>
27 */ 30 */
28 31
29 32
@@ -141,10 +144,10 @@ superio_interrupt(int parent_irq, void *devp, struct pt_regs *regs)
141} 144}
142 145
143/* Initialize Super I/O device */ 146/* Initialize Super I/O device */
144 147static void
145static void __devinit 148superio_init(struct pci_dev *pcidev)
146superio_init(struct superio_device *sio)
147{ 149{
150 struct superio_device *sio = &sio_dev;
148 struct pci_dev *pdev = sio->lio_pdev; 151 struct pci_dev *pdev = sio->lio_pdev;
149 u16 word; 152 u16 word;
150 153
@@ -160,8 +163,8 @@ superio_init(struct superio_device *sio)
160 /* ...then properly fixup the USB to point at suckyio PIC */ 163 /* ...then properly fixup the USB to point at suckyio PIC */
161 sio->usb_pdev->irq = superio_fixup_irq(sio->usb_pdev); 164 sio->usb_pdev->irq = superio_fixup_irq(sio->usb_pdev);
162 165
163 printk (KERN_INFO "SuperIO: Found NS87560 Legacy I/O device at %s (IRQ %i) \n", 166 printk(KERN_INFO "SuperIO: Found NS87560 Legacy I/O device at %s (IRQ %i) \n",
164 pci_name(pdev),pdev->irq); 167 pci_name(pdev), pdev->irq);
165 168
166 pci_read_config_dword (pdev, SIO_SP1BAR, &sio->sp1_base); 169 pci_read_config_dword (pdev, SIO_SP1BAR, &sio->sp1_base);
167 sio->sp1_base &= ~1; 170 sio->sp1_base &= ~1;
@@ -274,7 +277,7 @@ superio_init(struct superio_device *sio)
274 277
275 sio->suckyio_irq_enabled = 1; 278 sio->suckyio_irq_enabled = 1;
276} 279}
277 280DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87560_LIO, superio_init);
278 281
279static void superio_disable_irq(unsigned int irq) 282static void superio_disable_irq(unsigned int irq)
280{ 283{
@@ -452,8 +455,10 @@ static void superio_fixup_pci(struct pci_dev *pdev)
452DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87415, superio_fixup_pci); 455DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87415, superio_fixup_pci);
453 456
454 457
455static int __devinit superio_probe(struct pci_dev *dev, const struct pci_device_id *id) 458static int __devinit
459superio_probe(struct pci_dev *dev, const struct pci_device_id *id)
456{ 460{
461 struct superio_device *sio = &sio_dev;
457 462
458 /* 463 /*
459 ** superio_probe(00:0e.0) ven 0x100b dev 0x2 sv 0x0 sd 0x0 class 0x1018a 464 ** superio_probe(00:0e.0) ven 0x100b dev 0x2 sv 0x0 sd 0x0 class 0x1018a
@@ -466,7 +471,8 @@ static int __devinit superio_probe(struct pci_dev *dev, const struct pci_device_
466 dev->subsystem_vendor, dev->subsystem_device, 471 dev->subsystem_vendor, dev->subsystem_device,
467 dev->class); 472 dev->class);
468 473
469 superio_init(&sio_dev); 474 if (!sio->suckyio_irq_enabled)
475 BUG(); /* Enabled by PCI_FIXUP_FINAL */
470 476
471 if (dev->device == PCI_DEVICE_ID_NS_87560_LIO) { /* Function 1 */ 477 if (dev->device == PCI_DEVICE_ID_NS_87560_LIO) { /* Function 1 */
472 superio_parport_init(); 478 superio_parport_init();
@@ -481,19 +487,21 @@ static int __devinit superio_probe(struct pci_dev *dev, const struct pci_device_
481 DBG_INIT("superio_probe: WTF? Fire Extinguisher?\n"); 487 DBG_INIT("superio_probe: WTF? Fire Extinguisher?\n");
482 } 488 }
483 489
484 /* Let appropriate other driver claim this device. */ 490 /* Let appropriate other driver claim this device. */
485 return -ENODEV; 491 return -ENODEV;
486} 492}
487 493
488static struct pci_device_id superio_tbl[] = { 494static struct pci_device_id superio_tbl[] = {
489 { PCI_VENDOR_ID_NS, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 495 { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87560_LIO) },
496 { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87560_USB) },
497 { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_87415) },
490 { 0, } 498 { 0, }
491}; 499};
492 500
493static struct pci_driver superio_driver = { 501static struct pci_driver superio_driver = {
494 .name = "SuperIO", 502 .name = "SuperIO",
495 .id_table = superio_tbl, 503 .id_table = superio_tbl,
496 .probe = superio_probe, 504 .probe = superio_probe,
497}; 505};
498 506
499static int __init superio_modinit(void) 507static int __init superio_modinit(void)
@@ -506,6 +514,5 @@ static void __exit superio_exit(void)
506 pci_unregister_driver(&superio_driver); 514 pci_unregister_driver(&superio_driver);
507} 515}
508 516
509
510module_init(superio_modinit); 517module_init(superio_modinit);
511module_exit(superio_exit); 518module_exit(superio_exit);
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c
index f5b7d360fc10..1026f2bc3185 100644
--- a/drivers/s390/char/raw3270.c
+++ b/drivers/s390/char/raw3270.c
@@ -1179,12 +1179,12 @@ raw3270_create_attributes(struct raw3270 *rp)
1179 //FIXME: check return code 1179 //FIXME: check return code
1180 sysfs_create_group(&rp->cdev->dev.kobj, &raw3270_attr_group); 1180 sysfs_create_group(&rp->cdev->dev.kobj, &raw3270_attr_group);
1181 rp->clttydev = 1181 rp->clttydev =
1182 class_device_create(class3270, 1182 class_device_create(class3270, NULL,
1183 MKDEV(IBM_TTY3270_MAJOR, rp->minor), 1183 MKDEV(IBM_TTY3270_MAJOR, rp->minor),
1184 &rp->cdev->dev, "tty%s", 1184 &rp->cdev->dev, "tty%s",
1185 rp->cdev->dev.bus_id); 1185 rp->cdev->dev.bus_id);
1186 rp->cltubdev = 1186 rp->cltubdev =
1187 class_device_create(class3270, 1187 class_device_create(class3270, NULL,
1188 MKDEV(IBM_FS3270_MAJOR, rp->minor), 1188 MKDEV(IBM_FS3270_MAJOR, rp->minor),
1189 &rp->cdev->dev, "tub%s", 1189 &rp->cdev->dev, "tub%s",
1190 rp->cdev->dev.bus_id); 1190 rp->cdev->dev.bus_id);
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index 84c42c44e04d..20dd85a77813 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -497,7 +497,7 @@ config SCSI_ATA_PIIX
497 If unsure, say N. 497 If unsure, say N.
498 498
499config SCSI_SATA_MV 499config SCSI_SATA_MV
500 tristate "Marvell SATA support" 500 tristate "Marvell SATA support (HIGHLY EXPERIMENTAL)"
501 depends on SCSI_SATA && PCI && EXPERIMENTAL 501 depends on SCSI_SATA && PCI && EXPERIMENTAL
502 help 502 help
503 This option enables support for the Marvell Serial ATA family. 503 This option enables support for the Marvell Serial ATA family.
diff --git a/drivers/scsi/ahci.c b/drivers/scsi/ahci.c
index 894e7113e0b3..83467a05dc8e 100644
--- a/drivers/scsi/ahci.c
+++ b/drivers/scsi/ahci.c
@@ -48,7 +48,7 @@
48#include <asm/io.h> 48#include <asm/io.h>
49 49
50#define DRV_NAME "ahci" 50#define DRV_NAME "ahci"
51#define DRV_VERSION "1.01" 51#define DRV_VERSION "1.2"
52 52
53 53
54enum { 54enum {
@@ -558,23 +558,25 @@ static void ahci_qc_prep(struct ata_queued_cmd *qc)
558 pp->cmd_slot[0].opts |= cpu_to_le32(n_elem << 16); 558 pp->cmd_slot[0].opts |= cpu_to_le32(n_elem << 16);
559} 559}
560 560
561static void ahci_intr_error(struct ata_port *ap, u32 irq_stat) 561static void ahci_restart_port(struct ata_port *ap, u32 irq_stat)
562{ 562{
563 void __iomem *mmio = ap->host_set->mmio_base; 563 void __iomem *mmio = ap->host_set->mmio_base;
564 void __iomem *port_mmio = ahci_port_base(mmio, ap->port_no); 564 void __iomem *port_mmio = ahci_port_base(mmio, ap->port_no);
565 u32 tmp; 565 u32 tmp;
566 int work; 566 int work;
567 567
568 printk(KERN_WARNING "ata%u: port reset, " 568 if ((ap->device[0].class != ATA_DEV_ATAPI) ||
569 "p_is %x is %x pis %x cmd %x tf %x ss %x se %x\n", 569 ((irq_stat & PORT_IRQ_TF_ERR) == 0))
570 ap->id, 570 printk(KERN_WARNING "ata%u: port reset, "
571 irq_stat, 571 "p_is %x is %x pis %x cmd %x tf %x ss %x se %x\n",
572 readl(mmio + HOST_IRQ_STAT), 572 ap->id,
573 readl(port_mmio + PORT_IRQ_STAT), 573 irq_stat,
574 readl(port_mmio + PORT_CMD), 574 readl(mmio + HOST_IRQ_STAT),
575 readl(port_mmio + PORT_TFDATA), 575 readl(port_mmio + PORT_IRQ_STAT),
576 readl(port_mmio + PORT_SCR_STAT), 576 readl(port_mmio + PORT_CMD),
577 readl(port_mmio + PORT_SCR_ERR)); 577 readl(port_mmio + PORT_TFDATA),
578 readl(port_mmio + PORT_SCR_STAT),
579 readl(port_mmio + PORT_SCR_ERR));
578 580
579 /* stop DMA */ 581 /* stop DMA */
580 tmp = readl(port_mmio + PORT_CMD); 582 tmp = readl(port_mmio + PORT_CMD);
@@ -632,7 +634,7 @@ static void ahci_eng_timeout(struct ata_port *ap)
632 printk(KERN_ERR "ata%u: BUG: timeout without command\n", 634 printk(KERN_ERR "ata%u: BUG: timeout without command\n",
633 ap->id); 635 ap->id);
634 } else { 636 } else {
635 ahci_intr_error(ap, readl(port_mmio + PORT_IRQ_STAT)); 637 ahci_restart_port(ap, readl(port_mmio + PORT_IRQ_STAT));
636 638
637 /* hack alert! We cannot use the supplied completion 639 /* hack alert! We cannot use the supplied completion
638 * function from inside the ->eh_strategy_handler() thread. 640 * function from inside the ->eh_strategy_handler() thread.
@@ -677,7 +679,7 @@ static inline int ahci_host_intr(struct ata_port *ap, struct ata_queued_cmd *qc)
677 err_mask = AC_ERR_HOST_BUS; 679 err_mask = AC_ERR_HOST_BUS;
678 680
679 /* command processing has stopped due to error; restart */ 681 /* command processing has stopped due to error; restart */
680 ahci_intr_error(ap, status); 682 ahci_restart_port(ap, status);
681 683
682 if (qc) 684 if (qc)
683 ata_qc_complete(qc, err_mask); 685 ata_qc_complete(qc, err_mask);
diff --git a/drivers/scsi/ata_piix.c b/drivers/scsi/ata_piix.c
index 855428ff37e9..333d69dd84ef 100644
--- a/drivers/scsi/ata_piix.c
+++ b/drivers/scsi/ata_piix.c
@@ -50,7 +50,7 @@
50#include <linux/libata.h> 50#include <linux/libata.h>
51 51
52#define DRV_NAME "ata_piix" 52#define DRV_NAME "ata_piix"
53#define DRV_VERSION "1.04" 53#define DRV_VERSION "1.05"
54 54
55enum { 55enum {
56 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */ 56 PIIX_IOCFG = 0x54, /* IDE I/O configuration register */
diff --git a/drivers/scsi/ide-scsi.c b/drivers/scsi/ide-scsi.c
index e1960d69fb90..4cb1f3ed9100 100644
--- a/drivers/scsi/ide-scsi.c
+++ b/drivers/scsi/ide-scsi.c
@@ -784,8 +784,8 @@ static ide_proc_entry_t idescsi_proc[] = {
784#endif 784#endif
785 785
786static ide_driver_t idescsi_driver = { 786static ide_driver_t idescsi_driver = {
787 .owner = THIS_MODULE,
788 .gen_driver = { 787 .gen_driver = {
788 .owner = THIS_MODULE,
789 .name = "ide-scsi", 789 .name = "ide-scsi",
790 .bus = &ide_bus_type, 790 .bus = &ide_bus_type,
791 .probe = ide_scsi_probe, 791 .probe = ide_scsi_probe,
diff --git a/drivers/scsi/libata-core.c b/drivers/scsi/libata-core.c
index ba1eb8b38e00..665ae79e1fd6 100644
--- a/drivers/scsi/libata-core.c
+++ b/drivers/scsi/libata-core.c
@@ -1046,6 +1046,30 @@ static unsigned int ata_pio_modes(const struct ata_device *adev)
1046 return modes; 1046 return modes;
1047} 1047}
1048 1048
1049static int ata_qc_wait_err(struct ata_queued_cmd *qc,
1050 struct completion *wait)
1051{
1052 int rc = 0;
1053
1054 if (wait_for_completion_timeout(wait, 30 * HZ) < 1) {
1055 /* timeout handling */
1056 unsigned int err_mask = ac_err_mask(ata_chk_status(qc->ap));
1057
1058 if (!err_mask) {
1059 printk(KERN_WARNING "ata%u: slow completion (cmd %x)\n",
1060 qc->ap->id, qc->tf.command);
1061 } else {
1062 printk(KERN_WARNING "ata%u: qc timeout (cmd %x)\n",
1063 qc->ap->id, qc->tf.command);
1064 rc = -EIO;
1065 }
1066
1067 ata_qc_complete(qc, err_mask);
1068 }
1069
1070 return rc;
1071}
1072
1049/** 1073/**
1050 * ata_dev_identify - obtain IDENTIFY x DEVICE page 1074 * ata_dev_identify - obtain IDENTIFY x DEVICE page
1051 * @ap: port on which device we wish to probe resides 1075 * @ap: port on which device we wish to probe resides
@@ -1125,7 +1149,7 @@ retry:
1125 if (rc) 1149 if (rc)
1126 goto err_out; 1150 goto err_out;
1127 else 1151 else
1128 wait_for_completion(&wait); 1152 ata_qc_wait_err(qc, &wait);
1129 1153
1130 spin_lock_irqsave(&ap->host_set->lock, flags); 1154 spin_lock_irqsave(&ap->host_set->lock, flags);
1131 ap->ops->tf_read(ap, &qc->tf); 1155 ap->ops->tf_read(ap, &qc->tf);
@@ -1570,11 +1594,13 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
1570 1594
1571 /* 1595 /*
1572 * Find the mode. 1596 * Find the mode.
1573 */ 1597 */
1574 1598
1575 if (!(s = ata_timing_find_mode(speed))) 1599 if (!(s = ata_timing_find_mode(speed)))
1576 return -EINVAL; 1600 return -EINVAL;
1577 1601
1602 memcpy(t, s, sizeof(*s));
1603
1578 /* 1604 /*
1579 * If the drive is an EIDE drive, it can tell us it needs extended 1605 * If the drive is an EIDE drive, it can tell us it needs extended
1580 * PIO/MW_DMA cycle timing. 1606 * PIO/MW_DMA cycle timing.
@@ -1595,7 +1621,7 @@ int ata_timing_compute(struct ata_device *adev, unsigned short speed,
1595 * Convert the timing to bus clock counts. 1621 * Convert the timing to bus clock counts.
1596 */ 1622 */
1597 1623
1598 ata_timing_quantize(s, t, T, UT); 1624 ata_timing_quantize(t, t, T, UT);
1599 1625
1600 /* 1626 /*
1601 * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, S.M.A.R.T 1627 * Even in DMA/UDMA modes we still use PIO access for IDENTIFY, S.M.A.R.T
@@ -2267,7 +2293,7 @@ static void ata_dev_set_xfermode(struct ata_port *ap, struct ata_device *dev)
2267 if (rc) 2293 if (rc)
2268 ata_port_disable(ap); 2294 ata_port_disable(ap);
2269 else 2295 else
2270 wait_for_completion(&wait); 2296 ata_qc_wait_err(qc, &wait);
2271 2297
2272 DPRINTK("EXIT\n"); 2298 DPRINTK("EXIT\n");
2273} 2299}
@@ -2315,7 +2341,7 @@ static void ata_dev_reread_id(struct ata_port *ap, struct ata_device *dev)
2315 if (rc) 2341 if (rc)
2316 goto err_out; 2342 goto err_out;
2317 2343
2318 wait_for_completion(&wait); 2344 ata_qc_wait_err(qc, &wait);
2319 2345
2320 swap_buf_le16(dev->id, ATA_ID_WORDS); 2346 swap_buf_le16(dev->id, ATA_ID_WORDS);
2321 2347
@@ -2371,7 +2397,7 @@ static void ata_dev_init_params(struct ata_port *ap, struct ata_device *dev)
2371 if (rc) 2397 if (rc)
2372 ata_port_disable(ap); 2398 ata_port_disable(ap);
2373 else 2399 else
2374 wait_for_completion(&wait); 2400 ata_qc_wait_err(qc, &wait);
2375 2401
2376 DPRINTK("EXIT\n"); 2402 DPRINTK("EXIT\n");
2377} 2403}
diff --git a/drivers/scsi/libata.h b/drivers/scsi/libata.h
index 74a84e0ec0a4..8ebaa694d18e 100644
--- a/drivers/scsi/libata.h
+++ b/drivers/scsi/libata.h
@@ -29,7 +29,7 @@
29#define __LIBATA_H__ 29#define __LIBATA_H__
30 30
31#define DRV_NAME "libata" 31#define DRV_NAME "libata"
32#define DRV_VERSION "1.12" /* must be exactly four chars */ 32#define DRV_VERSION "1.20" /* must be exactly four chars */
33 33
34struct ata_scsi_args { 34struct ata_scsi_args {
35 u16 *id; 35 u16 *id;
diff --git a/drivers/scsi/sata_mv.c b/drivers/scsi/sata_mv.c
index 257c128f4aaa..ab7432a5778e 100644
--- a/drivers/scsi/sata_mv.c
+++ b/drivers/scsi/sata_mv.c
@@ -1,7 +1,8 @@
1/* 1/*
2 * sata_mv.c - Marvell SATA support 2 * sata_mv.c - Marvell SATA support
3 * 3 *
4 * Copyright 2005: EMC Corporation, all rights reserved. 4 * Copyright 2005: EMC Corporation, all rights reserved.
5 * Copyright 2005 Red Hat, Inc. All rights reserved.
5 * 6 *
6 * Please ALWAYS copy linux-ide@vger.kernel.org on emails. 7 * Please ALWAYS copy linux-ide@vger.kernel.org on emails.
7 * 8 *
@@ -36,7 +37,7 @@
36#include <asm/io.h> 37#include <asm/io.h>
37 38
38#define DRV_NAME "sata_mv" 39#define DRV_NAME "sata_mv"
39#define DRV_VERSION "0.25" 40#define DRV_VERSION "0.5"
40 41
41enum { 42enum {
42 /* BAR's are enumerated in terms of pci_resource_start() terms */ 43 /* BAR's are enumerated in terms of pci_resource_start() terms */
@@ -50,6 +51,9 @@ enum {
50 MV_PCI_REG_BASE = 0, 51 MV_PCI_REG_BASE = 0,
51 MV_IRQ_COAL_REG_BASE = 0x18000, /* 6xxx part only */ 52 MV_IRQ_COAL_REG_BASE = 0x18000, /* 6xxx part only */
52 MV_SATAHC0_REG_BASE = 0x20000, 53 MV_SATAHC0_REG_BASE = 0x20000,
54 MV_FLASH_CTL = 0x1046c,
55 MV_GPIO_PORT_CTL = 0x104f0,
56 MV_RESET_CFG = 0x180d8,
53 57
54 MV_PCI_REG_SZ = MV_MAJOR_REG_AREA_SZ, 58 MV_PCI_REG_SZ = MV_MAJOR_REG_AREA_SZ,
55 MV_SATAHC_REG_SZ = MV_MAJOR_REG_AREA_SZ, 59 MV_SATAHC_REG_SZ = MV_MAJOR_REG_AREA_SZ,
@@ -72,11 +76,6 @@ enum {
72 MV_SG_TBL_SZ = (16 * MV_MAX_SG_CT), 76 MV_SG_TBL_SZ = (16 * MV_MAX_SG_CT),
73 MV_PORT_PRIV_DMA_SZ = (MV_CRQB_Q_SZ + MV_CRPB_Q_SZ + MV_SG_TBL_SZ), 77 MV_PORT_PRIV_DMA_SZ = (MV_CRQB_Q_SZ + MV_CRPB_Q_SZ + MV_SG_TBL_SZ),
74 78
75 /* Our DMA boundary is determined by an ePRD being unable to handle
76 * anything larger than 64KB
77 */
78 MV_DMA_BOUNDARY = 0xffffU,
79
80 MV_PORTS_PER_HC = 4, 79 MV_PORTS_PER_HC = 4,
81 /* == (port / MV_PORTS_PER_HC) to determine HC from 0-7 port */ 80 /* == (port / MV_PORTS_PER_HC) to determine HC from 0-7 port */
82 MV_PORT_HC_SHIFT = 2, 81 MV_PORT_HC_SHIFT = 2,
@@ -86,16 +85,9 @@ enum {
86 /* Host Flags */ 85 /* Host Flags */
87 MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */ 86 MV_FLAG_DUAL_HC = (1 << 30), /* two SATA Host Controllers */
88 MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */ 87 MV_FLAG_IRQ_COALESCE = (1 << 29), /* IRQ coalescing capability */
89 MV_FLAG_GLBL_SFT_RST = (1 << 28), /* Global Soft Reset support */
90 MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 88 MV_COMMON_FLAGS = (ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
91 ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO), 89 ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO),
92 MV_6XXX_FLAGS = (MV_FLAG_IRQ_COALESCE | 90 MV_6XXX_FLAGS = MV_FLAG_IRQ_COALESCE,
93 MV_FLAG_GLBL_SFT_RST),
94
95 chip_504x = 0,
96 chip_508x = 1,
97 chip_604x = 2,
98 chip_608x = 3,
99 91
100 CRQB_FLAG_READ = (1 << 0), 92 CRQB_FLAG_READ = (1 << 0),
101 CRQB_TAG_SHIFT = 1, 93 CRQB_TAG_SHIFT = 1,
@@ -116,8 +108,19 @@ enum {
116 PCI_MASTER_EMPTY = (1 << 3), 108 PCI_MASTER_EMPTY = (1 << 3),
117 GLOB_SFT_RST = (1 << 4), 109 GLOB_SFT_RST = (1 << 4),
118 110
119 PCI_IRQ_CAUSE_OFS = 0x1d58, 111 MV_PCI_MODE = 0xd00,
120 PCI_IRQ_MASK_OFS = 0x1d5c, 112 MV_PCI_EXP_ROM_BAR_CTL = 0xd2c,
113 MV_PCI_DISC_TIMER = 0xd04,
114 MV_PCI_MSI_TRIGGER = 0xc38,
115 MV_PCI_SERR_MASK = 0xc28,
116 MV_PCI_XBAR_TMOUT = 0x1d04,
117 MV_PCI_ERR_LOW_ADDRESS = 0x1d40,
118 MV_PCI_ERR_HIGH_ADDRESS = 0x1d44,
119 MV_PCI_ERR_ATTRIBUTE = 0x1d48,
120 MV_PCI_ERR_COMMAND = 0x1d50,
121
122 PCI_IRQ_CAUSE_OFS = 0x1d58,
123 PCI_IRQ_MASK_OFS = 0x1d5c,
121 PCI_UNMASK_ALL_IRQS = 0x7fffff, /* bits 22-0 */ 124 PCI_UNMASK_ALL_IRQS = 0x7fffff, /* bits 22-0 */
122 125
123 HC_MAIN_IRQ_CAUSE_OFS = 0x1d60, 126 HC_MAIN_IRQ_CAUSE_OFS = 0x1d60,
@@ -134,7 +137,7 @@ enum {
134 SELF_INT = (1 << 23), 137 SELF_INT = (1 << 23),
135 TWSI_INT = (1 << 24), 138 TWSI_INT = (1 << 24),
136 HC_MAIN_RSVD = (0x7f << 25), /* bits 31-25 */ 139 HC_MAIN_RSVD = (0x7f << 25), /* bits 31-25 */
137 HC_MAIN_MASKED_IRQS = (TRAN_LO_DONE | TRAN_HI_DONE | 140 HC_MAIN_MASKED_IRQS = (TRAN_LO_DONE | TRAN_HI_DONE |
138 PORTS_0_7_COAL_DONE | GPIO_INT | TWSI_INT | 141 PORTS_0_7_COAL_DONE | GPIO_INT | TWSI_INT |
139 HC_MAIN_RSVD), 142 HC_MAIN_RSVD),
140 143
@@ -153,6 +156,15 @@ enum {
153 /* SATA registers */ 156 /* SATA registers */
154 SATA_STATUS_OFS = 0x300, /* ctrl, err regs follow status */ 157 SATA_STATUS_OFS = 0x300, /* ctrl, err regs follow status */
155 SATA_ACTIVE_OFS = 0x350, 158 SATA_ACTIVE_OFS = 0x350,
159 PHY_MODE3 = 0x310,
160 PHY_MODE4 = 0x314,
161 PHY_MODE2 = 0x330,
162 MV5_PHY_MODE = 0x74,
163 MV5_LT_MODE = 0x30,
164 MV5_PHY_CTL = 0x0C,
165 SATA_INTERFACE_CTL = 0x050,
166
167 MV_M2_PREAMP_MASK = 0x7e0,
156 168
157 /* Port registers */ 169 /* Port registers */
158 EDMA_CFG_OFS = 0, 170 EDMA_CFG_OFS = 0,
@@ -182,17 +194,16 @@ enum {
182 EDMA_ERR_LNK_CTRL_TX = (0x1f << 21), 194 EDMA_ERR_LNK_CTRL_TX = (0x1f << 21),
183 EDMA_ERR_LNK_DATA_TX = (0x1f << 26), 195 EDMA_ERR_LNK_DATA_TX = (0x1f << 26),
184 EDMA_ERR_TRANS_PROTO = (1 << 31), 196 EDMA_ERR_TRANS_PROTO = (1 << 31),
185 EDMA_ERR_FATAL = (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR | 197 EDMA_ERR_FATAL = (EDMA_ERR_D_PAR | EDMA_ERR_PRD_PAR |
186 EDMA_ERR_DEV_DCON | EDMA_ERR_CRBQ_PAR | 198 EDMA_ERR_DEV_DCON | EDMA_ERR_CRBQ_PAR |
187 EDMA_ERR_CRPB_PAR | EDMA_ERR_INTRL_PAR | 199 EDMA_ERR_CRPB_PAR | EDMA_ERR_INTRL_PAR |
188 EDMA_ERR_IORDY | EDMA_ERR_LNK_CTRL_RX_2 | 200 EDMA_ERR_IORDY | EDMA_ERR_LNK_CTRL_RX_2 |
189 EDMA_ERR_LNK_DATA_RX | 201 EDMA_ERR_LNK_DATA_RX |
190 EDMA_ERR_LNK_DATA_TX | 202 EDMA_ERR_LNK_DATA_TX |
191 EDMA_ERR_TRANS_PROTO), 203 EDMA_ERR_TRANS_PROTO),
192 204
193 EDMA_REQ_Q_BASE_HI_OFS = 0x10, 205 EDMA_REQ_Q_BASE_HI_OFS = 0x10,
194 EDMA_REQ_Q_IN_PTR_OFS = 0x14, /* also contains BASE_LO */ 206 EDMA_REQ_Q_IN_PTR_OFS = 0x14, /* also contains BASE_LO */
195 EDMA_REQ_Q_BASE_LO_MASK = 0xfffffc00U,
196 207
197 EDMA_REQ_Q_OUT_PTR_OFS = 0x18, 208 EDMA_REQ_Q_OUT_PTR_OFS = 0x18,
198 EDMA_REQ_Q_PTR_SHIFT = 5, 209 EDMA_REQ_Q_PTR_SHIFT = 5,
@@ -200,7 +211,6 @@ enum {
200 EDMA_RSP_Q_BASE_HI_OFS = 0x1c, 211 EDMA_RSP_Q_BASE_HI_OFS = 0x1c,
201 EDMA_RSP_Q_IN_PTR_OFS = 0x20, 212 EDMA_RSP_Q_IN_PTR_OFS = 0x20,
202 EDMA_RSP_Q_OUT_PTR_OFS = 0x24, /* also contains BASE_LO */ 213 EDMA_RSP_Q_OUT_PTR_OFS = 0x24, /* also contains BASE_LO */
203 EDMA_RSP_Q_BASE_LO_MASK = 0xffffff00U,
204 EDMA_RSP_Q_PTR_SHIFT = 3, 214 EDMA_RSP_Q_PTR_SHIFT = 3,
205 215
206 EDMA_CMD_OFS = 0x28, 216 EDMA_CMD_OFS = 0x28,
@@ -208,14 +218,44 @@ enum {
208 EDMA_DS = (1 << 1), 218 EDMA_DS = (1 << 1),
209 ATA_RST = (1 << 2), 219 ATA_RST = (1 << 2),
210 220
221 EDMA_IORDY_TMOUT = 0x34,
222 EDMA_ARB_CFG = 0x38,
223
211 /* Host private flags (hp_flags) */ 224 /* Host private flags (hp_flags) */
212 MV_HP_FLAG_MSI = (1 << 0), 225 MV_HP_FLAG_MSI = (1 << 0),
226 MV_HP_ERRATA_50XXB0 = (1 << 1),
227 MV_HP_ERRATA_50XXB2 = (1 << 2),
228 MV_HP_ERRATA_60X1B2 = (1 << 3),
229 MV_HP_ERRATA_60X1C0 = (1 << 4),
230 MV_HP_50XX = (1 << 5),
213 231
214 /* Port private flags (pp_flags) */ 232 /* Port private flags (pp_flags) */
215 MV_PP_FLAG_EDMA_EN = (1 << 0), 233 MV_PP_FLAG_EDMA_EN = (1 << 0),
216 MV_PP_FLAG_EDMA_DS_ACT = (1 << 1), 234 MV_PP_FLAG_EDMA_DS_ACT = (1 << 1),
217}; 235};
218 236
237#define IS_50XX(hpriv) ((hpriv)->hp_flags & MV_HP_50XX)
238#define IS_60XX(hpriv) (((hpriv)->hp_flags & MV_HP_50XX) == 0)
239
240enum {
241 /* Our DMA boundary is determined by an ePRD being unable to handle
242 * anything larger than 64KB
243 */
244 MV_DMA_BOUNDARY = 0xffffU,
245
246 EDMA_REQ_Q_BASE_LO_MASK = 0xfffffc00U,
247
248 EDMA_RSP_Q_BASE_LO_MASK = 0xffffff00U,
249};
250
251enum chip_type {
252 chip_504x,
253 chip_508x,
254 chip_5080,
255 chip_604x,
256 chip_608x,
257};
258
219/* Command ReQuest Block: 32B */ 259/* Command ReQuest Block: 32B */
220struct mv_crqb { 260struct mv_crqb {
221 u32 sg_addr; 261 u32 sg_addr;
@@ -252,14 +292,37 @@ struct mv_port_priv {
252 u32 pp_flags; 292 u32 pp_flags;
253}; 293};
254 294
295struct mv_port_signal {
296 u32 amps;
297 u32 pre;
298};
299
300struct mv_host_priv;
301struct mv_hw_ops {
302 void (*phy_errata)(struct mv_host_priv *hpriv, void __iomem *mmio,
303 unsigned int port);
304 void (*enable_leds)(struct mv_host_priv *hpriv, void __iomem *mmio);
305 void (*read_preamp)(struct mv_host_priv *hpriv, int idx,
306 void __iomem *mmio);
307 int (*reset_hc)(struct mv_host_priv *hpriv, void __iomem *mmio,
308 unsigned int n_hc);
309 void (*reset_flash)(struct mv_host_priv *hpriv, void __iomem *mmio);
310 void (*reset_bus)(struct pci_dev *pdev, void __iomem *mmio);
311};
312
255struct mv_host_priv { 313struct mv_host_priv {
256 u32 hp_flags; 314 u32 hp_flags;
315 struct mv_port_signal signal[8];
316 const struct mv_hw_ops *ops;
257}; 317};
258 318
259static void mv_irq_clear(struct ata_port *ap); 319static void mv_irq_clear(struct ata_port *ap);
260static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in); 320static u32 mv_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
261static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val); 321static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
322static u32 mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in);
323static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val);
262static void mv_phy_reset(struct ata_port *ap); 324static void mv_phy_reset(struct ata_port *ap);
325static void __mv_phy_reset(struct ata_port *ap, int can_sleep);
263static void mv_host_stop(struct ata_host_set *host_set); 326static void mv_host_stop(struct ata_host_set *host_set);
264static int mv_port_start(struct ata_port *ap); 327static int mv_port_start(struct ata_port *ap);
265static void mv_port_stop(struct ata_port *ap); 328static void mv_port_stop(struct ata_port *ap);
@@ -270,6 +333,29 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance,
270static void mv_eng_timeout(struct ata_port *ap); 333static void mv_eng_timeout(struct ata_port *ap);
271static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent); 334static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
272 335
336static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
337 unsigned int port);
338static void mv5_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio);
339static void mv5_read_preamp(struct mv_host_priv *hpriv, int idx,
340 void __iomem *mmio);
341static int mv5_reset_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
342 unsigned int n_hc);
343static void mv5_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio);
344static void mv5_reset_bus(struct pci_dev *pdev, void __iomem *mmio);
345
346static void mv6_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
347 unsigned int port);
348static void mv6_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio);
349static void mv6_read_preamp(struct mv_host_priv *hpriv, int idx,
350 void __iomem *mmio);
351static int mv6_reset_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
352 unsigned int n_hc);
353static void mv6_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio);
354static void mv_reset_pci_bus(struct pci_dev *pdev, void __iomem *mmio);
355static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
356 unsigned int port_no);
357static void mv_stop_and_reset(struct ata_port *ap);
358
273static struct scsi_host_template mv_sht = { 359static struct scsi_host_template mv_sht = {
274 .module = THIS_MODULE, 360 .module = THIS_MODULE,
275 .name = DRV_NAME, 361 .name = DRV_NAME,
@@ -278,7 +364,7 @@ static struct scsi_host_template mv_sht = {
278 .eh_strategy_handler = ata_scsi_error, 364 .eh_strategy_handler = ata_scsi_error,
279 .can_queue = MV_USE_Q_DEPTH, 365 .can_queue = MV_USE_Q_DEPTH,
280 .this_id = ATA_SHT_THIS_ID, 366 .this_id = ATA_SHT_THIS_ID,
281 .sg_tablesize = MV_MAX_SG_CT, 367 .sg_tablesize = MV_MAX_SG_CT / 2,
282 .max_sectors = ATA_MAX_SECTORS, 368 .max_sectors = ATA_MAX_SECTORS,
283 .cmd_per_lun = ATA_SHT_CMD_PER_LUN, 369 .cmd_per_lun = ATA_SHT_CMD_PER_LUN,
284 .emulated = ATA_SHT_EMULATED, 370 .emulated = ATA_SHT_EMULATED,
@@ -290,7 +376,34 @@ static struct scsi_host_template mv_sht = {
290 .ordered_flush = 1, 376 .ordered_flush = 1,
291}; 377};
292 378
293static const struct ata_port_operations mv_ops = { 379static const struct ata_port_operations mv5_ops = {
380 .port_disable = ata_port_disable,
381
382 .tf_load = ata_tf_load,
383 .tf_read = ata_tf_read,
384 .check_status = ata_check_status,
385 .exec_command = ata_exec_command,
386 .dev_select = ata_std_dev_select,
387
388 .phy_reset = mv_phy_reset,
389
390 .qc_prep = mv_qc_prep,
391 .qc_issue = mv_qc_issue,
392
393 .eng_timeout = mv_eng_timeout,
394
395 .irq_handler = mv_interrupt,
396 .irq_clear = mv_irq_clear,
397
398 .scr_read = mv5_scr_read,
399 .scr_write = mv5_scr_write,
400
401 .port_start = mv_port_start,
402 .port_stop = mv_port_stop,
403 .host_stop = mv_host_stop,
404};
405
406static const struct ata_port_operations mv6_ops = {
294 .port_disable = ata_port_disable, 407 .port_disable = ata_port_disable,
295 408
296 .tf_load = ata_tf_load, 409 .tf_load = ata_tf_load,
@@ -322,37 +435,44 @@ static struct ata_port_info mv_port_info[] = {
322 .sht = &mv_sht, 435 .sht = &mv_sht,
323 .host_flags = MV_COMMON_FLAGS, 436 .host_flags = MV_COMMON_FLAGS,
324 .pio_mask = 0x1f, /* pio0-4 */ 437 .pio_mask = 0x1f, /* pio0-4 */
325 .udma_mask = 0, /* 0x7f (udma0-6 disabled for now) */ 438 .udma_mask = 0x7f, /* udma0-6 */
326 .port_ops = &mv_ops, 439 .port_ops = &mv5_ops,
327 }, 440 },
328 { /* chip_508x */ 441 { /* chip_508x */
329 .sht = &mv_sht, 442 .sht = &mv_sht,
330 .host_flags = (MV_COMMON_FLAGS | MV_FLAG_DUAL_HC), 443 .host_flags = (MV_COMMON_FLAGS | MV_FLAG_DUAL_HC),
331 .pio_mask = 0x1f, /* pio0-4 */ 444 .pio_mask = 0x1f, /* pio0-4 */
332 .udma_mask = 0, /* 0x7f (udma0-6 disabled for now) */ 445 .udma_mask = 0x7f, /* udma0-6 */
333 .port_ops = &mv_ops, 446 .port_ops = &mv5_ops,
447 },
448 { /* chip_5080 */
449 .sht = &mv_sht,
450 .host_flags = (MV_COMMON_FLAGS | MV_FLAG_DUAL_HC),
451 .pio_mask = 0x1f, /* pio0-4 */
452 .udma_mask = 0x7f, /* udma0-6 */
453 .port_ops = &mv5_ops,
334 }, 454 },
335 { /* chip_604x */ 455 { /* chip_604x */
336 .sht = &mv_sht, 456 .sht = &mv_sht,
337 .host_flags = (MV_COMMON_FLAGS | MV_6XXX_FLAGS), 457 .host_flags = (MV_COMMON_FLAGS | MV_6XXX_FLAGS),
338 .pio_mask = 0x1f, /* pio0-4 */ 458 .pio_mask = 0x1f, /* pio0-4 */
339 .udma_mask = 0x7f, /* udma0-6 */ 459 .udma_mask = 0x7f, /* udma0-6 */
340 .port_ops = &mv_ops, 460 .port_ops = &mv6_ops,
341 }, 461 },
342 { /* chip_608x */ 462 { /* chip_608x */
343 .sht = &mv_sht, 463 .sht = &mv_sht,
344 .host_flags = (MV_COMMON_FLAGS | MV_6XXX_FLAGS | 464 .host_flags = (MV_COMMON_FLAGS | MV_6XXX_FLAGS |
345 MV_FLAG_DUAL_HC), 465 MV_FLAG_DUAL_HC),
346 .pio_mask = 0x1f, /* pio0-4 */ 466 .pio_mask = 0x1f, /* pio0-4 */
347 .udma_mask = 0x7f, /* udma0-6 */ 467 .udma_mask = 0x7f, /* udma0-6 */
348 .port_ops = &mv_ops, 468 .port_ops = &mv6_ops,
349 }, 469 },
350}; 470};
351 471
352static const struct pci_device_id mv_pci_tbl[] = { 472static const struct pci_device_id mv_pci_tbl[] = {
353 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5040), 0, 0, chip_504x}, 473 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5040), 0, 0, chip_504x},
354 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5041), 0, 0, chip_504x}, 474 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5041), 0, 0, chip_504x},
355 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5080), 0, 0, chip_508x}, 475 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5080), 0, 0, chip_5080},
356 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5081), 0, 0, chip_508x}, 476 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x5081), 0, 0, chip_508x},
357 477
358 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x6040), 0, 0, chip_604x}, 478 {PCI_DEVICE(PCI_VENDOR_ID_MARVELL, 0x6040), 0, 0, chip_604x},
@@ -371,6 +491,24 @@ static struct pci_driver mv_pci_driver = {
371 .remove = ata_pci_remove_one, 491 .remove = ata_pci_remove_one,
372}; 492};
373 493
494static const struct mv_hw_ops mv5xxx_ops = {
495 .phy_errata = mv5_phy_errata,
496 .enable_leds = mv5_enable_leds,
497 .read_preamp = mv5_read_preamp,
498 .reset_hc = mv5_reset_hc,
499 .reset_flash = mv5_reset_flash,
500 .reset_bus = mv5_reset_bus,
501};
502
503static const struct mv_hw_ops mv6xxx_ops = {
504 .phy_errata = mv6_phy_errata,
505 .enable_leds = mv6_enable_leds,
506 .read_preamp = mv6_read_preamp,
507 .reset_hc = mv6_reset_hc,
508 .reset_flash = mv6_reset_flash,
509 .reset_bus = mv_reset_pci_bus,
510};
511
374/* 512/*
375 * Functions 513 * Functions
376 */ 514 */
@@ -386,11 +524,27 @@ static inline void __iomem *mv_hc_base(void __iomem *base, unsigned int hc)
386 return (base + MV_SATAHC0_REG_BASE + (hc * MV_SATAHC_REG_SZ)); 524 return (base + MV_SATAHC0_REG_BASE + (hc * MV_SATAHC_REG_SZ));
387} 525}
388 526
527static inline unsigned int mv_hc_from_port(unsigned int port)
528{
529 return port >> MV_PORT_HC_SHIFT;
530}
531
532static inline unsigned int mv_hardport_from_port(unsigned int port)
533{
534 return port & MV_PORT_MASK;
535}
536
537static inline void __iomem *mv_hc_base_from_port(void __iomem *base,
538 unsigned int port)
539{
540 return mv_hc_base(base, mv_hc_from_port(port));
541}
542
389static inline void __iomem *mv_port_base(void __iomem *base, unsigned int port) 543static inline void __iomem *mv_port_base(void __iomem *base, unsigned int port)
390{ 544{
391 return (mv_hc_base(base, port >> MV_PORT_HC_SHIFT) + 545 return mv_hc_base_from_port(base, port) +
392 MV_SATAHC_ARBTR_REG_SZ + 546 MV_SATAHC_ARBTR_REG_SZ +
393 ((port & MV_PORT_MASK) * MV_PORT_REG_SZ)); 547 (mv_hardport_from_port(port) * MV_PORT_REG_SZ);
394} 548}
395 549
396static inline void __iomem *mv_ap_base(struct ata_port *ap) 550static inline void __iomem *mv_ap_base(struct ata_port *ap)
@@ -398,9 +552,9 @@ static inline void __iomem *mv_ap_base(struct ata_port *ap)
398 return mv_port_base(ap->host_set->mmio_base, ap->port_no); 552 return mv_port_base(ap->host_set->mmio_base, ap->port_no);
399} 553}
400 554
401static inline int mv_get_hc_count(unsigned long hp_flags) 555static inline int mv_get_hc_count(unsigned long host_flags)
402{ 556{
403 return ((hp_flags & MV_FLAG_DUAL_HC) ? 2 : 1); 557 return ((host_flags & MV_FLAG_DUAL_HC) ? 2 : 1);
404} 558}
405 559
406static void mv_irq_clear(struct ata_port *ap) 560static void mv_irq_clear(struct ata_port *ap)
@@ -452,7 +606,7 @@ static void mv_stop_dma(struct ata_port *ap)
452 } else { 606 } else {
453 assert(!(EDMA_EN & readl(port_mmio + EDMA_CMD_OFS))); 607 assert(!(EDMA_EN & readl(port_mmio + EDMA_CMD_OFS)));
454 } 608 }
455 609
456 /* now properly wait for the eDMA to stop */ 610 /* now properly wait for the eDMA to stop */
457 for (i = 1000; i > 0; i--) { 611 for (i = 1000; i > 0; i--) {
458 reg = readl(port_mmio + EDMA_CMD_OFS); 612 reg = readl(port_mmio + EDMA_CMD_OFS);
@@ -503,7 +657,7 @@ static void mv_dump_all_regs(void __iomem *mmio_base, int port,
503 struct pci_dev *pdev) 657 struct pci_dev *pdev)
504{ 658{
505#ifdef ATA_DEBUG 659#ifdef ATA_DEBUG
506 void __iomem *hc_base = mv_hc_base(mmio_base, 660 void __iomem *hc_base = mv_hc_base(mmio_base,
507 port >> MV_PORT_HC_SHIFT); 661 port >> MV_PORT_HC_SHIFT);
508 void __iomem *port_base; 662 void __iomem *port_base;
509 int start_port, num_ports, p, start_hc, num_hcs, hc; 663 int start_port, num_ports, p, start_hc, num_hcs, hc;
@@ -517,7 +671,7 @@ static void mv_dump_all_regs(void __iomem *mmio_base, int port,
517 start_port = port; 671 start_port = port;
518 num_ports = num_hcs = 1; 672 num_ports = num_hcs = 1;
519 } 673 }
520 DPRINTK("All registers for port(s) %u-%u:\n", start_port, 674 DPRINTK("All registers for port(s) %u-%u:\n", start_port,
521 num_ports > 1 ? num_ports - 1 : start_port); 675 num_ports > 1 ? num_ports - 1 : start_port);
522 676
523 if (NULL != pdev) { 677 if (NULL != pdev) {
@@ -585,70 +739,6 @@ static void mv_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val)
585} 739}
586 740
587/** 741/**
588 * mv_global_soft_reset - Perform the 6xxx global soft reset
589 * @mmio_base: base address of the HBA
590 *
591 * This routine only applies to 6xxx parts.
592 *
593 * LOCKING:
594 * Inherited from caller.
595 */
596static int mv_global_soft_reset(void __iomem *mmio_base)
597{
598 void __iomem *reg = mmio_base + PCI_MAIN_CMD_STS_OFS;
599 int i, rc = 0;
600 u32 t;
601
602 /* Following procedure defined in PCI "main command and status
603 * register" table.
604 */
605 t = readl(reg);
606 writel(t | STOP_PCI_MASTER, reg);
607
608 for (i = 0; i < 1000; i++) {
609 udelay(1);
610 t = readl(reg);
611 if (PCI_MASTER_EMPTY & t) {
612 break;
613 }
614 }
615 if (!(PCI_MASTER_EMPTY & t)) {
616 printk(KERN_ERR DRV_NAME ": PCI master won't flush\n");
617 rc = 1;
618 goto done;
619 }
620
621 /* set reset */
622 i = 5;
623 do {
624 writel(t | GLOB_SFT_RST, reg);
625 t = readl(reg);
626 udelay(1);
627 } while (!(GLOB_SFT_RST & t) && (i-- > 0));
628
629 if (!(GLOB_SFT_RST & t)) {
630 printk(KERN_ERR DRV_NAME ": can't set global reset\n");
631 rc = 1;
632 goto done;
633 }
634
635 /* clear reset and *reenable the PCI master* (not mentioned in spec) */
636 i = 5;
637 do {
638 writel(t & ~(GLOB_SFT_RST | STOP_PCI_MASTER), reg);
639 t = readl(reg);
640 udelay(1);
641 } while ((GLOB_SFT_RST & t) && (i-- > 0));
642
643 if (GLOB_SFT_RST & t) {
644 printk(KERN_ERR DRV_NAME ": can't clear global reset\n");
645 rc = 1;
646 }
647done:
648 return rc;
649}
650
651/**
652 * mv_host_stop - Host specific cleanup/stop routine. 742 * mv_host_stop - Host specific cleanup/stop routine.
653 * @host_set: host data structure 743 * @host_set: host data structure
654 * 744 *
@@ -701,7 +791,7 @@ static int mv_port_start(struct ata_port *ap)
701 goto err_out; 791 goto err_out;
702 memset(pp, 0, sizeof(*pp)); 792 memset(pp, 0, sizeof(*pp));
703 793
704 mem = dma_alloc_coherent(dev, MV_PORT_PRIV_DMA_SZ, &mem_dma, 794 mem = dma_alloc_coherent(dev, MV_PORT_PRIV_DMA_SZ, &mem_dma,
705 GFP_KERNEL); 795 GFP_KERNEL);
706 if (!mem) 796 if (!mem)
707 goto err_out_pp; 797 goto err_out_pp;
@@ -711,7 +801,7 @@ static int mv_port_start(struct ata_port *ap)
711 if (rc) 801 if (rc)
712 goto err_out_priv; 802 goto err_out_priv;
713 803
714 /* First item in chunk of DMA memory: 804 /* First item in chunk of DMA memory:
715 * 32-slot command request table (CRQB), 32 bytes each in size 805 * 32-slot command request table (CRQB), 32 bytes each in size
716 */ 806 */
717 pp->crqb = mem; 807 pp->crqb = mem;
@@ -719,7 +809,7 @@ static int mv_port_start(struct ata_port *ap)
719 mem += MV_CRQB_Q_SZ; 809 mem += MV_CRQB_Q_SZ;
720 mem_dma += MV_CRQB_Q_SZ; 810 mem_dma += MV_CRQB_Q_SZ;
721 811
722 /* Second item: 812 /* Second item:
723 * 32-slot command response table (CRPB), 8 bytes each in size 813 * 32-slot command response table (CRPB), 8 bytes each in size
724 */ 814 */
725 pp->crpb = mem; 815 pp->crpb = mem;
@@ -733,18 +823,18 @@ static int mv_port_start(struct ata_port *ap)
733 pp->sg_tbl = mem; 823 pp->sg_tbl = mem;
734 pp->sg_tbl_dma = mem_dma; 824 pp->sg_tbl_dma = mem_dma;
735 825
736 writelfl(EDMA_CFG_Q_DEPTH | EDMA_CFG_RD_BRST_EXT | 826 writelfl(EDMA_CFG_Q_DEPTH | EDMA_CFG_RD_BRST_EXT |
737 EDMA_CFG_WR_BUFF_LEN, port_mmio + EDMA_CFG_OFS); 827 EDMA_CFG_WR_BUFF_LEN, port_mmio + EDMA_CFG_OFS);
738 828
739 writel((pp->crqb_dma >> 16) >> 16, port_mmio + EDMA_REQ_Q_BASE_HI_OFS); 829 writel((pp->crqb_dma >> 16) >> 16, port_mmio + EDMA_REQ_Q_BASE_HI_OFS);
740 writelfl(pp->crqb_dma & EDMA_REQ_Q_BASE_LO_MASK, 830 writelfl(pp->crqb_dma & EDMA_REQ_Q_BASE_LO_MASK,
741 port_mmio + EDMA_REQ_Q_IN_PTR_OFS); 831 port_mmio + EDMA_REQ_Q_IN_PTR_OFS);
742 832
743 writelfl(0, port_mmio + EDMA_REQ_Q_OUT_PTR_OFS); 833 writelfl(0, port_mmio + EDMA_REQ_Q_OUT_PTR_OFS);
744 writelfl(0, port_mmio + EDMA_RSP_Q_IN_PTR_OFS); 834 writelfl(0, port_mmio + EDMA_RSP_Q_IN_PTR_OFS);
745 835
746 writel((pp->crpb_dma >> 16) >> 16, port_mmio + EDMA_RSP_Q_BASE_HI_OFS); 836 writel((pp->crpb_dma >> 16) >> 16, port_mmio + EDMA_RSP_Q_BASE_HI_OFS);
747 writelfl(pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK, 837 writelfl(pp->crpb_dma & EDMA_RSP_Q_BASE_LO_MASK,
748 port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); 838 port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
749 839
750 pp->req_producer = pp->rsp_consumer = 0; 840 pp->req_producer = pp->rsp_consumer = 0;
@@ -805,20 +895,30 @@ static void mv_fill_sg(struct ata_queued_cmd *qc)
805 struct scatterlist *sg; 895 struct scatterlist *sg;
806 896
807 ata_for_each_sg(sg, qc) { 897 ata_for_each_sg(sg, qc) {
808 u32 sg_len;
809 dma_addr_t addr; 898 dma_addr_t addr;
899 u32 sg_len, len, offset;
810 900
811 addr = sg_dma_address(sg); 901 addr = sg_dma_address(sg);
812 sg_len = sg_dma_len(sg); 902 sg_len = sg_dma_len(sg);
813 903
814 pp->sg_tbl[i].addr = cpu_to_le32(addr & 0xffffffff); 904 while (sg_len) {
815 pp->sg_tbl[i].addr_hi = cpu_to_le32((addr >> 16) >> 16); 905 offset = addr & MV_DMA_BOUNDARY;
816 assert(0 == (sg_len & ~MV_DMA_BOUNDARY)); 906 len = sg_len;
817 pp->sg_tbl[i].flags_size = cpu_to_le32(sg_len); 907 if ((offset + sg_len) > 0x10000)
818 if (ata_sg_is_last(sg, qc)) 908 len = 0x10000 - offset;
819 pp->sg_tbl[i].flags_size |= cpu_to_le32(EPRD_FLAG_END_OF_TBL); 909
910 pp->sg_tbl[i].addr = cpu_to_le32(addr & 0xffffffff);
911 pp->sg_tbl[i].addr_hi = cpu_to_le32((addr >> 16) >> 16);
912 pp->sg_tbl[i].flags_size = cpu_to_le32(len);
913
914 sg_len -= len;
915 addr += len;
916
917 if (!sg_len && ata_sg_is_last(sg, qc))
918 pp->sg_tbl[i].flags_size |= cpu_to_le32(EPRD_FLAG_END_OF_TBL);
820 919
821 i++; 920 i++;
921 }
822 } 922 }
823} 923}
824 924
@@ -859,7 +959,7 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
859 } 959 }
860 960
861 /* the req producer index should be the same as we remember it */ 961 /* the req producer index should be the same as we remember it */
862 assert(((readl(mv_ap_base(qc->ap) + EDMA_REQ_Q_IN_PTR_OFS) >> 962 assert(((readl(mv_ap_base(qc->ap) + EDMA_REQ_Q_IN_PTR_OFS) >>
863 EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) == 963 EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) ==
864 pp->req_producer); 964 pp->req_producer);
865 965
@@ -871,9 +971,9 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
871 assert(MV_MAX_Q_DEPTH > qc->tag); 971 assert(MV_MAX_Q_DEPTH > qc->tag);
872 flags |= qc->tag << CRQB_TAG_SHIFT; 972 flags |= qc->tag << CRQB_TAG_SHIFT;
873 973
874 pp->crqb[pp->req_producer].sg_addr = 974 pp->crqb[pp->req_producer].sg_addr =
875 cpu_to_le32(pp->sg_tbl_dma & 0xffffffff); 975 cpu_to_le32(pp->sg_tbl_dma & 0xffffffff);
876 pp->crqb[pp->req_producer].sg_addr_hi = 976 pp->crqb[pp->req_producer].sg_addr_hi =
877 cpu_to_le32((pp->sg_tbl_dma >> 16) >> 16); 977 cpu_to_le32((pp->sg_tbl_dma >> 16) >> 16);
878 pp->crqb[pp->req_producer].ctrl_flags = cpu_to_le16(flags); 978 pp->crqb[pp->req_producer].ctrl_flags = cpu_to_le16(flags);
879 979
@@ -896,7 +996,7 @@ static void mv_qc_prep(struct ata_queued_cmd *qc)
896#ifdef LIBATA_NCQ /* FIXME: remove this line when NCQ added */ 996#ifdef LIBATA_NCQ /* FIXME: remove this line when NCQ added */
897 case ATA_CMD_FPDMA_READ: 997 case ATA_CMD_FPDMA_READ:
898 case ATA_CMD_FPDMA_WRITE: 998 case ATA_CMD_FPDMA_WRITE:
899 mv_crqb_pack_cmd(cw++, tf->hob_feature, ATA_REG_FEATURE, 0); 999 mv_crqb_pack_cmd(cw++, tf->hob_feature, ATA_REG_FEATURE, 0);
900 mv_crqb_pack_cmd(cw++, tf->feature, ATA_REG_FEATURE, 0); 1000 mv_crqb_pack_cmd(cw++, tf->feature, ATA_REG_FEATURE, 0);
901 break; 1001 break;
902#endif /* FIXME: remove this line when NCQ added */ 1002#endif /* FIXME: remove this line when NCQ added */
@@ -962,7 +1062,7 @@ static int mv_qc_issue(struct ata_queued_cmd *qc)
962 pp->req_producer); 1062 pp->req_producer);
963 /* until we do queuing, the queue should be empty at this point */ 1063 /* until we do queuing, the queue should be empty at this point */
964 assert(((in_ptr >> EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) == 1064 assert(((in_ptr >> EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) ==
965 ((readl(port_mmio + EDMA_REQ_Q_OUT_PTR_OFS) >> 1065 ((readl(port_mmio + EDMA_REQ_Q_OUT_PTR_OFS) >>
966 EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK)); 1066 EDMA_REQ_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK));
967 1067
968 mv_inc_q_index(&pp->req_producer); /* now incr producer index */ 1068 mv_inc_q_index(&pp->req_producer); /* now incr producer index */
@@ -999,15 +1099,15 @@ static u8 mv_get_crpb_status(struct ata_port *ap)
999 out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS); 1099 out_ptr = readl(port_mmio + EDMA_RSP_Q_OUT_PTR_OFS);
1000 1100
1001 /* the response consumer index should be the same as we remember it */ 1101 /* the response consumer index should be the same as we remember it */
1002 assert(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) == 1102 assert(((out_ptr >> EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) ==
1003 pp->rsp_consumer); 1103 pp->rsp_consumer);
1004 1104
1005 /* increment our consumer index... */ 1105 /* increment our consumer index... */
1006 pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer); 1106 pp->rsp_consumer = mv_inc_q_index(&pp->rsp_consumer);
1007 1107
1008 /* and, until we do NCQ, there should only be 1 CRPB waiting */ 1108 /* and, until we do NCQ, there should only be 1 CRPB waiting */
1009 assert(((readl(port_mmio + EDMA_RSP_Q_IN_PTR_OFS) >> 1109 assert(((readl(port_mmio + EDMA_RSP_Q_IN_PTR_OFS) >>
1010 EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) == 1110 EDMA_RSP_Q_PTR_SHIFT) & MV_MAX_Q_DEPTH_MASK) ==
1011 pp->rsp_consumer); 1111 pp->rsp_consumer);
1012 1112
1013 /* write out our inc'd consumer index so EDMA knows we're caught up */ 1113 /* write out our inc'd consumer index so EDMA knows we're caught up */
@@ -1055,7 +1155,7 @@ static void mv_err_intr(struct ata_port *ap)
1055 1155
1056 /* check for fatal here and recover if needed */ 1156 /* check for fatal here and recover if needed */
1057 if (EDMA_ERR_FATAL & edma_err_cause) { 1157 if (EDMA_ERR_FATAL & edma_err_cause) {
1058 mv_phy_reset(ap); 1158 mv_stop_and_reset(ap);
1059 } 1159 }
1060} 1160}
1061 1161
@@ -1120,6 +1220,10 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1120 handled++; 1220 handled++;
1121 } 1221 }
1122 1222
1223 if (ap &&
1224 (ap->flags & (ATA_FLAG_PORT_DISABLED | ATA_FLAG_NOINTR)))
1225 continue;
1226
1123 err_mask = ac_err_mask(ata_status); 1227 err_mask = ac_err_mask(ata_status);
1124 1228
1125 shift = port << 1; /* (port * 2) */ 1229 shift = port << 1; /* (port * 2) */
@@ -1131,14 +1235,15 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1131 err_mask |= AC_ERR_OTHER; 1235 err_mask |= AC_ERR_OTHER;
1132 handled++; 1236 handled++;
1133 } 1237 }
1134 1238
1135 if (handled && ap) { 1239 if (handled && ap) {
1136 qc = ata_qc_from_tag(ap, ap->active_tag); 1240 qc = ata_qc_from_tag(ap, ap->active_tag);
1137 if (NULL != qc) { 1241 if (NULL != qc) {
1138 VPRINTK("port %u IRQ found for qc, " 1242 VPRINTK("port %u IRQ found for qc, "
1139 "ata_status 0x%x\n", port,ata_status); 1243 "ata_status 0x%x\n", port,ata_status);
1140 /* mark qc status appropriately */ 1244 /* mark qc status appropriately */
1141 ata_qc_complete(qc, err_mask); 1245 if (!(qc->tf.ctl & ATA_NIEN))
1246 ata_qc_complete(qc, err_mask);
1142 } 1247 }
1143 } 1248 }
1144 } 1249 }
@@ -1146,7 +1251,7 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1146} 1251}
1147 1252
1148/** 1253/**
1149 * mv_interrupt - 1254 * mv_interrupt -
1150 * @irq: unused 1255 * @irq: unused
1151 * @dev_instance: private data; in this case the host structure 1256 * @dev_instance: private data; in this case the host structure
1152 * @regs: unused 1257 * @regs: unused
@@ -1156,7 +1261,7 @@ static void mv_host_intr(struct ata_host_set *host_set, u32 relevant,
1156 * routine to handle. Also check for PCI errors which are only 1261 * routine to handle. Also check for PCI errors which are only
1157 * reported here. 1262 * reported here.
1158 * 1263 *
1159 * LOCKING: 1264 * LOCKING:
1160 * This routine holds the host_set lock while processing pending 1265 * This routine holds the host_set lock while processing pending
1161 * interrupts. 1266 * interrupts.
1162 */ 1267 */
@@ -1202,8 +1307,422 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance,
1202 return IRQ_RETVAL(handled); 1307 return IRQ_RETVAL(handled);
1203} 1308}
1204 1309
1310static void __iomem *mv5_phy_base(void __iomem *mmio, unsigned int port)
1311{
1312 void __iomem *hc_mmio = mv_hc_base_from_port(mmio, port);
1313 unsigned long ofs = (mv_hardport_from_port(port) + 1) * 0x100UL;
1314
1315 return hc_mmio + ofs;
1316}
1317
1318static unsigned int mv5_scr_offset(unsigned int sc_reg_in)
1319{
1320 unsigned int ofs;
1321
1322 switch (sc_reg_in) {
1323 case SCR_STATUS:
1324 case SCR_ERROR:
1325 case SCR_CONTROL:
1326 ofs = sc_reg_in * sizeof(u32);
1327 break;
1328 default:
1329 ofs = 0xffffffffU;
1330 break;
1331 }
1332 return ofs;
1333}
1334
1335static u32 mv5_scr_read(struct ata_port *ap, unsigned int sc_reg_in)
1336{
1337 void __iomem *mmio = mv5_phy_base(ap->host_set->mmio_base, ap->port_no);
1338 unsigned int ofs = mv5_scr_offset(sc_reg_in);
1339
1340 if (ofs != 0xffffffffU)
1341 return readl(mmio + ofs);
1342 else
1343 return (u32) ofs;
1344}
1345
1346static void mv5_scr_write(struct ata_port *ap, unsigned int sc_reg_in, u32 val)
1347{
1348 void __iomem *mmio = mv5_phy_base(ap->host_set->mmio_base, ap->port_no);
1349 unsigned int ofs = mv5_scr_offset(sc_reg_in);
1350
1351 if (ofs != 0xffffffffU)
1352 writelfl(val, mmio + ofs);
1353}
1354
1355static void mv5_reset_bus(struct pci_dev *pdev, void __iomem *mmio)
1356{
1357 u8 rev_id;
1358 int early_5080;
1359
1360 pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id);
1361
1362 early_5080 = (pdev->device == 0x5080) && (rev_id == 0);
1363
1364 if (!early_5080) {
1365 u32 tmp = readl(mmio + MV_PCI_EXP_ROM_BAR_CTL);
1366 tmp |= (1 << 0);
1367 writel(tmp, mmio + MV_PCI_EXP_ROM_BAR_CTL);
1368 }
1369
1370 mv_reset_pci_bus(pdev, mmio);
1371}
1372
1373static void mv5_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio)
1374{
1375 writel(0x0fcfffff, mmio + MV_FLASH_CTL);
1376}
1377
1378static void mv5_read_preamp(struct mv_host_priv *hpriv, int idx,
1379 void __iomem *mmio)
1380{
1381 void __iomem *phy_mmio = mv5_phy_base(mmio, idx);
1382 u32 tmp;
1383
1384 tmp = readl(phy_mmio + MV5_PHY_MODE);
1385
1386 hpriv->signal[idx].pre = tmp & 0x1800; /* bits 12:11 */
1387 hpriv->signal[idx].amps = tmp & 0xe0; /* bits 7:5 */
1388}
1389
1390static void mv5_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio)
1391{
1392 u32 tmp;
1393
1394 writel(0, mmio + MV_GPIO_PORT_CTL);
1395
1396 /* FIXME: handle MV_HP_ERRATA_50XXB2 errata */
1397
1398 tmp = readl(mmio + MV_PCI_EXP_ROM_BAR_CTL);
1399 tmp |= ~(1 << 0);
1400 writel(tmp, mmio + MV_PCI_EXP_ROM_BAR_CTL);
1401}
1402
1403static void mv5_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
1404 unsigned int port)
1405{
1406 void __iomem *phy_mmio = mv5_phy_base(mmio, port);
1407 const u32 mask = (1<<12) | (1<<11) | (1<<7) | (1<<6) | (1<<5);
1408 u32 tmp;
1409 int fix_apm_sq = (hpriv->hp_flags & MV_HP_ERRATA_50XXB0);
1410
1411 if (fix_apm_sq) {
1412 tmp = readl(phy_mmio + MV5_LT_MODE);
1413 tmp |= (1 << 19);
1414 writel(tmp, phy_mmio + MV5_LT_MODE);
1415
1416 tmp = readl(phy_mmio + MV5_PHY_CTL);
1417 tmp &= ~0x3;
1418 tmp |= 0x1;
1419 writel(tmp, phy_mmio + MV5_PHY_CTL);
1420 }
1421
1422 tmp = readl(phy_mmio + MV5_PHY_MODE);
1423 tmp &= ~mask;
1424 tmp |= hpriv->signal[port].pre;
1425 tmp |= hpriv->signal[port].amps;
1426 writel(tmp, phy_mmio + MV5_PHY_MODE);
1427}
1428
1429
1430#undef ZERO
1431#define ZERO(reg) writel(0, port_mmio + (reg))
1432static void mv5_reset_hc_port(struct mv_host_priv *hpriv, void __iomem *mmio,
1433 unsigned int port)
1434{
1435 void __iomem *port_mmio = mv_port_base(mmio, port);
1436
1437 writelfl(EDMA_DS, port_mmio + EDMA_CMD_OFS);
1438
1439 mv_channel_reset(hpriv, mmio, port);
1440
1441 ZERO(0x028); /* command */
1442 writel(0x11f, port_mmio + EDMA_CFG_OFS);
1443 ZERO(0x004); /* timer */
1444 ZERO(0x008); /* irq err cause */
1445 ZERO(0x00c); /* irq err mask */
1446 ZERO(0x010); /* rq bah */
1447 ZERO(0x014); /* rq inp */
1448 ZERO(0x018); /* rq outp */
1449 ZERO(0x01c); /* respq bah */
1450 ZERO(0x024); /* respq outp */
1451 ZERO(0x020); /* respq inp */
1452 ZERO(0x02c); /* test control */
1453 writel(0xbc, port_mmio + EDMA_IORDY_TMOUT);
1454}
1455#undef ZERO
1456
1457#define ZERO(reg) writel(0, hc_mmio + (reg))
1458static void mv5_reset_one_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
1459 unsigned int hc)
1460{
1461 void __iomem *hc_mmio = mv_hc_base(mmio, hc);
1462 u32 tmp;
1463
1464 ZERO(0x00c);
1465 ZERO(0x010);
1466 ZERO(0x014);
1467 ZERO(0x018);
1468
1469 tmp = readl(hc_mmio + 0x20);
1470 tmp &= 0x1c1c1c1c;
1471 tmp |= 0x03030303;
1472 writel(tmp, hc_mmio + 0x20);
1473}
1474#undef ZERO
1475
1476static int mv5_reset_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
1477 unsigned int n_hc)
1478{
1479 unsigned int hc, port;
1480
1481 for (hc = 0; hc < n_hc; hc++) {
1482 for (port = 0; port < MV_PORTS_PER_HC; port++)
1483 mv5_reset_hc_port(hpriv, mmio,
1484 (hc * MV_PORTS_PER_HC) + port);
1485
1486 mv5_reset_one_hc(hpriv, mmio, hc);
1487 }
1488
1489 return 0;
1490}
1491
1492#undef ZERO
1493#define ZERO(reg) writel(0, mmio + (reg))
1494static void mv_reset_pci_bus(struct pci_dev *pdev, void __iomem *mmio)
1495{
1496 u32 tmp;
1497
1498 tmp = readl(mmio + MV_PCI_MODE);
1499 tmp &= 0xff00ffff;
1500 writel(tmp, mmio + MV_PCI_MODE);
1501
1502 ZERO(MV_PCI_DISC_TIMER);
1503 ZERO(MV_PCI_MSI_TRIGGER);
1504 writel(0x000100ff, mmio + MV_PCI_XBAR_TMOUT);
1505 ZERO(HC_MAIN_IRQ_MASK_OFS);
1506 ZERO(MV_PCI_SERR_MASK);
1507 ZERO(PCI_IRQ_CAUSE_OFS);
1508 ZERO(PCI_IRQ_MASK_OFS);
1509 ZERO(MV_PCI_ERR_LOW_ADDRESS);
1510 ZERO(MV_PCI_ERR_HIGH_ADDRESS);
1511 ZERO(MV_PCI_ERR_ATTRIBUTE);
1512 ZERO(MV_PCI_ERR_COMMAND);
1513}
1514#undef ZERO
1515
1516static void mv6_reset_flash(struct mv_host_priv *hpriv, void __iomem *mmio)
1517{
1518 u32 tmp;
1519
1520 mv5_reset_flash(hpriv, mmio);
1521
1522 tmp = readl(mmio + MV_GPIO_PORT_CTL);
1523 tmp &= 0x3;
1524 tmp |= (1 << 5) | (1 << 6);
1525 writel(tmp, mmio + MV_GPIO_PORT_CTL);
1526}
1527
1528/**
1529 * mv6_reset_hc - Perform the 6xxx global soft reset
1530 * @mmio: base address of the HBA
1531 *
1532 * This routine only applies to 6xxx parts.
1533 *
1534 * LOCKING:
1535 * Inherited from caller.
1536 */
1537static int mv6_reset_hc(struct mv_host_priv *hpriv, void __iomem *mmio,
1538 unsigned int n_hc)
1539{
1540 void __iomem *reg = mmio + PCI_MAIN_CMD_STS_OFS;
1541 int i, rc = 0;
1542 u32 t;
1543
1544 /* Following procedure defined in PCI "main command and status
1545 * register" table.
1546 */
1547 t = readl(reg);
1548 writel(t | STOP_PCI_MASTER, reg);
1549
1550 for (i = 0; i < 1000; i++) {
1551 udelay(1);
1552 t = readl(reg);
1553 if (PCI_MASTER_EMPTY & t) {
1554 break;
1555 }
1556 }
1557 if (!(PCI_MASTER_EMPTY & t)) {
1558 printk(KERN_ERR DRV_NAME ": PCI master won't flush\n");
1559 rc = 1;
1560 goto done;
1561 }
1562
1563 /* set reset */
1564 i = 5;
1565 do {
1566 writel(t | GLOB_SFT_RST, reg);
1567 t = readl(reg);
1568 udelay(1);
1569 } while (!(GLOB_SFT_RST & t) && (i-- > 0));
1570
1571 if (!(GLOB_SFT_RST & t)) {
1572 printk(KERN_ERR DRV_NAME ": can't set global reset\n");
1573 rc = 1;
1574 goto done;
1575 }
1576
1577 /* clear reset and *reenable the PCI master* (not mentioned in spec) */
1578 i = 5;
1579 do {
1580 writel(t & ~(GLOB_SFT_RST | STOP_PCI_MASTER), reg);
1581 t = readl(reg);
1582 udelay(1);
1583 } while ((GLOB_SFT_RST & t) && (i-- > 0));
1584
1585 if (GLOB_SFT_RST & t) {
1586 printk(KERN_ERR DRV_NAME ": can't clear global reset\n");
1587 rc = 1;
1588 }
1589done:
1590 return rc;
1591}
1592
1593static void mv6_read_preamp(struct mv_host_priv *hpriv, int idx,
1594 void __iomem *mmio)
1595{
1596 void __iomem *port_mmio;
1597 u32 tmp;
1598
1599 tmp = readl(mmio + MV_RESET_CFG);
1600 if ((tmp & (1 << 0)) == 0) {
1601 hpriv->signal[idx].amps = 0x7 << 8;
1602 hpriv->signal[idx].pre = 0x1 << 5;
1603 return;
1604 }
1605
1606 port_mmio = mv_port_base(mmio, idx);
1607 tmp = readl(port_mmio + PHY_MODE2);
1608
1609 hpriv->signal[idx].amps = tmp & 0x700; /* bits 10:8 */
1610 hpriv->signal[idx].pre = tmp & 0xe0; /* bits 7:5 */
1611}
1612
1613static void mv6_enable_leds(struct mv_host_priv *hpriv, void __iomem *mmio)
1614{
1615 writel(0x00000060, mmio + MV_GPIO_PORT_CTL);
1616}
1617
1618static void mv6_phy_errata(struct mv_host_priv *hpriv, void __iomem *mmio,
1619 unsigned int port)
1620{
1621 void __iomem *port_mmio = mv_port_base(mmio, port);
1622
1623 u32 hp_flags = hpriv->hp_flags;
1624 int fix_phy_mode2 =
1625 hp_flags & (MV_HP_ERRATA_60X1B2 | MV_HP_ERRATA_60X1C0);
1626 int fix_phy_mode4 =
1627 hp_flags & (MV_HP_ERRATA_60X1B2 | MV_HP_ERRATA_60X1C0);
1628 u32 m2, tmp;
1629
1630 if (fix_phy_mode2) {
1631 m2 = readl(port_mmio + PHY_MODE2);
1632 m2 &= ~(1 << 16);
1633 m2 |= (1 << 31);
1634 writel(m2, port_mmio + PHY_MODE2);
1635
1636 udelay(200);
1637
1638 m2 = readl(port_mmio + PHY_MODE2);
1639 m2 &= ~((1 << 16) | (1 << 31));
1640 writel(m2, port_mmio + PHY_MODE2);
1641
1642 udelay(200);
1643 }
1644
1645 /* who knows what this magic does */
1646 tmp = readl(port_mmio + PHY_MODE3);
1647 tmp &= ~0x7F800000;
1648 tmp |= 0x2A800000;
1649 writel(tmp, port_mmio + PHY_MODE3);
1650
1651 if (fix_phy_mode4) {
1652 u32 m4;
1653
1654 m4 = readl(port_mmio + PHY_MODE4);
1655
1656 if (hp_flags & MV_HP_ERRATA_60X1B2)
1657 tmp = readl(port_mmio + 0x310);
1658
1659 m4 = (m4 & ~(1 << 1)) | (1 << 0);
1660
1661 writel(m4, port_mmio + PHY_MODE4);
1662
1663 if (hp_flags & MV_HP_ERRATA_60X1B2)
1664 writel(tmp, port_mmio + 0x310);
1665 }
1666
1667 /* Revert values of pre-emphasis and signal amps to the saved ones */
1668 m2 = readl(port_mmio + PHY_MODE2);
1669
1670 m2 &= ~MV_M2_PREAMP_MASK;
1671 m2 |= hpriv->signal[port].amps;
1672 m2 |= hpriv->signal[port].pre;
1673 m2 &= ~(1 << 16);
1674
1675 writel(m2, port_mmio + PHY_MODE2);
1676}
1677
1678static void mv_channel_reset(struct mv_host_priv *hpriv, void __iomem *mmio,
1679 unsigned int port_no)
1680{
1681 void __iomem *port_mmio = mv_port_base(mmio, port_no);
1682
1683 writelfl(ATA_RST, port_mmio + EDMA_CMD_OFS);
1684
1685 if (IS_60XX(hpriv)) {
1686 u32 ifctl = readl(port_mmio + SATA_INTERFACE_CTL);
1687 ifctl |= (1 << 12) | (1 << 7);
1688 writelfl(ifctl, port_mmio + SATA_INTERFACE_CTL);
1689 }
1690
1691 udelay(25); /* allow reset propagation */
1692
1693 /* Spec never mentions clearing the bit. Marvell's driver does
1694 * clear the bit, however.
1695 */
1696 writelfl(0, port_mmio + EDMA_CMD_OFS);
1697
1698 hpriv->ops->phy_errata(hpriv, mmio, port_no);
1699
1700 if (IS_50XX(hpriv))
1701 mdelay(1);
1702}
1703
1704static void mv_stop_and_reset(struct ata_port *ap)
1705{
1706 struct mv_host_priv *hpriv = ap->host_set->private_data;
1707 void __iomem *mmio = ap->host_set->mmio_base;
1708
1709 mv_stop_dma(ap);
1710
1711 mv_channel_reset(hpriv, mmio, ap->port_no);
1712
1713 __mv_phy_reset(ap, 0);
1714}
1715
1716static inline void __msleep(unsigned int msec, int can_sleep)
1717{
1718 if (can_sleep)
1719 msleep(msec);
1720 else
1721 mdelay(msec);
1722}
1723
1205/** 1724/**
1206 * mv_phy_reset - Perform eDMA reset followed by COMRESET 1725 * __mv_phy_reset - Perform eDMA reset followed by COMRESET
1207 * @ap: ATA channel to manipulate 1726 * @ap: ATA channel to manipulate
1208 * 1727 *
1209 * Part of this is taken from __sata_phy_reset and modified to 1728 * Part of this is taken from __sata_phy_reset and modified to
@@ -1213,41 +1732,47 @@ static irqreturn_t mv_interrupt(int irq, void *dev_instance,
1213 * Inherited from caller. This is coded to safe to call at 1732 * Inherited from caller. This is coded to safe to call at
1214 * interrupt level, i.e. it does not sleep. 1733 * interrupt level, i.e. it does not sleep.
1215 */ 1734 */
1216static void mv_phy_reset(struct ata_port *ap) 1735static void __mv_phy_reset(struct ata_port *ap, int can_sleep)
1217{ 1736{
1737 struct mv_port_priv *pp = ap->private_data;
1738 struct mv_host_priv *hpriv = ap->host_set->private_data;
1218 void __iomem *port_mmio = mv_ap_base(ap); 1739 void __iomem *port_mmio = mv_ap_base(ap);
1219 struct ata_taskfile tf; 1740 struct ata_taskfile tf;
1220 struct ata_device *dev = &ap->device[0]; 1741 struct ata_device *dev = &ap->device[0];
1221 unsigned long timeout; 1742 unsigned long timeout;
1743 int retry = 5;
1744 u32 sstatus;
1222 1745
1223 VPRINTK("ENTER, port %u, mmio 0x%p\n", ap->port_no, port_mmio); 1746 VPRINTK("ENTER, port %u, mmio 0x%p\n", ap->port_no, port_mmio);
1224 1747
1225 mv_stop_dma(ap); 1748 DPRINTK("S-regs after ATA_RST: SStat 0x%08x SErr 0x%08x "
1226
1227 writelfl(ATA_RST, port_mmio + EDMA_CMD_OFS);
1228 udelay(25); /* allow reset propagation */
1229
1230 /* Spec never mentions clearing the bit. Marvell's driver does
1231 * clear the bit, however.
1232 */
1233 writelfl(0, port_mmio + EDMA_CMD_OFS);
1234
1235 VPRINTK("S-regs after ATA_RST: SStat 0x%08x SErr 0x%08x "
1236 "SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS), 1749 "SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS),
1237 mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL)); 1750 mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL));
1238 1751
1239 /* proceed to init communications via the scr_control reg */ 1752 /* Issue COMRESET via SControl */
1753comreset_retry:
1240 scr_write_flush(ap, SCR_CONTROL, 0x301); 1754 scr_write_flush(ap, SCR_CONTROL, 0x301);
1241 mdelay(1); 1755 __msleep(1, can_sleep);
1756
1242 scr_write_flush(ap, SCR_CONTROL, 0x300); 1757 scr_write_flush(ap, SCR_CONTROL, 0x300);
1243 timeout = jiffies + (HZ * 1); 1758 __msleep(20, can_sleep);
1759
1760 timeout = jiffies + msecs_to_jiffies(200);
1244 do { 1761 do {
1245 mdelay(10); 1762 sstatus = scr_read(ap, SCR_STATUS) & 0x3;
1246 if ((scr_read(ap, SCR_STATUS) & 0xf) != 1) 1763 if ((sstatus == 3) || (sstatus == 0))
1247 break; 1764 break;
1765
1766 __msleep(1, can_sleep);
1248 } while (time_before(jiffies, timeout)); 1767 } while (time_before(jiffies, timeout));
1249 1768
1250 VPRINTK("S-regs after PHY wake: SStat 0x%08x SErr 0x%08x " 1769 /* work around errata */
1770 if (IS_60XX(hpriv) &&
1771 (sstatus != 0x0) && (sstatus != 0x113) && (sstatus != 0x123) &&
1772 (retry-- > 0))
1773 goto comreset_retry;
1774
1775 DPRINTK("S-regs after PHY wake: SStat 0x%08x SErr 0x%08x "
1251 "SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS), 1776 "SCtrl 0x%08x\n", mv_scr_read(ap, SCR_STATUS),
1252 mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL)); 1777 mv_scr_read(ap, SCR_ERROR), mv_scr_read(ap, SCR_CONTROL));
1253 1778
@@ -1261,6 +1786,21 @@ static void mv_phy_reset(struct ata_port *ap)
1261 } 1786 }
1262 ap->cbl = ATA_CBL_SATA; 1787 ap->cbl = ATA_CBL_SATA;
1263 1788
1789 /* even after SStatus reflects that device is ready,
1790 * it seems to take a while for link to be fully
1791 * established (and thus Status no longer 0x80/0x7F),
1792 * so we poll a bit for that, here.
1793 */
1794 retry = 20;
1795 while (1) {
1796 u8 drv_stat = ata_check_status(ap);
1797 if ((drv_stat != 0x80) && (drv_stat != 0x7f))
1798 break;
1799 __msleep(500, can_sleep);
1800 if (retry-- <= 0)
1801 break;
1802 }
1803
1264 tf.lbah = readb((void __iomem *) ap->ioaddr.lbah_addr); 1804 tf.lbah = readb((void __iomem *) ap->ioaddr.lbah_addr);
1265 tf.lbam = readb((void __iomem *) ap->ioaddr.lbam_addr); 1805 tf.lbam = readb((void __iomem *) ap->ioaddr.lbam_addr);
1266 tf.lbal = readb((void __iomem *) ap->ioaddr.lbal_addr); 1806 tf.lbal = readb((void __iomem *) ap->ioaddr.lbal_addr);
@@ -1271,9 +1811,19 @@ static void mv_phy_reset(struct ata_port *ap)
1271 VPRINTK("Port disabled post-sig: No device present.\n"); 1811 VPRINTK("Port disabled post-sig: No device present.\n");
1272 ata_port_disable(ap); 1812 ata_port_disable(ap);
1273 } 1813 }
1814
1815 writelfl(0, port_mmio + EDMA_ERR_IRQ_CAUSE_OFS);
1816
1817 pp->pp_flags &= ~MV_PP_FLAG_EDMA_EN;
1818
1274 VPRINTK("EXIT\n"); 1819 VPRINTK("EXIT\n");
1275} 1820}
1276 1821
1822static void mv_phy_reset(struct ata_port *ap)
1823{
1824 __mv_phy_reset(ap, 1);
1825}
1826
1277/** 1827/**
1278 * mv_eng_timeout - Routine called by libata when SCSI times out I/O 1828 * mv_eng_timeout - Routine called by libata when SCSI times out I/O
1279 * @ap: ATA channel to manipulate 1829 * @ap: ATA channel to manipulate
@@ -1291,16 +1841,16 @@ static void mv_eng_timeout(struct ata_port *ap)
1291 1841
1292 printk(KERN_ERR "ata%u: Entering mv_eng_timeout\n",ap->id); 1842 printk(KERN_ERR "ata%u: Entering mv_eng_timeout\n",ap->id);
1293 DPRINTK("All regs @ start of eng_timeout\n"); 1843 DPRINTK("All regs @ start of eng_timeout\n");
1294 mv_dump_all_regs(ap->host_set->mmio_base, ap->port_no, 1844 mv_dump_all_regs(ap->host_set->mmio_base, ap->port_no,
1295 to_pci_dev(ap->host_set->dev)); 1845 to_pci_dev(ap->host_set->dev));
1296 1846
1297 qc = ata_qc_from_tag(ap, ap->active_tag); 1847 qc = ata_qc_from_tag(ap, ap->active_tag);
1298 printk(KERN_ERR "mmio_base %p ap %p qc %p scsi_cmnd %p &cmnd %p\n", 1848 printk(KERN_ERR "mmio_base %p ap %p qc %p scsi_cmnd %p &cmnd %p\n",
1299 ap->host_set->mmio_base, ap, qc, qc->scsicmd, 1849 ap->host_set->mmio_base, ap, qc, qc->scsicmd,
1300 &qc->scsicmd->cmnd); 1850 &qc->scsicmd->cmnd);
1301 1851
1302 mv_err_intr(ap); 1852 mv_err_intr(ap);
1303 mv_phy_reset(ap); 1853 mv_stop_and_reset(ap);
1304 1854
1305 if (!qc) { 1855 if (!qc) {
1306 printk(KERN_ERR "ata%u: BUG: timeout without command\n", 1856 printk(KERN_ERR "ata%u: BUG: timeout without command\n",
@@ -1336,17 +1886,17 @@ static void mv_port_init(struct ata_ioports *port, void __iomem *port_mmio)
1336 unsigned long shd_base = (unsigned long) port_mmio + SHD_BLK_OFS; 1886 unsigned long shd_base = (unsigned long) port_mmio + SHD_BLK_OFS;
1337 unsigned serr_ofs; 1887 unsigned serr_ofs;
1338 1888
1339 /* PIO related setup 1889 /* PIO related setup
1340 */ 1890 */
1341 port->data_addr = shd_base + (sizeof(u32) * ATA_REG_DATA); 1891 port->data_addr = shd_base + (sizeof(u32) * ATA_REG_DATA);
1342 port->error_addr = 1892 port->error_addr =
1343 port->feature_addr = shd_base + (sizeof(u32) * ATA_REG_ERR); 1893 port->feature_addr = shd_base + (sizeof(u32) * ATA_REG_ERR);
1344 port->nsect_addr = shd_base + (sizeof(u32) * ATA_REG_NSECT); 1894 port->nsect_addr = shd_base + (sizeof(u32) * ATA_REG_NSECT);
1345 port->lbal_addr = shd_base + (sizeof(u32) * ATA_REG_LBAL); 1895 port->lbal_addr = shd_base + (sizeof(u32) * ATA_REG_LBAL);
1346 port->lbam_addr = shd_base + (sizeof(u32) * ATA_REG_LBAM); 1896 port->lbam_addr = shd_base + (sizeof(u32) * ATA_REG_LBAM);
1347 port->lbah_addr = shd_base + (sizeof(u32) * ATA_REG_LBAH); 1897 port->lbah_addr = shd_base + (sizeof(u32) * ATA_REG_LBAH);
1348 port->device_addr = shd_base + (sizeof(u32) * ATA_REG_DEVICE); 1898 port->device_addr = shd_base + (sizeof(u32) * ATA_REG_DEVICE);
1349 port->status_addr = 1899 port->status_addr =
1350 port->command_addr = shd_base + (sizeof(u32) * ATA_REG_STATUS); 1900 port->command_addr = shd_base + (sizeof(u32) * ATA_REG_STATUS);
1351 /* special case: control/altstatus doesn't have ATA_REG_ address */ 1901 /* special case: control/altstatus doesn't have ATA_REG_ address */
1352 port->altstatus_addr = port->ctl_addr = shd_base + SHD_CTL_AST_OFS; 1902 port->altstatus_addr = port->ctl_addr = shd_base + SHD_CTL_AST_OFS;
@@ -1362,14 +1912,92 @@ static void mv_port_init(struct ata_ioports *port, void __iomem *port_mmio)
1362 /* unmask all EDMA error interrupts */ 1912 /* unmask all EDMA error interrupts */
1363 writelfl(~0, port_mmio + EDMA_ERR_IRQ_MASK_OFS); 1913 writelfl(~0, port_mmio + EDMA_ERR_IRQ_MASK_OFS);
1364 1914
1365 VPRINTK("EDMA cfg=0x%08x EDMA IRQ err cause/mask=0x%08x/0x%08x\n", 1915 VPRINTK("EDMA cfg=0x%08x EDMA IRQ err cause/mask=0x%08x/0x%08x\n",
1366 readl(port_mmio + EDMA_CFG_OFS), 1916 readl(port_mmio + EDMA_CFG_OFS),
1367 readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS), 1917 readl(port_mmio + EDMA_ERR_IRQ_CAUSE_OFS),
1368 readl(port_mmio + EDMA_ERR_IRQ_MASK_OFS)); 1918 readl(port_mmio + EDMA_ERR_IRQ_MASK_OFS));
1369} 1919}
1370 1920
1921static int mv_chip_id(struct pci_dev *pdev, struct mv_host_priv *hpriv,
1922 unsigned int board_idx)
1923{
1924 u8 rev_id;
1925 u32 hp_flags = hpriv->hp_flags;
1926
1927 pci_read_config_byte(pdev, PCI_REVISION_ID, &rev_id);
1928
1929 switch(board_idx) {
1930 case chip_5080:
1931 hpriv->ops = &mv5xxx_ops;
1932 hp_flags |= MV_HP_50XX;
1933
1934 switch (rev_id) {
1935 case 0x1:
1936 hp_flags |= MV_HP_ERRATA_50XXB0;
1937 break;
1938 case 0x3:
1939 hp_flags |= MV_HP_ERRATA_50XXB2;
1940 break;
1941 default:
1942 dev_printk(KERN_WARNING, &pdev->dev,
1943 "Applying 50XXB2 workarounds to unknown rev\n");
1944 hp_flags |= MV_HP_ERRATA_50XXB2;
1945 break;
1946 }
1947 break;
1948
1949 case chip_504x:
1950 case chip_508x:
1951 hpriv->ops = &mv5xxx_ops;
1952 hp_flags |= MV_HP_50XX;
1953
1954 switch (rev_id) {
1955 case 0x0:
1956 hp_flags |= MV_HP_ERRATA_50XXB0;
1957 break;
1958 case 0x3:
1959 hp_flags |= MV_HP_ERRATA_50XXB2;
1960 break;
1961 default:
1962 dev_printk(KERN_WARNING, &pdev->dev,
1963 "Applying B2 workarounds to unknown rev\n");
1964 hp_flags |= MV_HP_ERRATA_50XXB2;
1965 break;
1966 }
1967 break;
1968
1969 case chip_604x:
1970 case chip_608x:
1971 hpriv->ops = &mv6xxx_ops;
1972
1973 switch (rev_id) {
1974 case 0x7:
1975 hp_flags |= MV_HP_ERRATA_60X1B2;
1976 break;
1977 case 0x9:
1978 hp_flags |= MV_HP_ERRATA_60X1C0;
1979 break;
1980 default:
1981 dev_printk(KERN_WARNING, &pdev->dev,
1982 "Applying B2 workarounds to unknown rev\n");
1983 hp_flags |= MV_HP_ERRATA_60X1B2;
1984 break;
1985 }
1986 break;
1987
1988 default:
1989 printk(KERN_ERR DRV_NAME ": BUG: invalid board index %u\n", board_idx);
1990 return 1;
1991 }
1992
1993 hpriv->hp_flags = hp_flags;
1994
1995 return 0;
1996}
1997
1371/** 1998/**
1372 * mv_host_init - Perform some early initialization of the host. 1999 * mv_init_host - Perform some early initialization of the host.
2000 * @pdev: host PCI device
1373 * @probe_ent: early data struct representing the host 2001 * @probe_ent: early data struct representing the host
1374 * 2002 *
1375 * If possible, do an early global reset of the host. Then do 2003 * If possible, do an early global reset of the host. Then do
@@ -1378,23 +2006,48 @@ static void mv_port_init(struct ata_ioports *port, void __iomem *port_mmio)
1378 * LOCKING: 2006 * LOCKING:
1379 * Inherited from caller. 2007 * Inherited from caller.
1380 */ 2008 */
1381static int mv_host_init(struct ata_probe_ent *probe_ent) 2009static int mv_init_host(struct pci_dev *pdev, struct ata_probe_ent *probe_ent,
2010 unsigned int board_idx)
1382{ 2011{
1383 int rc = 0, n_hc, port, hc; 2012 int rc = 0, n_hc, port, hc;
1384 void __iomem *mmio = probe_ent->mmio_base; 2013 void __iomem *mmio = probe_ent->mmio_base;
1385 void __iomem *port_mmio; 2014 struct mv_host_priv *hpriv = probe_ent->private_data;
1386 2015
1387 if ((MV_FLAG_GLBL_SFT_RST & probe_ent->host_flags) && 2016 /* global interrupt mask */
1388 mv_global_soft_reset(probe_ent->mmio_base)) { 2017 writel(0, mmio + HC_MAIN_IRQ_MASK_OFS);
1389 rc = 1; 2018
2019 rc = mv_chip_id(pdev, hpriv, board_idx);
2020 if (rc)
1390 goto done; 2021 goto done;
1391 }
1392 2022
1393 n_hc = mv_get_hc_count(probe_ent->host_flags); 2023 n_hc = mv_get_hc_count(probe_ent->host_flags);
1394 probe_ent->n_ports = MV_PORTS_PER_HC * n_hc; 2024 probe_ent->n_ports = MV_PORTS_PER_HC * n_hc;
1395 2025
2026 for (port = 0; port < probe_ent->n_ports; port++)
2027 hpriv->ops->read_preamp(hpriv, port, mmio);
2028
2029 rc = hpriv->ops->reset_hc(hpriv, mmio, n_hc);
2030 if (rc)
2031 goto done;
2032
2033 hpriv->ops->reset_flash(hpriv, mmio);
2034 hpriv->ops->reset_bus(pdev, mmio);
2035 hpriv->ops->enable_leds(hpriv, mmio);
2036
1396 for (port = 0; port < probe_ent->n_ports; port++) { 2037 for (port = 0; port < probe_ent->n_ports; port++) {
1397 port_mmio = mv_port_base(mmio, port); 2038 if (IS_60XX(hpriv)) {
2039 void __iomem *port_mmio = mv_port_base(mmio, port);
2040
2041 u32 ifctl = readl(port_mmio + SATA_INTERFACE_CTL);
2042 ifctl |= (1 << 12);
2043 writelfl(ifctl, port_mmio + SATA_INTERFACE_CTL);
2044 }
2045
2046 hpriv->ops->phy_errata(hpriv, mmio, port);
2047 }
2048
2049 for (port = 0; port < probe_ent->n_ports; port++) {
2050 void __iomem *port_mmio = mv_port_base(mmio, port);
1398 mv_port_init(&probe_ent->port[port], port_mmio); 2051 mv_port_init(&probe_ent->port[port], port_mmio);
1399 } 2052 }
1400 2053
@@ -1418,11 +2071,12 @@ static int mv_host_init(struct ata_probe_ent *probe_ent)
1418 writelfl(~HC_MAIN_MASKED_IRQS, mmio + HC_MAIN_IRQ_MASK_OFS); 2071 writelfl(~HC_MAIN_MASKED_IRQS, mmio + HC_MAIN_IRQ_MASK_OFS);
1419 2072
1420 VPRINTK("HC MAIN IRQ cause/mask=0x%08x/0x%08x " 2073 VPRINTK("HC MAIN IRQ cause/mask=0x%08x/0x%08x "
1421 "PCI int cause/mask=0x%08x/0x%08x\n", 2074 "PCI int cause/mask=0x%08x/0x%08x\n",
1422 readl(mmio + HC_MAIN_IRQ_CAUSE_OFS), 2075 readl(mmio + HC_MAIN_IRQ_CAUSE_OFS),
1423 readl(mmio + HC_MAIN_IRQ_MASK_OFS), 2076 readl(mmio + HC_MAIN_IRQ_MASK_OFS),
1424 readl(mmio + PCI_IRQ_CAUSE_OFS), 2077 readl(mmio + PCI_IRQ_CAUSE_OFS),
1425 readl(mmio + PCI_IRQ_MASK_OFS)); 2078 readl(mmio + PCI_IRQ_MASK_OFS));
2079
1426done: 2080done:
1427 return rc; 2081 return rc;
1428} 2082}
@@ -1458,7 +2112,7 @@ static void mv_print_info(struct ata_probe_ent *probe_ent)
1458 2112
1459 dev_printk(KERN_INFO, &pdev->dev, 2113 dev_printk(KERN_INFO, &pdev->dev,
1460 "%u slots %u ports %s mode IRQ via %s\n", 2114 "%u slots %u ports %s mode IRQ via %s\n",
1461 (unsigned)MV_MAX_Q_DEPTH, probe_ent->n_ports, 2115 (unsigned)MV_MAX_Q_DEPTH, probe_ent->n_ports,
1462 scc_s, (MV_HP_FLAG_MSI & hpriv->hp_flags) ? "MSI" : "INTx"); 2116 scc_s, (MV_HP_FLAG_MSI & hpriv->hp_flags) ? "MSI" : "INTx");
1463} 2117}
1464 2118
@@ -1528,7 +2182,7 @@ static int mv_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
1528 probe_ent->private_data = hpriv; 2182 probe_ent->private_data = hpriv;
1529 2183
1530 /* initialize adapter */ 2184 /* initialize adapter */
1531 rc = mv_host_init(probe_ent); 2185 rc = mv_init_host(pdev, probe_ent, board_idx);
1532 if (rc) { 2186 if (rc) {
1533 goto err_out_hpriv; 2187 goto err_out_hpriv;
1534 } 2188 }
diff --git a/drivers/scsi/sata_promise.c b/drivers/scsi/sata_promise.c
index 242d906987ad..8a8e3e3ef0ed 100644
--- a/drivers/scsi/sata_promise.c
+++ b/drivers/scsi/sata_promise.c
@@ -46,7 +46,7 @@
46#include "sata_promise.h" 46#include "sata_promise.h"
47 47
48#define DRV_NAME "sata_promise" 48#define DRV_NAME "sata_promise"
49#define DRV_VERSION "1.02" 49#define DRV_VERSION "1.03"
50 50
51 51
52enum { 52enum {
diff --git a/drivers/scsi/sata_qstor.c b/drivers/scsi/sata_qstor.c
index 4a6d3067d23c..a8987f5ff5cc 100644
--- a/drivers/scsi/sata_qstor.c
+++ b/drivers/scsi/sata_qstor.c
@@ -41,7 +41,7 @@
41#include <linux/libata.h> 41#include <linux/libata.h>
42 42
43#define DRV_NAME "sata_qstor" 43#define DRV_NAME "sata_qstor"
44#define DRV_VERSION "0.04" 44#define DRV_VERSION "0.05"
45 45
46enum { 46enum {
47 QS_PORTS = 4, 47 QS_PORTS = 4,
diff --git a/drivers/scsi/sata_sil24.c b/drivers/scsi/sata_sil24.c
index 55e744d6db88..e0d6f194f54f 100644
--- a/drivers/scsi/sata_sil24.c
+++ b/drivers/scsi/sata_sil24.c
@@ -5,17 +5,6 @@
5 * 5 *
6 * Based on preview driver from Silicon Image. 6 * Based on preview driver from Silicon Image.
7 * 7 *
8 * NOTE: No NCQ/ATAPI support yet. The preview driver didn't support
9 * NCQ nor ATAPI, and, unfortunately, I couldn't find out how to make
10 * those work. Enabling those shouldn't be difficult. Basic
11 * structure is all there (in libata-dev tree). If you have any
12 * information about this hardware, please contact me or linux-ide.
13 * Info is needed on...
14 *
15 * - How to issue tagged commands and turn on sactive on issue accordingly.
16 * - Where to put an ATAPI command and how to tell the device to send it.
17 * - How to enable/use 64bit.
18 *
19 * This program is free software; you can redistribute it and/or modify it 8 * This program is free software; you can redistribute it and/or modify it
20 * under the terms of the GNU General Public License as published by the 9 * under the terms of the GNU General Public License as published by the
21 * Free Software Foundation; either version 2, or (at your option) any 10 * Free Software Foundation; either version 2, or (at your option) any
@@ -42,7 +31,7 @@
42#include <asm/io.h> 31#include <asm/io.h>
43 32
44#define DRV_NAME "sata_sil24" 33#define DRV_NAME "sata_sil24"
45#define DRV_VERSION "0.22" /* Silicon Image's preview driver was 0.10 */ 34#define DRV_VERSION "0.23"
46 35
47/* 36/*
48 * Port request block (PRB) 32 bytes 37 * Port request block (PRB) 32 bytes
@@ -139,6 +128,7 @@ enum {
139 PORT_CS_DEV_RST = (1 << 1), /* device reset */ 128 PORT_CS_DEV_RST = (1 << 1), /* device reset */
140 PORT_CS_INIT = (1 << 2), /* port initialize */ 129 PORT_CS_INIT = (1 << 2), /* port initialize */
141 PORT_CS_IRQ_WOC = (1 << 3), /* interrupt write one to clear */ 130 PORT_CS_IRQ_WOC = (1 << 3), /* interrupt write one to clear */
131 PORT_CS_CDB16 = (1 << 5), /* 0=12b cdb, 1=16b cdb */
142 PORT_CS_RESUME = (1 << 6), /* port resume */ 132 PORT_CS_RESUME = (1 << 6), /* port resume */
143 PORT_CS_32BIT_ACTV = (1 << 10), /* 32-bit activation */ 133 PORT_CS_32BIT_ACTV = (1 << 10), /* 32-bit activation */
144 PORT_CS_PM_EN = (1 << 13), /* port multiplier enable */ 134 PORT_CS_PM_EN = (1 << 13), /* port multiplier enable */
@@ -188,11 +178,29 @@ enum {
188 PORT_CERR_XFR_PCIPERR = 35, /* PSD ecode 11 - PCI prity err during transfer */ 178 PORT_CERR_XFR_PCIPERR = 35, /* PSD ecode 11 - PCI prity err during transfer */
189 PORT_CERR_SENDSERVICE = 36, /* FIS received while sending service */ 179 PORT_CERR_SENDSERVICE = 36, /* FIS received while sending service */
190 180
181 /* bits of PRB control field */
182 PRB_CTRL_PROTOCOL = (1 << 0), /* override def. ATA protocol */
183 PRB_CTRL_PACKET_READ = (1 << 4), /* PACKET cmd read */
184 PRB_CTRL_PACKET_WRITE = (1 << 5), /* PACKET cmd write */
185 PRB_CTRL_NIEN = (1 << 6), /* Mask completion irq */
186 PRB_CTRL_SRST = (1 << 7), /* Soft reset request (ign BSY?) */
187
188 /* PRB protocol field */
189 PRB_PROT_PACKET = (1 << 0),
190 PRB_PROT_TCQ = (1 << 1),
191 PRB_PROT_NCQ = (1 << 2),
192 PRB_PROT_READ = (1 << 3),
193 PRB_PROT_WRITE = (1 << 4),
194 PRB_PROT_TRANSPARENT = (1 << 5),
195
191 /* 196 /*
192 * Other constants 197 * Other constants
193 */ 198 */
194 SGE_TRM = (1 << 31), /* Last SGE in chain */ 199 SGE_TRM = (1 << 31), /* Last SGE in chain */
195 PRB_SOFT_RST = (1 << 7), /* Soft reset request (ign BSY?) */ 200 SGE_LNK = (1 << 30), /* linked list
201 Points to SGT, not SGE */
202 SGE_DRD = (1 << 29), /* discard data read (/dev/null)
203 data address ignored */
196 204
197 /* board id */ 205 /* board id */
198 BID_SIL3124 = 0, 206 BID_SIL3124 = 0,
@@ -202,11 +210,22 @@ enum {
202 IRQ_STAT_4PORTS = 0xf, 210 IRQ_STAT_4PORTS = 0xf,
203}; 211};
204 212
205struct sil24_cmd_block { 213struct sil24_ata_block {
206 struct sil24_prb prb; 214 struct sil24_prb prb;
207 struct sil24_sge sge[LIBATA_MAX_PRD]; 215 struct sil24_sge sge[LIBATA_MAX_PRD];
208}; 216};
209 217
218struct sil24_atapi_block {
219 struct sil24_prb prb;
220 u8 cdb[16];
221 struct sil24_sge sge[LIBATA_MAX_PRD - 1];
222};
223
224union sil24_cmd_block {
225 struct sil24_ata_block ata;
226 struct sil24_atapi_block atapi;
227};
228
210/* 229/*
211 * ap->private_data 230 * ap->private_data
212 * 231 *
@@ -214,7 +233,7 @@ struct sil24_cmd_block {
214 * here from the previous interrupt. 233 * here from the previous interrupt.
215 */ 234 */
216struct sil24_port_priv { 235struct sil24_port_priv {
217 struct sil24_cmd_block *cmd_block; /* 32 cmd blocks */ 236 union sil24_cmd_block *cmd_block; /* 32 cmd blocks */
218 dma_addr_t cmd_block_dma; /* DMA base addr for them */ 237 dma_addr_t cmd_block_dma; /* DMA base addr for them */
219 struct ata_taskfile tf; /* Cached taskfile registers */ 238 struct ata_taskfile tf; /* Cached taskfile registers */
220}; 239};
@@ -225,6 +244,7 @@ struct sil24_host_priv {
225 void __iomem *port_base; /* port registers (4 * 8192 bytes @BAR2) */ 244 void __iomem *port_base; /* port registers (4 * 8192 bytes @BAR2) */
226}; 245};
227 246
247static void sil24_dev_config(struct ata_port *ap, struct ata_device *dev);
228static u8 sil24_check_status(struct ata_port *ap); 248static u8 sil24_check_status(struct ata_port *ap);
229static u32 sil24_scr_read(struct ata_port *ap, unsigned sc_reg); 249static u32 sil24_scr_read(struct ata_port *ap, unsigned sc_reg);
230static void sil24_scr_write(struct ata_port *ap, unsigned sc_reg, u32 val); 250static void sil24_scr_write(struct ata_port *ap, unsigned sc_reg, u32 val);
@@ -278,6 +298,8 @@ static struct scsi_host_template sil24_sht = {
278static const struct ata_port_operations sil24_ops = { 298static const struct ata_port_operations sil24_ops = {
279 .port_disable = ata_port_disable, 299 .port_disable = ata_port_disable,
280 300
301 .dev_config = sil24_dev_config,
302
281 .check_status = sil24_check_status, 303 .check_status = sil24_check_status,
282 .check_altstatus = sil24_check_status, 304 .check_altstatus = sil24_check_status,
283 .dev_select = ata_noop_dev_select, 305 .dev_select = ata_noop_dev_select,
@@ -314,7 +336,7 @@ static struct ata_port_info sil24_port_info[] = {
314 { 336 {
315 .sht = &sil24_sht, 337 .sht = &sil24_sht,
316 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 338 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
317 ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO | 339 ATA_FLAG_SRST | ATA_FLAG_MMIO |
318 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(4), 340 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(4),
319 .pio_mask = 0x1f, /* pio0-4 */ 341 .pio_mask = 0x1f, /* pio0-4 */
320 .mwdma_mask = 0x07, /* mwdma0-2 */ 342 .mwdma_mask = 0x07, /* mwdma0-2 */
@@ -325,7 +347,7 @@ static struct ata_port_info sil24_port_info[] = {
325 { 347 {
326 .sht = &sil24_sht, 348 .sht = &sil24_sht,
327 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 349 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
328 ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO | 350 ATA_FLAG_SRST | ATA_FLAG_MMIO |
329 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(2), 351 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(2),
330 .pio_mask = 0x1f, /* pio0-4 */ 352 .pio_mask = 0x1f, /* pio0-4 */
331 .mwdma_mask = 0x07, /* mwdma0-2 */ 353 .mwdma_mask = 0x07, /* mwdma0-2 */
@@ -336,7 +358,7 @@ static struct ata_port_info sil24_port_info[] = {
336 { 358 {
337 .sht = &sil24_sht, 359 .sht = &sil24_sht,
338 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY | 360 .host_flags = ATA_FLAG_SATA | ATA_FLAG_NO_LEGACY |
339 ATA_FLAG_SATA_RESET | ATA_FLAG_MMIO | 361 ATA_FLAG_SRST | ATA_FLAG_MMIO |
340 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(1), 362 ATA_FLAG_PIO_DMA | SIL24_NPORTS2FLAG(1),
341 .pio_mask = 0x1f, /* pio0-4 */ 363 .pio_mask = 0x1f, /* pio0-4 */
342 .mwdma_mask = 0x07, /* mwdma0-2 */ 364 .mwdma_mask = 0x07, /* mwdma0-2 */
@@ -345,6 +367,16 @@ static struct ata_port_info sil24_port_info[] = {
345 }, 367 },
346}; 368};
347 369
370static void sil24_dev_config(struct ata_port *ap, struct ata_device *dev)
371{
372 void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr;
373
374 if (ap->cdb_len == 16)
375 writel(PORT_CS_CDB16, port + PORT_CTRL_STAT);
376 else
377 writel(PORT_CS_CDB16, port + PORT_CTRL_CLR);
378}
379
348static inline void sil24_update_tf(struct ata_port *ap) 380static inline void sil24_update_tf(struct ata_port *ap)
349{ 381{
350 struct sil24_port_priv *pp = ap->private_data; 382 struct sil24_port_priv *pp = ap->private_data;
@@ -396,22 +428,73 @@ static void sil24_tf_read(struct ata_port *ap, struct ata_taskfile *tf)
396 *tf = pp->tf; 428 *tf = pp->tf;
397} 429}
398 430
399static void sil24_phy_reset(struct ata_port *ap) 431static int sil24_issue_SRST(struct ata_port *ap)
400{ 432{
401 __sata_phy_reset(ap); 433 void __iomem *port = (void __iomem *)ap->ioaddr.cmd_addr;
434 struct sil24_port_priv *pp = ap->private_data;
435 struct sil24_prb *prb = &pp->cmd_block[0].ata.prb;
436 dma_addr_t paddr = pp->cmd_block_dma;
437 u32 irq_enable, irq_stat;
438 int cnt;
439
440 /* temporarily turn off IRQs during SRST */
441 irq_enable = readl(port + PORT_IRQ_ENABLE_SET);
442 writel(irq_enable, port + PORT_IRQ_ENABLE_CLR);
443
402 /* 444 /*
403 * No ATAPI yet. Just unconditionally indicate ATA device. 445 * XXX: Not sure whether the following sleep is needed or not.
404 * If ATAPI device is attached, it will fail ATA_CMD_ID_ATA 446 * The original driver had it. So....
405 * and libata core will ignore the device.
406 */ 447 */
407 if (!(ap->flags & ATA_FLAG_PORT_DISABLED)) 448 msleep(10);
408 ap->device[0].class = ATA_DEV_ATA; 449
450 prb->ctrl = PRB_CTRL_SRST;
451 prb->fis[1] = 0; /* no PM yet */
452
453 writel((u32)paddr, port + PORT_CMD_ACTIVATE);
454
455 for (cnt = 0; cnt < 100; cnt++) {
456 irq_stat = readl(port + PORT_IRQ_STAT);
457 writel(irq_stat, port + PORT_IRQ_STAT); /* clear irq */
458
459 irq_stat >>= PORT_IRQ_RAW_SHIFT;
460 if (irq_stat & (PORT_IRQ_COMPLETE | PORT_IRQ_ERROR))
461 break;
462
463 msleep(1);
464 }
465
466 /* restore IRQs */
467 writel(irq_enable, port + PORT_IRQ_ENABLE_SET);
468
469 if (!(irq_stat & PORT_IRQ_COMPLETE))
470 return -1;
471
472 /* update TF */
473 sil24_update_tf(ap);
474 return 0;
475}
476
477static void sil24_phy_reset(struct ata_port *ap)
478{
479 struct sil24_port_priv *pp = ap->private_data;
480
481 __sata_phy_reset(ap);
482 if (ap->flags & ATA_FLAG_PORT_DISABLED)
483 return;
484
485 if (sil24_issue_SRST(ap) < 0) {
486 printk(KERN_ERR DRV_NAME
487 " ata%u: SRST failed, disabling port\n", ap->id);
488 ap->ops->port_disable(ap);
489 return;
490 }
491
492 ap->device->class = ata_dev_classify(&pp->tf);
409} 493}
410 494
411static inline void sil24_fill_sg(struct ata_queued_cmd *qc, 495static inline void sil24_fill_sg(struct ata_queued_cmd *qc,
412 struct sil24_cmd_block *cb) 496 struct sil24_sge *sge)
413{ 497{
414 struct sil24_sge *sge = cb->sge;
415 struct scatterlist *sg; 498 struct scatterlist *sg;
416 unsigned int idx = 0; 499 unsigned int idx = 0;
417 500
@@ -432,23 +515,47 @@ static void sil24_qc_prep(struct ata_queued_cmd *qc)
432{ 515{
433 struct ata_port *ap = qc->ap; 516 struct ata_port *ap = qc->ap;
434 struct sil24_port_priv *pp = ap->private_data; 517 struct sil24_port_priv *pp = ap->private_data;
435 struct sil24_cmd_block *cb = pp->cmd_block + qc->tag; 518 union sil24_cmd_block *cb = pp->cmd_block + qc->tag;
436 struct sil24_prb *prb = &cb->prb; 519 struct sil24_prb *prb;
520 struct sil24_sge *sge;
437 521
438 switch (qc->tf.protocol) { 522 switch (qc->tf.protocol) {
439 case ATA_PROT_PIO: 523 case ATA_PROT_PIO:
440 case ATA_PROT_DMA: 524 case ATA_PROT_DMA:
441 case ATA_PROT_NODATA: 525 case ATA_PROT_NODATA:
526 prb = &cb->ata.prb;
527 sge = cb->ata.sge;
528 prb->ctrl = 0;
529 break;
530
531 case ATA_PROT_ATAPI:
532 case ATA_PROT_ATAPI_DMA:
533 case ATA_PROT_ATAPI_NODATA:
534 prb = &cb->atapi.prb;
535 sge = cb->atapi.sge;
536 memset(cb->atapi.cdb, 0, 32);
537 memcpy(cb->atapi.cdb, qc->cdb, ap->cdb_len);
538
539 if (qc->tf.protocol != ATA_PROT_ATAPI_NODATA) {
540 if (qc->tf.flags & ATA_TFLAG_WRITE)
541 prb->ctrl = PRB_CTRL_PACKET_WRITE;
542 else
543 prb->ctrl = PRB_CTRL_PACKET_READ;
544 } else
545 prb->ctrl = 0;
546
442 break; 547 break;
548
443 default: 549 default:
444 /* ATAPI isn't supported yet */ 550 prb = NULL; /* shut up, gcc */
551 sge = NULL;
445 BUG(); 552 BUG();
446 } 553 }
447 554
448 ata_tf_to_fis(&qc->tf, prb->fis, 0); 555 ata_tf_to_fis(&qc->tf, prb->fis, 0);
449 556
450 if (qc->flags & ATA_QCFLAG_DMAMAP) 557 if (qc->flags & ATA_QCFLAG_DMAMAP)
451 sil24_fill_sg(qc, cb); 558 sil24_fill_sg(qc, sge);
452} 559}
453 560
454static int sil24_qc_issue(struct ata_queued_cmd *qc) 561static int sil24_qc_issue(struct ata_queued_cmd *qc)
@@ -467,6 +574,31 @@ static void sil24_irq_clear(struct ata_port *ap)
467 /* unused */ 574 /* unused */
468} 575}
469 576
577static int __sil24_restart_controller(void __iomem *port)
578{
579 u32 tmp;
580 int cnt;
581
582 writel(PORT_CS_INIT, port + PORT_CTRL_STAT);
583
584 /* Max ~10ms */
585 for (cnt = 0; cnt < 10000; cnt++) {
586 tmp = readl(port + PORT_CTRL_STAT);
587 if (tmp & PORT_CS_RDY)
588 return 0;
589 udelay(1);
590 }
591
592 return -1;
593}
594
595static void sil24_restart_controller(struct ata_port *ap)
596{
597 if (__sil24_restart_controller((void __iomem *)ap->ioaddr.cmd_addr))
598 printk(KERN_ERR DRV_NAME
599 " ata%u: failed to restart controller\n", ap->id);
600}
601
470static int __sil24_reset_controller(void __iomem *port) 602static int __sil24_reset_controller(void __iomem *port)
471{ 603{
472 int cnt; 604 int cnt;
@@ -486,7 +618,11 @@ static int __sil24_reset_controller(void __iomem *port)
486 618
487 if (tmp & PORT_CS_DEV_RST) 619 if (tmp & PORT_CS_DEV_RST)
488 return -1; 620 return -1;
489 return 0; 621
622 if (tmp & PORT_CS_RDY)
623 return 0;
624
625 return __sil24_restart_controller(port);
490} 626}
491 627
492static void sil24_reset_controller(struct ata_port *ap) 628static void sil24_reset_controller(struct ata_port *ap)
@@ -548,9 +684,15 @@ static void sil24_error_intr(struct ata_port *ap, u32 slot_stat)
548 if (serror) 684 if (serror)
549 writel(serror, port + PORT_SERROR); 685 writel(serror, port + PORT_SERROR);
550 686
551 printk(KERN_ERR DRV_NAME " ata%u: error interrupt on port%d\n" 687 /*
552 " stat=0x%x irq=0x%x cmd_err=%d sstatus=0x%x serror=0x%x\n", 688 * Don't log ATAPI device errors. They're supposed to happen
553 ap->id, ap->port_no, slot_stat, irq_stat, cmd_err, sstatus, serror); 689 * and any serious errors will be logged using sense data by
690 * the SCSI layer.
691 */
692 if (ap->device[0].class != ATA_DEV_ATAPI || cmd_err > PORT_CERR_SDB)
693 printk("ata%u: error interrupt on port%d\n"
694 " stat=0x%x irq=0x%x cmd_err=%d sstatus=0x%x serror=0x%x\n",
695 ap->id, ap->port_no, slot_stat, irq_stat, cmd_err, sstatus, serror);
554 696
555 if (cmd_err == PORT_CERR_DEV || cmd_err == PORT_CERR_SDB) { 697 if (cmd_err == PORT_CERR_DEV || cmd_err == PORT_CERR_SDB) {
556 /* 698 /*
@@ -558,6 +700,7 @@ static void sil24_error_intr(struct ata_port *ap, u32 slot_stat)
558 */ 700 */
559 sil24_update_tf(ap); 701 sil24_update_tf(ap);
560 err_mask = ac_err_mask(pp->tf.command); 702 err_mask = ac_err_mask(pp->tf.command);
703 sil24_restart_controller(ap);
561 } else { 704 } else {
562 /* 705 /*
563 * Other errors. libata currently doesn't have any 706 * Other errors. libata currently doesn't have any
@@ -565,12 +708,11 @@ static void sil24_error_intr(struct ata_port *ap, u32 slot_stat)
565 * ATA_ERR. 708 * ATA_ERR.
566 */ 709 */
567 err_mask = AC_ERR_OTHER; 710 err_mask = AC_ERR_OTHER;
711 sil24_reset_controller(ap);
568 } 712 }
569 713
570 if (qc) 714 if (qc)
571 ata_qc_complete(qc, err_mask); 715 ata_qc_complete(qc, err_mask);
572
573 sil24_reset_controller(ap);
574} 716}
575 717
576static inline void sil24_host_intr(struct ata_port *ap) 718static inline void sil24_host_intr(struct ata_port *ap)
@@ -646,7 +788,7 @@ static int sil24_port_start(struct ata_port *ap)
646{ 788{
647 struct device *dev = ap->host_set->dev; 789 struct device *dev = ap->host_set->dev;
648 struct sil24_port_priv *pp; 790 struct sil24_port_priv *pp;
649 struct sil24_cmd_block *cb; 791 union sil24_cmd_block *cb;
650 size_t cb_size = sizeof(*cb); 792 size_t cb_size = sizeof(*cb);
651 dma_addr_t cb_dma; 793 dma_addr_t cb_dma;
652 int rc = -ENOMEM; 794 int rc = -ENOMEM;
diff --git a/drivers/scsi/sata_svw.c b/drivers/scsi/sata_svw.c
index 57e5a9d964c3..6e7f7c83a75a 100644
--- a/drivers/scsi/sata_svw.c
+++ b/drivers/scsi/sata_svw.c
@@ -54,7 +54,7 @@
54#endif /* CONFIG_PPC_OF */ 54#endif /* CONFIG_PPC_OF */
55 55
56#define DRV_NAME "sata_svw" 56#define DRV_NAME "sata_svw"
57#define DRV_VERSION "1.06" 57#define DRV_VERSION "1.07"
58 58
59/* Taskfile registers offsets */ 59/* Taskfile registers offsets */
60#define K2_SATA_TF_CMD_OFFSET 0x00 60#define K2_SATA_TF_CMD_OFFSET 0x00
diff --git a/drivers/scsi/sata_sx4.c b/drivers/scsi/sata_sx4.c
index b4bbe48acab0..dcc3ad9a9d6e 100644
--- a/drivers/scsi/sata_sx4.c
+++ b/drivers/scsi/sata_sx4.c
@@ -46,7 +46,7 @@
46#include "sata_promise.h" 46#include "sata_promise.h"
47 47
48#define DRV_NAME "sata_sx4" 48#define DRV_NAME "sata_sx4"
49#define DRV_VERSION "0.7" 49#define DRV_VERSION "0.8"
50 50
51 51
52enum { 52enum {
diff --git a/drivers/scsi/sata_vsc.c b/drivers/scsi/sata_vsc.c
index 77a6e4b9262d..fcfa486965b4 100644
--- a/drivers/scsi/sata_vsc.c
+++ b/drivers/scsi/sata_vsc.c
@@ -47,7 +47,7 @@
47#include <linux/libata.h> 47#include <linux/libata.h>
48 48
49#define DRV_NAME "sata_vsc" 49#define DRV_NAME "sata_vsc"
50#define DRV_VERSION "1.0" 50#define DRV_VERSION "1.1"
51 51
52/* Interrupt register offsets (from chip base address) */ 52/* Interrupt register offsets (from chip base address) */
53#define VSC_SATA_INT_STAT_OFFSET 0x00 53#define VSC_SATA_INT_STAT_OFFSET 0x00
diff --git a/drivers/serial/Kconfig b/drivers/serial/Kconfig
index ff36f0c9fdad..ad47c1b84c3f 100644
--- a/drivers/serial/Kconfig
+++ b/drivers/serial/Kconfig
@@ -507,7 +507,7 @@ config SERIAL_SUNSU_CONSOLE
507 507
508config SERIAL_MUX 508config SERIAL_MUX
509 tristate "Serial MUX support" 509 tristate "Serial MUX support"
510 depends on PARISC 510 depends on GSC
511 select SERIAL_CORE 511 select SERIAL_CORE
512 default y 512 default y
513 ---help--- 513 ---help---
diff --git a/drivers/serial/mux.c b/drivers/serial/mux.c
index 660bae5ba179..7633132a10aa 100644
--- a/drivers/serial/mux.c
+++ b/drivers/serial/mux.c
@@ -65,8 +65,8 @@ static struct uart_driver mux_driver = {
65 65
66static struct timer_list mux_timer; 66static struct timer_list mux_timer;
67 67
68#define UART_PUT_CHAR(p, c) __raw_writel((c), (unsigned long)(p)->membase + IO_DATA_REG_OFFSET) 68#define UART_PUT_CHAR(p, c) __raw_writel((c), (p)->membase + IO_DATA_REG_OFFSET)
69#define UART_GET_FIFO_CNT(p) __raw_readl((unsigned long)(p)->membase + IO_DCOUNT_REG_OFFSET) 69#define UART_GET_FIFO_CNT(p) __raw_readl((p)->membase + IO_DCOUNT_REG_OFFSET)
70#define GET_MUX_PORTS(iodc_data) ((((iodc_data)[4] & 0xf0) >> 4) * 8) + 8 70#define GET_MUX_PORTS(iodc_data) ((((iodc_data)[4] & 0xf0) >> 4) * 8) + 8
71 71
72/** 72/**
@@ -79,10 +79,7 @@ static struct timer_list mux_timer;
79 */ 79 */
80static unsigned int mux_tx_empty(struct uart_port *port) 80static unsigned int mux_tx_empty(struct uart_port *port)
81{ 81{
82 unsigned int cnt = __raw_readl((unsigned long)port->membase 82 return UART_GET_FIFO_CNT(port) ? 0 : TIOCSER_TEMT;
83 + IO_DCOUNT_REG_OFFSET);
84
85 return cnt ? 0 : TIOCSER_TEMT;
86} 83}
87 84
88/** 85/**
@@ -218,8 +215,7 @@ static void mux_read(struct uart_port *port)
218 __u32 start_count = port->icount.rx; 215 __u32 start_count = port->icount.rx;
219 216
220 while(1) { 217 while(1) {
221 data = __raw_readl((unsigned long)port->membase 218 data = __raw_readl(port->membase + IO_DATA_REG_OFFSET);
222 + IO_DATA_REG_OFFSET);
223 219
224 if (MUX_STATUS(data)) 220 if (MUX_STATUS(data))
225 continue; 221 continue;
@@ -481,6 +477,13 @@ static int __init mux_probe(struct parisc_device *dev)
481 port->ops = &mux_pops; 477 port->ops = &mux_pops;
482 port->flags = UPF_BOOT_AUTOCONF; 478 port->flags = UPF_BOOT_AUTOCONF;
483 port->line = port_cnt; 479 port->line = port_cnt;
480
481 /* The port->timeout needs to match what is present in
482 * uart_wait_until_sent in serial_core.c. Otherwise
483 * the time spent in msleep_interruptable will be very
484 * long, causing the appearance of a console hang.
485 */
486 port->timeout = HZ / 50;
484 spin_lock_init(&port->lock); 487 spin_lock_init(&port->lock);
485 status = uart_add_one_port(&mux_driver, port); 488 status = uart_add_one_port(&mux_driver, port);
486 BUG_ON(status); 489 BUG_ON(status);
diff --git a/drivers/tc/zs.c b/drivers/tc/zs.c
index c52af73a251b..6756d0fab6fe 100644
--- a/drivers/tc/zs.c
+++ b/drivers/tc/zs.c
@@ -6,7 +6,7 @@
6 * 6 *
7 * DECstation changes 7 * DECstation changes
8 * Copyright (C) 1998-2000 Harald Koerfgen 8 * Copyright (C) 1998-2000 Harald Koerfgen
9 * Copyright (C) 2000, 2001, 2002, 2003, 2004 Maciej W. Rozycki 9 * Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005 Maciej W. Rozycki
10 * 10 *
11 * For the rest of the code the original Copyright applies: 11 * For the rest of the code the original Copyright applies:
12 * Copyright (C) 1996 Paul Mackerras (Paul.Mackerras@cs.anu.edu.au) 12 * Copyright (C) 1996 Paul Mackerras (Paul.Mackerras@cs.anu.edu.au)
@@ -55,6 +55,7 @@
55#include <linux/delay.h> 55#include <linux/delay.h>
56#include <linux/init.h> 56#include <linux/init.h>
57#include <linux/ioport.h> 57#include <linux/ioport.h>
58#include <linux/spinlock.h>
58#ifdef CONFIG_SERIAL_DEC_CONSOLE 59#ifdef CONFIG_SERIAL_DEC_CONSOLE
59#include <linux/console.h> 60#include <linux/console.h>
60#endif 61#endif
@@ -63,7 +64,6 @@
63#include <asm/pgtable.h> 64#include <asm/pgtable.h>
64#include <asm/irq.h> 65#include <asm/irq.h>
65#include <asm/system.h> 66#include <asm/system.h>
66#include <asm/uaccess.h>
67#include <asm/bootinfo.h> 67#include <asm/bootinfo.h>
68 68
69#include <asm/dec/interrupts.h> 69#include <asm/dec/interrupts.h>
@@ -128,6 +128,8 @@ static struct zs_parms ds_parms = {
128 128
129#define BUS_PRESENT (DS_BUS_PRESENT) 129#define BUS_PRESENT (DS_BUS_PRESENT)
130 130
131DEFINE_SPINLOCK(zs_lock);
132
131struct dec_zschannel zs_channels[NUM_CHANNELS]; 133struct dec_zschannel zs_channels[NUM_CHANNELS];
132struct dec_serial zs_soft[NUM_CHANNELS]; 134struct dec_serial zs_soft[NUM_CHANNELS];
133int zs_channels_found; 135int zs_channels_found;
@@ -159,8 +161,6 @@ static unsigned char zs_init_regs[16] __initdata = {
159 0 /* write 15 */ 161 0 /* write 15 */
160}; 162};
161 163
162DECLARE_TASK_QUEUE(tq_zs_serial);
163
164static struct tty_driver *serial_driver; 164static struct tty_driver *serial_driver;
165 165
166/* serial subtype definitions */ 166/* serial subtype definitions */
@@ -294,8 +294,7 @@ static inline void zs_rtsdtr(struct dec_serial *info, int which, int set)
294{ 294{
295 unsigned long flags; 295 unsigned long flags;
296 296
297 297 spin_lock_irqsave(&zs_lock, flags);
298 save_flags(flags); cli();
299 if (info->zs_channel != info->zs_chan_a) { 298 if (info->zs_channel != info->zs_chan_a) {
300 if (set) { 299 if (set) {
301 info->zs_chan_a->curregs[5] |= (which & (RTS | DTR)); 300 info->zs_chan_a->curregs[5] |= (which & (RTS | DTR));
@@ -304,7 +303,7 @@ static inline void zs_rtsdtr(struct dec_serial *info, int which, int set)
304 } 303 }
305 write_zsreg(info->zs_chan_a, 5, info->zs_chan_a->curregs[5]); 304 write_zsreg(info->zs_chan_a, 5, info->zs_chan_a->curregs[5]);
306 } 305 }
307 restore_flags(flags); 306 spin_unlock_irqrestore(&zs_lock, flags);
308} 307}
309 308
310/* Utility routines for the Zilog */ 309/* Utility routines for the Zilog */
@@ -345,12 +344,10 @@ static inline void rs_recv_clear(struct dec_zschannel *zsc)
345 * This routine is used by the interrupt handler to schedule 344 * This routine is used by the interrupt handler to schedule
346 * processing in the software interrupt portion of the driver. 345 * processing in the software interrupt portion of the driver.
347 */ 346 */
348static _INLINE_ void rs_sched_event(struct dec_serial *info, 347static _INLINE_ void rs_sched_event(struct dec_serial *info, int event)
349 int event)
350{ 348{
351 info->event |= 1 << event; 349 info->event |= 1 << event;
352 queue_task(&info->tqueue, &tq_zs_serial); 350 tasklet_schedule(&info->tlet);
353 mark_bh(SERIAL_BH);
354} 351}
355 352
356static _INLINE_ void receive_chars(struct dec_serial *info, 353static _INLINE_ void receive_chars(struct dec_serial *info,
@@ -497,9 +494,10 @@ static _INLINE_ void status_handle(struct dec_serial *info)
497/* 494/*
498 * This is the serial driver's generic interrupt routine 495 * This is the serial driver's generic interrupt routine
499 */ 496 */
500void rs_interrupt(int irq, void *dev_id, struct pt_regs * regs) 497static irqreturn_t rs_interrupt(int irq, void *dev_id, struct pt_regs *regs)
501{ 498{
502 struct dec_serial *info = (struct dec_serial *) dev_id; 499 struct dec_serial *info = (struct dec_serial *) dev_id;
500 irqreturn_t status = IRQ_NONE;
503 unsigned char zs_intreg; 501 unsigned char zs_intreg;
504 int shift; 502 int shift;
505 503
@@ -521,6 +519,8 @@ void rs_interrupt(int irq, void *dev_id, struct pt_regs * regs)
521 if ((zs_intreg & CHAN_IRQMASK) == 0) 519 if ((zs_intreg & CHAN_IRQMASK) == 0)
522 break; 520 break;
523 521
522 status = IRQ_HANDLED;
523
524 if (zs_intreg & CHBRxIP) { 524 if (zs_intreg & CHBRxIP) {
525 receive_chars(info, regs); 525 receive_chars(info, regs);
526 } 526 }
@@ -534,6 +534,8 @@ void rs_interrupt(int irq, void *dev_id, struct pt_regs * regs)
534 534
535 /* Why do we need this ? */ 535 /* Why do we need this ? */
536 write_zsreg(info->zs_channel, 0, RES_H_IUS); 536 write_zsreg(info->zs_channel, 0, RES_H_IUS);
537
538 return status;
537} 539}
538 540
539#ifdef ZS_DEBUG_REGS 541#ifdef ZS_DEBUG_REGS
@@ -578,12 +580,12 @@ static void rs_stop(struct tty_struct *tty)
578 return; 580 return;
579 581
580#if 1 582#if 1
581 save_flags(flags); cli(); 583 spin_lock_irqsave(&zs_lock, flags);
582 if (info->zs_channel->curregs[5] & TxENAB) { 584 if (info->zs_channel->curregs[5] & TxENAB) {
583 info->zs_channel->curregs[5] &= ~TxENAB; 585 info->zs_channel->curregs[5] &= ~TxENAB;
584 write_zsreg(info->zs_channel, 5, info->zs_channel->curregs[5]); 586 write_zsreg(info->zs_channel, 5, info->zs_channel->curregs[5]);
585 } 587 }
586 restore_flags(flags); 588 spin_unlock_irqrestore(&zs_lock, flags);
587#endif 589#endif
588} 590}
589 591
@@ -595,7 +597,7 @@ static void rs_start(struct tty_struct *tty)
595 if (serial_paranoia_check(info, tty->name, "rs_start")) 597 if (serial_paranoia_check(info, tty->name, "rs_start"))
596 return; 598 return;
597 599
598 save_flags(flags); cli(); 600 spin_lock_irqsave(&zs_lock, flags);
599#if 1 601#if 1
600 if (info->xmit_cnt && info->xmit_buf && !(info->zs_channel->curregs[5] & TxENAB)) { 602 if (info->xmit_cnt && info->xmit_buf && !(info->zs_channel->curregs[5] & TxENAB)) {
601 info->zs_channel->curregs[5] |= TxENAB; 603 info->zs_channel->curregs[5] |= TxENAB;
@@ -606,7 +608,7 @@ static void rs_start(struct tty_struct *tty)
606 transmit_chars(info); 608 transmit_chars(info);
607 } 609 }
608#endif 610#endif
609 restore_flags(flags); 611 spin_unlock_irqrestore(&zs_lock, flags);
610} 612}
611 613
612/* 614/*
@@ -618,12 +620,8 @@ static void rs_start(struct tty_struct *tty)
618 * interrupt driver proper are done; the interrupt driver schedules 620 * interrupt driver proper are done; the interrupt driver schedules
619 * them using rs_sched_event(), and they get done here. 621 * them using rs_sched_event(), and they get done here.
620 */ 622 */
621static void do_serial_bh(void)
622{
623 run_task_queue(&tq_zs_serial);
624}
625 623
626static void do_softint(void *private_) 624static void do_softint(unsigned long private_)
627{ 625{
628 struct dec_serial *info = (struct dec_serial *) private_; 626 struct dec_serial *info = (struct dec_serial *) private_;
629 struct tty_struct *tty; 627 struct tty_struct *tty;
@@ -634,10 +632,11 @@ static void do_softint(void *private_)
634 632
635 if (test_and_clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) { 633 if (test_and_clear_bit(RS_EVENT_WRITE_WAKEUP, &info->event)) {
636 tty_wakeup(tty); 634 tty_wakeup(tty);
635 wake_up_interruptible(&tty->write_wait);
637 } 636 }
638} 637}
639 638
640int zs_startup(struct dec_serial * info) 639static int zs_startup(struct dec_serial * info)
641{ 640{
642 unsigned long flags; 641 unsigned long flags;
643 642
@@ -650,7 +649,7 @@ int zs_startup(struct dec_serial * info)
650 return -ENOMEM; 649 return -ENOMEM;
651 } 650 }
652 651
653 save_flags(flags); cli(); 652 spin_lock_irqsave(&zs_lock, flags);
654 653
655#ifdef SERIAL_DEBUG_OPEN 654#ifdef SERIAL_DEBUG_OPEN
656 printk("starting up ttyS%d (irq %d)...", info->line, info->irq); 655 printk("starting up ttyS%d (irq %d)...", info->line, info->irq);
@@ -706,7 +705,7 @@ int zs_startup(struct dec_serial * info)
706 info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; 705 info->xmit_cnt = info->xmit_head = info->xmit_tail = 0;
707 706
708 info->flags |= ZILOG_INITIALIZED; 707 info->flags |= ZILOG_INITIALIZED;
709 restore_flags(flags); 708 spin_unlock_irqrestore(&zs_lock, flags);
710 return 0; 709 return 0;
711} 710}
712 711
@@ -726,7 +725,7 @@ static void shutdown(struct dec_serial * info)
726 info->irq); 725 info->irq);
727#endif 726#endif
728 727
729 save_flags(flags); cli(); /* Disable interrupts */ 728 spin_lock_irqsave(&zs_lock, flags);
730 729
731 if (info->xmit_buf) { 730 if (info->xmit_buf) {
732 free_page((unsigned long) info->xmit_buf); 731 free_page((unsigned long) info->xmit_buf);
@@ -749,7 +748,7 @@ static void shutdown(struct dec_serial * info)
749 set_bit(TTY_IO_ERROR, &info->tty->flags); 748 set_bit(TTY_IO_ERROR, &info->tty->flags);
750 749
751 info->flags &= ~ZILOG_INITIALIZED; 750 info->flags &= ~ZILOG_INITIALIZED;
752 restore_flags(flags); 751 spin_unlock_irqrestore(&zs_lock, flags);
753} 752}
754 753
755/* 754/*
@@ -785,7 +784,7 @@ static void change_speed(struct dec_serial *info)
785 i += 15; 784 i += 15;
786 } 785 }
787 786
788 save_flags(flags); cli(); 787 spin_lock_irqsave(&zs_lock, flags);
789 info->zs_baud = baud_table[i]; 788 info->zs_baud = baud_table[i];
790 if (info->zs_baud) { 789 if (info->zs_baud) {
791 brg = BPS_TO_BRG(info->zs_baud, zs_parms->clock/info->clk_divisor); 790 brg = BPS_TO_BRG(info->zs_baud, zs_parms->clock/info->clk_divisor);
@@ -858,7 +857,7 @@ static void change_speed(struct dec_serial *info)
858 /* Load up the new values */ 857 /* Load up the new values */
859 load_zsregs(info->zs_channel, info->zs_channel->curregs); 858 load_zsregs(info->zs_channel, info->zs_channel->curregs);
860 859
861 restore_flags(flags); 860 spin_unlock_irqrestore(&zs_lock, flags);
862} 861}
863 862
864static void rs_flush_chars(struct tty_struct *tty) 863static void rs_flush_chars(struct tty_struct *tty)
@@ -874,9 +873,9 @@ static void rs_flush_chars(struct tty_struct *tty)
874 return; 873 return;
875 874
876 /* Enable transmitter */ 875 /* Enable transmitter */
877 save_flags(flags); cli(); 876 spin_lock_irqsave(&zs_lock, flags);
878 transmit_chars(info); 877 transmit_chars(info);
879 restore_flags(flags); 878 spin_unlock_irqrestore(&zs_lock, flags);
880} 879}
881 880
882static int rs_write(struct tty_struct * tty, 881static int rs_write(struct tty_struct * tty,
@@ -892,26 +891,17 @@ static int rs_write(struct tty_struct * tty,
892 if (!tty || !info->xmit_buf) 891 if (!tty || !info->xmit_buf)
893 return 0; 892 return 0;
894 893
895 save_flags(flags);
896 while (1) { 894 while (1) {
897 cli(); 895 spin_lock_irqsave(&zs_lock, flags);
898 c = min(count, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1, 896 c = min(count, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
899 SERIAL_XMIT_SIZE - info->xmit_head)); 897 SERIAL_XMIT_SIZE - info->xmit_head));
900 if (c <= 0) 898 if (c <= 0)
901 break; 899 break;
902 900
903 if (from_user) { 901 memcpy(info->xmit_buf + info->xmit_head, buf, c);
904 down(&tmp_buf_sem);
905 copy_from_user(tmp_buf, buf, c);
906 c = min(c, min(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
907 SERIAL_XMIT_SIZE - info->xmit_head));
908 memcpy(info->xmit_buf + info->xmit_head, tmp_buf, c);
909 up(&tmp_buf_sem);
910 } else
911 memcpy(info->xmit_buf + info->xmit_head, buf, c);
912 info->xmit_head = (info->xmit_head + c) & (SERIAL_XMIT_SIZE-1); 902 info->xmit_head = (info->xmit_head + c) & (SERIAL_XMIT_SIZE-1);
913 info->xmit_cnt += c; 903 info->xmit_cnt += c;
914 restore_flags(flags); 904 spin_unlock_irqrestore(&zs_lock, flags);
915 buf += c; 905 buf += c;
916 count -= c; 906 count -= c;
917 total += c; 907 total += c;
@@ -920,7 +910,7 @@ static int rs_write(struct tty_struct * tty,
920 if (info->xmit_cnt && !tty->stopped && !info->tx_stopped 910 if (info->xmit_cnt && !tty->stopped && !info->tx_stopped
921 && !info->tx_active) 911 && !info->tx_active)
922 transmit_chars(info); 912 transmit_chars(info);
923 restore_flags(flags); 913 spin_unlock_irqrestore(&zs_lock, flags);
924 return total; 914 return total;
925} 915}
926 916
@@ -952,9 +942,9 @@ static void rs_flush_buffer(struct tty_struct *tty)
952 942
953 if (serial_paranoia_check(info, tty->name, "rs_flush_buffer")) 943 if (serial_paranoia_check(info, tty->name, "rs_flush_buffer"))
954 return; 944 return;
955 cli(); 945 spin_lock_irq(&zs_lock);
956 info->xmit_cnt = info->xmit_head = info->xmit_tail = 0; 946 info->xmit_cnt = info->xmit_head = info->xmit_tail = 0;
957 sti(); 947 spin_unlock_irq(&zs_lock);
958 tty_wakeup(tty); 948 tty_wakeup(tty);
959} 949}
960 950
@@ -982,11 +972,11 @@ static void rs_throttle(struct tty_struct * tty)
982 return; 972 return;
983 973
984 if (I_IXOFF(tty)) { 974 if (I_IXOFF(tty)) {
985 save_flags(flags); cli(); 975 spin_lock_irqsave(&zs_lock, flags);
986 info->x_char = STOP_CHAR(tty); 976 info->x_char = STOP_CHAR(tty);
987 if (!info->tx_active) 977 if (!info->tx_active)
988 transmit_chars(info); 978 transmit_chars(info);
989 restore_flags(flags); 979 spin_unlock_irqrestore(&zs_lock, flags);
990 } 980 }
991 981
992 if (C_CRTSCTS(tty)) { 982 if (C_CRTSCTS(tty)) {
@@ -1010,7 +1000,7 @@ static void rs_unthrottle(struct tty_struct * tty)
1010 return; 1000 return;
1011 1001
1012 if (I_IXOFF(tty)) { 1002 if (I_IXOFF(tty)) {
1013 save_flags(flags); cli(); 1003 spin_lock_irqsave(&zs_lock, flags);
1014 if (info->x_char) 1004 if (info->x_char)
1015 info->x_char = 0; 1005 info->x_char = 0;
1016 else { 1006 else {
@@ -1018,7 +1008,7 @@ static void rs_unthrottle(struct tty_struct * tty)
1018 if (!info->tx_active) 1008 if (!info->tx_active)
1019 transmit_chars(info); 1009 transmit_chars(info);
1020 } 1010 }
1021 restore_flags(flags); 1011 spin_unlock_irqrestore(&zs_lock, flags);
1022 } 1012 }
1023 1013
1024 if (C_CRTSCTS(tty)) { 1014 if (C_CRTSCTS(tty)) {
@@ -1111,9 +1101,9 @@ static int get_lsr_info(struct dec_serial * info, unsigned int *value)
1111{ 1101{
1112 unsigned char status; 1102 unsigned char status;
1113 1103
1114 cli(); 1104 spin_lock(&zs_lock);
1115 status = read_zsreg(info->zs_channel, 0); 1105 status = read_zsreg(info->zs_channel, 0);
1116 sti(); 1106 spin_unlock_irq(&zs_lock);
1117 put_user(status,value); 1107 put_user(status,value);
1118 return 0; 1108 return 0;
1119} 1109}
@@ -1136,11 +1126,11 @@ static int rs_tiocmget(struct tty_struct *tty, struct file *file)
1136 if (info->zs_channel == info->zs_chan_a) 1126 if (info->zs_channel == info->zs_chan_a)
1137 result = 0; 1127 result = 0;
1138 else { 1128 else {
1139 cli(); 1129 spin_lock(&zs_lock);
1140 control = info->zs_chan_a->curregs[5]; 1130 control = info->zs_chan_a->curregs[5];
1141 status_a = read_zsreg(info->zs_chan_a, 0); 1131 status_a = read_zsreg(info->zs_chan_a, 0);
1142 status_b = read_zsreg(info->zs_channel, 0); 1132 status_b = read_zsreg(info->zs_channel, 0);
1143 sti(); 1133 spin_unlock_irq(&zs_lock);
1144 result = ((control & RTS) ? TIOCM_RTS: 0) 1134 result = ((control & RTS) ? TIOCM_RTS: 0)
1145 | ((control & DTR) ? TIOCM_DTR: 0) 1135 | ((control & DTR) ? TIOCM_DTR: 0)
1146 | ((status_b & DCD) ? TIOCM_CAR: 0) 1136 | ((status_b & DCD) ? TIOCM_CAR: 0)
@@ -1155,8 +1145,6 @@ static int rs_tiocmset(struct tty_struct *tty, struct file *file,
1155 unsigned int set, unsigned int clear) 1145 unsigned int set, unsigned int clear)
1156{ 1146{
1157 struct dec_serial * info = (struct dec_serial *)tty->driver_data; 1147 struct dec_serial * info = (struct dec_serial *)tty->driver_data;
1158 int error;
1159 unsigned int arg, bits;
1160 1148
1161 if (info->hook) 1149 if (info->hook)
1162 return -ENODEV; 1150 return -ENODEV;
@@ -1170,8 +1158,7 @@ static int rs_tiocmset(struct tty_struct *tty, struct file *file,
1170 if (info->zs_channel == info->zs_chan_a) 1158 if (info->zs_channel == info->zs_chan_a)
1171 return 0; 1159 return 0;
1172 1160
1173 get_user(arg, value); 1161 spin_lock(&zs_lock);
1174 cli();
1175 if (set & TIOCM_RTS) 1162 if (set & TIOCM_RTS)
1176 info->zs_chan_a->curregs[5] |= RTS; 1163 info->zs_chan_a->curregs[5] |= RTS;
1177 if (set & TIOCM_DTR) 1164 if (set & TIOCM_DTR)
@@ -1181,7 +1168,7 @@ static int rs_tiocmset(struct tty_struct *tty, struct file *file,
1181 if (clear & TIOCM_DTR) 1168 if (clear & TIOCM_DTR)
1182 info->zs_chan_a->curregs[5] &= ~DTR; 1169 info->zs_chan_a->curregs[5] &= ~DTR;
1183 write_zsreg(info->zs_chan_a, 5, info->zs_chan_a->curregs[5]); 1170 write_zsreg(info->zs_chan_a, 5, info->zs_chan_a->curregs[5]);
1184 sti(); 1171 spin_unlock_irq(&zs_lock);
1185 return 0; 1172 return 0;
1186} 1173}
1187 1174
@@ -1198,19 +1185,18 @@ static void rs_break(struct tty_struct *tty, int break_state)
1198 if (!info->port) 1185 if (!info->port)
1199 return; 1186 return;
1200 1187
1201 save_flags(flags); cli(); 1188 spin_lock_irqsave(&zs_lock, flags);
1202 if (break_state == -1) 1189 if (break_state == -1)
1203 info->zs_channel->curregs[5] |= SND_BRK; 1190 info->zs_channel->curregs[5] |= SND_BRK;
1204 else 1191 else
1205 info->zs_channel->curregs[5] &= ~SND_BRK; 1192 info->zs_channel->curregs[5] &= ~SND_BRK;
1206 write_zsreg(info->zs_channel, 5, info->zs_channel->curregs[5]); 1193 write_zsreg(info->zs_channel, 5, info->zs_channel->curregs[5]);
1207 restore_flags(flags); 1194 spin_unlock_irqrestore(&zs_lock, flags);
1208} 1195}
1209 1196
1210static int rs_ioctl(struct tty_struct *tty, struct file * file, 1197static int rs_ioctl(struct tty_struct *tty, struct file * file,
1211 unsigned int cmd, unsigned long arg) 1198 unsigned int cmd, unsigned long arg)
1212{ 1199{
1213 int error;
1214 struct dec_serial * info = (struct dec_serial *)tty->driver_data; 1200 struct dec_serial * info = (struct dec_serial *)tty->driver_data;
1215 1201
1216 if (info->hook) 1202 if (info->hook)
@@ -1287,10 +1273,10 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
1287 if (!info || serial_paranoia_check(info, tty->name, "rs_close")) 1273 if (!info || serial_paranoia_check(info, tty->name, "rs_close"))
1288 return; 1274 return;
1289 1275
1290 save_flags(flags); cli(); 1276 spin_lock_irqsave(&zs_lock, flags);
1291 1277
1292 if (tty_hung_up_p(filp)) { 1278 if (tty_hung_up_p(filp)) {
1293 restore_flags(flags); 1279 spin_unlock_irqrestore(&zs_lock, flags);
1294 return; 1280 return;
1295 } 1281 }
1296 1282
@@ -1315,7 +1301,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
1315 info->count = 0; 1301 info->count = 0;
1316 } 1302 }
1317 if (info->count) { 1303 if (info->count) {
1318 restore_flags(flags); 1304 spin_unlock_irqrestore(&zs_lock, flags);
1319 return; 1305 return;
1320 } 1306 }
1321 info->flags |= ZILOG_CLOSING; 1307 info->flags |= ZILOG_CLOSING;
@@ -1358,7 +1344,7 @@ static void rs_close(struct tty_struct *tty, struct file * filp)
1358 } 1344 }
1359 info->flags &= ~(ZILOG_NORMAL_ACTIVE|ZILOG_CLOSING); 1345 info->flags &= ~(ZILOG_NORMAL_ACTIVE|ZILOG_CLOSING);
1360 wake_up_interruptible(&info->close_wait); 1346 wake_up_interruptible(&info->close_wait);
1361 restore_flags(flags); 1347 spin_unlock_irqrestore(&zs_lock, flags);
1362} 1348}
1363 1349
1364/* 1350/*
@@ -1398,7 +1384,7 @@ static void rs_wait_until_sent(struct tty_struct *tty, int timeout)
1398/* 1384/*
1399 * rs_hangup() --- called by tty_hangup() when a hangup is signaled. 1385 * rs_hangup() --- called by tty_hangup() when a hangup is signaled.
1400 */ 1386 */
1401void rs_hangup(struct tty_struct *tty) 1387static void rs_hangup(struct tty_struct *tty)
1402{ 1388{
1403 struct dec_serial * info = (struct dec_serial *)tty->driver_data; 1389 struct dec_serial * info = (struct dec_serial *)tty->driver_data;
1404 1390
@@ -1466,16 +1452,16 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
1466 printk("block_til_ready before block: ttyS%d, count = %d\n", 1452 printk("block_til_ready before block: ttyS%d, count = %d\n",
1467 info->line, info->count); 1453 info->line, info->count);
1468#endif 1454#endif
1469 cli(); 1455 spin_lock(&zs_lock);
1470 if (!tty_hung_up_p(filp)) 1456 if (!tty_hung_up_p(filp))
1471 info->count--; 1457 info->count--;
1472 sti(); 1458 spin_unlock_irq(&zs_lock);
1473 info->blocked_open++; 1459 info->blocked_open++;
1474 while (1) { 1460 while (1) {
1475 cli(); 1461 spin_lock(&zs_lock);
1476 if (tty->termios->c_cflag & CBAUD) 1462 if (tty->termios->c_cflag & CBAUD)
1477 zs_rtsdtr(info, RTS | DTR, 1); 1463 zs_rtsdtr(info, RTS | DTR, 1);
1478 sti(); 1464 spin_unlock_irq(&zs_lock);
1479 set_current_state(TASK_INTERRUPTIBLE); 1465 set_current_state(TASK_INTERRUPTIBLE);
1480 if (tty_hung_up_p(filp) || 1466 if (tty_hung_up_p(filp) ||
1481 !(info->flags & ZILOG_INITIALIZED)) { 1467 !(info->flags & ZILOG_INITIALIZED)) {
@@ -1523,7 +1509,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
1523 * the IRQ chain. It also performs the serial-specific 1509 * the IRQ chain. It also performs the serial-specific
1524 * initialization for the tty structure. 1510 * initialization for the tty structure.
1525 */ 1511 */
1526int rs_open(struct tty_struct *tty, struct file * filp) 1512static int rs_open(struct tty_struct *tty, struct file * filp)
1527{ 1513{
1528 struct dec_serial *info; 1514 struct dec_serial *info;
1529 int retval, line; 1515 int retval, line;
@@ -1706,7 +1692,7 @@ static void __init probe_sccs(void)
1706 } 1692 }
1707 } 1693 }
1708 1694
1709 save_and_cli(flags); 1695 spin_lock_irqsave(&zs_lock, flags);
1710 for (n = 0; n < zs_channels_found; n++) { 1696 for (n = 0; n < zs_channels_found; n++) {
1711 if (n % 2 == 0) { 1697 if (n % 2 == 0) {
1712 write_zsreg(zs_soft[n].zs_chan_a, R9, FHWRES); 1698 write_zsreg(zs_soft[n].zs_chan_a, R9, FHWRES);
@@ -1716,7 +1702,7 @@ static void __init probe_sccs(void)
1716 load_zsregs(zs_soft[n].zs_channel, 1702 load_zsregs(zs_soft[n].zs_channel,
1717 zs_soft[n].zs_channel->curregs); 1703 zs_soft[n].zs_channel->curregs);
1718 } 1704 }
1719 restore_flags(flags); 1705 spin_unlock_irqrestore(&zs_lock, flags);
1720} 1706}
1721 1707
1722static struct tty_operations serial_ops = { 1708static struct tty_operations serial_ops = {
@@ -1749,9 +1735,6 @@ int __init zs_init(void)
1749 if(!BUS_PRESENT) 1735 if(!BUS_PRESENT)
1750 return -ENODEV; 1736 return -ENODEV;
1751 1737
1752 /* Setup base handler, and timer table. */
1753 init_bh(SERIAL_BH, do_serial_bh);
1754
1755 /* Find out how many Z8530 SCCs we have */ 1738 /* Find out how many Z8530 SCCs we have */
1756 if (zs_chain == 0) 1739 if (zs_chain == 0)
1757 probe_sccs(); 1740 probe_sccs();
@@ -1800,8 +1783,7 @@ int __init zs_init(void)
1800 info->event = 0; 1783 info->event = 0;
1801 info->count = 0; 1784 info->count = 0;
1802 info->blocked_open = 0; 1785 info->blocked_open = 0;
1803 info->tqueue.routine = do_softint; 1786 tasklet_init(&info->tlet, do_softint, (unsigned long)info);
1804 info->tqueue.data = info;
1805 init_waitqueue_head(&info->open_wait); 1787 init_waitqueue_head(&info->open_wait);
1806 init_waitqueue_head(&info->close_wait); 1788 init_waitqueue_head(&info->close_wait);
1807 printk("ttyS%02d at 0x%08x (irq = %d) is a Z85C30 SCC\n", 1789 printk("ttyS%02d at 0x%08x (irq = %d) is a Z85C30 SCC\n",
@@ -1833,8 +1815,7 @@ int __init zs_init(void)
1833/* 1815/*
1834 * polling I/O routines 1816 * polling I/O routines
1835 */ 1817 */
1836static int 1818static int zs_poll_tx_char(void *handle, unsigned char ch)
1837zs_poll_tx_char(void *handle, unsigned char ch)
1838{ 1819{
1839 struct dec_serial *info = handle; 1820 struct dec_serial *info = handle;
1840 struct dec_zschannel *chan = info->zs_channel; 1821 struct dec_zschannel *chan = info->zs_channel;
@@ -1857,8 +1838,7 @@ zs_poll_tx_char(void *handle, unsigned char ch)
1857 return -ENODEV; 1838 return -ENODEV;
1858} 1839}
1859 1840
1860static int 1841static int zs_poll_rx_char(void *handle)
1861zs_poll_rx_char(void *handle)
1862{ 1842{
1863 struct dec_serial *info = handle; 1843 struct dec_serial *info = handle;
1864 struct dec_zschannel *chan = info->zs_channel; 1844 struct dec_zschannel *chan = info->zs_channel;
@@ -2037,7 +2017,7 @@ static int __init serial_console_setup(struct console *co, char *options)
2037 } 2017 }
2038 co->cflag = cflag; 2018 co->cflag = cflag;
2039 2019
2040 save_and_cli(flags); 2020 spin_lock_irqsave(&zs_lock, flags);
2041 2021
2042 /* 2022 /*
2043 * Set up the baud rate generator. 2023 * Set up the baud rate generator.
@@ -2092,7 +2072,7 @@ static int __init serial_console_setup(struct console *co, char *options)
2092 zs_soft[co->index].clk_divisor = clk_divisor; 2072 zs_soft[co->index].clk_divisor = clk_divisor;
2093 zs_soft[co->index].zs_baud = get_zsbaud(&zs_soft[co->index]); 2073 zs_soft[co->index].zs_baud = get_zsbaud(&zs_soft[co->index]);
2094 2074
2095 restore_flags(flags); 2075 spin_unlock_irqrestore(&zs_lock, flags);
2096 2076
2097 return 0; 2077 return 0;
2098} 2078}
@@ -2229,5 +2209,3 @@ void __init zs_kgdb_hook(int tty_num)
2229 set_debug_traps(); /* init stub */ 2209 set_debug_traps(); /* init stub */
2230} 2210}
2231#endif /* ifdef CONFIG_KGDB */ 2211#endif /* ifdef CONFIG_KGDB */
2232
2233
diff --git a/drivers/tc/zs.h b/drivers/tc/zs.h
index c52edffa6049..13512200ceba 100644
--- a/drivers/tc/zs.h
+++ b/drivers/tc/zs.h
@@ -6,14 +6,14 @@
6 * 6 *
7 * Copyright (C) 1996 Paul Mackerras (Paul.Mackerras@cs.anu.edu.au) 7 * Copyright (C) 1996 Paul Mackerras (Paul.Mackerras@cs.anu.edu.au)
8 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu) 8 * Copyright (C) 1995 David S. Miller (davem@caip.rutgers.edu)
9 * Copyright (C) 2004 Maciej W. Rozycki 9 * Copyright (C) 2004, 2005 Maciej W. Rozycki
10 */ 10 */
11#ifndef _DECSERIAL_H 11#ifndef _DECSERIAL_H
12#define _DECSERIAL_H 12#define _DECSERIAL_H
13 13
14#include <asm/dec/serial.h> 14#include <asm/dec/serial.h>
15 15
16#define NUM_ZSREGS 16 16#define NUM_ZSREGS 16
17 17
18struct serial_struct { 18struct serial_struct {
19 int type; 19 int type;
@@ -139,8 +139,7 @@ struct dec_serial {
139 int xmit_head; 139 int xmit_head;
140 int xmit_tail; 140 int xmit_tail;
141 int xmit_cnt; 141 int xmit_cnt;
142 struct tq_struct tqueue; 142 struct tasklet_struct tlet;
143 struct tq_struct tqueue_hangup;
144 wait_queue_head_t open_wait; 143 wait_queue_head_t open_wait;
145 wait_queue_head_t close_wait; 144 wait_queue_head_t close_wait;
146}; 145};
@@ -282,7 +281,7 @@ struct dec_serial {
282#define DLC 4 /* Disable Lower Chain */ 281#define DLC 4 /* Disable Lower Chain */
283#define MIE 8 /* Master Interrupt Enable */ 282#define MIE 8 /* Master Interrupt Enable */
284#define STATHI 0x10 /* Status high */ 283#define STATHI 0x10 /* Status high */
285#define SOFTACK 0x20 /* Software Interrupt Acknowledge */ 284#define SOFTACK 0x20 /* Software Interrupt Acknowledge */
286#define NORESET 0 /* No reset on write to R9 */ 285#define NORESET 0 /* No reset on write to R9 */
287#define CHRB 0x40 /* Reset channel B */ 286#define CHRB 0x40 /* Reset channel B */
288#define CHRA 0x80 /* Reset channel A */ 287#define CHRA 0x80 /* Reset channel A */
@@ -395,8 +394,8 @@ struct dec_serial {
395/* Read Register 15 (value of WR 15) */ 394/* Read Register 15 (value of WR 15) */
396 395
397/* Misc macros */ 396/* Misc macros */
398#define ZS_CLEARERR(channel) (write_zsreg(channel, 0, ERR_RES)) 397#define ZS_CLEARERR(channel) (write_zsreg(channel, 0, ERR_RES))
399#define ZS_CLEARFIFO(channel) do { volatile unsigned char garbage; \ 398#define ZS_CLEARFIFO(channel) do { volatile unsigned char garbage; \
400 garbage = read_zsdata(channel); \ 399 garbage = read_zsdata(channel); \
401 garbage = read_zsdata(channel); \ 400 garbage = read_zsdata(channel); \
402 garbage = read_zsdata(channel); \ 401 garbage = read_zsdata(channel); \
diff --git a/drivers/usb/atm/Makefile b/drivers/usb/atm/Makefile
index 751f297be2ef..85099718c683 100644
--- a/drivers/usb/atm/Makefile
+++ b/drivers/usb/atm/Makefile
@@ -6,3 +6,7 @@ obj-$(CONFIG_USB_CXACRU) += cxacru.o
6obj-$(CONFIG_USB_SPEEDTOUCH) += speedtch.o 6obj-$(CONFIG_USB_SPEEDTOUCH) += speedtch.o
7obj-$(CONFIG_USB_ATM) += usbatm.o 7obj-$(CONFIG_USB_ATM) += usbatm.o
8obj-$(CONFIG_USB_XUSBATM) += xusbatm.o 8obj-$(CONFIG_USB_XUSBATM) += xusbatm.o
9
10ifeq ($(CONFIG_USB_DEBUG),y)
11EXTRA_CFLAGS += -DDEBUG
12endif
diff --git a/drivers/usb/atm/usbatm.h b/drivers/usb/atm/usbatm.h
index 936646457935..1adacd60d713 100644
--- a/drivers/usb/atm/usbatm.h
+++ b/drivers/usb/atm/usbatm.h
@@ -27,14 +27,9 @@
27#include <linux/config.h> 27#include <linux/config.h>
28 28
29/* 29/*
30#define DEBUG
31#define VERBOSE_DEBUG 30#define VERBOSE_DEBUG
32*/ 31*/
33 32
34#if !defined (DEBUG) && defined (CONFIG_USB_DEBUG)
35# define DEBUG
36#endif
37
38#include <asm/semaphore.h> 33#include <asm/semaphore.h>
39#include <linux/atm.h> 34#include <linux/atm.h>
40#include <linux/atmdev.h> 35#include <linux/atmdev.h>
diff --git a/drivers/usb/core/Makefile b/drivers/usb/core/Makefile
index dd1c4d2a0c31..86d5c380892d 100644
--- a/drivers/usb/core/Makefile
+++ b/drivers/usb/core/Makefile
@@ -14,3 +14,7 @@ ifeq ($(CONFIG_USB_DEVICEFS),y)
14endif 14endif
15 15
16obj-$(CONFIG_USB) += usbcore.o 16obj-$(CONFIG_USB) += usbcore.o
17
18ifeq ($(CONFIG_USB_DEBUG),y)
19EXTRA_CFLAGS += -DDEBUG
20endif
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c
index 57e800ac3cee..419c9943a7cb 100644
--- a/drivers/usb/core/buffer.c
+++ b/drivers/usb/core/buffer.c
@@ -15,14 +15,6 @@
15#include <asm/scatterlist.h> 15#include <asm/scatterlist.h>
16#include <linux/dma-mapping.h> 16#include <linux/dma-mapping.h>
17#include <linux/dmapool.h> 17#include <linux/dmapool.h>
18
19
20#ifdef CONFIG_USB_DEBUG
21 #define DEBUG
22#else
23 #undef DEBUG
24#endif
25
26#include <linux/usb.h> 18#include <linux/usb.h>
27#include "hcd.h" 19#include "hcd.h"
28 20
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 993019500cc3..a9d89c78cc20 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -1,9 +1,4 @@
1#include <linux/config.h> 1#include <linux/config.h>
2
3#ifdef CONFIG_USB_DEBUG
4#define DEBUG
5#endif
6
7#include <linux/usb.h> 2#include <linux/usb.h>
8#include <linux/module.h> 3#include <linux/module.h>
9#include <linux/init.h> 4#include <linux/init.h>
diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
index 942cd437dc48..b1d6e9af732d 100644
--- a/drivers/usb/core/devio.c
+++ b/drivers/usb/core/devio.c
@@ -1392,13 +1392,13 @@ static int proc_ioctl_default(struct dev_state *ps, void __user *arg)
1392} 1392}
1393 1393
1394#ifdef CONFIG_COMPAT 1394#ifdef CONFIG_COMPAT
1395static int proc_ioctl_compat(struct dev_state *ps, void __user *arg) 1395static int proc_ioctl_compat(struct dev_state *ps, compat_uptr_t arg)
1396{ 1396{
1397 struct usbdevfs_ioctl32 __user *uioc; 1397 struct usbdevfs_ioctl32 __user *uioc;
1398 struct usbdevfs_ioctl ctrl; 1398 struct usbdevfs_ioctl ctrl;
1399 u32 udata; 1399 u32 udata;
1400 1400
1401 uioc = compat_ptr(arg); 1401 uioc = compat_ptr((long)arg);
1402 if (get_user(ctrl.ifno, &uioc->ifno) || 1402 if (get_user(ctrl.ifno, &uioc->ifno) ||
1403 get_user(ctrl.ioctl_code, &uioc->ioctl_code) || 1403 get_user(ctrl.ioctl_code, &uioc->ioctl_code) ||
1404 __get_user(udata, &uioc->data)) 1404 __get_user(udata, &uioc->data))
@@ -1511,7 +1511,7 @@ static int usbdev_ioctl(struct inode *inode, struct file *file, unsigned int cmd
1511 1511
1512 case USBDEVFS_IOCTL32: 1512 case USBDEVFS_IOCTL32:
1513 snoop(&dev->dev, "%s: IOCTL\n", __FUNCTION__); 1513 snoop(&dev->dev, "%s: IOCTL\n", __FUNCTION__);
1514 ret = proc_ioctl_compat(ps, p); 1514 ret = proc_ioctl_compat(ps, (compat_uptr_t)(long)p);
1515 break; 1515 break;
1516#endif 1516#endif
1517 1517
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c
index e695308095ae..37b13368c814 100644
--- a/drivers/usb/core/file.c
+++ b/drivers/usb/core/file.c
@@ -19,12 +19,6 @@
19#include <linux/module.h> 19#include <linux/module.h>
20#include <linux/spinlock.h> 20#include <linux/spinlock.h>
21#include <linux/errno.h> 21#include <linux/errno.h>
22
23#ifdef CONFIG_USB_DEBUG
24 #define DEBUG
25#else
26 #undef DEBUG
27#endif
28#include <linux/usb.h> 22#include <linux/usb.h>
29 23
30#include "usb.h" 24#include "usb.h"
diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
index 84d9e69329bb..7feb829362d6 100644
--- a/drivers/usb/core/hcd-pci.c
+++ b/drivers/usb/core/hcd-pci.c
@@ -17,13 +17,6 @@
17 */ 17 */
18 18
19#include <linux/config.h> 19#include <linux/config.h>
20
21#ifdef CONFIG_USB_DEBUG
22 #define DEBUG
23#else
24 #undef DEBUG
25#endif
26
27#include <linux/kernel.h> 20#include <linux/kernel.h>
28#include <linux/module.h> 21#include <linux/module.h>
29#include <linux/pci.h> 22#include <linux/pci.h>
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index 6c7ca5b08cd6..5e5f65a475ab 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -23,11 +23,6 @@
23 */ 23 */
24 24
25#include <linux/config.h> 25#include <linux/config.h>
26
27#ifdef CONFIG_USB_DEBUG
28#define DEBUG
29#endif
30
31#include <linux/module.h> 26#include <linux/module.h>
32#include <linux/version.h> 27#include <linux/version.h>
33#include <linux/kernel.h> 28#include <linux/kernel.h>
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 256d9f698715..840727948d84 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -9,11 +9,6 @@
9 */ 9 */
10 10
11#include <linux/config.h> 11#include <linux/config.h>
12#ifdef CONFIG_USB_DEBUG
13 #define DEBUG
14#else
15 #undef DEBUG
16#endif
17#include <linux/kernel.h> 12#include <linux/kernel.h>
18#include <linux/errno.h> 13#include <linux/errno.h>
19#include <linux/module.h> 14#include <linux/module.h>
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c
index 12f490fdee8f..c44bbedec817 100644
--- a/drivers/usb/core/inode.c
+++ b/drivers/usb/core/inode.c
@@ -46,7 +46,6 @@
46 46
47static struct super_operations usbfs_ops; 47static struct super_operations usbfs_ops;
48static struct file_operations default_file_operations; 48static struct file_operations default_file_operations;
49static struct inode_operations usbfs_dir_inode_operations;
50static struct vfsmount *usbfs_mount; 49static struct vfsmount *usbfs_mount;
51static int usbfs_mount_count; /* = 0 */ 50static int usbfs_mount_count; /* = 0 */
52static int ignore_mount = 0; 51static int ignore_mount = 0;
@@ -262,7 +261,7 @@ static struct inode *usbfs_get_inode (struct super_block *sb, int mode, dev_t de
262 inode->i_fop = &default_file_operations; 261 inode->i_fop = &default_file_operations;
263 break; 262 break;
264 case S_IFDIR: 263 case S_IFDIR:
265 inode->i_op = &usbfs_dir_inode_operations; 264 inode->i_op = &simple_dir_inode_operations;
266 inode->i_fop = &simple_dir_operations; 265 inode->i_fop = &simple_dir_operations;
267 266
268 /* directory inodes start off with i_nlink == 2 (for "." entry) */ 267 /* directory inodes start off with i_nlink == 2 (for "." entry) */
@@ -417,10 +416,6 @@ static struct file_operations default_file_operations = {
417 .llseek = default_file_lseek, 416 .llseek = default_file_lseek,
418}; 417};
419 418
420static struct inode_operations usbfs_dir_inode_operations = {
421 .lookup = simple_lookup,
422};
423
424static struct super_operations usbfs_ops = { 419static struct super_operations usbfs_ops = {
425 .statfs = simple_statfs, 420 .statfs = simple_statfs,
426 .drop_inode = generic_delete_inode, 421 .drop_inode = generic_delete_inode,
diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
index 644a3d4f12aa..fe74f99ca5f4 100644
--- a/drivers/usb/core/message.c
+++ b/drivers/usb/core/message.c
@@ -3,13 +3,6 @@
3 */ 3 */
4 4
5#include <linux/config.h> 5#include <linux/config.h>
6
7#ifdef CONFIG_USB_DEBUG
8 #define DEBUG
9#else
10 #undef DEBUG
11#endif
12
13#include <linux/pci.h> /* for scatterlist macros */ 6#include <linux/pci.h> /* for scatterlist macros */
14#include <linux/usb.h> 7#include <linux/usb.h>
15#include <linux/module.h> 8#include <linux/module.h>
@@ -1457,12 +1450,11 @@ free_interfaces:
1457 */ 1450 */
1458 for (i = 0; i < nintf; ++i) { 1451 for (i = 0; i < nintf; ++i) {
1459 struct usb_interface *intf = cp->interface[i]; 1452 struct usb_interface *intf = cp->interface[i];
1460 struct usb_host_interface *alt = intf->cur_altsetting;
1461 1453
1462 dev_dbg (&dev->dev, 1454 dev_dbg (&dev->dev,
1463 "adding %s (config #%d, interface %d)\n", 1455 "adding %s (config #%d, interface %d)\n",
1464 intf->dev.bus_id, configuration, 1456 intf->dev.bus_id, configuration,
1465 alt->desc.bInterfaceNumber); 1457 intf->cur_altsetting->desc.bInterfaceNumber);
1466 ret = device_add (&intf->dev); 1458 ret = device_add (&intf->dev);
1467 if (ret != 0) { 1459 if (ret != 0) {
1468 dev_err(&dev->dev, 1460 dev_err(&dev->dev,
diff --git a/drivers/usb/core/notify.c b/drivers/usb/core/notify.c
index 37da059eced7..fbbebab52fbd 100644
--- a/drivers/usb/core/notify.c
+++ b/drivers/usb/core/notify.c
@@ -12,13 +12,7 @@
12#include <linux/config.h> 12#include <linux/config.h>
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/notifier.h> 14#include <linux/notifier.h>
15#ifdef CONFIG_USB_DEBUG
16 #define DEBUG
17#else
18 #undef DEBUG
19#endif
20#include <linux/usb.h> 15#include <linux/usb.h>
21
22#include "usb.h" 16#include "usb.h"
23 17
24 18
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index edd83e014452..71d881327e88 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -12,14 +12,7 @@
12 12
13#include <linux/config.h> 13#include <linux/config.h>
14#include <linux/kernel.h> 14#include <linux/kernel.h>
15
16#ifdef CONFIG_USB_DEBUG
17 #define DEBUG
18#else
19 #undef DEBUG
20#endif
21#include <linux/usb.h> 15#include <linux/usb.h>
22
23#include "usb.h" 16#include "usb.h"
24 17
25/* endpoint stuff */ 18/* endpoint stuff */
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index f2a1fed2a802..081796726b95 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -4,12 +4,6 @@
4#include <linux/bitops.h> 4#include <linux/bitops.h>
5#include <linux/slab.h> 5#include <linux/slab.h>
6#include <linux/init.h> 6#include <linux/init.h>
7
8#ifdef CONFIG_USB_DEBUG
9 #define DEBUG
10#else
11 #undef DEBUG
12#endif
13#include <linux/usb.h> 7#include <linux/usb.h>
14#include "hcd.h" 8#include "hcd.h"
15 9
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 0eefff7bcb3c..e197ce9353de 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -22,13 +22,6 @@
22 */ 22 */
23 23
24#include <linux/config.h> 24#include <linux/config.h>
25
26#ifdef CONFIG_USB_DEBUG
27 #define DEBUG
28#else
29 #undef DEBUG
30#endif
31
32#include <linux/module.h> 25#include <linux/module.h>
33#include <linux/string.h> 26#include <linux/string.h>
34#include <linux/bitops.h> 27#include <linux/bitops.h>
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
index 1e407745c115..c655d46c8aed 100644
--- a/drivers/usb/gadget/dummy_hcd.c
+++ b/drivers/usb/gadget/dummy_hcd.c
@@ -944,7 +944,7 @@ static int dummy_udc_suspend (struct platform_device *dev, pm_message_t state)
944 set_link_state (dum); 944 set_link_state (dum);
945 spin_unlock_irq (&dum->lock); 945 spin_unlock_irq (&dum->lock);
946 946
947 dev->power.power_state = state; 947 dev->dev.power.power_state = state;
948 usb_hcd_poll_rh_status (dummy_to_hcd (dum)); 948 usb_hcd_poll_rh_status (dummy_to_hcd (dum));
949 return 0; 949 return 0;
950} 950}
@@ -1904,7 +1904,7 @@ static int dummy_hcd_probe (struct platform_device *dev)
1904 struct usb_hcd *hcd; 1904 struct usb_hcd *hcd;
1905 int retval; 1905 int retval;
1906 1906
1907 dev_info (dev, "%s, driver " DRIVER_VERSION "\n", driver_desc); 1907 dev_info(&dev->dev, "%s, driver " DRIVER_VERSION "\n", driver_desc);
1908 1908
1909 hcd = usb_create_hcd (&dummy_hcd, &dev->dev, dev->dev.bus_id); 1909 hcd = usb_create_hcd (&dummy_hcd, &dev->dev, dev->dev.bus_id);
1910 if (!hcd) 1910 if (!hcd)
diff --git a/drivers/usb/host/ohci-lh7a404.c b/drivers/usb/host/ohci-lh7a404.c
index 081ec3f5cff4..3959ccc88332 100644
--- a/drivers/usb/host/ohci-lh7a404.c
+++ b/drivers/usb/host/ohci-lh7a404.c
@@ -219,7 +219,7 @@ static int ohci_hcd_lh7a404_drv_probe(struct platform_device *pdev)
219 219
220static int ohci_hcd_lh7a404_drv_remove(struct platform_device *pdev) 220static int ohci_hcd_lh7a404_drv_remove(struct platform_device *pdev)
221{ 221{
222 struct usb_hcd *hcd = platform_get_drvdata(dev); 222 struct usb_hcd *hcd = platform_get_drvdata(pdev);
223 223
224 usb_hcd_lh7a404_remove(hcd, pdev); 224 usb_hcd_lh7a404_remove(hcd, pdev);
225 return 0; 225 return 0;
diff --git a/drivers/usb/host/ohci-ppc-soc.c b/drivers/usb/host/ohci-ppc-soc.c
index 18755766e406..2ec6a78bd65e 100644
--- a/drivers/usb/host/ohci-ppc-soc.c
+++ b/drivers/usb/host/ohci-ppc-soc.c
@@ -185,7 +185,7 @@ static int ohci_hcd_ppc_soc_drv_probe(struct platform_device *pdev)
185 185
186static int ohci_hcd_ppc_soc_drv_remove(struct platform_device *pdev) 186static int ohci_hcd_ppc_soc_drv_remove(struct platform_device *pdev)
187{ 187{
188 struct usb_hcd *hcd = platform_get_drvdata(dev); 188 struct usb_hcd *hcd = platform_get_drvdata(pdev);
189 189
190 usb_hcd_ppc_soc_remove(hcd, pdev); 190 usb_hcd_ppc_soc_remove(hcd, pdev);
191 return 0; 191 return 0;
diff --git a/drivers/usb/image/microtek.c b/drivers/usb/image/microtek.c
index 61a2604cce4f..950543aa5ac7 100644
--- a/drivers/usb/image/microtek.c
+++ b/drivers/usb/image/microtek.c
@@ -327,6 +327,18 @@ static inline void mts_urb_abort(struct mts_desc* desc) {
327 usb_kill_urb( desc->urb ); 327 usb_kill_urb( desc->urb );
328} 328}
329 329
330static int mts_slave_alloc (struct scsi_device *s)
331{
332 s->inquiry_len = 0x24;
333 return 0;
334}
335
336static int mts_slave_configure (struct scsi_device *s)
337{
338 blk_queue_dma_alignment(s->request_queue, (512 - 1));
339 return 0;
340}
341
330static int mts_scsi_abort (Scsi_Cmnd *srb) 342static int mts_scsi_abort (Scsi_Cmnd *srb)
331{ 343{
332 struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]); 344 struct mts_desc* desc = (struct mts_desc*)(srb->device->host->hostdata[0]);
@@ -411,7 +423,7 @@ static void mts_transfer_done( struct urb *transfer, struct pt_regs *regs )
411 MTS_INT_INIT(); 423 MTS_INT_INIT();
412 424
413 context->srb->result &= MTS_SCSI_ERR_MASK; 425 context->srb->result &= MTS_SCSI_ERR_MASK;
414 context->srb->result |= (unsigned)context->status<<1; 426 context->srb->result |= (unsigned)(*context->scsi_status)<<1;
415 427
416 mts_transfer_cleanup(transfer); 428 mts_transfer_cleanup(transfer);
417 429
@@ -427,7 +439,7 @@ static void mts_get_status( struct urb *transfer )
427 mts_int_submit_urb(transfer, 439 mts_int_submit_urb(transfer,
428 usb_rcvbulkpipe(context->instance->usb_dev, 440 usb_rcvbulkpipe(context->instance->usb_dev,
429 context->instance->ep_response), 441 context->instance->ep_response),
430 &context->status, 442 context->scsi_status,
431 1, 443 1,
432 mts_transfer_done ); 444 mts_transfer_done );
433} 445}
@@ -481,7 +493,7 @@ static void mts_command_done( struct urb *transfer, struct pt_regs *regs )
481 context->data_pipe, 493 context->data_pipe,
482 context->data, 494 context->data,
483 context->data_length, 495 context->data_length,
484 context->srb->use_sg ? mts_do_sg : mts_data_done); 496 context->srb->use_sg > 1 ? mts_do_sg : mts_data_done);
485 } else { 497 } else {
486 mts_get_status(transfer); 498 mts_get_status(transfer);
487 } 499 }
@@ -627,7 +639,6 @@ int mts_scsi_queuecommand( Scsi_Cmnd *srb, mts_scsi_cmnd_callback callback )
627 callback(srb); 639 callback(srb);
628 640
629 } 641 }
630
631out: 642out:
632 return err; 643 return err;
633} 644}
@@ -645,6 +656,9 @@ static struct scsi_host_template mts_scsi_host_template = {
645 .cmd_per_lun = 1, 656 .cmd_per_lun = 1,
646 .use_clustering = 1, 657 .use_clustering = 1,
647 .emulated = 1, 658 .emulated = 1,
659 .slave_alloc = mts_slave_alloc,
660 .slave_configure = mts_slave_configure,
661 .max_sectors= 256, /* 128 K */
648}; 662};
649 663
650struct vendor_product 664struct vendor_product
@@ -771,8 +785,8 @@ static int mts_usb_probe(struct usb_interface *intf,
771 MTS_WARNING( "couldn't find an output bulk endpoint. Bailing out.\n" ); 785 MTS_WARNING( "couldn't find an output bulk endpoint. Bailing out.\n" );
772 return -ENODEV; 786 return -ENODEV;
773 } 787 }
774 788
775 789
776 new_desc = kzalloc(sizeof(struct mts_desc), GFP_KERNEL); 790 new_desc = kzalloc(sizeof(struct mts_desc), GFP_KERNEL);
777 if (!new_desc) 791 if (!new_desc)
778 goto out; 792 goto out;
@@ -781,6 +795,10 @@ static int mts_usb_probe(struct usb_interface *intf,
781 if (!new_desc->urb) 795 if (!new_desc->urb)
782 goto out_kfree; 796 goto out_kfree;
783 797
798 new_desc->context.scsi_status = kmalloc(1, GFP_KERNEL);
799 if (!new_desc->context.scsi_status)
800 goto out_kfree2;
801
784 new_desc->usb_dev = dev; 802 new_desc->usb_dev = dev;
785 new_desc->usb_intf = intf; 803 new_desc->usb_intf = intf;
786 init_MUTEX(&new_desc->lock); 804 init_MUTEX(&new_desc->lock);
@@ -817,6 +835,8 @@ static int mts_usb_probe(struct usb_interface *intf,
817 usb_set_intfdata(intf, new_desc); 835 usb_set_intfdata(intf, new_desc);
818 return 0; 836 return 0;
819 837
838 out_kfree2:
839 kfree(new_desc->context.scsi_status);
820 out_free_urb: 840 out_free_urb:
821 usb_free_urb(new_desc->urb); 841 usb_free_urb(new_desc->urb);
822 out_kfree: 842 out_kfree:
@@ -836,6 +856,7 @@ static void mts_usb_disconnect (struct usb_interface *intf)
836 856
837 scsi_host_put(desc->host); 857 scsi_host_put(desc->host);
838 usb_free_urb(desc->urb); 858 usb_free_urb(desc->urb);
859 kfree(desc->context.scsi_status);
839 kfree(desc); 860 kfree(desc);
840} 861}
841 862
@@ -856,5 +877,3 @@ module_exit(microtek_drv_exit);
856MODULE_AUTHOR( DRIVER_AUTHOR ); 877MODULE_AUTHOR( DRIVER_AUTHOR );
857MODULE_DESCRIPTION( DRIVER_DESC ); 878MODULE_DESCRIPTION( DRIVER_DESC );
858MODULE_LICENSE("GPL"); 879MODULE_LICENSE("GPL");
859
860
diff --git a/drivers/usb/image/microtek.h b/drivers/usb/image/microtek.h
index 3271deb8c001..926d4bdc6746 100644
--- a/drivers/usb/image/microtek.h
+++ b/drivers/usb/image/microtek.h
@@ -22,7 +22,7 @@ struct mts_transfer_context
22 int data_pipe; 22 int data_pipe;
23 int fragment; 23 int fragment;
24 24
25 u8 status; /* status returned from ep_response after command completion */ 25 u8 *scsi_status; /* status returned from ep_response after command completion */
26}; 26};
27 27
28 28
diff --git a/drivers/usb/input/Makefile b/drivers/usb/input/Makefile
index 5e03b93f29f6..07cb17db42fc 100644
--- a/drivers/usb/input/Makefile
+++ b/drivers/usb/input/Makefile
@@ -42,3 +42,7 @@ obj-$(CONFIG_USB_ACECAD) += acecad.o
42obj-$(CONFIG_USB_YEALINK) += yealink.o 42obj-$(CONFIG_USB_YEALINK) += yealink.o
43obj-$(CONFIG_USB_XPAD) += xpad.o 43obj-$(CONFIG_USB_XPAD) += xpad.o
44obj-$(CONFIG_USB_APPLETOUCH) += appletouch.o 44obj-$(CONFIG_USB_APPLETOUCH) += appletouch.o
45
46ifeq ($(CONFIG_USB_DEBUG),y)
47EXTRA_CFLAGS += -DDEBUG
48endif
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index 79ddce4555ab..45f3130fadea 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -1318,6 +1318,7 @@ void hid_init_reports(struct hid_device *hid)
1318#define USB_DEVICE_ID_WACOM_PTU 0x0003 1318#define USB_DEVICE_ID_WACOM_PTU 0x0003
1319#define USB_DEVICE_ID_WACOM_INTUOS3 0x00B0 1319#define USB_DEVICE_ID_WACOM_INTUOS3 0x00B0
1320#define USB_DEVICE_ID_WACOM_CINTIQ 0x003F 1320#define USB_DEVICE_ID_WACOM_CINTIQ 0x003F
1321#define USB_DEVICE_ID_WACOM_DTF 0x00C0
1321 1322
1322#define USB_VENDOR_ID_ACECAD 0x0460 1323#define USB_VENDOR_ID_ACECAD 0x0460
1323#define USB_DEVICE_ID_ACECAD_FLAIR 0x0004 1324#define USB_DEVICE_ID_ACECAD_FLAIR 0x0004
@@ -1524,6 +1525,9 @@ static struct hid_blacklist {
1524 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 3, HID_QUIRK_IGNORE }, 1525 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 3, HID_QUIRK_IGNORE },
1525 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 4, HID_QUIRK_IGNORE }, 1526 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 4, HID_QUIRK_IGNORE },
1526 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 5, HID_QUIRK_IGNORE }, 1527 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 5, HID_QUIRK_IGNORE },
1528 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 7, HID_QUIRK_IGNORE },
1529 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 8, HID_QUIRK_IGNORE },
1530 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PL + 9, HID_QUIRK_IGNORE },
1527 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 1, HID_QUIRK_IGNORE }, 1531 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 1, HID_QUIRK_IGNORE },
1528 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 2, HID_QUIRK_IGNORE }, 1532 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 2, HID_QUIRK_IGNORE },
1529 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 3, HID_QUIRK_IGNORE }, 1533 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 3, HID_QUIRK_IGNORE },
@@ -1531,11 +1535,19 @@ static struct hid_blacklist {
1531 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 5, HID_QUIRK_IGNORE }, 1535 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 5, HID_QUIRK_IGNORE },
1532 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 7, HID_QUIRK_IGNORE }, 1536 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS2 + 7, HID_QUIRK_IGNORE },
1533 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO, HID_QUIRK_IGNORE }, 1537 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO, HID_QUIRK_IGNORE },
1538 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO + 1, HID_QUIRK_IGNORE },
1539 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO + 2, HID_QUIRK_IGNORE },
1540 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO + 3, HID_QUIRK_IGNORE },
1541 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_VOLITO + 4, HID_QUIRK_IGNORE },
1542 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_GRAPHIRE + 5, HID_QUIRK_IGNORE },
1543 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_GRAPHIRE + 6, HID_QUIRK_IGNORE },
1534 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PTU, HID_QUIRK_IGNORE }, 1544 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_PTU, HID_QUIRK_IGNORE },
1535 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3, HID_QUIRK_IGNORE }, 1545 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3, HID_QUIRK_IGNORE },
1536 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 1, HID_QUIRK_IGNORE }, 1546 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 1, HID_QUIRK_IGNORE },
1537 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 2, HID_QUIRK_IGNORE }, 1547 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 2, HID_QUIRK_IGNORE },
1548 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_INTUOS3 + 5, HID_QUIRK_IGNORE },
1538 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_CINTIQ, HID_QUIRK_IGNORE }, 1549 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_CINTIQ, HID_QUIRK_IGNORE },
1550 { USB_VENDOR_ID_WACOM, USB_DEVICE_ID_WACOM_DTF, HID_QUIRK_IGNORE },
1539 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_4_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, 1551 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_4_PHIDGETSERVO_20, HID_QUIRK_IGNORE },
1540 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20, HID_QUIRK_IGNORE }, 1552 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_1_PHIDGETSERVO_20, HID_QUIRK_IGNORE },
1541 1553
diff --git a/drivers/usb/input/itmtouch.c b/drivers/usb/input/itmtouch.c
index 3b581853cf10..4a50acb39d29 100644
--- a/drivers/usb/input/itmtouch.c
+++ b/drivers/usb/input/itmtouch.c
@@ -40,13 +40,6 @@
40 *****************************************************************************/ 40 *****************************************************************************/
41 41
42#include <linux/config.h> 42#include <linux/config.h>
43
44#ifdef CONFIG_USB_DEBUG
45 #define DEBUG
46#else
47 #undef DEBUG
48#endif
49
50#include <linux/kernel.h> 43#include <linux/kernel.h>
51#include <linux/slab.h> 44#include <linux/slab.h>
52#include <linux/input.h> 45#include <linux/input.h>
diff --git a/drivers/usb/input/keyspan_remote.c b/drivers/usb/input/keyspan_remote.c
index 5b8d65f62abf..a32cfe51b77d 100644
--- a/drivers/usb/input/keyspan_remote.c
+++ b/drivers/usb/input/keyspan_remote.c
@@ -160,7 +160,8 @@ static int keyspan_load_tester(struct usb_keyspan* dev, int bits_needed)
160 * though so it's not too big a deal 160 * though so it's not too big a deal
161 */ 161 */
162 if (dev->data.pos >= dev->data.len) { 162 if (dev->data.pos >= dev->data.len) {
163 dev_dbg(&dev->udev, "%s - Error ran out of data. pos: %d, len: %d\n", 163 dev_dbg(&dev->udev->dev,
164 "%s - Error ran out of data. pos: %d, len: %d\n",
164 __FUNCTION__, dev->data.pos, dev->data.len); 165 __FUNCTION__, dev->data.pos, dev->data.len);
165 return -1; 166 return -1;
166 } 167 }
@@ -306,7 +307,7 @@ static void keyspan_check_data(struct usb_keyspan *remote, struct pt_regs *regs)
306 err("Bad message recieved, no stop bit found.\n"); 307 err("Bad message recieved, no stop bit found.\n");
307 } 308 }
308 309
309 dev_dbg(&remote->udev, 310 dev_dbg(&remote->udev->dev,
310 "%s found valid message: system: %d, button: %d, toggle: %d\n", 311 "%s found valid message: system: %d, button: %d, toggle: %d\n",
311 __FUNCTION__, message.system, message.button, message.toggle); 312 __FUNCTION__, message.system, message.button, message.toggle);
312 313
diff --git a/drivers/usb/input/mtouchusb.c b/drivers/usb/input/mtouchusb.c
index 7fce526560ca..52cc18cd247d 100644
--- a/drivers/usb/input/mtouchusb.c
+++ b/drivers/usb/input/mtouchusb.c
@@ -40,13 +40,6 @@
40 *****************************************************************************/ 40 *****************************************************************************/
41 41
42#include <linux/config.h> 42#include <linux/config.h>
43
44#ifdef CONFIG_USB_DEBUG
45 #define DEBUG
46#else
47 #undef DEBUG
48#endif
49
50#include <linux/kernel.h> 43#include <linux/kernel.h>
51#include <linux/slab.h> 44#include <linux/slab.h>
52#include <linux/input.h> 45#include <linux/input.h>
diff --git a/drivers/usb/input/pid.c b/drivers/usb/input/pid.c
index dca5ee93a4ef..19e015d171aa 100644
--- a/drivers/usb/input/pid.c
+++ b/drivers/usb/input/pid.c
@@ -37,8 +37,6 @@
37#include "hid.h" 37#include "hid.h"
38#include "pid.h" 38#include "pid.h"
39 39
40#define DEBUG
41
42#define CHECK_OWNERSHIP(i, hid_pid) \ 40#define CHECK_OWNERSHIP(i, hid_pid) \
43 ((i) < FF_EFFECTS_MAX && i >= 0 && \ 41 ((i) < FF_EFFECTS_MAX && i >= 0 && \
44 test_bit(FF_PID_FLAGS_USED, &hid_pid->effects[(i)].flags) && \ 42 test_bit(FF_PID_FLAGS_USED, &hid_pid->effects[(i)].flags) && \
diff --git a/drivers/usb/input/touchkitusb.c b/drivers/usb/input/touchkitusb.c
index 0043e6ebcd1f..7420c6b84284 100644
--- a/drivers/usb/input/touchkitusb.c
+++ b/drivers/usb/input/touchkitusb.c
@@ -30,10 +30,6 @@
30#include <linux/input.h> 30#include <linux/input.h>
31#include <linux/module.h> 31#include <linux/module.h>
32#include <linux/init.h> 32#include <linux/init.h>
33
34#if !defined(DEBUG) && defined(CONFIG_USB_DEBUG)
35#define DEBUG
36#endif
37#include <linux/usb.h> 33#include <linux/usb.h>
38#include <linux/usb_input.h> 34#include <linux/usb_input.h>
39 35
diff --git a/drivers/usb/input/wacom.c b/drivers/usb/input/wacom.c
index ea0f75773ae1..aea1cfae34cc 100644
--- a/drivers/usb/input/wacom.c
+++ b/drivers/usb/input/wacom.c
@@ -52,8 +52,10 @@
52 * v1.30.1 (pi) - Added Graphire3 support 52 * v1.30.1 (pi) - Added Graphire3 support
53 * v1.40 (pc) - Add support for several new devices, fix eraser reporting, ... 53 * v1.40 (pc) - Add support for several new devices, fix eraser reporting, ...
54 * v1.43 (pc) - Added support for Cintiq 21UX 54 * v1.43 (pc) - Added support for Cintiq 21UX
55 - Fixed a Graphire bug 55 * - Fixed a Graphire bug
56 - Merged wacom_intuos3_irq into wacom_intuos_irq 56 * - Merged wacom_intuos3_irq into wacom_intuos_irq
57 * v1.44 (pc) - Added support for Graphire4, Cintiq 710, Intuos3 6x11, etc.
58 * - Report Device IDs
57 */ 59 */
58 60
59/* 61/*
@@ -76,7 +78,7 @@
76/* 78/*
77 * Version Information 79 * Version Information
78 */ 80 */
79#define DRIVER_VERSION "v1.43" 81#define DRIVER_VERSION "v1.44"
80#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>" 82#define DRIVER_AUTHOR "Vojtech Pavlik <vojtech@ucw.cz>"
81#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver" 83#define DRIVER_DESC "USB Wacom Graphire and Wacom Intuos tablet driver"
82#define DRIVER_LICENSE "GPL" 84#define DRIVER_LICENSE "GPL"
@@ -86,10 +88,14 @@ MODULE_DESCRIPTION(DRIVER_DESC);
86MODULE_LICENSE(DRIVER_LICENSE); 88MODULE_LICENSE(DRIVER_LICENSE);
87 89
88#define USB_VENDOR_ID_WACOM 0x056a 90#define USB_VENDOR_ID_WACOM 0x056a
91#define STYLUS_DEVICE_ID 0x02
92#define CURSOR_DEVICE_ID 0x06
93#define ERASER_DEVICE_ID 0x0A
89 94
90enum { 95enum {
91 PENPARTNER = 0, 96 PENPARTNER = 0,
92 GRAPHIRE, 97 GRAPHIRE,
98 G4,
93 PL, 99 PL,
94 INTUOS, 100 INTUOS,
95 INTUOS3, 101 INTUOS3,
@@ -116,6 +122,7 @@ struct wacom {
116 struct urb *irq; 122 struct urb *irq;
117 struct wacom_features *features; 123 struct wacom_features *features;
118 int tool[2]; 124 int tool[2];
125 int id[2];
119 __u32 serial[2]; 126 __u32 serial[2];
120 char phys[32]; 127 char phys[32];
121}; 128};
@@ -136,7 +143,7 @@ static void wacom_pl_irq(struct urb *urb, struct pt_regs *regs)
136 struct wacom *wacom = urb->context; 143 struct wacom *wacom = urb->context;
137 unsigned char *data = wacom->data; 144 unsigned char *data = wacom->data;
138 struct input_dev *dev = wacom->dev; 145 struct input_dev *dev = wacom->dev;
139 int prox, pressure; 146 int prox, pressure, id;
140 int retval; 147 int retval;
141 148
142 switch (urb->status) { 149 switch (urb->status) {
@@ -163,6 +170,7 @@ static void wacom_pl_irq(struct urb *urb, struct pt_regs *regs)
163 170
164 input_regs(dev, regs); 171 input_regs(dev, regs);
165 172
173 id = ERASER_DEVICE_ID;
166 if (prox) { 174 if (prox) {
167 175
168 pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1)); 176 pressure = (signed char)((data[7] << 1) | ((data[4] >> 2) & 1));
@@ -177,11 +185,15 @@ static void wacom_pl_irq(struct urb *urb, struct pt_regs *regs)
177 * an out of proximity for previous tool then a in for new tool. 185 * an out of proximity for previous tool then a in for new tool.
178 */ 186 */
179 if (!wacom->tool[0]) { 187 if (!wacom->tool[0]) {
180 /* Going into proximity select tool */ 188 /* Eraser bit set for DTF */
181 wacom->tool[1] = (data[4] & 0x20)? BTN_TOOL_RUBBER : BTN_TOOL_PEN; 189 if (data[1] & 0x10)
190 wacom->tool[1] = BTN_TOOL_RUBBER;
191 else
192 /* Going into proximity select tool */
193 wacom->tool[1] = (data[4] & 0x20) ? BTN_TOOL_RUBBER : BTN_TOOL_PEN;
182 } else { 194 } else {
183 /* was entered with stylus2 pressed */ 195 /* was entered with stylus2 pressed */
184 if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[4] & 0x20) ) { 196 if (wacom->tool[1] == BTN_TOOL_RUBBER && !(data[4] & 0x20)) {
185 /* report out proximity for previous tool */ 197 /* report out proximity for previous tool */
186 input_report_key(dev, wacom->tool[1], 0); 198 input_report_key(dev, wacom->tool[1], 0);
187 input_sync(dev); 199 input_sync(dev);
@@ -192,8 +204,9 @@ static void wacom_pl_irq(struct urb *urb, struct pt_regs *regs)
192 if (wacom->tool[1] != BTN_TOOL_RUBBER) { 204 if (wacom->tool[1] != BTN_TOOL_RUBBER) {
193 /* Unknown tool selected default to pen tool */ 205 /* Unknown tool selected default to pen tool */
194 wacom->tool[1] = BTN_TOOL_PEN; 206 wacom->tool[1] = BTN_TOOL_PEN;
207 id = STYLUS_DEVICE_ID;
195 } 208 }
196 input_report_key(dev, wacom->tool[1], prox); /* report in proximity for tool */ 209 input_report_key(dev, wacom->tool[1], id); /* report in proximity for tool */
197 input_report_abs(dev, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14)); 210 input_report_abs(dev, ABS_X, data[3] | (data[2] << 7) | ((data[1] & 0x03) << 14));
198 input_report_abs(dev, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14)); 211 input_report_abs(dev, ABS_Y, data[6] | (data[5] << 7) | ((data[4] & 0x03) << 14));
199 input_report_abs(dev, ABS_PRESSURE, pressure); 212 input_report_abs(dev, ABS_PRESSURE, pressure);
@@ -250,10 +263,10 @@ static void wacom_ptu_irq(struct urb *urb, struct pt_regs *regs)
250 263
251 input_regs(dev, regs); 264 input_regs(dev, regs);
252 if (data[1] & 0x04) { 265 if (data[1] & 0x04) {
253 input_report_key(dev, BTN_TOOL_RUBBER, data[1] & 0x20); 266 input_report_key(dev, BTN_TOOL_RUBBER, (data[1] & 0x20) ? ERASER_DEVICE_ID : 0);
254 input_report_key(dev, BTN_TOUCH, data[1] & 0x08); 267 input_report_key(dev, BTN_TOUCH, data[1] & 0x08);
255 } else { 268 } else {
256 input_report_key(dev, BTN_TOOL_PEN, data[1] & 0x20); 269 input_report_key(dev, BTN_TOOL_PEN, (data[1] & 0x20) ? STYLUS_DEVICE_ID : 0);
257 input_report_key(dev, BTN_TOUCH, data[1] & 0x01); 270 input_report_key(dev, BTN_TOUCH, data[1] & 0x01);
258 } 271 }
259 input_report_abs(dev, ABS_X, le16_to_cpu(*(__le16 *) &data[2])); 272 input_report_abs(dev, ABS_X, le16_to_cpu(*(__le16 *) &data[2]));
@@ -299,7 +312,7 @@ static void wacom_penpartner_irq(struct urb *urb, struct pt_regs *regs)
299 } 312 }
300 313
301 input_regs(dev, regs); 314 input_regs(dev, regs);
302 input_report_key(dev, BTN_TOOL_PEN, 1); 315 input_report_key(dev, BTN_TOOL_PEN, STYLUS_DEVICE_ID);
303 input_report_abs(dev, ABS_X, le16_to_cpu(*(__le16 *) &data[1])); 316 input_report_abs(dev, ABS_X, le16_to_cpu(*(__le16 *) &data[1]));
304 input_report_abs(dev, ABS_Y, le16_to_cpu(*(__le16 *) &data[3])); 317 input_report_abs(dev, ABS_Y, le16_to_cpu(*(__le16 *) &data[3]));
305 input_report_abs(dev, ABS_PRESSURE, (signed char)data[6] + 127); 318 input_report_abs(dev, ABS_PRESSURE, (signed char)data[6] + 127);
@@ -319,7 +332,7 @@ static void wacom_graphire_irq(struct urb *urb, struct pt_regs *regs)
319 struct wacom *wacom = urb->context; 332 struct wacom *wacom = urb->context;
320 unsigned char *data = wacom->data; 333 unsigned char *data = wacom->data;
321 struct input_dev *dev = wacom->dev; 334 struct input_dev *dev = wacom->dev;
322 int x, y; 335 int x, y, id, rw;
323 int retval; 336 int retval;
324 337
325 switch (urb->status) { 338 switch (urb->status) {
@@ -344,6 +357,7 @@ static void wacom_graphire_irq(struct urb *urb, struct pt_regs *regs)
344 357
345 input_regs(dev, regs); 358 input_regs(dev, regs);
346 359
360 id = STYLUS_DEVICE_ID;
347 if (data[1] & 0x10) { /* in prox */ 361 if (data[1] & 0x10) { /* in prox */
348 362
349 switch ((data[1] >> 5) & 3) { 363 switch ((data[1] >> 5) & 3) {
@@ -354,18 +368,27 @@ static void wacom_graphire_irq(struct urb *urb, struct pt_regs *regs)
354 368
355 case 1: /* Rubber */ 369 case 1: /* Rubber */
356 wacom->tool[0] = BTN_TOOL_RUBBER; 370 wacom->tool[0] = BTN_TOOL_RUBBER;
371 id = ERASER_DEVICE_ID;
357 break; 372 break;
358 373
359 case 2: /* Mouse with wheel */ 374 case 2: /* Mouse with wheel */
360 input_report_key(dev, BTN_MIDDLE, data[1] & 0x04); 375 input_report_key(dev, BTN_MIDDLE, data[1] & 0x04);
361 input_report_rel(dev, REL_WHEEL, (signed char) data[6]); 376 if (wacom->features->type == G4) {
377 rw = data[7] & 0x04 ? -(data[7] & 0x03) : (data[7] & 0x03);
378 input_report_rel(dev, REL_WHEEL, rw);
379 } else
380 input_report_rel(dev, REL_WHEEL, (signed char) data[6]);
362 /* fall through */ 381 /* fall through */
363 382
364 case 3: /* Mouse without wheel */ 383 case 3: /* Mouse without wheel */
365 wacom->tool[0] = BTN_TOOL_MOUSE; 384 wacom->tool[0] = BTN_TOOL_MOUSE;
385 id = CURSOR_DEVICE_ID;
366 input_report_key(dev, BTN_LEFT, data[1] & 0x01); 386 input_report_key(dev, BTN_LEFT, data[1] & 0x01);
367 input_report_key(dev, BTN_RIGHT, data[1] & 0x02); 387 input_report_key(dev, BTN_RIGHT, data[1] & 0x02);
368 input_report_abs(dev, ABS_DISTANCE, data[7]); 388 if (wacom->features->type == G4)
389 input_report_abs(dev, ABS_DISTANCE, data[6]);
390 else
391 input_report_abs(dev, ABS_DISTANCE, data[7]);
369 break; 392 break;
370 } 393 }
371 } 394 }
@@ -376,16 +399,50 @@ static void wacom_graphire_irq(struct urb *urb, struct pt_regs *regs)
376 input_report_abs(dev, ABS_X, x); 399 input_report_abs(dev, ABS_X, x);
377 input_report_abs(dev, ABS_Y, y); 400 input_report_abs(dev, ABS_Y, y);
378 if (wacom->tool[0] != BTN_TOOL_MOUSE) { 401 if (wacom->tool[0] != BTN_TOOL_MOUSE) {
379 input_report_abs(dev, ABS_PRESSURE, le16_to_cpu(*(__le16 *) &data[6])); 402 input_report_abs(dev, ABS_PRESSURE, data[6] | ((data[7] & 0x01) << 8));
380 input_report_key(dev, BTN_TOUCH, data[1] & 0x01); 403 input_report_key(dev, BTN_TOUCH, data[1] & 0x01);
381 input_report_key(dev, BTN_STYLUS, data[1] & 0x02); 404 input_report_key(dev, BTN_STYLUS, data[1] & 0x02);
382 input_report_key(dev, BTN_STYLUS2, data[1] & 0x04); 405 input_report_key(dev, BTN_STYLUS2, data[1] & 0x04);
383 } 406 }
384 } 407 }
385 408
386 input_report_key(dev, wacom->tool[0], data[1] & 0x10); 409 input_report_key(dev, wacom->tool[0], (data[1] & 0x10) ? id : 0);
387 input_sync(dev); 410 input_sync(dev);
388 411
412 /* send pad data */
413 if (wacom->features->type == G4) {
414 /* fist time sending pad data */
415 if (wacom->tool[1] != BTN_TOOL_FINGER) {
416 wacom->id[1] = 0;
417 wacom->serial[1] = (data[7] & 0x38) >> 2;
418 }
419 if (data[7] & 0xf8) {
420 input_report_key(dev, BTN_0, (data[7] & 0x40));
421 input_report_key(dev, BTN_4, (data[7] & 0x80));
422 if (((data[7] & 0x38) >> 2) == (wacom->serial[1] & 0x0e))
423 /* alter REL_WHEEL value so X apps can get it */
424 wacom->serial[1] += (wacom->serial[1] & 0x01) ? -1 : 1;
425 else
426 wacom->serial[1] = (data[7] & 0x38 ) >> 2;
427
428 /* don't alter the value when there is no wheel event */
429 if (wacom->serial[1] == 1)
430 wacom->serial[1] = 0;
431 rw = wacom->serial[1];
432 rw = (rw & 0x08) ? -(rw & 0x07) : (rw & 0x07);
433 input_report_rel(dev, REL_WHEEL, rw);
434 wacom->tool[1] = BTN_TOOL_FINGER;
435 wacom->id[1] = data[7] & 0xf8;
436 input_report_key(dev, wacom->tool[1], 0xf0);
437 input_event(dev, EV_MSC, MSC_SERIAL, 0xf0);
438 } else if (wacom->id[1]) {
439 wacom->id[1] = 0;
440 wacom->serial[1] = 0;
441 input_report_key(dev, wacom->tool[1], 0);
442 input_event(dev, EV_MSC, MSC_SERIAL, 0xf0);
443 }
444 input_sync(dev);
445 }
389 exit: 446 exit:
390 retval = usb_submit_urb (urb, GFP_ATOMIC); 447 retval = usb_submit_urb (urb, GFP_ATOMIC);
391 if (retval) 448 if (retval)
@@ -410,7 +467,8 @@ static int wacom_intuos_inout(struct urb *urb)
410 (data[4] << 20) + (data[5] << 12) + 467 (data[4] << 20) + (data[5] << 12) +
411 (data[6] << 4) + (data[7] >> 4); 468 (data[6] << 4) + (data[7] >> 4);
412 469
413 switch ((data[2] << 4) | (data[3] >> 4)) { 470 wacom->id[idx] = (data[2] << 4) | (data[3] >> 4);
471 switch (wacom->id[idx]) {
414 case 0x812: /* Inking pen */ 472 case 0x812: /* Inking pen */
415 case 0x801: /* Intuos3 Inking pen */ 473 case 0x801: /* Intuos3 Inking pen */
416 case 0x012: 474 case 0x012:
@@ -458,7 +516,7 @@ static int wacom_intuos_inout(struct urb *urb)
458 default: /* Unknown tool */ 516 default: /* Unknown tool */
459 wacom->tool[idx] = BTN_TOOL_PEN; 517 wacom->tool[idx] = BTN_TOOL_PEN;
460 } 518 }
461 input_report_key(dev, wacom->tool[idx], 1); 519 input_report_key(dev, wacom->tool[idx], wacom->id[idx]);
462 input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]); 520 input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
463 input_sync(dev); 521 input_sync(dev);
464 return 1; 522 return 1;
@@ -637,7 +695,7 @@ static void wacom_intuos_irq(struct urb *urb, struct pt_regs *regs)
637 } 695 }
638 } 696 }
639 697
640 input_report_key(dev, wacom->tool[idx], 1); 698 input_report_key(dev, wacom->tool[idx], wacom->id[idx]);
641 input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]); 699 input_event(dev, EV_MSC, MSC_SERIAL, wacom->serial[idx]);
642 input_sync(dev); 700 input_sync(dev);
643 701
@@ -655,6 +713,13 @@ static struct wacom_features wacom_features[] = {
655 { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 32, GRAPHIRE, wacom_graphire_irq }, 713 { "Wacom Graphire2 5x7", 8, 13918, 10206, 511, 32, GRAPHIRE, wacom_graphire_irq },
656 { "Wacom Graphire3", 8, 10208, 7424, 511, 32, GRAPHIRE, wacom_graphire_irq }, 714 { "Wacom Graphire3", 8, 10208, 7424, 511, 32, GRAPHIRE, wacom_graphire_irq },
657 { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 32, GRAPHIRE, wacom_graphire_irq }, 715 { "Wacom Graphire3 6x8", 8, 16704, 12064, 511, 32, GRAPHIRE, wacom_graphire_irq },
716 { "Wacom Graphire4 4x5", 8, 10208, 7424, 511, 32, G4, wacom_graphire_irq },
717 { "Wacom Graphire4 6x8", 8, 16704, 12064, 511, 32, G4, wacom_graphire_irq },
718 { "Wacom Volito", 8, 5104, 3712, 511, 32, GRAPHIRE, wacom_graphire_irq },
719 { "Wacom PenStation2", 8, 3250, 2320, 255, 32, GRAPHIRE, wacom_graphire_irq },
720 { "Wacom Volito2 4x5", 8, 5104, 3712, 511, 32, GRAPHIRE, wacom_graphire_irq },
721 { "Wacom Volito2 2x3", 8, 3248, 2320, 511, 32, GRAPHIRE, wacom_graphire_irq },
722 { "Wacom PenPartner2", 8, 3250, 2320, 255, 32, GRAPHIRE, wacom_graphire_irq },
658 { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq }, 723 { "Wacom Intuos 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq },
659 { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, 724 { "Wacom Intuos 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq },
660 { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq }, 725 { "Wacom Intuos 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq },
@@ -666,16 +731,20 @@ static struct wacom_features wacom_features[] = {
666 { "Wacom PL600SX", 8, 6260, 5016, 255, 32, PL, wacom_pl_irq }, 731 { "Wacom PL600SX", 8, 6260, 5016, 255, 32, PL, wacom_pl_irq },
667 { "Wacom PL550", 8, 6144, 4608, 511, 32, PL, wacom_pl_irq }, 732 { "Wacom PL550", 8, 6144, 4608, 511, 32, PL, wacom_pl_irq },
668 { "Wacom PL800", 8, 7220, 5780, 511, 32, PL, wacom_pl_irq }, 733 { "Wacom PL800", 8, 7220, 5780, 511, 32, PL, wacom_pl_irq },
734 { "Wacom PL700", 8, 6758, 5406, 511, 32, PL, wacom_pl_irq },
735 { "Wacom PL510", 8, 6282, 4762, 511, 32, PL, wacom_pl_irq },
736 { "Wacom PL710", 8, 34080, 27660, 511, 32, PL, wacom_pl_irq },
737 { "Wacom DTF720", 8, 6858, 5506, 511, 32, PL, wacom_pl_irq },
738 { "Wacom Cintiq Partner",8, 20480, 15360, 511, 32, PL, wacom_ptu_irq },
669 { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq }, 739 { "Wacom Intuos2 4x5", 10, 12700, 10600, 1023, 15, INTUOS, wacom_intuos_irq },
670 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, 740 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq },
671 { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq }, 741 { "Wacom Intuos2 9x12", 10, 30480, 24060, 1023, 15, INTUOS, wacom_intuos_irq },
672 { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, 742 { "Wacom Intuos2 12x12", 10, 30480, 31680, 1023, 15, INTUOS, wacom_intuos_irq },
673 { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 15, INTUOS, wacom_intuos_irq }, 743 { "Wacom Intuos2 12x18", 10, 45720, 31680, 1023, 15, INTUOS, wacom_intuos_irq },
674 { "Wacom Volito", 8, 5104, 3712, 511, 32, GRAPHIRE, wacom_graphire_irq },
675 { "Wacom Cintiq Partner",8, 20480, 15360, 511, 32, PL, wacom_ptu_irq },
676 { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 15, INTUOS3, wacom_intuos_irq }, 744 { "Wacom Intuos3 4x5", 10, 25400, 20320, 1023, 15, INTUOS3, wacom_intuos_irq },
677 { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 15, INTUOS3, wacom_intuos_irq }, 745 { "Wacom Intuos3 6x8", 10, 40640, 30480, 1023, 15, INTUOS3, wacom_intuos_irq },
678 { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 15, INTUOS3, wacom_intuos_irq }, 746 { "Wacom Intuos3 9x12", 10, 60960, 45720, 1023, 15, INTUOS3, wacom_intuos_irq },
747 { "Wacom Intuos3 6x11", 10, 54204, 31750, 1023, 15, INTUOS3, wacom_intuos_irq },
679 { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 15, CINTIQ, wacom_intuos_irq }, 748 { "Wacom Cintiq 21UX", 10, 87200, 65600, 1023, 15, CINTIQ, wacom_intuos_irq },
680 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq }, 749 { "Wacom Intuos2 6x8", 10, 20320, 16240, 1023, 15, INTUOS, wacom_intuos_irq },
681 { } 750 { }
@@ -688,6 +757,13 @@ static struct usb_device_id wacom_ids[] = {
688 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x12) }, 757 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x12) },
689 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x13) }, 758 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x13) },
690 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x14) }, 759 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x14) },
760 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x15) },
761 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x16) },
762 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) },
763 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x61) },
764 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x62) },
765 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x63) },
766 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x64) },
691 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x20) }, 767 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x20) },
692 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x21) }, 768 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x21) },
693 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x22) }, 769 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x22) },
@@ -699,16 +775,20 @@ static struct usb_device_id wacom_ids[] = {
699 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x33) }, 775 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x33) },
700 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x34) }, 776 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x34) },
701 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x35) }, 777 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x35) },
778 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x37) },
779 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x38) },
780 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x39) },
781 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xC0) },
782 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x03) },
702 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x41) }, 783 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x41) },
703 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x42) }, 784 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x42) },
704 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x43) }, 785 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x43) },
705 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x44) }, 786 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x44) },
706 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x45) }, 787 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x45) },
707 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x60) },
708 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x03) },
709 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB0) }, 788 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB0) },
710 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB1) }, 789 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB1) },
711 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB2) }, 790 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB2) },
791 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0xB5) },
712 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) }, 792 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x3F) },
713 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) }, 793 { USB_DEVICE(USB_VENDOR_ID_WACOM, 0x47) },
714 { } 794 { }
@@ -779,6 +859,13 @@ static int wacom_probe(struct usb_interface *intf, const struct usb_device_id *i
779 input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom->features->pressure_max, 0, 0); 859 input_set_abs_params(input_dev, ABS_PRESSURE, 0, wacom->features->pressure_max, 0, 0);
780 860
781 switch (wacom->features->type) { 861 switch (wacom->features->type) {
862 case G4:
863 input_dev->evbit[0] |= BIT(EV_MSC);
864 input_dev->mscbit[0] |= BIT(MSC_SERIAL);
865 input_dev->keybit[LONG(BTN_DIGI)] |= BIT(BTN_TOOL_FINGER);
866 input_dev->keybit[LONG(BTN_LEFT)] |= BIT(BTN_0) | BIT(BTN_1) | BIT(BTN_2) | BIT(BTN_3) | BIT(BTN_4) | BIT(BTN_5) | BIT(BTN_6) | BIT(BTN_7);
867 /* fall through */
868
782 case GRAPHIRE: 869 case GRAPHIRE:
783 input_dev->evbit[0] |= BIT(EV_REL); 870 input_dev->evbit[0] |= BIT(EV_REL);
784 input_dev->relbit[0] |= BIT(REL_WHEEL); 871 input_dev->relbit[0] |= BIT(REL_WHEEL);
diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile
index 862e40a83689..6c693bc68e2e 100644
--- a/drivers/usb/misc/Makefile
+++ b/drivers/usb/misc/Makefile
@@ -18,4 +18,8 @@ obj-$(CONFIG_USB_RIO500) += rio500.o
18obj-$(CONFIG_USB_TEST) += usbtest.o 18obj-$(CONFIG_USB_TEST) += usbtest.o
19obj-$(CONFIG_USB_USS720) += uss720.o 19obj-$(CONFIG_USB_USS720) += uss720.o
20 20
21obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/ \ No newline at end of file 21obj-$(CONFIG_USB_SISUSBVGA) += sisusbvga/
22
23ifeq ($(CONFIG_USB_DEBUG),y)
24EXTRA_CFLAGS += -DDEBUG
25endif
diff --git a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c
index 5f33f7c64885..2a28ceeaa66a 100644
--- a/drivers/usb/misc/auerswald.c
+++ b/drivers/usb/misc/auerswald.c
@@ -30,7 +30,6 @@
30#include <linux/module.h> 30#include <linux/module.h>
31#include <linux/init.h> 31#include <linux/init.h>
32#include <linux/wait.h> 32#include <linux/wait.h>
33#undef DEBUG /* include debug macros until it's done */
34#include <linux/usb.h> 33#include <linux/usb.h>
35 34
36/*-------------------------------------------------------------------*/ 35/*-------------------------------------------------------------------*/
diff --git a/drivers/usb/misc/phidgetservo.c b/drivers/usb/misc/phidgetservo.c
index b84eda631ab5..a30d4a6ee824 100644
--- a/drivers/usb/misc/phidgetservo.c
+++ b/drivers/usb/misc/phidgetservo.c
@@ -26,9 +26,6 @@
26 */ 26 */
27 27
28#include <linux/config.h> 28#include <linux/config.h>
29#ifdef CONFIG_USB_DEBUG
30#define DEBUG 1
31#endif
32#include <linux/kernel.h> 29#include <linux/kernel.h>
33#include <linux/errno.h> 30#include <linux/errno.h>
34#include <linux/init.h> 31#include <linux/init.h>
diff --git a/drivers/usb/misc/rio500.c b/drivers/usb/misc/rio500.c
index 7d02d8ec6b1a..9590dbac5d9a 100644
--- a/drivers/usb/misc/rio500.c
+++ b/drivers/usb/misc/rio500.c
@@ -393,7 +393,7 @@ read_rio(struct file *file, char __user *buffer, size_t count, loff_t * ppos)
393 ibuf, this_read, &partial, 393 ibuf, this_read, &partial,
394 8000); 394 8000);
395 395
396 dbg(KERN_DEBUG "read stats: result:%d this_read:%u partial:%u", 396 dbg("read stats: result:%d this_read:%u partial:%u",
397 result, this_read, partial); 397 result, this_read, partial);
398 398
399 if (partial) { 399 if (partial) {
diff --git a/drivers/usb/misc/usbled.c b/drivers/usb/misc/usbled.c
index f6ba4c788dbc..3c93921cb6b3 100644
--- a/drivers/usb/misc/usbled.c
+++ b/drivers/usb/misc/usbled.c
@@ -10,9 +10,6 @@
10 */ 10 */
11 11
12#include <linux/config.h> 12#include <linux/config.h>
13#ifdef CONFIG_USB_DEBUG
14 #define DEBUG 1
15#endif
16#include <linux/kernel.h> 13#include <linux/kernel.h>
17#include <linux/errno.h> 14#include <linux/errno.h>
18#include <linux/init.h> 15#include <linux/init.h>
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
index 2997f558159b..605a2afe34ed 100644
--- a/drivers/usb/misc/usbtest.c
+++ b/drivers/usb/misc/usbtest.c
@@ -1,7 +1,4 @@
1#include <linux/config.h> 1#include <linux/config.h>
2#if !defined (DEBUG) && defined (CONFIG_USB_DEBUG)
3# define DEBUG
4#endif
5#include <linux/kernel.h> 2#include <linux/kernel.h>
6#include <linux/errno.h> 3#include <linux/errno.h>
7#include <linux/init.h> 4#include <linux/init.h>
diff --git a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c
index 0592cb5e6c4d..1cabe7ed91f5 100644
--- a/drivers/usb/misc/uss720.c
+++ b/drivers/usb/misc/uss720.c
@@ -41,8 +41,6 @@
41 41
42/*****************************************************************************/ 42/*****************************************************************************/
43 43
44#define DEBUG
45
46#include <linux/module.h> 44#include <linux/module.h>
47#include <linux/socket.h> 45#include <linux/socket.h>
48#include <linux/parport.h> 46#include <linux/parport.h>
diff --git a/drivers/usb/net/Makefile b/drivers/usb/net/Makefile
index 222c0495f791..a21e6eaabaf6 100644
--- a/drivers/usb/net/Makefile
+++ b/drivers/usb/net/Makefile
@@ -16,3 +16,7 @@ obj-$(CONFIG_USB_NET_CDC_SUBSET) += cdc_subset.o
16obj-$(CONFIG_USB_NET_ZAURUS) += zaurus.o 16obj-$(CONFIG_USB_NET_ZAURUS) += zaurus.o
17obj-$(CONFIG_USB_USBNET) += usbnet.o 17obj-$(CONFIG_USB_USBNET) += usbnet.o
18obj-$(CONFIG_USB_ZD1201) += zd1201.o 18obj-$(CONFIG_USB_ZD1201) += zd1201.o
19
20ifeq ($(CONFIG_USB_DEBUG),y)
21EXTRA_CFLAGS += -DDEBUG
22endif
diff --git a/drivers/usb/net/asix.c b/drivers/usb/net/asix.c
index 252a34fbb42c..542120ef1fd2 100644
--- a/drivers/usb/net/asix.c
+++ b/drivers/usb/net/asix.c
@@ -23,9 +23,6 @@
23// #define VERBOSE // more; success messages 23// #define VERBOSE // more; success messages
24 24
25#include <linux/config.h> 25#include <linux/config.h>
26#ifdef CONFIG_USB_DEBUG
27# define DEBUG
28#endif
29#include <linux/module.h> 26#include <linux/module.h>
30#include <linux/kmod.h> 27#include <linux/kmod.h>
31#include <linux/sched.h> 28#include <linux/sched.h>
diff --git a/drivers/usb/net/cdc_ether.c b/drivers/usb/net/cdc_ether.c
index 652b04bbf6af..c008c981862b 100644
--- a/drivers/usb/net/cdc_ether.c
+++ b/drivers/usb/net/cdc_ether.c
@@ -21,9 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/config.h> 23#include <linux/config.h>
24#ifdef CONFIG_USB_DEBUG
25# define DEBUG
26#endif
27#include <linux/module.h> 24#include <linux/module.h>
28#include <linux/sched.h> 25#include <linux/sched.h>
29#include <linux/init.h> 26#include <linux/init.h>
diff --git a/drivers/usb/net/cdc_subset.c b/drivers/usb/net/cdc_subset.c
index f1730b685fd2..f05cfb83c82d 100644
--- a/drivers/usb/net/cdc_subset.c
+++ b/drivers/usb/net/cdc_subset.c
@@ -18,9 +18,6 @@
18 */ 18 */
19 19
20#include <linux/config.h> 20#include <linux/config.h>
21#ifdef CONFIG_USB_DEBUG
22# define DEBUG
23#endif
24#include <linux/module.h> 21#include <linux/module.h>
25#include <linux/kmod.h> 22#include <linux/kmod.h>
26#include <linux/sched.h> 23#include <linux/sched.h>
diff --git a/drivers/usb/net/gl620a.c b/drivers/usb/net/gl620a.c
index c0f263b202a6..2455e9a85674 100644
--- a/drivers/usb/net/gl620a.c
+++ b/drivers/usb/net/gl620a.c
@@ -22,9 +22,6 @@
22// #define VERBOSE // more; success messages 22// #define VERBOSE // more; success messages
23 23
24#include <linux/config.h> 24#include <linux/config.h>
25#ifdef CONFIG_USB_DEBUG
26# define DEBUG
27#endif
28#include <linux/module.h> 25#include <linux/module.h>
29#include <linux/sched.h> 26#include <linux/sched.h>
30#include <linux/init.h> 27#include <linux/init.h>
diff --git a/drivers/usb/net/kaweth.c b/drivers/usb/net/kaweth.c
index 6bef1be6b36c..b5776518020f 100644
--- a/drivers/usb/net/kaweth.c
+++ b/drivers/usb/net/kaweth.c
@@ -219,7 +219,6 @@ struct kaweth_device
219 219
220 __u32 status; 220 __u32 status;
221 int end; 221 int end;
222 int removed;
223 int suspend_lowmem_rx; 222 int suspend_lowmem_rx;
224 int suspend_lowmem_ctrl; 223 int suspend_lowmem_ctrl;
225 int linkstate; 224 int linkstate;
@@ -699,6 +698,7 @@ static int kaweth_close(struct net_device *net)
699 698
700 usb_kill_urb(kaweth->irq_urb); 699 usb_kill_urb(kaweth->irq_urb);
701 usb_kill_urb(kaweth->rx_urb); 700 usb_kill_urb(kaweth->rx_urb);
701 usb_kill_urb(kaweth->tx_urb);
702 702
703 flush_scheduled_work(); 703 flush_scheduled_work();
704 704
@@ -750,13 +750,6 @@ static int kaweth_start_xmit(struct sk_buff *skb, struct net_device *net)
750 750
751 spin_lock(&kaweth->device_lock); 751 spin_lock(&kaweth->device_lock);
752 752
753 if (kaweth->removed) {
754 /* our device is undergoing disconnection - we bail out */
755 spin_unlock(&kaweth->device_lock);
756 dev_kfree_skb_irq(skb);
757 return 0;
758 }
759
760 kaweth_async_set_rx_mode(kaweth); 753 kaweth_async_set_rx_mode(kaweth);
761 netif_stop_queue(net); 754 netif_stop_queue(net);
762 755
@@ -1136,10 +1129,6 @@ static void kaweth_disconnect(struct usb_interface *intf)
1136 return; 1129 return;
1137 } 1130 }
1138 netdev = kaweth->net; 1131 netdev = kaweth->net;
1139 kaweth->removed = 1;
1140 usb_kill_urb(kaweth->irq_urb);
1141 usb_kill_urb(kaweth->rx_urb);
1142 usb_kill_urb(kaweth->tx_urb);
1143 1132
1144 kaweth_dbg("Unregistering net device"); 1133 kaweth_dbg("Unregistering net device");
1145 unregister_netdev(netdev); 1134 unregister_netdev(netdev);
diff --git a/drivers/usb/net/net1080.c b/drivers/usb/net/net1080.c
index cee55f8cf64f..b3799b1a2b0d 100644
--- a/drivers/usb/net/net1080.c
+++ b/drivers/usb/net/net1080.c
@@ -21,9 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/config.h> 23#include <linux/config.h>
24#ifdef CONFIG_USB_DEBUG
25# define DEBUG
26#endif
27#include <linux/module.h> 24#include <linux/module.h>
28#include <linux/sched.h> 25#include <linux/sched.h>
29#include <linux/init.h> 26#include <linux/init.h>
diff --git a/drivers/usb/net/pegasus.c b/drivers/usb/net/pegasus.c
index 537eb181d985..683e3df5d607 100644
--- a/drivers/usb/net/pegasus.c
+++ b/drivers/usb/net/pegasus.c
@@ -28,8 +28,6 @@
28 * is out of the interrupt routine. 28 * is out of the interrupt routine.
29 */ 29 */
30 30
31#undef DEBUG
32
33#include <linux/sched.h> 31#include <linux/sched.h>
34#include <linux/slab.h> 32#include <linux/slab.h>
35#include <linux/init.h> 33#include <linux/init.h>
diff --git a/drivers/usb/net/plusb.c b/drivers/usb/net/plusb.c
index 74c2b3581c76..89856aa0e3b8 100644
--- a/drivers/usb/net/plusb.c
+++ b/drivers/usb/net/plusb.c
@@ -21,9 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/config.h> 23#include <linux/config.h>
24#ifdef CONFIG_USB_DEBUG
25# define DEBUG
26#endif
27#include <linux/module.h> 24#include <linux/module.h>
28#include <linux/sched.h> 25#include <linux/sched.h>
29#include <linux/init.h> 26#include <linux/init.h>
diff --git a/drivers/usb/net/rndis_host.c b/drivers/usb/net/rndis_host.c
index b5a925dc1beb..c0ecbab6f6ba 100644
--- a/drivers/usb/net/rndis_host.c
+++ b/drivers/usb/net/rndis_host.c
@@ -21,9 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/config.h> 23#include <linux/config.h>
24#ifdef CONFIG_USB_DEBUG
25# define DEBUG
26#endif
27#include <linux/module.h> 24#include <linux/module.h>
28#include <linux/sched.h> 25#include <linux/sched.h>
29#include <linux/init.h> 26#include <linux/init.h>
diff --git a/drivers/usb/net/usbnet.c b/drivers/usb/net/usbnet.c
index 74f05c9c84d5..362d6907c9bb 100644
--- a/drivers/usb/net/usbnet.c
+++ b/drivers/usb/net/usbnet.c
@@ -34,9 +34,6 @@
34// #define VERBOSE // more; success messages 34// #define VERBOSE // more; success messages
35 35
36#include <linux/config.h> 36#include <linux/config.h>
37#ifdef CONFIG_USB_DEBUG
38# define DEBUG
39#endif
40#include <linux/module.h> 37#include <linux/module.h>
41#include <linux/sched.h> 38#include <linux/sched.h>
42#include <linux/init.h> 39#include <linux/init.h>
diff --git a/drivers/usb/net/zaurus.c b/drivers/usb/net/zaurus.c
index 5d4b7d55b097..680d13957af4 100644
--- a/drivers/usb/net/zaurus.c
+++ b/drivers/usb/net/zaurus.c
@@ -21,9 +21,6 @@
21// #define VERBOSE // more; success messages 21// #define VERBOSE // more; success messages
22 22
23#include <linux/config.h> 23#include <linux/config.h>
24#ifdef CONFIG_USB_DEBUG
25# define DEBUG
26#endif
27#include <linux/module.h> 24#include <linux/module.h>
28#include <linux/sched.h> 25#include <linux/sched.h>
29#include <linux/init.h> 26#include <linux/init.h>
diff --git a/drivers/usb/serial/ChangeLog.old b/drivers/usb/serial/ChangeLog.history
index c1b279939bbf..52c4f7bd7a80 100644
--- a/drivers/usb/serial/ChangeLog.old
+++ b/drivers/usb/serial/ChangeLog.history
@@ -400,7 +400,7 @@ visor.c Change Log comments:
400 400
401 (11/11/2001) gkh 401 (11/11/2001) gkh
402 Added support for the m125 devices, and added check to prevent oopses 402 Added support for the m125 devices, and added check to prevent oopses
403 for Clié devices that lie about the number of ports they have. 403 for Clié devices that lie about the number of ports they have.
404 404
405 (08/30/2001) gkh 405 (08/30/2001) gkh
406 Added support for the Clie devices, both the 3.5 and 4.0 os versions. 406 Added support for the Clie devices, both the 3.5 and 4.0 os versions.
diff --git a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
index 7b5e8e4ee2bb..14f55fd26a64 100644
--- a/drivers/usb/serial/Kconfig
+++ b/drivers/usb/serial/Kconfig
@@ -62,6 +62,15 @@ config USB_SERIAL_AIRPRIME
62 To compile this driver as a module, choose M here: the 62 To compile this driver as a module, choose M here: the
63 module will be called airprime. 63 module will be called airprime.
64 64
65config USB_SERIAL_ANYDATA
66 tristate "USB AnyData CDMA Wireless Driver"
67 depends on USB_SERIAL
68 help
69 Say Y here if you want to use a AnyData CDMA device.
70
71 To compile this driver as a module, choose M here: the
72 module will be called anydata.
73
65config USB_SERIAL_BELKIN 74config USB_SERIAL_BELKIN
66 tristate "USB Belkin and Peracom Single Port Serial Driver" 75 tristate "USB Belkin and Peracom Single Port Serial Driver"
67 depends on USB_SERIAL 76 depends on USB_SERIAL
@@ -394,15 +403,6 @@ config USB_SERIAL_MCT_U232
394 To compile this driver as a module, choose M here: the 403 To compile this driver as a module, choose M here: the
395 module will be called mct_u232. 404 module will be called mct_u232.
396 405
397config USB_SERIAL_NOKIA_DKU2
398 tristate "USB Nokia DKU2 Driver"
399 depends on USB_SERIAL
400 help
401 Say Y here if you want to use a Nokia DKU2 device.
402
403 To compile this driver as a module, choose M here: the
404 module will be called nokia_dku2.
405
406config USB_SERIAL_PL2303 406config USB_SERIAL_PL2303
407 tristate "USB Prolific 2303 Single Port Serial Driver" 407 tristate "USB Prolific 2303 Single Port Serial Driver"
408 depends on USB_SERIAL 408 depends on USB_SERIAL
diff --git a/drivers/usb/serial/Makefile b/drivers/usb/serial/Makefile
index 55fd461793b7..f0b04420cea1 100644
--- a/drivers/usb/serial/Makefile
+++ b/drivers/usb/serial/Makefile
@@ -12,6 +12,7 @@ usbserial-obj-$(CONFIG_USB_EZUSB) += ezusb.o
12usbserial-objs := usb-serial.o generic.o bus.o $(usbserial-obj-y) 12usbserial-objs := usb-serial.o generic.o bus.o $(usbserial-obj-y)
13 13
14obj-$(CONFIG_USB_SERIAL_AIRPRIME) += airprime.o 14obj-$(CONFIG_USB_SERIAL_AIRPRIME) += airprime.o
15obj-$(CONFIG_USB_SERIAL_ANYDATA) += anydata.o
15obj-$(CONFIG_USB_SERIAL_BELKIN) += belkin_sa.o 16obj-$(CONFIG_USB_SERIAL_BELKIN) += belkin_sa.o
16obj-$(CONFIG_USB_SERIAL_CP2101) += cp2101.o 17obj-$(CONFIG_USB_SERIAL_CP2101) += cp2101.o
17obj-$(CONFIG_USB_SERIAL_CYBERJACK) += cyberjack.o 18obj-$(CONFIG_USB_SERIAL_CYBERJACK) += cyberjack.o
@@ -31,7 +32,6 @@ obj-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda.o
31obj-$(CONFIG_USB_SERIAL_KLSI) += kl5kusb105.o 32obj-$(CONFIG_USB_SERIAL_KLSI) += kl5kusb105.o
32obj-$(CONFIG_USB_SERIAL_KOBIL_SCT) += kobil_sct.o 33obj-$(CONFIG_USB_SERIAL_KOBIL_SCT) += kobil_sct.o
33obj-$(CONFIG_USB_SERIAL_MCT_U232) += mct_u232.o 34obj-$(CONFIG_USB_SERIAL_MCT_U232) += mct_u232.o
34obj-$(CONFIG_USB_SERIAL_NOKIA_DKU2) += nokia_dku2.o
35obj-$(CONFIG_USB_SERIAL_OMNINET) += omninet.o 35obj-$(CONFIG_USB_SERIAL_OMNINET) += omninet.o
36obj-$(CONFIG_USB_SERIAL_OPTION) += option.o 36obj-$(CONFIG_USB_SERIAL_OPTION) += option.o
37obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o 37obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o
diff --git a/drivers/usb/serial/anydata.c b/drivers/usb/serial/anydata.c
new file mode 100644
index 000000000000..18022a74a3dc
--- /dev/null
+++ b/drivers/usb/serial/anydata.c
@@ -0,0 +1,123 @@
1/*
2 * AnyData CDMA Serial USB driver
3 *
4 * Copyright (C) 2005 Greg Kroah-Hartman <gregkh@suse.de>
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License version
8 * 2 as published by the Free Software Foundation.
9 */
10
11#include <linux/kernel.h>
12#include <linux/init.h>
13#include <linux/tty.h>
14#include <linux/module.h>
15#include <linux/usb.h>
16#include "usb-serial.h"
17
18static struct usb_device_id id_table [] = {
19 { USB_DEVICE(0x16d5, 0x6501) }, /* AirData CDMA device */
20 { },
21};
22MODULE_DEVICE_TABLE(usb, id_table);
23
24/* if overridden by the user, then use their value for the size of the
25 * read and write urbs */
26static int buffer_size;
27static int debug;
28
29static struct usb_driver anydata_driver = {
30 .owner = THIS_MODULE,
31 .name = "anydata",
32 .probe = usb_serial_probe,
33 .disconnect = usb_serial_disconnect,
34 .id_table = id_table,
35};
36
37static int anydata_open(struct usb_serial_port *port, struct file *filp)
38{
39 char *buffer;
40 int result = 0;
41
42 dbg("%s - port %d", __FUNCTION__, port->number);
43
44 if (buffer_size) {
45 /* override the default buffer sizes */
46 buffer = kmalloc(buffer_size, GFP_KERNEL);
47 if (!buffer) {
48 dev_err(&port->dev, "%s - out of memory.\n",
49 __FUNCTION__);
50 return -ENOMEM;
51 }
52 kfree (port->read_urb->transfer_buffer);
53 port->read_urb->transfer_buffer = buffer;
54 port->read_urb->transfer_buffer_length = buffer_size;
55
56 buffer = kmalloc(buffer_size, GFP_KERNEL);
57 if (!buffer) {
58 dev_err(&port->dev, "%s - out of memory.\n",
59 __FUNCTION__);
60 return -ENOMEM;
61 }
62 kfree (port->write_urb->transfer_buffer);
63 port->write_urb->transfer_buffer = buffer;
64 port->write_urb->transfer_buffer_length = buffer_size;
65 port->bulk_out_size = buffer_size;
66 }
67
68 /* Start reading from the device */
69 usb_fill_bulk_urb(port->read_urb, port->serial->dev,
70 usb_rcvbulkpipe(port->serial->dev,
71 port->bulk_in_endpointAddress),
72 port->read_urb->transfer_buffer,
73 port->read_urb->transfer_buffer_length,
74 usb_serial_generic_write_bulk_callback, port);
75 result = usb_submit_urb(port->read_urb, GFP_KERNEL);
76 if (result)
77 dev_err(&port->dev,
78 "%s - failed submitting read urb, error %d\n",
79 __FUNCTION__, result);
80
81 return result;
82}
83
84static struct usb_serial_driver anydata_device = {
85 .driver = {
86 .owner = THIS_MODULE,
87 .name = "anydata",
88 },
89 .id_table = id_table,
90 .num_interrupt_in = NUM_DONT_CARE,
91 .num_bulk_in = NUM_DONT_CARE,
92 .num_bulk_out = NUM_DONT_CARE,
93 .num_ports = 1,
94 .open = anydata_open,
95};
96
97static int __init anydata_init(void)
98{
99 int retval;
100
101 retval = usb_serial_register(&anydata_device);
102 if (retval)
103 return retval;
104 retval = usb_register(&anydata_driver);
105 if (retval)
106 usb_serial_deregister(&anydata_device);
107 return retval;
108}
109
110static void __exit anydata_exit(void)
111{
112 usb_deregister(&anydata_driver);
113 usb_serial_deregister(&anydata_device);
114}
115
116module_init(anydata_init);
117module_exit(anydata_exit);
118MODULE_LICENSE("GPL");
119
120module_param(debug, bool, S_IRUGO | S_IWUSR);
121MODULE_PARM_DESC(debug, "Debug enabled or not");
122module_param(buffer_size, int, 0);
123MODULE_PARM_DESC(buffer_size, "Size of the transfer buffers");
diff --git a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c
index c5334dd89b12..c9787001cf2a 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -60,6 +60,7 @@ static struct usb_device_id id_table [] = {
60 { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */ 60 { USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */
61 { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */ 61 { USB_DEVICE(0x10A6, 0xAA26) }, /* Knock-off DCU-11 cable */
62 { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */ 62 { USB_DEVICE(0x10AB, 0x10C5) }, /* Siemens MC60 Cable */
63 { USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
63 { } /* Terminating Entry */ 64 { } /* Terminating Entry */
64}; 65};
65 66
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index 8909208f506a..53a47c31cd0e 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -309,6 +309,7 @@ void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *re
309 309
310 schedule_work(&port->work); 310 schedule_work(&port->work);
311} 311}
312EXPORT_SYMBOL_GPL(usb_serial_generic_write_bulk_callback);
312 313
313void usb_serial_generic_shutdown (struct usb_serial *serial) 314void usb_serial_generic_shutdown (struct usb_serial *serial)
314{ 315{
diff --git a/drivers/usb/serial/nokia_dku2.c b/drivers/usb/serial/nokia_dku2.c
deleted file mode 100644
index fad01bef3a64..000000000000
--- a/drivers/usb/serial/nokia_dku2.c
+++ /dev/null
@@ -1,142 +0,0 @@
1/*
2 * Nokia DKU2 USB driver
3 *
4 * Copyright (C) 2004
5 * Author: C Kemp
6 *
7 * This program is largely derived from work by the linux-usb group
8 * and associated source files. Please see the usb/serial files for
9 * individual credits and copyrights.
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * 20.09.2005 - Matthias Blaesing <matthias.blaesing@rwth-aachen.de>
17 * Added short name to device structure to make driver load into kernel 2.6.13
18 *
19 * 20.09.2005 - Matthias Blaesing <matthias.blaesing@rwth-aachen.de>
20 * Added usb_deregister to exit code - to allow remove and reinsert of module
21 */
22
23
24#include <linux/config.h>
25#include <linux/kernel.h>
26#include <linux/errno.h>
27#include <linux/init.h>
28#include <linux/slab.h>
29#include <linux/tty.h>
30#include <linux/tty_driver.h>
31#include <linux/tty_flip.h>
32#include <linux/module.h>
33#include <linux/usb.h>
34#include "usb-serial.h"
35
36
37#define NOKIA_VENDOR_ID 0x0421
38#define NOKIA7600_PRODUCT_ID 0x0400
39#define NOKIA6230_PRODUCT_ID 0x040f
40#define NOKIA6170_PRODUCT_ID 0x0416
41#define NOKIA6670_PRODUCT_ID 0x041d
42#define NOKIA6680_PRODUCT_ID 0x041e
43#define NOKIA6230i_PRODUCT_ID 0x0428
44
45#define NOKIA_AT_PORT 0x82
46#define NOKIA_FBUS_PORT 0x86
47
48/*
49 * Version Information
50 */
51#define DRIVER_VERSION "v0.2"
52#define DRIVER_AUTHOR "C Kemp"
53#define DRIVER_DESC "Nokia DKU2 Driver"
54
55static struct usb_device_id id_table [] = {
56 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA7600_PRODUCT_ID) },
57 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA6230_PRODUCT_ID) },
58 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA6170_PRODUCT_ID) },
59 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA6670_PRODUCT_ID) },
60 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA6680_PRODUCT_ID) },
61 { USB_DEVICE(NOKIA_VENDOR_ID, NOKIA6230i_PRODUCT_ID) },
62 { } /* Terminating entry */
63};
64MODULE_DEVICE_TABLE(usb, id_table);
65
66/* The only thing which makes this device different from a generic
67 * device is that we have to set an alternative configuration to make
68 * the relevant endpoints available. In 2.6 this is really easy... */
69static int nokia_probe(struct usb_serial *serial,
70 const struct usb_device_id *id)
71{
72 int retval = -ENODEV;
73
74 if (serial->interface->altsetting[0].endpoint[0].desc.bEndpointAddress == NOKIA_AT_PORT) {
75 /* the AT port */
76 dev_info(&serial->dev->dev, "Nokia AT Port:\n");
77 retval = 0;
78 } else if (serial->interface->num_altsetting == 2 &&
79 serial->interface->altsetting[1].endpoint[0].desc.bEndpointAddress == NOKIA_FBUS_PORT) {
80 /* the FBUS port */
81 dev_info(&serial->dev->dev, "Nokia FBUS Port:\n");
82 usb_set_interface(serial->dev, 10, 1);
83 retval = 0;
84 }
85
86 return retval;
87}
88
89static struct usb_driver nokia_driver = {
90 .owner = THIS_MODULE,
91 .name = "nokia_dku2",
92 .probe = usb_serial_probe,
93 .disconnect = usb_serial_disconnect,
94 .id_table = id_table,
95};
96
97static struct usb_serial_driver nokia_serial_driver = {
98 .driver = {
99 .owner = THIS_MODULE,
100 .name = "nokia_dku2",
101 },
102 .description = "Nokia 7600/6230(i)/6170/66x0 DKU2 driver",
103 .id_table = id_table,
104 .num_interrupt_in = 1,
105 .num_bulk_in = 1,
106 .num_bulk_out = 1,
107 .num_ports = 1,
108 .probe = nokia_probe,
109};
110
111static int __init nokia_init(void)
112{
113 int retval;
114
115 retval = usb_serial_register(&nokia_serial_driver);
116 if (retval)
117 return retval;
118
119 retval = usb_register(&nokia_driver);
120 if (retval) {
121 usb_serial_deregister(&nokia_serial_driver);
122 return retval;
123 }
124
125 info(DRIVER_VERSION " " DRIVER_AUTHOR);
126 info(DRIVER_DESC);
127
128 return retval;
129}
130
131static void __exit nokia_exit(void)
132{
133 usb_deregister(&nokia_driver);
134 usb_serial_deregister(&nokia_serial_driver);
135}
136
137module_init(nokia_init);
138module_exit(nokia_exit);
139
140MODULE_AUTHOR(DRIVER_AUTHOR);
141MODULE_DESCRIPTION(DRIVER_DESC);
142MODULE_LICENSE("GPL");
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index 165c119bf10e..41a45a5025b2 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -71,7 +71,9 @@ static struct usb_device_id id_table [] = {
71 { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) }, 71 { USB_DEVICE(SITECOM_VENDOR_ID, SITECOM_PRODUCT_ID) },
72 { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) }, 72 { USB_DEVICE(ALCATEL_VENDOR_ID, ALCATEL_PRODUCT_ID) },
73 { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) }, 73 { USB_DEVICE(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_ID) },
74 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_SX1) },
74 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) }, 75 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X65) },
76 { USB_DEVICE(SIEMENS_VENDOR_ID, SIEMENS_PRODUCT_ID_X75) },
75 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) }, 77 { USB_DEVICE(SYNTECH_VENDOR_ID, SYNTECH_PRODUCT_ID) },
76 { USB_DEVICE( NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID ) }, 78 { USB_DEVICE( NOKIA_CA42_VENDOR_ID, NOKIA_CA42_PRODUCT_ID ) },
77 { } /* Terminating entry */ 79 { } /* Terminating entry */
@@ -811,7 +813,9 @@ static void pl2303_update_line_status(struct usb_serial_port *port,
811 u8 length = UART_STATE; 813 u8 length = UART_STATE;
812 814
813 if ((le16_to_cpu(port->serial->dev->descriptor.idVendor) == SIEMENS_VENDOR_ID) && 815 if ((le16_to_cpu(port->serial->dev->descriptor.idVendor) == SIEMENS_VENDOR_ID) &&
814 (le16_to_cpu(port->serial->dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_X65)) { 816 (le16_to_cpu(port->serial->dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_X65 ||
817 le16_to_cpu(port->serial->dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_SX1 ||
818 le16_to_cpu(port->serial->dev->descriptor.idProduct) == SIEMENS_PRODUCT_ID_X75)) {
815 length = 1; 819 length = 1;
816 status_idx = 0; 820 status_idx = 0;
817 } 821 }
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 7be9644f5a03..21d434d81813 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -54,7 +54,9 @@
54#define SAMSUNG_PRODUCT_ID 0x8001 54#define SAMSUNG_PRODUCT_ID 0x8001
55 55
56#define SIEMENS_VENDOR_ID 0x11f5 56#define SIEMENS_VENDOR_ID 0x11f5
57#define SIEMENS_PRODUCT_ID_SX1 0x0001
57#define SIEMENS_PRODUCT_ID_X65 0x0003 58#define SIEMENS_PRODUCT_ID_X65 0x0003
59#define SIEMENS_PRODUCT_ID_X75 0x0004
58 60
59#define SYNTECH_VENDOR_ID 0x0745 61#define SYNTECH_VENDOR_ID 0x0745
60#define SYNTECH_PRODUCT_ID 0x0001 62#define SYNTECH_PRODUCT_ID 0x0001
diff --git a/drivers/usb/storage/Kconfig b/drivers/usb/storage/Kconfig
index 1a9679f76f5a..c41d64dbb0f0 100644
--- a/drivers/usb/storage/Kconfig
+++ b/drivers/usb/storage/Kconfig
@@ -115,7 +115,7 @@ config USB_STORAGE_JUMPSHOT
115 115
116config USB_STORAGE_ONETOUCH 116config USB_STORAGE_ONETOUCH
117 bool "Support OneTouch Button on Maxtor Hard Drives (EXPERIMENTAL)" 117 bool "Support OneTouch Button on Maxtor Hard Drives (EXPERIMENTAL)"
118 depends on USB_STORAGE && INPUT_EVDEV && EXPERIMENTAL 118 depends on USB_STORAGE && INPUT_EVDEV && EXPERIMENTAL && !PM
119 help 119 help
120 Say Y here to include additional code to support the Maxtor OneTouch 120 Say Y here to include additional code to support the Maxtor OneTouch
121 USB hard drive's onetouch button. 121 USB hard drive's onetouch button.
diff --git a/drivers/usb/storage/shuttle_usbat.c b/drivers/usb/storage/shuttle_usbat.c
index 33c55a6261bb..fea176d7e79a 100644
--- a/drivers/usb/storage/shuttle_usbat.c
+++ b/drivers/usb/storage/shuttle_usbat.c
@@ -853,7 +853,7 @@ static int usbat_identify_device(struct us_data *us,
853 rc = usbat_device_reset(us); 853 rc = usbat_device_reset(us);
854 if (rc != USB_STOR_TRANSPORT_GOOD) 854 if (rc != USB_STOR_TRANSPORT_GOOD)
855 return rc; 855 return rc;
856 msleep(25); 856 msleep(500);
857 857
858 /* 858 /*
859 * In attempt to distinguish between HP CDRW's and Flash readers, we now 859 * In attempt to distinguish between HP CDRW's and Flash readers, we now
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index 9e926a8f2116..0a9858f69a9b 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -710,11 +710,6 @@ UNUSUAL_DEV( 0x0686, 0x4017, 0x0001, 0x0001,
710 "DIMAGE E223", 710 "DIMAGE E223",
711 US_SC_SCSI, US_PR_DEVICE, NULL, 0 ), 711 US_SC_SCSI, US_PR_DEVICE, NULL, 0 ),
712 712
713UNUSUAL_DEV( 0x0693, 0x0002, 0x0100, 0x0100,
714 "Hagiwara",
715 "FlashGate SmartMedia",
716 US_SC_SCSI, US_PR_BULK, NULL, 0 ),
717
718UNUSUAL_DEV( 0x0693, 0x0005, 0x0100, 0x0100, 713UNUSUAL_DEV( 0x0693, 0x0005, 0x0100, 0x0100,
719 "Hagiwara", 714 "Hagiwara",
720 "Flashgate", 715 "Flashgate",
@@ -1008,6 +1003,11 @@ UNUSUAL_DEV( 0x0c0b, 0xa109, 0x0000, 0xffff,
1008 * 1003 *
1009 */ 1004 */
1010#ifdef CONFIG_USB_STORAGE_ONETOUCH 1005#ifdef CONFIG_USB_STORAGE_ONETOUCH
1006 UNUSUAL_DEV( 0x0d49, 0x7000, 0x0000, 0x9999,
1007 "Maxtor",
1008 "OneTouch External Harddrive",
1009 US_SC_DEVICE, US_PR_DEVICE, onetouch_connect_input,
1010 0),
1011 UNUSUAL_DEV( 0x0d49, 0x7010, 0x0000, 0x9999, 1011 UNUSUAL_DEV( 0x0d49, 0x7010, 0x0000, 0x9999,
1012 "Maxtor", 1012 "Maxtor",
1013 "OneTouch External Harddrive", 1013 "OneTouch External Harddrive",
diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
index f07e60f9e102..31b7efd94d66 100644
--- a/fs/compat_ioctl.c
+++ b/fs/compat_ioctl.c
@@ -49,6 +49,8 @@
49#include <linux/vt_kern.h> 49#include <linux/vt_kern.h>
50#include <linux/fb.h> 50#include <linux/fb.h>
51#include <linux/ext2_fs.h> 51#include <linux/ext2_fs.h>
52#include <linux/ext3_jbd.h>
53#include <linux/ext3_fs.h>
52#include <linux/videodev.h> 54#include <linux/videodev.h>
53#include <linux/netdevice.h> 55#include <linux/netdevice.h>
54#include <linux/raw.h> 56#include <linux/raw.h>
@@ -134,6 +136,15 @@
134/* Aiee. Someone does not find a difference between int and long */ 136/* Aiee. Someone does not find a difference between int and long */
135#define EXT2_IOC32_GETFLAGS _IOR('f', 1, int) 137#define EXT2_IOC32_GETFLAGS _IOR('f', 1, int)
136#define EXT2_IOC32_SETFLAGS _IOW('f', 2, int) 138#define EXT2_IOC32_SETFLAGS _IOW('f', 2, int)
139#define EXT3_IOC32_GETVERSION _IOR('f', 3, int)
140#define EXT3_IOC32_SETVERSION _IOW('f', 4, int)
141#define EXT3_IOC32_GETRSVSZ _IOR('f', 5, int)
142#define EXT3_IOC32_SETRSVSZ _IOW('f', 6, int)
143#define EXT3_IOC32_GROUP_EXTEND _IOW('f', 7, unsigned int)
144#ifdef CONFIG_JBD_DEBUG
145#define EXT3_IOC32_WAIT_FOR_READONLY _IOR('f', 99, int)
146#endif
147
137#define EXT2_IOC32_GETVERSION _IOR('v', 1, int) 148#define EXT2_IOC32_GETVERSION _IOR('v', 1, int)
138#define EXT2_IOC32_SETVERSION _IOW('v', 2, int) 149#define EXT2_IOC32_SETVERSION _IOW('v', 2, int)
139 150
@@ -180,6 +191,22 @@ static int do_ext2_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
180 return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg)); 191 return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg));
181} 192}
182 193
194static int do_ext3_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
195{
196 /* These are just misnamed, they actually get/put from/to user an int */
197 switch (cmd) {
198 case EXT3_IOC32_GETVERSION: cmd = EXT3_IOC_GETVERSION; break;
199 case EXT3_IOC32_SETVERSION: cmd = EXT3_IOC_SETVERSION; break;
200 case EXT3_IOC32_GETRSVSZ: cmd = EXT3_IOC_GETRSVSZ; break;
201 case EXT3_IOC32_SETRSVSZ: cmd = EXT3_IOC_SETRSVSZ; break;
202 case EXT3_IOC32_GROUP_EXTEND: cmd = EXT3_IOC_GROUP_EXTEND; break;
203#ifdef CONFIG_JBD_DEBUG
204 case EXT3_IOC32_WAIT_FOR_READONLY: cmd = EXT3_IOC_WAIT_FOR_READONLY; break;
205#endif
206 }
207 return sys_ioctl(fd, cmd, (unsigned long)compat_ptr(arg));
208}
209
183struct video_tuner32 { 210struct video_tuner32 {
184 compat_int_t tuner; 211 compat_int_t tuner;
185 char name[32]; 212 char name[32];
@@ -2981,6 +3008,15 @@ HANDLE_IOCTL(EXT2_IOC32_GETFLAGS, do_ext2_ioctl)
2981HANDLE_IOCTL(EXT2_IOC32_SETFLAGS, do_ext2_ioctl) 3008HANDLE_IOCTL(EXT2_IOC32_SETFLAGS, do_ext2_ioctl)
2982HANDLE_IOCTL(EXT2_IOC32_GETVERSION, do_ext2_ioctl) 3009HANDLE_IOCTL(EXT2_IOC32_GETVERSION, do_ext2_ioctl)
2983HANDLE_IOCTL(EXT2_IOC32_SETVERSION, do_ext2_ioctl) 3010HANDLE_IOCTL(EXT2_IOC32_SETVERSION, do_ext2_ioctl)
3011HANDLE_IOCTL(EXT3_IOC32_GETVERSION, do_ext3_ioctl)
3012HANDLE_IOCTL(EXT3_IOC32_SETVERSION, do_ext3_ioctl)
3013HANDLE_IOCTL(EXT3_IOC32_GETRSVSZ, do_ext3_ioctl)
3014HANDLE_IOCTL(EXT3_IOC32_SETRSVSZ, do_ext3_ioctl)
3015HANDLE_IOCTL(EXT3_IOC32_GROUP_EXTEND, do_ext3_ioctl)
3016COMPATIBLE_IOCTL(EXT3_IOC_GROUP_ADD)
3017#ifdef CONFIG_JBD_DEBUG
3018HANDLE_IOCTL(EXT3_IOC32_WAIT_FOR_READONLY, do_ext3_ioctl)
3019#endif
2984HANDLE_IOCTL(VIDIOCGTUNER32, do_video_ioctl) 3020HANDLE_IOCTL(VIDIOCGTUNER32, do_video_ioctl)
2985HANDLE_IOCTL(VIDIOCSTUNER32, do_video_ioctl) 3021HANDLE_IOCTL(VIDIOCSTUNER32, do_video_ioctl)
2986HANDLE_IOCTL(VIDIOCGWIN32, do_video_ioctl) 3022HANDLE_IOCTL(VIDIOCGWIN32, do_video_ioctl)
diff --git a/include/asm-arm/arch-clps711x/uncompress.h b/include/asm-arm/arch-clps711x/uncompress.h
index 7d0ab791b16c..9fc4bcfa1681 100644
--- a/include/asm-arm/arch-clps711x/uncompress.h
+++ b/include/asm-arm/arch-clps711x/uncompress.h
@@ -19,7 +19,7 @@
19 */ 19 */
20#include <linux/config.h> 20#include <linux/config.h>
21#include <asm/arch/io.h> 21#include <asm/arch/io.h>
22#include <asm/arch/hardware.h> 22#include <asm/hardware.h>
23#include <asm/hardware/clps7111.h> 23#include <asm/hardware/clps7111.h>
24 24
25#undef CLPS7111_BASE 25#undef CLPS7111_BASE
diff --git a/include/asm-arm/arch-epxa10db/uncompress.h b/include/asm-arm/arch-epxa10db/uncompress.h
index d33ad6a93749..fdfe0e6848f8 100644
--- a/include/asm-arm/arch-epxa10db/uncompress.h
+++ b/include/asm-arm/arch-epxa10db/uncompress.h
@@ -19,7 +19,7 @@
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */ 20 */
21#include "asm/arch/platform.h" 21#include "asm/arch/platform.h"
22#include "asm/arch/hardware.h" 22#include "asm/hardware.h"
23#define UART00_TYPE (volatile unsigned int*) 23#define UART00_TYPE (volatile unsigned int*)
24#include "asm/arch/uart00.h" 24#include "asm/arch/uart00.h"
25 25
diff --git a/include/asm-arm/arch-h720x/uncompress.h b/include/asm-arm/arch-h720x/uncompress.h
index 2fffacf85a01..9535764bcc71 100644
--- a/include/asm-arm/arch-h720x/uncompress.h
+++ b/include/asm-arm/arch-h720x/uncompress.h
@@ -7,7 +7,7 @@
7#ifndef __ASM_ARCH_UNCOMPRESS_H 7#ifndef __ASM_ARCH_UNCOMPRESS_H
8#define __ASM_ARCH_UNCOMPRESS_H 8#define __ASM_ARCH_UNCOMPRESS_H
9 9
10#include <asm/arch/hardware.h> 10#include <asm/hardware.h>
11 11
12#define LSR 0x14 12#define LSR 0x14
13#define TEMPTY 0x40 13#define TEMPTY 0x40
diff --git a/include/asm-arm/arch-imx/irqs.h b/include/asm-arm/arch-imx/irqs.h
index 238197cfb9d9..f195542898e0 100644
--- a/include/asm-arm/arch-imx/irqs.h
+++ b/include/asm-arm/arch-imx/irqs.h
@@ -23,7 +23,7 @@
23#define __ARM_IRQS_H__ 23#define __ARM_IRQS_H__
24 24
25/* Use the imx definitions */ 25/* Use the imx definitions */
26#include <asm/arch/hardware.h> 26#include <asm/hardware.h>
27 27
28/* 28/*
29 * IMX Interrupt numbers 29 * IMX Interrupt numbers
diff --git a/include/asm-arm/arch-imx/timex.h b/include/asm-arm/arch-imx/timex.h
index d65ab3cd5d5d..8c91674706b1 100644
--- a/include/asm-arm/arch-imx/timex.h
+++ b/include/asm-arm/arch-imx/timex.h
@@ -21,7 +21,7 @@
21#ifndef __ASM_ARCH_TIMEX_H 21#ifndef __ASM_ARCH_TIMEX_H
22#define __ASM_ARCH_TIMEX_H 22#define __ASM_ARCH_TIMEX_H
23 23
24#include <asm/arch/hardware.h> 24#include <asm/hardware.h>
25#define CLOCK_TICK_RATE (CLK32) 25#define CLOCK_TICK_RATE (CLK32)
26 26
27#endif 27#endif
diff --git a/include/asm-arm/arch-integrator/smp.h b/include/asm-arm/arch-integrator/smp.h
index 0ec7093f7c37..da6981efdc39 100644
--- a/include/asm-arm/arch-integrator/smp.h
+++ b/include/asm-arm/arch-integrator/smp.h
@@ -3,7 +3,7 @@
3 3
4#include <linux/config.h> 4#include <linux/config.h>
5 5
6#include <asm/arch/hardware.h> 6#include <asm/hardware.h>
7#include <asm/io.h> 7#include <asm/io.h>
8 8
9#define hard_smp_processor_id() \ 9#define hard_smp_processor_id() \
diff --git a/include/asm-arm/arch-l7200/aux_reg.h b/include/asm-arm/arch-l7200/aux_reg.h
index 762cbc76c501..5b4396de16a0 100644
--- a/include/asm-arm/arch-l7200/aux_reg.h
+++ b/include/asm-arm/arch-l7200/aux_reg.h
@@ -9,7 +9,7 @@
9#ifndef _ASM_ARCH_AUXREG_H 9#ifndef _ASM_ARCH_AUXREG_H
10#define _ASM_ARCH_AUXREG_H 10#define _ASM_ARCH_AUXREG_H
11 11
12#include <asm/arch/hardware.h> 12#include <asm/hardware.h>
13 13
14#define l7200aux_reg *((volatile unsigned int *) (AUX_BASE)) 14#define l7200aux_reg *((volatile unsigned int *) (AUX_BASE))
15 15
diff --git a/include/asm-arm/arch-l7200/gp_timers.h b/include/asm-arm/arch-l7200/gp_timers.h
index 6f20962df248..9c4804d13578 100644
--- a/include/asm-arm/arch-l7200/gp_timers.h
+++ b/include/asm-arm/arch-l7200/gp_timers.h
@@ -10,7 +10,7 @@
10#ifndef _ASM_ARCH_GPTIMERS_H 10#ifndef _ASM_ARCH_GPTIMERS_H
11#define _ASM_ARCH_GPTIMERS_H 11#define _ASM_ARCH_GPTIMERS_H
12 12
13#include <asm/arch/hardware.h> 13#include <asm/hardware.h>
14 14
15/* 15/*
16 * Layout of L7200 general purpose timer registers 16 * Layout of L7200 general purpose timer registers
diff --git a/include/asm-arm/arch-omap/gpio.h b/include/asm-arm/arch-omap/gpio.h
index 1b3885741ac1..f486b72070ea 100644
--- a/include/asm-arm/arch-omap/gpio.h
+++ b/include/asm-arm/arch-omap/gpio.h
@@ -26,7 +26,7 @@
26#ifndef __ASM_ARCH_OMAP_GPIO_H 26#ifndef __ASM_ARCH_OMAP_GPIO_H
27#define __ASM_ARCH_OMAP_GPIO_H 27#define __ASM_ARCH_OMAP_GPIO_H
28 28
29#include <asm/arch/hardware.h> 29#include <asm/hardware.h>
30#include <asm/arch/irqs.h> 30#include <asm/arch/irqs.h>
31#include <asm/io.h> 31#include <asm/io.h>
32 32
diff --git a/include/asm-arm/arch-omap/irqs.h b/include/asm-arm/arch-omap/irqs.h
index 9779686bdceb..4ffce1d77759 100644
--- a/include/asm-arm/arch-omap/irqs.h
+++ b/include/asm-arm/arch-omap/irqs.h
@@ -260,7 +260,7 @@ extern void omap_init_irq(void);
260 * The definition of NR_IRQS is in board-specific header file, which is 260 * The definition of NR_IRQS is in board-specific header file, which is
261 * included via hardware.h 261 * included via hardware.h
262 */ 262 */
263#include <asm/arch/hardware.h> 263#include <asm/hardware.h>
264 264
265#ifndef NR_IRQS 265#ifndef NR_IRQS
266#define NR_IRQS IH_BOARD_BASE 266#define NR_IRQS IH_BOARD_BASE
diff --git a/include/asm-arm/arch-omap/mcbsp.h b/include/asm-arm/arch-omap/mcbsp.h
index 305bdeb16ab8..e79d98ab2ab6 100644
--- a/include/asm-arm/arch-omap/mcbsp.h
+++ b/include/asm-arm/arch-omap/mcbsp.h
@@ -24,7 +24,7 @@
24#ifndef __ASM_ARCH_OMAP_MCBSP_H 24#ifndef __ASM_ARCH_OMAP_MCBSP_H
25#define __ASM_ARCH_OMAP_MCBSP_H 25#define __ASM_ARCH_OMAP_MCBSP_H
26 26
27#include <asm/arch/hardware.h> 27#include <asm/hardware.h>
28 28
29#define OMAP730_MCBSP1_BASE 0xfffb1000 29#define OMAP730_MCBSP1_BASE 0xfffb1000
30#define OMAP730_MCBSP2_BASE 0xfffb1800 30#define OMAP730_MCBSP2_BASE 0xfffb1800
diff --git a/include/asm-arm/arch-omap/system.h b/include/asm-arm/arch-omap/system.h
index b43cdd2a3874..9af415d2944a 100644
--- a/include/asm-arm/arch-omap/system.h
+++ b/include/asm-arm/arch-omap/system.h
@@ -7,7 +7,7 @@
7#include <linux/config.h> 7#include <linux/config.h>
8#include <asm/mach-types.h> 8#include <asm/mach-types.h>
9#include <asm/hardware/clock.h> 9#include <asm/hardware/clock.h>
10#include <asm/arch/hardware.h> 10#include <asm/hardware.h>
11#include <asm/arch/prcm.h> 11#include <asm/arch/prcm.h>
12 12
13#ifndef CONFIG_MACH_VOICEBLUE 13#ifndef CONFIG_MACH_VOICEBLUE
diff --git a/include/asm-arm/arch-realview/hardware.h b/include/asm-arm/arch-realview/hardware.h
index 67879cdb6ef2..9ca76dc3a7af 100644
--- a/include/asm-arm/arch-realview/hardware.h
+++ b/include/asm-arm/arch-realview/hardware.h
@@ -27,5 +27,6 @@
27 27
28/* macro to get at IO space when running virtually */ 28/* macro to get at IO space when running virtually */
29#define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000) 29#define IO_ADDRESS(x) (((x) & 0x0fffffff) + (((x) >> 4) & 0x0f000000) + 0xf0000000)
30#define __io_address(n) __io(IO_ADDRESS(n))
30 31
31#endif 32#endif
diff --git a/include/asm-arm/arch-realview/system.h b/include/asm-arm/arch-realview/system.h
index 9f8fcbca0869..6f3d0ce0ca1e 100644
--- a/include/asm-arm/arch-realview/system.h
+++ b/include/asm-arm/arch-realview/system.h
@@ -36,7 +36,7 @@ static inline void arch_idle(void)
36 36
37static inline void arch_reset(char mode) 37static inline void arch_reset(char mode)
38{ 38{
39 unsigned int hdr_ctrl = (IO_ADDRESS(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET); 39 void __iomem *hdr_ctrl = __io_address(REALVIEW_SYS_BASE) + REALVIEW_SYS_RESETCTL_OFFSET;
40 unsigned int val; 40 unsigned int val;
41 41
42 /* 42 /*
diff --git a/include/asm-arm/arch-rpc/system.h b/include/asm-arm/arch-rpc/system.h
index ca3277d1d5ea..729c2ae4b513 100644
--- a/include/asm-arm/arch-rpc/system.h
+++ b/include/asm-arm/arch-rpc/system.h
@@ -7,7 +7,7 @@
7 * it under the terms of the GNU General Public License version 2 as 7 * it under the terms of the GNU General Public License version 2 as
8 * published by the Free Software Foundation. 8 * published by the Free Software Foundation.
9 */ 9 */
10#include <asm/arch/hardware.h> 10#include <asm/hardware.h>
11#include <asm/hardware/iomd.h> 11#include <asm/hardware/iomd.h>
12#include <asm/io.h> 12#include <asm/io.h>
13 13
diff --git a/include/asm-arm/arch-sa1100/memory.h b/include/asm-arm/arch-sa1100/memory.h
index 0fc555b4c912..018a9f0e3986 100644
--- a/include/asm-arm/arch-sa1100/memory.h
+++ b/include/asm-arm/arch-sa1100/memory.h
@@ -18,20 +18,10 @@
18#ifndef __ASSEMBLY__ 18#ifndef __ASSEMBLY__
19 19
20#ifdef CONFIG_SA1111 20#ifdef CONFIG_SA1111
21static inline void 21void sa1111_adjust_zones(int node, unsigned long *size, unsigned long *holes);
22__arch_adjust_zones(int node, unsigned long *size, unsigned long *holes)
23{
24 unsigned int sz = SZ_1M >> PAGE_SHIFT;
25
26 if (node != 0)
27 sz = 0;
28
29 size[1] = size[0] - sz;
30 size[0] = sz;
31}
32 22
33#define arch_adjust_zones(node, size, holes) \ 23#define arch_adjust_zones(node, size, holes) \
34 __arch_adjust_zones(node, size, holes) 24 sa1111_adjust_zones(node, size, holes)
35 25
36#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_1M - 1) 26#define ISA_DMA_THRESHOLD (PHYS_OFFSET + SZ_1M - 1)
37 27
diff --git a/include/asm-arm/atomic.h b/include/asm-arm/atomic.h
index 75b802719723..d586f65c8228 100644
--- a/include/asm-arm/atomic.h
+++ b/include/asm-arm/atomic.h
@@ -12,6 +12,7 @@
12#define __ASM_ARM_ATOMIC_H 12#define __ASM_ARM_ATOMIC_H
13 13
14#include <linux/config.h> 14#include <linux/config.h>
15#include <linux/compiler.h>
15 16
16typedef struct { volatile int counter; } atomic_t; 17typedef struct { volatile int counter; } atomic_t;
17 18
@@ -82,11 +83,12 @@ static inline int atomic_sub_return(int i, atomic_t *v)
82 83
83static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new) 84static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
84{ 85{
85 u32 oldval, res; 86 unsigned long oldval, res;
86 87
87 do { 88 do {
88 __asm__ __volatile__("@ atomic_cmpxchg\n" 89 __asm__ __volatile__("@ atomic_cmpxchg\n"
89 "ldrex %1, [%2]\n" 90 "ldrex %1, [%2]\n"
91 "mov %0, #0\n"
90 "teq %1, %3\n" 92 "teq %1, %3\n"
91 "strexeq %0, %4, [%2]\n" 93 "strexeq %0, %4, [%2]\n"
92 : "=&r" (res), "=&r" (oldval) 94 : "=&r" (res), "=&r" (oldval)
diff --git a/include/asm-arm/bitops.h b/include/asm-arm/bitops.h
index e007dd990da5..7399d431edfe 100644
--- a/include/asm-arm/bitops.h
+++ b/include/asm-arm/bitops.h
@@ -19,6 +19,7 @@
19 19
20#ifdef __KERNEL__ 20#ifdef __KERNEL__
21 21
22#include <linux/compiler.h>
22#include <asm/system.h> 23#include <asm/system.h>
23 24
24#define smp_mb__before_clear_bit() mb() 25#define smp_mb__before_clear_bit() mb()
diff --git a/include/asm-arm/hardware/dec21285.h b/include/asm-arm/hardware/dec21285.h
index 9049f0ddaecf..6685e3fb97b1 100644
--- a/include/asm-arm/hardware/dec21285.h
+++ b/include/asm-arm/hardware/dec21285.h
@@ -20,7 +20,7 @@
20 20
21#include <linux/config.h> 21#include <linux/config.h>
22#ifndef __ASSEMBLY__ 22#ifndef __ASSEMBLY__
23#include <asm/arch/hardware.h> 23#include <asm/hardware.h>
24#define DC21285_IO(x) ((volatile unsigned long *)(ARMCSR_BASE+(x))) 24#define DC21285_IO(x) ((volatile unsigned long *)(ARMCSR_BASE+(x)))
25#else 25#else
26#define DC21285_IO(x) (x) 26#define DC21285_IO(x) (x)
diff --git a/include/asm-arm/mmu_context.h b/include/asm-arm/mmu_context.h
index 3d4b810d8c38..81c59facea3b 100644
--- a/include/asm-arm/mmu_context.h
+++ b/include/asm-arm/mmu_context.h
@@ -13,6 +13,7 @@
13#ifndef __ASM_ARM_MMU_CONTEXT_H 13#ifndef __ASM_ARM_MMU_CONTEXT_H
14#define __ASM_ARM_MMU_CONTEXT_H 14#define __ASM_ARM_MMU_CONTEXT_H
15 15
16#include <linux/compiler.h>
16#include <asm/cacheflush.h> 17#include <asm/cacheflush.h>
17#include <asm/proc-fns.h> 18#include <asm/proc-fns.h>
18 19
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index 8efa4ebdcacb..5621d61ebc07 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -93,8 +93,6 @@ void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
93 struct pt_regs *), 93 struct pt_regs *),
94 int sig, const char *name); 94 int sig, const char *name);
95 95
96#include <asm/proc-fns.h>
97
98#define xchg(ptr,x) \ 96#define xchg(ptr,x) \
99 ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) 97 ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr))))
100 98
@@ -102,6 +100,8 @@ void hook_fault_code(int nr, int (*fn)(unsigned long, unsigned int,
102 100
103extern asmlinkage void __backtrace(void); 101extern asmlinkage void __backtrace(void);
104extern asmlinkage void c_backtrace(unsigned long fp, int pmode); 102extern asmlinkage void c_backtrace(unsigned long fp, int pmode);
103
104struct mm_struct;
105extern void show_pte(struct mm_struct *mm, unsigned long addr); 105extern void show_pte(struct mm_struct *mm, unsigned long addr);
106extern void __show_regs(struct pt_regs *); 106extern void __show_regs(struct pt_regs *);
107 107
diff --git a/include/asm-arm/thread_info.h b/include/asm-arm/thread_info.h
index 8252a4cd860f..7c98557b717f 100644
--- a/include/asm-arm/thread_info.h
+++ b/include/asm-arm/thread_info.h
@@ -12,6 +12,7 @@
12 12
13#ifdef __KERNEL__ 13#ifdef __KERNEL__
14 14
15#include <linux/compiler.h>
15#include <asm/fpstate.h> 16#include <asm/fpstate.h>
16 17
17#define THREAD_SIZE_ORDER 1 18#define THREAD_SIZE_ORDER 1
diff --git a/include/asm-i386/signal.h b/include/asm-i386/signal.h
index cbb47d34aa31..76524b4052ac 100644
--- a/include/asm-i386/signal.h
+++ b/include/asm-i386/signal.h
@@ -159,14 +159,37 @@ typedef struct sigaltstack {
159 159
160#define __HAVE_ARCH_SIG_BITOPS 160#define __HAVE_ARCH_SIG_BITOPS
161 161
162static __inline__ void sigaddset(sigset_t *set, int _sig) 162#define sigaddset(set,sig) \
163 (__builtin_constant_p(sig) ? \
164 __const_sigaddset((set),(sig)) : \
165 __gen_sigaddset((set),(sig)))
166
167static __inline__ void __gen_sigaddset(sigset_t *set, int _sig)
163{ 168{
164 __asm__("btsl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc"); 169 __asm__("btsl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc");
165} 170}
166 171
167static __inline__ void sigdelset(sigset_t *set, int _sig) 172static __inline__ void __const_sigaddset(sigset_t *set, int _sig)
168{ 173{
169 __asm__("btrl %1,%0" : "=m"(*set) : "Ir"(_sig - 1) : "cc"); 174 unsigned long sig = _sig - 1;
175 set->sig[sig / _NSIG_BPW] |= 1 << (sig % _NSIG_BPW);
176}
177
178#define sigdelset(set,sig) \
179 (__builtin_constant_p(sig) ? \
180 __const_sigdelset((set),(sig)) : \
181 __gen_sigdelset((set),(sig)))
182
183
184static __inline__ void __gen_sigdelset(sigset_t *set, int _sig)
185{
186 __asm__("btrl %1,%0" : "+m"(*set) : "Ir"(_sig - 1) : "cc");
187}
188
189static __inline__ void __const_sigdelset(sigset_t *set, int _sig)
190{
191 unsigned long sig = _sig - 1;
192 set->sig[sig / _NSIG_BPW] &= ~(1 << (sig % _NSIG_BPW));
170} 193}
171 194
172static __inline__ int __const_sigismember(sigset_t *set, int _sig) 195static __inline__ int __const_sigismember(sigset_t *set, int _sig)
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h
index 2c87b41e69ba..55c37c106ef0 100644
--- a/include/asm-mips/atomic.h
+++ b/include/asm-mips/atomic.h
@@ -231,11 +231,12 @@ static __inline__ int atomic_sub_return(int i, atomic_t * v)
231} 231}
232 232
233/* 233/*
234 * atomic_sub_if_positive - add integer to atomic variable 234 * atomic_sub_if_positive - conditionally subtract integer from atomic variable
235 * @i: integer value to subtract
235 * @v: pointer of type atomic_t 236 * @v: pointer of type atomic_t
236 * 237 *
237 * Atomically test @v and decrement if it is greater than 0. 238 * Atomically test @v and subtract @i if @v is greater or equal than @i.
238 * The function returns the old value of @v minus 1. 239 * The function returns the old value of @v minus @i.
239 */ 240 */
240static __inline__ int atomic_sub_if_positive(int i, atomic_t * v) 241static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
241{ 242{
@@ -577,11 +578,12 @@ static __inline__ long atomic64_sub_return(long i, atomic64_t * v)
577} 578}
578 579
579/* 580/*
580 * atomic64_sub_if_positive - add integer to atomic variable 581 * atomic64_sub_if_positive - conditionally subtract integer from atomic variable
582 * @i: integer value to subtract
581 * @v: pointer of type atomic64_t 583 * @v: pointer of type atomic64_t
582 * 584 *
583 * Atomically test @v and decrement if it is greater than 0. 585 * Atomically test @v and subtract @i if @v is greater or equal than @i.
584 * The function returns the old value of @v minus 1. 586 * The function returns the old value of @v minus @i.
585 */ 587 */
586static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v) 588static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
587{ 589{
diff --git a/include/asm-mips/io.h b/include/asm-mips/io.h
index 3061870b7f6c..d42685747e7d 100644
--- a/include/asm-mips/io.h
+++ b/include/asm-mips/io.h
@@ -459,10 +459,10 @@ __BUILDIO(q, u64)
459 459
460#define __BUILD_MEMORY_STRING(bwlq, type) \ 460#define __BUILD_MEMORY_STRING(bwlq, type) \
461 \ 461 \
462static inline void writes##bwlq(volatile void __iomem *mem, void *addr, \ 462static inline void writes##bwlq(volatile void __iomem *mem, \
463 unsigned int count) \ 463 const void *addr, unsigned int count) \
464{ \ 464{ \
465 volatile type *__addr = addr; \ 465 const volatile type *__addr = addr; \
466 \ 466 \
467 while (count--) { \ 467 while (count--) { \
468 mem_write##bwlq(*__addr, mem); \ 468 mem_write##bwlq(*__addr, mem); \
diff --git a/include/asm-mips/ip32/crime.h b/include/asm-mips/ip32/crime.h
index 152879bae20f..a13702fafa85 100644
--- a/include/asm-mips/ip32/crime.h
+++ b/include/asm-mips/ip32/crime.h
@@ -154,7 +154,7 @@ struct sgi_crime {
154#define CRIME_MEM_ERROR_ECC_REPL_MASK 0xffffffff 154#define CRIME_MEM_ERROR_ECC_REPL_MASK 0xffffffff
155}; 155};
156 156
157extern struct sgi_crime *crime; 157extern struct sgi_crime __iomem *crime;
158 158
159#define CRIME_HI_MEM_BASE 0x40000000 /* this is where whole 1G of RAM is mapped */ 159#define CRIME_HI_MEM_BASE 0x40000000 /* this is where whole 1G of RAM is mapped */
160 160
diff --git a/include/asm-mips/ip32/mace.h b/include/asm-mips/ip32/mace.h
index 5bdc51d85b6c..990082c81f39 100644
--- a/include/asm-mips/ip32/mace.h
+++ b/include/asm-mips/ip32/mace.h
@@ -150,24 +150,34 @@ struct mace_audio {
150 150
151/* register definitions for parallel port DMA */ 151/* register definitions for parallel port DMA */
152struct mace_parport { 152struct mace_parport {
153/* 0 - do nothing, 1 - pulse terminal count to the device after buffer is drained */ 153 /* 0 - do nothing,
154#define MACEPAR_CONTEXT_LASTFLAG BIT(63) 154 * 1 - pulse terminal count to the device after buffer is drained */
155/* Should not cross 4K page boundary */ 155#define MACEPAR_CONTEXT_LASTFLAG BIT(63)
156#define MACEPAR_CONTEXT_DATALEN_MASK 0xfff00000000 156 /* Should not cross 4K page boundary */
157/* Can be arbitrarily aligned on any byte boundary on output, 64 byte aligned on input */ 157#define MACEPAR_CONTEXT_DATA_BOUND 0x0000000000001000UL
158#define MACEPAR_CONTEXT_BASEADDR_MASK 0xffffffff 158#define MACEPAR_CONTEXT_DATALEN_MASK 0x00000fff00000000UL
159#define MACEPAR_CONTEXT_DATALEN_SHIFT 32
160 /* Can be arbitrarily aligned on any byte boundary on output,
161 * 64 byte aligned on input */
162#define MACEPAR_CONTEXT_BASEADDR_MASK 0x00000000ffffffffUL
159 volatile u64 context_a; 163 volatile u64 context_a;
160 volatile u64 context_b; 164 volatile u64 context_b;
161#define MACEPAR_CTLSTAT_DIRECTION BIT(0) /* 0 - mem->device, 1 - device->mem */ 165 /* 0 - mem->device, 1 - device->mem */
162#define MACEPAR_CTLSTAT_ENABLE BIT(1) /* 0 - channel frozen, 1 - channel enabled */ 166#define MACEPAR_CTLSTAT_DIRECTION BIT(0)
163#define MACEPAR_CTLSTAT_RESET BIT(2) /* 0 - channel active, 1 - complete channel reset */ 167 /* 0 - channel frozen, 1 - channel enabled */
164#define MACEPAR_CTLSTAT_CTXB_VALID BIT(3) 168#define MACEPAR_CTLSTAT_ENABLE BIT(1)
165#define MACEPAR_CTLSTAT_CTXA_VALID BIT(4) 169 /* 0 - channel active, 1 - complete channel reset */
166 volatile u64 cntlstat; /* Control/Status register */ 170#define MACEPAR_CTLSTAT_RESET BIT(2)
167#define MACEPAR_DIAG_CTXINUSE BIT(1) 171#define MACEPAR_CTLSTAT_CTXB_VALID BIT(3)
168#define MACEPAR_DIAG_DMACTIVE BIT(2) /* 1 - Dma engine is enabled and processing something */ 172#define MACEPAR_CTLSTAT_CTXA_VALID BIT(4)
169#define MACEPAR_DIAG_CTRMASK 0x3ffc /* Counter of bytes left */ 173 volatile u64 cntlstat; /* Control/Status register */
170 volatile u64 diagnostic; /* RO: diagnostic register */ 174#define MACEPAR_DIAG_CTXINUSE BIT(0)
175 /* 1 - Dma engine is enabled and processing something */
176#define MACEPAR_DIAG_DMACTIVE BIT(1)
177 /* Counter of bytes left */
178#define MACEPAR_DIAG_CTRMASK 0x0000000000003ffcUL
179#define MACEPAR_DIAG_CTRSHIFT 2
180 volatile u64 diagnostic; /* RO: diagnostic register */
171}; 181};
172 182
173/* ISA Control and DMA registers */ 183/* ISA Control and DMA registers */
@@ -353,6 +363,6 @@ struct sgi_mace {
353 char _pad6[0x80000 - sizeof(struct mace_isa)]; 363 char _pad6[0x80000 - sizeof(struct mace_isa)];
354}; 364};
355 365
356extern struct sgi_mace *mace; 366extern struct sgi_mace __iomem *mace;
357 367
358#endif /* __ASM_MACE_H__ */ 368#endif /* __ASM_MACE_H__ */
diff --git a/include/asm-mips/mach-db1x00/db1200.h b/include/asm-mips/mach-db1x00/db1200.h
index 5d894376fc1a..647fdb54cc1d 100644
--- a/include/asm-mips/mach-db1x00/db1200.h
+++ b/include/asm-mips/mach-db1x00/db1200.h
@@ -220,5 +220,8 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
220#define BOARD_PC1_INT DB1200_PC1_INT 220#define BOARD_PC1_INT DB1200_PC1_INT
221#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1<<(8+(2*SOCKET))) 221#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1<<(8+(2*SOCKET)))
222 222
223/* Nand chip select */
224#define NAND_CS 1
225
223#endif /* __ASM_DB1200_H */ 226#endif /* __ASM_DB1200_H */
224 227
diff --git a/include/asm-mips/mach-db1x00/db1x00.h b/include/asm-mips/mach-db1x00/db1x00.h
index efafe65258b6..7b28b23f91ce 100644
--- a/include/asm-mips/mach-db1x00/db1x00.h
+++ b/include/asm-mips/mach-db1x00/db1x00.h
@@ -200,6 +200,12 @@ typedef volatile struct
200 ((NAND_T_PUL & 0xF) << NAND_T_PUL_SHIFT) | \ 200 ((NAND_T_PUL & 0xF) << NAND_T_PUL_SHIFT) | \
201 ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \ 201 ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \
202 ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT) 202 ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT)
203#define NAND_CS 1
204
205/* should be done by yamon */
206#define NAND_STCFG 0x00400005 /* 8-bit NAND */
207#define NAND_STTIME 0x00007774 /* valid for 396MHz SD=2 only */
208#define NAND_STADDR 0x12000FFF /* physical address 0x20000000 */
203 209
204#endif /* __ASM_DB1X00_H */ 210#endif /* __ASM_DB1X00_H */
205 211
diff --git a/include/asm-mips/mach-ip32/mc146818rtc.h b/include/asm-mips/mach-ip32/mc146818rtc.h
index f5d780ff843f..c28ba8d84076 100644
--- a/include/asm-mips/mach-ip32/mc146818rtc.h
+++ b/include/asm-mips/mach-ip32/mc146818rtc.h
@@ -11,7 +11,6 @@
11#ifndef __ASM_MACH_IP32_MC146818RTC_H 11#ifndef __ASM_MACH_IP32_MC146818RTC_H
12#define __ASM_MACH_IP32_MC146818RTC_H 12#define __ASM_MACH_IP32_MC146818RTC_H
13 13
14#include <asm/io.h>
15#include <asm/ip32/mace.h> 14#include <asm/ip32/mace.h>
16 15
17#define RTC_PORT(x) (0x70 + (x)) 16#define RTC_PORT(x) (0x70 + (x))
@@ -26,8 +25,10 @@ static inline void CMOS_WRITE(unsigned char data, unsigned long addr)
26 mace->isa.rtc[addr << 8] = data; 25 mace->isa.rtc[addr << 8] = data;
27} 26}
28 27
29/* FIXME: Do it right. For now just assume that noone lives in 20th century 28/*
30 * and no O2 user in 22th century ;-) */ 29 * FIXME: Do it right. For now just assume that noone lives in 20th century
30 * and no O2 user in 22th century ;-)
31 */
31#define mc146818_decode_year(year) ((year) + 2000) 32#define mc146818_decode_year(year) ((year) + 2000)
32 33
33#define RTC_ALWAYS_BCD 0 34#define RTC_ALWAYS_BCD 0
diff --git a/include/asm-mips/mach-jmr3927/asm/ds1742.h b/include/asm-mips/mach-jmr3927/ds1742.h
index 134a4b6c334a..cff6192d4bdb 100644
--- a/include/asm-mips/mach-jmr3927/asm/ds1742.h
+++ b/include/asm-mips/mach-jmr3927/ds1742.h
@@ -5,12 +5,12 @@
5 * 5 *
6 * Copyright (C) 2003 by Ralf Baechle 6 * Copyright (C) 2003 by Ralf Baechle
7 */ 7 */
8#ifndef __ASM_MACH_JMR3927_ASM_DS1742_H 8#ifndef __ASM_MACH_JMR3927_DS1742_H
9#define __ASM_MACH_JMR3927_ASM_DS1742_H 9#define __ASM_MACH_JMR3927_DS1742_H
10 10
11#include <asm/jmr3927/jmr3927.h> 11#include <asm/jmr3927/jmr3927.h>
12 12
13#define rtc_read(reg) (jmr3927_nvram_in(addr)) 13#define rtc_read(reg) (jmr3927_nvram_in(addr))
14#define rtc_write(data, reg) (jmr3927_nvram_out((data),(reg))) 14#define rtc_write(data, reg) (jmr3927_nvram_out((data),(reg)))
15 15
16#endif /* __ASM_MACH_JMR3927_ASM_DS1742_H */ 16#endif /* __ASM_MACH_JMR3927_DS1742_H */
diff --git a/include/asm-mips/mach-pb1x00/pb1200.h b/include/asm-mips/mach-pb1x00/pb1200.h
index 9a3088b19bf3..409d443322c1 100644
--- a/include/asm-mips/mach-pb1x00/pb1200.h
+++ b/include/asm-mips/mach-pb1x00/pb1200.h
@@ -248,5 +248,8 @@ static BCSR * const bcsr = (BCSR *)BCSR_KSEG1_ADDR;
248#define BOARD_PC1_INT PB1200_PC1_INT 248#define BOARD_PC1_INT PB1200_PC1_INT
249#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1<<(8+(2*SOCKET))) 249#define BOARD_CARD_INSERTED(SOCKET) bcsr->sig_status & (1<<(8+(2*SOCKET)))
250 250
251/* Nand chip select */
252#define NAND_CS 1
253
251#endif /* __ASM_PB1200_H */ 254#endif /* __ASM_PB1200_H */
252 255
diff --git a/include/asm-mips/mach-pb1x00/pb1550.h b/include/asm-mips/mach-pb1x00/pb1550.h
index 431d6088ea96..9578ead11e8a 100644
--- a/include/asm-mips/mach-pb1x00/pb1550.h
+++ b/include/asm-mips/mach-pb1x00/pb1550.h
@@ -166,4 +166,11 @@ static BCSR * const bcsr = (BCSR *)BCSR_PHYS_ADDR;
166 ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \ 166 ((NAND_T_SU & 0xF) << NAND_T_SU_SHIFT) | \
167 ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT) 167 ((NAND_T_WH & 0xF) << NAND_T_WH_SHIFT)
168 168
169#define NAND_CS 1
170
171/* should be done by yamon */
172#define NAND_STCFG 0x00400005 /* 8-bit NAND */
173#define NAND_STTIME 0x00007774 /* valid for 396MHz SD=2 only */
174#define NAND_STADDR 0x12000FFF /* physical address 0x20000000 */
175
169#endif /* __ASM_PB1550_H */ 176#endif /* __ASM_PB1550_H */
diff --git a/include/asm-mips/mips-boards/seadint.h b/include/asm-mips/mips-boards/seadint.h
index c3dcfcb928b6..365c2a3c64f5 100644
--- a/include/asm-mips/mips-boards/seadint.h
+++ b/include/asm-mips/mips-boards/seadint.h
@@ -20,9 +20,14 @@
20#ifndef _MIPS_SEADINT_H 20#ifndef _MIPS_SEADINT_H
21#define _MIPS_SEADINT_H 21#define _MIPS_SEADINT_H
22 22
23#define SEADINT_UART0 2 23/*
24#define SEADINT_UART1 3 24 * Interrupts 0..7 are used for SEAD CPU interrupts
25 */
26#define MIPSCPU_INT_BASE 0
27
28#define MIPSCPU_INT_UART0 2
29#define MIPSCPU_INT_UART1 3
25 30
26extern void seadint_init(void); 31#define MIPSCPU_INT_CPUCTR 7
27 32
28#endif /* !(_MIPS_SEADINT_H) */ 33#endif /* !(_MIPS_SEADINT_H) */
diff --git a/include/asm-mips/signal.h b/include/asm-mips/signal.h
index 8ca539e80d87..6fe903e09c62 100644
--- a/include/asm-mips/signal.h
+++ b/include/asm-mips/signal.h
@@ -155,27 +155,6 @@ typedef struct sigaltstack {
155#ifdef __KERNEL__ 155#ifdef __KERNEL__
156#include <asm/sigcontext.h> 156#include <asm/sigcontext.h>
157 157
158/*
159 * The following break codes are or were in use for specific purposes in
160 * other MIPS operating systems. Linux/MIPS doesn't use all of them. The
161 * unused ones are here as placeholders; we might encounter them in
162 * non-Linux/MIPS object files or make use of them in the future.
163 */
164#define BRK_USERBP 0 /* User bp (used by debuggers) */
165#define BRK_KERNELBP 1 /* Break in the kernel */
166#define BRK_ABORT 2 /* Sometimes used by abort(3) to SIGIOT */
167#define BRK_BD_TAKEN 3 /* For bd slot emulation - not implemented */
168#define BRK_BD_NOTTAKEN 4 /* For bd slot emulation - not implemented */
169#define BRK_SSTEPBP 5 /* User bp (used by debuggers) */
170#define BRK_OVERFLOW 6 /* Overflow check */
171#define BRK_DIVZERO 7 /* Divide by zero check */
172#define BRK_RANGE 8 /* Range error check */
173#define BRK_STACKOVERFLOW 9 /* For Ada stackchecking */
174#define BRK_NORLD 10 /* No rld found - not used by Linux/MIPS */
175#define _BRK_THREADBP 11 /* For threads, user bp (used by debuggers) */
176#define BRK_MULOVF 1023 /* Multiply overflow */
177#define BRK_BUG 512 /* Used by BUG() */
178
179#define ptrace_signal_deliver(regs, cookie) do { } while (0) 158#define ptrace_signal_deliver(regs, cookie) do { } while (0)
180 159
181#endif /* __KERNEL__ */ 160#endif /* __KERNEL__ */
diff --git a/include/asm-parisc/irq.h b/include/asm-parisc/irq.h
index f876bdf22056..b0a30e2c9813 100644
--- a/include/asm-parisc/irq.h
+++ b/include/asm-parisc/irq.h
@@ -8,6 +8,7 @@
8#define _ASM_PARISC_IRQ_H 8#define _ASM_PARISC_IRQ_H
9 9
10#include <linux/config.h> 10#include <linux/config.h>
11#include <linux/cpumask.h>
11#include <asm/types.h> 12#include <asm/types.h>
12 13
13#define NO_IRQ (-1) 14#define NO_IRQ (-1)
@@ -49,10 +50,10 @@ extern int txn_alloc_irq(unsigned int nbits);
49extern int txn_claim_irq(int); 50extern int txn_claim_irq(int);
50extern unsigned int txn_alloc_data(unsigned int); 51extern unsigned int txn_alloc_data(unsigned int);
51extern unsigned long txn_alloc_addr(unsigned int); 52extern unsigned long txn_alloc_addr(unsigned int);
53extern unsigned long txn_affinity_addr(unsigned int irq, int cpu);
52 54
53extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *); 55extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *);
54 56extern int cpu_check_affinity(unsigned int irq, cpumask_t *dest);
55extern int cpu_claim_irq(unsigned int irq, struct hw_interrupt_type *, void *);
56 57
57/* soft power switch support (power.c) */ 58/* soft power switch support (power.c) */
58extern struct tasklet_struct power_tasklet; 59extern struct tasklet_struct power_tasklet;
diff --git a/include/asm-parisc/smp.h b/include/asm-parisc/smp.h
index 9413f67a540b..dbdbd2e9fdf9 100644
--- a/include/asm-parisc/smp.h
+++ b/include/asm-parisc/smp.h
@@ -29,6 +29,7 @@ extern cpumask_t cpu_online_map;
29#define cpu_logical_map(cpu) (cpu) 29#define cpu_logical_map(cpu) (cpu)
30 30
31extern void smp_send_reschedule(int cpu); 31extern void smp_send_reschedule(int cpu);
32extern void smp_send_all_nop(void);
32 33
33#endif /* !ASSEMBLY */ 34#endif /* !ASSEMBLY */
34 35
@@ -53,7 +54,11 @@ extern unsigned long cpu_present_mask;
53 54
54#define raw_smp_processor_id() (current_thread_info()->cpu) 55#define raw_smp_processor_id() (current_thread_info()->cpu)
55 56
56#endif /* CONFIG_SMP */ 57#else /* CONFIG_SMP */
58
59static inline void smp_send_all_nop(void) { return; }
60
61#endif
57 62
58#define NO_PROC_ID 0xFF /* No processor magic marker */ 63#define NO_PROC_ID 0xFF /* No processor magic marker */
59#define ANY_PROC_ID 0xFF /* Any processor magic marker */ 64#define ANY_PROC_ID 0xFF /* Any processor magic marker */
diff --git a/include/asm-parisc/spinlock.h b/include/asm-parisc/spinlock.h
index 7c3f406a746a..16c2ac075fc5 100644
--- a/include/asm-parisc/spinlock.h
+++ b/include/asm-parisc/spinlock.h
@@ -11,18 +11,25 @@ static inline int __raw_spin_is_locked(raw_spinlock_t *x)
11 return *a == 0; 11 return *a == 0;
12} 12}
13 13
14#define __raw_spin_lock_flags(lock, flags) __raw_spin_lock(lock) 14#define __raw_spin_lock(lock) __raw_spin_lock_flags(lock, 0)
15#define __raw_spin_unlock_wait(x) \ 15#define __raw_spin_unlock_wait(x) \
16 do { cpu_relax(); } while (__raw_spin_is_locked(x)) 16 do { cpu_relax(); } while (__raw_spin_is_locked(x))
17 17
18static inline void __raw_spin_lock(raw_spinlock_t *x) 18static inline void __raw_spin_lock_flags(raw_spinlock_t *x,
19 unsigned long flags)
19{ 20{
20 volatile unsigned int *a; 21 volatile unsigned int *a;
21 22
22 mb(); 23 mb();
23 a = __ldcw_align(x); 24 a = __ldcw_align(x);
24 while (__ldcw(a) == 0) 25 while (__ldcw(a) == 0)
25 while (*a == 0); 26 while (*a == 0)
27 if (flags & PSW_SM_I) {
28 local_irq_enable();
29 cpu_relax();
30 local_irq_disable();
31 } else
32 cpu_relax();
26 mb(); 33 mb();
27} 34}
28 35
@@ -60,26 +67,20 @@ static inline int __raw_spin_trylock(raw_spinlock_t *x)
60 67
61static __inline__ void __raw_read_lock(raw_rwlock_t *rw) 68static __inline__ void __raw_read_lock(raw_rwlock_t *rw)
62{ 69{
63 unsigned long flags;
64 local_irq_save(flags);
65 __raw_spin_lock(&rw->lock); 70 __raw_spin_lock(&rw->lock);
66 71
67 rw->counter++; 72 rw->counter++;
68 73
69 __raw_spin_unlock(&rw->lock); 74 __raw_spin_unlock(&rw->lock);
70 local_irq_restore(flags);
71} 75}
72 76
73static __inline__ void __raw_read_unlock(raw_rwlock_t *rw) 77static __inline__ void __raw_read_unlock(raw_rwlock_t *rw)
74{ 78{
75 unsigned long flags;
76 local_irq_save(flags);
77 __raw_spin_lock(&rw->lock); 79 __raw_spin_lock(&rw->lock);
78 80
79 rw->counter--; 81 rw->counter--;
80 82
81 __raw_spin_unlock(&rw->lock); 83 __raw_spin_unlock(&rw->lock);
82 local_irq_restore(flags);
83} 84}
84 85
85/* write_lock is less trivial. We optimistically grab the lock and check 86/* write_lock is less trivial. We optimistically grab the lock and check
diff --git a/include/asm-parisc/tlbflush.h b/include/asm-parisc/tlbflush.h
index e97aa8d1eff5..c9ec39c6fc6c 100644
--- a/include/asm-parisc/tlbflush.h
+++ b/include/asm-parisc/tlbflush.h
@@ -12,21 +12,15 @@
12 * N class systems, only one PxTLB inter processor broadcast can be 12 * N class systems, only one PxTLB inter processor broadcast can be
13 * active at any one time on the Merced bus. This tlb purge 13 * active at any one time on the Merced bus. This tlb purge
14 * synchronisation is fairly lightweight and harmless so we activate 14 * synchronisation is fairly lightweight and harmless so we activate
15 * it on all SMP systems not just the N class. */ 15 * it on all SMP systems not just the N class. We also need to have
16#ifdef CONFIG_SMP 16 * preemption disabled on uniprocessor machines, and spin_lock does that
17 * nicely.
18 */
17extern spinlock_t pa_tlb_lock; 19extern spinlock_t pa_tlb_lock;
18 20
19#define purge_tlb_start(x) spin_lock(&pa_tlb_lock) 21#define purge_tlb_start(x) spin_lock(&pa_tlb_lock)
20#define purge_tlb_end(x) spin_unlock(&pa_tlb_lock) 22#define purge_tlb_end(x) spin_unlock(&pa_tlb_lock)
21 23
22#else
23
24#define purge_tlb_start(x) do { } while(0)
25#define purge_tlb_end(x) do { } while (0)
26
27#endif
28
29
30extern void flush_tlb_all(void); 24extern void flush_tlb_all(void);
31 25
32/* 26/*
@@ -88,7 +82,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
88 if (npages >= 512) /* 2MB of space: arbitrary, should be tuned */ 82 if (npages >= 512) /* 2MB of space: arbitrary, should be tuned */
89 flush_tlb_all(); 83 flush_tlb_all();
90 else { 84 else {
91 preempt_disable();
92 mtsp(vma->vm_mm->context,1); 85 mtsp(vma->vm_mm->context,1);
93 purge_tlb_start(); 86 purge_tlb_start();
94 if (split_tlb) { 87 if (split_tlb) {
@@ -102,7 +95,6 @@ static inline void flush_tlb_range(struct vm_area_struct *vma,
102 pdtlb(start); 95 pdtlb(start);
103 start += PAGE_SIZE; 96 start += PAGE_SIZE;
104 } 97 }
105 preempt_enable();
106 } 98 }
107 purge_tlb_end(); 99 purge_tlb_end();
108 } 100 }
diff --git a/include/asm-powerpc/page_64.h b/include/asm-powerpc/page_64.h
index c16f106b5373..1e6e7846824f 100644
--- a/include/asm-powerpc/page_64.h
+++ b/include/asm-powerpc/page_64.h
@@ -86,7 +86,11 @@ static inline void copy_page(void *to, void *from)
86extern u64 ppc64_pft_size; 86extern u64 ppc64_pft_size;
87 87
88/* Large pages size */ 88/* Large pages size */
89#ifdef CONFIG_HUGETLB_PAGE
89extern unsigned int HPAGE_SHIFT; 90extern unsigned int HPAGE_SHIFT;
91#else
92#define HPAGE_SHIFT PAGE_SHIFT
93#endif
90#define HPAGE_SIZE ((1UL) << HPAGE_SHIFT) 94#define HPAGE_SIZE ((1UL) << HPAGE_SHIFT)
91#define HPAGE_MASK (~(HPAGE_SIZE - 1)) 95#define HPAGE_MASK (~(HPAGE_SIZE - 1))
92#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT) 96#define HUGETLB_PAGE_ORDER (HPAGE_SHIFT - PAGE_SHIFT)
diff --git a/include/asm-ppc/cpm2.h b/include/asm-ppc/cpm2.h
index 43d2ebbc7748..b638b87cebe3 100644
--- a/include/asm-ppc/cpm2.h
+++ b/include/asm-ppc/cpm2.h
@@ -1091,5 +1091,7 @@ typedef struct im_idma {
1091#define CPM_IMMR_OFFSET 0x101a8 1091#define CPM_IMMR_OFFSET 0x101a8
1092#endif 1092#endif
1093 1093
1094#define FCC_PSMR_RMII ((uint)0x00020000) /* Use RMII interface */
1095
1094#endif /* __CPM2__ */ 1096#endif /* __CPM2__ */
1095#endif /* __KERNEL__ */ 1097#endif /* __KERNEL__ */
diff --git a/include/linux/cciss_ioctl.h b/include/linux/cciss_ioctl.h
index 424d5e622b43..6e27f42e3a57 100644
--- a/include/linux/cciss_ioctl.h
+++ b/include/linux/cciss_ioctl.h
@@ -10,8 +10,8 @@
10typedef struct _cciss_pci_info_struct 10typedef struct _cciss_pci_info_struct
11{ 11{
12 unsigned char bus; 12 unsigned char bus;
13 unsigned short domain;
14 unsigned char dev_fn; 13 unsigned char dev_fn;
14 unsigned short domain;
15 __u32 board_id; 15 __u32 board_id;
16} cciss_pci_info_struct; 16} cciss_pci_info_struct;
17 17
diff --git a/include/linux/ds17287rtc.h b/include/linux/ds17287rtc.h
new file mode 100644
index 000000000000..c281ba42e28f
--- /dev/null
+++ b/include/linux/ds17287rtc.h
@@ -0,0 +1,67 @@
1/*
2 * ds17287rtc.h - register definitions for the ds1728[57] RTC / CMOS RAM
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * (C) 2003 Guido Guenther <agx@sigxcpu.org>
9 */
10#ifndef __LINUX_DS17287RTC_H
11#define __LINUX_DS17287RTC_H
12
13#include <linux/rtc.h> /* get the user-level API */
14#include <linux/spinlock.h> /* spinlock_t */
15#include <linux/mc146818rtc.h>
16
17/* Register A */
18#define DS_REGA_DV2 0x40 /* countdown chain */
19#define DS_REGA_DV1 0x20 /* oscillator enable */
20#define DS_REGA_DV0 0x10 /* bank select */
21
22/* bank 1 registers */
23#define DS_B1_MODEL 0x40 /* model number byte */
24#define DS_B1_SN1 0x41 /* serial number byte 1 */
25#define DS_B1_SN2 0x42 /* serial number byte 2 */
26#define DS_B1_SN3 0x43 /* serial number byte 3 */
27#define DS_B1_SN4 0x44 /* serial number byte 4 */
28#define DS_B1_SN5 0x45 /* serial number byte 5 */
29#define DS_B1_SN6 0x46 /* serial number byte 6 */
30#define DS_B1_CRC 0x47 /* CRC byte */
31#define DS_B1_CENTURY 0x48 /* Century byte */
32#define DS_B1_DALARM 0x49 /* date alarm */
33#define DS_B1_XCTRL4A 0x4a /* extendec control register 4a */
34#define DS_B1_XCTRL4B 0x4b /* extendec control register 4b */
35#define DS_B1_RTCADDR2 0x4e /* rtc address 2 */
36#define DS_B1_RTCADDR3 0x4f /* rtc address 3 */
37#define DS_B1_RAMLSB 0x50 /* extended ram LSB */
38#define DS_B1_RAMMSB 0x51 /* extended ram MSB */
39#define DS_B1_RAMDPORT 0x53 /* extended ram data port */
40
41/* register details */
42/* extended control register 4a */
43#define DS_XCTRL4A_VRT2 0x80 /* valid ram and time */
44#define DS_XCTRL4A_INCR 0x40 /* increment progress status */
45#define DS_XCTRL4A_BME 0x20 /* burst mode enable */
46#define DS_XCTRL4A_PAB 0x08 /* power active bar ctrl */
47#define DS_XCTRL4A_RF 0x04 /* ram clear flag */
48#define DS_XCTRL4A_WF 0x02 /* wake up alarm flag */
49#define DS_XCTRL4A_KF 0x01 /* kickstart flag */
50
51/* interrupt causes */
52#define DS_XCTRL4A_IFS (DS_XCTRL4A_RF|DS_XCTRL4A_WF|DS_XCTRL4A_KF)
53
54/* extended control register 4b */
55#define DS_XCTRL4B_ABE 0x80 /* auxiliary battery enable */
56#define DS_XCTRL4B_E32K 0x40 /* enable 32.768 kHz Output */
57#define DS_XCTRL4B_CS 0x20 /* crystal select */
58#define DS_XCTRL4B_RCE 0x10 /* ram clear enable */
59#define DS_XCTRL4B_PRS 0x08 /* PAB resec select */
60#define DS_XCTRL4B_RIE 0x04 /* ram clear interrupt enable */
61#define DS_XCTRL4B_WFE 0x02 /* wake up alarm interrupt enable */
62#define DS_XCTRL4B_KFE 0x01 /* kickstart interrupt enable */
63
64/* interrupt enable bits */
65#define DS_XCTRL4B_IFES (DS_XCTRL4B_RIE|DS_XCTRL4B_WFE|DS_XCTRL4B_KFE)
66
67#endif /* __LINUX_DS17287RTC_H */
diff --git a/include/linux/ds1742rtc.h b/include/linux/ds1742rtc.h
new file mode 100644
index 000000000000..a83cdd1cafc9
--- /dev/null
+++ b/include/linux/ds1742rtc.h
@@ -0,0 +1,53 @@
1/*
2 * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
3 *
4 * Copyright (C) 1999-2001 Toshiba Corporation
5 * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org)
6 *
7 * Permission is hereby granted to copy, modify and redistribute this code
8 * in terms of the GNU Library General Public License, Version 2 or later,
9 * at your option.
10 */
11#ifndef __LINUX_DS1742RTC_H
12#define __LINUX_DS1742RTC_H
13
14#include <asm/ds1742.h>
15
16#define RTC_BRAM_SIZE 0x800
17#define RTC_OFFSET 0x7f8
18
19/*
20 * Register summary
21 */
22#define RTC_CONTROL (RTC_OFFSET + 0)
23#define RTC_CENTURY (RTC_OFFSET + 0)
24#define RTC_SECONDS (RTC_OFFSET + 1)
25#define RTC_MINUTES (RTC_OFFSET + 2)
26#define RTC_HOURS (RTC_OFFSET + 3)
27#define RTC_DAY (RTC_OFFSET + 4)
28#define RTC_DATE (RTC_OFFSET + 5)
29#define RTC_MONTH (RTC_OFFSET + 6)
30#define RTC_YEAR (RTC_OFFSET + 7)
31
32#define RTC_CENTURY_MASK 0x3f
33#define RTC_SECONDS_MASK 0x7f
34#define RTC_DAY_MASK 0x07
35
36/*
37 * Bits in the Control/Century register
38 */
39#define RTC_WRITE 0x80
40#define RTC_READ 0x40
41
42/*
43 * Bits in the Seconds register
44 */
45#define RTC_STOP 0x80
46
47/*
48 * Bits in the Day register
49 */
50#define RTC_BATT_FLAG 0x80
51#define RTC_FREQ_TEST 0x40
52
53#endif /* __LINUX_DS1742RTC_H */
diff --git a/include/linux/ide.h b/include/linux/ide.h
index ac8b25fa6506..e99019057ba6 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -1089,9 +1089,11 @@ enum {
1089 1089
1090/* 1090/*
1091 * Subdrivers support. 1091 * Subdrivers support.
1092 *
1093 * The gendriver.owner field should be set to the module owner of this driver.
1094 * The gendriver.name field should be set to the name of this driver
1092 */ 1095 */
1093typedef struct ide_driver_s { 1096typedef struct ide_driver_s {
1094 struct module *owner;
1095 const char *version; 1097 const char *version;
1096 u8 media; 1098 u8 media;
1097 unsigned supports_dsc_overlap : 1; 1099 unsigned supports_dsc_overlap : 1;
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 1013a42d10b1..0986d19be0b7 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -940,7 +940,9 @@ unsigned long max_sane_readahead(unsigned long nr);
940 940
941/* Do stack extension */ 941/* Do stack extension */
942extern int expand_stack(struct vm_area_struct *vma, unsigned long address); 942extern int expand_stack(struct vm_area_struct *vma, unsigned long address);
943#ifdef CONFIG_IA64
943extern int expand_upwards(struct vm_area_struct *vma, unsigned long address); 944extern int expand_upwards(struct vm_area_struct *vma, unsigned long address);
945#endif
944 946
945/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ 947/* Look up the first VMA which satisfies addr < vm_end, NULL if none. */
946extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); 948extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr);
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h
index d4c1c8fd2925..7b387faedb4d 100644
--- a/include/linux/pci_ids.h
+++ b/include/linux/pci_ids.h
@@ -1401,6 +1401,7 @@
1401#define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334 1401#define PCI_SUBDEVICE_ID_KEYSPAN_SX2 0x5334
1402 1402
1403#define PCI_VENDOR_ID_MARVELL 0x11ab 1403#define PCI_VENDOR_ID_MARVELL 0x11ab
1404#define PCI_DEVICE_ID_MARVELL_GT64111 0x4146
1404#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430 1405#define PCI_DEVICE_ID_MARVELL_GT64260 0x6430
1405#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460 1406#define PCI_DEVICE_ID_MARVELL_MV64360 0x6460
1406#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480 1407#define PCI_DEVICE_ID_MARVELL_MV64460 0x6480
diff --git a/include/net/ieee80211.h b/include/net/ieee80211.h
index b93fd8c1d884..cde2f4f4f501 100644
--- a/include/net/ieee80211.h
+++ b/include/net/ieee80211.h
@@ -1042,7 +1042,7 @@ static inline u8 *ieee80211_get_payload(struct ieee80211_hdr *hdr)
1042 case IEEE80211_4ADDR_LEN: 1042 case IEEE80211_4ADDR_LEN:
1043 return ((struct ieee80211_hdr_4addr *)hdr)->payload; 1043 return ((struct ieee80211_hdr_4addr *)hdr)->payload;
1044 } 1044 }
1045 1045 return NULL;
1046} 1046}
1047 1047
1048static inline int ieee80211_is_ofdm_rate(u8 rate) 1048static inline int ieee80211_is_ofdm_rate(u8 rate)
diff --git a/kernel/rcutorture.c b/kernel/rcutorture.c
index eb6719c50b4e..88c28d476550 100644
--- a/kernel/rcutorture.c
+++ b/kernel/rcutorture.c
@@ -80,6 +80,7 @@ struct rcu_torture {
80 struct rcu_head rtort_rcu; 80 struct rcu_head rtort_rcu;
81 int rtort_pipe_count; 81 int rtort_pipe_count;
82 struct list_head rtort_free; 82 struct list_head rtort_free;
83 int rtort_mbtest;
83}; 84};
84 85
85static int fullstop = 0; /* stop generating callbacks at test end. */ 86static int fullstop = 0; /* stop generating callbacks at test end. */
@@ -96,6 +97,8 @@ static atomic_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
96atomic_t n_rcu_torture_alloc; 97atomic_t n_rcu_torture_alloc;
97atomic_t n_rcu_torture_alloc_fail; 98atomic_t n_rcu_torture_alloc_fail;
98atomic_t n_rcu_torture_free; 99atomic_t n_rcu_torture_free;
100atomic_t n_rcu_torture_mberror;
101atomic_t n_rcu_torture_error;
99 102
100/* 103/*
101 * Allocate an element from the rcu_tortures pool. 104 * Allocate an element from the rcu_tortures pool.
@@ -145,9 +148,10 @@ rcu_torture_cb(struct rcu_head *p)
145 if (i > RCU_TORTURE_PIPE_LEN) 148 if (i > RCU_TORTURE_PIPE_LEN)
146 i = RCU_TORTURE_PIPE_LEN; 149 i = RCU_TORTURE_PIPE_LEN;
147 atomic_inc(&rcu_torture_wcount[i]); 150 atomic_inc(&rcu_torture_wcount[i]);
148 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) 151 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
152 rp->rtort_mbtest = 0;
149 rcu_torture_free(rp); 153 rcu_torture_free(rp);
150 else 154 } else
151 call_rcu(p, rcu_torture_cb); 155 call_rcu(p, rcu_torture_cb);
152} 156}
153 157
@@ -206,6 +210,7 @@ rcu_torture_writer(void *arg)
206 rp->rtort_pipe_count = 0; 210 rp->rtort_pipe_count = 0;
207 udelay(rcu_random(&rand) & 0x3ff); 211 udelay(rcu_random(&rand) & 0x3ff);
208 old_rp = rcu_torture_current; 212 old_rp = rcu_torture_current;
213 rp->rtort_mbtest = 1;
209 rcu_assign_pointer(rcu_torture_current, rp); 214 rcu_assign_pointer(rcu_torture_current, rp);
210 smp_wmb(); 215 smp_wmb();
211 if (old_rp != NULL) { 216 if (old_rp != NULL) {
@@ -252,6 +257,8 @@ rcu_torture_reader(void *arg)
252 schedule_timeout_interruptible(HZ); 257 schedule_timeout_interruptible(HZ);
253 continue; 258 continue;
254 } 259 }
260 if (p->rtort_mbtest == 0)
261 atomic_inc(&n_rcu_torture_mberror);
255 udelay(rcu_random(&rand) & 0x7f); 262 udelay(rcu_random(&rand) & 0x7f);
256 preempt_disable(); 263 preempt_disable();
257 pipe_count = p->rtort_pipe_count; 264 pipe_count = p->rtort_pipe_count;
@@ -300,16 +307,22 @@ rcu_torture_printk(char *page)
300 } 307 }
301 cnt += sprintf(&page[cnt], "rcutorture: "); 308 cnt += sprintf(&page[cnt], "rcutorture: ");
302 cnt += sprintf(&page[cnt], 309 cnt += sprintf(&page[cnt],
303 "rtc: %p ver: %ld tfle: %d rta: %d rtaf: %d rtf: %d", 310 "rtc: %p ver: %ld tfle: %d rta: %d rtaf: %d rtf: %d "
311 "rtmbe: %d",
304 rcu_torture_current, 312 rcu_torture_current,
305 rcu_torture_current_version, 313 rcu_torture_current_version,
306 list_empty(&rcu_torture_freelist), 314 list_empty(&rcu_torture_freelist),
307 atomic_read(&n_rcu_torture_alloc), 315 atomic_read(&n_rcu_torture_alloc),
308 atomic_read(&n_rcu_torture_alloc_fail), 316 atomic_read(&n_rcu_torture_alloc_fail),
309 atomic_read(&n_rcu_torture_free)); 317 atomic_read(&n_rcu_torture_free),
318 atomic_read(&n_rcu_torture_mberror));
319 if (atomic_read(&n_rcu_torture_mberror) != 0)
320 cnt += sprintf(&page[cnt], " !!!");
310 cnt += sprintf(&page[cnt], "\nrcutorture: "); 321 cnt += sprintf(&page[cnt], "\nrcutorture: ");
311 if (i > 1) 322 if (i > 1) {
312 cnt += sprintf(&page[cnt], "!!! "); 323 cnt += sprintf(&page[cnt], "!!! ");
324 atomic_inc(&n_rcu_torture_error);
325 }
313 cnt += sprintf(&page[cnt], "Reader Pipe: "); 326 cnt += sprintf(&page[cnt], "Reader Pipe: ");
314 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) 327 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
315 cnt += sprintf(&page[cnt], " %ld", pipesummary[i]); 328 cnt += sprintf(&page[cnt], " %ld", pipesummary[i]);
@@ -400,7 +413,9 @@ rcu_torture_cleanup(void)
400 for (i = 0; i < RCU_TORTURE_PIPE_LEN; i++) 413 for (i = 0; i < RCU_TORTURE_PIPE_LEN; i++)
401 synchronize_rcu(); 414 synchronize_rcu();
402 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */ 415 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
403 PRINTK_STRING("--- End of test"); 416 printk(KERN_ALERT TORTURE_FLAG
417 "--- End of test: %s\n",
418 atomic_read(&n_rcu_torture_error) == 0 ? "SUCCESS" : "FAILURE");
404} 419}
405 420
406static int 421static int
@@ -425,6 +440,7 @@ rcu_torture_init(void)
425 440
426 INIT_LIST_HEAD(&rcu_torture_freelist); 441 INIT_LIST_HEAD(&rcu_torture_freelist);
427 for (i = 0; i < sizeof(rcu_tortures) / sizeof(rcu_tortures[0]); i++) { 442 for (i = 0; i < sizeof(rcu_tortures) / sizeof(rcu_tortures[0]); i++) {
443 rcu_tortures[i].rtort_mbtest = 0;
428 list_add_tail(&rcu_tortures[i].rtort_free, 444 list_add_tail(&rcu_tortures[i].rtort_free,
429 &rcu_torture_freelist); 445 &rcu_torture_freelist);
430 } 446 }
@@ -436,6 +452,8 @@ rcu_torture_init(void)
436 atomic_set(&n_rcu_torture_alloc, 0); 452 atomic_set(&n_rcu_torture_alloc, 0);
437 atomic_set(&n_rcu_torture_alloc_fail, 0); 453 atomic_set(&n_rcu_torture_alloc_fail, 0);
438 atomic_set(&n_rcu_torture_free, 0); 454 atomic_set(&n_rcu_torture_free, 0);
455 atomic_set(&n_rcu_torture_mberror, 0);
456 atomic_set(&n_rcu_torture_error, 0);
439 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) 457 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
440 atomic_set(&rcu_torture_wcount[i], 0); 458 atomic_set(&rcu_torture_wcount[i], 0);
441 for_each_cpu(cpu) { 459 for_each_cpu(cpu) {
diff --git a/mm/mmap.c b/mm/mmap.c
index 6c997b159600..4f8def03428c 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -1501,7 +1501,7 @@ static int acct_stack_growth(struct vm_area_struct * vma, unsigned long size, un
1501 * PA-RISC uses this for its stack; IA64 for its Register Backing Store. 1501 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
1502 * vma is the last one with address > vma->vm_end. Have to extend vma. 1502 * vma is the last one with address > vma->vm_end. Have to extend vma.
1503 */ 1503 */
1504#ifdef CONFIG_STACK_GROWSUP 1504#ifndef CONFIG_IA64
1505static inline 1505static inline
1506#endif 1506#endif
1507int expand_upwards(struct vm_area_struct *vma, unsigned long address) 1507int expand_upwards(struct vm_area_struct *vma, unsigned long address)
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 74138c9a22b9..0166ea15c9ee 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -750,6 +750,7 @@ int clear_page_dirty_for_io(struct page *page)
750 } 750 }
751 return TestClearPageDirty(page); 751 return TestClearPageDirty(page);
752} 752}
753EXPORT_SYMBOL(clear_page_dirty_for_io);
753 754
754int test_clear_page_writeback(struct page *page) 755int test_clear_page_writeback(struct page *page)
755{ 756{
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 104e69ca55e0..bd4de592dc23 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -845,21 +845,22 @@ __alloc_pages(gfp_t gfp_mask, unsigned int order,
845 845
846 might_sleep_if(wait); 846 might_sleep_if(wait);
847 847
848restart:
848 z = zonelist->zones; /* the list of zones suitable for gfp_mask */ 849 z = zonelist->zones; /* the list of zones suitable for gfp_mask */
849 850
850 if (unlikely(*z == NULL)) { 851 if (unlikely(*z == NULL)) {
851 /* Should this ever happen?? */ 852 /* Should this ever happen?? */
852 return NULL; 853 return NULL;
853 } 854 }
854restart: 855
855 page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order, 856 page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, order,
856 zonelist, ALLOC_CPUSET); 857 zonelist, ALLOC_CPUSET);
857 if (page) 858 if (page)
858 goto got_pg; 859 goto got_pg;
859 860
860 do 861 do {
861 wakeup_kswapd(*z, order); 862 wakeup_kswapd(*z, order);
862 while (*(++z)); 863 } while (*(++z));
863 864
864 /* 865 /*
865 * OK, we're below the kswapd watermark and have kicked background 866 * OK, we're below the kswapd watermark and have kicked background
diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index e7d26d9943c2..8ce0ce2ee48e 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -71,7 +71,7 @@ struct ipfrag_skb_cb
71 71
72/* Describe an entry in the "incomplete datagrams" queue. */ 72/* Describe an entry in the "incomplete datagrams" queue. */
73struct ipq { 73struct ipq {
74 struct ipq *next; /* linked list pointers */ 74 struct hlist_node list;
75 struct list_head lru_list; /* lru list member */ 75 struct list_head lru_list; /* lru list member */
76 u32 user; 76 u32 user;
77 u32 saddr; 77 u32 saddr;
@@ -89,7 +89,6 @@ struct ipq {
89 spinlock_t lock; 89 spinlock_t lock;
90 atomic_t refcnt; 90 atomic_t refcnt;
91 struct timer_list timer; /* when will this queue expire? */ 91 struct timer_list timer; /* when will this queue expire? */
92 struct ipq **pprev;
93 int iif; 92 int iif;
94 struct timeval stamp; 93 struct timeval stamp;
95}; 94};
@@ -99,7 +98,7 @@ struct ipq {
99#define IPQ_HASHSZ 64 98#define IPQ_HASHSZ 64
100 99
101/* Per-bucket lock is easy to add now. */ 100/* Per-bucket lock is easy to add now. */
102static struct ipq *ipq_hash[IPQ_HASHSZ]; 101static struct hlist_head ipq_hash[IPQ_HASHSZ];
103static DEFINE_RWLOCK(ipfrag_lock); 102static DEFINE_RWLOCK(ipfrag_lock);
104static u32 ipfrag_hash_rnd; 103static u32 ipfrag_hash_rnd;
105static LIST_HEAD(ipq_lru_list); 104static LIST_HEAD(ipq_lru_list);
@@ -107,9 +106,7 @@ int ip_frag_nqueues = 0;
107 106
108static __inline__ void __ipq_unlink(struct ipq *qp) 107static __inline__ void __ipq_unlink(struct ipq *qp)
109{ 108{
110 if(qp->next) 109 hlist_del(&qp->list);
111 qp->next->pprev = qp->pprev;
112 *qp->pprev = qp->next;
113 list_del(&qp->lru_list); 110 list_del(&qp->lru_list);
114 ip_frag_nqueues--; 111 ip_frag_nqueues--;
115} 112}
@@ -139,27 +136,18 @@ static void ipfrag_secret_rebuild(unsigned long dummy)
139 get_random_bytes(&ipfrag_hash_rnd, sizeof(u32)); 136 get_random_bytes(&ipfrag_hash_rnd, sizeof(u32));
140 for (i = 0; i < IPQ_HASHSZ; i++) { 137 for (i = 0; i < IPQ_HASHSZ; i++) {
141 struct ipq *q; 138 struct ipq *q;
139 struct hlist_node *p, *n;
142 140
143 q = ipq_hash[i]; 141 hlist_for_each_entry_safe(q, p, n, &ipq_hash[i], list) {
144 while (q) {
145 struct ipq *next = q->next;
146 unsigned int hval = ipqhashfn(q->id, q->saddr, 142 unsigned int hval = ipqhashfn(q->id, q->saddr,
147 q->daddr, q->protocol); 143 q->daddr, q->protocol);
148 144
149 if (hval != i) { 145 if (hval != i) {
150 /* Unlink. */ 146 hlist_del(&q->list);
151 if (q->next)
152 q->next->pprev = q->pprev;
153 *q->pprev = q->next;
154 147
155 /* Relink to new hash chain. */ 148 /* Relink to new hash chain. */
156 if ((q->next = ipq_hash[hval]) != NULL) 149 hlist_add_head(&q->list, &ipq_hash[hval]);
157 q->next->pprev = &q->next;
158 ipq_hash[hval] = q;
159 q->pprev = &ipq_hash[hval];
160 } 150 }
161
162 q = next;
163 } 151 }
164 } 152 }
165 write_unlock(&ipfrag_lock); 153 write_unlock(&ipfrag_lock);
@@ -310,14 +298,16 @@ out:
310static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in) 298static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in)
311{ 299{
312 struct ipq *qp; 300 struct ipq *qp;
313 301#ifdef CONFIG_SMP
302 struct hlist_node *n;
303#endif
314 write_lock(&ipfrag_lock); 304 write_lock(&ipfrag_lock);
315#ifdef CONFIG_SMP 305#ifdef CONFIG_SMP
316 /* With SMP race we have to recheck hash table, because 306 /* With SMP race we have to recheck hash table, because
317 * such entry could be created on other cpu, while we 307 * such entry could be created on other cpu, while we
318 * promoted read lock to write lock. 308 * promoted read lock to write lock.
319 */ 309 */
320 for(qp = ipq_hash[hash]; qp; qp = qp->next) { 310 hlist_for_each_entry(qp, n, &ipq_hash[hash], list) {
321 if(qp->id == qp_in->id && 311 if(qp->id == qp_in->id &&
322 qp->saddr == qp_in->saddr && 312 qp->saddr == qp_in->saddr &&
323 qp->daddr == qp_in->daddr && 313 qp->daddr == qp_in->daddr &&
@@ -337,10 +327,7 @@ static struct ipq *ip_frag_intern(unsigned int hash, struct ipq *qp_in)
337 atomic_inc(&qp->refcnt); 327 atomic_inc(&qp->refcnt);
338 328
339 atomic_inc(&qp->refcnt); 329 atomic_inc(&qp->refcnt);
340 if((qp->next = ipq_hash[hash]) != NULL) 330 hlist_add_head(&qp->list, &ipq_hash[hash]);
341 qp->next->pprev = &qp->next;
342 ipq_hash[hash] = qp;
343 qp->pprev = &ipq_hash[hash];
344 INIT_LIST_HEAD(&qp->lru_list); 331 INIT_LIST_HEAD(&qp->lru_list);
345 list_add_tail(&qp->lru_list, &ipq_lru_list); 332 list_add_tail(&qp->lru_list, &ipq_lru_list);
346 ip_frag_nqueues++; 333 ip_frag_nqueues++;
@@ -392,9 +379,10 @@ static inline struct ipq *ip_find(struct iphdr *iph, u32 user)
392 __u8 protocol = iph->protocol; 379 __u8 protocol = iph->protocol;
393 unsigned int hash = ipqhashfn(id, saddr, daddr, protocol); 380 unsigned int hash = ipqhashfn(id, saddr, daddr, protocol);
394 struct ipq *qp; 381 struct ipq *qp;
382 struct hlist_node *n;
395 383
396 read_lock(&ipfrag_lock); 384 read_lock(&ipfrag_lock);
397 for(qp = ipq_hash[hash]; qp; qp = qp->next) { 385 hlist_for_each_entry(qp, n, &ipq_hash[hash], list) {
398 if(qp->id == id && 386 if(qp->id == id &&
399 qp->saddr == saddr && 387 qp->saddr == saddr &&
400 qp->daddr == daddr && 388 qp->daddr == daddr &&
diff --git a/net/ipv4/netfilter/ip_conntrack_ftp.c b/net/ipv4/netfilter/ip_conntrack_ftp.c
index d77d6b3f5f80..59e12b02b22c 100644
--- a/net/ipv4/netfilter/ip_conntrack_ftp.c
+++ b/net/ipv4/netfilter/ip_conntrack_ftp.c
@@ -29,9 +29,9 @@ static char *ftp_buffer;
29static DEFINE_SPINLOCK(ip_ftp_lock); 29static DEFINE_SPINLOCK(ip_ftp_lock);
30 30
31#define MAX_PORTS 8 31#define MAX_PORTS 8
32static short ports[MAX_PORTS]; 32static unsigned short ports[MAX_PORTS];
33static int ports_c; 33static int ports_c;
34module_param_array(ports, short, &ports_c, 0400); 34module_param_array(ports, ushort, &ports_c, 0400);
35 35
36static int loose; 36static int loose;
37module_param(loose, int, 0600); 37module_param(loose, int, 0600);
diff --git a/net/ipv4/netfilter/ip_conntrack_irc.c b/net/ipv4/netfilter/ip_conntrack_irc.c
index 15457415a4f3..2dea1db14406 100644
--- a/net/ipv4/netfilter/ip_conntrack_irc.c
+++ b/net/ipv4/netfilter/ip_conntrack_irc.c
@@ -34,7 +34,7 @@
34#include <linux/moduleparam.h> 34#include <linux/moduleparam.h>
35 35
36#define MAX_PORTS 8 36#define MAX_PORTS 8
37static short ports[MAX_PORTS]; 37static unsigned short ports[MAX_PORTS];
38static int ports_c; 38static int ports_c;
39static int max_dcc_channels = 8; 39static int max_dcc_channels = 8;
40static unsigned int dcc_timeout = 300; 40static unsigned int dcc_timeout = 300;
@@ -52,7 +52,7 @@ EXPORT_SYMBOL_GPL(ip_nat_irc_hook);
52MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>"); 52MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
53MODULE_DESCRIPTION("IRC (DCC) connection tracking helper"); 53MODULE_DESCRIPTION("IRC (DCC) connection tracking helper");
54MODULE_LICENSE("GPL"); 54MODULE_LICENSE("GPL");
55module_param_array(ports, short, &ports_c, 0400); 55module_param_array(ports, ushort, &ports_c, 0400);
56MODULE_PARM_DESC(ports, "port numbers of IRC servers"); 56MODULE_PARM_DESC(ports, "port numbers of IRC servers");
57module_param(max_dcc_channels, int, 0400); 57module_param(max_dcc_channels, int, 0400);
58MODULE_PARM_DESC(max_dcc_channels, "max number of expected DCC channels per IRC session"); 58MODULE_PARM_DESC(max_dcc_channels, "max number of expected DCC channels per IRC session");
diff --git a/net/ipv4/netfilter/ip_conntrack_tftp.c b/net/ipv4/netfilter/ip_conntrack_tftp.c
index a78736b8525d..d3c5a371f993 100644
--- a/net/ipv4/netfilter/ip_conntrack_tftp.c
+++ b/net/ipv4/netfilter/ip_conntrack_tftp.c
@@ -26,9 +26,9 @@ MODULE_DESCRIPTION("tftp connection tracking helper");
26MODULE_LICENSE("GPL"); 26MODULE_LICENSE("GPL");
27 27
28#define MAX_PORTS 8 28#define MAX_PORTS 8
29static short ports[MAX_PORTS]; 29static unsigned short ports[MAX_PORTS];
30static int ports_c; 30static int ports_c;
31module_param_array(ports, short, &ports_c, 0400); 31module_param_array(ports, ushort, &ports_c, 0400);
32MODULE_PARM_DESC(ports, "port numbers of tftp servers"); 32MODULE_PARM_DESC(ports, "port numbers of tftp servers");
33 33
34#if 0 34#if 0
diff --git a/net/ipv4/tcp_highspeed.c b/net/ipv4/tcp_highspeed.c
index 82b3c189bd7d..63cf7e540847 100644
--- a/net/ipv4/tcp_highspeed.c
+++ b/net/ipv4/tcp_highspeed.c
@@ -111,7 +111,7 @@ static void hstcp_init(struct sock *sk)
111} 111}
112 112
113static void hstcp_cong_avoid(struct sock *sk, u32 adk, u32 rtt, 113static void hstcp_cong_avoid(struct sock *sk, u32 adk, u32 rtt,
114 u32 in_flight, u32 pkts_acked) 114 u32 in_flight, int data_acked)
115{ 115{
116 struct tcp_sock *tp = tcp_sk(sk); 116 struct tcp_sock *tp = tcp_sk(sk);
117 struct hstcp *ca = inet_csk_ca(sk); 117 struct hstcp *ca = inet_csk_ca(sk);
diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
index e4fe9ee484dd..5d316cb72ec9 100644
--- a/net/ipv6/reassembly.c
+++ b/net/ipv6/reassembly.c
@@ -74,7 +74,7 @@ struct ip6frag_skb_cb
74 74
75struct frag_queue 75struct frag_queue
76{ 76{
77 struct frag_queue *next; 77 struct hlist_node list;
78 struct list_head lru_list; /* lru list member */ 78 struct list_head lru_list; /* lru list member */
79 79
80 __u32 id; /* fragment id */ 80 __u32 id; /* fragment id */
@@ -95,14 +95,13 @@ struct frag_queue
95#define FIRST_IN 2 95#define FIRST_IN 2
96#define LAST_IN 1 96#define LAST_IN 1
97 __u16 nhoffset; 97 __u16 nhoffset;
98 struct frag_queue **pprev;
99}; 98};
100 99
101/* Hash table. */ 100/* Hash table. */
102 101
103#define IP6Q_HASHSZ 64 102#define IP6Q_HASHSZ 64
104 103
105static struct frag_queue *ip6_frag_hash[IP6Q_HASHSZ]; 104static struct hlist_head ip6_frag_hash[IP6Q_HASHSZ];
106static DEFINE_RWLOCK(ip6_frag_lock); 105static DEFINE_RWLOCK(ip6_frag_lock);
107static u32 ip6_frag_hash_rnd; 106static u32 ip6_frag_hash_rnd;
108static LIST_HEAD(ip6_frag_lru_list); 107static LIST_HEAD(ip6_frag_lru_list);
@@ -110,9 +109,7 @@ int ip6_frag_nqueues = 0;
110 109
111static __inline__ void __fq_unlink(struct frag_queue *fq) 110static __inline__ void __fq_unlink(struct frag_queue *fq)
112{ 111{
113 if(fq->next) 112 hlist_del(&fq->list);
114 fq->next->pprev = fq->pprev;
115 *fq->pprev = fq->next;
116 list_del(&fq->lru_list); 113 list_del(&fq->lru_list);
117 ip6_frag_nqueues--; 114 ip6_frag_nqueues--;
118} 115}
@@ -163,28 +160,21 @@ static void ip6_frag_secret_rebuild(unsigned long dummy)
163 get_random_bytes(&ip6_frag_hash_rnd, sizeof(u32)); 160 get_random_bytes(&ip6_frag_hash_rnd, sizeof(u32));
164 for (i = 0; i < IP6Q_HASHSZ; i++) { 161 for (i = 0; i < IP6Q_HASHSZ; i++) {
165 struct frag_queue *q; 162 struct frag_queue *q;
163 struct hlist_node *p, *n;
166 164
167 q = ip6_frag_hash[i]; 165 hlist_for_each_entry_safe(q, p, n, &ip6_frag_hash[i], list) {
168 while (q) {
169 struct frag_queue *next = q->next;
170 unsigned int hval = ip6qhashfn(q->id, 166 unsigned int hval = ip6qhashfn(q->id,
171 &q->saddr, 167 &q->saddr,
172 &q->daddr); 168 &q->daddr);
173 169
174 if (hval != i) { 170 if (hval != i) {
175 /* Unlink. */ 171 hlist_del(&q->list);
176 if (q->next)
177 q->next->pprev = q->pprev;
178 *q->pprev = q->next;
179 172
180 /* Relink to new hash chain. */ 173 /* Relink to new hash chain. */
181 if ((q->next = ip6_frag_hash[hval]) != NULL) 174 hlist_add_head(&q->list,
182 q->next->pprev = &q->next; 175 &ip6_frag_hash[hval]);
183 ip6_frag_hash[hval] = q;
184 q->pprev = &ip6_frag_hash[hval];
185 }
186 176
187 q = next; 177 }
188 } 178 }
189 } 179 }
190 write_unlock(&ip6_frag_lock); 180 write_unlock(&ip6_frag_lock);
@@ -337,10 +327,13 @@ static struct frag_queue *ip6_frag_intern(unsigned int hash,
337 struct frag_queue *fq_in) 327 struct frag_queue *fq_in)
338{ 328{
339 struct frag_queue *fq; 329 struct frag_queue *fq;
330#ifdef CONFIG_SMP
331 struct hlist_node *n;
332#endif
340 333
341 write_lock(&ip6_frag_lock); 334 write_lock(&ip6_frag_lock);
342#ifdef CONFIG_SMP 335#ifdef CONFIG_SMP
343 for (fq = ip6_frag_hash[hash]; fq; fq = fq->next) { 336 hlist_for_each_entry(fq, n, &ip6_frag_hash[hash], list) {
344 if (fq->id == fq_in->id && 337 if (fq->id == fq_in->id &&
345 ipv6_addr_equal(&fq_in->saddr, &fq->saddr) && 338 ipv6_addr_equal(&fq_in->saddr, &fq->saddr) &&
346 ipv6_addr_equal(&fq_in->daddr, &fq->daddr)) { 339 ipv6_addr_equal(&fq_in->daddr, &fq->daddr)) {
@@ -358,10 +351,7 @@ static struct frag_queue *ip6_frag_intern(unsigned int hash,
358 atomic_inc(&fq->refcnt); 351 atomic_inc(&fq->refcnt);
359 352
360 atomic_inc(&fq->refcnt); 353 atomic_inc(&fq->refcnt);
361 if((fq->next = ip6_frag_hash[hash]) != NULL) 354 hlist_add_head(&fq->list, &ip6_frag_hash[hash]);
362 fq->next->pprev = &fq->next;
363 ip6_frag_hash[hash] = fq;
364 fq->pprev = &ip6_frag_hash[hash];
365 INIT_LIST_HEAD(&fq->lru_list); 355 INIT_LIST_HEAD(&fq->lru_list);
366 list_add_tail(&fq->lru_list, &ip6_frag_lru_list); 356 list_add_tail(&fq->lru_list, &ip6_frag_lru_list);
367 ip6_frag_nqueues++; 357 ip6_frag_nqueues++;
@@ -401,10 +391,11 @@ static __inline__ struct frag_queue *
401fq_find(u32 id, struct in6_addr *src, struct in6_addr *dst) 391fq_find(u32 id, struct in6_addr *src, struct in6_addr *dst)
402{ 392{
403 struct frag_queue *fq; 393 struct frag_queue *fq;
394 struct hlist_node *n;
404 unsigned int hash = ip6qhashfn(id, src, dst); 395 unsigned int hash = ip6qhashfn(id, src, dst);
405 396
406 read_lock(&ip6_frag_lock); 397 read_lock(&ip6_frag_lock);
407 for(fq = ip6_frag_hash[hash]; fq; fq = fq->next) { 398 hlist_for_each_entry(fq, n, &ip6_frag_hash[hash], list) {
408 if (fq->id == id && 399 if (fq->id == id &&
409 ipv6_addr_equal(src, &fq->saddr) && 400 ipv6_addr_equal(src, &fq->saddr) &&
410 ipv6_addr_equal(dst, &fq->daddr)) { 401 ipv6_addr_equal(dst, &fq->daddr)) {
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 9a71a8d1078a..a7a537b50595 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1732,7 +1732,7 @@ int inet6_dump_fib(struct sk_buff *skb, struct netlink_callback *cb)
1732 /* 1732 /*
1733 * 2. allocate and initialize walker. 1733 * 2. allocate and initialize walker.
1734 */ 1734 */
1735 w = kmalloc(sizeof(*w), GFP_KERNEL); 1735 w = kmalloc(sizeof(*w), GFP_ATOMIC);
1736 if (w == NULL) 1736 if (w == NULL)
1737 return -ENOMEM; 1737 return -ENOMEM;
1738 RT6_TRACE("dump<%p", w); 1738 RT6_TRACE("dump<%p", w);
diff --git a/net/llc/llc_c_ac.c b/net/llc/llc_c_ac.c
index 91fb6bc1b116..8169f24ed33e 100644
--- a/net/llc/llc_c_ac.c
+++ b/net/llc/llc_c_ac.c
@@ -995,8 +995,8 @@ static int llc_conn_ac_inc_npta_value(struct sock *sk, struct sk_buff *skb)
995 llc->dec_step = 0; 995 llc->dec_step = 0;
996 llc->dec_cntr = llc->inc_cntr = 2; 996 llc->dec_cntr = llc->inc_cntr = 2;
997 ++llc->npta; 997 ++llc->npta;
998 if (llc->npta > ~LLC_2_SEQ_NBR_MODULO) 998 if (llc->npta > (u8) ~LLC_2_SEQ_NBR_MODULO)
999 llc->npta = ~LLC_2_SEQ_NBR_MODULO ; 999 llc->npta = (u8) ~LLC_2_SEQ_NBR_MODULO;
1000 } else 1000 } else
1001 --llc->inc_cntr; 1001 --llc->inc_cntr;
1002 return 0; 1002 return 0;
@@ -1086,8 +1086,8 @@ int llc_conn_ac_inc_tx_win_size(struct sock *sk, struct sk_buff *skb)
1086 struct llc_sock *llc = llc_sk(sk); 1086 struct llc_sock *llc = llc_sk(sk);
1087 1087
1088 llc->k += 1; 1088 llc->k += 1;
1089 if (llc->k > ~LLC_2_SEQ_NBR_MODULO) 1089 if (llc->k > (u8) ~LLC_2_SEQ_NBR_MODULO)
1090 llc->k = ~LLC_2_SEQ_NBR_MODULO ; 1090 llc->k = (u8) ~LLC_2_SEQ_NBR_MODULO;
1091 return 0; 1091 return 0;
1092} 1092}
1093 1093
diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
index ea094b231d62..1da678303d78 100644
--- a/net/netfilter/nf_conntrack_core.c
+++ b/net/netfilter/nf_conntrack_core.c
@@ -387,7 +387,7 @@ nf_ct_invert_tuple(struct nf_conntrack_tuple *inverse,
387static void nf_ct_unlink_expect(struct nf_conntrack_expect *exp) 387static void nf_ct_unlink_expect(struct nf_conntrack_expect *exp)
388{ 388{
389 ASSERT_WRITE_LOCK(&nf_conntrack_lock); 389 ASSERT_WRITE_LOCK(&nf_conntrack_lock);
390 NF_CT_ASSERT(!timer_pending(&exp_timeout)); 390 NF_CT_ASSERT(!timer_pending(&exp->timeout));
391 list_del(&exp->list); 391 list_del(&exp->list);
392 NF_CT_STAT_INC(expect_delete); 392 NF_CT_STAT_INC(expect_delete);
393 exp->master->expecting--; 393 exp->master->expecting--;
diff --git a/net/sched/Kconfig b/net/sched/Kconfig
index 7f34e7fd767c..55cd5327fbd7 100644
--- a/net/sched/Kconfig
+++ b/net/sched/Kconfig
@@ -40,9 +40,10 @@ config NET_SCHED
40 The available schedulers are listed in the following questions; you 40 The available schedulers are listed in the following questions; you
41 can say Y to as many as you like. If unsure, say N now. 41 can say Y to as many as you like. If unsure, say N now.
42 42
43if NET_SCHED
44
43choice 45choice
44 prompt "Packet scheduler clock source" 46 prompt "Packet scheduler clock source"
45 depends on NET_SCHED
46 default NET_SCH_CLK_JIFFIES 47 default NET_SCH_CLK_JIFFIES
47 ---help--- 48 ---help---
48 Packet schedulers need a monotonic clock that increments at a static 49 Packet schedulers need a monotonic clock that increments at a static
@@ -98,11 +99,9 @@ config NET_SCH_CLK_CPU
98endchoice 99endchoice
99 100
100comment "Queueing/Scheduling" 101comment "Queueing/Scheduling"
101 depends on NET_SCHED
102 102
103config NET_SCH_CBQ 103config NET_SCH_CBQ
104 tristate "Class Based Queueing (CBQ)" 104 tristate "Class Based Queueing (CBQ)"
105 depends on NET_SCHED
106 ---help--- 105 ---help---
107 Say Y here if you want to use the Class-Based Queueing (CBQ) packet 106 Say Y here if you want to use the Class-Based Queueing (CBQ) packet
108 scheduling algorithm. This algorithm classifies the waiting packets 107 scheduling algorithm. This algorithm classifies the waiting packets
@@ -120,7 +119,6 @@ config NET_SCH_CBQ
120 119
121config NET_SCH_HTB 120config NET_SCH_HTB
122 tristate "Hierarchical Token Bucket (HTB)" 121 tristate "Hierarchical Token Bucket (HTB)"
123 depends on NET_SCHED
124 ---help--- 122 ---help---
125 Say Y here if you want to use the Hierarchical Token Buckets (HTB) 123 Say Y here if you want to use the Hierarchical Token Buckets (HTB)
126 packet scheduling algorithm. See 124 packet scheduling algorithm. See
@@ -135,7 +133,6 @@ config NET_SCH_HTB
135 133
136config NET_SCH_HFSC 134config NET_SCH_HFSC
137 tristate "Hierarchical Fair Service Curve (HFSC)" 135 tristate "Hierarchical Fair Service Curve (HFSC)"
138 depends on NET_SCHED
139 ---help--- 136 ---help---
140 Say Y here if you want to use the Hierarchical Fair Service Curve 137 Say Y here if you want to use the Hierarchical Fair Service Curve
141 (HFSC) packet scheduling algorithm. 138 (HFSC) packet scheduling algorithm.
@@ -145,7 +142,7 @@ config NET_SCH_HFSC
145 142
146config NET_SCH_ATM 143config NET_SCH_ATM
147 tristate "ATM Virtual Circuits (ATM)" 144 tristate "ATM Virtual Circuits (ATM)"
148 depends on NET_SCHED && ATM 145 depends on ATM
149 ---help--- 146 ---help---
150 Say Y here if you want to use the ATM pseudo-scheduler. This 147 Say Y here if you want to use the ATM pseudo-scheduler. This
151 provides a framework for invoking classifiers, which in turn 148 provides a framework for invoking classifiers, which in turn
@@ -159,7 +156,6 @@ config NET_SCH_ATM
159 156
160config NET_SCH_PRIO 157config NET_SCH_PRIO
161 tristate "Multi Band Priority Queueing (PRIO)" 158 tristate "Multi Band Priority Queueing (PRIO)"
162 depends on NET_SCHED
163 ---help--- 159 ---help---
164 Say Y here if you want to use an n-band priority queue packet 160 Say Y here if you want to use an n-band priority queue packet
165 scheduler. 161 scheduler.
@@ -169,7 +165,6 @@ config NET_SCH_PRIO
169 165
170config NET_SCH_RED 166config NET_SCH_RED
171 tristate "Random Early Detection (RED)" 167 tristate "Random Early Detection (RED)"
172 depends on NET_SCHED
173 ---help--- 168 ---help---
174 Say Y here if you want to use the Random Early Detection (RED) 169 Say Y here if you want to use the Random Early Detection (RED)
175 packet scheduling algorithm. 170 packet scheduling algorithm.
@@ -181,7 +176,6 @@ config NET_SCH_RED
181 176
182config NET_SCH_SFQ 177config NET_SCH_SFQ
183 tristate "Stochastic Fairness Queueing (SFQ)" 178 tristate "Stochastic Fairness Queueing (SFQ)"
184 depends on NET_SCHED
185 ---help--- 179 ---help---
186 Say Y here if you want to use the Stochastic Fairness Queueing (SFQ) 180 Say Y here if you want to use the Stochastic Fairness Queueing (SFQ)
187 packet scheduling algorithm . 181 packet scheduling algorithm .
@@ -193,7 +187,6 @@ config NET_SCH_SFQ
193 187
194config NET_SCH_TEQL 188config NET_SCH_TEQL
195 tristate "True Link Equalizer (TEQL)" 189 tristate "True Link Equalizer (TEQL)"
196 depends on NET_SCHED
197 ---help--- 190 ---help---
198 Say Y here if you want to use the True Link Equalizer (TLE) packet 191 Say Y here if you want to use the True Link Equalizer (TLE) packet
199 scheduling algorithm. This queueing discipline allows the combination 192 scheduling algorithm. This queueing discipline allows the combination
@@ -206,7 +199,6 @@ config NET_SCH_TEQL
206 199
207config NET_SCH_TBF 200config NET_SCH_TBF
208 tristate "Token Bucket Filter (TBF)" 201 tristate "Token Bucket Filter (TBF)"
209 depends on NET_SCHED
210 ---help--- 202 ---help---
211 Say Y here if you want to use the Token Bucket Filter (TBF) packet 203 Say Y here if you want to use the Token Bucket Filter (TBF) packet
212 scheduling algorithm. 204 scheduling algorithm.
@@ -218,7 +210,6 @@ config NET_SCH_TBF
218 210
219config NET_SCH_GRED 211config NET_SCH_GRED
220 tristate "Generic Random Early Detection (GRED)" 212 tristate "Generic Random Early Detection (GRED)"
221 depends on NET_SCHED
222 ---help--- 213 ---help---
223 Say Y here if you want to use the Generic Random Early Detection 214 Say Y here if you want to use the Generic Random Early Detection
224 (GRED) packet scheduling algorithm for some of your network devices 215 (GRED) packet scheduling algorithm for some of your network devices
@@ -230,7 +221,6 @@ config NET_SCH_GRED
230 221
231config NET_SCH_DSMARK 222config NET_SCH_DSMARK
232 tristate "Differentiated Services marker (DSMARK)" 223 tristate "Differentiated Services marker (DSMARK)"
233 depends on NET_SCHED
234 ---help--- 224 ---help---
235 Say Y if you want to schedule packets according to the 225 Say Y if you want to schedule packets according to the
236 Differentiated Services architecture proposed in RFC 2475. 226 Differentiated Services architecture proposed in RFC 2475.
@@ -242,7 +232,6 @@ config NET_SCH_DSMARK
242 232
243config NET_SCH_NETEM 233config NET_SCH_NETEM
244 tristate "Network emulator (NETEM)" 234 tristate "Network emulator (NETEM)"
245 depends on NET_SCHED
246 ---help--- 235 ---help---
247 Say Y if you want to emulate network delay, loss, and packet 236 Say Y if you want to emulate network delay, loss, and packet
248 re-ordering. This is often useful to simulate networks when 237 re-ordering. This is often useful to simulate networks when
@@ -255,7 +244,6 @@ config NET_SCH_NETEM
255 244
256config NET_SCH_INGRESS 245config NET_SCH_INGRESS
257 tristate "Ingress Qdisc" 246 tristate "Ingress Qdisc"
258 depends on NET_SCHED
259 ---help--- 247 ---help---
260 Say Y here if you want to use classifiers for incoming packets. 248 Say Y here if you want to use classifiers for incoming packets.
261 If unsure, say Y. 249 If unsure, say Y.
@@ -264,14 +252,12 @@ config NET_SCH_INGRESS
264 module will be called sch_ingress. 252 module will be called sch_ingress.
265 253
266comment "Classification" 254comment "Classification"
267 depends on NET_SCHED
268 255
269config NET_CLS 256config NET_CLS
270 boolean 257 boolean
271 258
272config NET_CLS_BASIC 259config NET_CLS_BASIC
273 tristate "Elementary classification (BASIC)" 260 tristate "Elementary classification (BASIC)"
274 depends NET_SCHED
275 select NET_CLS 261 select NET_CLS
276 ---help--- 262 ---help---
277 Say Y here if you want to be able to classify packets using 263 Say Y here if you want to be able to classify packets using
@@ -282,7 +268,6 @@ config NET_CLS_BASIC
282 268
283config NET_CLS_TCINDEX 269config NET_CLS_TCINDEX
284 tristate "Traffic-Control Index (TCINDEX)" 270 tristate "Traffic-Control Index (TCINDEX)"
285 depends NET_SCHED
286 select NET_CLS 271 select NET_CLS
287 ---help--- 272 ---help---
288 Say Y here if you want to be able to classify packets based on 273 Say Y here if you want to be able to classify packets based on
@@ -294,7 +279,6 @@ config NET_CLS_TCINDEX
294 279
295config NET_CLS_ROUTE4 280config NET_CLS_ROUTE4
296 tristate "Routing decision (ROUTE)" 281 tristate "Routing decision (ROUTE)"
297 depends NET_SCHED
298 select NET_CLS_ROUTE 282 select NET_CLS_ROUTE
299 select NET_CLS 283 select NET_CLS
300 ---help--- 284 ---help---
@@ -306,11 +290,9 @@ config NET_CLS_ROUTE4
306 290
307config NET_CLS_ROUTE 291config NET_CLS_ROUTE
308 bool 292 bool
309 default n
310 293
311config NET_CLS_FW 294config NET_CLS_FW
312 tristate "Netfilter mark (FW)" 295 tristate "Netfilter mark (FW)"
313 depends NET_SCHED
314 select NET_CLS 296 select NET_CLS
315 ---help--- 297 ---help---
316 If you say Y here, you will be able to classify packets 298 If you say Y here, you will be able to classify packets
@@ -321,7 +303,6 @@ config NET_CLS_FW
321 303
322config NET_CLS_U32 304config NET_CLS_U32
323 tristate "Universal 32bit comparisons w/ hashing (U32)" 305 tristate "Universal 32bit comparisons w/ hashing (U32)"
324 depends NET_SCHED
325 select NET_CLS 306 select NET_CLS
326 ---help--- 307 ---help---
327 Say Y here to be able to classify packetes using a universal 308 Say Y here to be able to classify packetes using a universal
@@ -345,7 +326,6 @@ config CLS_U32_MARK
345 326
346config NET_CLS_RSVP 327config NET_CLS_RSVP
347 tristate "IPv4 Resource Reservation Protocol (RSVP)" 328 tristate "IPv4 Resource Reservation Protocol (RSVP)"
348 depends on NET_SCHED
349 select NET_CLS 329 select NET_CLS
350 select NET_ESTIMATOR 330 select NET_ESTIMATOR
351 ---help--- 331 ---help---
@@ -361,7 +341,6 @@ config NET_CLS_RSVP
361 341
362config NET_CLS_RSVP6 342config NET_CLS_RSVP6
363 tristate "IPv6 Resource Reservation Protocol (RSVP6)" 343 tristate "IPv6 Resource Reservation Protocol (RSVP6)"
364 depends on NET_SCHED
365 select NET_CLS 344 select NET_CLS
366 select NET_ESTIMATOR 345 select NET_ESTIMATOR
367 ---help--- 346 ---help---
@@ -377,7 +356,6 @@ config NET_CLS_RSVP6
377 356
378config NET_EMATCH 357config NET_EMATCH
379 bool "Extended Matches" 358 bool "Extended Matches"
380 depends NET_SCHED
381 select NET_CLS 359 select NET_CLS
382 ---help--- 360 ---help---
383 Say Y here if you want to use extended matches on top of classifiers 361 Say Y here if you want to use extended matches on top of classifiers
@@ -456,7 +434,7 @@ config NET_EMATCH_TEXT
456 434
457config NET_CLS_ACT 435config NET_CLS_ACT
458 bool "Actions" 436 bool "Actions"
459 depends on EXPERIMENTAL && NET_SCHED 437 depends on EXPERIMENTAL
460 select NET_ESTIMATOR 438 select NET_ESTIMATOR
461 ---help--- 439 ---help---
462 Say Y here if you want to use traffic control actions. Actions 440 Say Y here if you want to use traffic control actions. Actions
@@ -539,7 +517,7 @@ config NET_ACT_SIMP
539 517
540config NET_CLS_POLICE 518config NET_CLS_POLICE
541 bool "Traffic Policing (obsolete)" 519 bool "Traffic Policing (obsolete)"
542 depends on NET_SCHED && NET_CLS_ACT!=y 520 depends on NET_CLS_ACT!=y
543 select NET_ESTIMATOR 521 select NET_ESTIMATOR
544 ---help--- 522 ---help---
545 Say Y here if you want to do traffic policing, i.e. strict 523 Say Y here if you want to do traffic policing, i.e. strict
@@ -549,7 +527,7 @@ config NET_CLS_POLICE
549 527
550config NET_CLS_IND 528config NET_CLS_IND
551 bool "Incoming device classification" 529 bool "Incoming device classification"
552 depends on NET_SCHED && (NET_CLS_U32 || NET_CLS_FW) 530 depends on NET_CLS_U32 || NET_CLS_FW
553 ---help--- 531 ---help---
554 Say Y here to extend the u32 and fw classifier to support 532 Say Y here to extend the u32 and fw classifier to support
555 classification based on the incoming device. This option is 533 classification based on the incoming device. This option is
@@ -557,11 +535,12 @@ config NET_CLS_IND
557 535
558config NET_ESTIMATOR 536config NET_ESTIMATOR
559 bool "Rate estimator" 537 bool "Rate estimator"
560 depends on NET_SCHED
561 ---help--- 538 ---help---
562 Say Y here to allow using rate estimators to estimate the current 539 Say Y here to allow using rate estimators to estimate the current
563 rate-of-flow for network devices, queues, etc. This module is 540 rate-of-flow for network devices, queues, etc. This module is
564 automaticaly selected if needed but can be selected manually for 541 automaticaly selected if needed but can be selected manually for
565 statstical purposes. 542 statstical purposes.
566 543
544endif # NET_SCHED
545
567endmenu 546endmenu