aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Documentation/DMA-mapping.txt8
-rw-r--r--Documentation/accounting/delay-accounting.txt110
-rw-r--r--Documentation/accounting/getdelays.c396
-rw-r--r--Documentation/accounting/taskstats.txt181
-rw-r--r--Documentation/feature-removal-schedule.txt19
-rw-r--r--Documentation/hwmon/abituguru32
-rw-r--r--Documentation/i2c/busses/i2c-sis96x4
-rw-r--r--Documentation/kernel-parameters.txt2
-rw-r--r--Documentation/memory-barriers.txt5
-rw-r--r--Documentation/mips/time.README10
-rw-r--r--Documentation/ramdisk.txt12
-rw-r--r--Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl4
-rw-r--r--Documentation/usb/usb-serial.txt4
-rw-r--r--MAINTAINERS35
-rw-r--r--Makefile2
-rw-r--r--arch/arm/common/locomo.c3
-rw-r--r--arch/arm/common/sharpsl_pm.c4
-rw-r--r--arch/arm/configs/ep93xx_defconfig68
-rw-r--r--arch/arm/configs/ixp2000_defconfig55
-rw-r--r--arch/arm/configs/ixp23xx_defconfig59
-rw-r--r--arch/arm/configs/lpd270_defconfig34
-rw-r--r--arch/arm/configs/onearm_defconfig36
-rw-r--r--arch/arm/kernel/bios32.c11
-rw-r--r--arch/arm/kernel/irq.c10
-rw-r--r--arch/arm/mach-sa1100/collie.c4
-rw-r--r--arch/arm/mach-sa1100/collie_pm.c69
-rw-r--r--arch/arm/mach-versatile/core.c11
-rw-r--r--arch/arm/nwfpe/softfloat.h2
-rw-r--r--arch/i386/kernel/crash.c2
-rw-r--r--arch/i386/kernel/setup.c5
-rw-r--r--arch/i386/kernel/traps.c40
-rw-r--r--arch/i386/lib/usercopy.c2
-rw-r--r--arch/i386/pci/common.c4
-rw-r--r--arch/i386/pci/pci.h2
-rw-r--r--arch/mips/Kconfig10
-rw-r--r--arch/mips/Kconfig.debug4
-rw-r--r--arch/mips/Makefile6
-rw-r--r--arch/mips/au1000/common/irq.c8
-rw-r--r--arch/mips/au1000/common/prom.c26
-rw-r--r--arch/mips/au1000/common/setup.c2
-rw-r--r--arch/mips/au1000/common/time.c2
-rw-r--r--arch/mips/au1000/csb250/Makefile8
-rw-r--r--arch/mips/au1000/csb250/board_setup.c238
-rw-r--r--arch/mips/au1000/csb250/init.c94
-rw-r--r--arch/mips/au1000/csb250/irqmap.c60
-rw-r--r--arch/mips/au1000/hydrogen3/Makefile9
-rw-r--r--arch/mips/au1000/hydrogen3/board_setup.c69
-rw-r--r--arch/mips/au1000/hydrogen3/init.c75
-rw-r--r--arch/mips/au1000/hydrogen3/irqmap.c56
-rw-r--r--arch/mips/au1000/pb1200/irqmap.c2
-rw-r--r--arch/mips/basler/excite/excite_dbg_io.c1
-rw-r--r--arch/mips/basler/excite/excite_device.c1
-rw-r--r--arch/mips/basler/excite/excite_iodev.c1
-rw-r--r--arch/mips/basler/excite/excite_procfs.c1
-rw-r--r--arch/mips/basler/excite/excite_prom.c1
-rw-r--r--arch/mips/basler/excite/excite_setup.c4
-rw-r--r--arch/mips/cobalt/setup.c4
-rw-r--r--arch/mips/configs/atlas_defconfig68
-rw-r--r--arch/mips/configs/bigsur_defconfig59
-rw-r--r--arch/mips/configs/capcella_defconfig49
-rw-r--r--arch/mips/configs/cobalt_defconfig46
-rw-r--r--arch/mips/configs/db1000_defconfig50
-rw-r--r--arch/mips/configs/db1100_defconfig52
-rw-r--r--arch/mips/configs/db1200_defconfig51
-rw-r--r--arch/mips/configs/db1500_defconfig66
-rw-r--r--arch/mips/configs/db1550_defconfig51
-rw-r--r--arch/mips/configs/ddb5477_defconfig46
-rw-r--r--arch/mips/configs/decstation_defconfig55
-rw-r--r--arch/mips/configs/e55_defconfig39
-rw-r--r--arch/mips/configs/emma2rh_defconfig44
-rw-r--r--arch/mips/configs/ev64120_defconfig45
-rw-r--r--arch/mips/configs/ev96100_defconfig44
-rw-r--r--arch/mips/configs/excite_defconfig135
-rw-r--r--arch/mips/configs/ip22_defconfig57
-rw-r--r--arch/mips/configs/ip27_defconfig65
-rw-r--r--arch/mips/configs/ip32_defconfig47
-rw-r--r--arch/mips/configs/it8172_defconfig45
-rw-r--r--arch/mips/configs/ivr_defconfig45
-rw-r--r--arch/mips/configs/jaguar-atx_defconfig48
-rw-r--r--arch/mips/configs/jmr3927_defconfig48
-rw-r--r--arch/mips/configs/lasat200_defconfig46
-rw-r--r--arch/mips/configs/malta_defconfig64
-rw-r--r--arch/mips/configs/mipssim_defconfig51
-rw-r--r--arch/mips/configs/mpc30x_defconfig48
-rw-r--r--arch/mips/configs/ocelot_3_defconfig55
-rw-r--r--arch/mips/configs/ocelot_c_defconfig46
-rw-r--r--arch/mips/configs/ocelot_defconfig45
-rw-r--r--arch/mips/configs/ocelot_g_defconfig46
-rw-r--r--arch/mips/configs/pb1100_defconfig48
-rw-r--r--arch/mips/configs/pb1500_defconfig50
-rw-r--r--arch/mips/configs/pb1550_defconfig50
-rw-r--r--arch/mips/configs/pnx8550-jbs_defconfig349
-rw-r--r--arch/mips/configs/pnx8550-v2pci_defconfig401
-rw-r--r--arch/mips/configs/qemu_defconfig44
-rw-r--r--arch/mips/configs/rbhma4500_defconfig64
-rw-r--r--arch/mips/configs/rm200_defconfig74
-rw-r--r--arch/mips/configs/sb1250-swarm_defconfig51
-rw-r--r--arch/mips/configs/sead_defconfig38
-rw-r--r--arch/mips/configs/tb0226_defconfig55
-rw-r--r--arch/mips/configs/tb0229_defconfig55
-rw-r--r--arch/mips/configs/tb0287_defconfig55
-rw-r--r--arch/mips/configs/workpad_defconfig44
-rw-r--r--arch/mips/configs/wrppmc_defconfig88
-rw-r--r--arch/mips/configs/yosemite_defconfig58
-rw-r--r--arch/mips/ddb5xxx/ddb5477/irq.c1
-rw-r--r--arch/mips/ddb5xxx/ddb5477/irq_5477.c2
-rw-r--r--arch/mips/ddb5xxx/ddb5477/setup.c6
-rw-r--r--arch/mips/dec/ioasic-irq.c4
-rw-r--r--arch/mips/dec/kn02-irq.c2
-rw-r--r--arch/mips/dec/setup.c2
-rw-r--r--arch/mips/dec/time.c2
-rw-r--r--arch/mips/defconfig57
-rw-r--r--arch/mips/emma2rh/common/irq.c1
-rw-r--r--arch/mips/emma2rh/common/irq_emma2rh.c2
-rw-r--r--arch/mips/emma2rh/common/prom.c1
-rw-r--r--arch/mips/emma2rh/markeins/irq.c1
-rw-r--r--arch/mips/emma2rh/markeins/irq_markeins.c4
-rw-r--r--arch/mips/emma2rh/markeins/platform.c1
-rw-r--r--arch/mips/emma2rh/markeins/setup.c4
-rw-r--r--arch/mips/gt64120/ev64120/irq.c4
-rw-r--r--arch/mips/gt64120/wrppmc/setup.c3
-rw-r--r--arch/mips/gt64120/wrppmc/time.c3
-rw-r--r--arch/mips/ite-boards/generic/irq.c4
-rw-r--r--arch/mips/ite-boards/generic/it8172_setup.c5
-rw-r--r--arch/mips/ite-boards/generic/time.c3
-rw-r--r--arch/mips/jazz/irq.c2
-rw-r--r--arch/mips/jazz/setup.c3
-rw-r--r--arch/mips/jmr3927/rbhma3100/irq.c2
-rw-r--r--arch/mips/jmr3927/rbhma3100/setup.c5
-rw-r--r--arch/mips/kernel/apm.c1
-rw-r--r--arch/mips/kernel/cpu-probe.c6
-rw-r--r--arch/mips/kernel/entry.S15
-rw-r--r--arch/mips/kernel/gdb-low.S2
-rw-r--r--arch/mips/kernel/genex.S8
-rw-r--r--arch/mips/kernel/head.S3
-rw-r--r--arch/mips/kernel/i8259.c2
-rw-r--r--arch/mips/kernel/irq-msc01.c4
-rw-r--r--arch/mips/kernel/irq-mv6434x.c2
-rw-r--r--arch/mips/kernel/irq-rm7000.c2
-rw-r--r--arch/mips/kernel/irq-rm9000.c4
-rw-r--r--arch/mips/kernel/irq.c2
-rw-r--r--arch/mips/kernel/irq_cpu.c4
-rw-r--r--arch/mips/kernel/mips-mt.c1
-rw-r--r--arch/mips/kernel/scall32-o32.S17
-rw-r--r--arch/mips/kernel/scall64-64.S4
-rw-r--r--arch/mips/kernel/scall64-n32.S4
-rw-r--r--arch/mips/kernel/scall64-o32.S4
-rw-r--r--arch/mips/kernel/smp.c35
-rw-r--r--arch/mips/kernel/smtc-asm.S1
-rw-r--r--arch/mips/kernel/smtc.c60
-rw-r--r--arch/mips/kernel/time.c5
-rw-r--r--arch/mips/kernel/traps.c24
-rw-r--r--arch/mips/kernel/vpe.c1
-rw-r--r--arch/mips/lasat/interrupt.c2
-rw-r--r--arch/mips/lasat/setup.c8
-rw-r--r--arch/mips/mips-boards/atlas/atlas_int.c2
-rw-r--r--arch/mips/mips-boards/atlas/atlas_setup.c2
-rw-r--r--arch/mips/mips-boards/generic/memory.c50
-rw-r--r--arch/mips/mips-boards/generic/time.c8
-rw-r--r--arch/mips/mips-boards/malta/malta_setup.c2
-rw-r--r--arch/mips/mips-boards/sead/sead_setup.c2
-rw-r--r--arch/mips/mips-boards/sim/Makefile3
-rw-r--r--arch/mips/mips-boards/sim/sim_IRQ.c147
-rw-r--r--arch/mips/mips-boards/sim/sim_irq.S100
-rw-r--r--arch/mips/mips-boards/sim/sim_setup.c2
-rw-r--r--arch/mips/mips-boards/sim/sim_time.c4
-rw-r--r--arch/mips/mm/c-r4k.c21
-rw-r--r--arch/mips/mm/init.c65
-rw-r--r--arch/mips/mm/pgtable.c2
-rw-r--r--arch/mips/mm/tlbex.c159
-rw-r--r--arch/mips/momentum/jaguar_atx/setup.c3
-rw-r--r--arch/mips/momentum/ocelot_3/setup.c3
-rw-r--r--arch/mips/momentum/ocelot_c/cpci-irq.c2
-rw-r--r--arch/mips/momentum/ocelot_c/setup.c3
-rw-r--r--arch/mips/momentum/ocelot_c/uart-irq.c2
-rw-r--r--arch/mips/oprofile/op_model_mipsxx.c2
-rw-r--r--arch/mips/pci/fixup-emma2rh.c1
-rw-r--r--arch/mips/pci/fixup-mpc30x.c1
-rw-r--r--arch/mips/pci/ops-emma2rh.c1
-rw-r--r--arch/mips/pci/pci-emma2rh.c1
-rw-r--r--arch/mips/philips/pnx8550/common/int.c2
-rw-r--r--arch/mips/philips/pnx8550/common/setup.c5
-rw-r--r--arch/mips/philips/pnx8550/common/time.c11
-rw-r--r--arch/mips/pmc-sierra/yosemite/setup.c3
-rw-r--r--arch/mips/qemu/q-reset.c1
-rw-r--r--arch/mips/qemu/q-setup.c4
-rw-r--r--arch/mips/sgi-ip22/ip22-eisa.c4
-rw-r--r--arch/mips/sgi-ip22/ip22-int.c10
-rw-r--r--arch/mips/sgi-ip22/ip22-time.c10
-rw-r--r--arch/mips/sgi-ip27/ip27-irq.c4
-rw-r--r--arch/mips/sgi-ip27/ip27-timer.c23
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c20
-rw-r--r--arch/mips/sgi-ip32/ip32-setup.c4
-rw-r--r--arch/mips/sibyte/bcm1480/irq.c17
-rw-r--r--arch/mips/sibyte/sb1250/irq.c18
-rw-r--r--arch/mips/sibyte/swarm/setup.c3
-rw-r--r--arch/mips/sni/irq.c2
-rw-r--r--arch/mips/sni/setup.c3
-rw-r--r--arch/mips/tx4927/common/tx4927_irq.c4
-rw-r--r--arch/mips/tx4927/common/tx4927_setup.c4
-rw-r--r--arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c4
-rw-r--r--arch/mips/tx4938/common/irq.c4
-rw-r--r--arch/mips/tx4938/common/setup.c5
-rw-r--r--arch/mips/tx4938/toshiba_rbtx4938/irq.c2
-rw-r--r--arch/mips/vr41xx/Kconfig6
-rw-r--r--arch/mips/vr41xx/casio-e55/setup.c15
-rw-r--r--arch/mips/vr41xx/common/Makefile3
-rw-r--r--arch/mips/vr41xx/common/icu.c45
-rw-r--r--arch/mips/vr41xx/common/init.c4
-rw-r--r--arch/mips/vr41xx/common/irq.c4
-rw-r--r--arch/mips/vr41xx/common/vrc4173.c581
-rw-r--r--arch/mips/vr41xx/ibm-workpad/setup.c15
-rw-r--r--arch/mips/vr41xx/nec-cmbvr4133/irq.c2
-rw-r--r--arch/s390/hypfs/hypfs_diag.c2
-rw-r--r--arch/s390/kernel/compat_linux.c19
-rw-r--r--arch/s390/kernel/machine_kexec.c1
-rw-r--r--arch/s390/kernel/module.c2
-rw-r--r--arch/s390/kernel/process.c2
-rw-r--r--arch/s390/kernel/profile.c2
-rw-r--r--arch/s390/kernel/s390_ext.c2
-rw-r--r--arch/s390/kernel/time.c2
-rw-r--r--arch/s390/kernel/traps.c18
-rw-r--r--arch/s390/lib/string.c4
-rw-r--r--arch/s390/mm/cmm.c2
-rw-r--r--arch/s390/mm/fault.c2
-rw-r--r--arch/sparc/kernel/of_device.c173
-rw-r--r--arch/sparc64/defconfig39
-rw-r--r--arch/sparc64/kernel/head.S13
-rw-r--r--arch/sparc64/kernel/of_device.c314
-rw-r--r--arch/sparc64/kernel/pci_psycho.c6
-rw-r--r--arch/sparc64/kernel/prom.c51
-rw-r--r--arch/sparc64/kernel/time.c2
-rw-r--r--arch/um/Makefile-x86_641
-rw-r--r--arch/um/include/longjmp.h4
-rw-r--r--arch/um/include/os.h68
-rw-r--r--arch/um/kernel/syscall.c22
-rw-r--r--arch/um/kernel/vmlinux.lds.S2
-rw-r--r--arch/um/os-Linux/process.c8
-rw-r--r--arch/um/os-Linux/skas/process.c16
-rw-r--r--arch/um/os-Linux/uaccess.c3
-rw-r--r--block/ioctl.c4
-rw-r--r--drivers/acpi/osl.c60
-rw-r--r--drivers/base/bus.c5
-rw-r--r--drivers/base/core.c30
-rw-r--r--drivers/block/Kconfig10
-rw-r--r--drivers/block/cpqarray.c2
-rw-r--r--drivers/block/rd.c2
-rw-r--r--drivers/bluetooth/hci_ldisc.c4
-rw-r--r--drivers/char/nsc_gpio.c6
-rw-r--r--drivers/char/pc8736x_gpio.c15
-rw-r--r--drivers/char/rtc.c6
-rw-r--r--drivers/char/scx200_gpio.c72
-rw-r--r--drivers/char/tpm/tpm.c1
-rw-r--r--drivers/char/tpm/tpm_tis.c77
-rw-r--r--drivers/char/vr41xx_giu.c1
-rw-r--r--drivers/crypto/padlock-aes.c9
-rw-r--r--drivers/hwmon/abituguru.c21
-rw-r--r--drivers/i2c/algos/i2c-algo-bit.c4
-rw-r--r--drivers/i2c/algos/i2c-algo-ite.c4
-rw-r--r--drivers/i2c/algos/i2c-algo-pca.c6
-rw-r--r--drivers/i2c/algos/i2c-algo-pcf.c8
-rw-r--r--drivers/i2c/algos/i2c-algo-sibyte.c4
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.c17
-rw-r--r--drivers/i2c/busses/i2c-iop3xx.h2
-rw-r--r--drivers/i2c/busses/i2c-powermac.c4
-rw-r--r--drivers/i2c/busses/scx200_acb.c20
-rw-r--r--drivers/i2c/chips/pca9539.c12
-rw-r--r--drivers/i2c/i2c-core.c4
-rw-r--r--drivers/ide/legacy/ide-cs.c81
-rw-r--r--drivers/ide/pci/generic.c8
-rw-r--r--drivers/infiniband/core/cm.c21
-rw-r--r--drivers/infiniband/core/cma.c22
-rw-r--r--drivers/infiniband/core/fmr_pool.c8
-rw-r--r--drivers/infiniband/core/sa_query.c10
-rw-r--r--drivers/infiniband/hw/mthca/mthca_av.c5
-rw-r--r--drivers/infiniband/hw/mthca/mthca_qp.c13
-rw-r--r--drivers/infiniband/ulp/iser/iser_verbs.c2
-rw-r--r--drivers/infiniband/ulp/srp/ib_srp.c3
-rw-r--r--drivers/leds/leds-net48xx.c7
-rw-r--r--drivers/mfd/ucb1x00-core.c2
-rw-r--r--drivers/mfd/ucb1x00.h1
-rw-r--r--drivers/mmc/sdhci.c6
-rw-r--r--drivers/net/wan/c101.c26
-rw-r--r--drivers/net/wan/hd6457x.c26
-rw-r--r--drivers/net/wan/hdlc_cisco.c14
-rw-r--r--drivers/net/wan/hdlc_fr.c14
-rw-r--r--drivers/net/wan/hdlc_generic.c65
-rw-r--r--drivers/net/wan/wanxl.c5
-rw-r--r--drivers/pci/msi.c4
-rw-r--r--drivers/pci/pci.c11
-rw-r--r--drivers/pci/pci.h10
-rw-r--r--drivers/pci/quirks.c108
-rw-r--r--drivers/rtc/Kconfig10
-rw-r--r--drivers/rtc/Makefile1
-rw-r--r--drivers/rtc/rtc-isl1208.c591
-rw-r--r--drivers/rtc/rtc-vr41xx.c2
-rw-r--r--drivers/s390/block/dasd_devmap.c8
-rw-r--r--drivers/s390/block/dasd_eckd.c20
-rw-r--r--drivers/s390/block/dasd_fba.c4
-rw-r--r--drivers/s390/block/dasd_genhd.c8
-rw-r--r--drivers/s390/block/dasd_ioctl.c2
-rw-r--r--drivers/s390/block/xpram.c63
-rw-r--r--drivers/s390/char/con3215.c2
-rw-r--r--drivers/s390/char/ctrlchar.c2
-rw-r--r--drivers/s390/char/defkeymap.c6
-rw-r--r--drivers/s390/char/fs3270.c12
-rw-r--r--drivers/s390/char/keyboard.c6
-rw-r--r--drivers/s390/char/raw3270.c34
-rw-r--r--drivers/s390/char/raw3270.h2
-rw-r--r--drivers/s390/char/tape_34xx.c6
-rw-r--r--drivers/s390/char/tty3270.c24
-rw-r--r--drivers/s390/char/vmlogrdr.c6
-rw-r--r--drivers/s390/char/vmwatchdog.c2
-rw-r--r--drivers/s390/cio/ccwgroup.c2
-rw-r--r--drivers/s390/cio/chsc.c34
-rw-r--r--drivers/s390/cio/cio.c4
-rw-r--r--drivers/s390/cio/cio.h3
-rw-r--r--drivers/s390/cio/cmf.c4
-rw-r--r--drivers/s390/cio/css.c36
-rw-r--r--drivers/s390/cio/css.h4
-rw-r--r--drivers/s390/cio/device.c14
-rw-r--r--drivers/s390/cio/device_fsm.c85
-rw-r--r--drivers/s390/cio/device_pgid.c122
-rw-r--r--drivers/s390/cio/device_status.c7
-rw-r--r--drivers/s390/cio/qdio.c2
-rw-r--r--drivers/s390/net/iucv.c2
-rw-r--r--drivers/s390/net/qeth_main.c16
-rw-r--r--drivers/s390/net/qeth_sys.c4
-rw-r--r--drivers/s390/net/smsgiucv.c14
-rw-r--r--drivers/s390/s390mach.c10
-rw-r--r--drivers/s390/scsi/zfcp_fsf.c2
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c47
-rw-r--r--drivers/serial/8250.c25
-rw-r--r--drivers/serial/dz.c2
-rw-r--r--drivers/serial/ip22zilog.c3
-rw-r--r--drivers/serial/serial_core.c1
-rw-r--r--drivers/serial/sunsab.c2
-rw-r--r--drivers/serial/sunsu.c40
-rw-r--r--drivers/serial/vr41xx_siu.c1
-rw-r--r--drivers/usb/Kconfig1
-rw-r--r--drivers/usb/Makefile2
-rw-r--r--drivers/usb/class/cdc-acm.c49
-rw-r--r--drivers/usb/core/Kconfig3
-rw-r--r--drivers/usb/core/hub.c10
-rw-r--r--drivers/usb/core/inode.c2
-rw-r--r--drivers/usb/gadget/epautoconf.c16
-rw-r--r--drivers/usb/gadget/ether.c8
-rw-r--r--drivers/usb/gadget/file_storage.c2
-rw-r--r--drivers/usb/gadget/rndis.c2
-rw-r--r--drivers/usb/gadget/rndis.h2
-rw-r--r--drivers/usb/gadget/serial.c2
-rw-r--r--drivers/usb/gadget/zero.c2
-rw-r--r--drivers/usb/host/ehci-au1xxx.c23
-rw-r--r--drivers/usb/host/ehci-hcd.c7
-rw-r--r--drivers/usb/host/ohci-au1xxx.c7
-rw-r--r--drivers/usb/host/ohci-ep93xx.c225
-rw-r--r--drivers/usb/host/ohci-hcd.c5
-rw-r--r--drivers/usb/host/ohci-hub.c4
-rw-r--r--drivers/usb/host/pci-quirks.c8
-rw-r--r--drivers/usb/input/hid-core.c4
-rw-r--r--drivers/usb/misc/Kconfig10
-rw-r--r--drivers/usb/misc/Makefile2
-rw-r--r--drivers/usb/misc/cy7c63.c244
-rw-r--r--drivers/usb/misc/cypress_cy7c63.c279
-rw-r--r--drivers/usb/misc/usblcd.c6
-rw-r--r--drivers/usb/mon/mon_text.c7
-rw-r--r--drivers/usb/net/rtl8150.c3
-rw-r--r--drivers/usb/serial/Kconfig11
-rw-r--r--drivers/usb/serial/Makefile1
-rw-r--r--drivers/usb/serial/airprime.c2
-rw-r--r--drivers/usb/serial/anydata.c4
-rw-r--r--drivers/usb/serial/ark3116.c2
-rw-r--r--drivers/usb/serial/belkin_sa.c2
-rw-r--r--drivers/usb/serial/bus.c2
-rw-r--r--drivers/usb/serial/console.c3
-rw-r--r--drivers/usb/serial/cp2101.c2
-rw-r--r--drivers/usb/serial/cyberjack.c2
-rw-r--r--drivers/usb/serial/cypress_m8.c2
-rw-r--r--drivers/usb/serial/digi_acceleport.c2
-rw-r--r--drivers/usb/serial/empeg.c2
-rw-r--r--drivers/usb/serial/ezusb.c2
-rw-r--r--drivers/usb/serial/ftdi_sio.c108
-rw-r--r--drivers/usb/serial/ftdi_sio.h15
-rw-r--r--drivers/usb/serial/funsoft.c2
-rw-r--r--drivers/usb/serial/garmin_gps.c3
-rw-r--r--drivers/usb/serial/generic.c3
-rw-r--r--drivers/usb/serial/hp4x.c2
-rw-r--r--drivers/usb/serial/io_edgeport.c2
-rw-r--r--drivers/usb/serial/io_ti.c2
-rw-r--r--drivers/usb/serial/ipaq.c25
-rw-r--r--drivers/usb/serial/ipw.c4
-rw-r--r--drivers/usb/serial/ir-usb.c2
-rw-r--r--drivers/usb/serial/keyspan.c2
-rw-r--r--drivers/usb/serial/keyspan_pda.c3
-rw-r--r--drivers/usb/serial/kl5kusb105.c2
-rw-r--r--drivers/usb/serial/kobil_sct.c2
-rw-r--r--drivers/usb/serial/mct_u232.c2
-rw-r--r--drivers/usb/serial/navman.c2
-rw-r--r--drivers/usb/serial/omninet.c2
-rw-r--r--drivers/usb/serial/option.c8
-rw-r--r--drivers/usb/serial/pl2303.c4
-rw-r--r--drivers/usb/serial/pl2303.h5
-rw-r--r--drivers/usb/serial/safe_serial.c2
-rw-r--r--drivers/usb/serial/sierra.c75
-rw-r--r--drivers/usb/serial/ti_usb_3410_5052.c2
-rw-r--r--drivers/usb/serial/usb-serial.c25
-rw-r--r--drivers/usb/serial/visor.c39
-rw-r--r--drivers/usb/serial/whiteheat.c2
-rw-r--r--drivers/usb/storage/scsiglue.c12
-rw-r--r--drivers/usb/storage/unusual_devs.h60
-rw-r--r--drivers/usb/storage/usb.c29
-rw-r--r--drivers/usb/storage/usb.h4
-rw-r--r--drivers/video/Kconfig20
-rw-r--r--drivers/video/Makefile1
-rw-r--r--drivers/video/mbx/Makefile4
-rw-r--r--drivers/video/mbx/mbxdebugfs.c188
-rw-r--r--drivers/video/mbx/mbxfb.c683
-rw-r--r--drivers/video/mbx/reg_bits.h418
-rw-r--r--drivers/video/mbx/regs.h195
-rw-r--r--drivers/w1/masters/ds2482.c2
-rw-r--r--drivers/w1/w1_io.h36
-rw-r--r--fs/Kconfig1
-rw-r--r--fs/char_dev.c22
-rw-r--r--fs/file.c6
-rw-r--r--fs/jfs/jfs_txnmgr.c2
-rw-r--r--fs/jfs/namei.c33
-rw-r--r--fs/namei.c8
-rw-r--r--fs/proc/array.c6
-rw-r--r--fs/proc/base.c33
-rw-r--r--fs/proc/inode.c2
-rw-r--r--fs/proc/kcore.c2
-rw-r--r--fs/reiserfs/procfs.c25
-rw-r--r--fs/splice.c238
-rw-r--r--fs/sysfs/inode.c12
-rw-r--r--include/asm-alpha/barrier.h3
-rw-r--r--include/asm-arm/arch-versatile/platform.h2
-rw-r--r--include/asm-arm/system.h1
-rw-r--r--include/asm-arm26/system.h1
-rw-r--r--include/asm-cris/system.h1
-rw-r--r--include/asm-frv/processor.h3
-rw-r--r--include/asm-frv/system.h1
-rw-r--r--include/asm-generic/Kbuild.asm5
-rw-r--r--include/asm-h8300/processor.h3
-rw-r--r--include/asm-h8300/system.h1
-rw-r--r--include/asm-i386/system.h23
-rw-r--r--include/asm-ia64/system.h3
-rw-r--r--include/asm-m32r/system.h1
-rw-r--r--include/asm-m68k/system.h1
-rw-r--r--include/asm-m68knommu/processor.h3
-rw-r--r--include/asm-m68knommu/system.h1
-rw-r--r--include/asm-m68knommu/uaccess.h12
-rw-r--r--include/asm-mips/apm.h1
-rw-r--r--include/asm-mips/atomic.h2
-rw-r--r--include/asm-mips/bitops.h2
-rw-r--r--include/asm-mips/cpu-features.h10
-rw-r--r--include/asm-mips/cpu.h2
-rw-r--r--include/asm-mips/inst.h2
-rw-r--r--include/asm-mips/irqflags.h (renamed from include/asm-mips/interrupt.h)70
-rw-r--r--include/asm-mips/mach-cobalt/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-excite/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-excite/excite.h1
-rw-r--r--include/asm-mips/mach-ip27/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-ja/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-mips/cpu-feature-overrides.h4
-rw-r--r--include/asm-mips/mach-ocelot3/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-sibyte/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mach-sim/cpu-feature-overrides.h4
-rw-r--r--include/asm-mips/mach-yosemite/cpu-feature-overrides.h2
-rw-r--r--include/asm-mips/mipsregs.h4
-rw-r--r--include/asm-mips/page.h12
-rw-r--r--include/asm-mips/system.h5
-rw-r--r--include/asm-mips/time.h4
-rw-r--r--include/asm-mips/unistd.h18
-rw-r--r--include/asm-mips/vr41xx/capcella.h2
-rw-r--r--include/asm-mips/vr41xx/cmbvr4133.h6
-rw-r--r--include/asm-mips/vr41xx/e55.h43
-rw-r--r--include/asm-mips/vr41xx/irq.h101
-rw-r--r--include/asm-mips/vr41xx/mpc30x.h2
-rw-r--r--include/asm-mips/vr41xx/tb0219.h2
-rw-r--r--include/asm-mips/vr41xx/tb0226.h2
-rw-r--r--include/asm-mips/vr41xx/tb0287.h2
-rw-r--r--include/asm-mips/vr41xx/vr41xx.h53
-rw-r--r--include/asm-mips/vr41xx/vrc4173.h221
-rw-r--r--include/asm-mips/vr41xx/workpad.h43
-rw-r--r--include/asm-parisc/system.h2
-rw-r--r--include/asm-powerpc/system.h1
-rw-r--r--include/asm-ppc/system.h1
-rw-r--r--include/asm-s390/bug.h11
-rw-r--r--include/asm-s390/ccwdev.h2
-rw-r--r--include/asm-s390/cio.h2
-rw-r--r--include/asm-s390/futex.h5
-rw-r--r--include/asm-s390/irqflags.h18
-rw-r--r--include/asm-s390/pgalloc.h2
-rw-r--r--include/asm-s390/processor.h16
-rw-r--r--include/asm-s390/setup.h3
-rw-r--r--include/asm-s390/system.h1
-rw-r--r--include/asm-sh/processor.h3
-rw-r--r--include/asm-sh/system.h1
-rw-r--r--include/asm-sh64/processor.h3
-rw-r--r--include/asm-sh64/system.h1
-rw-r--r--include/asm-sparc/system.h1
-rw-r--r--include/asm-sparc64/Kbuild2
-rw-r--r--include/asm-sparc64/system.h2
-rw-r--r--include/asm-v850/processor.h3
-rw-r--r--include/asm-v850/system.h1
-rw-r--r--include/asm-x86_64/system.h1
-rw-r--r--include/asm-xtensa/processor.h3
-rw-r--r--include/asm-xtensa/system.h1
-rw-r--r--include/linux/delayacct.h119
-rw-r--r--include/linux/hdlc.h2
-rw-r--r--include/linux/i2c-id.h1
-rw-r--r--include/linux/i2c.h2
-rw-r--r--include/linux/if_vlan.h5
-rw-r--r--include/linux/ioport.h2
-rw-r--r--include/linux/kthread.h1
-rw-r--r--include/linux/list.h11
-rw-r--r--include/linux/module.h10
-rw-r--r--include/linux/namei.h2
-rw-r--r--include/linux/nsc_gpio.h2
-rw-r--r--include/linux/pci.h1
-rw-r--r--include/linux/pci_regs.h16
-rw-r--r--include/linux/pm_legacy.h7
-rw-r--r--include/linux/root_dev.h2
-rw-r--r--include/linux/sched.h56
-rw-r--r--include/linux/serial_core.h1
-rw-r--r--include/linux/taskstats.h137
-rw-r--r--include/linux/taskstats_kern.h89
-rw-r--r--include/linux/time.h12
-rw-r--r--include/linux/usb.h2
-rw-r--r--include/linux/usb/serial.h (renamed from drivers/usb/serial/usb-serial.h)6
-rw-r--r--include/linux/usb_ch9.h7
-rw-r--r--include/linux/usb_gadget.h4
-rw-r--r--include/linux/usb_usual.h2
-rw-r--r--include/linux/vmalloc.h1
-rw-r--r--include/net/genetlink.h20
-rw-r--r--include/rdma/ib_addr.h10
-rw-r--r--include/rdma/ib_fmr_pool.h2
-rw-r--r--include/sound/core.h2
-rw-r--r--include/sound/cs46xx.h1
-rw-r--r--include/video/mbxfb.h28
-rw-r--r--init/Kconfig24
-rw-r--r--init/main.c4
-rw-r--r--kernel/Makefile2
-rw-r--r--kernel/acct.c4
-rw-r--r--kernel/delayacct.c178
-rw-r--r--kernel/exit.c10
-rw-r--r--kernel/fork.c6
-rw-r--r--kernel/kallsyms.c4
-rw-r--r--kernel/kthread.c24
-rw-r--r--kernel/module.c11
-rw-r--r--kernel/power/pm.c37
-rw-r--r--kernel/resource.c2
-rw-r--r--kernel/rtmutex-tester.c1
-rw-r--r--kernel/sched.c84
-rw-r--r--kernel/softirq.c2
-rw-r--r--kernel/sys.c2
-rw-r--r--kernel/taskstats.c568
-rw-r--r--kernel/timer.c20
-rw-r--r--lib/Kconfig.debug10
-rw-r--r--lib/idr.c16
-rw-r--r--mm/memory.c6
-rw-r--r--mm/nommu.c2
-rw-r--r--mm/slab.c74
-rw-r--r--mm/vmalloc.c7
-rw-r--r--net/ax25/af_ax25.c14
-rw-r--r--net/ax25/ax25_ds_subr.c8
-rw-r--r--net/ax25/ax25_ds_timer.c4
-rw-r--r--net/ax25/ax25_iface.c18
-rw-r--r--net/bluetooth/cmtp/capi.c4
-rw-r--r--net/bluetooth/cmtp/core.c3
-rw-r--r--net/bluetooth/hci_core.c7
-rw-r--r--net/bluetooth/hidp/Kconfig3
-rw-r--r--net/bluetooth/hidp/core.c3
-rw-r--r--net/bluetooth/l2cap.c18
-rw-r--r--net/bluetooth/rfcomm/core.c9
-rw-r--r--net/bluetooth/rfcomm/tty.c3
-rw-r--r--net/bluetooth/sco.c12
-rw-r--r--net/core/ethtool.c2
-rw-r--r--net/core/skbuff.c91
-rw-r--r--net/core/stream.c16
-rw-r--r--net/ipv4/fib_trie.c2
-rw-r--r--net/ipv4/ip_input.c3
-rw-r--r--net/ipv4/ipcomp.c3
-rw-r--r--net/ipv4/tcp_highspeed.c13
-rw-r--r--net/ipv6/addrconf.c25
-rw-r--r--net/ipv6/ipcomp6.c3
-rw-r--r--net/netrom/af_netrom.c21
-rw-r--r--net/netrom/nr_timer.c2
-rw-r--r--net/rose/af_rose.c9
-rw-r--r--net/sched/act_api.c2
-rw-r--r--net/sched/sch_htb.c4
-rw-r--r--security/selinux/hooks.c14
-rw-r--r--sound/core/sound.c3
-rw-r--r--sound/core/timer.c5
-rw-r--r--sound/i2c/cs8427.c116
-rw-r--r--sound/isa/cs423x/Makefile1
-rw-r--r--sound/isa/gus/gusextreme.c2
-rw-r--r--sound/isa/wavefront/wavefront_fx.c36
-rw-r--r--sound/isa/wavefront/wavefront_midi.c2
-rw-r--r--sound/isa/wavefront/wavefront_synth.c14
-rw-r--r--sound/pci/Kconfig14
-rw-r--r--sound/pci/ad1889.c8
-rw-r--r--sound/pci/ali5451/ali5451.c2
-rw-r--r--sound/pci/als300.c2
-rw-r--r--sound/pci/als4000.c2
-rw-r--r--sound/pci/atiixp.c2
-rw-r--r--sound/pci/atiixp_modem.c2
-rw-r--r--sound/pci/au88x0/au8810.c2
-rw-r--r--sound/pci/au88x0/au8820.c2
-rw-r--r--sound/pci/au88x0/au8830.c2
-rw-r--r--sound/pci/au88x0/au88x0.h3
-rw-r--r--sound/pci/au88x0/au88x0_a3d.c29
-rw-r--r--sound/pci/au88x0/au88x0_core.c4
-rw-r--r--sound/pci/azt3328.c2
-rw-r--r--sound/pci/bt87x.c2
-rw-r--r--sound/pci/ca0106/ca0106_main.c2
-rw-r--r--sound/pci/cmipci.c2
-rw-r--r--sound/pci/cs4281.c2
-rw-r--r--sound/pci/cs46xx/cs46xx.c2
-rw-r--r--sound/pci/cs46xx/cs46xx_lib.c7
-rw-r--r--sound/pci/cs5535audio/cs5535audio.c2
-rw-r--r--sound/pci/emu10k1/emu10k1.c2
-rw-r--r--sound/pci/emu10k1/emu10k1_main.c10
-rw-r--r--sound/pci/emu10k1/emu10k1x.c37
-rw-r--r--sound/pci/emu10k1/emumpu401.c35
-rw-r--r--sound/pci/ens1370.c2
-rw-r--r--sound/pci/es1938.c2
-rw-r--r--sound/pci/es1968.c2
-rw-r--r--sound/pci/fm801.c4
-rw-r--r--sound/pci/hda/hda_intel.c2
-rw-r--r--sound/pci/hda/patch_analog.c19
-rw-r--r--sound/pci/ice1712/aureon.c2
-rw-r--r--sound/pci/ice1712/ice1712.c2
-rw-r--r--sound/pci/ice1712/ice1724.c2
-rw-r--r--sound/pci/intel8x0.c8
-rw-r--r--sound/pci/intel8x0m.c2
-rw-r--r--sound/pci/korg1212/korg1212.c2
-rw-r--r--sound/pci/maestro3.c10
-rw-r--r--sound/pci/mixart/mixart.c2
-rw-r--r--sound/pci/nm256/nm256.c2
-rw-r--r--sound/pci/pcxhr/pcxhr.c2
-rw-r--r--sound/pci/riptide/riptide.c2
-rw-r--r--sound/pci/rme32.c2
-rw-r--r--sound/pci/rme96.c2
-rw-r--r--sound/pci/rme9652/hdsp.c4
-rw-r--r--sound/pci/rme9652/rme9652.c2
-rw-r--r--sound/pci/sonicvibes.c2
-rw-r--r--sound/pci/trident/trident.c2
-rw-r--r--sound/pci/via82xx.c2
-rw-r--r--sound/pci/via82xx_modem.c2
-rw-r--r--sound/pci/vx222/vx222.c2
-rw-r--r--sound/pci/ymfpci/ymfpci.c2
-rw-r--r--sound/pcmcia/pdaudiocf/pdaudiocf.c4
653 files changed, 10895 insertions, 5518 deletions
diff --git a/Documentation/DMA-mapping.txt b/Documentation/DMA-mapping.txt
index 7c717699032c..63392c9132b4 100644
--- a/Documentation/DMA-mapping.txt
+++ b/Documentation/DMA-mapping.txt
@@ -698,12 +698,12 @@ these interfaces. Remember that, as defined, consistent mappings are
698always going to be SAC addressable. 698always going to be SAC addressable.
699 699
700The first thing your driver needs to do is query the PCI platform 700The first thing your driver needs to do is query the PCI platform
701layer with your devices DAC addressing capabilities: 701layer if it is capable of handling your devices DAC addressing
702capabilities:
702 703
703 int pci_dac_set_dma_mask(struct pci_dev *pdev, u64 mask); 704 int pci_dac_dma_supported(struct pci_dev *hwdev, u64 mask);
704 705
705This routine behaves identically to pci_set_dma_mask. You may not 706You may not use the following interfaces if this routine fails.
706use the following interfaces if this routine fails.
707 707
708Next, DMA addresses using this API are kept track of using the 708Next, DMA addresses using this API are kept track of using the
709dma64_addr_t type. It is guaranteed to be big enough to hold any 709dma64_addr_t type. It is guaranteed to be big enough to hold any
diff --git a/Documentation/accounting/delay-accounting.txt b/Documentation/accounting/delay-accounting.txt
new file mode 100644
index 000000000000..be215e58423b
--- /dev/null
+++ b/Documentation/accounting/delay-accounting.txt
@@ -0,0 +1,110 @@
1Delay accounting
2----------------
3
4Tasks encounter delays in execution when they wait
5for some kernel resource to become available e.g. a
6runnable task may wait for a free CPU to run on.
7
8The per-task delay accounting functionality measures
9the delays experienced by a task while
10
11a) waiting for a CPU (while being runnable)
12b) completion of synchronous block I/O initiated by the task
13c) swapping in pages
14
15and makes these statistics available to userspace through
16the taskstats interface.
17
18Such delays provide feedback for setting a task's cpu priority,
19io priority and rss limit values appropriately. Long delays for
20important tasks could be a trigger for raising its corresponding priority.
21
22The functionality, through its use of the taskstats interface, also provides
23delay statistics aggregated for all tasks (or threads) belonging to a
24thread group (corresponding to a traditional Unix process). This is a commonly
25needed aggregation that is more efficiently done by the kernel.
26
27Userspace utilities, particularly resource management applications, can also
28aggregate delay statistics into arbitrary groups. To enable this, delay
29statistics of a task are available both during its lifetime as well as on its
30exit, ensuring continuous and complete monitoring can be done.
31
32
33Interface
34---------
35
36Delay accounting uses the taskstats interface which is described
37in detail in a separate document in this directory. Taskstats returns a
38generic data structure to userspace corresponding to per-pid and per-tgid
39statistics. The delay accounting functionality populates specific fields of
40this structure. See
41 include/linux/taskstats.h
42for a description of the fields pertaining to delay accounting.
43It will generally be in the form of counters returning the cumulative
44delay seen for cpu, sync block I/O, swapin etc.
45
46Taking the difference of two successive readings of a given
47counter (say cpu_delay_total) for a task will give the delay
48experienced by the task waiting for the corresponding resource
49in that interval.
50
51When a task exits, records containing the per-task statistics
52are sent to userspace without requiring a command. If it is the last exiting
53task of a thread group, the per-tgid statistics are also sent. More details
54are given in the taskstats interface description.
55
56The getdelays.c userspace utility in this directory allows simple commands to
57be run and the corresponding delay statistics to be displayed. It also serves
58as an example of using the taskstats interface.
59
60Usage
61-----
62
63Compile the kernel with
64 CONFIG_TASK_DELAY_ACCT=y
65 CONFIG_TASKSTATS=y
66
67Enable the accounting at boot time by adding
68the following to the kernel boot options
69 delayacct
70
71and after the system has booted up, use a utility
72similar to getdelays.c to access the delays
73seen by a given task or a task group (tgid).
74The utility also allows a given command to be
75executed and the corresponding delays to be
76seen.
77
78General format of the getdelays command
79
80getdelays [-t tgid] [-p pid] [-c cmd...]
81
82
83Get delays, since system boot, for pid 10
84# ./getdelays -p 10
85(output similar to next case)
86
87Get sum of delays, since system boot, for all pids with tgid 5
88# ./getdelays -t 5
89
90
91CPU count real total virtual total delay total
92 7876 92005750 100000000 24001500
93IO count delay total
94 0 0
95MEM count delay total
96 0 0
97
98Get delays seen in executing a given simple command
99# ./getdelays -c ls /
100
101bin data1 data3 data5 dev home media opt root srv sys usr
102boot data2 data4 data6 etc lib mnt proc sbin subdomain tmp var
103
104
105CPU count real total virtual total delay total
106 6 4000250 4000000 0
107IO count delay total
108 0 0
109MEM count delay total
110 0 0
diff --git a/Documentation/accounting/getdelays.c b/Documentation/accounting/getdelays.c
new file mode 100644
index 000000000000..795ca3911cc5
--- /dev/null
+++ b/Documentation/accounting/getdelays.c
@@ -0,0 +1,396 @@
1/* getdelays.c
2 *
3 * Utility to get per-pid and per-tgid delay accounting statistics
4 * Also illustrates usage of the taskstats interface
5 *
6 * Copyright (C) Shailabh Nagar, IBM Corp. 2005
7 * Copyright (C) Balbir Singh, IBM Corp. 2006
8 * Copyright (c) Jay Lan, SGI. 2006
9 *
10 */
11
12#include <stdio.h>
13#include <stdlib.h>
14#include <errno.h>
15#include <unistd.h>
16#include <poll.h>
17#include <string.h>
18#include <fcntl.h>
19#include <sys/types.h>
20#include <sys/stat.h>
21#include <sys/socket.h>
22#include <sys/types.h>
23#include <signal.h>
24
25#include <linux/genetlink.h>
26#include <linux/taskstats.h>
27
28/*
29 * Generic macros for dealing with netlink sockets. Might be duplicated
30 * elsewhere. It is recommended that commercial grade applications use
31 * libnl or libnetlink and use the interfaces provided by the library
32 */
33#define GENLMSG_DATA(glh) ((void *)(NLMSG_DATA(glh) + GENL_HDRLEN))
34#define GENLMSG_PAYLOAD(glh) (NLMSG_PAYLOAD(glh, 0) - GENL_HDRLEN)
35#define NLA_DATA(na) ((void *)((char*)(na) + NLA_HDRLEN))
36#define NLA_PAYLOAD(len) (len - NLA_HDRLEN)
37
38#define err(code, fmt, arg...) do { printf(fmt, ##arg); exit(code); } while (0)
39int done = 0;
40int rcvbufsz=0;
41
42 char name[100];
43int dbg=0, print_delays=0;
44__u64 stime, utime;
45#define PRINTF(fmt, arg...) { \
46 if (dbg) { \
47 printf(fmt, ##arg); \
48 } \
49 }
50
51/* Maximum size of response requested or message sent */
52#define MAX_MSG_SIZE 256
53/* Maximum number of cpus expected to be specified in a cpumask */
54#define MAX_CPUS 32
55/* Maximum length of pathname to log file */
56#define MAX_FILENAME 256
57
58struct msgtemplate {
59 struct nlmsghdr n;
60 struct genlmsghdr g;
61 char buf[MAX_MSG_SIZE];
62};
63
64char cpumask[100+6*MAX_CPUS];
65
66/*
67 * Create a raw netlink socket and bind
68 */
69static int create_nl_socket(int protocol)
70{
71 int fd;
72 struct sockaddr_nl local;
73
74 fd = socket(AF_NETLINK, SOCK_RAW, protocol);
75 if (fd < 0)
76 return -1;
77
78 if (rcvbufsz)
79 if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF,
80 &rcvbufsz, sizeof(rcvbufsz)) < 0) {
81 printf("Unable to set socket rcv buf size to %d\n",
82 rcvbufsz);
83 return -1;
84 }
85
86 memset(&local, 0, sizeof(local));
87 local.nl_family = AF_NETLINK;
88
89 if (bind(fd, (struct sockaddr *) &local, sizeof(local)) < 0)
90 goto error;
91
92 return fd;
93error:
94 close(fd);
95 return -1;
96}
97
98
99int send_cmd(int sd, __u16 nlmsg_type, __u32 nlmsg_pid,
100 __u8 genl_cmd, __u16 nla_type,
101 void *nla_data, int nla_len)
102{
103 struct nlattr *na;
104 struct sockaddr_nl nladdr;
105 int r, buflen;
106 char *buf;
107
108 struct msgtemplate msg;
109
110 msg.n.nlmsg_len = NLMSG_LENGTH(GENL_HDRLEN);
111 msg.n.nlmsg_type = nlmsg_type;
112 msg.n.nlmsg_flags = NLM_F_REQUEST;
113 msg.n.nlmsg_seq = 0;
114 msg.n.nlmsg_pid = nlmsg_pid;
115 msg.g.cmd = genl_cmd;
116 msg.g.version = 0x1;
117 na = (struct nlattr *) GENLMSG_DATA(&msg);
118 na->nla_type = nla_type;
119 na->nla_len = nla_len + 1 + NLA_HDRLEN;
120 memcpy(NLA_DATA(na), nla_data, nla_len);
121 msg.n.nlmsg_len += NLMSG_ALIGN(na->nla_len);
122
123 buf = (char *) &msg;
124 buflen = msg.n.nlmsg_len ;
125 memset(&nladdr, 0, sizeof(nladdr));
126 nladdr.nl_family = AF_NETLINK;
127 while ((r = sendto(sd, buf, buflen, 0, (struct sockaddr *) &nladdr,
128 sizeof(nladdr))) < buflen) {
129 if (r > 0) {
130 buf += r;
131 buflen -= r;
132 } else if (errno != EAGAIN)
133 return -1;
134 }
135 return 0;
136}
137
138
139/*
140 * Probe the controller in genetlink to find the family id
141 * for the TASKSTATS family
142 */
143int get_family_id(int sd)
144{
145 struct {
146 struct nlmsghdr n;
147 struct genlmsghdr g;
148 char buf[256];
149 } ans;
150
151 int id, rc;
152 struct nlattr *na;
153 int rep_len;
154
155 strcpy(name, TASKSTATS_GENL_NAME);
156 rc = send_cmd(sd, GENL_ID_CTRL, getpid(), CTRL_CMD_GETFAMILY,
157 CTRL_ATTR_FAMILY_NAME, (void *)name,
158 strlen(TASKSTATS_GENL_NAME)+1);
159
160 rep_len = recv(sd, &ans, sizeof(ans), 0);
161 if (ans.n.nlmsg_type == NLMSG_ERROR ||
162 (rep_len < 0) || !NLMSG_OK((&ans.n), rep_len))
163 return 0;
164
165 na = (struct nlattr *) GENLMSG_DATA(&ans);
166 na = (struct nlattr *) ((char *) na + NLA_ALIGN(na->nla_len));
167 if (na->nla_type == CTRL_ATTR_FAMILY_ID) {
168 id = *(__u16 *) NLA_DATA(na);
169 }
170 return id;
171}
172
173void print_delayacct(struct taskstats *t)
174{
175 printf("\n\nCPU %15s%15s%15s%15s\n"
176 " %15llu%15llu%15llu%15llu\n"
177 "IO %15s%15s\n"
178 " %15llu%15llu\n"
179 "MEM %15s%15s\n"
180 " %15llu%15llu\n\n",
181 "count", "real total", "virtual total", "delay total",
182 t->cpu_count, t->cpu_run_real_total, t->cpu_run_virtual_total,
183 t->cpu_delay_total,
184 "count", "delay total",
185 t->blkio_count, t->blkio_delay_total,
186 "count", "delay total", t->swapin_count, t->swapin_delay_total);
187}
188
189int main(int argc, char *argv[])
190{
191 int c, rc, rep_len, aggr_len, len2, cmd_type;
192 __u16 id;
193 __u32 mypid;
194
195 struct nlattr *na;
196 int nl_sd = -1;
197 int len = 0;
198 pid_t tid = 0;
199 pid_t rtid = 0;
200
201 int fd = 0;
202 int count = 0;
203 int write_file = 0;
204 int maskset = 0;
205 char logfile[128];
206 int loop = 0;
207
208 struct msgtemplate msg;
209
210 while (1) {
211 c = getopt(argc, argv, "dw:r:m:t:p:v:l");
212 if (c < 0)
213 break;
214
215 switch (c) {
216 case 'd':
217 printf("print delayacct stats ON\n");
218 print_delays = 1;
219 break;
220 case 'w':
221 strncpy(logfile, optarg, MAX_FILENAME);
222 printf("write to file %s\n", logfile);
223 write_file = 1;
224 break;
225 case 'r':
226 rcvbufsz = atoi(optarg);
227 printf("receive buf size %d\n", rcvbufsz);
228 if (rcvbufsz < 0)
229 err(1, "Invalid rcv buf size\n");
230 break;
231 case 'm':
232 strncpy(cpumask, optarg, sizeof(cpumask));
233 maskset = 1;
234 printf("cpumask %s maskset %d\n", cpumask, maskset);
235 break;
236 case 't':
237 tid = atoi(optarg);
238 if (!tid)
239 err(1, "Invalid tgid\n");
240 cmd_type = TASKSTATS_CMD_ATTR_TGID;
241 print_delays = 1;
242 break;
243 case 'p':
244 tid = atoi(optarg);
245 if (!tid)
246 err(1, "Invalid pid\n");
247 cmd_type = TASKSTATS_CMD_ATTR_PID;
248 print_delays = 1;
249 break;
250 case 'v':
251 printf("debug on\n");
252 dbg = 1;
253 break;
254 case 'l':
255 printf("listen forever\n");
256 loop = 1;
257 break;
258 default:
259 printf("Unknown option %d\n", c);
260 exit(-1);
261 }
262 }
263
264 if (write_file) {
265 fd = open(logfile, O_WRONLY | O_CREAT | O_TRUNC,
266 S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH);
267 if (fd == -1) {
268 perror("Cannot open output file\n");
269 exit(1);
270 }
271 }
272
273 if ((nl_sd = create_nl_socket(NETLINK_GENERIC)) < 0)
274 err(1, "error creating Netlink socket\n");
275
276
277 mypid = getpid();
278 id = get_family_id(nl_sd);
279 if (!id) {
280 printf("Error getting family id, errno %d", errno);
281 goto err;
282 }
283 PRINTF("family id %d\n", id);
284
285 if (maskset) {
286 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
287 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK,
288 &cpumask, sizeof(cpumask));
289 PRINTF("Sent register cpumask, retval %d\n", rc);
290 if (rc < 0) {
291 printf("error sending register cpumask\n");
292 goto err;
293 }
294 }
295
296 if (tid) {
297 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
298 cmd_type, &tid, sizeof(__u32));
299 PRINTF("Sent pid/tgid, retval %d\n", rc);
300 if (rc < 0) {
301 printf("error sending tid/tgid cmd\n");
302 goto done;
303 }
304 }
305
306 do {
307 int i;
308
309 rep_len = recv(nl_sd, &msg, sizeof(msg), 0);
310 PRINTF("received %d bytes\n", rep_len);
311
312 if (rep_len < 0) {
313 printf("nonfatal reply error: errno %d\n", errno);
314 continue;
315 }
316 if (msg.n.nlmsg_type == NLMSG_ERROR ||
317 !NLMSG_OK((&msg.n), rep_len)) {
318 printf("fatal reply error, errno %d\n", errno);
319 goto done;
320 }
321
322 PRINTF("nlmsghdr size=%d, nlmsg_len=%d, rep_len=%d\n",
323 sizeof(struct nlmsghdr), msg.n.nlmsg_len, rep_len);
324
325
326 rep_len = GENLMSG_PAYLOAD(&msg.n);
327
328 na = (struct nlattr *) GENLMSG_DATA(&msg);
329 len = 0;
330 i = 0;
331 while (len < rep_len) {
332 len += NLA_ALIGN(na->nla_len);
333 switch (na->nla_type) {
334 case TASKSTATS_TYPE_AGGR_TGID:
335 /* Fall through */
336 case TASKSTATS_TYPE_AGGR_PID:
337 aggr_len = NLA_PAYLOAD(na->nla_len);
338 len2 = 0;
339 /* For nested attributes, na follows */
340 na = (struct nlattr *) NLA_DATA(na);
341 done = 0;
342 while (len2 < aggr_len) {
343 switch (na->nla_type) {
344 case TASKSTATS_TYPE_PID:
345 rtid = *(int *) NLA_DATA(na);
346 if (print_delays)
347 printf("PID\t%d\n", rtid);
348 break;
349 case TASKSTATS_TYPE_TGID:
350 rtid = *(int *) NLA_DATA(na);
351 if (print_delays)
352 printf("TGID\t%d\n", rtid);
353 break;
354 case TASKSTATS_TYPE_STATS:
355 count++;
356 if (print_delays)
357 print_delayacct((struct taskstats *) NLA_DATA(na));
358 if (fd) {
359 if (write(fd, NLA_DATA(na), na->nla_len) < 0) {
360 err(1,"write error\n");
361 }
362 }
363 if (!loop)
364 goto done;
365 break;
366 default:
367 printf("Unknown nested nla_type %d\n", na->nla_type);
368 break;
369 }
370 len2 += NLA_ALIGN(na->nla_len);
371 na = (struct nlattr *) ((char *) na + len2);
372 }
373 break;
374
375 default:
376 printf("Unknown nla_type %d\n", na->nla_type);
377 break;
378 }
379 na = (struct nlattr *) (GENLMSG_DATA(&msg) + len);
380 }
381 } while (loop);
382done:
383 if (maskset) {
384 rc = send_cmd(nl_sd, id, mypid, TASKSTATS_CMD_GET,
385 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK,
386 &cpumask, sizeof(cpumask));
387 printf("Sent deregister mask, retval %d\n", rc);
388 if (rc < 0)
389 err(rc, "error sending deregister cpumask\n");
390 }
391err:
392 close(nl_sd);
393 if (fd)
394 close(fd);
395 return 0;
396}
diff --git a/Documentation/accounting/taskstats.txt b/Documentation/accounting/taskstats.txt
new file mode 100644
index 000000000000..92ebf29e9041
--- /dev/null
+++ b/Documentation/accounting/taskstats.txt
@@ -0,0 +1,181 @@
1Per-task statistics interface
2-----------------------------
3
4
5Taskstats is a netlink-based interface for sending per-task and
6per-process statistics from the kernel to userspace.
7
8Taskstats was designed for the following benefits:
9
10- efficiently provide statistics during lifetime of a task and on its exit
11- unified interface for multiple accounting subsystems
12- extensibility for use by future accounting patches
13
14Terminology
15-----------
16
17"pid", "tid" and "task" are used interchangeably and refer to the standard
18Linux task defined by struct task_struct. per-pid stats are the same as
19per-task stats.
20
21"tgid", "process" and "thread group" are used interchangeably and refer to the
22tasks that share an mm_struct i.e. the traditional Unix process. Despite the
23use of tgid, there is no special treatment for the task that is thread group
24leader - a process is deemed alive as long as it has any task belonging to it.
25
26Usage
27-----
28
29To get statistics during a task's lifetime, userspace opens a unicast netlink
30socket (NETLINK_GENERIC family) and sends commands specifying a pid or a tgid.
31The response contains statistics for a task (if pid is specified) or the sum of
32statistics for all tasks of the process (if tgid is specified).
33
34To obtain statistics for tasks which are exiting, the userspace listener
35sends a register command and specifies a cpumask. Whenever a task exits on
36one of the cpus in the cpumask, its per-pid statistics are sent to the
37registered listener. Using cpumasks allows the data received by one listener
38to be limited and assists in flow control over the netlink interface and is
39explained in more detail below.
40
41If the exiting task is the last thread exiting its thread group,
42an additional record containing the per-tgid stats is also sent to userspace.
43The latter contains the sum of per-pid stats for all threads in the thread
44group, both past and present.
45
46getdelays.c is a simple utility demonstrating usage of the taskstats interface
47for reporting delay accounting statistics. Users can register cpumasks,
48send commands and process responses, listen for per-tid/tgid exit data,
49write the data received to a file and do basic flow control by increasing
50receive buffer sizes.
51
52Interface
53---------
54
55The user-kernel interface is encapsulated in include/linux/taskstats.h
56
57To avoid this documentation becoming obsolete as the interface evolves, only
58an outline of the current version is given. taskstats.h always overrides the
59description here.
60
61struct taskstats is the common accounting structure for both per-pid and
62per-tgid data. It is versioned and can be extended by each accounting subsystem
63that is added to the kernel. The fields and their semantics are defined in the
64taskstats.h file.
65
66The data exchanged between user and kernel space is a netlink message belonging
67to the NETLINK_GENERIC family and using the netlink attributes interface.
68The messages are in the format
69
70 +----------+- - -+-------------+-------------------+
71 | nlmsghdr | Pad | genlmsghdr | taskstats payload |
72 +----------+- - -+-------------+-------------------+
73
74
75The taskstats payload is one of the following three kinds:
76
771. Commands: Sent from user to kernel. Commands to get data on
78a pid/tgid consist of one attribute, of type TASKSTATS_CMD_ATTR_PID/TGID,
79containing a u32 pid or tgid in the attribute payload. The pid/tgid denotes
80the task/process for which userspace wants statistics.
81
82Commands to register/deregister interest in exit data from a set of cpus
83consist of one attribute, of type
84TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK and contain a cpumask in the
85attribute payload. The cpumask is specified as an ascii string of
86comma-separated cpu ranges e.g. to listen to exit data from cpus 1,2,3,5,7,8
87the cpumask would be "1-3,5,7-8". If userspace forgets to deregister interest
88in cpus before closing the listening socket, the kernel cleans up its interest
89set over time. However, for the sake of efficiency, an explicit deregistration
90is advisable.
91
922. Response for a command: sent from the kernel in response to a userspace
93command. The payload is a series of three attributes of type:
94
95a) TASKSTATS_TYPE_AGGR_PID/TGID : attribute containing no payload but indicates
96a pid/tgid will be followed by some stats.
97
98b) TASKSTATS_TYPE_PID/TGID: attribute whose payload is the pid/tgid whose stats
99is being returned.
100
101c) TASKSTATS_TYPE_STATS: attribute with a struct taskstsats as payload. The
102same structure is used for both per-pid and per-tgid stats.
103
1043. New message sent by kernel whenever a task exits. The payload consists of a
105 series of attributes of the following type:
106
107a) TASKSTATS_TYPE_AGGR_PID: indicates next two attributes will be pid+stats
108b) TASKSTATS_TYPE_PID: contains exiting task's pid
109c) TASKSTATS_TYPE_STATS: contains the exiting task's per-pid stats
110d) TASKSTATS_TYPE_AGGR_TGID: indicates next two attributes will be tgid+stats
111e) TASKSTATS_TYPE_TGID: contains tgid of process to which task belongs
112f) TASKSTATS_TYPE_STATS: contains the per-tgid stats for exiting task's process
113
114
115per-tgid stats
116--------------
117
118Taskstats provides per-process stats, in addition to per-task stats, since
119resource management is often done at a process granularity and aggregating task
120stats in userspace alone is inefficient and potentially inaccurate (due to lack
121of atomicity).
122
123However, maintaining per-process, in addition to per-task stats, within the
124kernel has space and time overheads. To address this, the taskstats code
125accumalates each exiting task's statistics into a process-wide data structure.
126When the last task of a process exits, the process level data accumalated also
127gets sent to userspace (along with the per-task data).
128
129When a user queries to get per-tgid data, the sum of all other live threads in
130the group is added up and added to the accumalated total for previously exited
131threads of the same thread group.
132
133Extending taskstats
134-------------------
135
136There are two ways to extend the taskstats interface to export more
137per-task/process stats as patches to collect them get added to the kernel
138in future:
139
1401. Adding more fields to the end of the existing struct taskstats. Backward
141 compatibility is ensured by the version number within the
142 structure. Userspace will use only the fields of the struct that correspond
143 to the version its using.
144
1452. Defining separate statistic structs and using the netlink attributes
146 interface to return them. Since userspace processes each netlink attribute
147 independently, it can always ignore attributes whose type it does not
148 understand (because it is using an older version of the interface).
149
150
151Choosing between 1. and 2. is a matter of trading off flexibility and
152overhead. If only a few fields need to be added, then 1. is the preferable
153path since the kernel and userspace don't need to incur the overhead of
154processing new netlink attributes. But if the new fields expand the existing
155struct too much, requiring disparate userspace accounting utilities to
156unnecessarily receive large structures whose fields are of no interest, then
157extending the attributes structure would be worthwhile.
158
159Flow control for taskstats
160--------------------------
161
162When the rate of task exits becomes large, a listener may not be able to keep
163up with the kernel's rate of sending per-tid/tgid exit data leading to data
164loss. This possibility gets compounded when the taskstats structure gets
165extended and the number of cpus grows large.
166
167To avoid losing statistics, userspace should do one or more of the following:
168
169- increase the receive buffer sizes for the netlink sockets opened by
170listeners to receive exit data.
171
172- create more listeners and reduce the number of cpus being listened to by
173each listener. In the extreme case, there could be one listener for each cpu.
174Users may also consider setting the cpu affinity of the listener to the subset
175of cpus to which it listens, especially if they are listening to just one cpu.
176
177Despite these measures, if the userspace receives ENOBUFS error messages
178indicated overflow of receive buffers, it should take measures to handle the
179loss of data.
180
181----
diff --git a/Documentation/feature-removal-schedule.txt b/Documentation/feature-removal-schedule.txt
index ee287988934e..9d3a0775a11d 100644
--- a/Documentation/feature-removal-schedule.txt
+++ b/Documentation/feature-removal-schedule.txt
@@ -55,14 +55,6 @@ Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
55 55
56--------------------------- 56---------------------------
57 57
58What: remove EXPORT_SYMBOL(insert_resource)
59When: April 2006
60Files: kernel/resource.c
61Why: No modular usage in the kernel.
62Who: Adrian Bunk <bunk@stusta.de>
63
64---------------------------
65
66What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl]) 58What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
67When: November 2005 59When: November 2005
68Files: drivers/pcmcia/: pcmcia_ioctl.c 60Files: drivers/pcmcia/: pcmcia_ioctl.c
@@ -255,3 +247,14 @@ Why: The interrupt related SA_* flags are replaced by IRQF_* to move them
255Who: Thomas Gleixner <tglx@linutronix.de> 247Who: Thomas Gleixner <tglx@linutronix.de>
256 248
257--------------------------- 249---------------------------
250
251What: i2c-ite and i2c-algo-ite drivers
252When: September 2006
253Why: These drivers never compiled since they were added to the kernel
254 tree 5 years ago. This feature removal can be reevaluated if
255 someone shows interest in the drivers, fixes them and takes over
256 maintenance.
257 http://marc.theaimsgroup.com/?l=linux-mips&m=115040510817448
258Who: Jean Delvare <khali@linux-fr.org>
259
260---------------------------
diff --git a/Documentation/hwmon/abituguru b/Documentation/hwmon/abituguru
index 69cdb527d58f..b2c0d61b39a2 100644
--- a/Documentation/hwmon/abituguru
+++ b/Documentation/hwmon/abituguru
@@ -2,13 +2,36 @@ Kernel driver abituguru
2======================= 2=======================
3 3
4Supported chips: 4Supported chips:
5 * Abit uGuru (Hardware Monitor part only) 5 * Abit uGuru revision 1-3 (Hardware Monitor part only)
6 Prefix: 'abituguru' 6 Prefix: 'abituguru'
7 Addresses scanned: ISA 0x0E0 7 Addresses scanned: ISA 0x0E0
8 Datasheet: Not available, this driver is based on reverse engineering. 8 Datasheet: Not available, this driver is based on reverse engineering.
9 A "Datasheet" has been written based on the reverse engineering it 9 A "Datasheet" has been written based on the reverse engineering it
10 should be available in the same dir as this file under the name 10 should be available in the same dir as this file under the name
11 abituguru-datasheet. 11 abituguru-datasheet.
12 Note:
13 The uGuru is a microcontroller with onboard firmware which programs
14 it to behave as a hwmon IC. There are many different revisions of the
15 firmware and thus effectivly many different revisions of the uGuru.
16 Below is an incomplete list with which revisions are used for which
17 Motherboards:
18 uGuru 1.00 ~ 1.24 (AI7, KV8-MAX3, AN7) (1)
19 uGuru 2.0.0.0 ~ 2.0.4.2 (KV8-PRO)
20 uGuru 2.1.0.0 ~ 2.1.2.8 (AS8, AV8, AA8, AG8, AA8XE, AX8)
21 uGuru 2.2.0.0 ~ 2.2.0.6 (AA8 Fatal1ty)
22 uGuru 2.3.0.0 ~ 2.3.0.9 (AN8)
23 uGuru 3.0.0.0 ~ 3.0.1.2 (AW8, AL8, NI8)
24 uGuru 4.xxxxx? (AT8 32X) (2)
25 1) For revisions 2 and 3 uGuru's the driver can autodetect the
26 sensortype (Volt or Temp) for bank1 sensors, for revision 1 uGuru's
27 this doesnot always work. For these uGuru's the autodection can
28 be overriden with the bank1_types module param. For all 3 known
29 revison 1 motherboards the correct use of this param is:
30 bank1_types=1,1,0,0,0,0,0,2,0,0,0,0,2,0,0,1
31 You may also need to specify the fan_sensors option for these boards
32 fan_sensors=5
33 2) The current version of the abituguru driver is known to NOT work
34 on these Motherboards
12 35
13Authors: 36Authors:
14 Hans de Goede <j.w.r.degoede@hhs.nl>, 37 Hans de Goede <j.w.r.degoede@hhs.nl>,
@@ -22,6 +45,11 @@ Module Parameters
22* force: bool Force detection. Note this parameter only causes the 45* force: bool Force detection. Note this parameter only causes the
23 detection to be skipped, if the uGuru can't be read 46 detection to be skipped, if the uGuru can't be read
24 the module initialization (insmod) will still fail. 47 the module initialization (insmod) will still fail.
48* bank1_types: int[] Bank1 sensortype autodetection override:
49 -1 autodetect (default)
50 0 volt sensor
51 1 temp sensor
52 2 not connected
25* fan_sensors: int Tell the driver how many fan speed sensors there are 53* fan_sensors: int Tell the driver how many fan speed sensors there are
26 on your motherboard. Default: 0 (autodetect). 54 on your motherboard. Default: 0 (autodetect).
27* pwms: int Tell the driver how many fan speed controls (fan 55* pwms: int Tell the driver how many fan speed controls (fan
@@ -29,7 +57,7 @@ Module Parameters
29* verbose: int How verbose should the driver be? (0-3): 57* verbose: int How verbose should the driver be? (0-3):
30 0 normal output 58 0 normal output
31 1 + verbose error reporting 59 1 + verbose error reporting
32 2 + sensors type probing info\n" 60 2 + sensors type probing info (default)
33 3 + retryable error reporting 61 3 + retryable error reporting
34 Default: 2 (the driver is still in the testing phase) 62 Default: 2 (the driver is still in the testing phase)
35 63
diff --git a/Documentation/i2c/busses/i2c-sis96x b/Documentation/i2c/busses/i2c-sis96x
index 00a009b977e9..08d7b2dac69a 100644
--- a/Documentation/i2c/busses/i2c-sis96x
+++ b/Documentation/i2c/busses/i2c-sis96x
@@ -42,8 +42,8 @@ I suspect that this driver could be made to work for the following SiS
42chipsets as well: 635, and 635T. If anyone owns a board with those chips 42chipsets as well: 635, and 635T. If anyone owns a board with those chips
43AND is willing to risk crashing & burning an otherwise well-behaved kernel 43AND is willing to risk crashing & burning an otherwise well-behaved kernel
44in the name of progress... please contact me at <mhoffman@lightlink.com> or 44in the name of progress... please contact me at <mhoffman@lightlink.com> or
45via the project's mailing list: <lm-sensors@lm-sensors.org>. Please 45via the project's mailing list: <i2c@lm-sensors.org>. Please send bug
46send bug reports and/or success stories as well. 46reports and/or success stories as well.
47 47
48 48
49TO DOs 49TO DOs
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 149f62ba14a5..e11f7728ec6f 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -448,6 +448,8 @@ running once the system is up.
448 Format: <area>[,<node>] 448 Format: <area>[,<node>]
449 See also Documentation/networking/decnet.txt. 449 See also Documentation/networking/decnet.txt.
450 450
451 delayacct [KNL] Enable per-task delay accounting
452
451 dhash_entries= [KNL] 453 dhash_entries= [KNL]
452 Set number of hash buckets for dentry cache. 454 Set number of hash buckets for dentry cache.
453 455
diff --git a/Documentation/memory-barriers.txt b/Documentation/memory-barriers.txt
index 28d1bc3edb1c..46b9b389df35 100644
--- a/Documentation/memory-barriers.txt
+++ b/Documentation/memory-barriers.txt
@@ -1015,10 +1015,9 @@ CPU from reordering them.
1015There are some more advanced barrier functions: 1015There are some more advanced barrier functions:
1016 1016
1017 (*) set_mb(var, value) 1017 (*) set_mb(var, value)
1018 (*) set_wmb(var, value)
1019 1018
1020 These assign the value to the variable and then insert at least a write 1019 This assigns the value to the variable and then inserts at least a write
1021 barrier after it, depending on the function. They aren't guaranteed to 1020 barrier after it, depending on the function. It isn't guaranteed to
1022 insert anything more than a compiler barrier in a UP compilation. 1021 insert anything more than a compiler barrier in a UP compilation.
1023 1022
1024 1023
diff --git a/Documentation/mips/time.README b/Documentation/mips/time.README
index 70bc0dd43d6d..69ddc5c14b79 100644
--- a/Documentation/mips/time.README
+++ b/Documentation/mips/time.README
@@ -65,7 +65,7 @@ the following functions or values:
65 1. (optional) set up RTC routines 65 1. (optional) set up RTC routines
66 2. (optional) calibrate and set the mips_counter_frequency 66 2. (optional) calibrate and set the mips_counter_frequency
67 67
68 b) board_timer_setup - a function pointer. Invoked at the end of time_init() 68 b) plat_timer_setup - a function pointer. Invoked at the end of time_init()
69 1. (optional) over-ride any decisions made in time_init() 69 1. (optional) over-ride any decisions made in time_init()
70 2. set up the irqaction for timer interrupt. 70 2. set up the irqaction for timer interrupt.
71 3. enable the timer interrupt 71 3. enable the timer interrupt
@@ -116,19 +116,17 @@ Step 2: the machine setup() function
116 116
117 If you supply board_time_init(), set the function poointer. 117 If you supply board_time_init(), set the function poointer.
118 118
119 Set the function pointer board_timer_setup() (mandatory)
120 119
121 120Step 3: implement rtc routines, board_time_init() and plat_timer_setup()
122Step 3: implement rtc routines, board_time_init() and board_timer_setup()
123 if needed. 121 if needed.
124 122
125 board_time_init() - 123 board_time_init() -
126 a) (optional) set up RTC routines, 124 a) (optional) set up RTC routines,
127 b) (optional) calibrate and set the mips_counter_frequency 125 b) (optional) calibrate and set the mips_counter_frequency
128 (only needed if you intended to use fixed_rate_gettimeoffset 126 (only needed if you intended to use fixed_rate_gettimeoffset
129 or use cpu counter as timer interrupt source) 127 or use cpu counter as timer interrupt source)
130 128
131 board_timer_setup() - 129 plat_timer_setup() -
132 a) (optional) over-write any choices made above by time_init(). 130 a) (optional) over-write any choices made above by time_init().
133 b) machine specific code should setup the timer irqaction. 131 b) machine specific code should setup the timer irqaction.
134 c) enable the timer interrupt 132 c) enable the timer interrupt
diff --git a/Documentation/ramdisk.txt b/Documentation/ramdisk.txt
index 7c25584e082c..52f75b7d51c2 100644
--- a/Documentation/ramdisk.txt
+++ b/Documentation/ramdisk.txt
@@ -6,7 +6,7 @@ Contents:
6 1) Overview 6 1) Overview
7 2) Kernel Command Line Parameters 7 2) Kernel Command Line Parameters
8 3) Using "rdev -r" 8 3) Using "rdev -r"
9 4) An Example of Creating a Compressed RAM Disk 9 4) An Example of Creating a Compressed RAM Disk
10 10
11 11
121) Overview 121) Overview
@@ -34,7 +34,7 @@ make it clearer. The original "ramdisk=<ram_size>" has been kept around for
34compatibility reasons, but it may be removed in the future. 34compatibility reasons, but it may be removed in the future.
35 35
36The new RAM disk also has the ability to load compressed RAM disk images, 36The new RAM disk also has the ability to load compressed RAM disk images,
37allowing one to squeeze more programs onto an average installation or 37allowing one to squeeze more programs onto an average installation or
38rescue floppy disk. 38rescue floppy disk.
39 39
40 40
@@ -51,7 +51,7 @@ default is 4096 (4 MB) (8192 (8 MB) on S390).
51 =================== 51 ===================
52 52
53This parameter tells the RAM disk driver how many bytes to use per block. The 53This parameter tells the RAM disk driver how many bytes to use per block. The
54default is 512. 54default is 1024 (BLOCK_SIZE).
55 55
56 56
573) Using "rdev -r" 573) Using "rdev -r"
@@ -70,7 +70,7 @@ These numbers are no magical secrets, as seen below:
70./arch/i386/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000 70./arch/i386/kernel/setup.c:#define RAMDISK_PROMPT_FLAG 0x8000
71./arch/i386/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000 71./arch/i386/kernel/setup.c:#define RAMDISK_LOAD_FLAG 0x4000
72 72
73Consider a typical two floppy disk setup, where you will have the 73Consider a typical two floppy disk setup, where you will have the
74kernel on disk one, and have already put a RAM disk image onto disk #2. 74kernel on disk one, and have already put a RAM disk image onto disk #2.
75 75
76Hence you want to set bits 0 to 13 as 0, meaning that your RAM disk 76Hence you want to set bits 0 to 13 as 0, meaning that your RAM disk
@@ -97,12 +97,12 @@ Since the default start = 0 and the default prompt = 1, you could use:
97 append = "load_ramdisk=1" 97 append = "load_ramdisk=1"
98 98
99 99
1004) An Example of Creating a Compressed RAM Disk 1004) An Example of Creating a Compressed RAM Disk
101---------------------------------------------- 101----------------------------------------------
102 102
103To create a RAM disk image, you will need a spare block device to 103To create a RAM disk image, you will need a spare block device to
104construct it on. This can be the RAM disk device itself, or an 104construct it on. This can be the RAM disk device itself, or an
105unused disk partition (such as an unmounted swap partition). For this 105unused disk partition (such as an unmounted swap partition). For this
106example, we will use the RAM disk device, "/dev/ram0". 106example, we will use the RAM disk device, "/dev/ram0".
107 107
108Note: This technique should not be done on a machine with less than 8 MB 108Note: This technique should not be done on a machine with less than 8 MB
diff --git a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
index 69866d5997a4..b8dc51ca776c 100644
--- a/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
+++ b/Documentation/sound/alsa/DocBook/writing-an-alsa-driver.tmpl
@@ -1172,7 +1172,7 @@
1172 } 1172 }
1173 1173
1174 /* PCI IDs */ 1174 /* PCI IDs */
1175 static struct pci_device_id snd_mychip_ids[] __devinitdata = { 1175 static struct pci_device_id snd_mychip_ids[] = {
1176 { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, 1176 { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR,
1177 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, 1177 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
1178 .... 1178 ....
@@ -1565,7 +1565,7 @@
1565 <informalexample> 1565 <informalexample>
1566 <programlisting> 1566 <programlisting>
1567<![CDATA[ 1567<![CDATA[
1568 static struct pci_device_id snd_mychip_ids[] __devinitdata = { 1568 static struct pci_device_id snd_mychip_ids[] = {
1569 { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR, 1569 { PCI_VENDOR_ID_FOO, PCI_DEVICE_ID_BAR,
1570 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, 1570 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
1571 .... 1571 ....
diff --git a/Documentation/usb/usb-serial.txt b/Documentation/usb/usb-serial.txt
index f001cd93b79b..02b0f7beb6d1 100644
--- a/Documentation/usb/usb-serial.txt
+++ b/Documentation/usb/usb-serial.txt
@@ -399,10 +399,10 @@ REINER SCT cyberJack pinpad/e-com USB chipcard reader
399 399
400Prolific PL2303 Driver 400Prolific PL2303 Driver
401 401
402 This driver support any device that has the PL2303 chip from Prolific 402 This driver supports any device that has the PL2303 chip from Prolific
403 in it. This includes a number of single port USB to serial 403 in it. This includes a number of single port USB to serial
404 converters and USB GPS devices. Devices from Aten (the UC-232) and 404 converters and USB GPS devices. Devices from Aten (the UC-232) and
405 IO-Data work with this driver. 405 IO-Data work with this driver, as does the DCU-11 mobile-phone cable.
406 406
407 For any questions or problems with this driver, please contact Greg 407 For any questions or problems with this driver, please contact Greg
408 Kroah-Hartman at greg@kroah.com 408 Kroah-Hartman at greg@kroah.com
diff --git a/MAINTAINERS b/MAINTAINERS
index 645a9f85f33f..e99028ca2f7c 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -274,7 +274,7 @@ S: Maintained
274ALI1563 I2C DRIVER 274ALI1563 I2C DRIVER
275P: Rudolf Marek 275P: Rudolf Marek
276M: r.marek@sh.cvut.cz 276M: r.marek@sh.cvut.cz
277L: lm-sensors@lm-sensors.org 277L: i2c@lm-sensors.org
278S: Maintained 278S: Maintained
279 279
280ALPHA PORT 280ALPHA PORT
@@ -771,6 +771,7 @@ M: aliakc@web.de
771P: Jamie Lenehan 771P: Jamie Lenehan
772M: lenehan@twibble.org 772M: lenehan@twibble.org
773W: http://twibble.org/dist/dc395x/ 773W: http://twibble.org/dist/dc395x/
774L: dc395x@twibble.org
774L: http://lists.twibble.org/mailman/listinfo/dc395x/ 775L: http://lists.twibble.org/mailman/listinfo/dc395x/
775S: Maintained 776S: Maintained
776 777
@@ -1249,7 +1250,7 @@ S: Maintained
1249I2C SUBSYSTEM 1250I2C SUBSYSTEM
1250P: Jean Delvare 1251P: Jean Delvare
1251M: khali@linux-fr.org 1252M: khali@linux-fr.org
1252L: lm-sensors@lm-sensors.org 1253L: i2c@lm-sensors.org
1253W: http://www.lm-sensors.nu/ 1254W: http://www.lm-sensors.nu/
1254T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/ 1255T: quilt kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/
1255S: Maintained 1256S: Maintained
@@ -1501,6 +1502,7 @@ P: Yi Zhu
1501M: yi.zhu@intel.com 1502M: yi.zhu@intel.com
1502P: James Ketrenos 1503P: James Ketrenos
1503M: jketreno@linux.intel.com 1504M: jketreno@linux.intel.com
1505L: ipw2100-devel@lists.sourceforge.net
1504L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel 1506L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
1505W: http://ipw2100.sourceforge.net 1507W: http://ipw2100.sourceforge.net
1506S: Supported 1508S: Supported
@@ -1510,6 +1512,7 @@ P: Yi Zhu
1510M: yi.zhu@intel.com 1512M: yi.zhu@intel.com
1511P: James Ketrenos 1513P: James Ketrenos
1512M: jketreno@linux.intel.com 1514M: jketreno@linux.intel.com
1515L: ipw2100-devel@lists.sourceforge.net
1513L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel 1516L: http://lists.sourceforge.net/mailman/listinfo/ipw2100-devel
1514W: http://ipw2200.sourceforge.net 1517W: http://ipw2200.sourceforge.net
1515S: Supported 1518S: Supported
@@ -2093,7 +2096,7 @@ S: Maintained
2093OPENCORES I2C BUS DRIVER 2096OPENCORES I2C BUS DRIVER
2094P: Peter Korsgaard 2097P: Peter Korsgaard
2095M: jacmet@sunsite.dk 2098M: jacmet@sunsite.dk
2096L: lm-sensors@lm-sensors.org 2099L: i2c@lm-sensors.org
2097S: Maintained 2100S: Maintained
2098 2101
2099ORACLE CLUSTER FILESYSTEM 2 (OCFS2) 2102ORACLE CLUSTER FILESYSTEM 2 (OCFS2)
@@ -2226,6 +2229,7 @@ S: Maintained
2226 2229
2227PCMCIA SUBSYSTEM 2230PCMCIA SUBSYSTEM
2228P: Linux PCMCIA Team 2231P: Linux PCMCIA Team
2232L: linux-pcmcia@lists.infradead.org
2229L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia 2233L: http://lists.infradead.org/mailman/listinfo/linux-pcmcia
2230T: git kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git 2234T: git kernel.org:/pub/scm/linux/kernel/git/brodo/pcmcia-2.6.git
2231S: Maintained 2235S: Maintained
@@ -2236,6 +2240,12 @@ M: tsbogend@alpha.franken.de
2236L: netdev@vger.kernel.org 2240L: netdev@vger.kernel.org
2237S: Maintained 2241S: Maintained
2238 2242
2243PER-TASK DELAY ACCOUNTING
2244P: Shailabh Nagar
2245M: nagar@watson.ibm.com
2246L: linux-kernel@vger.kernel.org
2247S: Maintained
2248
2239PERSONALITY HANDLING 2249PERSONALITY HANDLING
2240P: Christoph Hellwig 2250P: Christoph Hellwig
2241M: hch@infradead.org 2251M: hch@infradead.org
@@ -2752,11 +2762,23 @@ P: Christoph Hellwig
2752M: hch@infradead.org 2762M: hch@infradead.org
2753S: Maintained 2763S: Maintained
2754 2764
2765TC CLASSIFIER
2766P: Jamal Hadi Salim
2767M: hadi@cyberus.ca
2768L: netdev@vger.kernel.org
2769S: Maintained
2770
2755TI OMAP RANDOM NUMBER GENERATOR SUPPORT 2771TI OMAP RANDOM NUMBER GENERATOR SUPPORT
2756P: Deepak Saxena 2772P: Deepak Saxena
2757M: dsaxena@plexity.net 2773M: dsaxena@plexity.net
2758S: Maintained 2774S: Maintained
2759 2775
2776TASKSTATS STATISTICS INTERFACE
2777P: Shailabh Nagar
2778M: nagar@watson.ibm.com
2779L: linux-kernel@vger.kernel.org
2780S: Maintained
2781
2760TI PARALLEL LINK CABLE DRIVER 2782TI PARALLEL LINK CABLE DRIVER
2761P: Romain Lievin 2783P: Romain Lievin
2762M: roms@lpg.ticalc.org 2784M: roms@lpg.ticalc.org
@@ -3132,7 +3154,7 @@ S: Maintained
3132VIAPRO SMBUS DRIVER 3154VIAPRO SMBUS DRIVER
3133P: Jean Delvare 3155P: Jean Delvare
3134M: khali@linux-fr.org 3156M: khali@linux-fr.org
3135L: lm-sensors@lm-sensors.org 3157L: i2c@lm-sensors.org
3136S: Maintained 3158S: Maintained
3137 3159
3138UCLINUX (AND M68KNOMMU) 3160UCLINUX (AND M68KNOMMU)
@@ -3180,6 +3202,11 @@ S: Maintained
3180W1 DALLAS'S 1-WIRE BUS 3202W1 DALLAS'S 1-WIRE BUS
3181P: Evgeniy Polyakov 3203P: Evgeniy Polyakov
3182M: johnpol@2ka.mipt.ru 3204M: johnpol@2ka.mipt.ru
3205S: Maintained
3206
3207W83791D HARDWARE MONITORING DRIVER
3208P: Charles Spirakis
3209M: bezaur@gmail.com
3183L: lm-sensors@lm-sensors.org 3210L: lm-sensors@lm-sensors.org
3184S: Maintained 3211S: Maintained
3185 3212
diff --git a/Makefile b/Makefile
index 7c010f3325a9..1dd58d35d72c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 2 1VERSION = 2
2PATCHLEVEL = 6 2PATCHLEVEL = 6
3SUBLEVEL = 18 3SUBLEVEL = 18
4EXTRAVERSION = -rc1 4EXTRAVERSION = -rc2
5NAME=Crazed Snow-Weasel 5NAME=Crazed Snow-Weasel
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index fbc3ab0e1011..04de83f4f008 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -506,7 +506,7 @@ locomo_init_one_child(struct locomo *lchip, struct locomo_dev_info *info)
506 goto out; 506 goto out;
507 } 507 }
508 508
509 strncpy(dev->dev.bus_id,info->name,sizeof(dev->dev.bus_id)); 509 strncpy(dev->dev.bus_id, info->name, sizeof(dev->dev.bus_id));
510 /* 510 /*
511 * If the parent device has a DMA mask associated with it, 511 * If the parent device has a DMA mask associated with it,
512 * propagate it down to the children. 512 * propagate it down to the children.
@@ -729,7 +729,6 @@ __locomo_probe(struct device *me, struct resource *mem, int irq)
729 729
730 for (i = 0; i < ARRAY_SIZE(locomo_devices); i++) 730 for (i = 0; i < ARRAY_SIZE(locomo_devices); i++)
731 locomo_init_one_child(lchip, &locomo_devices[i]); 731 locomo_init_one_child(lchip, &locomo_devices[i]);
732
733 return 0; 732 return 0;
734 733
735 out: 734 out:
diff --git a/arch/arm/common/sharpsl_pm.c b/arch/arm/common/sharpsl_pm.c
index 045e37e07330..59b5ddec480f 100644
--- a/arch/arm/common/sharpsl_pm.c
+++ b/arch/arm/common/sharpsl_pm.c
@@ -412,8 +412,10 @@ static int sharpsl_check_battery_temp(void)
412 val = get_select_val(buff); 412 val = get_select_val(buff);
413 413
414 dev_dbg(sharpsl_pm.dev, "Temperature: %d\n", val); 414 dev_dbg(sharpsl_pm.dev, "Temperature: %d\n", val);
415 if (val > sharpsl_pm.machinfo->charge_on_temp) 415 if (val > sharpsl_pm.machinfo->charge_on_temp) {
416 printk(KERN_WARNING "Not charging: temperature out of limits.\n");
416 return -1; 417 return -1;
418 }
417 419
418 return 0; 420 return 0;
419} 421}
diff --git a/arch/arm/configs/ep93xx_defconfig b/arch/arm/configs/ep93xx_defconfig
index b69e88bbc909..c0de6fcd488a 100644
--- a/arch/arm/configs/ep93xx_defconfig
+++ b/arch/arm/configs/ep93xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:21:01 2006 4# Sun Jul 9 15:21:30 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="deadline"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90CONFIG_ARCH_EP93XX=y 100CONFIG_ARCH_EP93XX=y
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95# CONFIG_ARCH_IXP2000 is not set 107# CONFIG_ARCH_IXP2000 is not set
96# CONFIG_ARCH_IXP23XX is not set 108# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,20 +115,18 @@ CONFIG_ARCH_EP93XX=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111 118
112# 119#
113# Cirrus EP93xx Implementation Options 120# Cirrus EP93xx Implementation Options
114# 121#
122CONFIG_CRUNCH=y
115 123
116# 124#
117# EP93xx Platforms 125# EP93xx Platforms
118# 126#
127CONFIG_MACH_EDB9302=y
128CONFIG_MACH_EDB9315=y
129CONFIG_MACH_EDB9315A=y
119CONFIG_MACH_GESBC9312=y 130CONFIG_MACH_GESBC9312=y
120CONFIG_MACH_TS72XX=y 131CONFIG_MACH_TS72XX=y
121 132
@@ -166,6 +177,7 @@ CONFIG_FLATMEM=y
166CONFIG_FLAT_NODE_MEM_MAP=y 177CONFIG_FLAT_NODE_MEM_MAP=y
167# CONFIG_SPARSEMEM_STATIC is not set 178# CONFIG_SPARSEMEM_STATIC is not set
168CONFIG_SPLIT_PTLOCK_CPUS=4096 179CONFIG_SPLIT_PTLOCK_CPUS=4096
180# CONFIG_RESOURCES_64BIT is not set
169CONFIG_ALIGNMENT_TRAP=y 181CONFIG_ALIGNMENT_TRAP=y
170 182
171# 183#
@@ -233,6 +245,8 @@ CONFIG_SYN_COOKIES=y
233# CONFIG_INET_IPCOMP is not set 245# CONFIG_INET_IPCOMP is not set
234# CONFIG_INET_XFRM_TUNNEL is not set 246# CONFIG_INET_XFRM_TUNNEL is not set
235# CONFIG_INET_TUNNEL is not set 247# CONFIG_INET_TUNNEL is not set
248CONFIG_INET_XFRM_MODE_TRANSPORT=y
249CONFIG_INET_XFRM_MODE_TUNNEL=y
236CONFIG_INET_DIAG=y 250CONFIG_INET_DIAG=y
237CONFIG_INET_TCP_DIAG=y 251CONFIG_INET_TCP_DIAG=y
238# CONFIG_TCP_CONG_ADVANCED is not set 252# CONFIG_TCP_CONG_ADVANCED is not set
@@ -240,6 +254,7 @@ CONFIG_TCP_CONG_BIC=y
240# CONFIG_IPV6 is not set 254# CONFIG_IPV6 is not set
241# CONFIG_INET6_XFRM_TUNNEL is not set 255# CONFIG_INET6_XFRM_TUNNEL is not set
242# CONFIG_INET6_TUNNEL is not set 256# CONFIG_INET6_TUNNEL is not set
257# CONFIG_NETWORK_SECMARK is not set
243# CONFIG_NETFILTER is not set 258# CONFIG_NETFILTER is not set
244 259
245# 260#
@@ -294,6 +309,7 @@ CONFIG_STANDALONE=y
294CONFIG_PREVENT_FIRMWARE_BUILD=y 309CONFIG_PREVENT_FIRMWARE_BUILD=y
295# CONFIG_FW_LOADER is not set 310# CONFIG_FW_LOADER is not set
296# CONFIG_DEBUG_DRIVER is not set 311# CONFIG_DEBUG_DRIVER is not set
312# CONFIG_SYS_HYPERVISOR is not set
297 313
298# 314#
299# Connector - unified userspace <-> kernelspace linker 315# Connector - unified userspace <-> kernelspace linker
@@ -386,6 +402,8 @@ CONFIG_MTD_PHYSMAP_BANKWIDTH=1
386# 402#
387CONFIG_MTD_NAND=y 403CONFIG_MTD_NAND=y
388CONFIG_MTD_NAND_VERIFY_WRITE=y 404CONFIG_MTD_NAND_VERIFY_WRITE=y
405# CONFIG_MTD_NAND_ECC_SMC is not set
406CONFIG_MTD_NAND_TS7250=y
389CONFIG_MTD_NAND_IDS=y 407CONFIG_MTD_NAND_IDS=y
390# CONFIG_MTD_NAND_DISKONCHIP is not set 408# CONFIG_MTD_NAND_DISKONCHIP is not set
391# CONFIG_MTD_NAND_NANDSIM is not set 409# CONFIG_MTD_NAND_NANDSIM is not set
@@ -582,6 +600,7 @@ CONFIG_EP93XX_WATCHDOG=y
582# USB-based Watchdog Cards 600# USB-based Watchdog Cards
583# 601#
584# CONFIG_USBPCWATCHDOG is not set 602# CONFIG_USBPCWATCHDOG is not set
603# CONFIG_HW_RANDOM is not set
585# CONFIG_NVRAM is not set 604# CONFIG_NVRAM is not set
586# CONFIG_DTLK is not set 605# CONFIG_DTLK is not set
587# CONFIG_R3964 is not set 606# CONFIG_R3964 is not set
@@ -613,6 +632,7 @@ CONFIG_I2C_ALGOBIT=y
613# 632#
614# I2C Hardware Bus support 633# I2C Hardware Bus support
615# 634#
635# CONFIG_I2C_OCORES is not set
616# CONFIG_I2C_PARPORT_LIGHT is not set 636# CONFIG_I2C_PARPORT_LIGHT is not set
617# CONFIG_I2C_STUB is not set 637# CONFIG_I2C_STUB is not set
618# CONFIG_I2C_PCA_ISA is not set 638# CONFIG_I2C_PCA_ISA is not set
@@ -641,13 +661,13 @@ CONFIG_I2C_DEBUG_CHIP=y
641# 661#
642# Dallas's 1-wire bus 662# Dallas's 1-wire bus
643# 663#
644# CONFIG_W1 is not set
645 664
646# 665#
647# Hardware Monitoring support 666# Hardware Monitoring support
648# 667#
649CONFIG_HWMON=y 668CONFIG_HWMON=y
650# CONFIG_HWMON_VID is not set 669# CONFIG_HWMON_VID is not set
670# CONFIG_SENSORS_ABITUGURU is not set
651# CONFIG_SENSORS_ADM1021 is not set 671# CONFIG_SENSORS_ADM1021 is not set
652# CONFIG_SENSORS_ADM1025 is not set 672# CONFIG_SENSORS_ADM1025 is not set
653# CONFIG_SENSORS_ADM1026 is not set 673# CONFIG_SENSORS_ADM1026 is not set
@@ -675,8 +695,10 @@ CONFIG_HWMON=y
675# CONFIG_SENSORS_MAX1619 is not set 695# CONFIG_SENSORS_MAX1619 is not set
676# CONFIG_SENSORS_PC87360 is not set 696# CONFIG_SENSORS_PC87360 is not set
677# CONFIG_SENSORS_SMSC47M1 is not set 697# CONFIG_SENSORS_SMSC47M1 is not set
698# CONFIG_SENSORS_SMSC47M192 is not set
678# CONFIG_SENSORS_SMSC47B397 is not set 699# CONFIG_SENSORS_SMSC47B397 is not set
679# CONFIG_SENSORS_W83781D is not set 700# CONFIG_SENSORS_W83781D is not set
701# CONFIG_SENSORS_W83791D is not set
680# CONFIG_SENSORS_W83792D is not set 702# CONFIG_SENSORS_W83792D is not set
681# CONFIG_SENSORS_W83L785TS is not set 703# CONFIG_SENSORS_W83L785TS is not set
682# CONFIG_SENSORS_W83627HF is not set 704# CONFIG_SENSORS_W83627HF is not set
@@ -704,6 +726,7 @@ CONFIG_HWMON=y
704# Multimedia devices 726# Multimedia devices
705# 727#
706# CONFIG_VIDEO_DEV is not set 728# CONFIG_VIDEO_DEV is not set
729CONFIG_VIDEO_V4L2=y
707 730
708# 731#
709# Digital Video Broadcasting Devices 732# Digital Video Broadcasting Devices
@@ -714,6 +737,7 @@ CONFIG_HWMON=y
714# 737#
715# Graphics support 738# Graphics support
716# 739#
740# CONFIG_FIRMWARE_EDID is not set
717# CONFIG_FB is not set 741# CONFIG_FB is not set
718 742
719# 743#
@@ -806,6 +830,7 @@ CONFIG_USB_SERIAL_CONSOLE=y
806# CONFIG_USB_SERIAL_GENERIC is not set 830# CONFIG_USB_SERIAL_GENERIC is not set
807# CONFIG_USB_SERIAL_AIRPRIME is not set 831# CONFIG_USB_SERIAL_AIRPRIME is not set
808# CONFIG_USB_SERIAL_ANYDATA is not set 832# CONFIG_USB_SERIAL_ANYDATA is not set
833# CONFIG_USB_SERIAL_ARK3116 is not set
809# CONFIG_USB_SERIAL_BELKIN is not set 834# CONFIG_USB_SERIAL_BELKIN is not set
810# CONFIG_USB_SERIAL_WHITEHEAT is not set 835# CONFIG_USB_SERIAL_WHITEHEAT is not set
811# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set 836# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
@@ -833,6 +858,7 @@ CONFIG_USB_SERIAL_PL2303=y
833# CONFIG_USB_SERIAL_TI is not set 858# CONFIG_USB_SERIAL_TI is not set
834# CONFIG_USB_SERIAL_CYBERJACK is not set 859# CONFIG_USB_SERIAL_CYBERJACK is not set
835# CONFIG_USB_SERIAL_XIRCOM is not set 860# CONFIG_USB_SERIAL_XIRCOM is not set
861# CONFIG_USB_SERIAL_OPTION is not set
836# CONFIG_USB_SERIAL_OMNINET is not set 862# CONFIG_USB_SERIAL_OMNINET is not set
837 863
838# 864#
@@ -845,10 +871,12 @@ CONFIG_USB_SERIAL_PL2303=y
845# CONFIG_USB_LEGOTOWER is not set 871# CONFIG_USB_LEGOTOWER is not set
846# CONFIG_USB_LCD is not set 872# CONFIG_USB_LCD is not set
847# CONFIG_USB_LED is not set 873# CONFIG_USB_LED is not set
874# CONFIG_USB_CY7C63 is not set
848# CONFIG_USB_CYTHERM is not set 875# CONFIG_USB_CYTHERM is not set
849# CONFIG_USB_PHIDGETKIT is not set 876# CONFIG_USB_PHIDGETKIT is not set
850# CONFIG_USB_PHIDGETSERVO is not set 877# CONFIG_USB_PHIDGETSERVO is not set
851# CONFIG_USB_IDMOUSE is not set 878# CONFIG_USB_IDMOUSE is not set
879# CONFIG_USB_APPLEDISPLAY is not set
852# CONFIG_USB_LD is not set 880# CONFIG_USB_LD is not set
853# CONFIG_USB_TEST is not set 881# CONFIG_USB_TEST is not set
854 882
@@ -880,17 +908,24 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
880CONFIG_RTC_INTF_SYSFS=y 908CONFIG_RTC_INTF_SYSFS=y
881CONFIG_RTC_INTF_PROC=y 909CONFIG_RTC_INTF_PROC=y
882CONFIG_RTC_INTF_DEV=y 910CONFIG_RTC_INTF_DEV=y
911# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
883 912
884# 913#
885# RTC drivers 914# RTC drivers
886# 915#
887# CONFIG_RTC_DRV_X1205 is not set 916# CONFIG_RTC_DRV_X1205 is not set
917# CONFIG_RTC_DRV_DS1307 is not set
918# CONFIG_RTC_DRV_DS1553 is not set
888# CONFIG_RTC_DRV_DS1672 is not set 919# CONFIG_RTC_DRV_DS1672 is not set
920# CONFIG_RTC_DRV_DS1742 is not set
889# CONFIG_RTC_DRV_PCF8563 is not set 921# CONFIG_RTC_DRV_PCF8563 is not set
922# CONFIG_RTC_DRV_PCF8583 is not set
890# CONFIG_RTC_DRV_RS5C372 is not set 923# CONFIG_RTC_DRV_RS5C372 is not set
891CONFIG_RTC_DRV_M48T86=y 924CONFIG_RTC_DRV_M48T86=y
892CONFIG_RTC_DRV_EP93XX=y 925CONFIG_RTC_DRV_EP93XX=y
926# CONFIG_RTC_DRV_PL031 is not set
893# CONFIG_RTC_DRV_TEST is not set 927# CONFIG_RTC_DRV_TEST is not set
928# CONFIG_RTC_DRV_V3020 is not set
894 929
895# 930#
896# File systems 931# File systems
@@ -910,6 +945,7 @@ CONFIG_JBD=y
910# CONFIG_MINIX_FS is not set 945# CONFIG_MINIX_FS is not set
911# CONFIG_ROMFS_FS is not set 946# CONFIG_ROMFS_FS is not set
912CONFIG_INOTIFY=y 947CONFIG_INOTIFY=y
948CONFIG_INOTIFY_USER=y
913# CONFIG_QUOTA is not set 949# CONFIG_QUOTA is not set
914CONFIG_DNOTIFY=y 950CONFIG_DNOTIFY=y
915# CONFIG_AUTOFS_FS is not set 951# CONFIG_AUTOFS_FS is not set
@@ -957,6 +993,7 @@ CONFIG_JFFS2_FS=y
957CONFIG_JFFS2_FS_DEBUG=0 993CONFIG_JFFS2_FS_DEBUG=0
958CONFIG_JFFS2_FS_WRITEBUFFER=y 994CONFIG_JFFS2_FS_WRITEBUFFER=y
959# CONFIG_JFFS2_SUMMARY is not set 995# CONFIG_JFFS2_SUMMARY is not set
996# CONFIG_JFFS2_FS_XATTR is not set
960# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 997# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
961CONFIG_JFFS2_ZLIB=y 998CONFIG_JFFS2_ZLIB=y
962CONFIG_JFFS2_RTIME=y 999CONFIG_JFFS2_RTIME=y
@@ -986,6 +1023,7 @@ CONFIG_SUNRPC=y
986# CONFIG_RPCSEC_GSS_SPKM3 is not set 1023# CONFIG_RPCSEC_GSS_SPKM3 is not set
987# CONFIG_SMB_FS is not set 1024# CONFIG_SMB_FS is not set
988# CONFIG_CIFS is not set 1025# CONFIG_CIFS is not set
1026# CONFIG_CIFS_DEBUG2 is not set
989# CONFIG_NCP_FS is not set 1027# CONFIG_NCP_FS is not set
990# CONFIG_CODA_FS is not set 1028# CONFIG_CODA_FS is not set
991# CONFIG_AFS_FS is not set 1029# CONFIG_AFS_FS is not set
@@ -1066,15 +1104,20 @@ CONFIG_NLS_ISO8859_1=y
1066# 1104#
1067# CONFIG_PRINTK_TIME is not set 1105# CONFIG_PRINTK_TIME is not set
1068CONFIG_MAGIC_SYSRQ=y 1106CONFIG_MAGIC_SYSRQ=y
1107# CONFIG_UNUSED_SYMBOLS is not set
1069CONFIG_DEBUG_KERNEL=y 1108CONFIG_DEBUG_KERNEL=y
1070CONFIG_LOG_BUF_SHIFT=14 1109CONFIG_LOG_BUF_SHIFT=14
1071CONFIG_DETECT_SOFTLOCKUP=y 1110CONFIG_DETECT_SOFTLOCKUP=y
1072# CONFIG_SCHEDSTATS is not set 1111# CONFIG_SCHEDSTATS is not set
1073CONFIG_DEBUG_SLAB=y 1112CONFIG_DEBUG_SLAB=y
1074# CONFIG_DEBUG_SLAB_LEAK is not set 1113# CONFIG_DEBUG_SLAB_LEAK is not set
1075CONFIG_DEBUG_MUTEXES=y 1114# CONFIG_DEBUG_RT_MUTEXES is not set
1115# CONFIG_RT_MUTEX_TESTER is not set
1076CONFIG_DEBUG_SPINLOCK=y 1116CONFIG_DEBUG_SPINLOCK=y
1117CONFIG_DEBUG_MUTEXES=y
1118# CONFIG_DEBUG_RWSEMS is not set
1077# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1119# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1120# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1078# CONFIG_DEBUG_KOBJECT is not set 1121# CONFIG_DEBUG_KOBJECT is not set
1079CONFIG_DEBUG_BUGVERBOSE=y 1122CONFIG_DEBUG_BUGVERBOSE=y
1080# CONFIG_DEBUG_INFO is not set 1123# CONFIG_DEBUG_INFO is not set
@@ -1114,3 +1157,4 @@ CONFIG_CRC32=y
1114CONFIG_LIBCRC32C=y 1157CONFIG_LIBCRC32C=y
1115CONFIG_ZLIB_INFLATE=y 1158CONFIG_ZLIB_INFLATE=y
1116CONFIG_ZLIB_DEFLATE=y 1159CONFIG_ZLIB_DEFLATE=y
1160CONFIG_PLIST=y
diff --git a/arch/arm/configs/ixp2000_defconfig b/arch/arm/configs/ixp2000_defconfig
index e6f3e4873d6c..27b3e31a8ad8 100644
--- a/arch/arm/configs/ixp2000_defconfig
+++ b/arch/arm/configs/ixp2000_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:12:49 2006 4# Sun Jul 9 15:28:50 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90# CONFIG_ARCH_EP93XX is not set 100# CONFIG_ARCH_EP93XX is not set
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95CONFIG_ARCH_IXP2000=y 107CONFIG_ARCH_IXP2000=y
96# CONFIG_ARCH_IXP23XX is not set 108# CONFIG_ARCH_IXP23XX is not set
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,12 +115,6 @@ CONFIG_ARCH_IXP2000=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 118CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
112 119
113# 120#
@@ -171,6 +178,7 @@ CONFIG_FLATMEM=y
171CONFIG_FLAT_NODE_MEM_MAP=y 178CONFIG_FLAT_NODE_MEM_MAP=y
172# CONFIG_SPARSEMEM_STATIC is not set 179# CONFIG_SPARSEMEM_STATIC is not set
173CONFIG_SPLIT_PTLOCK_CPUS=4096 180CONFIG_SPLIT_PTLOCK_CPUS=4096
181# CONFIG_RESOURCES_64BIT is not set
174CONFIG_ALIGNMENT_TRAP=y 182CONFIG_ALIGNMENT_TRAP=y
175 183
176# 184#
@@ -218,6 +226,8 @@ CONFIG_NET=y
218CONFIG_PACKET=y 226CONFIG_PACKET=y
219CONFIG_PACKET_MMAP=y 227CONFIG_PACKET_MMAP=y
220CONFIG_UNIX=y 228CONFIG_UNIX=y
229CONFIG_XFRM=y
230# CONFIG_XFRM_USER is not set
221# CONFIG_NET_KEY is not set 231# CONFIG_NET_KEY is not set
222CONFIG_INET=y 232CONFIG_INET=y
223# CONFIG_IP_MULTICAST is not set 233# CONFIG_IP_MULTICAST is not set
@@ -236,6 +246,8 @@ CONFIG_SYN_COOKIES=y
236# CONFIG_INET_IPCOMP is not set 246# CONFIG_INET_IPCOMP is not set
237# CONFIG_INET_XFRM_TUNNEL is not set 247# CONFIG_INET_XFRM_TUNNEL is not set
238# CONFIG_INET_TUNNEL is not set 248# CONFIG_INET_TUNNEL is not set
249CONFIG_INET_XFRM_MODE_TRANSPORT=y
250CONFIG_INET_XFRM_MODE_TUNNEL=y
239CONFIG_INET_DIAG=y 251CONFIG_INET_DIAG=y
240CONFIG_INET_TCP_DIAG=y 252CONFIG_INET_TCP_DIAG=y
241# CONFIG_TCP_CONG_ADVANCED is not set 253# CONFIG_TCP_CONG_ADVANCED is not set
@@ -243,6 +255,7 @@ CONFIG_TCP_CONG_BIC=y
243# CONFIG_IPV6 is not set 255# CONFIG_IPV6 is not set
244# CONFIG_INET6_XFRM_TUNNEL is not set 256# CONFIG_INET6_XFRM_TUNNEL is not set
245# CONFIG_INET6_TUNNEL is not set 257# CONFIG_INET6_TUNNEL is not set
258# CONFIG_NETWORK_SECMARK is not set
246# CONFIG_NETFILTER is not set 259# CONFIG_NETFILTER is not set
247 260
248# 261#
@@ -297,6 +310,7 @@ CONFIG_STANDALONE=y
297# CONFIG_PREVENT_FIRMWARE_BUILD is not set 310# CONFIG_PREVENT_FIRMWARE_BUILD is not set
298# CONFIG_FW_LOADER is not set 311# CONFIG_FW_LOADER is not set
299# CONFIG_DEBUG_DRIVER is not set 312# CONFIG_DEBUG_DRIVER is not set
313# CONFIG_SYS_HYPERVISOR is not set
300 314
301# 315#
302# Connector - unified userspace <-> kernelspace linker 316# Connector - unified userspace <-> kernelspace linker
@@ -525,6 +539,7 @@ CONFIG_ENP2611_MSF_NET=y
525# CONFIG_CHELSIO_T1 is not set 539# CONFIG_CHELSIO_T1 is not set
526# CONFIG_IXGB is not set 540# CONFIG_IXGB is not set
527# CONFIG_S2IO is not set 541# CONFIG_S2IO is not set
542# CONFIG_MYRI10GE is not set
528 543
529# 544#
530# Token Ring devices 545# Token Ring devices
@@ -542,7 +557,6 @@ CONFIG_ENP2611_MSF_NET=y
542CONFIG_WAN=y 557CONFIG_WAN=y
543# CONFIG_DSCC4 is not set 558# CONFIG_DSCC4 is not set
544# CONFIG_LANMEDIA is not set 559# CONFIG_LANMEDIA is not set
545# CONFIG_SYNCLINK_SYNCPPP is not set
546CONFIG_HDLC=y 560CONFIG_HDLC=y
547CONFIG_HDLC_RAW=y 561CONFIG_HDLC_RAW=y
548# CONFIG_HDLC_RAW_ETH is not set 562# CONFIG_HDLC_RAW_ETH is not set
@@ -654,6 +668,7 @@ CONFIG_IXP2000_WATCHDOG=y
654# 668#
655# CONFIG_PCIPCWATCHDOG is not set 669# CONFIG_PCIPCWATCHDOG is not set
656# CONFIG_WDTPCI is not set 670# CONFIG_WDTPCI is not set
671# CONFIG_HW_RANDOM is not set
657# CONFIG_NVRAM is not set 672# CONFIG_NVRAM is not set
658# CONFIG_DTLK is not set 673# CONFIG_DTLK is not set
659# CONFIG_R3964 is not set 674# CONFIG_R3964 is not set
@@ -697,6 +712,7 @@ CONFIG_I2C_ALGOBIT=y
697# CONFIG_I2C_PIIX4 is not set 712# CONFIG_I2C_PIIX4 is not set
698CONFIG_I2C_IXP2000=y 713CONFIG_I2C_IXP2000=y
699# CONFIG_I2C_NFORCE2 is not set 714# CONFIG_I2C_NFORCE2 is not set
715# CONFIG_I2C_OCORES is not set
700# CONFIG_I2C_PARPORT_LIGHT is not set 716# CONFIG_I2C_PARPORT_LIGHT is not set
701# CONFIG_I2C_PROSAVAGE is not set 717# CONFIG_I2C_PROSAVAGE is not set
702# CONFIG_I2C_SAVAGE4 is not set 718# CONFIG_I2C_SAVAGE4 is not set
@@ -733,13 +749,13 @@ CONFIG_SENSORS_EEPROM=y
733# 749#
734# Dallas's 1-wire bus 750# Dallas's 1-wire bus
735# 751#
736# CONFIG_W1 is not set
737 752
738# 753#
739# Hardware Monitoring support 754# Hardware Monitoring support
740# 755#
741CONFIG_HWMON=y 756CONFIG_HWMON=y
742# CONFIG_HWMON_VID is not set 757# CONFIG_HWMON_VID is not set
758# CONFIG_SENSORS_ABITUGURU is not set
743# CONFIG_SENSORS_ADM1021 is not set 759# CONFIG_SENSORS_ADM1021 is not set
744# CONFIG_SENSORS_ADM1025 is not set 760# CONFIG_SENSORS_ADM1025 is not set
745# CONFIG_SENSORS_ADM1026 is not set 761# CONFIG_SENSORS_ADM1026 is not set
@@ -768,10 +784,12 @@ CONFIG_HWMON=y
768# CONFIG_SENSORS_PC87360 is not set 784# CONFIG_SENSORS_PC87360 is not set
769# CONFIG_SENSORS_SIS5595 is not set 785# CONFIG_SENSORS_SIS5595 is not set
770# CONFIG_SENSORS_SMSC47M1 is not set 786# CONFIG_SENSORS_SMSC47M1 is not set
787# CONFIG_SENSORS_SMSC47M192 is not set
771# CONFIG_SENSORS_SMSC47B397 is not set 788# CONFIG_SENSORS_SMSC47B397 is not set
772# CONFIG_SENSORS_VIA686A is not set 789# CONFIG_SENSORS_VIA686A is not set
773# CONFIG_SENSORS_VT8231 is not set 790# CONFIG_SENSORS_VT8231 is not set
774# CONFIG_SENSORS_W83781D is not set 791# CONFIG_SENSORS_W83781D is not set
792# CONFIG_SENSORS_W83791D is not set
775# CONFIG_SENSORS_W83792D is not set 793# CONFIG_SENSORS_W83792D is not set
776# CONFIG_SENSORS_W83L785TS is not set 794# CONFIG_SENSORS_W83L785TS is not set
777# CONFIG_SENSORS_W83627HF is not set 795# CONFIG_SENSORS_W83627HF is not set
@@ -799,6 +817,7 @@ CONFIG_HWMON=y
799# Multimedia devices 817# Multimedia devices
800# 818#
801# CONFIG_VIDEO_DEV is not set 819# CONFIG_VIDEO_DEV is not set
820CONFIG_VIDEO_V4L2=y
802 821
803# 822#
804# Digital Video Broadcasting Devices 823# Digital Video Broadcasting Devices
@@ -808,6 +827,7 @@ CONFIG_HWMON=y
808# 827#
809# Graphics support 828# Graphics support
810# 829#
830# CONFIG_FIRMWARE_EDID is not set
811# CONFIG_FB is not set 831# CONFIG_FB is not set
812 832
813# 833#
@@ -866,6 +886,7 @@ CONFIG_FS_POSIX_ACL=y
866# CONFIG_MINIX_FS is not set 886# CONFIG_MINIX_FS is not set
867# CONFIG_ROMFS_FS is not set 887# CONFIG_ROMFS_FS is not set
868CONFIG_INOTIFY=y 888CONFIG_INOTIFY=y
889CONFIG_INOTIFY_USER=y
869# CONFIG_QUOTA is not set 890# CONFIG_QUOTA is not set
870CONFIG_DNOTIFY=y 891CONFIG_DNOTIFY=y
871# CONFIG_AUTOFS_FS is not set 892# CONFIG_AUTOFS_FS is not set
@@ -910,6 +931,7 @@ CONFIG_JFFS2_FS=y
910CONFIG_JFFS2_FS_DEBUG=0 931CONFIG_JFFS2_FS_DEBUG=0
911CONFIG_JFFS2_FS_WRITEBUFFER=y 932CONFIG_JFFS2_FS_WRITEBUFFER=y
912# CONFIG_JFFS2_SUMMARY is not set 933# CONFIG_JFFS2_SUMMARY is not set
934# CONFIG_JFFS2_FS_XATTR is not set
913# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 935# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
914CONFIG_JFFS2_ZLIB=y 936CONFIG_JFFS2_ZLIB=y
915CONFIG_JFFS2_RTIME=y 937CONFIG_JFFS2_RTIME=y
@@ -939,6 +961,7 @@ CONFIG_SUNRPC=y
939# CONFIG_RPCSEC_GSS_SPKM3 is not set 961# CONFIG_RPCSEC_GSS_SPKM3 is not set
940# CONFIG_SMB_FS is not set 962# CONFIG_SMB_FS is not set
941# CONFIG_CIFS is not set 963# CONFIG_CIFS is not set
964# CONFIG_CIFS_DEBUG2 is not set
942# CONFIG_NCP_FS is not set 965# CONFIG_NCP_FS is not set
943# CONFIG_CODA_FS is not set 966# CONFIG_CODA_FS is not set
944# CONFIG_AFS_FS is not set 967# CONFIG_AFS_FS is not set
@@ -980,14 +1003,19 @@ CONFIG_MSDOS_PARTITION=y
980# 1003#
981# CONFIG_PRINTK_TIME is not set 1004# CONFIG_PRINTK_TIME is not set
982CONFIG_MAGIC_SYSRQ=y 1005CONFIG_MAGIC_SYSRQ=y
1006# CONFIG_UNUSED_SYMBOLS is not set
983CONFIG_DEBUG_KERNEL=y 1007CONFIG_DEBUG_KERNEL=y
984CONFIG_LOG_BUF_SHIFT=14 1008CONFIG_LOG_BUF_SHIFT=14
985CONFIG_DETECT_SOFTLOCKUP=y 1009CONFIG_DETECT_SOFTLOCKUP=y
986# CONFIG_SCHEDSTATS is not set 1010# CONFIG_SCHEDSTATS is not set
987# CONFIG_DEBUG_SLAB is not set 1011# CONFIG_DEBUG_SLAB is not set
988CONFIG_DEBUG_MUTEXES=y 1012# CONFIG_DEBUG_RT_MUTEXES is not set
1013# CONFIG_RT_MUTEX_TESTER is not set
989# CONFIG_DEBUG_SPINLOCK is not set 1014# CONFIG_DEBUG_SPINLOCK is not set
1015CONFIG_DEBUG_MUTEXES=y
1016# CONFIG_DEBUG_RWSEMS is not set
990# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1017# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1018# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
991# CONFIG_DEBUG_KOBJECT is not set 1019# CONFIG_DEBUG_KOBJECT is not set
992CONFIG_DEBUG_BUGVERBOSE=y 1020CONFIG_DEBUG_BUGVERBOSE=y
993# CONFIG_DEBUG_INFO is not set 1021# CONFIG_DEBUG_INFO is not set
@@ -1027,3 +1055,4 @@ CONFIG_CRC32=y
1027# CONFIG_LIBCRC32C is not set 1055# CONFIG_LIBCRC32C is not set
1028CONFIG_ZLIB_INFLATE=y 1056CONFIG_ZLIB_INFLATE=y
1029CONFIG_ZLIB_DEFLATE=y 1057CONFIG_ZLIB_DEFLATE=y
1058CONFIG_PLIST=y
diff --git a/arch/arm/configs/ixp23xx_defconfig b/arch/arm/configs/ixp23xx_defconfig
index 9ce898a6cf87..7b18997083ce 100644
--- a/arch/arm/configs/ixp23xx_defconfig
+++ b/arch/arm/configs/ixp23xx_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Wed Apr 19 21:13:50 2006 4# Sun Jul 9 14:13:35 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -43,14 +47,15 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
53CONFIG_OBSOLETE_INTERMODULE=y
54 59
55# 60#
56# Loadable module support 61# Loadable module support
@@ -83,18 +88,26 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
83# 88#
84# System Type 89# System Type
85# 90#
91# CONFIG_ARCH_AAEC2000 is not set
92# CONFIG_ARCH_INTEGRATOR is not set
93# CONFIG_ARCH_REALVIEW is not set
94# CONFIG_ARCH_VERSATILE is not set
95# CONFIG_ARCH_AT91 is not set
86# CONFIG_ARCH_CLPS7500 is not set 96# CONFIG_ARCH_CLPS7500 is not set
87# CONFIG_ARCH_CLPS711X is not set 97# CONFIG_ARCH_CLPS711X is not set
88# CONFIG_ARCH_CO285 is not set 98# CONFIG_ARCH_CO285 is not set
89# CONFIG_ARCH_EBSA110 is not set 99# CONFIG_ARCH_EBSA110 is not set
90# CONFIG_ARCH_EP93XX is not set 100# CONFIG_ARCH_EP93XX is not set
91# CONFIG_ARCH_FOOTBRIDGE is not set 101# CONFIG_ARCH_FOOTBRIDGE is not set
92# CONFIG_ARCH_INTEGRATOR is not set 102# CONFIG_ARCH_NETX is not set
103# CONFIG_ARCH_H720X is not set
104# CONFIG_ARCH_IMX is not set
93# CONFIG_ARCH_IOP3XX is not set 105# CONFIG_ARCH_IOP3XX is not set
94# CONFIG_ARCH_IXP4XX is not set 106# CONFIG_ARCH_IXP4XX is not set
95# CONFIG_ARCH_IXP2000 is not set 107# CONFIG_ARCH_IXP2000 is not set
96CONFIG_ARCH_IXP23XX=y 108CONFIG_ARCH_IXP23XX=y
97# CONFIG_ARCH_L7200 is not set 109# CONFIG_ARCH_L7200 is not set
110# CONFIG_ARCH_PNX4008 is not set
98# CONFIG_ARCH_PXA is not set 111# CONFIG_ARCH_PXA is not set
99# CONFIG_ARCH_RPC is not set 112# CONFIG_ARCH_RPC is not set
100# CONFIG_ARCH_SA1100 is not set 113# CONFIG_ARCH_SA1100 is not set
@@ -102,12 +115,6 @@ CONFIG_ARCH_IXP23XX=y
102# CONFIG_ARCH_SHARK is not set 115# CONFIG_ARCH_SHARK is not set
103# CONFIG_ARCH_LH7A40X is not set 116# CONFIG_ARCH_LH7A40X is not set
104# CONFIG_ARCH_OMAP is not set 117# CONFIG_ARCH_OMAP is not set
105# CONFIG_ARCH_VERSATILE is not set
106# CONFIG_ARCH_REALVIEW is not set
107# CONFIG_ARCH_IMX is not set
108# CONFIG_ARCH_H720X is not set
109# CONFIG_ARCH_AAEC2000 is not set
110# CONFIG_ARCH_AT91RM9200 is not set
111CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y 118CONFIG_ARCH_SUPPORTS_BIG_ENDIAN=y
112 119
113# 120#
@@ -165,6 +172,7 @@ CONFIG_FLATMEM=y
165CONFIG_FLAT_NODE_MEM_MAP=y 172CONFIG_FLAT_NODE_MEM_MAP=y
166# CONFIG_SPARSEMEM_STATIC is not set 173# CONFIG_SPARSEMEM_STATIC is not set
167CONFIG_SPLIT_PTLOCK_CPUS=4096 174CONFIG_SPLIT_PTLOCK_CPUS=4096
175CONFIG_RESOURCES_64BIT=y
168CONFIG_ALIGNMENT_TRAP=y 176CONFIG_ALIGNMENT_TRAP=y
169 177
170# 178#
@@ -212,6 +220,8 @@ CONFIG_NET=y
212CONFIG_PACKET=y 220CONFIG_PACKET=y
213CONFIG_PACKET_MMAP=y 221CONFIG_PACKET_MMAP=y
214CONFIG_UNIX=y 222CONFIG_UNIX=y
223CONFIG_XFRM=y
224# CONFIG_XFRM_USER is not set
215# CONFIG_NET_KEY is not set 225# CONFIG_NET_KEY is not set
216CONFIG_INET=y 226CONFIG_INET=y
217# CONFIG_IP_MULTICAST is not set 227# CONFIG_IP_MULTICAST is not set
@@ -230,6 +240,8 @@ CONFIG_SYN_COOKIES=y
230# CONFIG_INET_IPCOMP is not set 240# CONFIG_INET_IPCOMP is not set
231# CONFIG_INET_XFRM_TUNNEL is not set 241# CONFIG_INET_XFRM_TUNNEL is not set
232# CONFIG_INET_TUNNEL is not set 242# CONFIG_INET_TUNNEL is not set
243CONFIG_INET_XFRM_MODE_TRANSPORT=y
244CONFIG_INET_XFRM_MODE_TUNNEL=y
233CONFIG_INET_DIAG=y 245CONFIG_INET_DIAG=y
234CONFIG_INET_TCP_DIAG=y 246CONFIG_INET_TCP_DIAG=y
235# CONFIG_TCP_CONG_ADVANCED is not set 247# CONFIG_TCP_CONG_ADVANCED is not set
@@ -237,6 +249,7 @@ CONFIG_TCP_CONG_BIC=y
237# CONFIG_IPV6 is not set 249# CONFIG_IPV6 is not set
238# CONFIG_INET6_XFRM_TUNNEL is not set 250# CONFIG_INET6_XFRM_TUNNEL is not set
239# CONFIG_INET6_TUNNEL is not set 251# CONFIG_INET6_TUNNEL is not set
252# CONFIG_NETWORK_SECMARK is not set
240# CONFIG_NETFILTER is not set 253# CONFIG_NETFILTER is not set
241 254
242# 255#
@@ -291,6 +304,7 @@ CONFIG_STANDALONE=y
291# CONFIG_PREVENT_FIRMWARE_BUILD is not set 304# CONFIG_PREVENT_FIRMWARE_BUILD is not set
292# CONFIG_FW_LOADER is not set 305# CONFIG_FW_LOADER is not set
293# CONFIG_DEBUG_DRIVER is not set 306# CONFIG_DEBUG_DRIVER is not set
307# CONFIG_SYS_HYPERVISOR is not set
294 308
295# 309#
296# Connector - unified userspace <-> kernelspace linker 310# Connector - unified userspace <-> kernelspace linker
@@ -520,6 +534,7 @@ CONFIG_BLK_DEV_SD=y
520# CONFIG_MEGARAID_LEGACY is not set 534# CONFIG_MEGARAID_LEGACY is not set
521# CONFIG_MEGARAID_SAS is not set 535# CONFIG_MEGARAID_SAS is not set
522# CONFIG_SCSI_SATA is not set 536# CONFIG_SCSI_SATA is not set
537# CONFIG_SCSI_HPTIOP is not set
523# CONFIG_SCSI_DMX3191D is not set 538# CONFIG_SCSI_DMX3191D is not set
524# CONFIG_SCSI_FUTURE_DOMAIN is not set 539# CONFIG_SCSI_FUTURE_DOMAIN is not set
525# CONFIG_SCSI_IPS is not set 540# CONFIG_SCSI_IPS is not set
@@ -641,6 +656,7 @@ CONFIG_E1000_NAPI=y
641# CONFIG_CHELSIO_T1 is not set 656# CONFIG_CHELSIO_T1 is not set
642# CONFIG_IXGB is not set 657# CONFIG_IXGB is not set
643# CONFIG_S2IO is not set 658# CONFIG_S2IO is not set
659# CONFIG_MYRI10GE is not set
644 660
645# 661#
646# Token Ring devices 662# Token Ring devices
@@ -658,7 +674,6 @@ CONFIG_E1000_NAPI=y
658CONFIG_WAN=y 674CONFIG_WAN=y
659# CONFIG_DSCC4 is not set 675# CONFIG_DSCC4 is not set
660# CONFIG_LANMEDIA is not set 676# CONFIG_LANMEDIA is not set
661# CONFIG_SYNCLINK_SYNCPPP is not set
662CONFIG_HDLC=y 677CONFIG_HDLC=y
663CONFIG_HDLC_RAW=y 678CONFIG_HDLC_RAW=y
664# CONFIG_HDLC_RAW_ETH is not set 679# CONFIG_HDLC_RAW_ETH is not set
@@ -775,6 +790,7 @@ CONFIG_WATCHDOG=y
775# USB-based Watchdog Cards 790# USB-based Watchdog Cards
776# 791#
777# CONFIG_USBPCWATCHDOG is not set 792# CONFIG_USBPCWATCHDOG is not set
793# CONFIG_HW_RANDOM is not set
778# CONFIG_NVRAM is not set 794# CONFIG_NVRAM is not set
779# CONFIG_DTLK is not set 795# CONFIG_DTLK is not set
780# CONFIG_R3964 is not set 796# CONFIG_R3964 is not set
@@ -817,6 +833,7 @@ CONFIG_I2C_ALGOBIT=y
817# CONFIG_I2C_I810 is not set 833# CONFIG_I2C_I810 is not set
818# CONFIG_I2C_PIIX4 is not set 834# CONFIG_I2C_PIIX4 is not set
819# CONFIG_I2C_NFORCE2 is not set 835# CONFIG_I2C_NFORCE2 is not set
836# CONFIG_I2C_OCORES is not set
820# CONFIG_I2C_PARPORT_LIGHT is not set 837# CONFIG_I2C_PARPORT_LIGHT is not set
821# CONFIG_I2C_PROSAVAGE is not set 838# CONFIG_I2C_PROSAVAGE is not set
822# CONFIG_I2C_SAVAGE4 is not set 839# CONFIG_I2C_SAVAGE4 is not set
@@ -853,13 +870,13 @@ CONFIG_SENSORS_EEPROM=y
853# 870#
854# Dallas's 1-wire bus 871# Dallas's 1-wire bus
855# 872#
856# CONFIG_W1 is not set
857 873
858# 874#
859# Hardware Monitoring support 875# Hardware Monitoring support
860# 876#
861CONFIG_HWMON=y 877CONFIG_HWMON=y
862# CONFIG_HWMON_VID is not set 878# CONFIG_HWMON_VID is not set
879# CONFIG_SENSORS_ABITUGURU is not set
863# CONFIG_SENSORS_ADM1021 is not set 880# CONFIG_SENSORS_ADM1021 is not set
864# CONFIG_SENSORS_ADM1025 is not set 881# CONFIG_SENSORS_ADM1025 is not set
865# CONFIG_SENSORS_ADM1026 is not set 882# CONFIG_SENSORS_ADM1026 is not set
@@ -888,10 +905,12 @@ CONFIG_HWMON=y
888# CONFIG_SENSORS_PC87360 is not set 905# CONFIG_SENSORS_PC87360 is not set
889# CONFIG_SENSORS_SIS5595 is not set 906# CONFIG_SENSORS_SIS5595 is not set
890# CONFIG_SENSORS_SMSC47M1 is not set 907# CONFIG_SENSORS_SMSC47M1 is not set
908# CONFIG_SENSORS_SMSC47M192 is not set
891# CONFIG_SENSORS_SMSC47B397 is not set 909# CONFIG_SENSORS_SMSC47B397 is not set
892# CONFIG_SENSORS_VIA686A is not set 910# CONFIG_SENSORS_VIA686A is not set
893# CONFIG_SENSORS_VT8231 is not set 911# CONFIG_SENSORS_VT8231 is not set
894# CONFIG_SENSORS_W83781D is not set 912# CONFIG_SENSORS_W83781D is not set
913# CONFIG_SENSORS_W83791D is not set
895# CONFIG_SENSORS_W83792D is not set 914# CONFIG_SENSORS_W83792D is not set
896# CONFIG_SENSORS_W83L785TS is not set 915# CONFIG_SENSORS_W83L785TS is not set
897# CONFIG_SENSORS_W83627HF is not set 916# CONFIG_SENSORS_W83627HF is not set
@@ -919,6 +938,7 @@ CONFIG_HWMON=y
919# Multimedia devices 938# Multimedia devices
920# 939#
921# CONFIG_VIDEO_DEV is not set 940# CONFIG_VIDEO_DEV is not set
941CONFIG_VIDEO_V4L2=y
922 942
923# 943#
924# Digital Video Broadcasting Devices 944# Digital Video Broadcasting Devices
@@ -929,6 +949,7 @@ CONFIG_HWMON=y
929# 949#
930# Graphics support 950# Graphics support
931# 951#
952# CONFIG_FIRMWARE_EDID is not set
932# CONFIG_FB is not set 953# CONFIG_FB is not set
933 954
934# 955#
@@ -959,6 +980,7 @@ CONFIG_USB=y
959CONFIG_USB_EHCI_HCD=y 980CONFIG_USB_EHCI_HCD=y
960# CONFIG_USB_EHCI_SPLIT_ISO is not set 981# CONFIG_USB_EHCI_SPLIT_ISO is not set
961# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 982# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
983# CONFIG_USB_EHCI_TT_NEWSCHED is not set
962# CONFIG_USB_ISP116X_HCD is not set 984# CONFIG_USB_ISP116X_HCD is not set
963CONFIG_USB_OHCI_HCD=y 985CONFIG_USB_OHCI_HCD=y
964# CONFIG_USB_OHCI_BIG_ENDIAN is not set 986# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -1050,10 +1072,12 @@ CONFIG_USB_MON=y
1050# CONFIG_USB_LEGOTOWER is not set 1072# CONFIG_USB_LEGOTOWER is not set
1051# CONFIG_USB_LCD is not set 1073# CONFIG_USB_LCD is not set
1052# CONFIG_USB_LED is not set 1074# CONFIG_USB_LED is not set
1075# CONFIG_USB_CY7C63 is not set
1053# CONFIG_USB_CYTHERM is not set 1076# CONFIG_USB_CYTHERM is not set
1054# CONFIG_USB_PHIDGETKIT is not set 1077# CONFIG_USB_PHIDGETKIT is not set
1055# CONFIG_USB_PHIDGETSERVO is not set 1078# CONFIG_USB_PHIDGETSERVO is not set
1056# CONFIG_USB_IDMOUSE is not set 1079# CONFIG_USB_IDMOUSE is not set
1080# CONFIG_USB_APPLEDISPLAY is not set
1057# CONFIG_USB_SISUSBVGA is not set 1081# CONFIG_USB_SISUSBVGA is not set
1058# CONFIG_USB_LD is not set 1082# CONFIG_USB_LD is not set
1059 1083
@@ -1100,6 +1124,7 @@ CONFIG_FS_POSIX_ACL=y
1100# CONFIG_MINIX_FS is not set 1124# CONFIG_MINIX_FS is not set
1101# CONFIG_ROMFS_FS is not set 1125# CONFIG_ROMFS_FS is not set
1102CONFIG_INOTIFY=y 1126CONFIG_INOTIFY=y
1127CONFIG_INOTIFY_USER=y
1103# CONFIG_QUOTA is not set 1128# CONFIG_QUOTA is not set
1104CONFIG_DNOTIFY=y 1129CONFIG_DNOTIFY=y
1105# CONFIG_AUTOFS_FS is not set 1130# CONFIG_AUTOFS_FS is not set
@@ -1146,6 +1171,7 @@ CONFIG_JFFS2_FS=y
1146CONFIG_JFFS2_FS_DEBUG=0 1171CONFIG_JFFS2_FS_DEBUG=0
1147CONFIG_JFFS2_FS_WRITEBUFFER=y 1172CONFIG_JFFS2_FS_WRITEBUFFER=y
1148# CONFIG_JFFS2_SUMMARY is not set 1173# CONFIG_JFFS2_SUMMARY is not set
1174# CONFIG_JFFS2_FS_XATTR is not set
1149# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1175# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1150CONFIG_JFFS2_ZLIB=y 1176CONFIG_JFFS2_ZLIB=y
1151CONFIG_JFFS2_RTIME=y 1177CONFIG_JFFS2_RTIME=y
@@ -1175,6 +1201,7 @@ CONFIG_SUNRPC=y
1175# CONFIG_RPCSEC_GSS_SPKM3 is not set 1201# CONFIG_RPCSEC_GSS_SPKM3 is not set
1176# CONFIG_SMB_FS is not set 1202# CONFIG_SMB_FS is not set
1177# CONFIG_CIFS is not set 1203# CONFIG_CIFS is not set
1204# CONFIG_CIFS_DEBUG2 is not set
1178# CONFIG_NCP_FS is not set 1205# CONFIG_NCP_FS is not set
1179# CONFIG_CODA_FS is not set 1206# CONFIG_CODA_FS is not set
1180# CONFIG_AFS_FS is not set 1207# CONFIG_AFS_FS is not set
@@ -1255,14 +1282,19 @@ CONFIG_NLS_CODEPAGE_437=y
1255# 1282#
1256# CONFIG_PRINTK_TIME is not set 1283# CONFIG_PRINTK_TIME is not set
1257CONFIG_MAGIC_SYSRQ=y 1284CONFIG_MAGIC_SYSRQ=y
1285# CONFIG_UNUSED_SYMBOLS is not set
1258CONFIG_DEBUG_KERNEL=y 1286CONFIG_DEBUG_KERNEL=y
1259CONFIG_LOG_BUF_SHIFT=14 1287CONFIG_LOG_BUF_SHIFT=14
1260CONFIG_DETECT_SOFTLOCKUP=y 1288CONFIG_DETECT_SOFTLOCKUP=y
1261# CONFIG_SCHEDSTATS is not set 1289# CONFIG_SCHEDSTATS is not set
1262# CONFIG_DEBUG_SLAB is not set 1290# CONFIG_DEBUG_SLAB is not set
1263CONFIG_DEBUG_MUTEXES=y 1291# CONFIG_DEBUG_RT_MUTEXES is not set
1292# CONFIG_RT_MUTEX_TESTER is not set
1264# CONFIG_DEBUG_SPINLOCK is not set 1293# CONFIG_DEBUG_SPINLOCK is not set
1294CONFIG_DEBUG_MUTEXES=y
1295# CONFIG_DEBUG_RWSEMS is not set
1265# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1296# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1297# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1266# CONFIG_DEBUG_KOBJECT is not set 1298# CONFIG_DEBUG_KOBJECT is not set
1267CONFIG_DEBUG_BUGVERBOSE=y 1299CONFIG_DEBUG_BUGVERBOSE=y
1268# CONFIG_DEBUG_INFO is not set 1300# CONFIG_DEBUG_INFO is not set
@@ -1302,3 +1334,4 @@ CONFIG_CRC32=y
1302# CONFIG_LIBCRC32C is not set 1334# CONFIG_LIBCRC32C is not set
1303CONFIG_ZLIB_INFLATE=y 1335CONFIG_ZLIB_INFLATE=y
1304CONFIG_ZLIB_DEFLATE=y 1336CONFIG_ZLIB_DEFLATE=y
1337CONFIG_PLIST=y
diff --git a/arch/arm/configs/lpd270_defconfig b/arch/arm/configs/lpd270_defconfig
index d08bbe59483a..4b29e099640d 100644
--- a/arch/arm/configs/lpd270_defconfig
+++ b/arch/arm/configs/lpd270_defconfig
@@ -1,15 +1,19 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-git2 3# Linux kernel version: 2.6.18-rc1
4# Wed Jun 21 22:20:18 2006 4# Sun Jul 9 14:15:23 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_ARCH_MTD_XIP=y 14CONFIG_ARCH_MTD_XIP=y
12CONFIG_VECTORS_BASE=0xffff0000 15CONFIG_VECTORS_BASE=0xffff0000
16CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
13 17
14# 18#
15# Code maturity level options 19# Code maturity level options
@@ -43,10 +47,12 @@ CONFIG_PRINTK=y
43CONFIG_BUG=y 47CONFIG_BUG=y
44CONFIG_ELF_CORE=y 48CONFIG_ELF_CORE=y
45CONFIG_BASE_FULL=y 49CONFIG_BASE_FULL=y
50CONFIG_RT_MUTEXES=y
46CONFIG_FUTEX=y 51CONFIG_FUTEX=y
47CONFIG_EPOLL=y 52CONFIG_EPOLL=y
48CONFIG_SHMEM=y 53CONFIG_SHMEM=y
49CONFIG_SLAB=y 54CONFIG_SLAB=y
55CONFIG_VM_EVENT_COUNTERS=y
50# CONFIG_TINY_SHMEM is not set 56# CONFIG_TINY_SHMEM is not set
51CONFIG_BASE_SMALL=0 57CONFIG_BASE_SMALL=0
52# CONFIG_SLOB is not set 58# CONFIG_SLOB is not set
@@ -85,7 +91,7 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
85# CONFIG_ARCH_INTEGRATOR is not set 91# CONFIG_ARCH_INTEGRATOR is not set
86# CONFIG_ARCH_REALVIEW is not set 92# CONFIG_ARCH_REALVIEW is not set
87# CONFIG_ARCH_VERSATILE is not set 93# CONFIG_ARCH_VERSATILE is not set
88# CONFIG_ARCH_AT91RM9200 is not set 94# CONFIG_ARCH_AT91 is not set
89# CONFIG_ARCH_CLPS7500 is not set 95# CONFIG_ARCH_CLPS7500 is not set
90# CONFIG_ARCH_CLPS711X is not set 96# CONFIG_ARCH_CLPS711X is not set
91# CONFIG_ARCH_CO285 is not set 97# CONFIG_ARCH_CO285 is not set
@@ -117,6 +123,7 @@ CONFIG_MACH_LOGICPD_PXA270=y
117# CONFIG_MACH_MAINSTONE is not set 123# CONFIG_MACH_MAINSTONE is not set
118# CONFIG_ARCH_PXA_IDP is not set 124# CONFIG_ARCH_PXA_IDP is not set
119# CONFIG_PXA_SHARPSL is not set 125# CONFIG_PXA_SHARPSL is not set
126# CONFIG_MACH_TRIZEPS4 is not set
120CONFIG_PXA27x=y 127CONFIG_PXA27x=y
121CONFIG_IWMMXT=y 128CONFIG_IWMMXT=y
122 129
@@ -161,6 +168,7 @@ CONFIG_FLATMEM=y
161CONFIG_FLAT_NODE_MEM_MAP=y 168CONFIG_FLAT_NODE_MEM_MAP=y
162# CONFIG_SPARSEMEM_STATIC is not set 169# CONFIG_SPARSEMEM_STATIC is not set
163CONFIG_SPLIT_PTLOCK_CPUS=4096 170CONFIG_SPLIT_PTLOCK_CPUS=4096
171# CONFIG_RESOURCES_64BIT is not set
164CONFIG_ALIGNMENT_TRAP=y 172CONFIG_ALIGNMENT_TRAP=y
165 173
166# 174#
@@ -194,8 +202,6 @@ CONFIG_BINFMT_ELF=y
194# Power management options 202# Power management options
195# 203#
196# CONFIG_PM is not set 204# CONFIG_PM is not set
197# CONFIG_PM_LEGACY is not set
198# CONFIG_PM_DEBUG is not set
199# CONFIG_APM is not set 205# CONFIG_APM is not set
200 206
201# 207#
@@ -293,6 +299,7 @@ CONFIG_STANDALONE=y
293CONFIG_PREVENT_FIRMWARE_BUILD=y 299CONFIG_PREVENT_FIRMWARE_BUILD=y
294# CONFIG_FW_LOADER is not set 300# CONFIG_FW_LOADER is not set
295# CONFIG_DEBUG_DRIVER is not set 301# CONFIG_DEBUG_DRIVER is not set
302# CONFIG_SYS_HYPERVISOR is not set
296 303
297# 304#
298# Connector - unified userspace <-> kernelspace linker 305# Connector - unified userspace <-> kernelspace linker
@@ -561,6 +568,7 @@ CONFIG_SERIO_LIBPS2=y
561CONFIG_VT=y 568CONFIG_VT=y
562CONFIG_VT_CONSOLE=y 569CONFIG_VT_CONSOLE=y
563CONFIG_HW_CONSOLE=y 570CONFIG_HW_CONSOLE=y
571# CONFIG_VT_HW_CONSOLE_BINDING is not set
564# CONFIG_SERIAL_NONSTANDARD is not set 572# CONFIG_SERIAL_NONSTANDARD is not set
565 573
566# 574#
@@ -588,6 +596,7 @@ CONFIG_LEGACY_PTY_COUNT=256
588# Watchdog Cards 596# Watchdog Cards
589# 597#
590# CONFIG_WATCHDOG is not set 598# CONFIG_WATCHDOG is not set
599# CONFIG_HW_RANDOM is not set
591# CONFIG_NVRAM is not set 600# CONFIG_NVRAM is not set
592# CONFIG_DTLK is not set 601# CONFIG_DTLK is not set
593# CONFIG_R3964 is not set 602# CONFIG_R3964 is not set
@@ -617,13 +626,13 @@ CONFIG_LEGACY_PTY_COUNT=256
617# 626#
618# Dallas's 1-wire bus 627# Dallas's 1-wire bus
619# 628#
620# CONFIG_W1 is not set
621 629
622# 630#
623# Hardware Monitoring support 631# Hardware Monitoring support
624# 632#
625CONFIG_HWMON=y 633CONFIG_HWMON=y
626# CONFIG_HWMON_VID is not set 634# CONFIG_HWMON_VID is not set
635# CONFIG_SENSORS_ABITUGURU is not set
627# CONFIG_SENSORS_F71805F is not set 636# CONFIG_SENSORS_F71805F is not set
628# CONFIG_HWMON_DEBUG_CHIP is not set 637# CONFIG_HWMON_DEBUG_CHIP is not set
629 638
@@ -658,12 +667,13 @@ CONFIG_VIDEO_V4L2=y
658# 667#
659# Graphics support 668# Graphics support
660# 669#
670# CONFIG_FIRMWARE_EDID is not set
661CONFIG_FB=y 671CONFIG_FB=y
662CONFIG_FB_CFB_FILLRECT=y 672CONFIG_FB_CFB_FILLRECT=y
663CONFIG_FB_CFB_COPYAREA=y 673CONFIG_FB_CFB_COPYAREA=y
664CONFIG_FB_CFB_IMAGEBLIT=y 674CONFIG_FB_CFB_IMAGEBLIT=y
665# CONFIG_FB_MACMODES is not set 675# CONFIG_FB_MACMODES is not set
666CONFIG_FB_FIRMWARE_EDID=y 676# CONFIG_FB_BACKLIGHT is not set
667# CONFIG_FB_MODE_HELPERS is not set 677# CONFIG_FB_MODE_HELPERS is not set
668# CONFIG_FB_TILEBLITTING is not set 678# CONFIG_FB_TILEBLITTING is not set
669# CONFIG_FB_S1D13XXX is not set 679# CONFIG_FB_S1D13XXX is not set
@@ -822,6 +832,7 @@ CONFIG_JFFS2_FS=y
822CONFIG_JFFS2_FS_DEBUG=0 832CONFIG_JFFS2_FS_DEBUG=0
823CONFIG_JFFS2_FS_WRITEBUFFER=y 833CONFIG_JFFS2_FS_WRITEBUFFER=y
824# CONFIG_JFFS2_SUMMARY is not set 834# CONFIG_JFFS2_SUMMARY is not set
835# CONFIG_JFFS2_FS_XATTR is not set
825# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 836# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
826CONFIG_JFFS2_ZLIB=y 837CONFIG_JFFS2_ZLIB=y
827CONFIG_JFFS2_RTIME=y 838CONFIG_JFFS2_RTIME=y
@@ -849,6 +860,7 @@ CONFIG_SUNRPC=y
849# CONFIG_RPCSEC_GSS_SPKM3 is not set 860# CONFIG_RPCSEC_GSS_SPKM3 is not set
850# CONFIG_SMB_FS is not set 861# CONFIG_SMB_FS is not set
851# CONFIG_CIFS is not set 862# CONFIG_CIFS is not set
863# CONFIG_CIFS_DEBUG2 is not set
852# CONFIG_NCP_FS is not set 864# CONFIG_NCP_FS is not set
853# CONFIG_CODA_FS is not set 865# CONFIG_CODA_FS is not set
854# CONFIG_AFS_FS is not set 866# CONFIG_AFS_FS is not set
@@ -914,14 +926,19 @@ CONFIG_NLS_ISO8859_1=y
914# 926#
915# CONFIG_PRINTK_TIME is not set 927# CONFIG_PRINTK_TIME is not set
916CONFIG_MAGIC_SYSRQ=y 928CONFIG_MAGIC_SYSRQ=y
929# CONFIG_UNUSED_SYMBOLS is not set
917CONFIG_DEBUG_KERNEL=y 930CONFIG_DEBUG_KERNEL=y
918CONFIG_LOG_BUF_SHIFT=14 931CONFIG_LOG_BUF_SHIFT=14
919CONFIG_DETECT_SOFTLOCKUP=y 932CONFIG_DETECT_SOFTLOCKUP=y
920# CONFIG_SCHEDSTATS is not set 933# CONFIG_SCHEDSTATS is not set
921# CONFIG_DEBUG_SLAB is not set 934# CONFIG_DEBUG_SLAB is not set
922# CONFIG_DEBUG_MUTEXES is not set 935# CONFIG_DEBUG_RT_MUTEXES is not set
936# CONFIG_RT_MUTEX_TESTER is not set
923# CONFIG_DEBUG_SPINLOCK is not set 937# CONFIG_DEBUG_SPINLOCK is not set
938# CONFIG_DEBUG_MUTEXES is not set
939# CONFIG_DEBUG_RWSEMS is not set
924# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 940# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
941# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
925# CONFIG_DEBUG_KOBJECT is not set 942# CONFIG_DEBUG_KOBJECT is not set
926CONFIG_DEBUG_BUGVERBOSE=y 943CONFIG_DEBUG_BUGVERBOSE=y
927CONFIG_DEBUG_INFO=y 944CONFIG_DEBUG_INFO=y
@@ -961,3 +978,4 @@ CONFIG_CRC32=y
961# CONFIG_LIBCRC32C is not set 978# CONFIG_LIBCRC32C is not set
962CONFIG_ZLIB_INFLATE=y 979CONFIG_ZLIB_INFLATE=y
963CONFIG_ZLIB_DEFLATE=y 980CONFIG_ZLIB_DEFLATE=y
981CONFIG_PLIST=y
diff --git a/arch/arm/configs/onearm_defconfig b/arch/arm/configs/onearm_defconfig
index 2b4a63be03f7..6a93e3aae106 100644
--- a/arch/arm/configs/onearm_defconfig
+++ b/arch/arm/configs/onearm_defconfig
@@ -1,14 +1,18 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17-git10 3# Linux kernel version: 2.6.18-rc1
4# Mon Jun 26 13:45:44 2006 4# Sun Jul 9 14:16:20 2006
5# 5#
6CONFIG_ARM=y 6CONFIG_ARM=y
7CONFIG_MMU=y 7CONFIG_MMU=y
8CONFIG_GENERIC_HARDIRQS=y
9CONFIG_HARDIRQS_SW_RESEND=y
10CONFIG_GENERIC_IRQ_PROBE=y
8CONFIG_RWSEM_GENERIC_SPINLOCK=y 11CONFIG_RWSEM_GENERIC_SPINLOCK=y
9CONFIG_GENERIC_HWEIGHT=y 12CONFIG_GENERIC_HWEIGHT=y
10CONFIG_GENERIC_CALIBRATE_DELAY=y 13CONFIG_GENERIC_CALIBRATE_DELAY=y
11CONFIG_VECTORS_BASE=0xffff0000 14CONFIG_VECTORS_BASE=0xffff0000
15CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
12 16
13# 17#
14# Code maturity level options 18# Code maturity level options
@@ -42,10 +46,12 @@ CONFIG_PRINTK=y
42CONFIG_BUG=y 46CONFIG_BUG=y
43CONFIG_ELF_CORE=y 47CONFIG_ELF_CORE=y
44CONFIG_BASE_FULL=y 48CONFIG_BASE_FULL=y
49CONFIG_RT_MUTEXES=y
45CONFIG_FUTEX=y 50CONFIG_FUTEX=y
46CONFIG_EPOLL=y 51CONFIG_EPOLL=y
47CONFIG_SHMEM=y 52CONFIG_SHMEM=y
48CONFIG_SLAB=y 53CONFIG_SLAB=y
54CONFIG_VM_EVENT_COUNTERS=y
49# CONFIG_TINY_SHMEM is not set 55# CONFIG_TINY_SHMEM is not set
50CONFIG_BASE_SMALL=0 56CONFIG_BASE_SMALL=0
51# CONFIG_SLOB is not set 57# CONFIG_SLOB is not set
@@ -86,7 +92,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
86# CONFIG_ARCH_REALVIEW is not set 92# CONFIG_ARCH_REALVIEW is not set
87# CONFIG_ARCH_VERSATILE is not set 93# CONFIG_ARCH_VERSATILE is not set
88CONFIG_ARCH_AT91=y 94CONFIG_ARCH_AT91=y
89CONFIG_ARCH_AT91RM9200=y
90# CONFIG_ARCH_CLPS7500 is not set 95# CONFIG_ARCH_CLPS7500 is not set
91# CONFIG_ARCH_CLPS711X is not set 96# CONFIG_ARCH_CLPS711X is not set
92# CONFIG_ARCH_CO285 is not set 97# CONFIG_ARCH_CO285 is not set
@@ -111,8 +116,15 @@ CONFIG_ARCH_AT91RM9200=y
111# CONFIG_ARCH_OMAP is not set 116# CONFIG_ARCH_OMAP is not set
112 117
113# 118#
114# AT91RM9200 Implementations 119# Atmel AT91 System-on-Chip
120#
121
115# 122#
123# Atmel AT91 Processors
124#
125CONFIG_ARCH_AT91RM9200=y
126# CONFIG_ARCH_AT91SAM9260 is not set
127# CONFIG_ARCH_AT91SAM9261 is not set
116 128
117# 129#
118# AT91RM9200 Board Type 130# AT91RM9200 Board Type
@@ -123,12 +135,12 @@ CONFIG_MACH_ONEARM=y
123# CONFIG_MACH_CSB337 is not set 135# CONFIG_MACH_CSB337 is not set
124# CONFIG_MACH_CSB637 is not set 136# CONFIG_MACH_CSB637 is not set
125# CONFIG_MACH_CARMEVA is not set 137# CONFIG_MACH_CARMEVA is not set
126# CONFIG_MACH_KB9200 is not set
127# CONFIG_MACH_ATEB9200 is not set 138# CONFIG_MACH_ATEB9200 is not set
139# CONFIG_MACH_KB9200 is not set
128# CONFIG_MACH_KAFA is not set 140# CONFIG_MACH_KAFA is not set
129 141
130# 142#
131# AT91RM9200 Feature Selections 143# AT91 Feature Selections
132# 144#
133CONFIG_AT91_PROGRAMMABLE_CLOCKS=y 145CONFIG_AT91_PROGRAMMABLE_CLOCKS=y
134 146
@@ -186,6 +198,7 @@ CONFIG_FLATMEM=y
186CONFIG_FLAT_NODE_MEM_MAP=y 198CONFIG_FLAT_NODE_MEM_MAP=y
187# CONFIG_SPARSEMEM_STATIC is not set 199# CONFIG_SPARSEMEM_STATIC is not set
188CONFIG_SPLIT_PTLOCK_CPUS=4096 200CONFIG_SPLIT_PTLOCK_CPUS=4096
201# CONFIG_RESOURCES_64BIT is not set
189CONFIG_LEDS=y 202CONFIG_LEDS=y
190CONFIG_LEDS_TIMER=y 203CONFIG_LEDS_TIMER=y
191# CONFIG_LEDS_CPU is not set 204# CONFIG_LEDS_CPU is not set
@@ -600,6 +613,7 @@ CONFIG_AT91_WATCHDOG=y
600# USB-based Watchdog Cards 613# USB-based Watchdog Cards
601# 614#
602# CONFIG_USBPCWATCHDOG is not set 615# CONFIG_USBPCWATCHDOG is not set
616# CONFIG_HW_RANDOM is not set
603# CONFIG_NVRAM is not set 617# CONFIG_NVRAM is not set
604# CONFIG_DTLK is not set 618# CONFIG_DTLK is not set
605# CONFIG_R3964 is not set 619# CONFIG_R3964 is not set
@@ -743,6 +757,7 @@ CONFIG_VIDEO_V4L2=y
743# 757#
744# Graphics support 758# Graphics support
745# 759#
760# CONFIG_FIRMWARE_EDID is not set
746# CONFIG_FB is not set 761# CONFIG_FB is not set
747 762
748# 763#
@@ -980,6 +995,7 @@ CONFIG_SUNRPC=y
980# CONFIG_RPCSEC_GSS_SPKM3 is not set 995# CONFIG_RPCSEC_GSS_SPKM3 is not set
981# CONFIG_SMB_FS is not set 996# CONFIG_SMB_FS is not set
982# CONFIG_CIFS is not set 997# CONFIG_CIFS is not set
998# CONFIG_CIFS_DEBUG2 is not set
983# CONFIG_NCP_FS is not set 999# CONFIG_NCP_FS is not set
984# CONFIG_CODA_FS is not set 1000# CONFIG_CODA_FS is not set
985# CONFIG_AFS_FS is not set 1001# CONFIG_AFS_FS is not set
@@ -1006,14 +1022,19 @@ CONFIG_MSDOS_PARTITION=y
1006# 1022#
1007# CONFIG_PRINTK_TIME is not set 1023# CONFIG_PRINTK_TIME is not set
1008# CONFIG_MAGIC_SYSRQ is not set 1024# CONFIG_MAGIC_SYSRQ is not set
1025# CONFIG_UNUSED_SYMBOLS is not set
1009CONFIG_DEBUG_KERNEL=y 1026CONFIG_DEBUG_KERNEL=y
1010CONFIG_LOG_BUF_SHIFT=14 1027CONFIG_LOG_BUF_SHIFT=14
1011CONFIG_DETECT_SOFTLOCKUP=y 1028CONFIG_DETECT_SOFTLOCKUP=y
1012# CONFIG_SCHEDSTATS is not set 1029# CONFIG_SCHEDSTATS is not set
1013# CONFIG_DEBUG_SLAB is not set 1030# CONFIG_DEBUG_SLAB is not set
1014# CONFIG_DEBUG_MUTEXES is not set 1031# CONFIG_DEBUG_RT_MUTEXES is not set
1032# CONFIG_RT_MUTEX_TESTER is not set
1015# CONFIG_DEBUG_SPINLOCK is not set 1033# CONFIG_DEBUG_SPINLOCK is not set
1034# CONFIG_DEBUG_MUTEXES is not set
1035# CONFIG_DEBUG_RWSEMS is not set
1016# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1036# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1037# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1017# CONFIG_DEBUG_KOBJECT is not set 1038# CONFIG_DEBUG_KOBJECT is not set
1018CONFIG_DEBUG_BUGVERBOSE=y 1039CONFIG_DEBUG_BUGVERBOSE=y
1019# CONFIG_DEBUG_INFO is not set 1040# CONFIG_DEBUG_INFO is not set
@@ -1052,3 +1073,4 @@ CONFIG_DEBUG_LL=y
1052CONFIG_CRC32=y 1073CONFIG_CRC32=y
1053# CONFIG_LIBCRC32C is not set 1074# CONFIG_LIBCRC32C is not set
1054CONFIG_ZLIB_INFLATE=y 1075CONFIG_ZLIB_INFLATE=y
1076CONFIG_PLIST=y
diff --git a/arch/arm/kernel/bios32.c b/arch/arm/kernel/bios32.c
index 964faac104fb..240c448ec31c 100644
--- a/arch/arm/kernel/bios32.c
+++ b/arch/arm/kernel/bios32.c
@@ -370,17 +370,6 @@ void __devinit pcibios_fixup_bus(struct pci_bus *bus)
370 features &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY); 370 features &= ~(PCI_COMMAND_SERR | PCI_COMMAND_PARITY);
371 371
372 switch (dev->class >> 8) { 372 switch (dev->class >> 8) {
373#if defined(CONFIG_ISA) || defined(CONFIG_EISA)
374 case PCI_CLASS_BRIDGE_ISA:
375 case PCI_CLASS_BRIDGE_EISA:
376 /*
377 * If this device is an ISA bridge, set isa_bridge
378 * to point at this device. We will then go looking
379 * for things like keyboard, etc.
380 */
381 isa_bridge = dev;
382 break;
383#endif
384 case PCI_CLASS_BRIDGE_PCI: 373 case PCI_CLASS_BRIDGE_PCI:
385 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &status); 374 pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &status);
386 status |= PCI_BRIDGE_CTL_PARITY|PCI_BRIDGE_CTL_MASTER_ABORT; 375 status |= PCI_BRIDGE_CTL_PARITY|PCI_BRIDGE_CTL_MASTER_ABORT;
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index c3d4e94ef5bf..626feeec0ade 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -167,6 +167,16 @@ void __init init_IRQ(void)
167} 167}
168 168
169#ifdef CONFIG_HOTPLUG_CPU 169#ifdef CONFIG_HOTPLUG_CPU
170
171static void route_irq(struct irqdesc *desc, unsigned int irq, unsigned int cpu)
172{
173 pr_debug("IRQ%u: moving from cpu%u to cpu%u\n", irq, desc->cpu, cpu);
174
175 spin_lock_irq(&desc->lock);
176 desc->chip->set_affinity(irq, cpumask_of_cpu(cpu));
177 spin_unlock_irq(&desc->lock);
178}
179
170/* 180/*
171 * The CPU has been marked offline. Migrate IRQs off this CPU. If 181 * The CPU has been marked offline. Migrate IRQs off this CPU. If
172 * the affinity settings do not allow other CPUs, force them onto any 182 * the affinity settings do not allow other CPUs, force them onto any
diff --git a/arch/arm/mach-sa1100/collie.c b/arch/arm/mach-sa1100/collie.c
index a6bab50dab61..a0dfa390e34b 100644
--- a/arch/arm/mach-sa1100/collie.c
+++ b/arch/arm/mach-sa1100/collie.c
@@ -83,8 +83,8 @@ static struct scoop_pcmcia_config collie_pcmcia_config = {
83 83
84 84
85static struct mcp_plat_data collie_mcp_data = { 85static struct mcp_plat_data collie_mcp_data = {
86 .mccr0 = MCCR0_ADM, 86 .mccr0 = MCCR0_ADM | MCCR0_ExtClk,
87 .sclk_rate = 11981000, 87 .sclk_rate = 9216000,
88}; 88};
89 89
90#ifdef CONFIG_SHARP_LOCOMO 90#ifdef CONFIG_SHARP_LOCOMO
diff --git a/arch/arm/mach-sa1100/collie_pm.c b/arch/arm/mach-sa1100/collie_pm.c
index 45b1e71f111d..1e25b1d19fce 100644
--- a/arch/arm/mach-sa1100/collie_pm.c
+++ b/arch/arm/mach-sa1100/collie_pm.c
@@ -9,6 +9,9 @@
9 * Li-ion batteries are angry beasts, and they like to explode. This driver is not finished, 9 * Li-ion batteries are angry beasts, and they like to explode. This driver is not finished,
10 * and sometimes charges them when it should not. If it makes angry lithium to come your way... 10 * and sometimes charges them when it should not. If it makes angry lithium to come your way...
11 * ...well, you have been warned. 11 * ...well, you have been warned.
12 *
13 * Actually, this should be quite safe, it seems sharp leaves charger enabled by default,
14 * and my collie did not explode (yet).
12 */ 15 */
13 16
14#include <linux/module.h> 17#include <linux/module.h>
@@ -40,9 +43,8 @@ static void collie_charger_init(void)
40{ 43{
41 int err; 44 int err;
42 45
43 if (sharpsl_param.adadj != -1) { 46 if (sharpsl_param.adadj != -1)
44 ad_revise = sharpsl_param.adadj; 47 ad_revise = sharpsl_param.adadj;
45 }
46 48
47 /* Register interrupt handler. */ 49 /* Register interrupt handler. */
48 if ((err = request_irq(COLLIE_IRQ_GPIO_AC_IN, sharpsl_ac_isr, IRQF_DISABLED, 50 if ((err = request_irq(COLLIE_IRQ_GPIO_AC_IN, sharpsl_ac_isr, IRQF_DISABLED,
@@ -72,27 +74,17 @@ static void collie_measure_temp(int on)
72 74
73static void collie_charge(int on) 75static void collie_charge(int on)
74{ 76{
75 if (on) { 77 extern struct platform_device colliescoop_device;
76 printk("Should start charger\n");
77 } else {
78 printk("Should stop charger\n");
79 }
80#ifdef I_AM_SURE
81 78
82 /* Zaurus seems to contain LTC1731 ; it should know when to 79 /* Zaurus seems to contain LTC1731; it should know when to
83 * stop charging itself, so setting charge on should be 80 * stop charging itself, so setting charge on should be
84 * relatively harmless (as long as it is not done too often). 81 * relatively harmless (as long as it is not done too often).
85 */ 82 */
86#define CF_BUF_CTRL_BASE 0xF0800000
87#define SCOOP_REG(adr) (*(volatile unsigned short*)(CF_BUF_CTRL_BASE+(adr)))
88#define SCOOP_REG_GPWR SCOOP_REG(SCOOP_GPWR)
89
90 if (on) { 83 if (on) {
91 set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); 84 set_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
92 } else { 85 } else {
93 reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON); 86 reset_scoop_gpio(&colliescoop_device.dev, COLLIE_SCP_CHARGE_ON);
94 } 87 }
95#endif
96} 88}
97 89
98static void collie_discharge(int on) 90static void collie_discharge(int on)
@@ -127,7 +119,6 @@ int collie_read_backup_battery(void)
127 119
128 ucb1x00_adc_enable(ucb); 120 ucb1x00_adc_enable(ucb);
129 121
130 /* Gives 75..130 */
131 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_BBAT_ON, 0); 122 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_BBAT_ON, 0);
132 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC); 123 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC);
133 124
@@ -146,9 +137,8 @@ int collie_read_main_battery(void)
146 ucb1x00_adc_enable(ucb); 137 ucb1x00_adc_enable(ucb);
147 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_BBAT_ON); 138 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_BBAT_ON);
148 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_MBAT_ON, 0); 139 ucb1x00_io_write(ucb, COLLIE_TC35143_GPIO_MBAT_ON, 0);
149 /* gives values 160..255 with battery removed... and 140
150 145..255 with battery inserted. (on AC), goes as low as 141 mdelay(1);
151 80 on DC. */
152 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC); 142 voltage = ucb1x00_adc_read(ucb, UCB_ADC_INP_AD1, UCB_SYNC);
153 143
154 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON); 144 ucb1x00_io_write(ucb, 0, COLLIE_TC35143_GPIO_MBAT_ON);
@@ -192,7 +182,7 @@ static unsigned long read_devdata(int which)
192 case SHARPSL_BATT_TEMP: 182 case SHARPSL_BATT_TEMP:
193 return collie_read_temp(); 183 return collie_read_temp();
194 case SHARPSL_ACIN_VOLT: 184 case SHARPSL_ACIN_VOLT:
195 return 0x1; 185 return 500;
196 case SHARPSL_STATUS_ACIN: { 186 case SHARPSL_STATUS_ACIN: {
197 int ret = GPLR & COLLIE_GPIO_AC_IN; 187 int ret = GPLR & COLLIE_GPIO_AC_IN;
198 printk("AC status = %d\n", ret); 188 printk("AC status = %d\n", ret);
@@ -208,10 +198,33 @@ static unsigned long read_devdata(int which)
208 } 198 }
209} 199}
210 200
201struct battery_thresh collie_battery_levels_acin[] = {
202 { 420, 100},
203 { 417, 95},
204 { 415, 90},
205 { 413, 80},
206 { 411, 75},
207 { 408, 70},
208 { 406, 60},
209 { 403, 50},
210 { 398, 40},
211 { 391, 25},
212 { 10, 5},
213 { 0, 0},
214};
215
211struct battery_thresh collie_battery_levels[] = { 216struct battery_thresh collie_battery_levels[] = {
212 { 368, 100}, 217 { 394, 100},
213 { 358, 25}, 218 { 390, 95},
214 { 356, 5}, 219 { 380, 90},
220 { 370, 80},
221 { 368, 75}, /* From sharp code: battery high with frontlight */
222 { 366, 70}, /* 60..90 -- fake values invented by me for testing */
223 { 364, 60},
224 { 362, 50},
225 { 360, 40},
226 { 358, 25}, /* From sharp code: battery low with frontlight */
227 { 356, 5}, /* From sharp code: battery verylow with frontlight */
215 { 0, 0}, 228 { 0, 0},
216}; 229};
217 230
@@ -226,13 +239,21 @@ struct sharpsl_charger_machinfo collie_pm_machinfo = {
226 .postsuspend = collie_postsuspend, 239 .postsuspend = collie_postsuspend,
227 .charger_wakeup = collie_charger_wakeup, 240 .charger_wakeup = collie_charger_wakeup,
228 .should_wakeup = collie_should_wakeup, 241 .should_wakeup = collie_should_wakeup,
229 .bat_levels = 3, 242 .bat_levels = 12,
230 .bat_levels_noac = collie_battery_levels, 243 .bat_levels_noac = collie_battery_levels,
231 .bat_levels_acin = collie_battery_levels, 244 .bat_levels_acin = collie_battery_levels_acin,
232 .status_high_acin = 368, 245 .status_high_acin = 368,
233 .status_low_acin = 358, 246 .status_low_acin = 358,
234 .status_high_noac = 368, 247 .status_high_noac = 368,
235 .status_low_noac = 358, 248 .status_low_noac = 358,
249 .charge_on_volt = 350, /* spitz uses 2.90V, but lets play it safe. */
250 .charge_on_temp = 550,
251 .charge_acin_high = 550, /* collie does not seem to have sensor for this, anyway */
252 .charge_acin_low = 450, /* ignored, too */
253 .fatal_acin_volt = 356,
254 .fatal_noacin_volt = 356,
255
256 .batfull_irq = 1, /* We do not want periodical charge restarts */
236}; 257};
237 258
238static int __init collie_pm_ucb_add(struct ucb1x00_dev *pdev) 259static int __init collie_pm_ucb_add(struct ucb1x00_dev *pdev)
diff --git a/arch/arm/mach-versatile/core.c b/arch/arm/mach-versatile/core.c
index a432539cc1bd..864377176015 100644
--- a/arch/arm/mach-versatile/core.c
+++ b/arch/arm/mach-versatile/core.c
@@ -35,6 +35,7 @@
35#include <asm/hardware/arm_timer.h> 35#include <asm/hardware/arm_timer.h>
36#include <asm/hardware/icst307.h> 36#include <asm/hardware/icst307.h>
37#include <asm/hardware/vic.h> 37#include <asm/hardware/vic.h>
38#include <asm/mach-types.h>
38 39
39#include <asm/mach/arch.h> 40#include <asm/mach/arch.h>
40#include <asm/mach/flash.h> 41#include <asm/mach/flash.h>
@@ -352,11 +353,7 @@ static const struct icst307_params versatile_oscvco_params = {
352static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco) 353static void versatile_oscvco_set(struct clk *clk, struct icst307_vco vco)
353{ 354{
354 void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET; 355 void __iomem *sys_lock = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_LOCK_OFFSET;
355#if defined(CONFIG_ARCH_VERSATILE_PB) 356 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSCCLCD_OFFSET;
356 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC4_OFFSET;
357#elif defined(CONFIG_MACH_VERSATILE_AB)
358 void __iomem *sys_osc = __io_address(VERSATILE_SYS_BASE) + VERSATILE_SYS_OSC1_OFFSET;
359#endif
360 u32 val; 357 u32 val;
361 358
362 val = readl(sys_osc) & ~0x7ffff; 359 val = readl(sys_osc) & ~0x7ffff;
@@ -529,7 +526,7 @@ static void versatile_clcd_disable(struct clcd_fb *fb)
529 /* 526 /*
530 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off 527 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light off
531 */ 528 */
532 if (fb->panel == &sanyo_2_5_in) { 529 if (machine_is_versatile_ab() && fb->panel == &sanyo_2_5_in) {
533 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); 530 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
534 unsigned long ctrl; 531 unsigned long ctrl;
535 532
@@ -578,7 +575,7 @@ static void versatile_clcd_enable(struct clcd_fb *fb)
578 /* 575 /*
579 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on 576 * If the LCD is Sanyo 2x5 in on the IB2 board, turn the back-light on
580 */ 577 */
581 if (fb->panel == &sanyo_2_5_in) { 578 if (machine_is_versatile_ab() && fb->panel == &sanyo_2_5_in) {
582 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL); 579 void __iomem *versatile_ib2_ctrl = __io_address(VERSATILE_IB2_CTRL);
583 unsigned long ctrl; 580 unsigned long ctrl;
584 581
diff --git a/arch/arm/nwfpe/softfloat.h b/arch/arm/nwfpe/softfloat.h
index e1125bc39ee4..0a3067452cd2 100644
--- a/arch/arm/nwfpe/softfloat.h
+++ b/arch/arm/nwfpe/softfloat.h
@@ -61,7 +61,7 @@ typedef struct {
61 u16 __padding; 61 u16 __padding;
62#endif 62#endif
63 u64 low; 63 u64 low;
64} floatx80; 64} __attribute__ ((packed,aligned(4))) floatx80;
65 65
66/* 66/*
67------------------------------------------------------------------------------- 67-------------------------------------------------------------------------------
diff --git a/arch/i386/kernel/crash.c b/arch/i386/kernel/crash.c
index 48f0f62f781c..5b96f038367f 100644
--- a/arch/i386/kernel/crash.c
+++ b/arch/i386/kernel/crash.c
@@ -90,7 +90,7 @@ static void crash_save_self(struct pt_regs *regs)
90 crash_save_this_cpu(regs, cpu); 90 crash_save_this_cpu(regs, cpu);
91} 91}
92 92
93#ifdef CONFIG_SMP 93#if defined(CONFIG_SMP) && defined(CONFIG_X86_LOCAL_APIC)
94static atomic_t waiting_for_crash_ipi; 94static atomic_t waiting_for_crash_ipi;
95 95
96static int crash_nmi_callback(struct pt_regs *regs, int cpu) 96static int crash_nmi_callback(struct pt_regs *regs, int cpu)
diff --git a/arch/i386/kernel/setup.c b/arch/i386/kernel/setup.c
index 7864395c1441..f1682206d304 100644
--- a/arch/i386/kernel/setup.c
+++ b/arch/i386/kernel/setup.c
@@ -1327,7 +1327,10 @@ legacy_init_iomem_resources(struct resource *code_resource, struct resource *dat
1327 res->start = e820.map[i].addr; 1327 res->start = e820.map[i].addr;
1328 res->end = res->start + e820.map[i].size - 1; 1328 res->end = res->start + e820.map[i].size - 1;
1329 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; 1329 res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
1330 request_resource(&iomem_resource, res); 1330 if (request_resource(&iomem_resource, res)) {
1331 kfree(res);
1332 continue;
1333 }
1331 if (e820.map[i].type == E820_RAM) { 1334 if (e820.map[i].type == E820_RAM) {
1332 /* 1335 /*
1333 * We don't know which RAM region contains kernel data, 1336 * We don't know which RAM region contains kernel data,
diff --git a/arch/i386/kernel/traps.c b/arch/i386/kernel/traps.c
index 5cfd4f42eeba..313ac1f7dc5a 100644
--- a/arch/i386/kernel/traps.c
+++ b/arch/i386/kernel/traps.c
@@ -324,35 +324,35 @@ void show_registers(struct pt_regs *regs)
324 324
325static void handle_BUG(struct pt_regs *regs) 325static void handle_BUG(struct pt_regs *regs)
326{ 326{
327 unsigned long eip = regs->eip;
327 unsigned short ud2; 328 unsigned short ud2;
328 unsigned short line;
329 char *file;
330 char c;
331 unsigned long eip;
332
333 eip = regs->eip;
334 329
335 if (eip < PAGE_OFFSET) 330 if (eip < PAGE_OFFSET)
336 goto no_bug; 331 return;
337 if (__get_user(ud2, (unsigned short __user *)eip)) 332 if (__get_user(ud2, (unsigned short __user *)eip))
338 goto no_bug; 333 return;
339 if (ud2 != 0x0b0f) 334 if (ud2 != 0x0b0f)
340 goto no_bug; 335 return;
341 if (__get_user(line, (unsigned short __user *)(eip + 2)))
342 goto bug;
343 if (__get_user(file, (char * __user *)(eip + 4)) ||
344 (unsigned long)file < PAGE_OFFSET || __get_user(c, file))
345 file = "<bad filename>";
346 336
347 printk(KERN_EMERG "------------[ cut here ]------------\n"); 337 printk(KERN_EMERG "------------[ cut here ]------------\n");
348 printk(KERN_EMERG "kernel BUG at %s:%d!\n", file, line);
349 338
350no_bug: 339#ifdef CONFIG_DEBUG_BUGVERBOSE
351 return; 340 do {
341 unsigned short line;
342 char *file;
343 char c;
352 344
353 /* Here we know it was a BUG but file-n-line is unavailable */ 345 if (__get_user(line, (unsigned short __user *)(eip + 2)))
354bug: 346 break;
355 printk(KERN_EMERG "Kernel BUG\n"); 347 if (__get_user(file, (char * __user *)(eip + 4)) ||
348 (unsigned long)file < PAGE_OFFSET || __get_user(c, file))
349 file = "<bad filename>";
350
351 printk(KERN_EMERG "kernel BUG at %s:%d!\n", file, line);
352 return;
353 } while (0);
354#endif
355 printk(KERN_EMERG "Kernel BUG at [verbose debug info unavailable]\n");
356} 356}
357 357
358/* This is gone through when something in the kernel 358/* This is gone through when something in the kernel
diff --git a/arch/i386/lib/usercopy.c b/arch/i386/lib/usercopy.c
index 4b75212ab6dd..efc7e7d5f4d0 100644
--- a/arch/i386/lib/usercopy.c
+++ b/arch/i386/lib/usercopy.c
@@ -843,7 +843,6 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
843unsigned long 843unsigned long
844copy_to_user(void __user *to, const void *from, unsigned long n) 844copy_to_user(void __user *to, const void *from, unsigned long n)
845{ 845{
846 might_sleep();
847 BUG_ON((long) n < 0); 846 BUG_ON((long) n < 0);
848 if (access_ok(VERIFY_WRITE, to, n)) 847 if (access_ok(VERIFY_WRITE, to, n))
849 n = __copy_to_user(to, from, n); 848 n = __copy_to_user(to, from, n);
@@ -870,7 +869,6 @@ EXPORT_SYMBOL(copy_to_user);
870unsigned long 869unsigned long
871copy_from_user(void *to, const void __user *from, unsigned long n) 870copy_from_user(void *to, const void __user *from, unsigned long n)
872{ 871{
873 might_sleep();
874 BUG_ON((long) n < 0); 872 BUG_ON((long) n < 0);
875 if (access_ok(VERIFY_READ, from, n)) 873 if (access_ok(VERIFY_READ, from, n))
876 n = __copy_from_user(to, from, n); 874 n = __copy_from_user(to, from, n);
diff --git a/arch/i386/pci/common.c b/arch/i386/pci/common.c
index c624b61e1104..0a362e3aeac5 100644
--- a/arch/i386/pci/common.c
+++ b/arch/i386/pci/common.c
@@ -17,10 +17,6 @@
17 17
18#include "pci.h" 18#include "pci.h"
19 19
20#ifdef CONFIG_PCI_BIOS
21extern void pcibios_sort(void);
22#endif
23
24unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 | 20unsigned int pci_probe = PCI_PROBE_BIOS | PCI_PROBE_CONF1 | PCI_PROBE_CONF2 |
25 PCI_PROBE_MMCONF; 21 PCI_PROBE_MMCONF;
26 22
diff --git a/arch/i386/pci/pci.h b/arch/i386/pci/pci.h
index 12bf3d8dda29..bf4e79335388 100644
--- a/arch/i386/pci/pci.h
+++ b/arch/i386/pci/pci.h
@@ -84,4 +84,4 @@ extern int pci_conf1_read(unsigned int seg, unsigned int bus,
84extern void pci_direct_init(void); 84extern void pci_direct_init(void);
85extern void pci_pcbios_init(void); 85extern void pci_pcbios_init(void);
86extern void pci_mmcfg_init(void); 86extern void pci_mmcfg_init(void);
87 87extern void pcibios_sort(void);
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 747a9c1228f2..330f6abc7703 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -480,6 +480,7 @@ config MOMENCO_OCELOT_G
480 select SYS_SUPPORTS_32BIT_KERNEL 480 select SYS_SUPPORTS_32BIT_KERNEL
481 select SYS_SUPPORTS_64BIT_KERNEL 481 select SYS_SUPPORTS_64BIT_KERNEL
482 select SYS_SUPPORTS_BIG_ENDIAN 482 select SYS_SUPPORTS_BIG_ENDIAN
483 select ARCH_SPARSEMEM_ENABLE
483 help 484 help
484 The Ocelot is a MIPS-based Single Board Computer (SBC) made by 485 The Ocelot is a MIPS-based Single Board Computer (SBC) made by
485 Momentum Computer <http://www.momenco.com/>. 486 Momentum Computer <http://www.momenco.com/>.
@@ -556,6 +557,7 @@ config QEMU
556 select SYS_HAS_CPU_MIPS32_R1 557 select SYS_HAS_CPU_MIPS32_R1
557 select SYS_SUPPORTS_32BIT_KERNEL 558 select SYS_SUPPORTS_32BIT_KERNEL
558 select SYS_SUPPORTS_BIG_ENDIAN 559 select SYS_SUPPORTS_BIG_ENDIAN
560 select ARCH_SPARSEMEM_ENABLE
559 help 561 help
560 Qemu is a software emulator which among other architectures also 562 Qemu is a software emulator which among other architectures also
561 can simulate a MIPS32 4Kc system. This patch adds support for the 563 can simulate a MIPS32 4Kc system. This patch adds support for the
@@ -594,7 +596,6 @@ config SGI_IP22
594 select SYS_SUPPORTS_32BIT_KERNEL 596 select SYS_SUPPORTS_32BIT_KERNEL
595 select SYS_SUPPORTS_64BIT_KERNEL 597 select SYS_SUPPORTS_64BIT_KERNEL
596 select SYS_SUPPORTS_BIG_ENDIAN 598 select SYS_SUPPORTS_BIG_ENDIAN
597 select SYS_SUPPORTS_SMP
598 help 599 help
599 This are the SGI Indy, Challenge S and Indigo2, as well as certain 600 This are the SGI Indy, Challenge S and Indigo2, as well as certain
600 OEM variants like the Tandem CMN B006S. To compile a Linux kernel 601 OEM variants like the Tandem CMN B006S. To compile a Linux kernel
@@ -1688,6 +1689,13 @@ config ARCH_DISCONTIGMEM_ENABLE
1688 or have huge holes in the physical address space for other reasons. 1689 or have huge holes in the physical address space for other reasons.
1689 See <file:Documentation/vm/numa> for more. 1690 See <file:Documentation/vm/numa> for more.
1690 1691
1692config ARCH_SPARSEMEM_ENABLE
1693 bool
1694
1695config ARCH_SPARSEMEM_ENABLE
1696 bool
1697 select SPARSEMEM_STATIC
1698
1691config NUMA 1699config NUMA
1692 bool "NUMA Support" 1700 bool "NUMA Support"
1693 depends on SYS_SUPPORTS_NUMA 1701 depends on SYS_SUPPORTS_NUMA
diff --git a/arch/mips/Kconfig.debug b/arch/mips/Kconfig.debug
index 515f9e611307..5d6afb52d904 100644
--- a/arch/mips/Kconfig.debug
+++ b/arch/mips/Kconfig.debug
@@ -1,5 +1,9 @@
1menu "Kernel hacking" 1menu "Kernel hacking"
2 2
3config TRACE_IRQFLAGS_SUPPORT
4 bool
5 default y
6
3source "lib/Kconfig.debug" 7source "lib/Kconfig.debug"
4 8
5config CROSSCOMPILE 9config CROSSCOMPILE
diff --git a/arch/mips/Makefile b/arch/mips/Makefile
index ebbb9adc0e2f..d333ce4ba26b 100644
--- a/arch/mips/Makefile
+++ b/arch/mips/Makefile
@@ -712,16 +712,14 @@ endif
712vmlinux.bin: $(vmlinux-32) 712vmlinux.bin: $(vmlinux-32)
713 +@$(call makeboot,$@) 713 +@$(call makeboot,$@)
714 714
715vmlinux.ecoff vmlinux.rm200: $(vmlinux-32) 715vmlinux.ecoff: $(vmlinux-32)
716 +@$(call makeboot,$@) 716 +@$(call makeboot,$@)
717 717
718vmlinux.srec: $(vmlinux-32) 718vmlinux.srec: $(vmlinux-32)
719 +@$(call makeboot,$@) 719 +@$(call makeboot,$@)
720 720
721CLEAN_FILES += vmlinux.ecoff \ 721CLEAN_FILES += vmlinux.ecoff \
722 vmlinux.srec \ 722 vmlinux.srec
723 vmlinux.rm200.tmp \
724 vmlinux.rm200
725 723
726archclean: 724archclean:
727 @$(MAKE) $(clean)=arch/mips/boot 725 @$(MAKE) $(clean)=arch/mips/boot
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c
index 29d6f8178bad..316722ee8cf5 100644
--- a/arch/mips/au1000/common/irq.c
+++ b/arch/mips/au1000/common/irq.c
@@ -251,7 +251,7 @@ void restore_local_and_enable(int controller, unsigned long mask)
251} 251}
252 252
253 253
254static struct hw_interrupt_type rise_edge_irq_type = { 254static struct irq_chip rise_edge_irq_type = {
255 .typename = "Au1000 Rise Edge", 255 .typename = "Au1000 Rise Edge",
256 .startup = startup_irq, 256 .startup = startup_irq,
257 .shutdown = shutdown_irq, 257 .shutdown = shutdown_irq,
@@ -261,7 +261,7 @@ static struct hw_interrupt_type rise_edge_irq_type = {
261 .end = end_irq, 261 .end = end_irq,
262}; 262};
263 263
264static struct hw_interrupt_type fall_edge_irq_type = { 264static struct irq_chip fall_edge_irq_type = {
265 .typename = "Au1000 Fall Edge", 265 .typename = "Au1000 Fall Edge",
266 .startup = startup_irq, 266 .startup = startup_irq,
267 .shutdown = shutdown_irq, 267 .shutdown = shutdown_irq,
@@ -271,7 +271,7 @@ static struct hw_interrupt_type fall_edge_irq_type = {
271 .end = end_irq, 271 .end = end_irq,
272}; 272};
273 273
274static struct hw_interrupt_type either_edge_irq_type = { 274static struct irq_chip either_edge_irq_type = {
275 .typename = "Au1000 Rise or Fall Edge", 275 .typename = "Au1000 Rise or Fall Edge",
276 .startup = startup_irq, 276 .startup = startup_irq,
277 .shutdown = shutdown_irq, 277 .shutdown = shutdown_irq,
@@ -281,7 +281,7 @@ static struct hw_interrupt_type either_edge_irq_type = {
281 .end = end_irq, 281 .end = end_irq,
282}; 282};
283 283
284static struct hw_interrupt_type level_irq_type = { 284static struct irq_chip level_irq_type = {
285 .typename = "Au1000 Level", 285 .typename = "Au1000 Level",
286 .startup = startup_irq, 286 .startup = startup_irq,
287 .shutdown = shutdown_irq, 287 .shutdown = shutdown_irq,
diff --git a/arch/mips/au1000/common/prom.c b/arch/mips/au1000/common/prom.c
index ae7d8c57bf3f..b4b010a2fe36 100644
--- a/arch/mips/au1000/common/prom.c
+++ b/arch/mips/au1000/common/prom.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * 2 *
3 * BRIEF MODULE DESCRIPTION 3 * BRIEF MODULE DESCRIPTION
4 * PROM library initialisation code, assuming YAMON is the boot loader. 4 * PROM library initialisation code, supports YAMON and U-Boot.
5 * 5 *
6 * Copyright 2000, 2001, 2006 MontaVista Software Inc. 6 * Copyright 2000, 2001, 2006 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc. 7 * Author: MontaVista Software, Inc.
@@ -46,12 +46,6 @@
46extern int prom_argc; 46extern int prom_argc;
47extern char **prom_argv, **prom_envp; 47extern char **prom_argv, **prom_envp;
48 48
49typedef struct
50{
51 char *name;
52 char *val;
53} t_env_var;
54
55 49
56char * prom_getcmdline(void) 50char * prom_getcmdline(void)
57{ 51{
@@ -84,13 +78,21 @@ char *prom_getenv(char *envname)
84{ 78{
85 /* 79 /*
86 * Return a pointer to the given environment variable. 80 * Return a pointer to the given environment variable.
81 * YAMON uses "name", "value" pairs, while U-Boot uses "name=value".
87 */ 82 */
88 83
89 t_env_var *env = (t_env_var *)prom_envp; 84 char **env = prom_envp;
90 85 int i = strlen(envname);
91 while (env->name) { 86 int yamon = (*env && strchr(*env, '=') == NULL);
92 if (strcmp(envname, env->name) == 0) 87
93 return env->val; 88 while (*env) {
89 if (yamon) {
90 if (strcmp(envname, *env++) == 0)
91 return *env;
92 } else {
93 if (strncmp(envname, *env, i) == 0 && (*env)[i] == '=')
94 return *env + i + 1;
95 }
94 env++; 96 env++;
95 } 97 }
96 return NULL; 98 return NULL;
diff --git a/arch/mips/au1000/common/setup.c b/arch/mips/au1000/common/setup.c
index cc5138ce9c95..377ae0d8ff00 100644
--- a/arch/mips/au1000/common/setup.c
+++ b/arch/mips/au1000/common/setup.c
@@ -51,7 +51,6 @@ extern void au1000_power_off(void);
51extern void au1x_time_init(void); 51extern void au1x_time_init(void);
52extern void au1x_timer_setup(struct irqaction *irq); 52extern void au1x_timer_setup(struct irqaction *irq);
53extern void au1xxx_time_init(void); 53extern void au1xxx_time_init(void);
54extern void au1xxx_timer_setup(struct irqaction *irq);
55extern void set_cpuspec(void); 54extern void set_cpuspec(void);
56 55
57void __init plat_mem_setup(void) 56void __init plat_mem_setup(void)
@@ -123,7 +122,6 @@ void __init plat_mem_setup(void)
123 _machine_halt = au1000_halt; 122 _machine_halt = au1000_halt;
124 pm_power_off = au1000_power_off; 123 pm_power_off = au1000_power_off;
125 board_time_init = au1xxx_time_init; 124 board_time_init = au1xxx_time_init;
126 board_timer_setup = au1xxx_timer_setup;
127 125
128 /* IO/MEM resources. */ 126 /* IO/MEM resources. */
129 set_io_port_base(0); 127 set_io_port_base(0);
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c
index 7e988b0b0130..7fbea1bf7b48 100644
--- a/arch/mips/au1000/common/time.c
+++ b/arch/mips/au1000/common/time.c
@@ -383,7 +383,7 @@ static unsigned long do_fast_pm_gettimeoffset(void)
383} 383}
384#endif 384#endif
385 385
386void __init au1xxx_timer_setup(struct irqaction *irq) 386void __init plat_timer_setup(struct irqaction *irq)
387{ 387{
388 unsigned int est_freq; 388 unsigned int est_freq;
389 389
diff --git a/arch/mips/au1000/csb250/Makefile b/arch/mips/au1000/csb250/Makefile
deleted file mode 100644
index c0c4dcdccae8..000000000000
--- a/arch/mips/au1000/csb250/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
1#
2# Copyright 2002 Cogent Computer Systems
3# dan@embeddededge.com
4#
5# Makefile for the Cogent CSB250 Au1500 board. Copied from Pb1500.
6#
7
8obj-y := init.o board_setup.o irqmap.o
diff --git a/arch/mips/au1000/csb250/board_setup.c b/arch/mips/au1000/csb250/board_setup.c
deleted file mode 100644
index 348c3024d3d1..000000000000
--- a/arch/mips/au1000/csb250/board_setup.c
+++ /dev/null
@@ -1,238 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Cogent CSB250 board setup.
5 *
6 * Copyright 2002 Cogent Computer Systems, Inc.
7 * dan@embeddededge.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29#include <linux/init.h>
30#include <linux/sched.h>
31#include <linux/ioport.h>
32#include <linux/mm.h>
33#include <linux/console.h>
34#include <linux/mc146818rtc.h>
35#include <linux/delay.h>
36
37#include <asm/cpu.h>
38#include <asm/bootinfo.h>
39#include <asm/irq.h>
40#include <asm/keyboard.h>
41#include <asm/mipsregs.h>
42#include <asm/reboot.h>
43#include <asm/pgtable.h>
44#include <asm/au1000.h>
45#include <asm/csb250.h>
46
47extern int (*board_pci_idsel)(unsigned int devsel, int assert);
48int csb250_pci_idsel(unsigned int devsel, int assert);
49
50void __init board_setup(void)
51{
52 u32 pin_func, pin_val;
53 u32 sys_freqctrl, sys_clksrc;
54
55
56 // set AUX clock to 12MHz * 8 = 96 MHz
57 au_writel(8, SYS_AUXPLL);
58 au_writel(0, SYS_PINSTATERD);
59 udelay(100);
60
61#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
62
63 /* GPIO201 is input for PCMCIA card detect */
64 /* GPIO203 is input for PCMCIA interrupt request */
65 au_writel(au_readl(GPIO2_DIR) & (u32)(~((1<<1)|(1<<3))), GPIO2_DIR);
66
67 /* zero and disable FREQ2 */
68 sys_freqctrl = au_readl(SYS_FREQCTRL0);
69 sys_freqctrl &= ~0xFFF00000;
70 au_writel(sys_freqctrl, SYS_FREQCTRL0);
71
72 /* zero and disable USBH/USBD clocks */
73 sys_clksrc = au_readl(SYS_CLKSRC);
74 sys_clksrc &= ~0x00007FE0;
75 au_writel(sys_clksrc, SYS_CLKSRC);
76
77 sys_freqctrl = au_readl(SYS_FREQCTRL0);
78 sys_freqctrl &= ~0xFFF00000;
79
80 sys_clksrc = au_readl(SYS_CLKSRC);
81 sys_clksrc &= ~0x00007FE0;
82
83 // FREQ2 = aux/2 = 48 MHz
84 sys_freqctrl |= ((0<<22) | (1<<21) | (1<<20));
85 au_writel(sys_freqctrl, SYS_FREQCTRL0);
86
87 /*
88 * Route 48MHz FREQ2 into USB Host and/or Device
89 */
90#ifdef CONFIG_USB_OHCI
91 sys_clksrc |= ((4<<12) | (0<<11) | (0<<10));
92#endif
93#ifdef CONFIG_AU1X00_USB_DEVICE
94 sys_clksrc |= ((4<<7) | (0<<6) | (0<<5));
95#endif
96 au_writel(sys_clksrc, SYS_CLKSRC);
97
98
99 pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
100#ifndef CONFIG_AU1X00_USB_DEVICE
101 // 2nd USB port is USB host
102 pin_func |= 0x8000;
103#endif
104 au_writel(pin_func, SYS_PINFUNC);
105#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
106
107 /* Configure GPIO2....it's used by PCI among other things.
108 */
109
110 /* Make everything but GP200 (PCI RST) an input until we get
111 * the pins set correctly.
112 */
113 au_writel(0x00000001, GPIO2_DIR);
114
115 /* Set the pins used for output.
116 * A zero bit will leave PCI reset, LEDs off, power up USB,
117 * IDSEL disabled.
118 */
119 pin_val = ((3 << 30) | (7 << 19) | (1 << 17) | (1 << 16));
120 au_writel(pin_val, GPIO2_OUTPUT);
121
122 /* Set the output direction.
123 */
124 pin_val = ((3 << 14) | (7 << 3) | (1 << 1) | (1 << 0));
125 au_writel(pin_val, GPIO2_DIR);
126
127#ifdef CONFIG_PCI
128 /* Use FREQ1 for the PCI output clock. We use the
129 * CPU clock of 384 MHz divided by 12 to get 32 MHz PCI.
130 * If Michael changes the CPU speed, we need to adjust
131 * that here as well :-).
132 */
133
134 /* zero and disable FREQ1
135 */
136 sys_freqctrl = au_readl(SYS_FREQCTRL0);
137 sys_freqctrl &= ~0x000ffc00;
138 au_writel(sys_freqctrl, SYS_FREQCTRL0);
139
140 /* zero and disable PCI clock
141 */
142 sys_clksrc = au_readl(SYS_CLKSRC);
143 sys_clksrc &= ~0x000f8000;
144 au_writel(sys_clksrc, SYS_CLKSRC);
145
146 /* Get current values (which really should match above).
147 */
148 sys_freqctrl = au_readl(SYS_FREQCTRL0);
149 sys_freqctrl &= ~0x000ffc00;
150
151 sys_clksrc = au_readl(SYS_CLKSRC);
152 sys_clksrc &= ~0x000f8000;
153
154 /* FREQ1 = cpu/12 = 32 MHz
155 */
156 sys_freqctrl |= ((5<<12) | (1<<11) | (0<<10));
157 au_writel(sys_freqctrl, SYS_FREQCTRL0);
158
159 /* Just connect the clock without further dividing.
160 */
161 sys_clksrc |= ((3<<17) | (0<<16) | (0<<15));
162 au_writel(sys_clksrc, SYS_CLKSRC);
163
164 udelay(1);
165
166 /* Now that clocks should be running, take PCI out of reset.
167 */
168 pin_val = au_readl(GPIO2_OUTPUT);
169 pin_val |= ((1 << 16) | 1);
170 au_writel(pin_val, GPIO2_OUTPUT);
171
172 // Setup PCI bus controller
173 au_writel(0, Au1500_PCI_CMEM);
174 au_writel(0x00003fff, Au1500_CFG_BASE);
175
176 /* We run big endian without any of the software byte swapping,
177 * so configure the PCI bridge to help us out.
178 */
179 au_writel(0xf | (2<<6) | (1<<5) | (1<<4), Au1500_PCI_CFG);
180
181 au_writel(0xf0000000, Au1500_PCI_MWMASK_DEV);
182 au_writel(0, Au1500_PCI_MWBASE_REV_CCL);
183 au_writel(0x02a00356, Au1500_PCI_STATCMD);
184 au_writel(0x00003c04, Au1500_PCI_HDRTYPE);
185 au_writel(0x00000008, Au1500_PCI_MBAR);
186 au_sync();
187
188 board_pci_idsel = csb250_pci_idsel;
189#endif
190
191 /* Enable sys bus clock divider when IDLE state or no bus activity. */
192 au_writel(au_readl(SYS_POWERCTRL) | (0x3 << 5), SYS_POWERCTRL);
193
194#ifdef CONFIG_RTC
195 // Enable the RTC if not already enabled
196 if (!(au_readl(0xac000028) & 0x20)) {
197 printk("enabling clock ...\n");
198 au_writel((au_readl(0xac000028) | 0x20), 0xac000028);
199 }
200 // Put the clock in BCD mode
201 if (readl(0xac00002C) & 0x4) { /* reg B */
202 au_writel(au_readl(0xac00002c) & ~0x4, 0xac00002c);
203 au_sync();
204 }
205#endif
206}
207
208/* The IDSEL is selected in the GPIO2 register. We will make device
209 * 12 appear in slot 0 and device 13 appear in slot 1.
210 */
211int
212csb250_pci_idsel(unsigned int devsel, int assert)
213{
214 int retval;
215 unsigned int gpio2_pins;
216
217 retval = 1;
218
219 /* First, disable both selects, then assert the one requested.
220 */
221 au_writel(0xc000c000, GPIO2_OUTPUT);
222 au_sync();
223
224 if (assert) {
225 if (devsel == 12)
226 gpio2_pins = 0x40000000;
227 else if (devsel == 13)
228 gpio2_pins = 0x80000000;
229 else {
230 gpio2_pins = 0xc000c000;
231 retval = 0;
232 }
233 au_writel(gpio2_pins, GPIO2_OUTPUT);
234 }
235 au_sync();
236
237 return retval;
238}
diff --git a/arch/mips/au1000/csb250/init.c b/arch/mips/au1000/csb250/init.c
deleted file mode 100644
index 83f1b31a0b8e..000000000000
--- a/arch/mips/au1000/csb250/init.c
+++ /dev/null
@@ -1,94 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Cogent CSB250 board setup
5 *
6 * Copyright 2002 Cogent Computer Systems, Inc.
7 * dan@embeddededge.com
8 *
9 * This program is free software; you can redistribute it and/or modify it
10 * under the terms of the GNU General Public License as published by the
11 * Free Software Foundation; either version 2 of the License, or (at your
12 * option) any later version.
13 *
14 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
15 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
18 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
19 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
20 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
21 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 *
25 * You should have received a copy of the GNU General Public License along
26 * with this program; if not, write to the Free Software Foundation, Inc.,
27 * 675 Mass Ave, Cambridge, MA 02139, USA.
28 */
29
30#include <linux/init.h>
31#include <linux/mm.h>
32#include <linux/sched.h>
33#include <linux/bootmem.h>
34#include <asm/addrspace.h>
35#include <asm/bootinfo.h>
36#include <linux/string.h>
37#include <linux/kernel.h>
38
39int prom_argc;
40char **prom_argv, **prom_envp;
41extern void __init prom_init_cmdline(void);
42extern char *prom_getenv(char *envname);
43
44/* When we get initrd working someday.........
45*/
46int my_initrd_start, my_initrd_size;
47
48/* Start arguments and environment.
49*/
50static char *csb_env[2];
51static char *csb_arg[4];
52static char *arg1 = "console=ttyS3,38400";
53static char *arg2 = "root=/dev/nfs rw ip=any";
54static char *env1 = "ethaddr=00:30:23:50:00:00";
55
56const char *get_system_type(void)
57{
58 return "Cogent CSB250";
59}
60
61int __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
62{
63 unsigned char *memsize_str;
64 unsigned long memsize;
65
66 /* We use a0 and a1 to pass initrd start and size.
67 */
68 if (((unsigned int) argc > 0) && ((uint)argv > 0)) {
69 my_initrd_start = (unsigned int)argc;
70 my_initrd_size = (unsigned int)argv;
71 }
72
73 /* First argv is ignored.
74 */
75 prom_argc = 3;
76 prom_argv = csb_arg;
77 prom_envp = csb_env;
78 csb_arg[1] = arg1;
79 csb_arg[2] = arg2;
80 csb_env[0] = env1;
81
82 mips_machgroup = MACH_GROUP_ALCHEMY;
83 mips_machtype = MACH_CSB250;
84
85 prom_init_cmdline();
86 memsize_str = prom_getenv("memsize");
87 if (!memsize_str) {
88 memsize = 0x02000000;
89 } else {
90 memsize = simple_strtol(memsize_str, NULL, 0);
91 }
92 add_memory_region(0, memsize, BOOT_MEM_RAM);
93 return 0;
94}
diff --git a/arch/mips/au1000/csb250/irqmap.c b/arch/mips/au1000/csb250/irqmap.c
deleted file mode 100644
index 57d60401905e..000000000000
--- a/arch/mips/au1000/csb250/irqmap.c
+++ /dev/null
@@ -1,60 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28#include <linux/errno.h>
29#include <linux/init.h>
30#include <linux/irq.h>
31#include <linux/kernel_stat.h>
32#include <linux/module.h>
33#include <linux/signal.h>
34#include <linux/sched.h>
35#include <linux/types.h>
36#include <linux/interrupt.h>
37#include <linux/ioport.h>
38#include <linux/timex.h>
39#include <linux/slab.h>
40#include <linux/random.h>
41#include <linux/delay.h>
42#include <linux/bitops.h>
43
44#include <asm/bootinfo.h>
45#include <asm/io.h>
46#include <asm/mipsregs.h>
47#include <asm/system.h>
48#include <asm/au1000.h>
49
50au1xxx_irq_map_t __initdata au1xxx_irq_map[] = {
51
52 { AU1500_GPIO_204, INTC_INT_HIGH_LEVEL, 0},
53 { AU1500_GPIO_201, INTC_INT_LOW_LEVEL, 0 },
54 { AU1500_GPIO_202, INTC_INT_LOW_LEVEL, 0 },
55 { AU1500_GPIO_203, INTC_INT_LOW_LEVEL, 0 },
56 { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 },
57 { AU1500_GPIO_207, INTC_INT_LOW_LEVEL, 0 },
58};
59
60int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/au1000/hydrogen3/Makefile b/arch/mips/au1000/hydrogen3/Makefile
deleted file mode 100644
index 974f79256bb3..000000000000
--- a/arch/mips/au1000/hydrogen3/Makefile
+++ /dev/null
@@ -1,9 +0,0 @@
1#
2# Copyright 2000 MontaVista Software Inc.
3# Author: MontaVista Software, Inc.
4# ppopov@mvista.com or source@mvista.com
5#
6# Makefile for the Alchemy Semiconductor PB1000 board.
7#
8
9obj-y := init.o board_setup.o irqmap.o
diff --git a/arch/mips/au1000/hydrogen3/board_setup.c b/arch/mips/au1000/hydrogen3/board_setup.c
deleted file mode 100644
index d081640e2e00..000000000000
--- a/arch/mips/au1000/hydrogen3/board_setup.c
+++ /dev/null
@@ -1,69 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * Alchemy Db1x00 board setup.
5 *
6 * Copyright 2000 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc.
8 * ppopov@mvista.com or source@mvista.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 *
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
16 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
18 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
22 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * You should have received a copy of the GNU General Public License along
27 * with this program; if not, write to the Free Software Foundation, Inc.,
28 * 675 Mass Ave, Cambridge, MA 02139, USA.
29 */
30#include <linux/init.h>
31#include <linux/sched.h>
32#include <linux/ioport.h>
33#include <linux/mm.h>
34#include <linux/console.h>
35#include <linux/mc146818rtc.h>
36#include <linux/delay.h>
37
38#include <asm/cpu.h>
39#include <asm/bootinfo.h>
40#include <asm/irq.h>
41#include <asm/keyboard.h>
42#include <asm/mipsregs.h>
43#include <asm/reboot.h>
44#include <asm/pgtable.h>
45#include <asm/au1000.h>
46
47void board_reset (void)
48{
49}
50
51void __init board_setup(void)
52{
53 u32 pin_func;
54
55#ifdef CONFIG_AU1X00_USB_DEVICE
56 // 2nd USB port is USB device
57 pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
58 au_writel(pin_func, SYS_PINFUNC);
59#endif
60
61#if defined(CONFIG_IRDA) && (defined(CONFIG_SOC_AU1000) || defined(CONFIG_SOC_AU1100))
62 /* set IRFIRSEL instead of GPIO15 */
63 pin_func = au_readl(SYS_PINFUNC) | (u32)((1<<8));
64 au_writel(pin_func, SYS_PINFUNC);
65 au_sync();
66#endif
67
68 printk("AMD Alchemy Hydrogen3 Board\n");
69}
diff --git a/arch/mips/au1000/hydrogen3/init.c b/arch/mips/au1000/hydrogen3/init.c
deleted file mode 100644
index 8f02bb80a55a..000000000000
--- a/arch/mips/au1000/hydrogen3/init.c
+++ /dev/null
@@ -1,75 +0,0 @@
1/*
2 *
3 * BRIEF MODULE DESCRIPTION
4 * PB1000 board setup
5 *
6 * Copyright 2001 MontaVista Software Inc.
7 * Author: MontaVista Software, Inc.
8 * ppopov@mvista.com or source@mvista.com
9 *
10 * This program is free software; you can redistribute it and/or modify it
11 * under the terms of the GNU General Public License as published by the
12 * Free Software Foundation; either version 2 of the License, or (at your
13 * option) any later version.
14 *
15 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
16 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
17 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
18 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
21 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
22 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 *
26 * You should have received a copy of the GNU General Public License along
27 * with this program; if not, write to the Free Software Foundation, Inc.,
28 * 675 Mass Ave, Cambridge, MA 02139, USA.
29 */
30
31#include <linux/init.h>
32#include <linux/mm.h>
33#include <linux/sched.h>
34#include <linux/bootmem.h>
35#include <asm/addrspace.h>
36#include <asm/bootinfo.h>
37#include <linux/string.h>
38#include <linux/kernel.h>
39
40int prom_argc;
41char **prom_argv, **prom_envp;
42extern void __init prom_init_cmdline(void);
43extern char *prom_getenv(char *envname);
44
45const char *get_system_type(void)
46{
47#ifdef CONFIG_MIPS_BOSPORUS
48 return "Alchemy Bosporus Gateway Reference";
49#else
50 return "Alchemy Db1x00";
51#endif
52}
53
54int __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
55{
56 unsigned char *memsize_str;
57 unsigned long memsize;
58
59 prom_argc = argc;
60 prom_argv = argv;
61 prom_envp = envp;
62
63 mips_machgroup = MACH_GROUP_ALCHEMY;
64 mips_machtype = MACH_DB1000; /* set the platform # */
65 prom_init_cmdline();
66
67 memsize_str = prom_getenv("memsize");
68 if (!memsize_str) {
69 memsize = 0x04000000;
70 } else {
71 memsize = simple_strtol(memsize_str, NULL, 0);
72 }
73 add_memory_region(0, memsize, BOOT_MEM_RAM);
74 return 0;
75}
diff --git a/arch/mips/au1000/hydrogen3/irqmap.c b/arch/mips/au1000/hydrogen3/irqmap.c
deleted file mode 100644
index 14e1ed37cf6b..000000000000
--- a/arch/mips/au1000/hydrogen3/irqmap.c
+++ /dev/null
@@ -1,56 +0,0 @@
1/*
2 * BRIEF MODULE DESCRIPTION
3 * Au1xxx irq map table
4 *
5 * Copyright 2003 Embedded Edge, LLC
6 * dan@embeddededge.com
7 *
8 * This program is free software; you can redistribute it and/or modify it
9 * under the terms of the GNU General Public License as published by the
10 * Free Software Foundation; either version 2 of the License, or (at your
11 * option) any later version.
12 *
13 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
14 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
15 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
16 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
17 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
18 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
19 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
22 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 *
24 * You should have received a copy of the GNU General Public License along
25 * with this program; if not, write to the Free Software Foundation, Inc.,
26 * 675 Mass Ave, Cambridge, MA 02139, USA.
27 */
28#include <linux/errno.h>
29#include <linux/init.h>
30#include <linux/irq.h>
31#include <linux/kernel_stat.h>
32#include <linux/module.h>
33#include <linux/signal.h>
34#include <linux/sched.h>
35#include <linux/types.h>
36#include <linux/interrupt.h>
37#include <linux/ioport.h>
38#include <linux/timex.h>
39#include <linux/slab.h>
40#include <linux/random.h>
41#include <linux/delay.h>
42#include <linux/bitops.h>
43
44#include <asm/bootinfo.h>
45#include <asm/io.h>
46#include <asm/mipsregs.h>
47#include <asm/system.h>
48#include <asm/au1000.h>
49
50au1xxx_irq_map_t __initdata au1xxx_irq_map[] = {
51
52 /* { AU1500_GPIO_205, INTC_INT_LOW_LEVEL, 0 }, */
53 { AU1000_GPIO_21, INTC_INT_LOW_LEVEL, 0 },
54};
55
56int __initdata au1xxx_nr_irqs = ARRAY_SIZE(au1xxx_irq_map);
diff --git a/arch/mips/au1000/pb1200/irqmap.c b/arch/mips/au1000/pb1200/irqmap.c
index 2d49f32f4622..f66779f0d4cd 100644
--- a/arch/mips/au1000/pb1200/irqmap.c
+++ b/arch/mips/au1000/pb1200/irqmap.c
@@ -148,7 +148,7 @@ static void pb1200_end_irq(unsigned int irq_nr)
148 } 148 }
149} 149}
150 150
151static struct hw_interrupt_type external_irq_type = 151static struct irq_chip external_irq_type =
152{ 152{
153#ifdef CONFIG_MIPS_PB1200 153#ifdef CONFIG_MIPS_PB1200
154 "Pb1200 Ext", 154 "Pb1200 Ext",
diff --git a/arch/mips/basler/excite/excite_dbg_io.c b/arch/mips/basler/excite/excite_dbg_io.c
index 83f6bddf578b..c04505afa47f 100644
--- a/arch/mips/basler/excite/excite_dbg_io.c
+++ b/arch/mips/basler/excite/excite_dbg_io.c
@@ -17,7 +17,6 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#include <linux/config.h>
21#include <linux/linkage.h> 20#include <linux/linkage.h>
22#include <linux/init.h> 21#include <linux/init.h>
23#include <linux/kernel.h> 22#include <linux/kernel.h>
diff --git a/arch/mips/basler/excite/excite_device.c b/arch/mips/basler/excite/excite_device.c
index 34ec76716fa0..bbb4ea43da88 100644
--- a/arch/mips/basler/excite/excite_device.c
+++ b/arch/mips/basler/excite/excite_device.c
@@ -17,7 +17,6 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#include <linux/config.h>
21#include <linux/kernel.h> 20#include <linux/kernel.h>
22#include <linux/init.h> 21#include <linux/init.h>
23#include <linux/platform_device.h> 22#include <linux/platform_device.h>
diff --git a/arch/mips/basler/excite/excite_iodev.c b/arch/mips/basler/excite/excite_iodev.c
index b288151b532e..10bbb8cfb964 100644
--- a/arch/mips/basler/excite/excite_iodev.c
+++ b/arch/mips/basler/excite/excite_iodev.c
@@ -17,7 +17,6 @@
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 */ 18 */
19 19
20#include <linux/config.h>
21#include <linux/compiler.h> 20#include <linux/compiler.h>
22#include <linux/init.h> 21#include <linux/init.h>
23#include <linux/module.h> 22#include <linux/module.h>
diff --git a/arch/mips/basler/excite/excite_procfs.c b/arch/mips/basler/excite/excite_procfs.c
index c62be0341fb8..9ee67a95f6b9 100644
--- a/arch/mips/basler/excite/excite_procfs.c
+++ b/arch/mips/basler/excite/excite_procfs.c
@@ -19,7 +19,6 @@
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 21
22#include <linux/config.h>
23#include <linux/proc_fs.h> 22#include <linux/proc_fs.h>
24#include <linux/stat.h> 23#include <linux/stat.h>
25#include <asm/page.h> 24#include <asm/page.h>
diff --git a/arch/mips/basler/excite/excite_prom.c b/arch/mips/basler/excite/excite_prom.c
index 84724b270753..6ecd512b999d 100644
--- a/arch/mips/basler/excite/excite_prom.c
+++ b/arch/mips/basler/excite/excite_prom.c
@@ -18,7 +18,6 @@
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */ 19 */
20 20
21#include <linux/config.h>
22#include <linux/init.h> 21#include <linux/init.h>
23#include <linux/sched.h> 22#include <linux/sched.h>
24#include <linux/mm.h> 23#include <linux/mm.h>
diff --git a/arch/mips/basler/excite/excite_setup.c b/arch/mips/basler/excite/excite_setup.c
index 3d7670edd5cd..a1ce4580058d 100644
--- a/arch/mips/basler/excite/excite_setup.c
+++ b/arch/mips/basler/excite/excite_setup.c
@@ -19,7 +19,6 @@
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 21
22#include <linux/config.h>
23#include <linux/types.h> 22#include <linux/types.h>
24#include <linux/kernel.h> 23#include <linux/kernel.h>
25#include <linux/module.h> 24#include <linux/module.h>
@@ -79,7 +78,7 @@ static void excite_timer_init(void)
79 mips_hpt_frequency = EXCITE_CPU_EXT_CLOCK * mult / div / 2; 78 mips_hpt_frequency = EXCITE_CPU_EXT_CLOCK * mult / div / 2;
80} 79}
81 80
82static void excite_timer_setup(struct irqaction *irq) 81void __init plat_timer_setup(struct irqaction *irq)
83{ 82{
84 /* The eXcite platform uses the alternate timer interrupt */ 83 /* The eXcite platform uses the alternate timer interrupt */
85 set_c0_intcontrol(0x80); 84 set_c0_intcontrol(0x80);
@@ -263,7 +262,6 @@ void __init plat_mem_setup(void)
263 262
264 /* Set up timer initialization hooks */ 263 /* Set up timer initialization hooks */
265 board_time_init = excite_timer_init; 264 board_time_init = excite_timer_init;
266 board_timer_setup = excite_timer_setup;
267 265
268 /* Set up the peripheral address map */ 266 /* Set up the peripheral address map */
269 *(boot_ocd_base + (LKB9 / sizeof (u32))) = 0; 267 *(boot_ocd_base + (LKB9 / sizeof (u32))) = 0;
diff --git a/arch/mips/cobalt/setup.c b/arch/mips/cobalt/setup.c
index c99714587ce8..c01a0170e590 100644
--- a/arch/mips/cobalt/setup.c
+++ b/arch/mips/cobalt/setup.c
@@ -49,7 +49,7 @@ const char *get_system_type(void)
49 return "MIPS Cobalt"; 49 return "MIPS Cobalt";
50} 50}
51 51
52static void __init cobalt_timer_setup(struct irqaction *irq) 52void __init plat_timer_setup(struct irqaction *irq)
53{ 53{
54 /* Load timer value for 1KHz (TCLK is 50MHz) */ 54 /* Load timer value for 1KHz (TCLK is 50MHz) */
55 GALILEO_OUTL(50*1000*1000 / 1000, GT_TC0_OFS); 55 GALILEO_OUTL(50*1000*1000 / 1000, GT_TC0_OFS);
@@ -129,8 +129,6 @@ void __init plat_mem_setup(void)
129 _machine_halt = cobalt_machine_halt; 129 _machine_halt = cobalt_machine_halt;
130 pm_power_off = cobalt_machine_power_off; 130 pm_power_off = cobalt_machine_power_off;
131 131
132 board_timer_setup = cobalt_timer_setup;
133
134 set_io_port_base(CKSEG1ADDR(GT64111_IO_BASE)); 132 set_io_port_base(CKSEG1ADDR(GT64111_IO_BASE));
135 133
136 /* I/O port resource must include UART and LCD/buttons */ 134 /* I/O port resource must include UART and LCD/buttons */
diff --git a/arch/mips/configs/atlas_defconfig b/arch/mips/configs/atlas_defconfig
index 0cc1b3c51959..54274065e9a5 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:55 2006 4# Thu Jul 6 09:59:39 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32CONFIG_MIPS_ATLAS=y 33CONFIG_MIPS_ATLAS=y
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_ATLAS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_MIPS_BONITO64=y 74CONFIG_MIPS_BONITO64=y
@@ -125,7 +129,11 @@ CONFIG_PAGE_SIZE_4KB=y
125CONFIG_BOARD_SCACHE=y 129CONFIG_BOARD_SCACHE=y
126CONFIG_RM7000_CPU_SCACHE=y 130CONFIG_RM7000_CPU_SCACHE=y
127CONFIG_CPU_HAS_PREFETCH=y 131CONFIG_CPU_HAS_PREFETCH=y
128# CONFIG_MIPS_MT is not set 132CONFIG_MIPS_MT_DISABLED=y
133# CONFIG_MIPS_MT_SMTC is not set
134# CONFIG_MIPS_MT_SMP is not set
135# CONFIG_MIPS_VPE_LOADER is not set
136CONFIG_SYS_SUPPORTS_MULTITHREADING=y
129# CONFIG_64BIT_PHYS_ADDR is not set 137# CONFIG_64BIT_PHYS_ADDR is not set
130CONFIG_CPU_HAS_LLSC=y 138CONFIG_CPU_HAS_LLSC=y
131CONFIG_CPU_HAS_SYNC=y 139CONFIG_CPU_HAS_SYNC=y
@@ -141,6 +149,7 @@ CONFIG_FLATMEM=y
141CONFIG_FLAT_NODE_MEM_MAP=y 149CONFIG_FLAT_NODE_MEM_MAP=y
142# CONFIG_SPARSEMEM_STATIC is not set 150# CONFIG_SPARSEMEM_STATIC is not set
143CONFIG_SPLIT_PTLOCK_CPUS=4 151CONFIG_SPLIT_PTLOCK_CPUS=4
152# CONFIG_RESOURCES_64BIT is not set
144# CONFIG_HZ_48 is not set 153# CONFIG_HZ_48 is not set
145CONFIG_HZ_100=y 154CONFIG_HZ_100=y
146# CONFIG_HZ_128 is not set 155# CONFIG_HZ_128 is not set
@@ -153,6 +162,7 @@ CONFIG_HZ=100
153CONFIG_PREEMPT_NONE=y 162CONFIG_PREEMPT_NONE=y
154# CONFIG_PREEMPT_VOLUNTARY is not set 163# CONFIG_PREEMPT_VOLUNTARY is not set
155# CONFIG_PREEMPT is not set 164# CONFIG_PREEMPT is not set
165CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
156 166
157# 167#
158# Code maturity level options 168# Code maturity level options
@@ -184,10 +194,12 @@ CONFIG_PRINTK=y
184CONFIG_BUG=y 194CONFIG_BUG=y
185CONFIG_ELF_CORE=y 195CONFIG_ELF_CORE=y
186CONFIG_BASE_FULL=y 196CONFIG_BASE_FULL=y
197CONFIG_RT_MUTEXES=y
187CONFIG_FUTEX=y 198CONFIG_FUTEX=y
188CONFIG_EPOLL=y 199CONFIG_EPOLL=y
189CONFIG_SHMEM=y 200CONFIG_SHMEM=y
190CONFIG_SLAB=y 201CONFIG_SLAB=y
202CONFIG_VM_EVENT_COUNTERS=y
191# CONFIG_TINY_SHMEM is not set 203# CONFIG_TINY_SHMEM is not set
192CONFIG_BASE_SMALL=0 204CONFIG_BASE_SMALL=0
193# CONFIG_SLOB is not set 205# CONFIG_SLOB is not set
@@ -289,6 +301,8 @@ CONFIG_INET_ESP=m
289CONFIG_INET_IPCOMP=m 301CONFIG_INET_IPCOMP=m
290CONFIG_INET_XFRM_TUNNEL=m 302CONFIG_INET_XFRM_TUNNEL=m
291CONFIG_INET_TUNNEL=m 303CONFIG_INET_TUNNEL=m
304CONFIG_INET_XFRM_MODE_TRANSPORT=m
305CONFIG_INET_XFRM_MODE_TUNNEL=m
292CONFIG_INET_DIAG=y 306CONFIG_INET_DIAG=y
293CONFIG_INET_TCP_DIAG=y 307CONFIG_INET_TCP_DIAG=y
294# CONFIG_TCP_CONG_ADVANCED is not set 308# CONFIG_TCP_CONG_ADVANCED is not set
@@ -336,7 +350,10 @@ CONFIG_INET6_ESP=m
336CONFIG_INET6_IPCOMP=m 350CONFIG_INET6_IPCOMP=m
337CONFIG_INET6_XFRM_TUNNEL=m 351CONFIG_INET6_XFRM_TUNNEL=m
338CONFIG_INET6_TUNNEL=m 352CONFIG_INET6_TUNNEL=m
353CONFIG_INET6_XFRM_MODE_TRANSPORT=m
354CONFIG_INET6_XFRM_MODE_TUNNEL=m
339CONFIG_IPV6_TUNNEL=m 355CONFIG_IPV6_TUNNEL=m
356CONFIG_NETWORK_SECMARK=y
340CONFIG_NETFILTER=y 357CONFIG_NETFILTER=y
341# CONFIG_NETFILTER_DEBUG is not set 358# CONFIG_NETFILTER_DEBUG is not set
342CONFIG_BRIDGE_NETFILTER=y 359CONFIG_BRIDGE_NETFILTER=y
@@ -353,6 +370,8 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
353CONFIG_NETFILTER_XT_TARGET_MARK=m 370CONFIG_NETFILTER_XT_TARGET_MARK=m
354CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 371CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
355CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 372CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
373CONFIG_NETFILTER_XT_TARGET_SECMARK=m
374CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
356CONFIG_NETFILTER_XT_MATCH_COMMENT=m 375CONFIG_NETFILTER_XT_MATCH_COMMENT=m
357CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 376CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
358CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 377CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
@@ -368,9 +387,11 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m
368CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 387CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
369CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m 388CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
370CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 389CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
390CONFIG_NETFILTER_XT_MATCH_QUOTA=m
371CONFIG_NETFILTER_XT_MATCH_REALM=m 391CONFIG_NETFILTER_XT_MATCH_REALM=m
372CONFIG_NETFILTER_XT_MATCH_SCTP=m 392CONFIG_NETFILTER_XT_MATCH_SCTP=m
373CONFIG_NETFILTER_XT_MATCH_STATE=m 393CONFIG_NETFILTER_XT_MATCH_STATE=m
394CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
374CONFIG_NETFILTER_XT_MATCH_STRING=m 395CONFIG_NETFILTER_XT_MATCH_STRING=m
375CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 396CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
376 397
@@ -380,6 +401,7 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
380CONFIG_IP_NF_CONNTRACK=m 401CONFIG_IP_NF_CONNTRACK=m
381CONFIG_IP_NF_CT_ACCT=y 402CONFIG_IP_NF_CT_ACCT=y
382CONFIG_IP_NF_CONNTRACK_MARK=y 403CONFIG_IP_NF_CONNTRACK_MARK=y
404CONFIG_IP_NF_CONNTRACK_SECMARK=y
383CONFIG_IP_NF_CONNTRACK_EVENTS=y 405CONFIG_IP_NF_CONNTRACK_EVENTS=y
384CONFIG_IP_NF_CONNTRACK_NETLINK=m 406CONFIG_IP_NF_CONNTRACK_NETLINK=m
385CONFIG_IP_NF_CT_PROTO_SCTP=m 407CONFIG_IP_NF_CT_PROTO_SCTP=m
@@ -390,6 +412,7 @@ CONFIG_IP_NF_TFTP=m
390CONFIG_IP_NF_AMANDA=m 412CONFIG_IP_NF_AMANDA=m
391CONFIG_IP_NF_PPTP=m 413CONFIG_IP_NF_PPTP=m
392CONFIG_IP_NF_H323=m 414CONFIG_IP_NF_H323=m
415CONFIG_IP_NF_SIP=m
393CONFIG_IP_NF_QUEUE=m 416CONFIG_IP_NF_QUEUE=m
394CONFIG_IP_NF_IPTABLES=m 417CONFIG_IP_NF_IPTABLES=m
395CONFIG_IP_NF_MATCH_IPRANGE=m 418CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -420,6 +443,7 @@ CONFIG_IP_NF_NAT_TFTP=m
420CONFIG_IP_NF_NAT_AMANDA=m 443CONFIG_IP_NF_NAT_AMANDA=m
421CONFIG_IP_NF_NAT_PPTP=m 444CONFIG_IP_NF_NAT_PPTP=m
422CONFIG_IP_NF_NAT_H323=m 445CONFIG_IP_NF_NAT_H323=m
446CONFIG_IP_NF_NAT_SIP=m
423CONFIG_IP_NF_MANGLE=m 447CONFIG_IP_NF_MANGLE=m
424CONFIG_IP_NF_TARGET_TOS=m 448CONFIG_IP_NF_TARGET_TOS=m
425CONFIG_IP_NF_TARGET_ECN=m 449CONFIG_IP_NF_TARGET_ECN=m
@@ -581,6 +605,7 @@ CONFIG_WIRELESS_EXT=y
581CONFIG_STANDALONE=y 605CONFIG_STANDALONE=y
582CONFIG_PREVENT_FIRMWARE_BUILD=y 606CONFIG_PREVENT_FIRMWARE_BUILD=y
583CONFIG_FW_LOADER=y 607CONFIG_FW_LOADER=y
608# CONFIG_SYS_HYPERVISOR is not set
584 609
585# 610#
586# Connector - unified userspace <-> kernelspace linker 611# Connector - unified userspace <-> kernelspace linker
@@ -699,6 +724,7 @@ CONFIG_ISCSI_TCP=m
699# CONFIG_MEGARAID_LEGACY is not set 724# CONFIG_MEGARAID_LEGACY is not set
700# CONFIG_MEGARAID_SAS is not set 725# CONFIG_MEGARAID_SAS is not set
701# CONFIG_SCSI_SATA is not set 726# CONFIG_SCSI_SATA is not set
727# CONFIG_SCSI_HPTIOP is not set
702# CONFIG_SCSI_DMX3191D is not set 728# CONFIG_SCSI_DMX3191D is not set
703# CONFIG_SCSI_FUTURE_DOMAIN is not set 729# CONFIG_SCSI_FUTURE_DOMAIN is not set
704# CONFIG_SCSI_IPS is not set 730# CONFIG_SCSI_IPS is not set
@@ -727,9 +753,8 @@ CONFIG_MD_LINEAR=m
727CONFIG_MD_RAID0=m 753CONFIG_MD_RAID0=m
728CONFIG_MD_RAID1=m 754CONFIG_MD_RAID1=m
729CONFIG_MD_RAID10=m 755CONFIG_MD_RAID10=m
730CONFIG_MD_RAID5=m 756CONFIG_MD_RAID456=m
731CONFIG_MD_RAID5_RESHAPE=y 757CONFIG_MD_RAID5_RESHAPE=y
732CONFIG_MD_RAID6=m
733CONFIG_MD_MULTIPATH=m 758CONFIG_MD_MULTIPATH=m
734CONFIG_MD_FAULTY=m 759CONFIG_MD_FAULTY=m
735CONFIG_BLK_DEV_DM=m 760CONFIG_BLK_DEV_DM=m
@@ -785,6 +810,8 @@ CONFIG_DAVICOM_PHY=m
785CONFIG_QSEMI_PHY=m 810CONFIG_QSEMI_PHY=m
786CONFIG_LXT_PHY=m 811CONFIG_LXT_PHY=m
787CONFIG_CICADA_PHY=m 812CONFIG_CICADA_PHY=m
813CONFIG_VITESSE_PHY=m
814CONFIG_SMSC_PHY=m
788 815
789# 816#
790# Ethernet (10 or 100Mbit) 817# Ethernet (10 or 100Mbit)
@@ -847,6 +874,7 @@ CONFIG_LAN_SAA9730=y
847# CONFIG_CHELSIO_T1 is not set 874# CONFIG_CHELSIO_T1 is not set
848# CONFIG_IXGB is not set 875# CONFIG_IXGB is not set
849# CONFIG_S2IO is not set 876# CONFIG_S2IO is not set
877# CONFIG_MYRI10GE is not set
850 878
851# 879#
852# Token Ring devices 880# Token Ring devices
@@ -928,6 +956,7 @@ CONFIG_SERIO_RAW=y
928CONFIG_VT=y 956CONFIG_VT=y
929CONFIG_VT_CONSOLE=y 957CONFIG_VT_CONSOLE=y
930CONFIG_HW_CONSOLE=y 958CONFIG_HW_CONSOLE=y
959CONFIG_VT_HW_CONSOLE_BINDING=y
931# CONFIG_SERIAL_NONSTANDARD is not set 960# CONFIG_SERIAL_NONSTANDARD is not set
932 961
933# 962#
@@ -959,6 +988,7 @@ CONFIG_LEGACY_PTY_COUNT=256
959# Watchdog Cards 988# Watchdog Cards
960# 989#
961# CONFIG_WATCHDOG is not set 990# CONFIG_WATCHDOG is not set
991# CONFIG_HW_RANDOM is not set
962# CONFIG_RTC is not set 992# CONFIG_RTC is not set
963# CONFIG_GEN_RTC is not set 993# CONFIG_GEN_RTC is not set
964# CONFIG_DTLK is not set 994# CONFIG_DTLK is not set
@@ -1007,6 +1037,7 @@ CONFIG_LEGACY_PTY_COUNT=256
1007# Multimedia devices 1037# Multimedia devices
1008# 1038#
1009# CONFIG_VIDEO_DEV is not set 1039# CONFIG_VIDEO_DEV is not set
1040CONFIG_VIDEO_V4L2=y
1010 1041
1011# 1042#
1012# Digital Video Broadcasting Devices 1043# Digital Video Broadcasting Devices
@@ -1016,6 +1047,7 @@ CONFIG_LEGACY_PTY_COUNT=256
1016# 1047#
1017# Graphics support 1048# Graphics support
1018# 1049#
1050# CONFIG_FIRMWARE_EDID is not set
1019# CONFIG_FB is not set 1051# CONFIG_FB is not set
1020 1052
1021# 1053#
@@ -1079,6 +1111,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1079# CONFIG_RTC_CLASS is not set 1111# CONFIG_RTC_CLASS is not set
1080 1112
1081# 1113#
1114# DMA Engine support
1115#
1116# CONFIG_DMA_ENGINE is not set
1117
1118#
1119# DMA Clients
1120#
1121
1122#
1123# DMA Devices
1124#
1125
1126#
1082# File systems 1127# File systems
1083# 1128#
1084CONFIG_EXT2_FS=y 1129CONFIG_EXT2_FS=y
@@ -1104,7 +1149,6 @@ CONFIG_JFS_SECURITY=y
1104# CONFIG_JFS_STATISTICS is not set 1149# CONFIG_JFS_STATISTICS is not set
1105CONFIG_FS_POSIX_ACL=y 1150CONFIG_FS_POSIX_ACL=y
1106CONFIG_XFS_FS=m 1151CONFIG_XFS_FS=m
1107CONFIG_XFS_EXPORT=y
1108CONFIG_XFS_QUOTA=y 1152CONFIG_XFS_QUOTA=y
1109CONFIG_XFS_SECURITY=y 1153CONFIG_XFS_SECURITY=y
1110CONFIG_XFS_POSIX_ACL=y 1154CONFIG_XFS_POSIX_ACL=y
@@ -1113,6 +1157,7 @@ CONFIG_XFS_POSIX_ACL=y
1113CONFIG_MINIX_FS=m 1157CONFIG_MINIX_FS=m
1114CONFIG_ROMFS_FS=m 1158CONFIG_ROMFS_FS=m
1115CONFIG_INOTIFY=y 1159CONFIG_INOTIFY=y
1160CONFIG_INOTIFY_USER=y
1116CONFIG_QUOTA=y 1161CONFIG_QUOTA=y
1117# CONFIG_QFMT_V1 is not set 1162# CONFIG_QFMT_V1 is not set
1118CONFIG_QFMT_V2=y 1163CONFIG_QFMT_V2=y
@@ -1170,6 +1215,8 @@ CONFIG_VXFS_FS=m
1170# CONFIG_QNX4FS_FS is not set 1215# CONFIG_QNX4FS_FS is not set
1171CONFIG_SYSV_FS=m 1216CONFIG_SYSV_FS=m
1172CONFIG_UFS_FS=m 1217CONFIG_UFS_FS=m
1218# CONFIG_UFS_FS_WRITE is not set
1219# CONFIG_UFS_DEBUG is not set
1173 1220
1174# 1221#
1175# Network File Systems 1222# Network File Systems
@@ -1194,6 +1241,7 @@ CONFIG_SUNRPC=y
1194# CONFIG_RPCSEC_GSS_SPKM3 is not set 1241# CONFIG_RPCSEC_GSS_SPKM3 is not set
1195# CONFIG_SMB_FS is not set 1242# CONFIG_SMB_FS is not set
1196# CONFIG_CIFS is not set 1243# CONFIG_CIFS is not set
1244# CONFIG_CIFS_DEBUG2 is not set
1197# CONFIG_NCP_FS is not set 1245# CONFIG_NCP_FS is not set
1198# CONFIG_CODA_FS is not set 1246# CONFIG_CODA_FS is not set
1199# CONFIG_AFS_FS is not set 1247# CONFIG_AFS_FS is not set
@@ -1259,6 +1307,7 @@ CONFIG_NLS_UTF8=m
1259# 1307#
1260# CONFIG_PRINTK_TIME is not set 1308# CONFIG_PRINTK_TIME is not set
1261# CONFIG_MAGIC_SYSRQ is not set 1309# CONFIG_MAGIC_SYSRQ is not set
1310# CONFIG_UNUSED_SYMBOLS is not set
1262# CONFIG_DEBUG_KERNEL is not set 1311# CONFIG_DEBUG_KERNEL is not set
1263CONFIG_LOG_BUF_SHIFT=14 1312CONFIG_LOG_BUF_SHIFT=14
1264# CONFIG_DEBUG_FS is not set 1313# CONFIG_DEBUG_FS is not set
@@ -1317,3 +1366,10 @@ CONFIG_TEXTSEARCH=y
1317CONFIG_TEXTSEARCH_KMP=m 1366CONFIG_TEXTSEARCH_KMP=m
1318CONFIG_TEXTSEARCH_BM=m 1367CONFIG_TEXTSEARCH_BM=m
1319CONFIG_TEXTSEARCH_FSM=m 1368CONFIG_TEXTSEARCH_FSM=m
1369CONFIG_PLIST=y
1370CONFIG_RIO=n
1371CONFIG_I2C_OCORES=n
1372CONFIG_DEBUG_RT_MUTEXES=n
1373CONFIG_RT_MUTEX_TESTER=n
1374CONFIG_DEBUG_RWSEMS=n
1375CONFIG_DEBUG_LOCKING_API_SELFTESTS=n
diff --git a/arch/mips/configs/bigsur_defconfig b/arch/mips/configs/bigsur_defconfig
index dabf90a94b21..887fd959482a 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:55 2006 4# Thu Jul 6 10:02:58 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -81,6 +84,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
81CONFIG_GENERIC_FIND_NEXT_BIT=y 84CONFIG_GENERIC_FIND_NEXT_BIT=y
82CONFIG_GENERIC_HWEIGHT=y 85CONFIG_GENERIC_HWEIGHT=y
83CONFIG_GENERIC_CALIBRATE_DELAY=y 86CONFIG_GENERIC_CALIBRATE_DELAY=y
87CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
84CONFIG_DMA_COHERENT=y 88CONFIG_DMA_COHERENT=y
85CONFIG_CPU_BIG_ENDIAN=y 89CONFIG_CPU_BIG_ENDIAN=y
86# CONFIG_CPU_LITTLE_ENDIAN is not set 90# CONFIG_CPU_LITTLE_ENDIAN is not set
@@ -128,11 +132,15 @@ CONFIG_PAGE_SIZE_4KB=y
128# CONFIG_PAGE_SIZE_16KB is not set 132# CONFIG_PAGE_SIZE_16KB is not set
129# CONFIG_PAGE_SIZE_64KB is not set 133# CONFIG_PAGE_SIZE_64KB is not set
130# CONFIG_SIBYTE_DMA_PAGEOPS is not set 134# CONFIG_SIBYTE_DMA_PAGEOPS is not set
131# CONFIG_MIPS_MT is not set 135CONFIG_MIPS_MT_DISABLED=y
136# CONFIG_MIPS_MT_SMTC is not set
137# CONFIG_MIPS_MT_SMP is not set
138# CONFIG_MIPS_VPE_LOADER is not set
132CONFIG_CPU_HAS_LLSC=y 139CONFIG_CPU_HAS_LLSC=y
133CONFIG_CPU_HAS_SYNC=y 140CONFIG_CPU_HAS_SYNC=y
134CONFIG_GENERIC_HARDIRQS=y 141CONFIG_GENERIC_HARDIRQS=y
135CONFIG_GENERIC_IRQ_PROBE=y 142CONFIG_GENERIC_IRQ_PROBE=y
143CONFIG_IRQ_PER_CPU=y
136CONFIG_CPU_SUPPORTS_HIGHMEM=y 144CONFIG_CPU_SUPPORTS_HIGHMEM=y
137CONFIG_ARCH_FLATMEM_ENABLE=y 145CONFIG_ARCH_FLATMEM_ENABLE=y
138CONFIG_SELECT_MEMORY_MODEL=y 146CONFIG_SELECT_MEMORY_MODEL=y
@@ -143,6 +151,10 @@ CONFIG_FLATMEM=y
143CONFIG_FLAT_NODE_MEM_MAP=y 151CONFIG_FLAT_NODE_MEM_MAP=y
144# CONFIG_SPARSEMEM_STATIC is not set 152# CONFIG_SPARSEMEM_STATIC is not set
145CONFIG_SPLIT_PTLOCK_CPUS=4 153CONFIG_SPLIT_PTLOCK_CPUS=4
154CONFIG_RESOURCES_64BIT=y
155CONFIG_SMP=y
156CONFIG_SYS_SUPPORTS_SMP=y
157CONFIG_NR_CPUS=4
146# CONFIG_HZ_48 is not set 158# CONFIG_HZ_48 is not set
147# CONFIG_HZ_100 is not set 159# CONFIG_HZ_100 is not set
148# CONFIG_HZ_128 is not set 160# CONFIG_HZ_128 is not set
@@ -152,12 +164,11 @@ CONFIG_HZ_1000=y
152# CONFIG_HZ_1024 is not set 164# CONFIG_HZ_1024 is not set
153CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 165CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
154CONFIG_HZ=1000 166CONFIG_HZ=1000
155CONFIG_SMP=y
156CONFIG_NR_CPUS=4
157CONFIG_PREEMPT_NONE=y 167CONFIG_PREEMPT_NONE=y
158# CONFIG_PREEMPT_VOLUNTARY is not set 168# CONFIG_PREEMPT_VOLUNTARY is not set
159# CONFIG_PREEMPT is not set 169# CONFIG_PREEMPT is not set
160# CONFIG_PREEMPT_BKL is not set 170# CONFIG_PREEMPT_BKL is not set
171CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
161 172
162# 173#
163# Code maturity level options 174# Code maturity level options
@@ -192,10 +203,12 @@ CONFIG_PRINTK=y
192CONFIG_BUG=y 203CONFIG_BUG=y
193CONFIG_ELF_CORE=y 204CONFIG_ELF_CORE=y
194CONFIG_BASE_FULL=y 205CONFIG_BASE_FULL=y
206CONFIG_RT_MUTEXES=y
195CONFIG_FUTEX=y 207CONFIG_FUTEX=y
196CONFIG_EPOLL=y 208CONFIG_EPOLL=y
197CONFIG_SHMEM=y 209CONFIG_SHMEM=y
198CONFIG_SLAB=y 210CONFIG_SLAB=y
211CONFIG_VM_EVENT_COUNTERS=y
199# CONFIG_TINY_SHMEM is not set 212# CONFIG_TINY_SHMEM is not set
200CONFIG_BASE_SMALL=0 213CONFIG_BASE_SMALL=0
201# CONFIG_SLOB is not set 214# CONFIG_SLOB is not set
@@ -253,7 +266,7 @@ CONFIG_MMU=y
253# 266#
254CONFIG_BINFMT_ELF=y 267CONFIG_BINFMT_ELF=y
255# CONFIG_BINFMT_MISC is not set 268# CONFIG_BINFMT_MISC is not set
256CONFIG_BUILD_ELF64=y 269# CONFIG_BUILD_ELF64 is not set
257CONFIG_MIPS32_COMPAT=y 270CONFIG_MIPS32_COMPAT=y
258CONFIG_COMPAT=y 271CONFIG_COMPAT=y
259CONFIG_MIPS32_O32=y 272CONFIG_MIPS32_O32=y
@@ -292,6 +305,8 @@ CONFIG_IP_PNP_BOOTP=y
292# CONFIG_INET_IPCOMP is not set 305# CONFIG_INET_IPCOMP is not set
293# CONFIG_INET_XFRM_TUNNEL is not set 306# CONFIG_INET_XFRM_TUNNEL is not set
294# CONFIG_INET_TUNNEL is not set 307# CONFIG_INET_TUNNEL is not set
308CONFIG_INET_XFRM_MODE_TRANSPORT=m
309CONFIG_INET_XFRM_MODE_TUNNEL=m
295CONFIG_INET_DIAG=y 310CONFIG_INET_DIAG=y
296CONFIG_INET_TCP_DIAG=y 311CONFIG_INET_TCP_DIAG=y
297# CONFIG_TCP_CONG_ADVANCED is not set 312# CONFIG_TCP_CONG_ADVANCED is not set
@@ -299,6 +314,7 @@ CONFIG_TCP_CONG_BIC=y
299# CONFIG_IPV6 is not set 314# CONFIG_IPV6 is not set
300# CONFIG_INET6_XFRM_TUNNEL is not set 315# CONFIG_INET6_XFRM_TUNNEL is not set
301# CONFIG_INET6_TUNNEL is not set 316# CONFIG_INET6_TUNNEL is not set
317CONFIG_NETWORK_SECMARK=y
302# CONFIG_NETFILTER is not set 318# CONFIG_NETFILTER is not set
303 319
304# 320#
@@ -353,6 +369,7 @@ CONFIG_STANDALONE=y
353CONFIG_PREVENT_FIRMWARE_BUILD=y 369CONFIG_PREVENT_FIRMWARE_BUILD=y
354# CONFIG_FW_LOADER is not set 370# CONFIG_FW_LOADER is not set
355# CONFIG_DEBUG_DRIVER is not set 371# CONFIG_DEBUG_DRIVER is not set
372# CONFIG_SYS_HYPERVISOR is not set
356 373
357# 374#
358# Connector - unified userspace <-> kernelspace linker 375# Connector - unified userspace <-> kernelspace linker
@@ -505,6 +522,7 @@ CONFIG_NET_SB1250_MAC=y
505# CONFIG_CHELSIO_T1 is not set 522# CONFIG_CHELSIO_T1 is not set
506# CONFIG_IXGB is not set 523# CONFIG_IXGB is not set
507# CONFIG_S2IO is not set 524# CONFIG_S2IO is not set
525# CONFIG_MYRI10GE is not set
508 526
509# 527#
510# Token Ring devices 528# Token Ring devices
@@ -572,6 +590,7 @@ CONFIG_SERIAL_NONSTANDARD=y
572# CONFIG_N_HDLC is not set 590# CONFIG_N_HDLC is not set
573# CONFIG_SPECIALIX is not set 591# CONFIG_SPECIALIX is not set
574# CONFIG_SX is not set 592# CONFIG_SX is not set
593# CONFIG_RIO is not set
575# CONFIG_STALDRV is not set 594# CONFIG_STALDRV is not set
576CONFIG_SIBYTE_SB1250_DUART=y 595CONFIG_SIBYTE_SB1250_DUART=y
577CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y 596CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
@@ -598,6 +617,7 @@ CONFIG_LEGACY_PTY_COUNT=256
598# Watchdog Cards 617# Watchdog Cards
599# 618#
600# CONFIG_WATCHDOG is not set 619# CONFIG_WATCHDOG is not set
620# CONFIG_HW_RANDOM is not set
601# CONFIG_RTC is not set 621# CONFIG_RTC is not set
602CONFIG_GEN_RTC=y 622CONFIG_GEN_RTC=y
603# CONFIG_GEN_RTC_X is not set 623# CONFIG_GEN_RTC_X is not set
@@ -643,6 +663,7 @@ CONFIG_I2C_ALGO_SIBYTE=y
643# CONFIG_I2C_I810 is not set 663# CONFIG_I2C_I810 is not set
644# CONFIG_I2C_PIIX4 is not set 664# CONFIG_I2C_PIIX4 is not set
645# CONFIG_I2C_NFORCE2 is not set 665# CONFIG_I2C_NFORCE2 is not set
666# CONFIG_I2C_OCORES is not set
646# CONFIG_I2C_PARPORT_LIGHT is not set 667# CONFIG_I2C_PARPORT_LIGHT is not set
647# CONFIG_I2C_PROSAVAGE is not set 668# CONFIG_I2C_PROSAVAGE is not set
648# CONFIG_I2C_SAVAGE4 is not set 669# CONFIG_I2C_SAVAGE4 is not set
@@ -680,7 +701,6 @@ CONFIG_I2C_DEBUG_CHIP=y
680# 701#
681# Dallas's 1-wire bus 702# Dallas's 1-wire bus
682# 703#
683# CONFIG_W1 is not set
684 704
685# 705#
686# Hardware Monitoring support 706# Hardware Monitoring support
@@ -696,6 +716,7 @@ CONFIG_I2C_DEBUG_CHIP=y
696# Multimedia devices 716# Multimedia devices
697# 717#
698# CONFIG_VIDEO_DEV is not set 718# CONFIG_VIDEO_DEV is not set
719CONFIG_VIDEO_V4L2=y
699 720
700# 721#
701# Digital Video Broadcasting Devices 722# Digital Video Broadcasting Devices
@@ -705,6 +726,7 @@ CONFIG_I2C_DEBUG_CHIP=y
705# 726#
706# Graphics support 727# Graphics support
707# 728#
729# CONFIG_FIRMWARE_EDID is not set
708# CONFIG_FB is not set 730# CONFIG_FB is not set
709 731
710# 732#
@@ -762,6 +784,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
762# CONFIG_RTC_CLASS is not set 784# CONFIG_RTC_CLASS is not set
763 785
764# 786#
787# DMA Engine support
788#
789# CONFIG_DMA_ENGINE is not set
790
791#
792# DMA Clients
793#
794
795#
796# DMA Devices
797#
798
799#
765# File systems 800# File systems
766# 801#
767CONFIG_EXT2_FS=y 802CONFIG_EXT2_FS=y
@@ -779,6 +814,7 @@ CONFIG_FS_POSIX_ACL=y
779# CONFIG_MINIX_FS is not set 814# CONFIG_MINIX_FS is not set
780# CONFIG_ROMFS_FS is not set 815# CONFIG_ROMFS_FS is not set
781CONFIG_INOTIFY=y 816CONFIG_INOTIFY=y
817CONFIG_INOTIFY_USER=y
782# CONFIG_QUOTA is not set 818# CONFIG_QUOTA is not set
783CONFIG_DNOTIFY=y 819CONFIG_DNOTIFY=y
784# CONFIG_AUTOFS_FS is not set 820# CONFIG_AUTOFS_FS is not set
@@ -844,6 +880,7 @@ CONFIG_SUNRPC=y
844# CONFIG_RPCSEC_GSS_SPKM3 is not set 880# CONFIG_RPCSEC_GSS_SPKM3 is not set
845# CONFIG_SMB_FS is not set 881# CONFIG_SMB_FS is not set
846# CONFIG_CIFS is not set 882# CONFIG_CIFS is not set
883# CONFIG_CIFS_DEBUG2 is not set
847# CONFIG_NCP_FS is not set 884# CONFIG_NCP_FS is not set
848# CONFIG_CODA_FS is not set 885# CONFIG_CODA_FS is not set
849# CONFIG_AFS_FS is not set 886# CONFIG_AFS_FS is not set
@@ -870,14 +907,19 @@ CONFIG_MSDOS_PARTITION=y
870# 907#
871CONFIG_PRINTK_TIME=y 908CONFIG_PRINTK_TIME=y
872CONFIG_MAGIC_SYSRQ=y 909CONFIG_MAGIC_SYSRQ=y
910# CONFIG_UNUSED_SYMBOLS is not set
873CONFIG_DEBUG_KERNEL=y 911CONFIG_DEBUG_KERNEL=y
874CONFIG_LOG_BUF_SHIFT=16 912CONFIG_LOG_BUF_SHIFT=16
875CONFIG_DETECT_SOFTLOCKUP=y 913CONFIG_DETECT_SOFTLOCKUP=y
876# CONFIG_SCHEDSTATS is not set 914# CONFIG_SCHEDSTATS is not set
877# CONFIG_DEBUG_SLAB is not set 915# CONFIG_DEBUG_SLAB is not set
878CONFIG_DEBUG_MUTEXES=y 916# CONFIG_DEBUG_RT_MUTEXES is not set
917# CONFIG_RT_MUTEX_TESTER is not set
879# CONFIG_DEBUG_SPINLOCK is not set 918# CONFIG_DEBUG_SPINLOCK is not set
919CONFIG_DEBUG_MUTEXES=y
920# CONFIG_DEBUG_RWSEMS is not set
880# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 921# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
922# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
881# CONFIG_DEBUG_KOBJECT is not set 923# CONFIG_DEBUG_KOBJECT is not set
882# CONFIG_DEBUG_INFO is not set 924# CONFIG_DEBUG_INFO is not set
883# CONFIG_DEBUG_FS is not set 925# CONFIG_DEBUG_FS is not set
@@ -940,3 +982,4 @@ CONFIG_CRC32=y
940# CONFIG_LIBCRC32C is not set 982# CONFIG_LIBCRC32C is not set
941CONFIG_ZLIB_INFLATE=y 983CONFIG_ZLIB_INFLATE=y
942CONFIG_ZLIB_DEFLATE=y 984CONFIG_ZLIB_DEFLATE=y
985CONFIG_PLIST=y
diff --git a/arch/mips/configs/capcella_defconfig b/arch/mips/configs/capcella_defconfig
index aeb7be804799..a01344f3a4c2 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:08:06 2006 4# Thu Jul 6 10:03:24 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -73,6 +76,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y 76CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y 77CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y 78CONFIG_GENERIC_CALIBRATE_DELAY=y
79CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
76CONFIG_DMA_NONCOHERENT=y 80CONFIG_DMA_NONCOHERENT=y
77CONFIG_DMA_NEED_PCI_MAP_STATE=y 81CONFIG_DMA_NEED_PCI_MAP_STATE=y
78# CONFIG_CPU_BIG_ENDIAN is not set 82# CONFIG_CPU_BIG_ENDIAN is not set
@@ -117,7 +121,10 @@ CONFIG_PAGE_SIZE_4KB=y
117# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
118# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
119# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
120# CONFIG_MIPS_MT is not set 124CONFIG_MIPS_MT_DISABLED=y
125# CONFIG_MIPS_MT_SMTC is not set
126# CONFIG_MIPS_MT_SMP is not set
127# CONFIG_MIPS_VPE_LOADER is not set
121CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y 130CONFIG_GENERIC_IRQ_PROBE=y
@@ -130,6 +137,7 @@ CONFIG_FLATMEM=y
130CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
131# CONFIG_SPARSEMEM_STATIC is not set 138# CONFIG_SPARSEMEM_STATIC is not set
132CONFIG_SPLIT_PTLOCK_CPUS=4 139CONFIG_SPLIT_PTLOCK_CPUS=4
140# CONFIG_RESOURCES_64BIT is not set
133# CONFIG_HZ_48 is not set 141# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 142# CONFIG_HZ_100 is not set
135# CONFIG_HZ_128 is not set 143# CONFIG_HZ_128 is not set
@@ -142,6 +150,7 @@ CONFIG_HZ=1000
142CONFIG_PREEMPT_NONE=y 150CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 151# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 152# CONFIG_PREEMPT is not set
153CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
145 154
146# 155#
147# Code maturity level options 156# Code maturity level options
@@ -173,10 +182,12 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 182CONFIG_BUG=y
174CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 186CONFIG_FUTEX=y
177CONFIG_EPOLL=y 187CONFIG_EPOLL=y
178CONFIG_SHMEM=y 188CONFIG_SHMEM=y
179CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
@@ -268,6 +279,8 @@ CONFIG_IP_PNP_BOOTP=y
268# CONFIG_INET_IPCOMP is not set 279# CONFIG_INET_IPCOMP is not set
269# CONFIG_INET_XFRM_TUNNEL is not set 280# CONFIG_INET_XFRM_TUNNEL is not set
270# CONFIG_INET_TUNNEL is not set 281# CONFIG_INET_TUNNEL is not set
282CONFIG_INET_XFRM_MODE_TRANSPORT=m
283CONFIG_INET_XFRM_MODE_TUNNEL=m
271CONFIG_INET_DIAG=y 284CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 285CONFIG_INET_TCP_DIAG=y
273# CONFIG_TCP_CONG_ADVANCED is not set 286# CONFIG_TCP_CONG_ADVANCED is not set
@@ -275,6 +288,7 @@ CONFIG_TCP_CONG_BIC=y
275# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
276# CONFIG_INET6_XFRM_TUNNEL is not set 289# CONFIG_INET6_XFRM_TUNNEL is not set
277# CONFIG_INET6_TUNNEL is not set 290# CONFIG_INET6_TUNNEL is not set
291CONFIG_NETWORK_SECMARK=y
278# CONFIG_NETFILTER is not set 292# CONFIG_NETFILTER is not set
279 293
280# 294#
@@ -328,6 +342,7 @@ CONFIG_TCP_CONG_BIC=y
328CONFIG_STANDALONE=y 342CONFIG_STANDALONE=y
329CONFIG_PREVENT_FIRMWARE_BUILD=y 343CONFIG_PREVENT_FIRMWARE_BUILD=y
330CONFIG_FW_LOADER=m 344CONFIG_FW_LOADER=m
345# CONFIG_SYS_HYPERVISOR is not set
331 346
332# 347#
333# Connector - unified userspace <-> kernelspace linker 348# Connector - unified userspace <-> kernelspace linker
@@ -446,6 +461,8 @@ CONFIG_DAVICOM_PHY=m
446CONFIG_QSEMI_PHY=m 461CONFIG_QSEMI_PHY=m
447CONFIG_LXT_PHY=m 462CONFIG_LXT_PHY=m
448CONFIG_CICADA_PHY=m 463CONFIG_CICADA_PHY=m
464CONFIG_VITESSE_PHY=m
465CONFIG_SMSC_PHY=m
449 466
450# 467#
451# Ethernet (10 or 100Mbit) 468# Ethernet (10 or 100Mbit)
@@ -512,6 +529,7 @@ CONFIG_8139TOO_PIO=y
512# CONFIG_CHELSIO_T1 is not set 529# CONFIG_CHELSIO_T1 is not set
513# CONFIG_IXGB is not set 530# CONFIG_IXGB is not set
514# CONFIG_S2IO is not set 531# CONFIG_S2IO is not set
532# CONFIG_MYRI10GE is not set
515 533
516# 534#
517# Token Ring devices 535# Token Ring devices
@@ -581,6 +599,7 @@ CONFIG_INPUT=y
581CONFIG_VT=y 599CONFIG_VT=y
582CONFIG_VT_CONSOLE=y 600CONFIG_VT_CONSOLE=y
583CONFIG_HW_CONSOLE=y 601CONFIG_HW_CONSOLE=y
602CONFIG_VT_HW_CONSOLE_BINDING=y
584# CONFIG_SERIAL_NONSTANDARD is not set 603# CONFIG_SERIAL_NONSTANDARD is not set
585 604
586# 605#
@@ -609,6 +628,7 @@ CONFIG_LEGACY_PTY_COUNT=256
609# Watchdog Cards 628# Watchdog Cards
610# 629#
611# CONFIG_WATCHDOG is not set 630# CONFIG_WATCHDOG is not set
631# CONFIG_HW_RANDOM is not set
612# CONFIG_RTC is not set 632# CONFIG_RTC is not set
613# CONFIG_GEN_RTC is not set 633# CONFIG_GEN_RTC is not set
614# CONFIG_DTLK is not set 634# CONFIG_DTLK is not set
@@ -658,6 +678,7 @@ CONFIG_GPIO_VR41XX=y
658# Multimedia devices 678# Multimedia devices
659# 679#
660# CONFIG_VIDEO_DEV is not set 680# CONFIG_VIDEO_DEV is not set
681CONFIG_VIDEO_V4L2=y
661 682
662# 683#
663# Digital Video Broadcasting Devices 684# Digital Video Broadcasting Devices
@@ -667,6 +688,7 @@ CONFIG_GPIO_VR41XX=y
667# 688#
668# Graphics support 689# Graphics support
669# 690#
691# CONFIG_FIRMWARE_EDID is not set
670# CONFIG_FB is not set 692# CONFIG_FB is not set
671 693
672# 694#
@@ -738,13 +760,30 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
738CONFIG_RTC_INTF_SYSFS=y 760CONFIG_RTC_INTF_SYSFS=y
739CONFIG_RTC_INTF_PROC=y 761CONFIG_RTC_INTF_PROC=y
740CONFIG_RTC_INTF_DEV=y 762CONFIG_RTC_INTF_DEV=y
763# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
741 764
742# 765#
743# RTC drivers 766# RTC drivers
744# 767#
768# CONFIG_RTC_DRV_DS1553 is not set
769# CONFIG_RTC_DRV_DS1742 is not set
745# CONFIG_RTC_DRV_M48T86 is not set 770# CONFIG_RTC_DRV_M48T86 is not set
746CONFIG_RTC_DRV_VR41XX=y 771CONFIG_RTC_DRV_VR41XX=y
747# CONFIG_RTC_DRV_TEST is not set 772# CONFIG_RTC_DRV_TEST is not set
773# CONFIG_RTC_DRV_V3020 is not set
774
775#
776# DMA Engine support
777#
778# CONFIG_DMA_ENGINE is not set
779
780#
781# DMA Clients
782#
783
784#
785# DMA Devices
786#
748 787
749# 788#
750# File systems 789# File systems
@@ -761,6 +800,7 @@ CONFIG_EXT2_FS=y
761# CONFIG_MINIX_FS is not set 800# CONFIG_MINIX_FS is not set
762# CONFIG_ROMFS_FS is not set 801# CONFIG_ROMFS_FS is not set
763CONFIG_INOTIFY=y 802CONFIG_INOTIFY=y
803CONFIG_INOTIFY_USER=y
764# CONFIG_QUOTA is not set 804# CONFIG_QUOTA is not set
765CONFIG_DNOTIFY=y 805CONFIG_DNOTIFY=y
766# CONFIG_AUTOFS_FS is not set 806# CONFIG_AUTOFS_FS is not set
@@ -827,6 +867,7 @@ CONFIG_SUNRPC=y
827# CONFIG_RPCSEC_GSS_SPKM3 is not set 867# CONFIG_RPCSEC_GSS_SPKM3 is not set
828# CONFIG_SMB_FS is not set 868# CONFIG_SMB_FS is not set
829# CONFIG_CIFS is not set 869# CONFIG_CIFS is not set
870# CONFIG_CIFS_DEBUG2 is not set
830# CONFIG_NCP_FS is not set 871# CONFIG_NCP_FS is not set
831# CONFIG_CODA_FS is not set 872# CONFIG_CODA_FS is not set
832# CONFIG_AFS_FS is not set 873# CONFIG_AFS_FS is not set
@@ -853,6 +894,7 @@ CONFIG_MSDOS_PARTITION=y
853# 894#
854# CONFIG_PRINTK_TIME is not set 895# CONFIG_PRINTK_TIME is not set
855# CONFIG_MAGIC_SYSRQ is not set 896# CONFIG_MAGIC_SYSRQ is not set
897# CONFIG_UNUSED_SYMBOLS is not set
856# CONFIG_DEBUG_KERNEL is not set 898# CONFIG_DEBUG_KERNEL is not set
857CONFIG_LOG_BUF_SHIFT=14 899CONFIG_LOG_BUF_SHIFT=14
858# CONFIG_DEBUG_FS is not set 900# CONFIG_DEBUG_FS is not set
@@ -881,3 +923,4 @@ CONFIG_CMDLINE="mem=32M console=ttyVR0,38400"
881# CONFIG_CRC16 is not set 923# CONFIG_CRC16 is not set
882CONFIG_CRC32=y 924CONFIG_CRC32=y
883# CONFIG_LIBCRC32C is not set 925# CONFIG_LIBCRC32C is not set
926CONFIG_PLIST=y
diff --git a/arch/mips/configs/cobalt_defconfig b/arch/mips/configs/cobalt_defconfig
index d680d3e17112..c95682445a28 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:57 2006 4# Thu Jul 6 10:03:25 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24CONFIG_MIPS_COBALT=y 25CONFIG_MIPS_COBALT=y
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_COBALT=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_COBALT=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71CONFIG_I8259=y 75CONFIG_I8259=y
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_8KB is not set 117# CONFIG_PAGE_SIZE_8KB is not set
114# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
@@ -127,6 +134,7 @@ CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 134CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 135# CONFIG_SPARSEMEM_STATIC is not set
129CONFIG_SPLIT_PTLOCK_CPUS=4 136CONFIG_SPLIT_PTLOCK_CPUS=4
137# CONFIG_RESOURCES_64BIT is not set
130# CONFIG_HZ_48 is not set 138# CONFIG_HZ_48 is not set
131# CONFIG_HZ_100 is not set 139# CONFIG_HZ_100 is not set
132# CONFIG_HZ_128 is not set 140# CONFIG_HZ_128 is not set
@@ -139,6 +147,7 @@ CONFIG_HZ=1000
139CONFIG_PREEMPT_NONE=y 147CONFIG_PREEMPT_NONE=y
140# CONFIG_PREEMPT_VOLUNTARY is not set 148# CONFIG_PREEMPT_VOLUNTARY is not set
141# CONFIG_PREEMPT is not set 149# CONFIG_PREEMPT is not set
150CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
142 151
143# 152#
144# Code maturity level options 153# Code maturity level options
@@ -170,10 +179,12 @@ CONFIG_PRINTK=y
170CONFIG_BUG=y 179CONFIG_BUG=y
171CONFIG_ELF_CORE=y 180CONFIG_ELF_CORE=y
172CONFIG_BASE_FULL=y 181CONFIG_BASE_FULL=y
182CONFIG_RT_MUTEXES=y
173CONFIG_FUTEX=y 183CONFIG_FUTEX=y
174CONFIG_EPOLL=y 184CONFIG_EPOLL=y
175CONFIG_SHMEM=y 185CONFIG_SHMEM=y
176CONFIG_SLAB=y 186CONFIG_SLAB=y
187CONFIG_VM_EVENT_COUNTERS=y
177# CONFIG_TINY_SHMEM is not set 188# CONFIG_TINY_SHMEM is not set
178CONFIG_BASE_SMALL=0 189CONFIG_BASE_SMALL=0
179# CONFIG_SLOB is not set 190# CONFIG_SLOB is not set
@@ -256,6 +267,8 @@ CONFIG_IP_FIB_HASH=y
256# CONFIG_INET_IPCOMP is not set 267# CONFIG_INET_IPCOMP is not set
257# CONFIG_INET_XFRM_TUNNEL is not set 268# CONFIG_INET_XFRM_TUNNEL is not set
258# CONFIG_INET_TUNNEL is not set 269# CONFIG_INET_TUNNEL is not set
270CONFIG_INET_XFRM_MODE_TRANSPORT=y
271CONFIG_INET_XFRM_MODE_TUNNEL=y
259CONFIG_INET_DIAG=y 272CONFIG_INET_DIAG=y
260CONFIG_INET_TCP_DIAG=y 273CONFIG_INET_TCP_DIAG=y
261# CONFIG_TCP_CONG_ADVANCED is not set 274# CONFIG_TCP_CONG_ADVANCED is not set
@@ -263,6 +276,7 @@ CONFIG_TCP_CONG_BIC=y
263# CONFIG_IPV6 is not set 276# CONFIG_IPV6 is not set
264# CONFIG_INET6_XFRM_TUNNEL is not set 277# CONFIG_INET6_XFRM_TUNNEL is not set
265# CONFIG_INET6_TUNNEL is not set 278# CONFIG_INET6_TUNNEL is not set
279CONFIG_NETWORK_SECMARK=y
266# CONFIG_NETFILTER is not set 280# CONFIG_NETFILTER is not set
267 281
268# 282#
@@ -322,6 +336,7 @@ CONFIG_WIRELESS_EXT=y
322CONFIG_STANDALONE=y 336CONFIG_STANDALONE=y
323CONFIG_PREVENT_FIRMWARE_BUILD=y 337CONFIG_PREVENT_FIRMWARE_BUILD=y
324CONFIG_FW_LOADER=y 338CONFIG_FW_LOADER=y
339# CONFIG_SYS_HYPERVISOR is not set
325 340
326# 341#
327# Connector - unified userspace <-> kernelspace linker 342# Connector - unified userspace <-> kernelspace linker
@@ -471,6 +486,8 @@ CONFIG_DAVICOM_PHY=y
471CONFIG_QSEMI_PHY=y 486CONFIG_QSEMI_PHY=y
472CONFIG_LXT_PHY=y 487CONFIG_LXT_PHY=y
473CONFIG_CICADA_PHY=y 488CONFIG_CICADA_PHY=y
489CONFIG_VITESSE_PHY=y
490CONFIG_SMSC_PHY=y
474 491
475# 492#
476# Ethernet (10 or 100Mbit) 493# Ethernet (10 or 100Mbit)
@@ -522,6 +539,7 @@ CONFIG_TULIP=y
522# CONFIG_CHELSIO_T1 is not set 539# CONFIG_CHELSIO_T1 is not set
523# CONFIG_IXGB is not set 540# CONFIG_IXGB is not set
524# CONFIG_S2IO is not set 541# CONFIG_S2IO is not set
542# CONFIG_MYRI10GE is not set
525 543
526# 544#
527# Token Ring devices 545# Token Ring devices
@@ -599,6 +617,7 @@ CONFIG_SERIO_RAW=y
599CONFIG_VT=y 617CONFIG_VT=y
600CONFIG_VT_CONSOLE=y 618CONFIG_VT_CONSOLE=y
601CONFIG_HW_CONSOLE=y 619CONFIG_HW_CONSOLE=y
620CONFIG_VT_HW_CONSOLE_BINDING=y
602# CONFIG_SERIAL_NONSTANDARD is not set 621# CONFIG_SERIAL_NONSTANDARD is not set
603 622
604# 623#
@@ -630,6 +649,7 @@ CONFIG_LEGACY_PTY_COUNT=256
630# Watchdog Cards 649# Watchdog Cards
631# 650#
632# CONFIG_WATCHDOG is not set 651# CONFIG_WATCHDOG is not set
652# CONFIG_HW_RANDOM is not set
633CONFIG_RTC=y 653CONFIG_RTC=y
634CONFIG_COBALT_LCD=y 654CONFIG_COBALT_LCD=y
635# CONFIG_DTLK is not set 655# CONFIG_DTLK is not set
@@ -678,6 +698,7 @@ CONFIG_COBALT_LCD=y
678# Multimedia devices 698# Multimedia devices
679# 699#
680# CONFIG_VIDEO_DEV is not set 700# CONFIG_VIDEO_DEV is not set
701CONFIG_VIDEO_V4L2=y
681 702
682# 703#
683# Digital Video Broadcasting Devices 704# Digital Video Broadcasting Devices
@@ -687,6 +708,7 @@ CONFIG_COBALT_LCD=y
687# 708#
688# Graphics support 709# Graphics support
689# 710#
711# CONFIG_FIRMWARE_EDID is not set
690# CONFIG_FB is not set 712# CONFIG_FB is not set
691 713
692# 714#
@@ -750,6 +772,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
750# CONFIG_RTC_CLASS is not set 772# CONFIG_RTC_CLASS is not set
751 773
752# 774#
775# DMA Engine support
776#
777# CONFIG_DMA_ENGINE is not set
778
779#
780# DMA Clients
781#
782
783#
784# DMA Devices
785#
786
787#
753# File systems 788# File systems
754# 789#
755CONFIG_EXT2_FS=y 790CONFIG_EXT2_FS=y
@@ -767,6 +802,7 @@ CONFIG_FS_POSIX_ACL=y
767# CONFIG_MINIX_FS is not set 802# CONFIG_MINIX_FS is not set
768# CONFIG_ROMFS_FS is not set 803# CONFIG_ROMFS_FS is not set
769CONFIG_INOTIFY=y 804CONFIG_INOTIFY=y
805CONFIG_INOTIFY_USER=y
770# CONFIG_QUOTA is not set 806# CONFIG_QUOTA is not set
771CONFIG_DNOTIFY=y 807CONFIG_DNOTIFY=y
772# CONFIG_AUTOFS_FS is not set 808# CONFIG_AUTOFS_FS is not set
@@ -829,6 +865,7 @@ CONFIG_SUNRPC=y
829# CONFIG_RPCSEC_GSS_SPKM3 is not set 865# CONFIG_RPCSEC_GSS_SPKM3 is not set
830# CONFIG_SMB_FS is not set 866# CONFIG_SMB_FS is not set
831# CONFIG_CIFS is not set 867# CONFIG_CIFS is not set
868# CONFIG_CIFS_DEBUG2 is not set
832# CONFIG_NCP_FS is not set 869# CONFIG_NCP_FS is not set
833# CONFIG_CODA_FS is not set 870# CONFIG_CODA_FS is not set
834# CONFIG_AFS_FS is not set 871# CONFIG_AFS_FS is not set
@@ -855,6 +892,7 @@ CONFIG_MSDOS_PARTITION=y
855# 892#
856# CONFIG_PRINTK_TIME is not set 893# CONFIG_PRINTK_TIME is not set
857# CONFIG_MAGIC_SYSRQ is not set 894# CONFIG_MAGIC_SYSRQ is not set
895# CONFIG_UNUSED_SYMBOLS is not set
858# CONFIG_DEBUG_KERNEL is not set 896# CONFIG_DEBUG_KERNEL is not set
859CONFIG_LOG_BUF_SHIFT=14 897CONFIG_LOG_BUF_SHIFT=14
860# CONFIG_DEBUG_FS is not set 898# CONFIG_DEBUG_FS is not set
@@ -896,7 +934,6 @@ CONFIG_CRYPTO_ANUBIS=y
896CONFIG_CRYPTO_DEFLATE=y 934CONFIG_CRYPTO_DEFLATE=y
897CONFIG_CRYPTO_MICHAEL_MIC=y 935CONFIG_CRYPTO_MICHAEL_MIC=y
898CONFIG_CRYPTO_CRC32C=y 936CONFIG_CRYPTO_CRC32C=y
899# CONFIG_CRYPTO_TEST is not set
900 937
901# 938#
902# Hardware crypto devices 939# Hardware crypto devices
@@ -911,3 +948,4 @@ CONFIG_CRC32=y
911CONFIG_LIBCRC32C=y 948CONFIG_LIBCRC32C=y
912CONFIG_ZLIB_INFLATE=y 949CONFIG_ZLIB_INFLATE=y
913CONFIG_ZLIB_DEFLATE=y 950CONFIG_ZLIB_DEFLATE=y
951CONFIG_PLIST=y
diff --git a/arch/mips/configs/db1000_defconfig b/arch/mips/configs/db1000_defconfig
index 6a7aa401462f..c2f33d3af62c 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:57 2006 4# Thu Jul 6 10:03:33 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_DB1000=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_DB1000=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_DB1000=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -112,7 +116,10 @@ CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
114CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 119CONFIG_MIPS_MT_DISABLED=y
120# CONFIG_MIPS_MT_SMTC is not set
121# CONFIG_MIPS_MT_SMP is not set
122# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 123CONFIG_64BIT_PHYS_ADDR=y
117CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -171,14 +180,15 @@ CONFIG_PRINTK=y
171CONFIG_BUG=y 180CONFIG_BUG=y
172CONFIG_ELF_CORE=y 181CONFIG_ELF_CORE=y
173CONFIG_BASE_FULL=y 182CONFIG_BASE_FULL=y
183CONFIG_RT_MUTEXES=y
174CONFIG_FUTEX=y 184CONFIG_FUTEX=y
175CONFIG_EPOLL=y 185CONFIG_EPOLL=y
176CONFIG_SHMEM=y 186CONFIG_SHMEM=y
177CONFIG_SLAB=y 187CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y
178# CONFIG_TINY_SHMEM is not set 189# CONFIG_TINY_SHMEM is not set
179CONFIG_BASE_SMALL=0 190CONFIG_BASE_SMALL=0
180# CONFIG_SLOB is not set 191# CONFIG_SLOB is not set
181CONFIG_OBSOLETE_INTERMODULE=y
182 192
183# 193#
184# Loadable module support 194# Loadable module support
@@ -276,6 +286,8 @@ CONFIG_IP_PNP_BOOTP=y
276# CONFIG_INET_IPCOMP is not set 286# CONFIG_INET_IPCOMP is not set
277# CONFIG_INET_XFRM_TUNNEL is not set 287# CONFIG_INET_XFRM_TUNNEL is not set
278# CONFIG_INET_TUNNEL is not set 288# CONFIG_INET_TUNNEL is not set
289CONFIG_INET_XFRM_MODE_TRANSPORT=m
290CONFIG_INET_XFRM_MODE_TUNNEL=m
279CONFIG_INET_DIAG=y 291CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y 292CONFIG_INET_TCP_DIAG=y
281# CONFIG_TCP_CONG_ADVANCED is not set 293# CONFIG_TCP_CONG_ADVANCED is not set
@@ -288,6 +300,7 @@ CONFIG_TCP_CONG_BIC=y
288# CONFIG_IPV6 is not set 300# CONFIG_IPV6 is not set
289# CONFIG_INET6_XFRM_TUNNEL is not set 301# CONFIG_INET6_XFRM_TUNNEL is not set
290# CONFIG_INET6_TUNNEL is not set 302# CONFIG_INET6_TUNNEL is not set
303CONFIG_NETWORK_SECMARK=y
291CONFIG_NETFILTER=y 304CONFIG_NETFILTER=y
292# CONFIG_NETFILTER_DEBUG is not set 305# CONFIG_NETFILTER_DEBUG is not set
293 306
@@ -302,6 +315,7 @@ CONFIG_NETFILTER_XTABLES=m
302CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 315CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
303CONFIG_NETFILTER_XT_TARGET_MARK=m 316CONFIG_NETFILTER_XT_TARGET_MARK=m
304CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 317CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
318CONFIG_NETFILTER_XT_TARGET_SECMARK=m
305CONFIG_NETFILTER_XT_MATCH_COMMENT=m 319CONFIG_NETFILTER_XT_MATCH_COMMENT=m
306CONFIG_NETFILTER_XT_MATCH_DCCP=m 320CONFIG_NETFILTER_XT_MATCH_DCCP=m
307CONFIG_NETFILTER_XT_MATCH_ESP=m 321CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -312,8 +326,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
312CONFIG_NETFILTER_XT_MATCH_POLICY=m 326CONFIG_NETFILTER_XT_MATCH_POLICY=m
313CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 327CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
314CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 328CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
329CONFIG_NETFILTER_XT_MATCH_QUOTA=m
315CONFIG_NETFILTER_XT_MATCH_REALM=m 330CONFIG_NETFILTER_XT_MATCH_REALM=m
316CONFIG_NETFILTER_XT_MATCH_SCTP=m 331CONFIG_NETFILTER_XT_MATCH_SCTP=m
332CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
317CONFIG_NETFILTER_XT_MATCH_STRING=m 333CONFIG_NETFILTER_XT_MATCH_STRING=m
318CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 334CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
319 335
@@ -383,6 +399,7 @@ CONFIG_WIRELESS_EXT=y
383CONFIG_STANDALONE=y 399CONFIG_STANDALONE=y
384CONFIG_PREVENT_FIRMWARE_BUILD=y 400CONFIG_PREVENT_FIRMWARE_BUILD=y
385CONFIG_FW_LOADER=m 401CONFIG_FW_LOADER=m
402# CONFIG_SYS_HYPERVISOR is not set
386 403
387# 404#
388# Connector - unified userspace <-> kernelspace linker 405# Connector - unified userspace <-> kernelspace linker
@@ -532,7 +549,7 @@ CONFIG_NETDEVICES=y
532# 549#
533# PHY device support 550# PHY device support
534# 551#
535CONFIG_PHYLIB=m 552CONFIG_PHYLIB=y
536 553
537# 554#
538# MII PHY device drivers 555# MII PHY device drivers
@@ -542,6 +559,8 @@ CONFIG_DAVICOM_PHY=m
542CONFIG_QSEMI_PHY=m 559CONFIG_QSEMI_PHY=m
543CONFIG_LXT_PHY=m 560CONFIG_LXT_PHY=m
544CONFIG_CICADA_PHY=m 561CONFIG_CICADA_PHY=m
562CONFIG_VITESSE_PHY=m
563CONFIG_SMSC_PHY=m
545 564
546# 565#
547# Ethernet (10 or 100Mbit) 566# Ethernet (10 or 100Mbit)
@@ -653,6 +672,7 @@ CONFIG_SERIO_RAW=m
653CONFIG_VT=y 672CONFIG_VT=y
654CONFIG_VT_CONSOLE=y 673CONFIG_VT_CONSOLE=y
655CONFIG_HW_CONSOLE=y 674CONFIG_HW_CONSOLE=y
675CONFIG_VT_HW_CONSOLE_BINDING=y
656# CONFIG_SERIAL_NONSTANDARD is not set 676# CONFIG_SERIAL_NONSTANDARD is not set
657# CONFIG_AU1X00_GPIO is not set 677# CONFIG_AU1X00_GPIO is not set
658# CONFIG_TS_AU1X00_ADS7846 is not set 678# CONFIG_TS_AU1X00_ADS7846 is not set
@@ -686,6 +706,7 @@ CONFIG_LEGACY_PTY_COUNT=256
686# Watchdog Cards 706# Watchdog Cards
687# 707#
688# CONFIG_WATCHDOG is not set 708# CONFIG_WATCHDOG is not set
709# CONFIG_HW_RANDOM is not set
689# CONFIG_RTC is not set 710# CONFIG_RTC is not set
690# CONFIG_GEN_RTC is not set 711# CONFIG_GEN_RTC is not set
691# CONFIG_DTLK is not set 712# CONFIG_DTLK is not set
@@ -739,6 +760,7 @@ CONFIG_SYNCLINK_CS=m
739# Multimedia devices 760# Multimedia devices
740# 761#
741# CONFIG_VIDEO_DEV is not set 762# CONFIG_VIDEO_DEV is not set
763CONFIG_VIDEO_V4L2=y
742 764
743# 765#
744# Digital Video Broadcasting Devices 766# Digital Video Broadcasting Devices
@@ -748,6 +770,7 @@ CONFIG_SYNCLINK_CS=m
748# 770#
749# Graphics support 771# Graphics support
750# 772#
773# CONFIG_FIRMWARE_EDID is not set
751# CONFIG_FB is not set 774# CONFIG_FB is not set
752 775
753# 776#
@@ -810,6 +833,19 @@ CONFIG_USB_ARCH_HAS_OHCI=y
810# CONFIG_RTC_CLASS is not set 833# CONFIG_RTC_CLASS is not set
811 834
812# 835#
836# DMA Engine support
837#
838# CONFIG_DMA_ENGINE is not set
839
840#
841# DMA Clients
842#
843
844#
845# DMA Devices
846#
847
848#
813# File systems 849# File systems
814# 850#
815CONFIG_EXT2_FS=y 851CONFIG_EXT2_FS=y
@@ -837,6 +873,7 @@ CONFIG_FS_POSIX_ACL=y
837# CONFIG_MINIX_FS is not set 873# CONFIG_MINIX_FS is not set
838# CONFIG_ROMFS_FS is not set 874# CONFIG_ROMFS_FS is not set
839CONFIG_INOTIFY=y 875CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y
840# CONFIG_QUOTA is not set 877# CONFIG_QUOTA is not set
841CONFIG_DNOTIFY=y 878CONFIG_DNOTIFY=y
842CONFIG_AUTOFS_FS=m 879CONFIG_AUTOFS_FS=m
@@ -906,6 +943,7 @@ CONFIG_SUNRPC=y
906CONFIG_SMB_FS=m 943CONFIG_SMB_FS=m
907# CONFIG_SMB_NLS_DEFAULT is not set 944# CONFIG_SMB_NLS_DEFAULT is not set
908# CONFIG_CIFS is not set 945# CONFIG_CIFS is not set
946# CONFIG_CIFS_DEBUG2 is not set
909# CONFIG_NCP_FS is not set 947# CONFIG_NCP_FS is not set
910# CONFIG_CODA_FS is not set 948# CONFIG_CODA_FS is not set
911# CONFIG_AFS_FS is not set 949# CONFIG_AFS_FS is not set
@@ -971,6 +1009,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
971# 1009#
972# CONFIG_PRINTK_TIME is not set 1010# CONFIG_PRINTK_TIME is not set
973# CONFIG_MAGIC_SYSRQ is not set 1011# CONFIG_MAGIC_SYSRQ is not set
1012# CONFIG_UNUSED_SYMBOLS is not set
974# CONFIG_DEBUG_KERNEL is not set 1013# CONFIG_DEBUG_KERNEL is not set
975CONFIG_LOG_BUF_SHIFT=14 1014CONFIG_LOG_BUF_SHIFT=14
976# CONFIG_DEBUG_FS is not set 1015# CONFIG_DEBUG_FS is not set
@@ -1030,3 +1069,4 @@ CONFIG_TEXTSEARCH=y
1030CONFIG_TEXTSEARCH_KMP=m 1069CONFIG_TEXTSEARCH_KMP=m
1031CONFIG_TEXTSEARCH_BM=m 1070CONFIG_TEXTSEARCH_BM=m
1032CONFIG_TEXTSEARCH_FSM=m 1071CONFIG_TEXTSEARCH_FSM=m
1072CONFIG_PLIST=y
diff --git a/arch/mips/configs/db1100_defconfig b/arch/mips/configs/db1100_defconfig
index 5c2da563e528..8c44d16ae9a2 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:58 2006 4# Thu Jul 6 10:03:34 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_DB1100=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_DB1100=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_DB1100=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -112,7 +116,10 @@ CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
114CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 119CONFIG_MIPS_MT_DISABLED=y
120# CONFIG_MIPS_MT_SMTC is not set
121# CONFIG_MIPS_MT_SMP is not set
122# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 123CONFIG_64BIT_PHYS_ADDR=y
117CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -171,14 +180,15 @@ CONFIG_PRINTK=y
171CONFIG_BUG=y 180CONFIG_BUG=y
172CONFIG_ELF_CORE=y 181CONFIG_ELF_CORE=y
173CONFIG_BASE_FULL=y 182CONFIG_BASE_FULL=y
183CONFIG_RT_MUTEXES=y
174CONFIG_FUTEX=y 184CONFIG_FUTEX=y
175CONFIG_EPOLL=y 185CONFIG_EPOLL=y
176CONFIG_SHMEM=y 186CONFIG_SHMEM=y
177CONFIG_SLAB=y 187CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y
178# CONFIG_TINY_SHMEM is not set 189# CONFIG_TINY_SHMEM is not set
179CONFIG_BASE_SMALL=0 190CONFIG_BASE_SMALL=0
180# CONFIG_SLOB is not set 191# CONFIG_SLOB is not set
181CONFIG_OBSOLETE_INTERMODULE=y
182 192
183# 193#
184# Loadable module support 194# Loadable module support
@@ -265,6 +275,8 @@ CONFIG_IP_PNP_BOOTP=y
265# CONFIG_INET_IPCOMP is not set 275# CONFIG_INET_IPCOMP is not set
266# CONFIG_INET_XFRM_TUNNEL is not set 276# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set 277# CONFIG_INET_TUNNEL is not set
278CONFIG_INET_XFRM_MODE_TRANSPORT=m
279CONFIG_INET_XFRM_MODE_TUNNEL=m
268CONFIG_INET_DIAG=y 280CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 281CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 282# CONFIG_TCP_CONG_ADVANCED is not set
@@ -277,6 +289,7 @@ CONFIG_TCP_CONG_BIC=y
277# CONFIG_IPV6 is not set 289# CONFIG_IPV6 is not set
278# CONFIG_INET6_XFRM_TUNNEL is not set 290# CONFIG_INET6_XFRM_TUNNEL is not set
279# CONFIG_INET6_TUNNEL is not set 291# CONFIG_INET6_TUNNEL is not set
292CONFIG_NETWORK_SECMARK=y
280CONFIG_NETFILTER=y 293CONFIG_NETFILTER=y
281# CONFIG_NETFILTER_DEBUG is not set 294# CONFIG_NETFILTER_DEBUG is not set
282 295
@@ -291,6 +304,7 @@ CONFIG_NETFILTER_XTABLES=m
291CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 304CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
292CONFIG_NETFILTER_XT_TARGET_MARK=m 305CONFIG_NETFILTER_XT_TARGET_MARK=m
293CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 306CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
307CONFIG_NETFILTER_XT_TARGET_SECMARK=m
294CONFIG_NETFILTER_XT_MATCH_COMMENT=m 308CONFIG_NETFILTER_XT_MATCH_COMMENT=m
295CONFIG_NETFILTER_XT_MATCH_DCCP=m 309CONFIG_NETFILTER_XT_MATCH_DCCP=m
296CONFIG_NETFILTER_XT_MATCH_ESP=m 310CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -301,8 +315,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
301CONFIG_NETFILTER_XT_MATCH_POLICY=m 315CONFIG_NETFILTER_XT_MATCH_POLICY=m
302CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 316CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
303CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 317CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
318CONFIG_NETFILTER_XT_MATCH_QUOTA=m
304CONFIG_NETFILTER_XT_MATCH_REALM=m 319CONFIG_NETFILTER_XT_MATCH_REALM=m
305CONFIG_NETFILTER_XT_MATCH_SCTP=m 320CONFIG_NETFILTER_XT_MATCH_SCTP=m
321CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
306CONFIG_NETFILTER_XT_MATCH_STRING=m 322CONFIG_NETFILTER_XT_MATCH_STRING=m
307CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 323CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
308 324
@@ -372,6 +388,7 @@ CONFIG_WIRELESS_EXT=y
372CONFIG_STANDALONE=y 388CONFIG_STANDALONE=y
373CONFIG_PREVENT_FIRMWARE_BUILD=y 389CONFIG_PREVENT_FIRMWARE_BUILD=y
374# CONFIG_FW_LOADER is not set 390# CONFIG_FW_LOADER is not set
391# CONFIG_SYS_HYPERVISOR is not set
375 392
376# 393#
377# Connector - unified userspace <-> kernelspace linker 394# Connector - unified userspace <-> kernelspace linker
@@ -521,7 +538,7 @@ CONFIG_NETDEVICES=y
521# 538#
522# PHY device support 539# PHY device support
523# 540#
524CONFIG_PHYLIB=m 541CONFIG_PHYLIB=y
525 542
526# 543#
527# MII PHY device drivers 544# MII PHY device drivers
@@ -531,6 +548,8 @@ CONFIG_DAVICOM_PHY=m
531CONFIG_QSEMI_PHY=m 548CONFIG_QSEMI_PHY=m
532CONFIG_LXT_PHY=m 549CONFIG_LXT_PHY=m
533CONFIG_CICADA_PHY=m 550CONFIG_CICADA_PHY=m
551CONFIG_VITESSE_PHY=m
552CONFIG_SMSC_PHY=m
534 553
535# 554#
536# Ethernet (10 or 100Mbit) 555# Ethernet (10 or 100Mbit)
@@ -629,6 +648,7 @@ CONFIG_SERIO_RAW=m
629CONFIG_VT=y 648CONFIG_VT=y
630CONFIG_VT_CONSOLE=y 649CONFIG_VT_CONSOLE=y
631CONFIG_HW_CONSOLE=y 650CONFIG_HW_CONSOLE=y
651CONFIG_VT_HW_CONSOLE_BINDING=y
632# CONFIG_SERIAL_NONSTANDARD is not set 652# CONFIG_SERIAL_NONSTANDARD is not set
633# CONFIG_AU1X00_GPIO is not set 653# CONFIG_AU1X00_GPIO is not set
634# CONFIG_TS_AU1X00_ADS7846 is not set 654# CONFIG_TS_AU1X00_ADS7846 is not set
@@ -661,6 +681,7 @@ CONFIG_LEGACY_PTY_COUNT=256
661# Watchdog Cards 681# Watchdog Cards
662# 682#
663# CONFIG_WATCHDOG is not set 683# CONFIG_WATCHDOG is not set
684# CONFIG_HW_RANDOM is not set
664# CONFIG_RTC is not set 685# CONFIG_RTC is not set
665# CONFIG_GEN_RTC is not set 686# CONFIG_GEN_RTC is not set
666# CONFIG_DTLK is not set 687# CONFIG_DTLK is not set
@@ -707,6 +728,7 @@ CONFIG_LEGACY_PTY_COUNT=256
707# Multimedia devices 728# Multimedia devices
708# 729#
709# CONFIG_VIDEO_DEV is not set 730# CONFIG_VIDEO_DEV is not set
731CONFIG_VIDEO_V4L2=y
710 732
711# 733#
712# Digital Video Broadcasting Devices 734# Digital Video Broadcasting Devices
@@ -716,12 +738,13 @@ CONFIG_LEGACY_PTY_COUNT=256
716# 738#
717# Graphics support 739# Graphics support
718# 740#
741# CONFIG_FIRMWARE_EDID is not set
719CONFIG_FB=y 742CONFIG_FB=y
720CONFIG_FB_CFB_FILLRECT=y 743CONFIG_FB_CFB_FILLRECT=y
721CONFIG_FB_CFB_COPYAREA=y 744CONFIG_FB_CFB_COPYAREA=y
722CONFIG_FB_CFB_IMAGEBLIT=y 745CONFIG_FB_CFB_IMAGEBLIT=y
723# CONFIG_FB_MACMODES is not set 746# CONFIG_FB_MACMODES is not set
724CONFIG_FB_FIRMWARE_EDID=y 747# CONFIG_FB_BACKLIGHT is not set
725# CONFIG_FB_MODE_HELPERS is not set 748# CONFIG_FB_MODE_HELPERS is not set
726# CONFIG_FB_TILEBLITTING is not set 749# CONFIG_FB_TILEBLITTING is not set
727# CONFIG_FB_S1D13XXX is not set 750# CONFIG_FB_S1D13XXX is not set
@@ -810,6 +833,19 @@ CONFIG_USB_ARCH_HAS_OHCI=y
810# CONFIG_RTC_CLASS is not set 833# CONFIG_RTC_CLASS is not set
811 834
812# 835#
836# DMA Engine support
837#
838# CONFIG_DMA_ENGINE is not set
839
840#
841# DMA Clients
842#
843
844#
845# DMA Devices
846#
847
848#
813# File systems 849# File systems
814# 850#
815CONFIG_EXT2_FS=y 851CONFIG_EXT2_FS=y
@@ -837,6 +873,7 @@ CONFIG_FS_POSIX_ACL=y
837# CONFIG_MINIX_FS is not set 873# CONFIG_MINIX_FS is not set
838# CONFIG_ROMFS_FS is not set 874# CONFIG_ROMFS_FS is not set
839CONFIG_INOTIFY=y 875CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y
840# CONFIG_QUOTA is not set 877# CONFIG_QUOTA is not set
841CONFIG_DNOTIFY=y 878CONFIG_DNOTIFY=y
842CONFIG_AUTOFS_FS=m 879CONFIG_AUTOFS_FS=m
@@ -906,6 +943,7 @@ CONFIG_SUNRPC=y
906CONFIG_SMB_FS=m 943CONFIG_SMB_FS=m
907# CONFIG_SMB_NLS_DEFAULT is not set 944# CONFIG_SMB_NLS_DEFAULT is not set
908# CONFIG_CIFS is not set 945# CONFIG_CIFS is not set
946# CONFIG_CIFS_DEBUG2 is not set
909# CONFIG_NCP_FS is not set 947# CONFIG_NCP_FS is not set
910# CONFIG_CODA_FS is not set 948# CONFIG_CODA_FS is not set
911# CONFIG_AFS_FS is not set 949# CONFIG_AFS_FS is not set
@@ -971,6 +1009,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
971# 1009#
972# CONFIG_PRINTK_TIME is not set 1010# CONFIG_PRINTK_TIME is not set
973# CONFIG_MAGIC_SYSRQ is not set 1011# CONFIG_MAGIC_SYSRQ is not set
1012# CONFIG_UNUSED_SYMBOLS is not set
974# CONFIG_DEBUG_KERNEL is not set 1013# CONFIG_DEBUG_KERNEL is not set
975CONFIG_LOG_BUF_SHIFT=14 1014CONFIG_LOG_BUF_SHIFT=14
976# CONFIG_DEBUG_FS is not set 1015# CONFIG_DEBUG_FS is not set
@@ -1030,3 +1069,4 @@ CONFIG_TEXTSEARCH=y
1030CONFIG_TEXTSEARCH_KMP=m 1069CONFIG_TEXTSEARCH_KMP=m
1031CONFIG_TEXTSEARCH_BM=m 1070CONFIG_TEXTSEARCH_BM=m
1032CONFIG_TEXTSEARCH_FSM=m 1071CONFIG_TEXTSEARCH_FSM=m
1072CONFIG_PLIST=y
diff --git a/arch/mips/configs/db1200_defconfig b/arch/mips/configs/db1200_defconfig
index 85ef90ce0944..c13768e75ac5 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:58 2006 4# Thu Jul 6 10:03:43 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22CONFIG_MIPS_DB1200=y 22CONFIG_MIPS_DB1200=y
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_DB1200=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_DB1200=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_COHERENT=y 72CONFIG_DMA_COHERENT=y
69CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 73CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -112,7 +116,10 @@ CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
114CONFIG_CPU_HAS_PREFETCH=y 118CONFIG_CPU_HAS_PREFETCH=y
115# CONFIG_MIPS_MT is not set 119CONFIG_MIPS_MT_DISABLED=y
120# CONFIG_MIPS_MT_SMTC is not set
121# CONFIG_MIPS_MT_SMP is not set
122# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_64BIT_PHYS_ADDR=y 123CONFIG_64BIT_PHYS_ADDR=y
117CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -172,14 +181,15 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
182CONFIG_OBSOLETE_INTERMODULE=y
183 193
184# 194#
185# Loadable module support 195# Loadable module support
@@ -272,6 +282,8 @@ CONFIG_IP_FIB_HASH=y
272# CONFIG_INET_IPCOMP is not set 282# CONFIG_INET_IPCOMP is not set
273# CONFIG_INET_XFRM_TUNNEL is not set 283# CONFIG_INET_XFRM_TUNNEL is not set
274# CONFIG_INET_TUNNEL is not set 284# CONFIG_INET_TUNNEL is not set
285CONFIG_INET_XFRM_MODE_TRANSPORT=m
286CONFIG_INET_XFRM_MODE_TUNNEL=m
275CONFIG_INET_DIAG=y 287CONFIG_INET_DIAG=y
276CONFIG_INET_TCP_DIAG=y 288CONFIG_INET_TCP_DIAG=y
277# CONFIG_TCP_CONG_ADVANCED is not set 289# CONFIG_TCP_CONG_ADVANCED is not set
@@ -284,6 +296,7 @@ CONFIG_TCP_CONG_BIC=y
284# CONFIG_IPV6 is not set 296# CONFIG_IPV6 is not set
285# CONFIG_INET6_XFRM_TUNNEL is not set 297# CONFIG_INET6_XFRM_TUNNEL is not set
286# CONFIG_INET6_TUNNEL is not set 298# CONFIG_INET6_TUNNEL is not set
299CONFIG_NETWORK_SECMARK=y
287CONFIG_NETFILTER=y 300CONFIG_NETFILTER=y
288# CONFIG_NETFILTER_DEBUG is not set 301# CONFIG_NETFILTER_DEBUG is not set
289 302
@@ -296,6 +309,7 @@ CONFIG_NETFILTER_XTABLES=m
296CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 309CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
297CONFIG_NETFILTER_XT_TARGET_MARK=m 310CONFIG_NETFILTER_XT_TARGET_MARK=m
298CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 311CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
312CONFIG_NETFILTER_XT_TARGET_SECMARK=m
299CONFIG_NETFILTER_XT_MATCH_COMMENT=m 313CONFIG_NETFILTER_XT_MATCH_COMMENT=m
300CONFIG_NETFILTER_XT_MATCH_DCCP=m 314CONFIG_NETFILTER_XT_MATCH_DCCP=m
301CONFIG_NETFILTER_XT_MATCH_ESP=m 315CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -306,8 +320,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
306CONFIG_NETFILTER_XT_MATCH_POLICY=m 320CONFIG_NETFILTER_XT_MATCH_POLICY=m
307CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 321CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
308CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 322CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
323CONFIG_NETFILTER_XT_MATCH_QUOTA=m
309CONFIG_NETFILTER_XT_MATCH_REALM=m 324CONFIG_NETFILTER_XT_MATCH_REALM=m
310CONFIG_NETFILTER_XT_MATCH_SCTP=m 325CONFIG_NETFILTER_XT_MATCH_SCTP=m
326CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
311CONFIG_NETFILTER_XT_MATCH_STRING=m 327CONFIG_NETFILTER_XT_MATCH_STRING=m
312CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 328CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
313 329
@@ -371,6 +387,7 @@ CONFIG_NET_CLS_ROUTE=y
371CONFIG_STANDALONE=y 387CONFIG_STANDALONE=y
372CONFIG_PREVENT_FIRMWARE_BUILD=y 388CONFIG_PREVENT_FIRMWARE_BUILD=y
373CONFIG_FW_LOADER=y 389CONFIG_FW_LOADER=y
390# CONFIG_SYS_HYPERVISOR is not set
374 391
375# 392#
376# Connector - unified userspace <-> kernelspace linker 393# Connector - unified userspace <-> kernelspace linker
@@ -451,6 +468,7 @@ CONFIG_MTD_ALCHEMY=y
451# 468#
452CONFIG_MTD_NAND=y 469CONFIG_MTD_NAND=y
453# CONFIG_MTD_NAND_VERIFY_WRITE is not set 470# CONFIG_MTD_NAND_VERIFY_WRITE is not set
471# CONFIG_MTD_NAND_ECC_SMC is not set
454CONFIG_MTD_NAND_IDS=y 472CONFIG_MTD_NAND_IDS=y
455# CONFIG_MTD_NAND_AU1550 is not set 473# CONFIG_MTD_NAND_AU1550 is not set
456# CONFIG_MTD_NAND_DISKONCHIP is not set 474# CONFIG_MTD_NAND_DISKONCHIP is not set
@@ -691,6 +709,7 @@ CONFIG_SERIO_RAW=y
691CONFIG_VT=y 709CONFIG_VT=y
692CONFIG_VT_CONSOLE=y 710CONFIG_VT_CONSOLE=y
693CONFIG_HW_CONSOLE=y 711CONFIG_HW_CONSOLE=y
712CONFIG_VT_HW_CONSOLE_BINDING=y
694# CONFIG_SERIAL_NONSTANDARD is not set 713# CONFIG_SERIAL_NONSTANDARD is not set
695# CONFIG_AU1X00_GPIO is not set 714# CONFIG_AU1X00_GPIO is not set
696# CONFIG_TS_AU1X00_ADS7846 is not set 715# CONFIG_TS_AU1X00_ADS7846 is not set
@@ -724,6 +743,7 @@ CONFIG_LEGACY_PTY_COUNT=256
724# Watchdog Cards 743# Watchdog Cards
725# 744#
726# CONFIG_WATCHDOG is not set 745# CONFIG_WATCHDOG is not set
746# CONFIG_HW_RANDOM is not set
727# CONFIG_RTC is not set 747# CONFIG_RTC is not set
728# CONFIG_GEN_RTC is not set 748# CONFIG_GEN_RTC is not set
729# CONFIG_DTLK is not set 749# CONFIG_DTLK is not set
@@ -761,7 +781,6 @@ CONFIG_LEGACY_PTY_COUNT=256
761# 781#
762# Dallas's 1-wire bus 782# Dallas's 1-wire bus
763# 783#
764# CONFIG_W1 is not set
765 784
766# 785#
767# Hardware Monitoring support 786# Hardware Monitoring support
@@ -777,6 +796,7 @@ CONFIG_LEGACY_PTY_COUNT=256
777# Multimedia devices 796# Multimedia devices
778# 797#
779# CONFIG_VIDEO_DEV is not set 798# CONFIG_VIDEO_DEV is not set
799CONFIG_VIDEO_V4L2=y
780 800
781# 801#
782# Digital Video Broadcasting Devices 802# Digital Video Broadcasting Devices
@@ -786,12 +806,13 @@ CONFIG_LEGACY_PTY_COUNT=256
786# 806#
787# Graphics support 807# Graphics support
788# 808#
809# CONFIG_FIRMWARE_EDID is not set
789CONFIG_FB=y 810CONFIG_FB=y
790CONFIG_FB_CFB_FILLRECT=y 811CONFIG_FB_CFB_FILLRECT=y
791CONFIG_FB_CFB_COPYAREA=y 812CONFIG_FB_CFB_COPYAREA=y
792CONFIG_FB_CFB_IMAGEBLIT=y 813CONFIG_FB_CFB_IMAGEBLIT=y
793# CONFIG_FB_MACMODES is not set 814# CONFIG_FB_MACMODES is not set
794CONFIG_FB_FIRMWARE_EDID=y 815# CONFIG_FB_BACKLIGHT is not set
795# CONFIG_FB_MODE_HELPERS is not set 816# CONFIG_FB_MODE_HELPERS is not set
796# CONFIG_FB_TILEBLITTING is not set 817# CONFIG_FB_TILEBLITTING is not set
797# CONFIG_FB_S1D13XXX is not set 818# CONFIG_FB_S1D13XXX is not set
@@ -881,6 +902,19 @@ CONFIG_MMC_AU1X=y
881# CONFIG_RTC_CLASS is not set 902# CONFIG_RTC_CLASS is not set
882 903
883# 904#
905# DMA Engine support
906#
907# CONFIG_DMA_ENGINE is not set
908
909#
910# DMA Clients
911#
912
913#
914# DMA Devices
915#
916
917#
884# File systems 918# File systems
885# 919#
886CONFIG_EXT2_FS=y 920CONFIG_EXT2_FS=y
@@ -907,6 +941,7 @@ CONFIG_FS_POSIX_ACL=y
907# CONFIG_MINIX_FS is not set 941# CONFIG_MINIX_FS is not set
908# CONFIG_ROMFS_FS is not set 942# CONFIG_ROMFS_FS is not set
909CONFIG_INOTIFY=y 943CONFIG_INOTIFY=y
944CONFIG_INOTIFY_USER=y
910# CONFIG_QUOTA is not set 945# CONFIG_QUOTA is not set
911CONFIG_DNOTIFY=y 946CONFIG_DNOTIFY=y
912# CONFIG_AUTOFS_FS is not set 947# CONFIG_AUTOFS_FS is not set
@@ -959,6 +994,7 @@ CONFIG_JFFS2_FS=y
959CONFIG_JFFS2_FS_DEBUG=0 994CONFIG_JFFS2_FS_DEBUG=0
960CONFIG_JFFS2_FS_WRITEBUFFER=y 995CONFIG_JFFS2_FS_WRITEBUFFER=y
961# CONFIG_JFFS2_SUMMARY is not set 996# CONFIG_JFFS2_SUMMARY is not set
997# CONFIG_JFFS2_FS_XATTR is not set
962# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 998# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
963CONFIG_JFFS2_ZLIB=y 999CONFIG_JFFS2_ZLIB=y
964CONFIG_JFFS2_RTIME=y 1000CONFIG_JFFS2_RTIME=y
@@ -988,6 +1024,7 @@ CONFIG_SUNRPC=y
988CONFIG_SMB_FS=y 1024CONFIG_SMB_FS=y
989# CONFIG_SMB_NLS_DEFAULT is not set 1025# CONFIG_SMB_NLS_DEFAULT is not set
990# CONFIG_CIFS is not set 1026# CONFIG_CIFS is not set
1027# CONFIG_CIFS_DEBUG2 is not set
991# CONFIG_NCP_FS is not set 1028# CONFIG_NCP_FS is not set
992# CONFIG_CODA_FS is not set 1029# CONFIG_CODA_FS is not set
993# CONFIG_AFS_FS is not set 1030# CONFIG_AFS_FS is not set
@@ -1053,6 +1090,7 @@ CONFIG_NLS_UTF8=m
1053# 1090#
1054# CONFIG_PRINTK_TIME is not set 1091# CONFIG_PRINTK_TIME is not set
1055# CONFIG_MAGIC_SYSRQ is not set 1092# CONFIG_MAGIC_SYSRQ is not set
1093# CONFIG_UNUSED_SYMBOLS is not set
1056# CONFIG_DEBUG_KERNEL is not set 1094# CONFIG_DEBUG_KERNEL is not set
1057CONFIG_LOG_BUF_SHIFT=14 1095CONFIG_LOG_BUF_SHIFT=14
1058# CONFIG_DEBUG_FS is not set 1096# CONFIG_DEBUG_FS is not set
@@ -1088,3 +1126,4 @@ CONFIG_TEXTSEARCH=y
1088CONFIG_TEXTSEARCH_KMP=m 1126CONFIG_TEXTSEARCH_KMP=m
1089CONFIG_TEXTSEARCH_BM=m 1127CONFIG_TEXTSEARCH_BM=m
1090CONFIG_TEXTSEARCH_FSM=m 1128CONFIG_TEXTSEARCH_FSM=m
1129CONFIG_PLIST=y
diff --git a/arch/mips/configs/db1500_defconfig b/arch/mips/configs/db1500_defconfig
index 6f757d8a5a6c..8aea73fae7fb 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:59 2006 4# Thu Jul 6 10:03:56 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_DB1500=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_DB1500=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_DB1500=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 74CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
@@ -114,7 +118,10 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
116CONFIG_CPU_HAS_PREFETCH=y 120CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 121CONFIG_MIPS_MT_DISABLED=y
122# CONFIG_MIPS_MT_SMTC is not set
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_VPE_LOADER is not set
118CONFIG_64BIT_PHYS_ADDR=y 125CONFIG_64BIT_PHYS_ADDR=y
119CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
@@ -130,6 +137,7 @@ CONFIG_FLATMEM=y
130CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
131# CONFIG_SPARSEMEM_STATIC is not set 138# CONFIG_SPARSEMEM_STATIC is not set
132CONFIG_SPLIT_PTLOCK_CPUS=4 139CONFIG_SPLIT_PTLOCK_CPUS=4
140# CONFIG_RESOURCES_64BIT is not set
133# CONFIG_HZ_48 is not set 141# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 142# CONFIG_HZ_100 is not set
135# CONFIG_HZ_128 is not set 143# CONFIG_HZ_128 is not set
@@ -142,6 +150,7 @@ CONFIG_HZ=1000
142CONFIG_PREEMPT_NONE=y 150CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 151# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 152# CONFIG_PREEMPT is not set
153CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
145 154
146# 155#
147# Code maturity level options 156# Code maturity level options
@@ -173,14 +182,15 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 182CONFIG_BUG=y
174CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 186CONFIG_FUTEX=y
177CONFIG_EPOLL=y 187CONFIG_EPOLL=y
178CONFIG_SHMEM=y 188CONFIG_SHMEM=y
179CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
183CONFIG_OBSOLETE_INTERMODULE=y
184 194
185# 195#
186# Loadable module support 196# Loadable module support
@@ -283,6 +293,8 @@ CONFIG_IP_PNP_BOOTP=y
283# CONFIG_INET_IPCOMP is not set 293# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 294# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 295# CONFIG_INET_TUNNEL is not set
296CONFIG_INET_XFRM_MODE_TRANSPORT=m
297CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_DIAG=y 298CONFIG_INET_DIAG=y
287CONFIG_INET_TCP_DIAG=y 299CONFIG_INET_TCP_DIAG=y
288# CONFIG_TCP_CONG_ADVANCED is not set 300# CONFIG_TCP_CONG_ADVANCED is not set
@@ -295,6 +307,7 @@ CONFIG_TCP_CONG_BIC=y
295# CONFIG_IPV6 is not set 307# CONFIG_IPV6 is not set
296# CONFIG_INET6_XFRM_TUNNEL is not set 308# CONFIG_INET6_XFRM_TUNNEL is not set
297# CONFIG_INET6_TUNNEL is not set 309# CONFIG_INET6_TUNNEL is not set
310CONFIG_NETWORK_SECMARK=y
298CONFIG_NETFILTER=y 311CONFIG_NETFILTER=y
299# CONFIG_NETFILTER_DEBUG is not set 312# CONFIG_NETFILTER_DEBUG is not set
300 313
@@ -309,6 +322,7 @@ CONFIG_NETFILTER_XTABLES=m
309CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 322CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
310CONFIG_NETFILTER_XT_TARGET_MARK=m 323CONFIG_NETFILTER_XT_TARGET_MARK=m
311CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 324CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
325CONFIG_NETFILTER_XT_TARGET_SECMARK=m
312CONFIG_NETFILTER_XT_MATCH_COMMENT=m 326CONFIG_NETFILTER_XT_MATCH_COMMENT=m
313CONFIG_NETFILTER_XT_MATCH_DCCP=m 327CONFIG_NETFILTER_XT_MATCH_DCCP=m
314CONFIG_NETFILTER_XT_MATCH_ESP=m 328CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -319,8 +333,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
319CONFIG_NETFILTER_XT_MATCH_POLICY=m 333CONFIG_NETFILTER_XT_MATCH_POLICY=m
320CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 334CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
321CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 335CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
336CONFIG_NETFILTER_XT_MATCH_QUOTA=m
322CONFIG_NETFILTER_XT_MATCH_REALM=m 337CONFIG_NETFILTER_XT_MATCH_REALM=m
323CONFIG_NETFILTER_XT_MATCH_SCTP=m 338CONFIG_NETFILTER_XT_MATCH_SCTP=m
339CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
324CONFIG_NETFILTER_XT_MATCH_STRING=m 340CONFIG_NETFILTER_XT_MATCH_STRING=m
325CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 341CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
326 342
@@ -390,6 +406,7 @@ CONFIG_WIRELESS_EXT=y
390CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
392CONFIG_FW_LOADER=m 408CONFIG_FW_LOADER=m
409# CONFIG_SYS_HYPERVISOR is not set
393 410
394# 411#
395# Connector - unified userspace <-> kernelspace linker 412# Connector - unified userspace <-> kernelspace linker
@@ -576,7 +593,7 @@ CONFIG_NETDEVICES=y
576# 593#
577# PHY device support 594# PHY device support
578# 595#
579CONFIG_PHYLIB=m 596CONFIG_PHYLIB=y
580 597
581# 598#
582# MII PHY device drivers 599# MII PHY device drivers
@@ -586,6 +603,8 @@ CONFIG_DAVICOM_PHY=m
586CONFIG_QSEMI_PHY=m 603CONFIG_QSEMI_PHY=m
587CONFIG_LXT_PHY=m 604CONFIG_LXT_PHY=m
588CONFIG_CICADA_PHY=m 605CONFIG_CICADA_PHY=m
606CONFIG_VITESSE_PHY=m
607CONFIG_SMSC_PHY=m
589 608
590# 609#
591# Ethernet (10 or 100Mbit) 610# Ethernet (10 or 100Mbit)
@@ -630,6 +649,7 @@ CONFIG_MIPS_AU1X00_ENET=y
630# CONFIG_CHELSIO_T1 is not set 649# CONFIG_CHELSIO_T1 is not set
631# CONFIG_IXGB is not set 650# CONFIG_IXGB is not set
632# CONFIG_S2IO is not set 651# CONFIG_S2IO is not set
652# CONFIG_MYRI10GE is not set
633 653
634# 654#
635# Token Ring devices 655# Token Ring devices
@@ -753,6 +773,7 @@ CONFIG_LEGACY_PTY_COUNT=256
753# Watchdog Cards 773# Watchdog Cards
754# 774#
755# CONFIG_WATCHDOG is not set 775# CONFIG_WATCHDOG is not set
776# CONFIG_HW_RANDOM is not set
756# CONFIG_RTC is not set 777# CONFIG_RTC is not set
757# CONFIG_GEN_RTC is not set 778# CONFIG_GEN_RTC is not set
758# CONFIG_DTLK is not set 779# CONFIG_DTLK is not set
@@ -808,6 +829,7 @@ CONFIG_SYNCLINK_CS=m
808# Multimedia devices 829# Multimedia devices
809# 830#
810# CONFIG_VIDEO_DEV is not set 831# CONFIG_VIDEO_DEV is not set
832CONFIG_VIDEO_V4L2=y
811 833
812# 834#
813# Digital Video Broadcasting Devices 835# Digital Video Broadcasting Devices
@@ -818,6 +840,7 @@ CONFIG_SYNCLINK_CS=m
818# 840#
819# Graphics support 841# Graphics support
820# 842#
843# CONFIG_FIRMWARE_EDID is not set
821# CONFIG_FB is not set 844# CONFIG_FB is not set
822 845
823# 846#
@@ -873,6 +896,18 @@ CONFIG_SND_MTPAV=m
873# CONFIG_SND_CMIPCI is not set 896# CONFIG_SND_CMIPCI is not set
874# CONFIG_SND_CS4281 is not set 897# CONFIG_SND_CS4281 is not set
875# CONFIG_SND_CS46XX is not set 898# CONFIG_SND_CS46XX is not set
899# CONFIG_SND_DARLA20 is not set
900# CONFIG_SND_GINA20 is not set
901# CONFIG_SND_LAYLA20 is not set
902# CONFIG_SND_DARLA24 is not set
903# CONFIG_SND_GINA24 is not set
904# CONFIG_SND_LAYLA24 is not set
905# CONFIG_SND_MONA is not set
906# CONFIG_SND_MIA is not set
907# CONFIG_SND_ECHO3G is not set
908# CONFIG_SND_INDIGO is not set
909# CONFIG_SND_INDIGOIO is not set
910# CONFIG_SND_INDIGODJ is not set
876# CONFIG_SND_EMU10K1 is not set 911# CONFIG_SND_EMU10K1 is not set
877# CONFIG_SND_EMU10K1X is not set 912# CONFIG_SND_EMU10K1X is not set
878# CONFIG_SND_ENS1370 is not set 913# CONFIG_SND_ENS1370 is not set
@@ -916,6 +951,8 @@ CONFIG_SND_AU1X00=m
916# 951#
917# PCMCIA devices 952# PCMCIA devices
918# 953#
954# CONFIG_SND_VXPOCKET is not set
955# CONFIG_SND_PDAUDIOCF is not set
919 956
920# 957#
921# Open Sound System 958# Open Sound System
@@ -1030,10 +1067,12 @@ CONFIG_USB_MON=y
1030# CONFIG_USB_LEGOTOWER is not set 1067# CONFIG_USB_LEGOTOWER is not set
1031# CONFIG_USB_LCD is not set 1068# CONFIG_USB_LCD is not set
1032# CONFIG_USB_LED is not set 1069# CONFIG_USB_LED is not set
1070# CONFIG_USB_CY7C63 is not set
1033# CONFIG_USB_CYTHERM is not set 1071# CONFIG_USB_CYTHERM is not set
1034# CONFIG_USB_PHIDGETKIT is not set 1072# CONFIG_USB_PHIDGETKIT is not set
1035# CONFIG_USB_PHIDGETSERVO is not set 1073# CONFIG_USB_PHIDGETSERVO is not set
1036# CONFIG_USB_IDMOUSE is not set 1074# CONFIG_USB_IDMOUSE is not set
1075# CONFIG_USB_APPLEDISPLAY is not set
1037CONFIG_USB_LD=m 1076CONFIG_USB_LD=m
1038 1077
1039# 1078#
@@ -1078,6 +1117,19 @@ CONFIG_USB_LD=m
1078# CONFIG_RTC_CLASS is not set 1117# CONFIG_RTC_CLASS is not set
1079 1118
1080# 1119#
1120# DMA Engine support
1121#
1122# CONFIG_DMA_ENGINE is not set
1123
1124#
1125# DMA Clients
1126#
1127
1128#
1129# DMA Devices
1130#
1131
1132#
1081# File systems 1133# File systems
1082# 1134#
1083CONFIG_EXT2_FS=y 1135CONFIG_EXT2_FS=y
@@ -1105,6 +1157,7 @@ CONFIG_FS_POSIX_ACL=y
1105# CONFIG_MINIX_FS is not set 1157# CONFIG_MINIX_FS is not set
1106# CONFIG_ROMFS_FS is not set 1158# CONFIG_ROMFS_FS is not set
1107CONFIG_INOTIFY=y 1159CONFIG_INOTIFY=y
1160CONFIG_INOTIFY_USER=y
1108# CONFIG_QUOTA is not set 1161# CONFIG_QUOTA is not set
1109CONFIG_DNOTIFY=y 1162CONFIG_DNOTIFY=y
1110CONFIG_AUTOFS_FS=m 1163CONFIG_AUTOFS_FS=m
@@ -1174,6 +1227,7 @@ CONFIG_SUNRPC=y
1174CONFIG_SMB_FS=m 1227CONFIG_SMB_FS=m
1175# CONFIG_SMB_NLS_DEFAULT is not set 1228# CONFIG_SMB_NLS_DEFAULT is not set
1176# CONFIG_CIFS is not set 1229# CONFIG_CIFS is not set
1230# CONFIG_CIFS_DEBUG2 is not set
1177# CONFIG_NCP_FS is not set 1231# CONFIG_NCP_FS is not set
1178# CONFIG_CODA_FS is not set 1232# CONFIG_CODA_FS is not set
1179# CONFIG_AFS_FS is not set 1233# CONFIG_AFS_FS is not set
@@ -1239,6 +1293,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1239# 1293#
1240# CONFIG_PRINTK_TIME is not set 1294# CONFIG_PRINTK_TIME is not set
1241# CONFIG_MAGIC_SYSRQ is not set 1295# CONFIG_MAGIC_SYSRQ is not set
1296# CONFIG_UNUSED_SYMBOLS is not set
1242# CONFIG_DEBUG_KERNEL is not set 1297# CONFIG_DEBUG_KERNEL is not set
1243CONFIG_LOG_BUF_SHIFT=14 1298CONFIG_LOG_BUF_SHIFT=14
1244# CONFIG_DEBUG_FS is not set 1299# CONFIG_DEBUG_FS is not set
@@ -1298,3 +1353,4 @@ CONFIG_TEXTSEARCH=y
1298CONFIG_TEXTSEARCH_KMP=m 1353CONFIG_TEXTSEARCH_KMP=m
1299CONFIG_TEXTSEARCH_BM=m 1354CONFIG_TEXTSEARCH_BM=m
1300CONFIG_TEXTSEARCH_FSM=m 1355CONFIG_TEXTSEARCH_FSM=m
1356CONFIG_PLIST=y
diff --git a/arch/mips/configs/db1550_defconfig b/arch/mips/configs/db1550_defconfig
index da4c7e811bef..90ccb7359630 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:00 2006 4# Thu Jul 6 10:03:59 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21CONFIG_MIPS_DB1550=y 21CONFIG_MIPS_DB1550=y
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_DB1550=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_DB1550=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 74CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 124CONFIG_64BIT_PHYS_ADDR=y
118CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
@@ -129,6 +136,7 @@ CONFIG_FLATMEM=y
129CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
130# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
131CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
132# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
134# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -141,6 +149,7 @@ CONFIG_HZ=1000
141CONFIG_PREEMPT_NONE=y 149CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 151# CONFIG_PREEMPT is not set
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
144 153
145# 154#
146# Code maturity level options 155# Code maturity level options
@@ -172,14 +181,15 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
182CONFIG_OBSOLETE_INTERMODULE=y
183 193
184# 194#
185# Loadable module support 195# Loadable module support
@@ -282,6 +292,8 @@ CONFIG_IP_PNP_BOOTP=y
282# CONFIG_INET_IPCOMP is not set 292# CONFIG_INET_IPCOMP is not set
283# CONFIG_INET_XFRM_TUNNEL is not set 293# CONFIG_INET_XFRM_TUNNEL is not set
284# CONFIG_INET_TUNNEL is not set 294# CONFIG_INET_TUNNEL is not set
295CONFIG_INET_XFRM_MODE_TRANSPORT=m
296CONFIG_INET_XFRM_MODE_TUNNEL=m
285CONFIG_INET_DIAG=y 297CONFIG_INET_DIAG=y
286CONFIG_INET_TCP_DIAG=y 298CONFIG_INET_TCP_DIAG=y
287# CONFIG_TCP_CONG_ADVANCED is not set 299# CONFIG_TCP_CONG_ADVANCED is not set
@@ -294,6 +306,7 @@ CONFIG_TCP_CONG_BIC=y
294# CONFIG_IPV6 is not set 306# CONFIG_IPV6 is not set
295# CONFIG_INET6_XFRM_TUNNEL is not set 307# CONFIG_INET6_XFRM_TUNNEL is not set
296# CONFIG_INET6_TUNNEL is not set 308# CONFIG_INET6_TUNNEL is not set
309CONFIG_NETWORK_SECMARK=y
297CONFIG_NETFILTER=y 310CONFIG_NETFILTER=y
298# CONFIG_NETFILTER_DEBUG is not set 311# CONFIG_NETFILTER_DEBUG is not set
299 312
@@ -308,6 +321,7 @@ CONFIG_NETFILTER_XTABLES=m
308CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 321CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
309CONFIG_NETFILTER_XT_TARGET_MARK=m 322CONFIG_NETFILTER_XT_TARGET_MARK=m
310CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 323CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
324CONFIG_NETFILTER_XT_TARGET_SECMARK=m
311CONFIG_NETFILTER_XT_MATCH_COMMENT=m 325CONFIG_NETFILTER_XT_MATCH_COMMENT=m
312CONFIG_NETFILTER_XT_MATCH_DCCP=m 326CONFIG_NETFILTER_XT_MATCH_DCCP=m
313CONFIG_NETFILTER_XT_MATCH_ESP=m 327CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -318,8 +332,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
318CONFIG_NETFILTER_XT_MATCH_POLICY=m 332CONFIG_NETFILTER_XT_MATCH_POLICY=m
319CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 333CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
320CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 334CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
335CONFIG_NETFILTER_XT_MATCH_QUOTA=m
321CONFIG_NETFILTER_XT_MATCH_REALM=m 336CONFIG_NETFILTER_XT_MATCH_REALM=m
322CONFIG_NETFILTER_XT_MATCH_SCTP=m 337CONFIG_NETFILTER_XT_MATCH_SCTP=m
338CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
323CONFIG_NETFILTER_XT_MATCH_STRING=m 339CONFIG_NETFILTER_XT_MATCH_STRING=m
324CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 340CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
325 341
@@ -389,6 +405,7 @@ CONFIG_WIRELESS_EXT=y
389CONFIG_STANDALONE=y 405CONFIG_STANDALONE=y
390CONFIG_PREVENT_FIRMWARE_BUILD=y 406CONFIG_PREVENT_FIRMWARE_BUILD=y
391CONFIG_FW_LOADER=m 407CONFIG_FW_LOADER=m
408# CONFIG_SYS_HYPERVISOR is not set
392 409
393# 410#
394# Connector - unified userspace <-> kernelspace linker 411# Connector - unified userspace <-> kernelspace linker
@@ -470,6 +487,7 @@ CONFIG_MTD_ALCHEMY=y
470# 487#
471CONFIG_MTD_NAND=m 488CONFIG_MTD_NAND=m
472# CONFIG_MTD_NAND_VERIFY_WRITE is not set 489# CONFIG_MTD_NAND_VERIFY_WRITE is not set
490# CONFIG_MTD_NAND_ECC_SMC is not set
473CONFIG_MTD_NAND_IDS=m 491CONFIG_MTD_NAND_IDS=m
474CONFIG_MTD_NAND_AU1550=m 492CONFIG_MTD_NAND_AU1550=m
475# CONFIG_MTD_NAND_DISKONCHIP is not set 493# CONFIG_MTD_NAND_DISKONCHIP is not set
@@ -608,7 +626,7 @@ CONFIG_NETDEVICES=y
608# 626#
609# PHY device support 627# PHY device support
610# 628#
611CONFIG_PHYLIB=m 629CONFIG_PHYLIB=y
612 630
613# 631#
614# MII PHY device drivers 632# MII PHY device drivers
@@ -618,6 +636,8 @@ CONFIG_DAVICOM_PHY=m
618CONFIG_QSEMI_PHY=m 636CONFIG_QSEMI_PHY=m
619CONFIG_LXT_PHY=m 637CONFIG_LXT_PHY=m
620CONFIG_CICADA_PHY=m 638CONFIG_CICADA_PHY=m
639CONFIG_VITESSE_PHY=m
640CONFIG_SMSC_PHY=m
621 641
622# 642#
623# Ethernet (10 or 100Mbit) 643# Ethernet (10 or 100Mbit)
@@ -662,6 +682,7 @@ CONFIG_MIPS_AU1X00_ENET=y
662# CONFIG_CHELSIO_T1 is not set 682# CONFIG_CHELSIO_T1 is not set
663# CONFIG_IXGB is not set 683# CONFIG_IXGB is not set
664# CONFIG_S2IO is not set 684# CONFIG_S2IO is not set
685# CONFIG_MYRI10GE is not set
665 686
666# 687#
667# Token Ring devices 688# Token Ring devices
@@ -793,6 +814,7 @@ CONFIG_LEGACY_PTY_COUNT=256
793# Watchdog Cards 814# Watchdog Cards
794# 815#
795# CONFIG_WATCHDOG is not set 816# CONFIG_WATCHDOG is not set
817# CONFIG_HW_RANDOM is not set
796# CONFIG_RTC is not set 818# CONFIG_RTC is not set
797# CONFIG_GEN_RTC is not set 819# CONFIG_GEN_RTC is not set
798# CONFIG_DTLK is not set 820# CONFIG_DTLK is not set
@@ -848,6 +870,7 @@ CONFIG_SYNCLINK_CS=m
848# Multimedia devices 870# Multimedia devices
849# 871#
850# CONFIG_VIDEO_DEV is not set 872# CONFIG_VIDEO_DEV is not set
873CONFIG_VIDEO_V4L2=y
851 874
852# 875#
853# Digital Video Broadcasting Devices 876# Digital Video Broadcasting Devices
@@ -857,6 +880,7 @@ CONFIG_SYNCLINK_CS=m
857# 880#
858# Graphics support 881# Graphics support
859# 882#
883# CONFIG_FIRMWARE_EDID is not set
860# CONFIG_FB is not set 884# CONFIG_FB is not set
861 885
862# 886#
@@ -914,6 +938,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
914# CONFIG_RTC_CLASS is not set 938# CONFIG_RTC_CLASS is not set
915 939
916# 940#
941# DMA Engine support
942#
943# CONFIG_DMA_ENGINE is not set
944
945#
946# DMA Clients
947#
948
949#
950# DMA Devices
951#
952
953#
917# File systems 954# File systems
918# 955#
919CONFIG_EXT2_FS=y 956CONFIG_EXT2_FS=y
@@ -941,6 +978,7 @@ CONFIG_FS_POSIX_ACL=y
941# CONFIG_MINIX_FS is not set 978# CONFIG_MINIX_FS is not set
942# CONFIG_ROMFS_FS is not set 979# CONFIG_ROMFS_FS is not set
943CONFIG_INOTIFY=y 980CONFIG_INOTIFY=y
981CONFIG_INOTIFY_USER=y
944# CONFIG_QUOTA is not set 982# CONFIG_QUOTA is not set
945CONFIG_DNOTIFY=y 983CONFIG_DNOTIFY=y
946CONFIG_AUTOFS_FS=m 984CONFIG_AUTOFS_FS=m
@@ -1010,6 +1048,7 @@ CONFIG_SUNRPC=y
1010CONFIG_SMB_FS=m 1048CONFIG_SMB_FS=m
1011# CONFIG_SMB_NLS_DEFAULT is not set 1049# CONFIG_SMB_NLS_DEFAULT is not set
1012# CONFIG_CIFS is not set 1050# CONFIG_CIFS is not set
1051# CONFIG_CIFS_DEBUG2 is not set
1013# CONFIG_NCP_FS is not set 1052# CONFIG_NCP_FS is not set
1014# CONFIG_CODA_FS is not set 1053# CONFIG_CODA_FS is not set
1015# CONFIG_AFS_FS is not set 1054# CONFIG_AFS_FS is not set
@@ -1075,6 +1114,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1075# 1114#
1076# CONFIG_PRINTK_TIME is not set 1115# CONFIG_PRINTK_TIME is not set
1077# CONFIG_MAGIC_SYSRQ is not set 1116# CONFIG_MAGIC_SYSRQ is not set
1117# CONFIG_UNUSED_SYMBOLS is not set
1078# CONFIG_DEBUG_KERNEL is not set 1118# CONFIG_DEBUG_KERNEL is not set
1079CONFIG_LOG_BUF_SHIFT=14 1119CONFIG_LOG_BUF_SHIFT=14
1080# CONFIG_DEBUG_FS is not set 1120# CONFIG_DEBUG_FS is not set
@@ -1134,3 +1174,4 @@ CONFIG_TEXTSEARCH=y
1134CONFIG_TEXTSEARCH_KMP=m 1174CONFIG_TEXTSEARCH_KMP=m
1135CONFIG_TEXTSEARCH_BM=m 1175CONFIG_TEXTSEARCH_BM=m
1136CONFIG_TEXTSEARCH_FSM=m 1176CONFIG_TEXTSEARCH_FSM=m
1177CONFIG_PLIST=y
diff --git a/arch/mips/configs/ddb5477_defconfig b/arch/mips/configs/ddb5477_defconfig
index c1c6bfee970e..b598cf08f156 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:01 2006 4# Thu Jul 6 10:04:00 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_DDB5477=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71CONFIG_I8259=y 75CONFIG_I8259=y
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_8KB is not set 117# CONFIG_PAGE_SIZE_8KB is not set
114# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_CPU_HAS_LLSC=y 124CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 125CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 126CONFIG_GENERIC_HARDIRQS=y
@@ -127,6 +134,7 @@ CONFIG_FLATMEM=y
127CONFIG_FLAT_NODE_MEM_MAP=y 134CONFIG_FLAT_NODE_MEM_MAP=y
128# CONFIG_SPARSEMEM_STATIC is not set 135# CONFIG_SPARSEMEM_STATIC is not set
129CONFIG_SPLIT_PTLOCK_CPUS=4 136CONFIG_SPLIT_PTLOCK_CPUS=4
137# CONFIG_RESOURCES_64BIT is not set
130# CONFIG_HZ_48 is not set 138# CONFIG_HZ_48 is not set
131# CONFIG_HZ_100 is not set 139# CONFIG_HZ_100 is not set
132# CONFIG_HZ_128 is not set 140# CONFIG_HZ_128 is not set
@@ -139,6 +147,7 @@ CONFIG_HZ=1000
139CONFIG_PREEMPT_NONE=y 147CONFIG_PREEMPT_NONE=y
140# CONFIG_PREEMPT_VOLUNTARY is not set 148# CONFIG_PREEMPT_VOLUNTARY is not set
141# CONFIG_PREEMPT is not set 149# CONFIG_PREEMPT is not set
150CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
142 151
143# 152#
144# Code maturity level options 153# Code maturity level options
@@ -170,10 +179,12 @@ CONFIG_PRINTK=y
170CONFIG_BUG=y 179CONFIG_BUG=y
171CONFIG_ELF_CORE=y 180CONFIG_ELF_CORE=y
172CONFIG_BASE_FULL=y 181CONFIG_BASE_FULL=y
182CONFIG_RT_MUTEXES=y
173CONFIG_FUTEX=y 183CONFIG_FUTEX=y
174CONFIG_EPOLL=y 184CONFIG_EPOLL=y
175CONFIG_SHMEM=y 185CONFIG_SHMEM=y
176CONFIG_SLAB=y 186CONFIG_SLAB=y
187CONFIG_VM_EVENT_COUNTERS=y
177# CONFIG_TINY_SHMEM is not set 188# CONFIG_TINY_SHMEM is not set
178CONFIG_BASE_SMALL=0 189CONFIG_BASE_SMALL=0
179# CONFIG_SLOB is not set 190# CONFIG_SLOB is not set
@@ -259,6 +270,8 @@ CONFIG_IP_PNP_BOOTP=y
259# CONFIG_INET_IPCOMP is not set 270# CONFIG_INET_IPCOMP is not set
260# CONFIG_INET_XFRM_TUNNEL is not set 271# CONFIG_INET_XFRM_TUNNEL is not set
261# CONFIG_INET_TUNNEL is not set 272# CONFIG_INET_TUNNEL is not set
273CONFIG_INET_XFRM_MODE_TRANSPORT=y
274CONFIG_INET_XFRM_MODE_TUNNEL=y
262CONFIG_INET_DIAG=y 275CONFIG_INET_DIAG=y
263CONFIG_INET_TCP_DIAG=y 276CONFIG_INET_TCP_DIAG=y
264# CONFIG_TCP_CONG_ADVANCED is not set 277# CONFIG_TCP_CONG_ADVANCED is not set
@@ -266,6 +279,7 @@ CONFIG_TCP_CONG_BIC=y
266# CONFIG_IPV6 is not set 279# CONFIG_IPV6 is not set
267# CONFIG_INET6_XFRM_TUNNEL is not set 280# CONFIG_INET6_XFRM_TUNNEL is not set
268# CONFIG_INET6_TUNNEL is not set 281# CONFIG_INET6_TUNNEL is not set
282CONFIG_NETWORK_SECMARK=y
269# CONFIG_NETFILTER is not set 283# CONFIG_NETFILTER is not set
270 284
271# 285#
@@ -325,6 +339,7 @@ CONFIG_WIRELESS_EXT=y
325CONFIG_STANDALONE=y 339CONFIG_STANDALONE=y
326CONFIG_PREVENT_FIRMWARE_BUILD=y 340CONFIG_PREVENT_FIRMWARE_BUILD=y
327CONFIG_FW_LOADER=y 341CONFIG_FW_LOADER=y
342# CONFIG_SYS_HYPERVISOR is not set
328 343
329# 344#
330# Connector - unified userspace <-> kernelspace linker 345# Connector - unified userspace <-> kernelspace linker
@@ -422,6 +437,8 @@ CONFIG_DAVICOM_PHY=y
422CONFIG_QSEMI_PHY=y 437CONFIG_QSEMI_PHY=y
423CONFIG_LXT_PHY=y 438CONFIG_LXT_PHY=y
424CONFIG_CICADA_PHY=y 439CONFIG_CICADA_PHY=y
440CONFIG_VITESSE_PHY=y
441CONFIG_SMSC_PHY=y
425 442
426# 443#
427# Ethernet (10 or 100Mbit) 444# Ethernet (10 or 100Mbit)
@@ -484,6 +501,7 @@ CONFIG_PCNET32=y
484# CONFIG_CHELSIO_T1 is not set 501# CONFIG_CHELSIO_T1 is not set
485# CONFIG_IXGB is not set 502# CONFIG_IXGB is not set
486# CONFIG_S2IO is not set 503# CONFIG_S2IO is not set
504# CONFIG_MYRI10GE is not set
487 505
488# 506#
489# Token Ring devices 507# Token Ring devices
@@ -561,6 +579,7 @@ CONFIG_SERIO_RAW=y
561CONFIG_VT=y 579CONFIG_VT=y
562CONFIG_VT_CONSOLE=y 580CONFIG_VT_CONSOLE=y
563CONFIG_HW_CONSOLE=y 581CONFIG_HW_CONSOLE=y
582CONFIG_VT_HW_CONSOLE_BINDING=y
564# CONFIG_SERIAL_NONSTANDARD is not set 583# CONFIG_SERIAL_NONSTANDARD is not set
565 584
566# 585#
@@ -592,6 +611,7 @@ CONFIG_LEGACY_PTY_COUNT=256
592# Watchdog Cards 611# Watchdog Cards
593# 612#
594# CONFIG_WATCHDOG is not set 613# CONFIG_WATCHDOG is not set
614# CONFIG_HW_RANDOM is not set
595# CONFIG_RTC is not set 615# CONFIG_RTC is not set
596# CONFIG_GEN_RTC is not set 616# CONFIG_GEN_RTC is not set
597# CONFIG_DTLK is not set 617# CONFIG_DTLK is not set
@@ -640,6 +660,7 @@ CONFIG_LEGACY_PTY_COUNT=256
640# Multimedia devices 660# Multimedia devices
641# 661#
642# CONFIG_VIDEO_DEV is not set 662# CONFIG_VIDEO_DEV is not set
663CONFIG_VIDEO_V4L2=y
643 664
644# 665#
645# Digital Video Broadcasting Devices 666# Digital Video Broadcasting Devices
@@ -649,6 +670,7 @@ CONFIG_LEGACY_PTY_COUNT=256
649# 670#
650# Graphics support 671# Graphics support
651# 672#
673# CONFIG_FIRMWARE_EDID is not set
652# CONFIG_FB is not set 674# CONFIG_FB is not set
653 675
654# 676#
@@ -712,6 +734,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
712# CONFIG_RTC_CLASS is not set 734# CONFIG_RTC_CLASS is not set
713 735
714# 736#
737# DMA Engine support
738#
739# CONFIG_DMA_ENGINE is not set
740
741#
742# DMA Clients
743#
744
745#
746# DMA Devices
747#
748
749#
715# File systems 750# File systems
716# 751#
717CONFIG_EXT2_FS=y 752CONFIG_EXT2_FS=y
@@ -726,6 +761,7 @@ CONFIG_EXT2_FS=y
726# CONFIG_MINIX_FS is not set 761# CONFIG_MINIX_FS is not set
727# CONFIG_ROMFS_FS is not set 762# CONFIG_ROMFS_FS is not set
728CONFIG_INOTIFY=y 763CONFIG_INOTIFY=y
764CONFIG_INOTIFY_USER=y
729# CONFIG_QUOTA is not set 765# CONFIG_QUOTA is not set
730CONFIG_DNOTIFY=y 766CONFIG_DNOTIFY=y
731CONFIG_AUTOFS_FS=y 767CONFIG_AUTOFS_FS=y
@@ -792,6 +828,7 @@ CONFIG_SUNRPC=y
792# CONFIG_RPCSEC_GSS_SPKM3 is not set 828# CONFIG_RPCSEC_GSS_SPKM3 is not set
793# CONFIG_SMB_FS is not set 829# CONFIG_SMB_FS is not set
794# CONFIG_CIFS is not set 830# CONFIG_CIFS is not set
831# CONFIG_CIFS_DEBUG2 is not set
795# CONFIG_NCP_FS is not set 832# CONFIG_NCP_FS is not set
796# CONFIG_CODA_FS is not set 833# CONFIG_CODA_FS is not set
797# CONFIG_AFS_FS is not set 834# CONFIG_AFS_FS is not set
@@ -818,6 +855,7 @@ CONFIG_MSDOS_PARTITION=y
818# 855#
819# CONFIG_PRINTK_TIME is not set 856# CONFIG_PRINTK_TIME is not set
820# CONFIG_MAGIC_SYSRQ is not set 857# CONFIG_MAGIC_SYSRQ is not set
858# CONFIG_UNUSED_SYMBOLS is not set
821# CONFIG_DEBUG_KERNEL is not set 859# CONFIG_DEBUG_KERNEL is not set
822CONFIG_LOG_BUF_SHIFT=14 860CONFIG_LOG_BUF_SHIFT=14
823# CONFIG_DEBUG_FS is not set 861# CONFIG_DEBUG_FS is not set
@@ -859,7 +897,6 @@ CONFIG_CRYPTO_ANUBIS=y
859CONFIG_CRYPTO_DEFLATE=y 897CONFIG_CRYPTO_DEFLATE=y
860CONFIG_CRYPTO_MICHAEL_MIC=y 898CONFIG_CRYPTO_MICHAEL_MIC=y
861CONFIG_CRYPTO_CRC32C=y 899CONFIG_CRYPTO_CRC32C=y
862# CONFIG_CRYPTO_TEST is not set
863 900
864# 901#
865# Hardware crypto devices 902# Hardware crypto devices
@@ -874,3 +911,4 @@ CONFIG_CRC32=y
874CONFIG_LIBCRC32C=y 911CONFIG_LIBCRC32C=y
875CONFIG_ZLIB_INFLATE=y 912CONFIG_ZLIB_INFLATE=y
876CONFIG_ZLIB_DEFLATE=y 913CONFIG_ZLIB_DEFLATE=y
914CONFIG_PLIST=y
diff --git a/arch/mips/configs/decstation_defconfig b/arch/mips/configs/decstation_defconfig
index d5d0d3faae94..597150b14077 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:01 2006 4# Thu Jul 6 10:04:01 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25CONFIG_MACH_DECSTATION=y 26CONFIG_MACH_DECSTATION=y
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MACH_DECSTATION=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MACH_DECSTATION=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71# CONFIG_CPU_BIG_ENDIAN is not set 75# CONFIG_CPU_BIG_ENDIAN is not set
@@ -112,7 +116,10 @@ CONFIG_PAGE_SIZE_4KB=y
112# CONFIG_PAGE_SIZE_8KB is not set 116# CONFIG_PAGE_SIZE_8KB is not set
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115# CONFIG_MIPS_MT is not set 119CONFIG_MIPS_MT_DISABLED=y
120# CONFIG_MIPS_MT_SMTC is not set
121# CONFIG_MIPS_MT_SMP is not set
122# CONFIG_MIPS_VPE_LOADER is not set
116CONFIG_CPU_HAS_WB=y 123CONFIG_CPU_HAS_WB=y
117CONFIG_GENERIC_HARDIRQS=y 124CONFIG_GENERIC_HARDIRQS=y
118CONFIG_GENERIC_IRQ_PROBE=y 125CONFIG_GENERIC_IRQ_PROBE=y
@@ -126,6 +133,7 @@ CONFIG_FLATMEM=y
126CONFIG_FLAT_NODE_MEM_MAP=y 133CONFIG_FLAT_NODE_MEM_MAP=y
127# CONFIG_SPARSEMEM_STATIC is not set 134# CONFIG_SPARSEMEM_STATIC is not set
128CONFIG_SPLIT_PTLOCK_CPUS=4 135CONFIG_SPLIT_PTLOCK_CPUS=4
136# CONFIG_RESOURCES_64BIT is not set
129# CONFIG_HZ_48 is not set 137# CONFIG_HZ_48 is not set
130# CONFIG_HZ_100 is not set 138# CONFIG_HZ_100 is not set
131CONFIG_HZ_128=y 139CONFIG_HZ_128=y
@@ -140,6 +148,7 @@ CONFIG_HZ=128
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -172,10 +181,12 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
@@ -244,6 +255,8 @@ CONFIG_NET=y
244CONFIG_PACKET=y 255CONFIG_PACKET=y
245CONFIG_PACKET_MMAP=y 256CONFIG_PACKET_MMAP=y
246CONFIG_UNIX=y 257CONFIG_UNIX=y
258CONFIG_XFRM=y
259# CONFIG_XFRM_USER is not set
247# CONFIG_NET_KEY is not set 260# CONFIG_NET_KEY is not set
248CONFIG_INET=y 261CONFIG_INET=y
249# CONFIG_IP_MULTICAST is not set 262# CONFIG_IP_MULTICAST is not set
@@ -262,6 +275,8 @@ CONFIG_IP_PNP_BOOTP=y
262# CONFIG_INET_IPCOMP is not set 275# CONFIG_INET_IPCOMP is not set
263# CONFIG_INET_XFRM_TUNNEL is not set 276# CONFIG_INET_XFRM_TUNNEL is not set
264# CONFIG_INET_TUNNEL is not set 277# CONFIG_INET_TUNNEL is not set
278CONFIG_INET_XFRM_MODE_TRANSPORT=m
279CONFIG_INET_XFRM_MODE_TUNNEL=m
265CONFIG_INET_DIAG=y 280CONFIG_INET_DIAG=y
266CONFIG_INET_TCP_DIAG=y 281CONFIG_INET_TCP_DIAG=y
267# CONFIG_TCP_CONG_ADVANCED is not set 282# CONFIG_TCP_CONG_ADVANCED is not set
@@ -269,6 +284,7 @@ CONFIG_TCP_CONG_BIC=y
269# CONFIG_IPV6 is not set 284# CONFIG_IPV6 is not set
270# CONFIG_INET6_XFRM_TUNNEL is not set 285# CONFIG_INET6_XFRM_TUNNEL is not set
271# CONFIG_INET6_TUNNEL is not set 286# CONFIG_INET6_TUNNEL is not set
287CONFIG_NETWORK_SECMARK=y
272# CONFIG_NETFILTER is not set 288# CONFIG_NETFILTER is not set
273 289
274# 290#
@@ -329,6 +345,7 @@ CONFIG_STANDALONE=y
329CONFIG_PREVENT_FIRMWARE_BUILD=y 345CONFIG_PREVENT_FIRMWARE_BUILD=y
330# CONFIG_FW_LOADER is not set 346# CONFIG_FW_LOADER is not set
331# CONFIG_DEBUG_DRIVER is not set 347# CONFIG_DEBUG_DRIVER is not set
348# CONFIG_SYS_HYPERVISOR is not set
332 349
333# 350#
334# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -448,6 +465,8 @@ CONFIG_DAVICOM_PHY=m
448CONFIG_QSEMI_PHY=m 465CONFIG_QSEMI_PHY=m
449CONFIG_LXT_PHY=m 466CONFIG_LXT_PHY=m
450CONFIG_CICADA_PHY=m 467CONFIG_CICADA_PHY=m
468CONFIG_VITESSE_PHY=m
469CONFIG_SMSC_PHY=m
451 470
452# 471#
453# Ethernet (10 or 100Mbit) 472# Ethernet (10 or 100Mbit)
@@ -537,6 +556,7 @@ CONFIG_LEGACY_PTY_COUNT=256
537# Watchdog Cards 556# Watchdog Cards
538# 557#
539# CONFIG_WATCHDOG is not set 558# CONFIG_WATCHDOG is not set
559# CONFIG_HW_RANDOM is not set
540CONFIG_RTC=y 560CONFIG_RTC=y
541# CONFIG_DTLK is not set 561# CONFIG_DTLK is not set
542# CONFIG_R3964 is not set 562# CONFIG_R3964 is not set
@@ -582,6 +602,7 @@ CONFIG_RTC=y
582# Multimedia devices 602# Multimedia devices
583# 603#
584# CONFIG_VIDEO_DEV is not set 604# CONFIG_VIDEO_DEV is not set
605CONFIG_VIDEO_V4L2=y
585 606
586# 607#
587# Digital Video Broadcasting Devices 608# Digital Video Broadcasting Devices
@@ -591,12 +612,13 @@ CONFIG_RTC=y
591# 612#
592# Graphics support 613# Graphics support
593# 614#
615# CONFIG_FIRMWARE_EDID is not set
594CONFIG_FB=y 616CONFIG_FB=y
595CONFIG_FB_CFB_FILLRECT=y 617CONFIG_FB_CFB_FILLRECT=y
596CONFIG_FB_CFB_COPYAREA=y 618CONFIG_FB_CFB_COPYAREA=y
597CONFIG_FB_CFB_IMAGEBLIT=y 619CONFIG_FB_CFB_IMAGEBLIT=y
598# CONFIG_FB_MACMODES is not set 620# CONFIG_FB_MACMODES is not set
599CONFIG_FB_FIRMWARE_EDID=y 621# CONFIG_FB_BACKLIGHT is not set
600# CONFIG_FB_MODE_HELPERS is not set 622# CONFIG_FB_MODE_HELPERS is not set
601# CONFIG_FB_TILEBLITTING is not set 623# CONFIG_FB_TILEBLITTING is not set
602# CONFIG_FB_S1D13XXX is not set 624# CONFIG_FB_S1D13XXX is not set
@@ -669,6 +691,19 @@ CONFIG_LOGO_DEC_CLUT224=y
669# CONFIG_RTC_CLASS is not set 691# CONFIG_RTC_CLASS is not set
670 692
671# 693#
694# DMA Engine support
695#
696# CONFIG_DMA_ENGINE is not set
697
698#
699# DMA Clients
700#
701
702#
703# DMA Devices
704#
705
706#
672# File systems 707# File systems
673# 708#
674CONFIG_EXT2_FS=y 709CONFIG_EXT2_FS=y
@@ -686,6 +721,7 @@ CONFIG_FS_POSIX_ACL=y
686# CONFIG_MINIX_FS is not set 721# CONFIG_MINIX_FS is not set
687# CONFIG_ROMFS_FS is not set 722# CONFIG_ROMFS_FS is not set
688CONFIG_INOTIFY=y 723CONFIG_INOTIFY=y
724CONFIG_INOTIFY_USER=y
689# CONFIG_QUOTA is not set 725# CONFIG_QUOTA is not set
690CONFIG_DNOTIFY=y 726CONFIG_DNOTIFY=y
691# CONFIG_AUTOFS_FS is not set 727# CONFIG_AUTOFS_FS is not set
@@ -732,6 +768,8 @@ CONFIG_RAMFS=y
732# CONFIG_QNX4FS_FS is not set 768# CONFIG_QNX4FS_FS is not set
733# CONFIG_SYSV_FS is not set 769# CONFIG_SYSV_FS is not set
734CONFIG_UFS_FS=y 770CONFIG_UFS_FS=y
771# CONFIG_UFS_FS_WRITE is not set
772# CONFIG_UFS_DEBUG is not set
735 773
736# 774#
737# Network File Systems 775# Network File Systems
@@ -751,6 +789,7 @@ CONFIG_SUNRPC=y
751# CONFIG_RPCSEC_GSS_SPKM3 is not set 789# CONFIG_RPCSEC_GSS_SPKM3 is not set
752# CONFIG_SMB_FS is not set 790# CONFIG_SMB_FS is not set
753# CONFIG_CIFS is not set 791# CONFIG_CIFS is not set
792# CONFIG_CIFS_DEBUG2 is not set
754# CONFIG_NCP_FS is not set 793# CONFIG_NCP_FS is not set
755# CONFIG_CODA_FS is not set 794# CONFIG_CODA_FS is not set
756# CONFIG_AFS_FS is not set 795# CONFIG_AFS_FS is not set
@@ -792,14 +831,19 @@ CONFIG_ULTRIX_PARTITION=y
792# 831#
793# CONFIG_PRINTK_TIME is not set 832# CONFIG_PRINTK_TIME is not set
794CONFIG_MAGIC_SYSRQ=y 833CONFIG_MAGIC_SYSRQ=y
834# CONFIG_UNUSED_SYMBOLS is not set
795CONFIG_DEBUG_KERNEL=y 835CONFIG_DEBUG_KERNEL=y
796CONFIG_LOG_BUF_SHIFT=14 836CONFIG_LOG_BUF_SHIFT=14
797CONFIG_DETECT_SOFTLOCKUP=y 837CONFIG_DETECT_SOFTLOCKUP=y
798# CONFIG_SCHEDSTATS is not set 838# CONFIG_SCHEDSTATS is not set
799# CONFIG_DEBUG_SLAB is not set 839# CONFIG_DEBUG_SLAB is not set
800CONFIG_DEBUG_MUTEXES=y 840# CONFIG_DEBUG_RT_MUTEXES is not set
841# CONFIG_RT_MUTEX_TESTER is not set
801# CONFIG_DEBUG_SPINLOCK is not set 842# CONFIG_DEBUG_SPINLOCK is not set
843CONFIG_DEBUG_MUTEXES=y
844# CONFIG_DEBUG_RWSEMS is not set
802# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 845# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
846# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
803# CONFIG_DEBUG_KOBJECT is not set 847# CONFIG_DEBUG_KOBJECT is not set
804# CONFIG_DEBUG_INFO is not set 848# CONFIG_DEBUG_INFO is not set
805# CONFIG_DEBUG_FS is not set 849# CONFIG_DEBUG_FS is not set
@@ -862,3 +906,4 @@ CONFIG_CRC32=y
862CONFIG_LIBCRC32C=m 906CONFIG_LIBCRC32C=m
863CONFIG_ZLIB_INFLATE=m 907CONFIG_ZLIB_INFLATE=m
864CONFIG_ZLIB_DEFLATE=m 908CONFIG_ZLIB_DEFLATE=m
909CONFIG_PLIST=y
diff --git a/arch/mips/configs/e55_defconfig b/arch/mips/configs/e55_defconfig
index 439677ba751c..fa2996bb4b7c 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:08:20 2006 4# Thu Jul 6 10:04:02 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -71,6 +74,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
71CONFIG_GENERIC_FIND_NEXT_BIT=y 74CONFIG_GENERIC_FIND_NEXT_BIT=y
72CONFIG_GENERIC_HWEIGHT=y 75CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 76CONFIG_GENERIC_CALIBRATE_DELAY=y
77CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
74CONFIG_DMA_NONCOHERENT=y 78CONFIG_DMA_NONCOHERENT=y
75CONFIG_DMA_NEED_PCI_MAP_STATE=y 79CONFIG_DMA_NEED_PCI_MAP_STATE=y
76# CONFIG_CPU_BIG_ENDIAN is not set 80# CONFIG_CPU_BIG_ENDIAN is not set
@@ -115,7 +119,10 @@ CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_8KB is not set 119# CONFIG_PAGE_SIZE_8KB is not set
116# CONFIG_PAGE_SIZE_16KB is not set 120# CONFIG_PAGE_SIZE_16KB is not set
117# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
118# CONFIG_MIPS_MT is not set 122CONFIG_MIPS_MT_DISABLED=y
123# CONFIG_MIPS_MT_SMTC is not set
124# CONFIG_MIPS_MT_SMP is not set
125# CONFIG_MIPS_VPE_LOADER is not set
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 127CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 128CONFIG_GENERIC_IRQ_PROBE=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -169,10 +178,12 @@ CONFIG_PRINTK=y
169CONFIG_BUG=y 178CONFIG_BUG=y
170CONFIG_ELF_CORE=y 179CONFIG_ELF_CORE=y
171CONFIG_BASE_FULL=y 180CONFIG_BASE_FULL=y
181CONFIG_RT_MUTEXES=y
172CONFIG_FUTEX=y 182CONFIG_FUTEX=y
173CONFIG_EPOLL=y 183CONFIG_EPOLL=y
174CONFIG_SHMEM=y 184CONFIG_SHMEM=y
175CONFIG_SLAB=y 185CONFIG_SLAB=y
186CONFIG_VM_EVENT_COUNTERS=y
176# CONFIG_TINY_SHMEM is not set 187# CONFIG_TINY_SHMEM is not set
177CONFIG_BASE_SMALL=0 188CONFIG_BASE_SMALL=0
178# CONFIG_SLOB is not set 189# CONFIG_SLOB is not set
@@ -244,6 +255,7 @@ CONFIG_TRAD_SIGNALS=y
244CONFIG_STANDALONE=y 255CONFIG_STANDALONE=y
245CONFIG_PREVENT_FIRMWARE_BUILD=y 256CONFIG_PREVENT_FIRMWARE_BUILD=y
246# CONFIG_FW_LOADER is not set 257# CONFIG_FW_LOADER is not set
258# CONFIG_SYS_HYPERVISOR is not set
247 259
248# 260#
249# Connector - unified userspace <-> kernelspace linker 261# Connector - unified userspace <-> kernelspace linker
@@ -378,6 +390,7 @@ CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240
378CONFIG_VT=y 390CONFIG_VT=y
379CONFIG_VT_CONSOLE=y 391CONFIG_VT_CONSOLE=y
380CONFIG_HW_CONSOLE=y 392CONFIG_HW_CONSOLE=y
393CONFIG_VT_HW_CONSOLE_BINDING=y
381# CONFIG_SERIAL_NONSTANDARD is not set 394# CONFIG_SERIAL_NONSTANDARD is not set
382 395
383# 396#
@@ -418,6 +431,7 @@ CONFIG_WATCHDOG=y
418# CONFIG_PCWATCHDOG is not set 431# CONFIG_PCWATCHDOG is not set
419# CONFIG_MIXCOMWD is not set 432# CONFIG_MIXCOMWD is not set
420# CONFIG_WDT is not set 433# CONFIG_WDT is not set
434# CONFIG_HW_RANDOM is not set
421# CONFIG_RTC is not set 435# CONFIG_RTC is not set
422# CONFIG_GEN_RTC is not set 436# CONFIG_GEN_RTC is not set
423# CONFIG_DTLK is not set 437# CONFIG_DTLK is not set
@@ -449,7 +463,6 @@ CONFIG_GPIO_VR41XX=y
449# 463#
450# Dallas's 1-wire bus 464# Dallas's 1-wire bus
451# 465#
452# CONFIG_W1 is not set
453 466
454# 467#
455# Hardware Monitoring support 468# Hardware Monitoring support
@@ -465,6 +478,7 @@ CONFIG_GPIO_VR41XX=y
465# Multimedia devices 478# Multimedia devices
466# 479#
467# CONFIG_VIDEO_DEV is not set 480# CONFIG_VIDEO_DEV is not set
481CONFIG_VIDEO_V4L2=y
468 482
469# 483#
470# Digital Video Broadcasting Devices 484# Digital Video Broadcasting Devices
@@ -473,6 +487,7 @@ CONFIG_GPIO_VR41XX=y
473# 487#
474# Graphics support 488# Graphics support
475# 489#
490# CONFIG_FIRMWARE_EDID is not set
476# CONFIG_FB is not set 491# CONFIG_FB is not set
477 492
478# 493#
@@ -535,6 +550,19 @@ CONFIG_DUMMY_CONSOLE=y
535# CONFIG_RTC_CLASS is not set 550# CONFIG_RTC_CLASS is not set
536 551
537# 552#
553# DMA Engine support
554#
555# CONFIG_DMA_ENGINE is not set
556
557#
558# DMA Clients
559#
560
561#
562# DMA Devices
563#
564
565#
538# File systems 566# File systems
539# 567#
540CONFIG_EXT2_FS=y 568CONFIG_EXT2_FS=y
@@ -548,6 +576,7 @@ CONFIG_EXT2_FS=y
548# CONFIG_MINIX_FS is not set 576# CONFIG_MINIX_FS is not set
549# CONFIG_ROMFS_FS is not set 577# CONFIG_ROMFS_FS is not set
550CONFIG_INOTIFY=y 578CONFIG_INOTIFY=y
579CONFIG_INOTIFY_USER=y
551# CONFIG_QUOTA is not set 580# CONFIG_QUOTA is not set
552CONFIG_DNOTIFY=y 581CONFIG_DNOTIFY=y
553# CONFIG_AUTOFS_FS is not set 582# CONFIG_AUTOFS_FS is not set
@@ -616,6 +645,7 @@ CONFIG_MSDOS_PARTITION=y
616# 645#
617# CONFIG_PRINTK_TIME is not set 646# CONFIG_PRINTK_TIME is not set
618# CONFIG_MAGIC_SYSRQ is not set 647# CONFIG_MAGIC_SYSRQ is not set
648# CONFIG_UNUSED_SYMBOLS is not set
619# CONFIG_DEBUG_KERNEL is not set 649# CONFIG_DEBUG_KERNEL is not set
620CONFIG_LOG_BUF_SHIFT=14 650CONFIG_LOG_BUF_SHIFT=14
621# CONFIG_DEBUG_FS is not set 651# CONFIG_DEBUG_FS is not set
@@ -644,3 +674,4 @@ CONFIG_CMDLINE="console=ttyVR0,19200 mem=8M"
644# CONFIG_CRC16 is not set 674# CONFIG_CRC16 is not set
645# CONFIG_CRC32 is not set 675# CONFIG_CRC32 is not set
646# CONFIG_LIBCRC32C is not set 676# CONFIG_LIBCRC32C is not set
677CONFIG_PLIST=y
diff --git a/arch/mips/configs/emma2rh_defconfig b/arch/mips/configs/emma2rh_defconfig
index 01f29f44f3e8..375b2ac24a49 100644
--- a/arch/mips/configs/emma2rh_defconfig
+++ b/arch/mips/configs/emma2rh_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.17 3# Linux kernel version: 2.6.18-rc1
4# Sun Jun 18 13:46:53 2006 4# Thu Jul 6 10:04:05 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -133,6 +134,7 @@ CONFIG_FLATMEM=y
133CONFIG_FLAT_NODE_MEM_MAP=y 134CONFIG_FLAT_NODE_MEM_MAP=y
134# CONFIG_SPARSEMEM_STATIC is not set 135# CONFIG_SPARSEMEM_STATIC is not set
135CONFIG_SPLIT_PTLOCK_CPUS=4 136CONFIG_SPLIT_PTLOCK_CPUS=4
137# CONFIG_RESOURCES_64BIT is not set
136# CONFIG_HZ_48 is not set 138# CONFIG_HZ_48 is not set
137# CONFIG_HZ_100 is not set 139# CONFIG_HZ_100 is not set
138# CONFIG_HZ_128 is not set 140# CONFIG_HZ_128 is not set
@@ -146,6 +148,7 @@ CONFIG_HZ=1000
146# CONFIG_PREEMPT_VOLUNTARY is not set 148# CONFIG_PREEMPT_VOLUNTARY is not set
147CONFIG_PREEMPT=y 149CONFIG_PREEMPT=y
148CONFIG_PREEMPT_BKL=y 150CONFIG_PREEMPT_BKL=y
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 152
150# 153#
151# Code maturity level options 154# Code maturity level options
@@ -180,14 +183,15 @@ CONFIG_PRINTK=y
180CONFIG_BUG=y 183CONFIG_BUG=y
181CONFIG_ELF_CORE=y 184CONFIG_ELF_CORE=y
182CONFIG_BASE_FULL=y 185CONFIG_BASE_FULL=y
186CONFIG_RT_MUTEXES=y
183CONFIG_FUTEX=y 187CONFIG_FUTEX=y
184CONFIG_EPOLL=y 188CONFIG_EPOLL=y
185CONFIG_SHMEM=y 189CONFIG_SHMEM=y
186CONFIG_SLAB=y 190CONFIG_SLAB=y
191CONFIG_VM_EVENT_COUNTERS=y
187# CONFIG_TINY_SHMEM is not set 192# CONFIG_TINY_SHMEM is not set
188CONFIG_BASE_SMALL=0 193CONFIG_BASE_SMALL=0
189# CONFIG_SLOB is not set 194# CONFIG_SLOB is not set
190CONFIG_OBSOLETE_INTERMODULE=y
191 195
192# 196#
193# Loadable module support 197# Loadable module support
@@ -283,6 +287,8 @@ CONFIG_SYN_COOKIES=y
283# CONFIG_INET_IPCOMP is not set 287# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 288# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 289# CONFIG_INET_TUNNEL is not set
290CONFIG_INET_XFRM_MODE_TRANSPORT=m
291CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_DIAG=y 292CONFIG_INET_DIAG=y
287CONFIG_INET_TCP_DIAG=y 293CONFIG_INET_TCP_DIAG=y
288# CONFIG_TCP_CONG_ADVANCED is not set 294# CONFIG_TCP_CONG_ADVANCED is not set
@@ -300,7 +306,10 @@ CONFIG_IPV6=m
300# CONFIG_INET6_IPCOMP is not set 306# CONFIG_INET6_IPCOMP is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set 307# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set 308# CONFIG_INET6_TUNNEL is not set
309CONFIG_INET6_XFRM_MODE_TRANSPORT=m
310CONFIG_INET6_XFRM_MODE_TUNNEL=m
303# CONFIG_IPV6_TUNNEL is not set 311# CONFIG_IPV6_TUNNEL is not set
312CONFIG_NETWORK_SECMARK=y
304CONFIG_NETFILTER=y 313CONFIG_NETFILTER=y
305# CONFIG_NETFILTER_DEBUG is not set 314# CONFIG_NETFILTER_DEBUG is not set
306 315
@@ -378,6 +387,7 @@ CONFIG_SCTP_HMAC_MD5=y
378CONFIG_STANDALONE=y 387CONFIG_STANDALONE=y
379CONFIG_PREVENT_FIRMWARE_BUILD=y 388CONFIG_PREVENT_FIRMWARE_BUILD=y
380# CONFIG_FW_LOADER is not set 389# CONFIG_FW_LOADER is not set
390# CONFIG_SYS_HYPERVISOR is not set
381 391
382# 392#
383# Connector - unified userspace <-> kernelspace linker 393# Connector - unified userspace <-> kernelspace linker
@@ -545,6 +555,7 @@ CONFIG_CHR_DEV_SG=m
545# CONFIG_MEGARAID_LEGACY is not set 555# CONFIG_MEGARAID_LEGACY is not set
546# CONFIG_MEGARAID_SAS is not set 556# CONFIG_MEGARAID_SAS is not set
547# CONFIG_SCSI_SATA is not set 557# CONFIG_SCSI_SATA is not set
558# CONFIG_SCSI_HPTIOP is not set
548# CONFIG_SCSI_DMX3191D is not set 559# CONFIG_SCSI_DMX3191D is not set
549# CONFIG_SCSI_FUTURE_DOMAIN is not set 560# CONFIG_SCSI_FUTURE_DOMAIN is not set
550# CONFIG_SCSI_IPS is not set 561# CONFIG_SCSI_IPS is not set
@@ -663,6 +674,7 @@ CONFIG_NATSEMI=y
663# CONFIG_CHELSIO_T1 is not set 674# CONFIG_CHELSIO_T1 is not set
664# CONFIG_IXGB is not set 675# CONFIG_IXGB is not set
665# CONFIG_S2IO is not set 676# CONFIG_S2IO is not set
677# CONFIG_MYRI10GE is not set
666 678
667# 679#
668# Token Ring devices 680# Token Ring devices
@@ -770,6 +782,7 @@ CONFIG_LEGACY_PTY_COUNT=256
770# Watchdog Cards 782# Watchdog Cards
771# 783#
772# CONFIG_WATCHDOG is not set 784# CONFIG_WATCHDOG is not set
785# CONFIG_HW_RANDOM is not set
773CONFIG_RTC=m 786CONFIG_RTC=m
774CONFIG_GEN_RTC=m 787CONFIG_GEN_RTC=m
775CONFIG_GEN_RTC_X=y 788CONFIG_GEN_RTC_X=y
@@ -814,6 +827,7 @@ CONFIG_I2C_CHARDEV=y
814# CONFIG_I2C_I810 is not set 827# CONFIG_I2C_I810 is not set
815# CONFIG_I2C_PIIX4 is not set 828# CONFIG_I2C_PIIX4 is not set
816# CONFIG_I2C_NFORCE2 is not set 829# CONFIG_I2C_NFORCE2 is not set
830# CONFIG_I2C_OCORES is not set
817# CONFIG_I2C_PARPORT_LIGHT is not set 831# CONFIG_I2C_PARPORT_LIGHT is not set
818# CONFIG_I2C_PROSAVAGE is not set 832# CONFIG_I2C_PROSAVAGE is not set
819# CONFIG_I2C_SAVAGE4 is not set 833# CONFIG_I2C_SAVAGE4 is not set
@@ -850,13 +864,13 @@ CONFIG_I2C_DEBUG_BUS=y
850# 864#
851# Dallas's 1-wire bus 865# Dallas's 1-wire bus
852# 866#
853# CONFIG_W1 is not set
854 867
855# 868#
856# Hardware Monitoring support 869# Hardware Monitoring support
857# 870#
858CONFIG_HWMON=y 871CONFIG_HWMON=y
859# CONFIG_HWMON_VID is not set 872# CONFIG_HWMON_VID is not set
873# CONFIG_SENSORS_ABITUGURU is not set
860# CONFIG_SENSORS_ADM1021 is not set 874# CONFIG_SENSORS_ADM1021 is not set
861# CONFIG_SENSORS_ADM1025 is not set 875# CONFIG_SENSORS_ADM1025 is not set
862# CONFIG_SENSORS_ADM1026 is not set 876# CONFIG_SENSORS_ADM1026 is not set
@@ -885,10 +899,12 @@ CONFIG_HWMON=y
885# CONFIG_SENSORS_PC87360 is not set 899# CONFIG_SENSORS_PC87360 is not set
886# CONFIG_SENSORS_SIS5595 is not set 900# CONFIG_SENSORS_SIS5595 is not set
887# CONFIG_SENSORS_SMSC47M1 is not set 901# CONFIG_SENSORS_SMSC47M1 is not set
902# CONFIG_SENSORS_SMSC47M192 is not set
888# CONFIG_SENSORS_SMSC47B397 is not set 903# CONFIG_SENSORS_SMSC47B397 is not set
889# CONFIG_SENSORS_VIA686A is not set 904# CONFIG_SENSORS_VIA686A is not set
890# CONFIG_SENSORS_VT8231 is not set 905# CONFIG_SENSORS_VT8231 is not set
891# CONFIG_SENSORS_W83781D is not set 906# CONFIG_SENSORS_W83781D is not set
907# CONFIG_SENSORS_W83791D is not set
892# CONFIG_SENSORS_W83792D is not set 908# CONFIG_SENSORS_W83792D is not set
893# CONFIG_SENSORS_W83L785TS is not set 909# CONFIG_SENSORS_W83L785TS is not set
894# CONFIG_SENSORS_W83627HF is not set 910# CONFIG_SENSORS_W83627HF is not set
@@ -913,6 +929,7 @@ CONFIG_VIDEO_V4L2=y
913# 929#
914# Graphics support 930# Graphics support
915# 931#
932# CONFIG_FIRMWARE_EDID is not set
916# CONFIG_FB is not set 933# CONFIG_FB is not set
917 934
918# 935#
@@ -970,6 +987,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
970# CONFIG_RTC_CLASS is not set 987# CONFIG_RTC_CLASS is not set
971 988
972# 989#
990# DMA Engine support
991#
992# CONFIG_DMA_ENGINE is not set
993
994#
995# DMA Clients
996#
997
998#
999# DMA Devices
1000#
1001
1002#
973# File systems 1003# File systems
974# 1004#
975CONFIG_EXT2_FS=y 1005CONFIG_EXT2_FS=y
@@ -988,7 +1018,6 @@ CONFIG_FS_MBCACHE=y
988# CONFIG_JFS_FS is not set 1018# CONFIG_JFS_FS is not set
989CONFIG_FS_POSIX_ACL=y 1019CONFIG_FS_POSIX_ACL=y
990CONFIG_XFS_FS=m 1020CONFIG_XFS_FS=m
991CONFIG_XFS_EXPORT=y
992# CONFIG_XFS_QUOTA is not set 1021# CONFIG_XFS_QUOTA is not set
993# CONFIG_XFS_SECURITY is not set 1022# CONFIG_XFS_SECURITY is not set
994# CONFIG_XFS_POSIX_ACL is not set 1023# CONFIG_XFS_POSIX_ACL is not set
@@ -997,6 +1026,7 @@ CONFIG_XFS_EXPORT=y
997# CONFIG_MINIX_FS is not set 1026# CONFIG_MINIX_FS is not set
998# CONFIG_ROMFS_FS is not set 1027# CONFIG_ROMFS_FS is not set
999CONFIG_INOTIFY=y 1028CONFIG_INOTIFY=y
1029CONFIG_INOTIFY_USER=y
1000# CONFIG_QUOTA is not set 1030# CONFIG_QUOTA is not set
1001# CONFIG_DNOTIFY is not set 1031# CONFIG_DNOTIFY is not set
1002# CONFIG_AUTOFS_FS is not set 1032# CONFIG_AUTOFS_FS is not set
@@ -1047,6 +1077,7 @@ CONFIG_JFFS2_FS=y
1047CONFIG_JFFS2_FS_DEBUG=0 1077CONFIG_JFFS2_FS_DEBUG=0
1048CONFIG_JFFS2_FS_WRITEBUFFER=y 1078CONFIG_JFFS2_FS_WRITEBUFFER=y
1049# CONFIG_JFFS2_SUMMARY is not set 1079# CONFIG_JFFS2_SUMMARY is not set
1080# CONFIG_JFFS2_FS_XATTR is not set
1050CONFIG_JFFS2_COMPRESSION_OPTIONS=y 1081CONFIG_JFFS2_COMPRESSION_OPTIONS=y
1051CONFIG_JFFS2_ZLIB=y 1082CONFIG_JFFS2_ZLIB=y
1052CONFIG_JFFS2_RTIME=y 1083CONFIG_JFFS2_RTIME=y
@@ -1086,6 +1117,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
1086CONFIG_SMB_FS=m 1117CONFIG_SMB_FS=m
1087# CONFIG_SMB_NLS_DEFAULT is not set 1118# CONFIG_SMB_NLS_DEFAULT is not set
1088# CONFIG_CIFS is not set 1119# CONFIG_CIFS is not set
1120# CONFIG_CIFS_DEBUG2 is not set
1089# CONFIG_NCP_FS is not set 1121# CONFIG_NCP_FS is not set
1090# CONFIG_CODA_FS is not set 1122# CONFIG_CODA_FS is not set
1091# CONFIG_AFS_FS is not set 1123# CONFIG_AFS_FS is not set
@@ -1151,6 +1183,7 @@ CONFIG_NLS_UTF8=m
1151# 1183#
1152# CONFIG_PRINTK_TIME is not set 1184# CONFIG_PRINTK_TIME is not set
1153# CONFIG_MAGIC_SYSRQ is not set 1185# CONFIG_MAGIC_SYSRQ is not set
1186# CONFIG_UNUSED_SYMBOLS is not set
1154# CONFIG_DEBUG_KERNEL is not set 1187# CONFIG_DEBUG_KERNEL is not set
1155CONFIG_LOG_BUF_SHIFT=14 1188CONFIG_LOG_BUF_SHIFT=14
1156# CONFIG_DEBUG_FS is not set 1189# CONFIG_DEBUG_FS is not set
@@ -1205,3 +1238,4 @@ CONFIG_CRC32=y
1205# CONFIG_LIBCRC32C is not set 1238# CONFIG_LIBCRC32C is not set
1206CONFIG_ZLIB_INFLATE=y 1239CONFIG_ZLIB_INFLATE=y
1207CONFIG_ZLIB_DEFLATE=y 1240CONFIG_ZLIB_DEFLATE=y
1241CONFIG_PLIST=y
diff --git a/arch/mips/configs/ev64120_defconfig b/arch/mips/configs/ev64120_defconfig
index 5248a1d8131d..b0afc118bd5c 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:02 2006 4# Thu Jul 6 10:04:05 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26CONFIG_MIPS_EV64120=y 27CONFIG_MIPS_EV64120=y
@@ -32,6 +33,7 @@ CONFIG_MIPS_EV64120=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_EV64120=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71CONFIG_CPU_BIG_ENDIAN=y 75CONFIG_CPU_BIG_ENDIAN=y
@@ -114,7 +118,10 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_8KB is not set 118# CONFIG_PAGE_SIZE_8KB is not set
115# CONFIG_PAGE_SIZE_16KB is not set 119# CONFIG_PAGE_SIZE_16KB is not set
116# CONFIG_PAGE_SIZE_64KB is not set 120# CONFIG_PAGE_SIZE_64KB is not set
117# CONFIG_MIPS_MT is not set 121CONFIG_MIPS_MT_DISABLED=y
122# CONFIG_MIPS_MT_SMTC is not set
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_VPE_LOADER is not set
118# CONFIG_64BIT_PHYS_ADDR is not set 125# CONFIG_64BIT_PHYS_ADDR is not set
119CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
@@ -129,6 +136,7 @@ CONFIG_FLATMEM=y
129CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
130# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
131CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
132# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
134# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -141,6 +149,7 @@ CONFIG_HZ=1000
141CONFIG_PREEMPT_NONE=y 149CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 151# CONFIG_PREEMPT is not set
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
144 153
145# 154#
146# Code maturity level options 155# Code maturity level options
@@ -172,10 +181,12 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
@@ -265,6 +276,8 @@ CONFIG_IP_PNP=y
265# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
266# CONFIG_INET_XFRM_TUNNEL is not set 277# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set 278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_XFRM_MODE_TRANSPORT=m
280CONFIG_INET_XFRM_MODE_TUNNEL=m
268CONFIG_INET_DIAG=y 281CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 282CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 283# CONFIG_TCP_CONG_ADVANCED is not set
@@ -272,6 +285,7 @@ CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
273# CONFIG_INET6_XFRM_TUNNEL is not set 286# CONFIG_INET6_XFRM_TUNNEL is not set
274# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETWORK_SECMARK=y
275# CONFIG_NETFILTER is not set 289# CONFIG_NETFILTER is not set
276 290
277# 291#
@@ -331,6 +345,7 @@ CONFIG_WIRELESS_EXT=y
331CONFIG_STANDALONE=y 345CONFIG_STANDALONE=y
332CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
333CONFIG_FW_LOADER=m 347CONFIG_FW_LOADER=m
348# CONFIG_SYS_HYPERVISOR is not set
334 349
335# 350#
336# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -427,6 +442,8 @@ CONFIG_DAVICOM_PHY=m
427CONFIG_QSEMI_PHY=m 442CONFIG_QSEMI_PHY=m
428CONFIG_LXT_PHY=m 443CONFIG_LXT_PHY=m
429CONFIG_CICADA_PHY=m 444CONFIG_CICADA_PHY=m
445CONFIG_VITESSE_PHY=m
446CONFIG_SMSC_PHY=m
430 447
431# 448#
432# Ethernet (10 or 100Mbit) 449# Ethernet (10 or 100Mbit)
@@ -469,6 +486,7 @@ CONFIG_NET_ETHERNET=y
469# CONFIG_CHELSIO_T1 is not set 486# CONFIG_CHELSIO_T1 is not set
470# CONFIG_IXGB is not set 487# CONFIG_IXGB is not set
471# CONFIG_S2IO is not set 488# CONFIG_S2IO is not set
489# CONFIG_MYRI10GE is not set
472 490
473# 491#
474# Token Ring devices 492# Token Ring devices
@@ -554,6 +572,7 @@ CONFIG_SERIO_RAW=m
554CONFIG_VT=y 572CONFIG_VT=y
555CONFIG_VT_CONSOLE=y 573CONFIG_VT_CONSOLE=y
556CONFIG_HW_CONSOLE=y 574CONFIG_HW_CONSOLE=y
575CONFIG_VT_HW_CONSOLE_BINDING=y
557# CONFIG_SERIAL_NONSTANDARD is not set 576# CONFIG_SERIAL_NONSTANDARD is not set
558 577
559# 578#
@@ -585,6 +604,7 @@ CONFIG_LEGACY_PTY_COUNT=256
585# Watchdog Cards 604# Watchdog Cards
586# 605#
587# CONFIG_WATCHDOG is not set 606# CONFIG_WATCHDOG is not set
607# CONFIG_HW_RANDOM is not set
588# CONFIG_RTC is not set 608# CONFIG_RTC is not set
589# CONFIG_GEN_RTC is not set 609# CONFIG_GEN_RTC is not set
590# CONFIG_DTLK is not set 610# CONFIG_DTLK is not set
@@ -633,6 +653,7 @@ CONFIG_LEGACY_PTY_COUNT=256
633# Multimedia devices 653# Multimedia devices
634# 654#
635# CONFIG_VIDEO_DEV is not set 655# CONFIG_VIDEO_DEV is not set
656CONFIG_VIDEO_V4L2=y
636 657
637# 658#
638# Digital Video Broadcasting Devices 659# Digital Video Broadcasting Devices
@@ -642,6 +663,7 @@ CONFIG_LEGACY_PTY_COUNT=256
642# 663#
643# Graphics support 664# Graphics support
644# 665#
666# CONFIG_FIRMWARE_EDID is not set
645# CONFIG_FB is not set 667# CONFIG_FB is not set
646 668
647# 669#
@@ -705,6 +727,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
705# CONFIG_RTC_CLASS is not set 727# CONFIG_RTC_CLASS is not set
706 728
707# 729#
730# DMA Engine support
731#
732# CONFIG_DMA_ENGINE is not set
733
734#
735# DMA Clients
736#
737
738#
739# DMA Devices
740#
741
742#
708# File systems 743# File systems
709# 744#
710CONFIG_EXT2_FS=y 745CONFIG_EXT2_FS=y
@@ -719,6 +754,7 @@ CONFIG_EXT2_FS=y
719# CONFIG_MINIX_FS is not set 754# CONFIG_MINIX_FS is not set
720# CONFIG_ROMFS_FS is not set 755# CONFIG_ROMFS_FS is not set
721CONFIG_INOTIFY=y 756CONFIG_INOTIFY=y
757CONFIG_INOTIFY_USER=y
722# CONFIG_QUOTA is not set 758# CONFIG_QUOTA is not set
723CONFIG_DNOTIFY=y 759CONFIG_DNOTIFY=y
724# CONFIG_AUTOFS_FS is not set 760# CONFIG_AUTOFS_FS is not set
@@ -782,6 +818,7 @@ CONFIG_SUNRPC=y
782# CONFIG_RPCSEC_GSS_SPKM3 is not set 818# CONFIG_RPCSEC_GSS_SPKM3 is not set
783# CONFIG_SMB_FS is not set 819# CONFIG_SMB_FS is not set
784# CONFIG_CIFS is not set 820# CONFIG_CIFS is not set
821# CONFIG_CIFS_DEBUG2 is not set
785# CONFIG_NCP_FS is not set 822# CONFIG_NCP_FS is not set
786# CONFIG_CODA_FS is not set 823# CONFIG_CODA_FS is not set
787# CONFIG_AFS_FS is not set 824# CONFIG_AFS_FS is not set
@@ -808,6 +845,7 @@ CONFIG_MSDOS_PARTITION=y
808# 845#
809# CONFIG_PRINTK_TIME is not set 846# CONFIG_PRINTK_TIME is not set
810# CONFIG_MAGIC_SYSRQ is not set 847# CONFIG_MAGIC_SYSRQ is not set
848# CONFIG_UNUSED_SYMBOLS is not set
811# CONFIG_DEBUG_KERNEL is not set 849# CONFIG_DEBUG_KERNEL is not set
812CONFIG_LOG_BUF_SHIFT=14 850CONFIG_LOG_BUF_SHIFT=14
813# CONFIG_DEBUG_FS is not set 851# CONFIG_DEBUG_FS is not set
@@ -863,3 +901,4 @@ CONFIG_CRC32=m
863CONFIG_LIBCRC32C=m 901CONFIG_LIBCRC32C=m
864CONFIG_ZLIB_INFLATE=m 902CONFIG_ZLIB_INFLATE=m
865CONFIG_ZLIB_DEFLATE=m 903CONFIG_ZLIB_DEFLATE=m
904CONFIG_PLIST=y
diff --git a/arch/mips/configs/ev96100_defconfig b/arch/mips/configs/ev96100_defconfig
index 4858491ce669..0bdc10f11610 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:03 2006 4# Thu Jul 6 10:04:05 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_EV96100=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_EV96100=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -117,7 +121,10 @@ CONFIG_PAGE_SIZE_4KB=y
117CONFIG_BOARD_SCACHE=y 121CONFIG_BOARD_SCACHE=y
118CONFIG_RM7000_CPU_SCACHE=y 122CONFIG_RM7000_CPU_SCACHE=y
119CONFIG_CPU_HAS_PREFETCH=y 123CONFIG_CPU_HAS_PREFETCH=y
120# CONFIG_MIPS_MT is not set 124CONFIG_MIPS_MT_DISABLED=y
125# CONFIG_MIPS_MT_SMTC is not set
126# CONFIG_MIPS_MT_SMP is not set
127# CONFIG_MIPS_VPE_LOADER is not set
121# CONFIG_64BIT_PHYS_ADDR is not set 128# CONFIG_64BIT_PHYS_ADDR is not set
122CONFIG_CPU_HAS_LLSC=y 129CONFIG_CPU_HAS_LLSC=y
123CONFIG_CPU_HAS_SYNC=y 130CONFIG_CPU_HAS_SYNC=y
@@ -133,6 +140,7 @@ CONFIG_FLATMEM=y
133CONFIG_FLAT_NODE_MEM_MAP=y 140CONFIG_FLAT_NODE_MEM_MAP=y
134# CONFIG_SPARSEMEM_STATIC is not set 141# CONFIG_SPARSEMEM_STATIC is not set
135CONFIG_SPLIT_PTLOCK_CPUS=4 142CONFIG_SPLIT_PTLOCK_CPUS=4
143# CONFIG_RESOURCES_64BIT is not set
136# CONFIG_HZ_48 is not set 144# CONFIG_HZ_48 is not set
137# CONFIG_HZ_100 is not set 145# CONFIG_HZ_100 is not set
138# CONFIG_HZ_128 is not set 146# CONFIG_HZ_128 is not set
@@ -145,6 +153,7 @@ CONFIG_HZ=1000
145CONFIG_PREEMPT_NONE=y 153CONFIG_PREEMPT_NONE=y
146# CONFIG_PREEMPT_VOLUNTARY is not set 154# CONFIG_PREEMPT_VOLUNTARY is not set
147# CONFIG_PREEMPT is not set 155# CONFIG_PREEMPT is not set
156CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
148 157
149# 158#
150# Code maturity level options 159# Code maturity level options
@@ -176,10 +185,12 @@ CONFIG_PRINTK=y
176CONFIG_BUG=y 185CONFIG_BUG=y
177CONFIG_ELF_CORE=y 186CONFIG_ELF_CORE=y
178CONFIG_BASE_FULL=y 187CONFIG_BASE_FULL=y
188CONFIG_RT_MUTEXES=y
179CONFIG_FUTEX=y 189CONFIG_FUTEX=y
180CONFIG_EPOLL=y 190CONFIG_EPOLL=y
181CONFIG_SHMEM=y 191CONFIG_SHMEM=y
182CONFIG_SLAB=y 192CONFIG_SLAB=y
193CONFIG_VM_EVENT_COUNTERS=y
183# CONFIG_TINY_SHMEM is not set 194# CONFIG_TINY_SHMEM is not set
184CONFIG_BASE_SMALL=0 195CONFIG_BASE_SMALL=0
185# CONFIG_SLOB is not set 196# CONFIG_SLOB is not set
@@ -268,6 +279,8 @@ CONFIG_IP_PNP_BOOTP=y
268# CONFIG_INET_IPCOMP is not set 279# CONFIG_INET_IPCOMP is not set
269# CONFIG_INET_XFRM_TUNNEL is not set 280# CONFIG_INET_XFRM_TUNNEL is not set
270# CONFIG_INET_TUNNEL is not set 281# CONFIG_INET_TUNNEL is not set
282CONFIG_INET_XFRM_MODE_TRANSPORT=m
283CONFIG_INET_XFRM_MODE_TUNNEL=m
271CONFIG_INET_DIAG=y 284CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 285CONFIG_INET_TCP_DIAG=y
273# CONFIG_TCP_CONG_ADVANCED is not set 286# CONFIG_TCP_CONG_ADVANCED is not set
@@ -275,6 +288,7 @@ CONFIG_TCP_CONG_BIC=y
275# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
276# CONFIG_INET6_XFRM_TUNNEL is not set 289# CONFIG_INET6_XFRM_TUNNEL is not set
277# CONFIG_INET6_TUNNEL is not set 290# CONFIG_INET6_TUNNEL is not set
291CONFIG_NETWORK_SECMARK=y
278# CONFIG_NETFILTER is not set 292# CONFIG_NETFILTER is not set
279 293
280# 294#
@@ -334,6 +348,7 @@ CONFIG_WIRELESS_EXT=y
334CONFIG_STANDALONE=y 348CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 349CONFIG_PREVENT_FIRMWARE_BUILD=y
336# CONFIG_FW_LOADER is not set 350# CONFIG_FW_LOADER is not set
351# CONFIG_SYS_HYPERVISOR is not set
337 352
338# 353#
339# Connector - unified userspace <-> kernelspace linker 354# Connector - unified userspace <-> kernelspace linker
@@ -418,6 +433,8 @@ CONFIG_DAVICOM_PHY=m
418CONFIG_QSEMI_PHY=m 433CONFIG_QSEMI_PHY=m
419CONFIG_LXT_PHY=m 434CONFIG_LXT_PHY=m
420CONFIG_CICADA_PHY=m 435CONFIG_CICADA_PHY=m
436CONFIG_VITESSE_PHY=m
437CONFIG_SMSC_PHY=m
421 438
422# 439#
423# Ethernet (10 or 100Mbit) 440# Ethernet (10 or 100Mbit)
@@ -507,6 +524,7 @@ CONFIG_SERIO_RAW=m
507CONFIG_VT=y 524CONFIG_VT=y
508CONFIG_VT_CONSOLE=y 525CONFIG_VT_CONSOLE=y
509CONFIG_HW_CONSOLE=y 526CONFIG_HW_CONSOLE=y
527CONFIG_VT_HW_CONSOLE_BINDING=y
510# CONFIG_SERIAL_NONSTANDARD is not set 528# CONFIG_SERIAL_NONSTANDARD is not set
511 529
512# 530#
@@ -536,6 +554,7 @@ CONFIG_LEGACY_PTY_COUNT=256
536# Watchdog Cards 554# Watchdog Cards
537# 555#
538# CONFIG_WATCHDOG is not set 556# CONFIG_WATCHDOG is not set
557# CONFIG_HW_RANDOM is not set
539# CONFIG_RTC is not set 558# CONFIG_RTC is not set
540# CONFIG_GEN_RTC is not set 559# CONFIG_GEN_RTC is not set
541# CONFIG_DTLK is not set 560# CONFIG_DTLK is not set
@@ -582,6 +601,7 @@ CONFIG_LEGACY_PTY_COUNT=256
582# Multimedia devices 601# Multimedia devices
583# 602#
584# CONFIG_VIDEO_DEV is not set 603# CONFIG_VIDEO_DEV is not set
604CONFIG_VIDEO_V4L2=y
585 605
586# 606#
587# Digital Video Broadcasting Devices 607# Digital Video Broadcasting Devices
@@ -591,6 +611,7 @@ CONFIG_LEGACY_PTY_COUNT=256
591# 611#
592# Graphics support 612# Graphics support
593# 613#
614# CONFIG_FIRMWARE_EDID is not set
594# CONFIG_FB is not set 615# CONFIG_FB is not set
595 616
596# 617#
@@ -652,6 +673,19 @@ CONFIG_DUMMY_CONSOLE=y
652# CONFIG_RTC_CLASS is not set 673# CONFIG_RTC_CLASS is not set
653 674
654# 675#
676# DMA Engine support
677#
678# CONFIG_DMA_ENGINE is not set
679
680#
681# DMA Clients
682#
683
684#
685# DMA Devices
686#
687
688#
655# File systems 689# File systems
656# 690#
657CONFIG_EXT2_FS=y 691CONFIG_EXT2_FS=y
@@ -666,6 +700,7 @@ CONFIG_EXT2_FS=y
666# CONFIG_MINIX_FS is not set 700# CONFIG_MINIX_FS is not set
667# CONFIG_ROMFS_FS is not set 701# CONFIG_ROMFS_FS is not set
668CONFIG_INOTIFY=y 702CONFIG_INOTIFY=y
703CONFIG_INOTIFY_USER=y
669# CONFIG_QUOTA is not set 704# CONFIG_QUOTA is not set
670CONFIG_DNOTIFY=y 705CONFIG_DNOTIFY=y
671# CONFIG_AUTOFS_FS is not set 706# CONFIG_AUTOFS_FS is not set
@@ -729,6 +764,7 @@ CONFIG_SUNRPC=y
729# CONFIG_RPCSEC_GSS_SPKM3 is not set 764# CONFIG_RPCSEC_GSS_SPKM3 is not set
730# CONFIG_SMB_FS is not set 765# CONFIG_SMB_FS is not set
731# CONFIG_CIFS is not set 766# CONFIG_CIFS is not set
767# CONFIG_CIFS_DEBUG2 is not set
732# CONFIG_NCP_FS is not set 768# CONFIG_NCP_FS is not set
733# CONFIG_CODA_FS is not set 769# CONFIG_CODA_FS is not set
734# CONFIG_AFS_FS is not set 770# CONFIG_AFS_FS is not set
@@ -755,6 +791,7 @@ CONFIG_MSDOS_PARTITION=y
755# 791#
756# CONFIG_PRINTK_TIME is not set 792# CONFIG_PRINTK_TIME is not set
757# CONFIG_MAGIC_SYSRQ is not set 793# CONFIG_MAGIC_SYSRQ is not set
794# CONFIG_UNUSED_SYMBOLS is not set
758# CONFIG_DEBUG_KERNEL is not set 795# CONFIG_DEBUG_KERNEL is not set
759CONFIG_LOG_BUF_SHIFT=14 796CONFIG_LOG_BUF_SHIFT=14
760# CONFIG_DEBUG_FS is not set 797# CONFIG_DEBUG_FS is not set
@@ -810,3 +847,4 @@ CONFIG_CRC32=m
810CONFIG_LIBCRC32C=m 847CONFIG_LIBCRC32C=m
811CONFIG_ZLIB_INFLATE=m 848CONFIG_ZLIB_INFLATE=m
812CONFIG_ZLIB_DEFLATE=m 849CONFIG_ZLIB_DEFLATE=m
850CONFIG_PLIST=y
diff --git a/arch/mips/configs/excite_defconfig b/arch/mips/configs/excite_defconfig
index f2ce64cb41a8..045ebd089893 100644
--- a/arch/mips/configs/excite_defconfig
+++ b/arch/mips/configs/excite_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.16-rc4 3# Linux kernel version: 2.6.18-rc1
4# Thu Feb 23 13:15:27 2006 4# Thu Jul 6 10:04:09 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,8 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24CONFIG_BASLER_EXCITE=y
25# CONFIG_BASLER_EXCITE_PROTOTYPE is not set
24# CONFIG_MIPS_COBALT is not set 26# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 27# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 28# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +34,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 34# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 35# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 36# CONFIG_MIPS_SEAD is not set
37# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 38# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 39# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 40# CONFIG_MOMENCO_OCELOT is not set
@@ -41,14 +44,11 @@ CONFIG_MIPS=y
41# CONFIG_MIPS_XXS1500 is not set 44# CONFIG_MIPS_XXS1500 is not set
42# CONFIG_PNX8550_V2PCI is not set 45# CONFIG_PNX8550_V2PCI is not set
43# CONFIG_PNX8550_JBS is not set 46# CONFIG_PNX8550_JBS is not set
44CONFIG_BASLER_EXCITE=y
45# CONFIG_BASLER_EXCITE_PROTOTYPE is not set
46# CONFIG_DDB5074 is not set
47# CONFIG_DDB5476 is not set
48# CONFIG_DDB5477 is not set 47# CONFIG_DDB5477 is not set
49# CONFIG_MACH_VR41XX is not set 48# CONFIG_MACH_VR41XX is not set
50# CONFIG_PMC_YOSEMITE is not set 49# CONFIG_PMC_YOSEMITE is not set
51# CONFIG_QEMU is not set 50# CONFIG_QEMU is not set
51# CONFIG_MARKEINS is not set
52# CONFIG_SGI_IP22 is not set 52# CONFIG_SGI_IP22 is not set
53# CONFIG_SGI_IP27 is not set 53# CONFIG_SGI_IP27 is not set
54# CONFIG_SGI_IP32 is not set 54# CONFIG_SGI_IP32 is not set
@@ -66,9 +66,11 @@ CONFIG_BASLER_EXCITE=y
66# CONFIG_TOSHIBA_RBTX4927 is not set 66# CONFIG_TOSHIBA_RBTX4927 is not set
67# CONFIG_TOSHIBA_RBTX4938 is not set 67# CONFIG_TOSHIBA_RBTX4938 is not set
68CONFIG_RWSEM_GENERIC_SPINLOCK=y 68CONFIG_RWSEM_GENERIC_SPINLOCK=y
69CONFIG_GENERIC_FIND_NEXT_BIT=y
70CONFIG_GENERIC_HWEIGHT=y
69CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
70CONFIG_DMA_COHERENT=y 73CONFIG_DMA_COHERENT=y
71CONFIG_SERIAL_RM9000=y
72CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
73# CONFIG_CPU_LITTLE_ENDIAN is not set 75# CONFIG_CPU_LITTLE_ENDIAN is not set
74CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y 76CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
@@ -115,9 +117,11 @@ CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
116# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
117CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
118# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
119# CONFIG_64BIT_PHYS_ADDR is not set 124# CONFIG_64BIT_PHYS_ADDR is not set
120# CONFIG_CPU_ADVANCED is not set
121CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
122CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
123CONFIG_GENERIC_HARDIRQS=y 127CONFIG_GENERIC_HARDIRQS=y
@@ -132,6 +136,7 @@ CONFIG_FLATMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
133# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
134CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
135# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -141,11 +146,11 @@ CONFIG_HZ_1000=y
141# CONFIG_HZ_1024 is not set 146# CONFIG_HZ_1024 is not set
142CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 147CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
143CONFIG_HZ=1000 148CONFIG_HZ=1000
144# CONFIG_SMP is not set
145# CONFIG_PREEMPT_NONE is not set 149# CONFIG_PREEMPT_NONE is not set
146# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
147CONFIG_PREEMPT=y 151CONFIG_PREEMPT=y
148CONFIG_PREEMPT_BKL=y 152CONFIG_PREEMPT_BKL=y
153CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 154
150# 155#
151# Code maturity level options 156# Code maturity level options
@@ -167,6 +172,7 @@ CONFIG_POSIX_MQUEUE=y
167CONFIG_SYSCTL=y 172CONFIG_SYSCTL=y
168# CONFIG_AUDIT is not set 173# CONFIG_AUDIT is not set
169# CONFIG_IKCONFIG is not set 174# CONFIG_IKCONFIG is not set
175# CONFIG_RELAY is not set
170CONFIG_INITRAMFS_SOURCE="" 176CONFIG_INITRAMFS_SOURCE=""
171CONFIG_CC_OPTIMIZE_FOR_SIZE=y 177CONFIG_CC_OPTIMIZE_FOR_SIZE=y
172CONFIG_EMBEDDED=y 178CONFIG_EMBEDDED=y
@@ -177,14 +183,12 @@ CONFIG_PRINTK=y
177CONFIG_BUG=y 183CONFIG_BUG=y
178CONFIG_ELF_CORE=y 184CONFIG_ELF_CORE=y
179CONFIG_BASE_FULL=y 185CONFIG_BASE_FULL=y
186CONFIG_RT_MUTEXES=y
180CONFIG_FUTEX=y 187CONFIG_FUTEX=y
181CONFIG_EPOLL=y 188CONFIG_EPOLL=y
182CONFIG_SHMEM=y 189CONFIG_SHMEM=y
183CONFIG_CC_ALIGN_FUNCTIONS=0
184CONFIG_CC_ALIGN_LABELS=0
185CONFIG_CC_ALIGN_LOOPS=0
186CONFIG_CC_ALIGN_JUMPS=0
187CONFIG_SLAB=y 190CONFIG_SLAB=y
191CONFIG_VM_EVENT_COUNTERS=y
188# CONFIG_TINY_SHMEM is not set 192# CONFIG_TINY_SHMEM is not set
189CONFIG_BASE_SMALL=0 193CONFIG_BASE_SMALL=0
190# CONFIG_SLOB is not set 194# CONFIG_SLOB is not set
@@ -195,7 +199,6 @@ CONFIG_BASE_SMALL=0
195CONFIG_MODULES=y 199CONFIG_MODULES=y
196CONFIG_MODULE_UNLOAD=y 200CONFIG_MODULE_UNLOAD=y
197# CONFIG_MODULE_FORCE_UNLOAD is not set 201# CONFIG_MODULE_FORCE_UNLOAD is not set
198CONFIG_OBSOLETE_MODPARM=y
199# CONFIG_MODVERSIONS is not set 202# CONFIG_MODVERSIONS is not set
200# CONFIG_MODULE_SRCVERSION_ALL is not set 203# CONFIG_MODULE_SRCVERSION_ALL is not set
201CONFIG_KMOD=y 204CONFIG_KMOD=y
@@ -204,6 +207,8 @@ CONFIG_KMOD=y
204# Block layer 207# Block layer
205# 208#
206# CONFIG_LBD is not set 209# CONFIG_LBD is not set
210# CONFIG_BLK_DEV_IO_TRACE is not set
211# CONFIG_LSF is not set
207 212
208# 213#
209# IO Schedulers 214# IO Schedulers
@@ -223,7 +228,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
223# 228#
224CONFIG_HW_HAS_PCI=y 229CONFIG_HW_HAS_PCI=y
225CONFIG_PCI=y 230CONFIG_PCI=y
226# CONFIG_PCI_LEGACY_PROC is not set
227CONFIG_MMU=y 231CONFIG_MMU=y
228 232
229# 233#
@@ -255,6 +259,8 @@ CONFIG_NET=y
255CONFIG_PACKET=y 259CONFIG_PACKET=y
256CONFIG_PACKET_MMAP=y 260CONFIG_PACKET_MMAP=y
257CONFIG_UNIX=y 261CONFIG_UNIX=y
262CONFIG_XFRM=y
263# CONFIG_XFRM_USER is not set
258# CONFIG_NET_KEY is not set 264# CONFIG_NET_KEY is not set
259CONFIG_INET=y 265CONFIG_INET=y
260# CONFIG_IP_MULTICAST is not set 266# CONFIG_IP_MULTICAST is not set
@@ -271,12 +277,18 @@ CONFIG_IP_PNP_DHCP=y
271# CONFIG_INET_AH is not set 277# CONFIG_INET_AH is not set
272# CONFIG_INET_ESP is not set 278# CONFIG_INET_ESP is not set
273# CONFIG_INET_IPCOMP is not set 279# CONFIG_INET_IPCOMP is not set
280# CONFIG_INET_XFRM_TUNNEL is not set
274# CONFIG_INET_TUNNEL is not set 281# CONFIG_INET_TUNNEL is not set
282CONFIG_INET_XFRM_MODE_TRANSPORT=m
283CONFIG_INET_XFRM_MODE_TUNNEL=m
275CONFIG_INET_DIAG=y 284CONFIG_INET_DIAG=y
276CONFIG_INET_TCP_DIAG=y 285CONFIG_INET_TCP_DIAG=y
277# CONFIG_TCP_CONG_ADVANCED is not set 286# CONFIG_TCP_CONG_ADVANCED is not set
278CONFIG_TCP_CONG_BIC=y 287CONFIG_TCP_CONG_BIC=y
279# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
289# CONFIG_INET6_XFRM_TUNNEL is not set
290# CONFIG_INET6_TUNNEL is not set
291CONFIG_NETWORK_SECMARK=y
280# CONFIG_NETFILTER is not set 292# CONFIG_NETFILTER is not set
281 293
282# 294#
@@ -330,6 +342,7 @@ CONFIG_TCP_CONG_BIC=y
330CONFIG_STANDALONE=y 342CONFIG_STANDALONE=y
331CONFIG_PREVENT_FIRMWARE_BUILD=y 343CONFIG_PREVENT_FIRMWARE_BUILD=y
332# CONFIG_FW_LOADER is not set 344# CONFIG_FW_LOADER is not set
345# CONFIG_SYS_HYPERVISOR is not set
333 346
334# 347#
335# Connector - unified userspace <-> kernelspace linker 348# Connector - unified userspace <-> kernelspace linker
@@ -389,7 +402,6 @@ CONFIG_MTD_CFI_I2=y
389# CONFIG_MTD_SLRAM is not set 402# CONFIG_MTD_SLRAM is not set
390# CONFIG_MTD_PHRAM is not set 403# CONFIG_MTD_PHRAM is not set
391# CONFIG_MTD_MTDRAM is not set 404# CONFIG_MTD_MTDRAM is not set
392# CONFIG_MTD_BLKMTD is not set
393# CONFIG_MTD_BLOCK2MTD is not set 405# CONFIG_MTD_BLOCK2MTD is not set
394 406
395# 407#
@@ -404,11 +416,9 @@ CONFIG_MTD_CFI_I2=y
404# 416#
405CONFIG_MTD_NAND=y 417CONFIG_MTD_NAND=y
406CONFIG_MTD_NAND_VERIFY_WRITE=y 418CONFIG_MTD_NAND_VERIFY_WRITE=y
419# CONFIG_MTD_NAND_ECC_SMC is not set
407CONFIG_MTD_NAND_IDS=y 420CONFIG_MTD_NAND_IDS=y
408# CONFIG_MTD_NAND_DISKONCHIP is not set 421# CONFIG_MTD_NAND_DISKONCHIP is not set
409CONFIG_MTD_NAND_BASLER_EXCITE=y
410# CONFIG_MTD_NAND_BASLER_EXCITE_RDNBY is not set
411# CONFIG_MTD_NAND_BASLER_EXCITE_PERF is not set
412# CONFIG_MTD_NAND_NANDSIM is not set 422# CONFIG_MTD_NAND_NANDSIM is not set
413 423
414# 424#
@@ -439,7 +449,7 @@ CONFIG_BLK_DEV_LOOP=m
439# CONFIG_BLK_DEV_SX8 is not set 449# CONFIG_BLK_DEV_SX8 is not set
440# CONFIG_BLK_DEV_UB is not set 450# CONFIG_BLK_DEV_UB is not set
441# CONFIG_BLK_DEV_RAM is not set 451# CONFIG_BLK_DEV_RAM is not set
442CONFIG_BLK_DEV_RAM_COUNT=16 452# CONFIG_BLK_DEV_INITRD is not set
443# CONFIG_CDROM_PKTCDVD is not set 453# CONFIG_CDROM_PKTCDVD is not set
444# CONFIG_ATA_OVER_ETH is not set 454# CONFIG_ATA_OVER_ETH is not set
445 455
@@ -496,6 +506,7 @@ CONFIG_BLK_DEV_SD=y
496# CONFIG_MEGARAID_LEGACY is not set 506# CONFIG_MEGARAID_LEGACY is not set
497# CONFIG_MEGARAID_SAS is not set 507# CONFIG_MEGARAID_SAS is not set
498# CONFIG_SCSI_SATA is not set 508# CONFIG_SCSI_SATA is not set
509# CONFIG_SCSI_HPTIOP is not set
499# CONFIG_SCSI_DMX3191D is not set 510# CONFIG_SCSI_DMX3191D is not set
500# CONFIG_SCSI_FUTURE_DOMAIN is not set 511# CONFIG_SCSI_FUTURE_DOMAIN is not set
501# CONFIG_SCSI_IPS is not set 512# CONFIG_SCSI_IPS is not set
@@ -503,7 +514,6 @@ CONFIG_BLK_DEV_SD=y
503# CONFIG_SCSI_INIA100 is not set 514# CONFIG_SCSI_INIA100 is not set
504# CONFIG_SCSI_SYM53C8XX_2 is not set 515# CONFIG_SCSI_SYM53C8XX_2 is not set
505# CONFIG_SCSI_IPR is not set 516# CONFIG_SCSI_IPR is not set
506# CONFIG_SCSI_QLOGIC_FC is not set
507# CONFIG_SCSI_QLOGIC_1280 is not set 517# CONFIG_SCSI_QLOGIC_1280 is not set
508# CONFIG_SCSI_QLA_FC is not set 518# CONFIG_SCSI_QLA_FC is not set
509# CONFIG_SCSI_LPFC is not set 519# CONFIG_SCSI_LPFC is not set
@@ -574,8 +584,6 @@ CONFIG_NETDEVICES=y
574# CONFIG_SK98LIN is not set 584# CONFIG_SK98LIN is not set
575# CONFIG_TIGON3 is not set 585# CONFIG_TIGON3 is not set
576# CONFIG_BNX2 is not set 586# CONFIG_BNX2 is not set
577# CONFIG_TITAN_GE is not set
578CONFIG_RM9K_GE=m
579 587
580# 588#
581# Ethernet (10000 Mbit) 589# Ethernet (10000 Mbit)
@@ -583,6 +591,7 @@ CONFIG_RM9K_GE=m
583# CONFIG_CHELSIO_T1 is not set 591# CONFIG_CHELSIO_T1 is not set
584# CONFIG_IXGB is not set 592# CONFIG_IXGB is not set
585# CONFIG_S2IO is not set 593# CONFIG_S2IO is not set
594# CONFIG_MYRI10GE is not set
586 595
587# 596#
588# Token Ring devices 597# Token Ring devices
@@ -656,6 +665,7 @@ CONFIG_INPUT_EVDEV=m
656CONFIG_VT=y 665CONFIG_VT=y
657CONFIG_VT_CONSOLE=y 666CONFIG_VT_CONSOLE=y
658CONFIG_HW_CONSOLE=y 667CONFIG_HW_CONSOLE=y
668CONFIG_VT_HW_CONSOLE_BINDING=y
659# CONFIG_SERIAL_NONSTANDARD is not set 669# CONFIG_SERIAL_NONSTANDARD is not set
660 670
661# 671#
@@ -663,6 +673,7 @@ CONFIG_HW_CONSOLE=y
663# 673#
664CONFIG_SERIAL_8250=y 674CONFIG_SERIAL_8250=y
665CONFIG_SERIAL_8250_CONSOLE=y 675CONFIG_SERIAL_8250_CONSOLE=y
676CONFIG_SERIAL_8250_PCI=y
666CONFIG_SERIAL_8250_NR_UARTS=2 677CONFIG_SERIAL_8250_NR_UARTS=2
667CONFIG_SERIAL_8250_RUNTIME_UARTS=2 678CONFIG_SERIAL_8250_RUNTIME_UARTS=2
668CONFIG_SERIAL_8250_EXTENDED=y 679CONFIG_SERIAL_8250_EXTENDED=y
@@ -695,7 +706,6 @@ CONFIG_WATCHDOG=y
695# Watchdog Device Drivers 706# Watchdog Device Drivers
696# 707#
697# CONFIG_SOFT_WATCHDOG is not set 708# CONFIG_SOFT_WATCHDOG is not set
698CONFIG_WDT_RM9K_GPI=m
699 709
700# 710#
701# PCI-based Watchdog Cards 711# PCI-based Watchdog Cards
@@ -707,6 +717,7 @@ CONFIG_WDT_RM9K_GPI=m
707# USB-based Watchdog Cards 717# USB-based Watchdog Cards
708# 718#
709# CONFIG_USBPCWATCHDOG is not set 719# CONFIG_USBPCWATCHDOG is not set
720# CONFIG_HW_RANDOM is not set
710# CONFIG_RTC is not set 721# CONFIG_RTC is not set
711# CONFIG_GEN_RTC is not set 722# CONFIG_GEN_RTC is not set
712# CONFIG_DTLK is not set 723# CONFIG_DTLK is not set
@@ -739,7 +750,6 @@ CONFIG_WDT_RM9K_GPI=m
739# 750#
740# Dallas's 1-wire bus 751# Dallas's 1-wire bus
741# 752#
742# CONFIG_W1 is not set
743 753
744# 754#
745# Hardware Monitoring support 755# Hardware Monitoring support
@@ -752,27 +762,27 @@ CONFIG_WDT_RM9K_GPI=m
752# 762#
753 763
754# 764#
755# Multimedia Capabilities Port drivers
756#
757
758#
759# Multimedia devices 765# Multimedia devices
760# 766#
761# CONFIG_VIDEO_DEV is not set 767# CONFIG_VIDEO_DEV is not set
768CONFIG_VIDEO_V4L2=y
762 769
763# 770#
764# Digital Video Broadcasting Devices 771# Digital Video Broadcasting Devices
765# 772#
766# CONFIG_DVB is not set 773# CONFIG_DVB is not set
774# CONFIG_USB_DABUSB is not set
767 775
768# 776#
769# Graphics support 777# Graphics support
770# 778#
779# CONFIG_FIRMWARE_EDID is not set
771CONFIG_FB=y 780CONFIG_FB=y
772CONFIG_FB_CFB_FILLRECT=y 781# CONFIG_FB_CFB_FILLRECT is not set
773CONFIG_FB_CFB_COPYAREA=y 782# CONFIG_FB_CFB_COPYAREA is not set
774CONFIG_FB_CFB_IMAGEBLIT=y 783# CONFIG_FB_CFB_IMAGEBLIT is not set
775# CONFIG_FB_MACMODES is not set 784# CONFIG_FB_MACMODES is not set
785# CONFIG_FB_BACKLIGHT is not set
776# CONFIG_FB_MODE_HELPERS is not set 786# CONFIG_FB_MODE_HELPERS is not set
777# CONFIG_FB_TILEBLITTING is not set 787# CONFIG_FB_TILEBLITTING is not set
778# CONFIG_FB_CIRRUS is not set 788# CONFIG_FB_CIRRUS is not set
@@ -784,7 +794,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
784# CONFIG_FB_NVIDIA is not set 794# CONFIG_FB_NVIDIA is not set
785# CONFIG_FB_RIVA is not set 795# CONFIG_FB_RIVA is not set
786# CONFIG_FB_MATROX is not set 796# CONFIG_FB_MATROX is not set
787# CONFIG_FB_RADEON_OLD is not set
788# CONFIG_FB_RADEON is not set 797# CONFIG_FB_RADEON is not set
789# CONFIG_FB_ATY128 is not set 798# CONFIG_FB_ATY128 is not set
790# CONFIG_FB_ATY is not set 799# CONFIG_FB_ATY is not set
@@ -797,7 +806,6 @@ CONFIG_FB_CFB_IMAGEBLIT=y
797# CONFIG_FB_SMIVGX is not set 806# CONFIG_FB_SMIVGX is not set
798# CONFIG_FB_TRIDENT is not set 807# CONFIG_FB_TRIDENT is not set
799# CONFIG_FB_VIRTUAL is not set 808# CONFIG_FB_VIRTUAL is not set
800CONFIG_FB_DD=y
801 809
802# 810#
803# Console display driver support 811# Console display driver support
@@ -826,6 +834,7 @@ CONFIG_FONT_8x16=y
826# 834#
827CONFIG_USB_ARCH_HAS_HCD=y 835CONFIG_USB_ARCH_HAS_HCD=y
828CONFIG_USB_ARCH_HAS_OHCI=y 836CONFIG_USB_ARCH_HAS_OHCI=y
837CONFIG_USB_ARCH_HAS_EHCI=y
829CONFIG_USB=y 838CONFIG_USB=y
830# CONFIG_USB_DEBUG is not set 839# CONFIG_USB_DEBUG is not set
831 840
@@ -843,6 +852,7 @@ CONFIG_USB_DEVICEFS=y
843CONFIG_USB_EHCI_HCD=y 852CONFIG_USB_EHCI_HCD=y
844# CONFIG_USB_EHCI_SPLIT_ISO is not set 853# CONFIG_USB_EHCI_SPLIT_ISO is not set
845# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 854# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
855# CONFIG_USB_EHCI_TT_NEWSCHED is not set
846# CONFIG_USB_ISP116X_HCD is not set 856# CONFIG_USB_ISP116X_HCD is not set
847CONFIG_USB_OHCI_HCD=y 857CONFIG_USB_OHCI_HCD=y
848# CONFIG_USB_OHCI_BIG_ENDIAN is not set 858# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -895,9 +905,7 @@ CONFIG_USB_HIDINPUT=y
895# CONFIG_USB_ACECAD is not set 905# CONFIG_USB_ACECAD is not set
896# CONFIG_USB_KBTAB is not set 906# CONFIG_USB_KBTAB is not set
897# CONFIG_USB_POWERMATE is not set 907# CONFIG_USB_POWERMATE is not set
898# CONFIG_USB_MTOUCH is not set 908# CONFIG_USB_TOUCHSCREEN is not set
899# CONFIG_USB_ITMTOUCH is not set
900# CONFIG_USB_EGALAX is not set
901# CONFIG_USB_YEALINK is not set 909# CONFIG_USB_YEALINK is not set
902# CONFIG_USB_XPAD is not set 910# CONFIG_USB_XPAD is not set
903# CONFIG_USB_ATI_REMOTE is not set 911# CONFIG_USB_ATI_REMOTE is not set
@@ -912,15 +920,6 @@ CONFIG_USB_HIDINPUT=y
912# CONFIG_USB_MICROTEK is not set 920# CONFIG_USB_MICROTEK is not set
913 921
914# 922#
915# USB Multimedia devices
916#
917# CONFIG_USB_DABUSB is not set
918
919#
920# Video4Linux support is needed for USB Multimedia device support
921#
922
923#
924# USB Network Adapters 923# USB Network Adapters
925# 924#
926# CONFIG_USB_CATC is not set 925# CONFIG_USB_CATC is not set
@@ -946,15 +945,15 @@ CONFIG_USB_HIDINPUT=y
946# CONFIG_USB_EMI26 is not set 945# CONFIG_USB_EMI26 is not set
947# CONFIG_USB_AUERSWALD is not set 946# CONFIG_USB_AUERSWALD is not set
948# CONFIG_USB_RIO500 is not set 947# CONFIG_USB_RIO500 is not set
949CONFIG_USB_ARTTFT=m
950# CONFIG_USB_ARTTOUCH is not set
951# CONFIG_USB_LEGOTOWER is not set 948# CONFIG_USB_LEGOTOWER is not set
952# CONFIG_USB_LCD is not set 949# CONFIG_USB_LCD is not set
953# CONFIG_USB_LED is not set 950# CONFIG_USB_LED is not set
951# CONFIG_USB_CY7C63 is not set
954# CONFIG_USB_CYTHERM is not set 952# CONFIG_USB_CYTHERM is not set
955# CONFIG_USB_PHIDGETKIT is not set 953# CONFIG_USB_PHIDGETKIT is not set
956# CONFIG_USB_PHIDGETSERVO is not set 954# CONFIG_USB_PHIDGETSERVO is not set
957# CONFIG_USB_IDMOUSE is not set 955# CONFIG_USB_IDMOUSE is not set
956# CONFIG_USB_APPLEDISPLAY is not set
958# CONFIG_USB_SISUSBVGA is not set 957# CONFIG_USB_SISUSBVGA is not set
959# CONFIG_USB_LD is not set 958# CONFIG_USB_LD is not set
960# CONFIG_USB_TEST is not set 959# CONFIG_USB_TEST is not set
@@ -974,23 +973,44 @@ CONFIG_USB_ARTTFT=m
974# CONFIG_MMC is not set 973# CONFIG_MMC is not set
975 974
976# 975#
976# LED devices
977#
978# CONFIG_NEW_LEDS is not set
979
980#
981# LED drivers
982#
983
984#
985# LED Triggers
986#
987
988#
977# InfiniBand support 989# InfiniBand support
978# 990#
979# CONFIG_INFINIBAND is not set 991# CONFIG_INFINIBAND is not set
980 992
981# 993#
982# SN Devices 994# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
995#
996
997#
998# Real Time Clock
999#
1000# CONFIG_RTC_CLASS is not set
1001
1002#
1003# DMA Engine support
983# 1004#
1005# CONFIG_DMA_ENGINE is not set
984 1006
985# 1007#
986# EDAC - error detection and reporting (RAS) 1008# DMA Clients
987# 1009#
988 1010
989# 1011#
990# eXcite frame capture support 1012# DMA Devices
991# 1013#
992CONFIG_EXCITE_FCAP=m
993CONFIG_EXCITE_FCAP_GPI=m
994 1014
995# 1015#
996# File systems 1016# File systems
@@ -1007,6 +1027,7 @@ CONFIG_EXT2_FS=y
1007# CONFIG_MINIX_FS is not set 1027# CONFIG_MINIX_FS is not set
1008# CONFIG_ROMFS_FS is not set 1028# CONFIG_ROMFS_FS is not set
1009CONFIG_INOTIFY=y 1029CONFIG_INOTIFY=y
1030CONFIG_INOTIFY_USER=y
1010# CONFIG_QUOTA is not set 1031# CONFIG_QUOTA is not set
1011# CONFIG_DNOTIFY is not set 1032# CONFIG_DNOTIFY is not set
1012# CONFIG_AUTOFS_FS is not set 1033# CONFIG_AUTOFS_FS is not set
@@ -1038,7 +1059,6 @@ CONFIG_SYSFS=y
1038CONFIG_TMPFS=y 1059CONFIG_TMPFS=y
1039# CONFIG_HUGETLB_PAGE is not set 1060# CONFIG_HUGETLB_PAGE is not set
1040CONFIG_RAMFS=y 1061CONFIG_RAMFS=y
1041# CONFIG_RELAYFS_FS is not set
1042# CONFIG_CONFIGFS_FS is not set 1062# CONFIG_CONFIGFS_FS is not set
1043 1063
1044# 1064#
@@ -1056,6 +1076,7 @@ CONFIG_JFFS2_FS=y
1056CONFIG_JFFS2_FS_DEBUG=0 1076CONFIG_JFFS2_FS_DEBUG=0
1057CONFIG_JFFS2_FS_WRITEBUFFER=y 1077CONFIG_JFFS2_FS_WRITEBUFFER=y
1058# CONFIG_JFFS2_SUMMARY is not set 1078# CONFIG_JFFS2_SUMMARY is not set
1079# CONFIG_JFFS2_FS_XATTR is not set
1059# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1080# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1060CONFIG_JFFS2_ZLIB=y 1081CONFIG_JFFS2_ZLIB=y
1061CONFIG_JFFS2_RTIME=y 1082CONFIG_JFFS2_RTIME=y
@@ -1085,6 +1106,7 @@ CONFIG_SUNRPC=y
1085# CONFIG_RPCSEC_GSS_SPKM3 is not set 1106# CONFIG_RPCSEC_GSS_SPKM3 is not set
1086# CONFIG_SMB_FS is not set 1107# CONFIG_SMB_FS is not set
1087# CONFIG_CIFS is not set 1108# CONFIG_CIFS is not set
1109# CONFIG_CIFS_DEBUG2 is not set
1088# CONFIG_NCP_FS is not set 1110# CONFIG_NCP_FS is not set
1089# CONFIG_CODA_FS is not set 1111# CONFIG_CODA_FS is not set
1090# CONFIG_AFS_FS is not set 1112# CONFIG_AFS_FS is not set
@@ -1165,8 +1187,10 @@ CONFIG_NLS_ISO8859_1=m
1165# 1187#
1166# CONFIG_PRINTK_TIME is not set 1188# CONFIG_PRINTK_TIME is not set
1167# CONFIG_MAGIC_SYSRQ is not set 1189# CONFIG_MAGIC_SYSRQ is not set
1190# CONFIG_UNUSED_SYMBOLS is not set
1168# CONFIG_DEBUG_KERNEL is not set 1191# CONFIG_DEBUG_KERNEL is not set
1169CONFIG_LOG_BUF_SHIFT=14 1192CONFIG_LOG_BUF_SHIFT=14
1193# CONFIG_DEBUG_FS is not set
1170CONFIG_CROSSCOMPILE=y 1194CONFIG_CROSSCOMPILE=y
1171CONFIG_CMDLINE="" 1195CONFIG_CMDLINE=""
1172 1196
@@ -1218,3 +1242,4 @@ CONFIG_CRC32=y
1218# CONFIG_LIBCRC32C is not set 1242# CONFIG_LIBCRC32C is not set
1219CONFIG_ZLIB_INFLATE=y 1243CONFIG_ZLIB_INFLATE=y
1220CONFIG_ZLIB_DEFLATE=y 1244CONFIG_ZLIB_DEFLATE=y
1245CONFIG_PLIST=y
diff --git a/arch/mips/configs/ip22_defconfig b/arch/mips/configs/ip22_defconfig
index 879ba1ad99ca..ef16d1fb5071 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:54 2006 4# Thu Jul 6 10:04:10 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48CONFIG_SGI_IP22=y 51CONFIG_SGI_IP22=y
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_ARC=y 72CONFIG_ARC=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
120CONFIG_BOARD_SCACHE=y 124CONFIG_BOARD_SCACHE=y
121CONFIG_IP22_CPU_SCACHE=y 125CONFIG_IP22_CPU_SCACHE=y
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 130# CONFIG_64BIT_PHYS_ADDR is not set
124CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
125CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -146,6 +154,7 @@ CONFIG_HZ=1000
146# CONFIG_PREEMPT_NONE is not set 154# CONFIG_PREEMPT_NONE is not set
147CONFIG_PREEMPT_VOLUNTARY=y 155CONFIG_PREEMPT_VOLUNTARY=y
148# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 158
150# 159#
151# Code maturity level options 160# Code maturity level options
@@ -178,10 +187,12 @@ CONFIG_PRINTK=y
178CONFIG_BUG=y 187CONFIG_BUG=y
179CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
180CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
181CONFIG_FUTEX=y 191CONFIG_FUTEX=y
182CONFIG_EPOLL=y 192CONFIG_EPOLL=y
183CONFIG_SHMEM=y 193CONFIG_SHMEM=y
184CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
185# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
186CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
187# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -272,6 +283,8 @@ CONFIG_INET_ESP=m
272CONFIG_INET_IPCOMP=m 283CONFIG_INET_IPCOMP=m
273CONFIG_INET_XFRM_TUNNEL=m 284CONFIG_INET_XFRM_TUNNEL=m
274CONFIG_INET_TUNNEL=m 285CONFIG_INET_TUNNEL=m
286CONFIG_INET_XFRM_MODE_TRANSPORT=m
287CONFIG_INET_XFRM_MODE_TUNNEL=m
275CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
276CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
277# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
@@ -319,7 +332,10 @@ CONFIG_INET6_ESP=m
319CONFIG_INET6_IPCOMP=m 332CONFIG_INET6_IPCOMP=m
320CONFIG_INET6_XFRM_TUNNEL=m 333CONFIG_INET6_XFRM_TUNNEL=m
321CONFIG_INET6_TUNNEL=m 334CONFIG_INET6_TUNNEL=m
335CONFIG_INET6_XFRM_MODE_TRANSPORT=m
336CONFIG_INET6_XFRM_MODE_TUNNEL=m
322CONFIG_IPV6_TUNNEL=m 337CONFIG_IPV6_TUNNEL=m
338CONFIG_NETWORK_SECMARK=y
323CONFIG_NETFILTER=y 339CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set 340# CONFIG_NETFILTER_DEBUG is not set
325 341
@@ -335,6 +351,8 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
335CONFIG_NETFILTER_XT_TARGET_MARK=m 351CONFIG_NETFILTER_XT_TARGET_MARK=m
336CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 352CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
337CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 353CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
354CONFIG_NETFILTER_XT_TARGET_SECMARK=m
355CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
338CONFIG_NETFILTER_XT_MATCH_COMMENT=m 356CONFIG_NETFILTER_XT_MATCH_COMMENT=m
339CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 357CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
340CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 358CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
@@ -349,9 +367,11 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
349CONFIG_NETFILTER_XT_MATCH_POLICY=m 367CONFIG_NETFILTER_XT_MATCH_POLICY=m
350CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 368CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
351CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 369CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
370CONFIG_NETFILTER_XT_MATCH_QUOTA=m
352CONFIG_NETFILTER_XT_MATCH_REALM=m 371CONFIG_NETFILTER_XT_MATCH_REALM=m
353CONFIG_NETFILTER_XT_MATCH_SCTP=m 372CONFIG_NETFILTER_XT_MATCH_SCTP=m
354CONFIG_NETFILTER_XT_MATCH_STATE=m 373CONFIG_NETFILTER_XT_MATCH_STATE=m
374CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
355CONFIG_NETFILTER_XT_MATCH_STRING=m 375CONFIG_NETFILTER_XT_MATCH_STRING=m
356CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 376CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
357 377
@@ -361,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
361CONFIG_IP_NF_CONNTRACK=m 381CONFIG_IP_NF_CONNTRACK=m
362CONFIG_IP_NF_CT_ACCT=y 382CONFIG_IP_NF_CT_ACCT=y
363CONFIG_IP_NF_CONNTRACK_MARK=y 383CONFIG_IP_NF_CONNTRACK_MARK=y
384CONFIG_IP_NF_CONNTRACK_SECMARK=y
364CONFIG_IP_NF_CONNTRACK_EVENTS=y 385CONFIG_IP_NF_CONNTRACK_EVENTS=y
365CONFIG_IP_NF_CONNTRACK_NETLINK=m 386CONFIG_IP_NF_CONNTRACK_NETLINK=m
366# CONFIG_IP_NF_CT_PROTO_SCTP is not set 387# CONFIG_IP_NF_CT_PROTO_SCTP is not set
@@ -371,6 +392,7 @@ CONFIG_IP_NF_TFTP=m
371CONFIG_IP_NF_AMANDA=m 392CONFIG_IP_NF_AMANDA=m
372CONFIG_IP_NF_PPTP=m 393CONFIG_IP_NF_PPTP=m
373CONFIG_IP_NF_H323=m 394CONFIG_IP_NF_H323=m
395CONFIG_IP_NF_SIP=m
374CONFIG_IP_NF_QUEUE=m 396CONFIG_IP_NF_QUEUE=m
375CONFIG_IP_NF_IPTABLES=m 397CONFIG_IP_NF_IPTABLES=m
376CONFIG_IP_NF_MATCH_IPRANGE=m 398CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -401,6 +423,7 @@ CONFIG_IP_NF_NAT_TFTP=m
401CONFIG_IP_NF_NAT_AMANDA=m 423CONFIG_IP_NF_NAT_AMANDA=m
402CONFIG_IP_NF_NAT_PPTP=m 424CONFIG_IP_NF_NAT_PPTP=m
403CONFIG_IP_NF_NAT_H323=m 425CONFIG_IP_NF_NAT_H323=m
426CONFIG_IP_NF_NAT_SIP=m
404CONFIG_IP_NF_MANGLE=m 427CONFIG_IP_NF_MANGLE=m
405CONFIG_IP_NF_TARGET_TOS=m 428CONFIG_IP_NF_TARGET_TOS=m
406CONFIG_IP_NF_TARGET_ECN=m 429CONFIG_IP_NF_TARGET_ECN=m
@@ -533,6 +556,7 @@ CONFIG_WIRELESS_EXT=y
533CONFIG_STANDALONE=y 556CONFIG_STANDALONE=y
534CONFIG_PREVENT_FIRMWARE_BUILD=y 557CONFIG_PREVENT_FIRMWARE_BUILD=y
535# CONFIG_FW_LOADER is not set 558# CONFIG_FW_LOADER is not set
559# CONFIG_SYS_HYPERVISOR is not set
536 560
537# 561#
538# Connector - unified userspace <-> kernelspace linker 562# Connector - unified userspace <-> kernelspace linker
@@ -652,6 +676,8 @@ CONFIG_DAVICOM_PHY=m
652CONFIG_QSEMI_PHY=m 676CONFIG_QSEMI_PHY=m
653CONFIG_LXT_PHY=m 677CONFIG_LXT_PHY=m
654CONFIG_CICADA_PHY=m 678CONFIG_CICADA_PHY=m
679# CONFIG_VITESSE_PHY is not set
680# CONFIG_SMSC_PHY is not set
655 681
656# 682#
657# Ethernet (10 or 100Mbit) 683# Ethernet (10 or 100Mbit)
@@ -749,6 +775,7 @@ CONFIG_SERIO_RAW=m
749CONFIG_VT=y 775CONFIG_VT=y
750CONFIG_VT_CONSOLE=y 776CONFIG_VT_CONSOLE=y
751CONFIG_HW_CONSOLE=y 777CONFIG_HW_CONSOLE=y
778CONFIG_VT_HW_CONSOLE_BINDING=y
752# CONFIG_SERIAL_NONSTANDARD is not set 779# CONFIG_SERIAL_NONSTANDARD is not set
753 780
754# 781#
@@ -781,6 +808,7 @@ CONFIG_WATCHDOG=y
781# 808#
782# CONFIG_SOFT_WATCHDOG is not set 809# CONFIG_SOFT_WATCHDOG is not set
783CONFIG_INDYDOG=m 810CONFIG_INDYDOG=m
811# CONFIG_HW_RANDOM is not set
784# CONFIG_RTC is not set 812# CONFIG_RTC is not set
785CONFIG_SGI_DS1286=m 813CONFIG_SGI_DS1286=m
786# CONFIG_GEN_RTC is not set 814# CONFIG_GEN_RTC is not set
@@ -829,6 +857,7 @@ CONFIG_MAX_RAW_DEVS=256
829# Multimedia devices 857# Multimedia devices
830# 858#
831# CONFIG_VIDEO_DEV is not set 859# CONFIG_VIDEO_DEV is not set
860CONFIG_VIDEO_V4L2=y
832 861
833# 862#
834# Digital Video Broadcasting Devices 863# Digital Video Broadcasting Devices
@@ -838,6 +867,7 @@ CONFIG_MAX_RAW_DEVS=256
838# 867#
839# Graphics support 868# Graphics support
840# 869#
870CONFIG_FIRMWARE_EDID=y
841# CONFIG_FB is not set 871# CONFIG_FB is not set
842 872
843# 873#
@@ -910,6 +940,19 @@ CONFIG_LOGO_SGI_CLUT224=y
910# CONFIG_RTC_CLASS is not set 940# CONFIG_RTC_CLASS is not set
911 941
912# 942#
943# DMA Engine support
944#
945# CONFIG_DMA_ENGINE is not set
946
947#
948# DMA Clients
949#
950
951#
952# DMA Devices
953#
954
955#
913# File systems 956# File systems
914# 957#
915CONFIG_EXT2_FS=m 958CONFIG_EXT2_FS=m
@@ -926,7 +969,6 @@ CONFIG_FS_MBCACHE=y
926# CONFIG_JFS_FS is not set 969# CONFIG_JFS_FS is not set
927CONFIG_FS_POSIX_ACL=y 970CONFIG_FS_POSIX_ACL=y
928CONFIG_XFS_FS=m 971CONFIG_XFS_FS=m
929CONFIG_XFS_EXPORT=y
930CONFIG_XFS_QUOTA=y 972CONFIG_XFS_QUOTA=y
931CONFIG_XFS_SECURITY=y 973CONFIG_XFS_SECURITY=y
932# CONFIG_XFS_POSIX_ACL is not set 974# CONFIG_XFS_POSIX_ACL is not set
@@ -935,6 +977,7 @@ CONFIG_XFS_SECURITY=y
935CONFIG_MINIX_FS=m 977CONFIG_MINIX_FS=m
936# CONFIG_ROMFS_FS is not set 978# CONFIG_ROMFS_FS is not set
937CONFIG_INOTIFY=y 979CONFIG_INOTIFY=y
980CONFIG_INOTIFY_USER=y
938CONFIG_QUOTA=y 981CONFIG_QUOTA=y
939# CONFIG_QFMT_V1 is not set 982# CONFIG_QFMT_V1 is not set
940CONFIG_QFMT_V2=m 983CONFIG_QFMT_V2=m
@@ -991,6 +1034,8 @@ CONFIG_EFS_FS=m
991# CONFIG_QNX4FS_FS is not set 1034# CONFIG_QNX4FS_FS is not set
992# CONFIG_SYSV_FS is not set 1035# CONFIG_SYSV_FS is not set
993CONFIG_UFS_FS=m 1036CONFIG_UFS_FS=m
1037# CONFIG_UFS_FS_WRITE is not set
1038# CONFIG_UFS_DEBUG is not set
994 1039
995# 1040#
996# Network File Systems 1041# Network File Systems
@@ -1020,7 +1065,9 @@ CONFIG_SMB_NLS_DEFAULT=y
1020CONFIG_SMB_NLS_REMOTE="cp437" 1065CONFIG_SMB_NLS_REMOTE="cp437"
1021CONFIG_CIFS=m 1066CONFIG_CIFS=m
1022# CONFIG_CIFS_STATS is not set 1067# CONFIG_CIFS_STATS is not set
1068# CONFIG_CIFS_WEAK_PW_HASH is not set
1023# CONFIG_CIFS_XATTR is not set 1069# CONFIG_CIFS_XATTR is not set
1070# CONFIG_CIFS_DEBUG2 is not set
1024# CONFIG_CIFS_EXPERIMENTAL is not set 1071# CONFIG_CIFS_EXPERIMENTAL is not set
1025# CONFIG_NCP_FS is not set 1072# CONFIG_NCP_FS is not set
1026CONFIG_CODA_FS=m 1073CONFIG_CODA_FS=m
@@ -1103,6 +1150,7 @@ CONFIG_NLS_UTF8=m
1103# 1150#
1104# CONFIG_PRINTK_TIME is not set 1151# CONFIG_PRINTK_TIME is not set
1105# CONFIG_MAGIC_SYSRQ is not set 1152# CONFIG_MAGIC_SYSRQ is not set
1153# CONFIG_UNUSED_SYMBOLS is not set
1106# CONFIG_DEBUG_KERNEL is not set 1154# CONFIG_DEBUG_KERNEL is not set
1107CONFIG_LOG_BUF_SHIFT=14 1155CONFIG_LOG_BUF_SHIFT=14
1108# CONFIG_DEBUG_FS is not set 1156# CONFIG_DEBUG_FS is not set
@@ -1162,3 +1210,4 @@ CONFIG_TEXTSEARCH=y
1162CONFIG_TEXTSEARCH_KMP=m 1210CONFIG_TEXTSEARCH_KMP=m
1163CONFIG_TEXTSEARCH_BM=m 1211CONFIG_TEXTSEARCH_BM=m
1164CONFIG_TEXTSEARCH_FSM=m 1212CONFIG_TEXTSEARCH_FSM=m
1213CONFIG_PLIST=y
diff --git a/arch/mips/configs/ip27_defconfig b/arch/mips/configs/ip27_defconfig
index bb1426806430..4bf1ee7f5f00 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:04 2006 4# Thu Jul 6 10:04:10 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49CONFIG_SGI_IP27=y 52CONFIG_SGI_IP27=y
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -61,16 +64,17 @@ CONFIG_SGI_IP27=y
61# CONFIG_TOSHIBA_JMR3927 is not set 64# CONFIG_TOSHIBA_JMR3927 is not set
62# CONFIG_TOSHIBA_RBTX4927 is not set 65# CONFIG_TOSHIBA_RBTX4927 is not set
63# CONFIG_TOSHIBA_RBTX4938 is not set 66# CONFIG_TOSHIBA_RBTX4938 is not set
67CONFIG_SGI_SN_M_MODE=y
64# CONFIG_SGI_SN_N_MODE is not set 68# CONFIG_SGI_SN_N_MODE is not set
65CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
66CONFIG_NUMA=y
67# CONFIG_MAPPED_KERNEL is not set 69# CONFIG_MAPPED_KERNEL is not set
68# CONFIG_REPLICATE_KTEXT is not set 70# CONFIG_REPLICATE_KTEXT is not set
69# CONFIG_REPLICATE_EXHANDLERS is not set 71# CONFIG_REPLICATE_EXHANDLERS is not set
72CONFIG_EARLY_PRINTK=y
70CONFIG_RWSEM_GENERIC_SPINLOCK=y 73CONFIG_RWSEM_GENERIC_SPINLOCK=y
71CONFIG_GENERIC_FIND_NEXT_BIT=y 74CONFIG_GENERIC_FIND_NEXT_BIT=y
72CONFIG_GENERIC_HWEIGHT=y 75CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 76CONFIG_GENERIC_CALIBRATE_DELAY=y
77CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
74CONFIG_ARC=y 78CONFIG_ARC=y
75CONFIG_DMA_IP27=y 79CONFIG_DMA_IP27=y
76CONFIG_CPU_BIG_ENDIAN=y 80CONFIG_CPU_BIG_ENDIAN=y
@@ -117,12 +121,19 @@ CONFIG_PAGE_SIZE_4KB=y
117# CONFIG_PAGE_SIZE_16KB is not set 121# CONFIG_PAGE_SIZE_16KB is not set
118# CONFIG_PAGE_SIZE_64KB is not set 122# CONFIG_PAGE_SIZE_64KB is not set
119CONFIG_CPU_HAS_PREFETCH=y 123CONFIG_CPU_HAS_PREFETCH=y
120# CONFIG_MIPS_MT is not set 124CONFIG_MIPS_MT_DISABLED=y
125# CONFIG_MIPS_MT_SMTC is not set
126# CONFIG_MIPS_MT_SMP is not set
127# CONFIG_MIPS_VPE_LOADER is not set
121CONFIG_CPU_HAS_LLSC=y 128CONFIG_CPU_HAS_LLSC=y
122CONFIG_CPU_HAS_SYNC=y 129CONFIG_CPU_HAS_SYNC=y
123CONFIG_GENERIC_HARDIRQS=y 130CONFIG_GENERIC_HARDIRQS=y
124CONFIG_GENERIC_IRQ_PROBE=y 131CONFIG_GENERIC_IRQ_PROBE=y
132CONFIG_IRQ_PER_CPU=y
125CONFIG_CPU_SUPPORTS_HIGHMEM=y 133CONFIG_CPU_SUPPORTS_HIGHMEM=y
134CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
135CONFIG_NUMA=y
136CONFIG_SYS_SUPPORTS_NUMA=y
126CONFIG_NODES_SHIFT=6 137CONFIG_NODES_SHIFT=6
127CONFIG_SELECT_MEMORY_MODEL=y 138CONFIG_SELECT_MEMORY_MODEL=y
128# CONFIG_FLATMEM_MANUAL is not set 139# CONFIG_FLATMEM_MANUAL is not set
@@ -133,6 +144,11 @@ CONFIG_FLAT_NODE_MEM_MAP=y
133CONFIG_NEED_MULTIPLE_NODES=y 144CONFIG_NEED_MULTIPLE_NODES=y
134# CONFIG_SPARSEMEM_STATIC is not set 145# CONFIG_SPARSEMEM_STATIC is not set
135CONFIG_SPLIT_PTLOCK_CPUS=4 146CONFIG_SPLIT_PTLOCK_CPUS=4
147CONFIG_MIGRATION=y
148CONFIG_RESOURCES_64BIT=y
149CONFIG_SMP=y
150CONFIG_SYS_SUPPORTS_SMP=y
151CONFIG_NR_CPUS=64
136# CONFIG_HZ_48 is not set 152# CONFIG_HZ_48 is not set
137# CONFIG_HZ_100 is not set 153# CONFIG_HZ_100 is not set
138# CONFIG_HZ_128 is not set 154# CONFIG_HZ_128 is not set
@@ -142,14 +158,12 @@ CONFIG_HZ_1000=y
142# CONFIG_HZ_1024 is not set 158# CONFIG_HZ_1024 is not set
143CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 159CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
144CONFIG_HZ=1000 160CONFIG_HZ=1000
145CONFIG_MIGRATION=y
146CONFIG_SMP=y
147CONFIG_NR_CPUS=64
148CONFIG_PREEMPT_NONE=y 161CONFIG_PREEMPT_NONE=y
149# CONFIG_PREEMPT_VOLUNTARY is not set 162# CONFIG_PREEMPT_VOLUNTARY is not set
150# CONFIG_PREEMPT is not set 163# CONFIG_PREEMPT is not set
151CONFIG_PREEMPT_BKL=y 164CONFIG_PREEMPT_BKL=y
152# CONFIG_MIPS_INSANE_LARGE is not set 165# CONFIG_MIPS_INSANE_LARGE is not set
166CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
153 167
154# 168#
155# Code maturity level options 169# Code maturity level options
@@ -183,10 +197,12 @@ CONFIG_PRINTK=y
183CONFIG_BUG=y 197CONFIG_BUG=y
184CONFIG_ELF_CORE=y 198CONFIG_ELF_CORE=y
185CONFIG_BASE_FULL=y 199CONFIG_BASE_FULL=y
200CONFIG_RT_MUTEXES=y
186CONFIG_FUTEX=y 201CONFIG_FUTEX=y
187CONFIG_EPOLL=y 202CONFIG_EPOLL=y
188CONFIG_SHMEM=y 203CONFIG_SHMEM=y
189CONFIG_SLAB=y 204CONFIG_SLAB=y
205CONFIG_VM_EVENT_COUNTERS=y
190# CONFIG_TINY_SHMEM is not set 206# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0 207CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 208# CONFIG_SLOB is not set
@@ -283,6 +299,8 @@ CONFIG_IP_PNP=y
283# CONFIG_INET_IPCOMP is not set 299# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 300# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 301# CONFIG_INET_TUNNEL is not set
302CONFIG_INET_XFRM_MODE_TRANSPORT=m
303CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_DIAG=y 304CONFIG_INET_DIAG=y
287CONFIG_INET_TCP_DIAG=y 305CONFIG_INET_TCP_DIAG=y
288# CONFIG_TCP_CONG_ADVANCED is not set 306# CONFIG_TCP_CONG_ADVANCED is not set
@@ -290,6 +308,7 @@ CONFIG_TCP_CONG_BIC=y
290# CONFIG_IPV6 is not set 308# CONFIG_IPV6 is not set
291# CONFIG_INET6_XFRM_TUNNEL is not set 309# CONFIG_INET6_XFRM_TUNNEL is not set
292# CONFIG_INET6_TUNNEL is not set 310# CONFIG_INET6_TUNNEL is not set
311CONFIG_NETWORK_SECMARK=y
293# CONFIG_NETFILTER is not set 312# CONFIG_NETFILTER is not set
294 313
295# 314#
@@ -387,6 +406,7 @@ CONFIG_WIRELESS_EXT=y
387CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
388CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
389CONFIG_FW_LOADER=y 408CONFIG_FW_LOADER=y
409# CONFIG_SYS_HYPERVISOR is not set
390 410
391# 411#
392# Connector - unified userspace <-> kernelspace linker 412# Connector - unified userspace <-> kernelspace linker
@@ -479,6 +499,7 @@ CONFIG_SCSI_SAS_ATTRS=m
479# CONFIG_MEGARAID_LEGACY is not set 499# CONFIG_MEGARAID_LEGACY is not set
480# CONFIG_MEGARAID_SAS is not set 500# CONFIG_MEGARAID_SAS is not set
481# CONFIG_SCSI_SATA is not set 501# CONFIG_SCSI_SATA is not set
502# CONFIG_SCSI_HPTIOP is not set
482# CONFIG_SCSI_DMX3191D is not set 503# CONFIG_SCSI_DMX3191D is not set
483# CONFIG_SCSI_FUTURE_DOMAIN is not set 504# CONFIG_SCSI_FUTURE_DOMAIN is not set
484# CONFIG_SCSI_IPS is not set 505# CONFIG_SCSI_IPS is not set
@@ -502,9 +523,8 @@ CONFIG_MD_LINEAR=m
502CONFIG_MD_RAID0=y 523CONFIG_MD_RAID0=y
503CONFIG_MD_RAID1=y 524CONFIG_MD_RAID1=y
504CONFIG_MD_RAID10=m 525CONFIG_MD_RAID10=m
505CONFIG_MD_RAID5=y 526CONFIG_MD_RAID456=m
506CONFIG_MD_RAID5_RESHAPE=y 527CONFIG_MD_RAID5_RESHAPE=y
507CONFIG_MD_RAID6=m
508CONFIG_MD_MULTIPATH=m 528CONFIG_MD_MULTIPATH=m
509CONFIG_MD_FAULTY=m 529CONFIG_MD_FAULTY=m
510CONFIG_BLK_DEV_DM=m 530CONFIG_BLK_DEV_DM=m
@@ -560,6 +580,8 @@ CONFIG_DAVICOM_PHY=m
560CONFIG_QSEMI_PHY=m 580CONFIG_QSEMI_PHY=m
561CONFIG_LXT_PHY=m 581CONFIG_LXT_PHY=m
562CONFIG_CICADA_PHY=m 582CONFIG_CICADA_PHY=m
583CONFIG_VITESSE_PHY=m
584CONFIG_SMSC_PHY=m
563 585
564# 586#
565# Ethernet (10 or 100Mbit) 587# Ethernet (10 or 100Mbit)
@@ -567,8 +589,6 @@ CONFIG_CICADA_PHY=m
567CONFIG_NET_ETHERNET=y 589CONFIG_NET_ETHERNET=y
568CONFIG_MII=y 590CONFIG_MII=y
569CONFIG_SGI_IOC3_ETH=y 591CONFIG_SGI_IOC3_ETH=y
570CONFIG_SGI_IOC3_ETH_HW_RX_CSUM=y
571CONFIG_SGI_IOC3_ETH_HW_TX_CSUM=y
572# CONFIG_HAPPYMEAL is not set 592# CONFIG_HAPPYMEAL is not set
573# CONFIG_SUNGEM is not set 593# CONFIG_SUNGEM is not set
574# CONFIG_CASSINI is not set 594# CONFIG_CASSINI is not set
@@ -605,6 +625,7 @@ CONFIG_SGI_IOC3_ETH_HW_TX_CSUM=y
605# CONFIG_CHELSIO_T1 is not set 625# CONFIG_CHELSIO_T1 is not set
606# CONFIG_IXGB is not set 626# CONFIG_IXGB is not set
607# CONFIG_S2IO is not set 627# CONFIG_S2IO is not set
628# CONFIG_MYRI10GE is not set
608 629
609# 630#
610# Token Ring devices 631# Token Ring devices
@@ -695,6 +716,7 @@ CONFIG_LEGACY_PTY_COUNT=256
695# Watchdog Cards 716# Watchdog Cards
696# 717#
697# CONFIG_WATCHDOG is not set 718# CONFIG_WATCHDOG is not set
719# CONFIG_HW_RANDOM is not set
698# CONFIG_RTC is not set 720# CONFIG_RTC is not set
699CONFIG_SGI_IP27_RTC=y 721CONFIG_SGI_IP27_RTC=y
700# CONFIG_GEN_RTC is not set 722# CONFIG_GEN_RTC is not set
@@ -744,6 +766,7 @@ CONFIG_SGI_IP27_RTC=y
744# Multimedia devices 766# Multimedia devices
745# 767#
746# CONFIG_VIDEO_DEV is not set 768# CONFIG_VIDEO_DEV is not set
769CONFIG_VIDEO_V4L2=y
747 770
748# 771#
749# Digital Video Broadcasting Devices 772# Digital Video Broadcasting Devices
@@ -753,6 +776,7 @@ CONFIG_SGI_IP27_RTC=y
753# 776#
754# Graphics support 777# Graphics support
755# 778#
779# CONFIG_FIRMWARE_EDID is not set
756# CONFIG_FB is not set 780# CONFIG_FB is not set
757 781
758# 782#
@@ -810,6 +834,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
810# CONFIG_RTC_CLASS is not set 834# CONFIG_RTC_CLASS is not set
811 835
812# 836#
837# DMA Engine support
838#
839# CONFIG_DMA_ENGINE is not set
840
841#
842# DMA Clients
843#
844
845#
846# DMA Devices
847#
848
849#
813# File systems 850# File systems
814# 851#
815CONFIG_EXT2_FS=y 852CONFIG_EXT2_FS=y
@@ -836,6 +873,7 @@ CONFIG_XFS_POSIX_ACL=y
836# CONFIG_MINIX_FS is not set 873# CONFIG_MINIX_FS is not set
837# CONFIG_ROMFS_FS is not set 874# CONFIG_ROMFS_FS is not set
838CONFIG_INOTIFY=y 875CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y
839# CONFIG_QUOTA is not set 877# CONFIG_QUOTA is not set
840CONFIG_QUOTACTL=y 878CONFIG_QUOTACTL=y
841CONFIG_DNOTIFY=y 879CONFIG_DNOTIFY=y
@@ -903,6 +941,7 @@ CONFIG_RPCSEC_GSS_KRB5=y
903# CONFIG_RPCSEC_GSS_SPKM3 is not set 941# CONFIG_RPCSEC_GSS_SPKM3 is not set
904# CONFIG_SMB_FS is not set 942# CONFIG_SMB_FS is not set
905# CONFIG_CIFS is not set 943# CONFIG_CIFS is not set
944# CONFIG_CIFS_DEBUG2 is not set
906# CONFIG_NCP_FS is not set 945# CONFIG_NCP_FS is not set
907# CONFIG_CODA_FS is not set 946# CONFIG_CODA_FS is not set
908# CONFIG_AFS_FS is not set 947# CONFIG_AFS_FS is not set
@@ -944,6 +983,7 @@ CONFIG_SGI_PARTITION=y
944# 983#
945# CONFIG_PRINTK_TIME is not set 984# CONFIG_PRINTK_TIME is not set
946# CONFIG_MAGIC_SYSRQ is not set 985# CONFIG_MAGIC_SYSRQ is not set
986# CONFIG_UNUSED_SYMBOLS is not set
947# CONFIG_DEBUG_KERNEL is not set 987# CONFIG_DEBUG_KERNEL is not set
948CONFIG_LOG_BUF_SHIFT=15 988CONFIG_LOG_BUF_SHIFT=15
949# CONFIG_DEBUG_FS is not set 989# CONFIG_DEBUG_FS is not set
@@ -999,3 +1039,4 @@ CONFIG_CRC32=y
999CONFIG_LIBCRC32C=m 1039CONFIG_LIBCRC32C=m
1000CONFIG_ZLIB_INFLATE=m 1040CONFIG_ZLIB_INFLATE=m
1001CONFIG_ZLIB_DEFLATE=m 1041CONFIG_ZLIB_DEFLATE=m
1042CONFIG_PLIST=y
diff --git a/arch/mips/configs/ip32_defconfig b/arch/mips/configs/ip32_defconfig
index 31b3c92a3841..f83dc09c3ca9 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:05 2006 4# Thu Jul 6 10:04:11 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50CONFIG_SGI_IP32=y 53CONFIG_SGI_IP32=y
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_ARC=y 72CONFIG_ARC=y
69CONFIG_DMA_IP32=y 73CONFIG_DMA_IP32=y
70CONFIG_DMA_NONCOHERENT=y 74CONFIG_DMA_NONCOHERENT=y
@@ -120,7 +124,10 @@ CONFIG_PAGE_SIZE_4KB=y
120CONFIG_BOARD_SCACHE=y 124CONFIG_BOARD_SCACHE=y
121CONFIG_R5000_CPU_SCACHE=y 125CONFIG_R5000_CPU_SCACHE=y
122CONFIG_RM7000_CPU_SCACHE=y 126CONFIG_RM7000_CPU_SCACHE=y
123# CONFIG_MIPS_MT is not set 127CONFIG_MIPS_MT_DISABLED=y
128# CONFIG_MIPS_MT_SMTC is not set
129# CONFIG_MIPS_MT_SMP is not set
130# CONFIG_MIPS_VPE_LOADER is not set
124CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
125CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
126CONFIG_GENERIC_HARDIRQS=y 133CONFIG_GENERIC_HARDIRQS=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144CONFIG_RESOURCES_64BIT=y
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -146,6 +154,7 @@ CONFIG_HZ=1000
146# CONFIG_PREEMPT_NONE is not set 154# CONFIG_PREEMPT_NONE is not set
147CONFIG_PREEMPT_VOLUNTARY=y 155CONFIG_PREEMPT_VOLUNTARY=y
148# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 158
150# 159#
151# Code maturity level options 160# Code maturity level options
@@ -178,10 +187,12 @@ CONFIG_PRINTK=y
178CONFIG_BUG=y 187CONFIG_BUG=y
179CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
180CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
181CONFIG_FUTEX=y 191CONFIG_FUTEX=y
182CONFIG_EPOLL=y 192CONFIG_EPOLL=y
183CONFIG_SHMEM=y 193CONFIG_SHMEM=y
184CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
185# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
186CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
187# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -270,6 +281,8 @@ CONFIG_IP_PNP_BOOTP=y
270# CONFIG_INET_IPCOMP is not set 281# CONFIG_INET_IPCOMP is not set
271# CONFIG_INET_XFRM_TUNNEL is not set 282# CONFIG_INET_XFRM_TUNNEL is not set
272# CONFIG_INET_TUNNEL is not set 283# CONFIG_INET_TUNNEL is not set
284CONFIG_INET_XFRM_MODE_TRANSPORT=y
285CONFIG_INET_XFRM_MODE_TUNNEL=y
273CONFIG_INET_DIAG=y 286CONFIG_INET_DIAG=y
274CONFIG_INET_TCP_DIAG=y 287CONFIG_INET_TCP_DIAG=y
275# CONFIG_TCP_CONG_ADVANCED is not set 288# CONFIG_TCP_CONG_ADVANCED is not set
@@ -277,6 +290,7 @@ CONFIG_TCP_CONG_BIC=y
277# CONFIG_IPV6 is not set 290# CONFIG_IPV6 is not set
278# CONFIG_INET6_XFRM_TUNNEL is not set 291# CONFIG_INET6_XFRM_TUNNEL is not set
279# CONFIG_INET6_TUNNEL is not set 292# CONFIG_INET6_TUNNEL is not set
293CONFIG_NETWORK_SECMARK=y
280# CONFIG_NETFILTER is not set 294# CONFIG_NETFILTER is not set
281 295
282# 296#
@@ -336,6 +350,7 @@ CONFIG_WIRELESS_EXT=y
336CONFIG_STANDALONE=y 350CONFIG_STANDALONE=y
337CONFIG_PREVENT_FIRMWARE_BUILD=y 351CONFIG_PREVENT_FIRMWARE_BUILD=y
338CONFIG_FW_LOADER=y 352CONFIG_FW_LOADER=y
353# CONFIG_SYS_HYPERVISOR is not set
339 354
340# 355#
341# Connector - unified userspace <-> kernelspace linker 356# Connector - unified userspace <-> kernelspace linker
@@ -434,6 +449,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
434# CONFIG_MEGARAID_LEGACY is not set 449# CONFIG_MEGARAID_LEGACY is not set
435# CONFIG_MEGARAID_SAS is not set 450# CONFIG_MEGARAID_SAS is not set
436# CONFIG_SCSI_SATA is not set 451# CONFIG_SCSI_SATA is not set
452# CONFIG_SCSI_HPTIOP is not set
437# CONFIG_SCSI_DMX3191D is not set 453# CONFIG_SCSI_DMX3191D is not set
438# CONFIG_SCSI_FUTURE_DOMAIN is not set 454# CONFIG_SCSI_FUTURE_DOMAIN is not set
439# CONFIG_SCSI_IPS is not set 455# CONFIG_SCSI_IPS is not set
@@ -498,6 +514,8 @@ CONFIG_DAVICOM_PHY=y
498CONFIG_QSEMI_PHY=y 514CONFIG_QSEMI_PHY=y
499CONFIG_LXT_PHY=y 515CONFIG_LXT_PHY=y
500CONFIG_CICADA_PHY=y 516CONFIG_CICADA_PHY=y
517CONFIG_VITESSE_PHY=y
518CONFIG_SMSC_PHY=y
501 519
502# 520#
503# Ethernet (10 or 100Mbit) 521# Ethernet (10 or 100Mbit)
@@ -541,6 +559,7 @@ CONFIG_SGI_O2MACE_ETH=y
541# CONFIG_CHELSIO_T1 is not set 559# CONFIG_CHELSIO_T1 is not set
542# CONFIG_IXGB is not set 560# CONFIG_IXGB is not set
543# CONFIG_S2IO is not set 561# CONFIG_S2IO is not set
562# CONFIG_MYRI10GE is not set
544 563
545# 564#
546# Token Ring devices 565# Token Ring devices
@@ -620,6 +639,7 @@ CONFIG_SERIO_RAW=y
620CONFIG_VT=y 639CONFIG_VT=y
621CONFIG_VT_CONSOLE=y 640CONFIG_VT_CONSOLE=y
622CONFIG_HW_CONSOLE=y 641CONFIG_HW_CONSOLE=y
642CONFIG_VT_HW_CONSOLE_BINDING=y
623# CONFIG_SERIAL_NONSTANDARD is not set 643# CONFIG_SERIAL_NONSTANDARD is not set
624 644
625# 645#
@@ -651,6 +671,7 @@ CONFIG_LEGACY_PTY_COUNT=256
651# Watchdog Cards 671# Watchdog Cards
652# 672#
653# CONFIG_WATCHDOG is not set 673# CONFIG_WATCHDOG is not set
674# CONFIG_HW_RANDOM is not set
654# CONFIG_RTC is not set 675# CONFIG_RTC is not set
655# CONFIG_GEN_RTC is not set 676# CONFIG_GEN_RTC is not set
656# CONFIG_DTLK is not set 677# CONFIG_DTLK is not set
@@ -699,6 +720,7 @@ CONFIG_LEGACY_PTY_COUNT=256
699# Multimedia devices 720# Multimedia devices
700# 721#
701# CONFIG_VIDEO_DEV is not set 722# CONFIG_VIDEO_DEV is not set
723CONFIG_VIDEO_V4L2=y
702 724
703# 725#
704# Digital Video Broadcasting Devices 726# Digital Video Broadcasting Devices
@@ -708,6 +730,7 @@ CONFIG_LEGACY_PTY_COUNT=256
708# 730#
709# Graphics support 731# Graphics support
710# 732#
733# CONFIG_FIRMWARE_EDID is not set
711# CONFIG_FB is not set 734# CONFIG_FB is not set
712 735
713# 736#
@@ -771,6 +794,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
771# CONFIG_RTC_CLASS is not set 794# CONFIG_RTC_CLASS is not set
772 795
773# 796#
797# DMA Engine support
798#
799# CONFIG_DMA_ENGINE is not set
800
801#
802# DMA Clients
803#
804
805#
806# DMA Devices
807#
808
809#
774# File systems 810# File systems
775# 811#
776CONFIG_EXT2_FS=y 812CONFIG_EXT2_FS=y
@@ -785,6 +821,7 @@ CONFIG_EXT2_FS=y
785# CONFIG_MINIX_FS is not set 821# CONFIG_MINIX_FS is not set
786# CONFIG_ROMFS_FS is not set 822# CONFIG_ROMFS_FS is not set
787CONFIG_INOTIFY=y 823CONFIG_INOTIFY=y
824CONFIG_INOTIFY_USER=y
788# CONFIG_QUOTA is not set 825# CONFIG_QUOTA is not set
789CONFIG_DNOTIFY=y 826CONFIG_DNOTIFY=y
790# CONFIG_AUTOFS_FS is not set 827# CONFIG_AUTOFS_FS is not set
@@ -850,6 +887,7 @@ CONFIG_SUNRPC=y
850# CONFIG_RPCSEC_GSS_SPKM3 is not set 887# CONFIG_RPCSEC_GSS_SPKM3 is not set
851# CONFIG_SMB_FS is not set 888# CONFIG_SMB_FS is not set
852# CONFIG_CIFS is not set 889# CONFIG_CIFS is not set
890# CONFIG_CIFS_DEBUG2 is not set
853# CONFIG_NCP_FS is not set 891# CONFIG_NCP_FS is not set
854# CONFIG_CODA_FS is not set 892# CONFIG_CODA_FS is not set
855# CONFIG_AFS_FS is not set 893# CONFIG_AFS_FS is not set
@@ -887,6 +925,7 @@ CONFIG_SGI_PARTITION=y
887# 925#
888# CONFIG_PRINTK_TIME is not set 926# CONFIG_PRINTK_TIME is not set
889# CONFIG_MAGIC_SYSRQ is not set 927# CONFIG_MAGIC_SYSRQ is not set
928# CONFIG_UNUSED_SYMBOLS is not set
890# CONFIG_DEBUG_KERNEL is not set 929# CONFIG_DEBUG_KERNEL is not set
891CONFIG_LOG_BUF_SHIFT=14 930CONFIG_LOG_BUF_SHIFT=14
892# CONFIG_DEBUG_FS is not set 931# CONFIG_DEBUG_FS is not set
@@ -928,7 +967,6 @@ CONFIG_CRYPTO_ANUBIS=y
928CONFIG_CRYPTO_DEFLATE=y 967CONFIG_CRYPTO_DEFLATE=y
929CONFIG_CRYPTO_MICHAEL_MIC=y 968CONFIG_CRYPTO_MICHAEL_MIC=y
930CONFIG_CRYPTO_CRC32C=y 969CONFIG_CRYPTO_CRC32C=y
931# CONFIG_CRYPTO_TEST is not set
932 970
933# 971#
934# Hardware crypto devices 972# Hardware crypto devices
@@ -943,3 +981,4 @@ CONFIG_CRC32=y
943CONFIG_LIBCRC32C=y 981CONFIG_LIBCRC32C=y
944CONFIG_ZLIB_INFLATE=y 982CONFIG_ZLIB_INFLATE=y
945CONFIG_ZLIB_DEFLATE=y 983CONFIG_ZLIB_DEFLATE=y
984CONFIG_PLIST=y
diff --git a/arch/mips/configs/it8172_defconfig b/arch/mips/configs/it8172_defconfig
index 809bae9013ac..a91d72a9ca86 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:05 2006 4# Thu Jul 6 10:04:11 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_ITE8172=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_ITE8172=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71# CONFIG_CPU_BIG_ENDIAN is not set 75# CONFIG_CPU_BIG_ENDIAN is not set
@@ -114,7 +118,10 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_8KB is not set 118# CONFIG_PAGE_SIZE_8KB is not set
115# CONFIG_PAGE_SIZE_16KB is not set 119# CONFIG_PAGE_SIZE_16KB is not set
116# CONFIG_PAGE_SIZE_64KB is not set 120# CONFIG_PAGE_SIZE_64KB is not set
117# CONFIG_MIPS_MT is not set 121CONFIG_MIPS_MT_DISABLED=y
122# CONFIG_MIPS_MT_SMTC is not set
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_VPE_LOADER is not set
118CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 127CONFIG_GENERIC_HARDIRQS=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -172,14 +181,15 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
182CONFIG_OBSOLETE_INTERMODULE=y
183 193
184# 194#
185# Loadable module support 195# Loadable module support
@@ -266,6 +276,8 @@ CONFIG_IP_PNP_BOOTP=y
266# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
267# CONFIG_INET_XFRM_TUNNEL is not set 277# CONFIG_INET_XFRM_TUNNEL is not set
268# CONFIG_INET_TUNNEL is not set 278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_XFRM_MODE_TRANSPORT=m
280CONFIG_INET_XFRM_MODE_TUNNEL=m
269CONFIG_INET_DIAG=y 281CONFIG_INET_DIAG=y
270CONFIG_INET_TCP_DIAG=y 282CONFIG_INET_TCP_DIAG=y
271# CONFIG_TCP_CONG_ADVANCED is not set 283# CONFIG_TCP_CONG_ADVANCED is not set
@@ -273,6 +285,7 @@ CONFIG_TCP_CONG_BIC=y
273# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
274# CONFIG_INET6_XFRM_TUNNEL is not set 286# CONFIG_INET6_XFRM_TUNNEL is not set
275# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETWORK_SECMARK=y
276# CONFIG_NETFILTER is not set 289# CONFIG_NETFILTER is not set
277 290
278# 291#
@@ -332,6 +345,7 @@ CONFIG_WIRELESS_EXT=y
332CONFIG_STANDALONE=y 345CONFIG_STANDALONE=y
333CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
334# CONFIG_FW_LOADER is not set 347# CONFIG_FW_LOADER is not set
348# CONFIG_SYS_HYPERVISOR is not set
335 349
336# 350#
337# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -513,6 +527,8 @@ CONFIG_DAVICOM_PHY=m
513CONFIG_QSEMI_PHY=m 527CONFIG_QSEMI_PHY=m
514CONFIG_LXT_PHY=m 528CONFIG_LXT_PHY=m
515CONFIG_CICADA_PHY=m 529CONFIG_CICADA_PHY=m
530CONFIG_VITESSE_PHY=m
531CONFIG_SMSC_PHY=m
516 532
517# 533#
518# Ethernet (10 or 100Mbit) 534# Ethernet (10 or 100Mbit)
@@ -601,6 +617,7 @@ CONFIG_SERIO_RAW=m
601CONFIG_VT=y 617CONFIG_VT=y
602CONFIG_VT_CONSOLE=y 618CONFIG_VT_CONSOLE=y
603CONFIG_HW_CONSOLE=y 619CONFIG_HW_CONSOLE=y
620CONFIG_VT_HW_CONSOLE_BINDING=y
604# CONFIG_SERIAL_NONSTANDARD is not set 621# CONFIG_SERIAL_NONSTANDARD is not set
605# CONFIG_QTRONIX_KEYBOARD is not set 622# CONFIG_QTRONIX_KEYBOARD is not set
606# CONFIG_IT8172_SCR0 is not set 623# CONFIG_IT8172_SCR0 is not set
@@ -634,6 +651,7 @@ CONFIG_LEGACY_PTY_COUNT=256
634# Watchdog Cards 651# Watchdog Cards
635# 652#
636# CONFIG_WATCHDOG is not set 653# CONFIG_WATCHDOG is not set
654# CONFIG_HW_RANDOM is not set
637# CONFIG_RTC is not set 655# CONFIG_RTC is not set
638# CONFIG_GEN_RTC is not set 656# CONFIG_GEN_RTC is not set
639# CONFIG_DTLK is not set 657# CONFIG_DTLK is not set
@@ -680,6 +698,7 @@ CONFIG_LEGACY_PTY_COUNT=256
680# Multimedia devices 698# Multimedia devices
681# 699#
682# CONFIG_VIDEO_DEV is not set 700# CONFIG_VIDEO_DEV is not set
701CONFIG_VIDEO_V4L2=y
683 702
684# 703#
685# Digital Video Broadcasting Devices 704# Digital Video Broadcasting Devices
@@ -689,6 +708,7 @@ CONFIG_LEGACY_PTY_COUNT=256
689# 708#
690# Graphics support 709# Graphics support
691# 710#
711# CONFIG_FIRMWARE_EDID is not set
692# CONFIG_FB is not set 712# CONFIG_FB is not set
693 713
694# 714#
@@ -763,6 +783,19 @@ CONFIG_SOUND_IT8172=y
763# CONFIG_RTC_CLASS is not set 783# CONFIG_RTC_CLASS is not set
764 784
765# 785#
786# DMA Engine support
787#
788# CONFIG_DMA_ENGINE is not set
789
790#
791# DMA Clients
792#
793
794#
795# DMA Devices
796#
797
798#
766# File systems 799# File systems
767# 800#
768CONFIG_EXT2_FS=y 801CONFIG_EXT2_FS=y
@@ -777,6 +810,7 @@ CONFIG_EXT2_FS=y
777# CONFIG_MINIX_FS is not set 810# CONFIG_MINIX_FS is not set
778# CONFIG_ROMFS_FS is not set 811# CONFIG_ROMFS_FS is not set
779CONFIG_INOTIFY=y 812CONFIG_INOTIFY=y
813CONFIG_INOTIFY_USER=y
780# CONFIG_QUOTA is not set 814# CONFIG_QUOTA is not set
781CONFIG_DNOTIFY=y 815CONFIG_DNOTIFY=y
782# CONFIG_AUTOFS_FS is not set 816# CONFIG_AUTOFS_FS is not set
@@ -842,6 +876,7 @@ CONFIG_SUNRPC=y
842# CONFIG_RPCSEC_GSS_SPKM3 is not set 876# CONFIG_RPCSEC_GSS_SPKM3 is not set
843# CONFIG_SMB_FS is not set 877# CONFIG_SMB_FS is not set
844# CONFIG_CIFS is not set 878# CONFIG_CIFS is not set
879# CONFIG_CIFS_DEBUG2 is not set
845# CONFIG_NCP_FS is not set 880# CONFIG_NCP_FS is not set
846# CONFIG_CODA_FS is not set 881# CONFIG_CODA_FS is not set
847# CONFIG_AFS_FS is not set 882# CONFIG_AFS_FS is not set
@@ -868,6 +903,7 @@ CONFIG_MSDOS_PARTITION=y
868# 903#
869# CONFIG_PRINTK_TIME is not set 904# CONFIG_PRINTK_TIME is not set
870# CONFIG_MAGIC_SYSRQ is not set 905# CONFIG_MAGIC_SYSRQ is not set
906# CONFIG_UNUSED_SYMBOLS is not set
871# CONFIG_DEBUG_KERNEL is not set 907# CONFIG_DEBUG_KERNEL is not set
872CONFIG_LOG_BUF_SHIFT=14 908CONFIG_LOG_BUF_SHIFT=14
873# CONFIG_DEBUG_FS is not set 909# CONFIG_DEBUG_FS is not set
@@ -923,3 +959,4 @@ CONFIG_CRC32=m
923CONFIG_LIBCRC32C=m 959CONFIG_LIBCRC32C=m
924CONFIG_ZLIB_INFLATE=m 960CONFIG_ZLIB_INFLATE=m
925CONFIG_ZLIB_DEFLATE=m 961CONFIG_ZLIB_DEFLATE=m
962CONFIG_PLIST=y
diff --git a/arch/mips/configs/ivr_defconfig b/arch/mips/configs/ivr_defconfig
index 55108fd67844..cebc67212d06 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:06 2006 4# Thu Jul 6 10:04:12 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_IVR=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_IVR=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -111,7 +115,10 @@ CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_8KB is not set 115# CONFIG_PAGE_SIZE_8KB is not set
112# CONFIG_PAGE_SIZE_16KB is not set 116# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 117# CONFIG_PAGE_SIZE_64KB is not set
114# CONFIG_MIPS_MT is not set 118CONFIG_MIPS_MT_DISABLED=y
119# CONFIG_MIPS_MT_SMTC is not set
120# CONFIG_MIPS_MT_SMP is not set
121# CONFIG_MIPS_VPE_LOADER is not set
115CONFIG_CPU_HAS_LLSC=y 122CONFIG_CPU_HAS_LLSC=y
116CONFIG_CPU_HAS_SYNC=y 123CONFIG_CPU_HAS_SYNC=y
117CONFIG_GENERIC_HARDIRQS=y 124CONFIG_GENERIC_HARDIRQS=y
@@ -125,6 +132,7 @@ CONFIG_FLATMEM=y
125CONFIG_FLAT_NODE_MEM_MAP=y 132CONFIG_FLAT_NODE_MEM_MAP=y
126# CONFIG_SPARSEMEM_STATIC is not set 133# CONFIG_SPARSEMEM_STATIC is not set
127CONFIG_SPLIT_PTLOCK_CPUS=4 134CONFIG_SPLIT_PTLOCK_CPUS=4
135# CONFIG_RESOURCES_64BIT is not set
128# CONFIG_HZ_48 is not set 136# CONFIG_HZ_48 is not set
129# CONFIG_HZ_100 is not set 137# CONFIG_HZ_100 is not set
130# CONFIG_HZ_128 is not set 138# CONFIG_HZ_128 is not set
@@ -137,6 +145,7 @@ CONFIG_HZ=1000
137CONFIG_PREEMPT_NONE=y 145CONFIG_PREEMPT_NONE=y
138# CONFIG_PREEMPT_VOLUNTARY is not set 146# CONFIG_PREEMPT_VOLUNTARY is not set
139# CONFIG_PREEMPT is not set 147# CONFIG_PREEMPT is not set
148CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
140 149
141# 150#
142# Code maturity level options 151# Code maturity level options
@@ -169,10 +178,12 @@ CONFIG_PRINTK=y
169CONFIG_BUG=y 178CONFIG_BUG=y
170CONFIG_ELF_CORE=y 179CONFIG_ELF_CORE=y
171CONFIG_BASE_FULL=y 180CONFIG_BASE_FULL=y
181CONFIG_RT_MUTEXES=y
172CONFIG_FUTEX=y 182CONFIG_FUTEX=y
173CONFIG_EPOLL=y 183CONFIG_EPOLL=y
174CONFIG_SHMEM=y 184CONFIG_SHMEM=y
175CONFIG_SLAB=y 185CONFIG_SLAB=y
186CONFIG_VM_EVENT_COUNTERS=y
176# CONFIG_TINY_SHMEM is not set 187# CONFIG_TINY_SHMEM is not set
177CONFIG_BASE_SMALL=0 188CONFIG_BASE_SMALL=0
178# CONFIG_SLOB is not set 189# CONFIG_SLOB is not set
@@ -263,6 +274,8 @@ CONFIG_IP_PNP_BOOTP=y
263# CONFIG_INET_IPCOMP is not set 274# CONFIG_INET_IPCOMP is not set
264# CONFIG_INET_XFRM_TUNNEL is not set 275# CONFIG_INET_XFRM_TUNNEL is not set
265# CONFIG_INET_TUNNEL is not set 276# CONFIG_INET_TUNNEL is not set
277CONFIG_INET_XFRM_MODE_TRANSPORT=m
278CONFIG_INET_XFRM_MODE_TUNNEL=m
266CONFIG_INET_DIAG=y 279CONFIG_INET_DIAG=y
267CONFIG_INET_TCP_DIAG=y 280CONFIG_INET_TCP_DIAG=y
268# CONFIG_TCP_CONG_ADVANCED is not set 281# CONFIG_TCP_CONG_ADVANCED is not set
@@ -270,6 +283,7 @@ CONFIG_TCP_CONG_BIC=y
270# CONFIG_IPV6 is not set 283# CONFIG_IPV6 is not set
271# CONFIG_INET6_XFRM_TUNNEL is not set 284# CONFIG_INET6_XFRM_TUNNEL is not set
272# CONFIG_INET6_TUNNEL is not set 285# CONFIG_INET6_TUNNEL is not set
286CONFIG_NETWORK_SECMARK=y
273# CONFIG_NETFILTER is not set 287# CONFIG_NETFILTER is not set
274 288
275# 289#
@@ -329,6 +343,7 @@ CONFIG_WIRELESS_EXT=y
329CONFIG_STANDALONE=y 343CONFIG_STANDALONE=y
330CONFIG_PREVENT_FIRMWARE_BUILD=y 344CONFIG_PREVENT_FIRMWARE_BUILD=y
331CONFIG_FW_LOADER=m 345CONFIG_FW_LOADER=m
346# CONFIG_SYS_HYPERVISOR is not set
332 347
333# 348#
334# Connector - unified userspace <-> kernelspace linker 349# Connector - unified userspace <-> kernelspace linker
@@ -447,6 +462,8 @@ CONFIG_DAVICOM_PHY=m
447CONFIG_QSEMI_PHY=m 462CONFIG_QSEMI_PHY=m
448CONFIG_LXT_PHY=m 463CONFIG_LXT_PHY=m
449CONFIG_CICADA_PHY=m 464CONFIG_CICADA_PHY=m
465CONFIG_VITESSE_PHY=m
466CONFIG_SMSC_PHY=m
450 467
451# 468#
452# Ethernet (10 or 100Mbit) 469# Ethernet (10 or 100Mbit)
@@ -489,6 +506,7 @@ CONFIG_NET_ETHERNET=y
489# CONFIG_CHELSIO_T1 is not set 506# CONFIG_CHELSIO_T1 is not set
490# CONFIG_IXGB is not set 507# CONFIG_IXGB is not set
491# CONFIG_S2IO is not set 508# CONFIG_S2IO is not set
509# CONFIG_MYRI10GE is not set
492 510
493# 511#
494# Token Ring devices 512# Token Ring devices
@@ -566,6 +584,7 @@ CONFIG_SERIO_RAW=m
566CONFIG_VT=y 584CONFIG_VT=y
567CONFIG_VT_CONSOLE=y 585CONFIG_VT_CONSOLE=y
568CONFIG_HW_CONSOLE=y 586CONFIG_HW_CONSOLE=y
587CONFIG_VT_HW_CONSOLE_BINDING=y
569# CONFIG_SERIAL_NONSTANDARD is not set 588# CONFIG_SERIAL_NONSTANDARD is not set
570CONFIG_QTRONIX_KEYBOARD=y 589CONFIG_QTRONIX_KEYBOARD=y
571CONFIG_IT8172_SCR0=y 590CONFIG_IT8172_SCR0=y
@@ -600,6 +619,7 @@ CONFIG_LEGACY_PTY_COUNT=256
600# Watchdog Cards 619# Watchdog Cards
601# 620#
602# CONFIG_WATCHDOG is not set 621# CONFIG_WATCHDOG is not set
622# CONFIG_HW_RANDOM is not set
603CONFIG_RTC=y 623CONFIG_RTC=y
604# CONFIG_DTLK is not set 624# CONFIG_DTLK is not set
605# CONFIG_R3964 is not set 625# CONFIG_R3964 is not set
@@ -647,6 +667,7 @@ CONFIG_RTC=y
647# Multimedia devices 667# Multimedia devices
648# 668#
649# CONFIG_VIDEO_DEV is not set 669# CONFIG_VIDEO_DEV is not set
670CONFIG_VIDEO_V4L2=y
650 671
651# 672#
652# Digital Video Broadcasting Devices 673# Digital Video Broadcasting Devices
@@ -656,6 +677,7 @@ CONFIG_RTC=y
656# 677#
657# Graphics support 678# Graphics support
658# 679#
680# CONFIG_FIRMWARE_EDID is not set
659# CONFIG_FB is not set 681# CONFIG_FB is not set
660 682
661# 683#
@@ -719,6 +741,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
719# CONFIG_RTC_CLASS is not set 741# CONFIG_RTC_CLASS is not set
720 742
721# 743#
744# DMA Engine support
745#
746# CONFIG_DMA_ENGINE is not set
747
748#
749# DMA Clients
750#
751
752#
753# DMA Devices
754#
755
756#
722# File systems 757# File systems
723# 758#
724CONFIG_EXT2_FS=y 759CONFIG_EXT2_FS=y
@@ -733,6 +768,7 @@ CONFIG_EXT2_FS=y
733# CONFIG_MINIX_FS is not set 768# CONFIG_MINIX_FS is not set
734# CONFIG_ROMFS_FS is not set 769# CONFIG_ROMFS_FS is not set
735CONFIG_INOTIFY=y 770CONFIG_INOTIFY=y
771CONFIG_INOTIFY_USER=y
736# CONFIG_QUOTA is not set 772# CONFIG_QUOTA is not set
737CONFIG_DNOTIFY=y 773CONFIG_DNOTIFY=y
738# CONFIG_AUTOFS_FS is not set 774# CONFIG_AUTOFS_FS is not set
@@ -796,6 +832,7 @@ CONFIG_SUNRPC=y
796# CONFIG_RPCSEC_GSS_SPKM3 is not set 832# CONFIG_RPCSEC_GSS_SPKM3 is not set
797# CONFIG_SMB_FS is not set 833# CONFIG_SMB_FS is not set
798# CONFIG_CIFS is not set 834# CONFIG_CIFS is not set
835# CONFIG_CIFS_DEBUG2 is not set
799# CONFIG_NCP_FS is not set 836# CONFIG_NCP_FS is not set
800# CONFIG_CODA_FS is not set 837# CONFIG_CODA_FS is not set
801# CONFIG_AFS_FS is not set 838# CONFIG_AFS_FS is not set
@@ -822,6 +859,7 @@ CONFIG_MSDOS_PARTITION=y
822# 859#
823# CONFIG_PRINTK_TIME is not set 860# CONFIG_PRINTK_TIME is not set
824# CONFIG_MAGIC_SYSRQ is not set 861# CONFIG_MAGIC_SYSRQ is not set
862# CONFIG_UNUSED_SYMBOLS is not set
825# CONFIG_DEBUG_KERNEL is not set 863# CONFIG_DEBUG_KERNEL is not set
826CONFIG_LOG_BUF_SHIFT=14 864CONFIG_LOG_BUF_SHIFT=14
827# CONFIG_DEBUG_FS is not set 865# CONFIG_DEBUG_FS is not set
@@ -877,3 +915,4 @@ CONFIG_CRC32=m
877CONFIG_LIBCRC32C=m 915CONFIG_LIBCRC32C=m
878CONFIG_ZLIB_INFLATE=m 916CONFIG_ZLIB_INFLATE=m
879CONFIG_ZLIB_DEFLATE=m 917CONFIG_ZLIB_DEFLATE=m
918CONFIG_PLIST=y
diff --git a/arch/mips/configs/jaguar-atx_defconfig b/arch/mips/configs/jaguar-atx_defconfig
index ef2843436057..5d9eb11aba3d 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:06 2006 4# Thu Jul 6 10:04:12 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36CONFIG_MOMENCO_JAGUAR_ATX=y 38CONFIG_MOMENCO_JAGUAR_ATX=y
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MOMENCO_JAGUAR_ATX=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
71CONFIG_LIMITED_DMA=y 75CONFIG_LIMITED_DMA=y
@@ -120,7 +124,10 @@ CONFIG_PAGE_SIZE_4KB=y
120CONFIG_BOARD_SCACHE=y 124CONFIG_BOARD_SCACHE=y
121CONFIG_RM7000_CPU_SCACHE=y 125CONFIG_RM7000_CPU_SCACHE=y
122CONFIG_CPU_HAS_PREFETCH=y 126CONFIG_CPU_HAS_PREFETCH=y
123# CONFIG_MIPS_MT is not set 127CONFIG_MIPS_MT_DISABLED=y
128# CONFIG_MIPS_MT_SMTC is not set
129# CONFIG_MIPS_MT_SMP is not set
130# CONFIG_MIPS_VPE_LOADER is not set
124# CONFIG_64BIT_PHYS_ADDR is not set 131# CONFIG_64BIT_PHYS_ADDR is not set
125CONFIG_CPU_HAS_LLSC=y 132CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 133CONFIG_CPU_HAS_SYNC=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -143,10 +151,10 @@ CONFIG_HZ_1000=y
143# CONFIG_HZ_1024 is not set 151# CONFIG_HZ_1024 is not set
144CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 152CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
145CONFIG_HZ=1000 153CONFIG_HZ=1000
146# CONFIG_SMP is not set
147CONFIG_PREEMPT_NONE=y 154CONFIG_PREEMPT_NONE=y
148# CONFIG_PREEMPT_VOLUNTARY is not set 155# CONFIG_PREEMPT_VOLUNTARY is not set
149# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
150 158
151# 159#
152# Code maturity level options 160# Code maturity level options
@@ -177,10 +185,12 @@ CONFIG_PRINTK=y
177CONFIG_BUG=y 185CONFIG_BUG=y
178CONFIG_ELF_CORE=y 186CONFIG_ELF_CORE=y
179CONFIG_BASE_FULL=y 187CONFIG_BASE_FULL=y
188CONFIG_RT_MUTEXES=y
180CONFIG_FUTEX=y 189CONFIG_FUTEX=y
181CONFIG_EPOLL=y 190CONFIG_EPOLL=y
182CONFIG_SHMEM=y 191CONFIG_SHMEM=y
183CONFIG_SLAB=y 192CONFIG_SLAB=y
193CONFIG_VM_EVENT_COUNTERS=y
184# CONFIG_TINY_SHMEM is not set 194# CONFIG_TINY_SHMEM is not set
185CONFIG_BASE_SMALL=0 195CONFIG_BASE_SMALL=0
186# CONFIG_SLOB is not set 196# CONFIG_SLOB is not set
@@ -267,6 +277,8 @@ CONFIG_IP_PNP_BOOTP=y
267# CONFIG_INET_IPCOMP is not set 277# CONFIG_INET_IPCOMP is not set
268# CONFIG_INET_XFRM_TUNNEL is not set 278# CONFIG_INET_XFRM_TUNNEL is not set
269# CONFIG_INET_TUNNEL is not set 279# CONFIG_INET_TUNNEL is not set
280CONFIG_INET_XFRM_MODE_TRANSPORT=m
281CONFIG_INET_XFRM_MODE_TUNNEL=m
270CONFIG_INET_DIAG=y 282CONFIG_INET_DIAG=y
271CONFIG_INET_TCP_DIAG=y 283CONFIG_INET_TCP_DIAG=y
272# CONFIG_TCP_CONG_ADVANCED is not set 284# CONFIG_TCP_CONG_ADVANCED is not set
@@ -279,7 +291,10 @@ CONFIG_INET6_ESP=m
279CONFIG_INET6_IPCOMP=m 291CONFIG_INET6_IPCOMP=m
280CONFIG_INET6_XFRM_TUNNEL=m 292CONFIG_INET6_XFRM_TUNNEL=m
281CONFIG_INET6_TUNNEL=m 293CONFIG_INET6_TUNNEL=m
294CONFIG_INET6_XFRM_MODE_TRANSPORT=m
295CONFIG_INET6_XFRM_MODE_TUNNEL=m
282CONFIG_IPV6_TUNNEL=m 296CONFIG_IPV6_TUNNEL=m
297CONFIG_NETWORK_SECMARK=y
283# CONFIG_NETFILTER is not set 298# CONFIG_NETFILTER is not set
284# CONFIG_BRIDGE is not set 299# CONFIG_BRIDGE is not set
285# CONFIG_VLAN_8021Q is not set 300# CONFIG_VLAN_8021Q is not set
@@ -315,6 +330,7 @@ CONFIG_IEEE80211_CRYPT_CCMP=m
315CONFIG_STANDALONE=y 330CONFIG_STANDALONE=y
316CONFIG_PREVENT_FIRMWARE_BUILD=y 331CONFIG_PREVENT_FIRMWARE_BUILD=y
317CONFIG_FW_LOADER=m 332CONFIG_FW_LOADER=m
333# CONFIG_SYS_HYPERVISOR is not set
318 334
319# 335#
320# Connector - unified userspace <-> kernelspace linker 336# Connector - unified userspace <-> kernelspace linker
@@ -409,6 +425,8 @@ CONFIG_DAVICOM_PHY=m
409CONFIG_QSEMI_PHY=m 425CONFIG_QSEMI_PHY=m
410CONFIG_LXT_PHY=m 426CONFIG_LXT_PHY=m
411CONFIG_CICADA_PHY=m 427CONFIG_CICADA_PHY=m
428CONFIG_VITESSE_PHY=m
429CONFIG_SMSC_PHY=m
412 430
413# 431#
414# Ethernet (10 or 100Mbit) 432# Ethernet (10 or 100Mbit)
@@ -430,6 +448,7 @@ CONFIG_NET_PCI=y
430# CONFIG_PCNET32 is not set 448# CONFIG_PCNET32 is not set
431# CONFIG_AMD8111_ETH is not set 449# CONFIG_AMD8111_ETH is not set
432# CONFIG_ADAPTEC_STARFIRE is not set 450# CONFIG_ADAPTEC_STARFIRE is not set
451# CONFIG_B44 is not set
433# CONFIG_FORCEDETH is not set 452# CONFIG_FORCEDETH is not set
434# CONFIG_DGRS is not set 453# CONFIG_DGRS is not set
435CONFIG_EEPRO100=y 454CONFIG_EEPRO100=y
@@ -470,6 +489,7 @@ CONFIG_MV643XX_ETH_2=y
470# CONFIG_CHELSIO_T1 is not set 489# CONFIG_CHELSIO_T1 is not set
471# CONFIG_IXGB is not set 490# CONFIG_IXGB is not set
472# CONFIG_S2IO is not set 491# CONFIG_S2IO is not set
492# CONFIG_MYRI10GE is not set
473 493
474# 494#
475# Token Ring devices 495# Token Ring devices
@@ -547,6 +567,7 @@ CONFIG_LEGACY_PTY_COUNT=256
547# Watchdog Cards 567# Watchdog Cards
548# 568#
549# CONFIG_WATCHDOG is not set 569# CONFIG_WATCHDOG is not set
570# CONFIG_HW_RANDOM is not set
550# CONFIG_RTC is not set 571# CONFIG_RTC is not set
551# CONFIG_GEN_RTC is not set 572# CONFIG_GEN_RTC is not set
552# CONFIG_DTLK is not set 573# CONFIG_DTLK is not set
@@ -593,6 +614,7 @@ CONFIG_LEGACY_PTY_COUNT=256
593# Multimedia devices 614# Multimedia devices
594# 615#
595# CONFIG_VIDEO_DEV is not set 616# CONFIG_VIDEO_DEV is not set
617CONFIG_VIDEO_V4L2=y
596 618
597# 619#
598# Digital Video Broadcasting Devices 620# Digital Video Broadcasting Devices
@@ -602,6 +624,7 @@ CONFIG_LEGACY_PTY_COUNT=256
602# 624#
603# Graphics support 625# Graphics support
604# 626#
627# CONFIG_FIRMWARE_EDID is not set
605# CONFIG_FB is not set 628# CONFIG_FB is not set
606 629
607# 630#
@@ -658,6 +681,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
658# 681#
659 682
660# 683#
684# DMA Engine support
685#
686# CONFIG_DMA_ENGINE is not set
687
688#
689# DMA Clients
690#
691
692#
693# DMA Devices
694#
695
696#
661# File systems 697# File systems
662# 698#
663# CONFIG_EXT2_FS is not set 699# CONFIG_EXT2_FS is not set
@@ -669,6 +705,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
669# CONFIG_MINIX_FS is not set 705# CONFIG_MINIX_FS is not set
670# CONFIG_ROMFS_FS is not set 706# CONFIG_ROMFS_FS is not set
671CONFIG_INOTIFY=y 707CONFIG_INOTIFY=y
708CONFIG_INOTIFY_USER=y
672# CONFIG_QUOTA is not set 709# CONFIG_QUOTA is not set
673CONFIG_DNOTIFY=y 710CONFIG_DNOTIFY=y
674# CONFIG_AUTOFS_FS is not set 711# CONFIG_AUTOFS_FS is not set
@@ -721,6 +758,7 @@ CONFIG_NFS_COMMON=y
721CONFIG_SUNRPC=y 758CONFIG_SUNRPC=y
722# CONFIG_SMB_FS is not set 759# CONFIG_SMB_FS is not set
723# CONFIG_CIFS is not set 760# CONFIG_CIFS is not set
761# CONFIG_CIFS_DEBUG2 is not set
724# CONFIG_NCP_FS is not set 762# CONFIG_NCP_FS is not set
725# CONFIG_CODA_FS is not set 763# CONFIG_CODA_FS is not set
726 764
@@ -740,6 +778,7 @@ CONFIG_MSDOS_PARTITION=y
740# 778#
741# CONFIG_PRINTK_TIME is not set 779# CONFIG_PRINTK_TIME is not set
742# CONFIG_MAGIC_SYSRQ is not set 780# CONFIG_MAGIC_SYSRQ is not set
781# CONFIG_UNUSED_SYMBOLS is not set
743# CONFIG_DEBUG_KERNEL is not set 782# CONFIG_DEBUG_KERNEL is not set
744CONFIG_LOG_BUF_SHIFT=14 783CONFIG_LOG_BUF_SHIFT=14
745# CONFIG_DEBUG_FS is not set 784# CONFIG_DEBUG_FS is not set
@@ -795,3 +834,4 @@ CONFIG_CRC32=m
795CONFIG_LIBCRC32C=m 834CONFIG_LIBCRC32C=m
796CONFIG_ZLIB_INFLATE=m 835CONFIG_ZLIB_INFLATE=m
797CONFIG_ZLIB_DEFLATE=m 836CONFIG_ZLIB_DEFLATE=m
837CONFIG_PLIST=y
diff --git a/arch/mips/configs/jmr3927_defconfig b/arch/mips/configs/jmr3927_defconfig
index 5ef5a08289a5..be45a9044d06 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:07 2006 4# Thu Jul 6 10:04:12 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -110,7 +114,10 @@ CONFIG_PAGE_SIZE_4KB=y
110# CONFIG_PAGE_SIZE_8KB is not set 114# CONFIG_PAGE_SIZE_8KB is not set
111# CONFIG_PAGE_SIZE_16KB is not set 115# CONFIG_PAGE_SIZE_16KB is not set
112# CONFIG_PAGE_SIZE_64KB is not set 116# CONFIG_PAGE_SIZE_64KB is not set
113# CONFIG_MIPS_MT is not set 117CONFIG_MIPS_MT_DISABLED=y
118# CONFIG_MIPS_MT_SMTC is not set
119# CONFIG_MIPS_MT_SMP is not set
120# CONFIG_MIPS_VPE_LOADER is not set
114CONFIG_CPU_HAS_SYNC=y 121CONFIG_CPU_HAS_SYNC=y
115CONFIG_GENERIC_HARDIRQS=y 122CONFIG_GENERIC_HARDIRQS=y
116CONFIG_GENERIC_IRQ_PROBE=y 123CONFIG_GENERIC_IRQ_PROBE=y
@@ -123,6 +130,7 @@ CONFIG_FLATMEM=y
123CONFIG_FLAT_NODE_MEM_MAP=y 130CONFIG_FLAT_NODE_MEM_MAP=y
124# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
125CONFIG_SPLIT_PTLOCK_CPUS=4 132CONFIG_SPLIT_PTLOCK_CPUS=4
133# CONFIG_RESOURCES_64BIT is not set
126# CONFIG_HZ_48 is not set 134# CONFIG_HZ_48 is not set
127# CONFIG_HZ_100 is not set 135# CONFIG_HZ_100 is not set
128# CONFIG_HZ_128 is not set 136# CONFIG_HZ_128 is not set
@@ -136,6 +144,7 @@ CONFIG_PREEMPT_NONE=y
136# CONFIG_PREEMPT_VOLUNTARY is not set 144# CONFIG_PREEMPT_VOLUNTARY is not set
137# CONFIG_PREEMPT is not set 145# CONFIG_PREEMPT is not set
138CONFIG_RTC_DS1742=y 146CONFIG_RTC_DS1742=y
147CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
139 148
140# 149#
141# Code maturity level options 150# Code maturity level options
@@ -167,10 +176,12 @@ CONFIG_PRINTK=y
167CONFIG_BUG=y 176CONFIG_BUG=y
168CONFIG_ELF_CORE=y 177CONFIG_ELF_CORE=y
169CONFIG_BASE_FULL=y 178CONFIG_BASE_FULL=y
179CONFIG_RT_MUTEXES=y
170CONFIG_FUTEX=y 180CONFIG_FUTEX=y
171CONFIG_EPOLL=y 181CONFIG_EPOLL=y
172CONFIG_SHMEM=y 182CONFIG_SHMEM=y
173CONFIG_SLAB=y 183CONFIG_SLAB=y
184CONFIG_VM_EVENT_COUNTERS=y
174# CONFIG_TINY_SHMEM is not set 185# CONFIG_TINY_SHMEM is not set
175CONFIG_BASE_SMALL=0 186CONFIG_BASE_SMALL=0
176# CONFIG_SLOB is not set 187# CONFIG_SLOB is not set
@@ -256,6 +267,8 @@ CONFIG_IP_PNP_BOOTP=y
256# CONFIG_INET_IPCOMP is not set 267# CONFIG_INET_IPCOMP is not set
257# CONFIG_INET_XFRM_TUNNEL is not set 268# CONFIG_INET_XFRM_TUNNEL is not set
258# CONFIG_INET_TUNNEL is not set 269# CONFIG_INET_TUNNEL is not set
270CONFIG_INET_XFRM_MODE_TRANSPORT=y
271CONFIG_INET_XFRM_MODE_TUNNEL=y
259CONFIG_INET_DIAG=y 272CONFIG_INET_DIAG=y
260CONFIG_INET_TCP_DIAG=y 273CONFIG_INET_TCP_DIAG=y
261# CONFIG_TCP_CONG_ADVANCED is not set 274# CONFIG_TCP_CONG_ADVANCED is not set
@@ -263,6 +276,7 @@ CONFIG_TCP_CONG_BIC=y
263# CONFIG_IPV6 is not set 276# CONFIG_IPV6 is not set
264# CONFIG_INET6_XFRM_TUNNEL is not set 277# CONFIG_INET6_XFRM_TUNNEL is not set
265# CONFIG_INET6_TUNNEL is not set 278# CONFIG_INET6_TUNNEL is not set
279CONFIG_NETWORK_SECMARK=y
266# CONFIG_NETFILTER is not set 280# CONFIG_NETFILTER is not set
267 281
268# 282#
@@ -322,6 +336,7 @@ CONFIG_WIRELESS_EXT=y
322CONFIG_STANDALONE=y 336CONFIG_STANDALONE=y
323CONFIG_PREVENT_FIRMWARE_BUILD=y 337CONFIG_PREVENT_FIRMWARE_BUILD=y
324CONFIG_FW_LOADER=y 338CONFIG_FW_LOADER=y
339# CONFIG_SYS_HYPERVISOR is not set
325 340
326# 341#
327# Connector - unified userspace <-> kernelspace linker 342# Connector - unified userspace <-> kernelspace linker
@@ -419,6 +434,8 @@ CONFIG_DAVICOM_PHY=y
419CONFIG_QSEMI_PHY=y 434CONFIG_QSEMI_PHY=y
420CONFIG_LXT_PHY=y 435CONFIG_LXT_PHY=y
421CONFIG_CICADA_PHY=y 436CONFIG_CICADA_PHY=y
437CONFIG_VITESSE_PHY=y
438CONFIG_SMSC_PHY=y
422 439
423# 440#
424# Ethernet (10 or 100Mbit) 441# Ethernet (10 or 100Mbit)
@@ -461,6 +478,7 @@ CONFIG_NET_ETHERNET=y
461# CONFIG_CHELSIO_T1 is not set 478# CONFIG_CHELSIO_T1 is not set
462# CONFIG_IXGB is not set 479# CONFIG_IXGB is not set
463# CONFIG_S2IO is not set 480# CONFIG_S2IO is not set
481# CONFIG_MYRI10GE is not set
464 482
465# 483#
466# Token Ring devices 484# Token Ring devices
@@ -538,6 +556,7 @@ CONFIG_SERIO_RAW=y
538CONFIG_VT=y 556CONFIG_VT=y
539CONFIG_VT_CONSOLE=y 557CONFIG_VT_CONSOLE=y
540CONFIG_HW_CONSOLE=y 558CONFIG_HW_CONSOLE=y
559CONFIG_VT_HW_CONSOLE_BINDING=y
541CONFIG_SERIAL_NONSTANDARD=y 560CONFIG_SERIAL_NONSTANDARD=y
542# CONFIG_COMPUTONE is not set 561# CONFIG_COMPUTONE is not set
543# CONFIG_ROCKETPORT is not set 562# CONFIG_ROCKETPORT is not set
@@ -582,6 +601,7 @@ CONFIG_LEGACY_PTY_COUNT=256
582# Watchdog Cards 601# Watchdog Cards
583# 602#
584# CONFIG_WATCHDOG is not set 603# CONFIG_WATCHDOG is not set
604# CONFIG_HW_RANDOM is not set
585# CONFIG_RTC is not set 605# CONFIG_RTC is not set
586# CONFIG_GEN_RTC is not set 606# CONFIG_GEN_RTC is not set
587# CONFIG_DTLK is not set 607# CONFIG_DTLK is not set
@@ -630,6 +650,7 @@ CONFIG_LEGACY_PTY_COUNT=256
630# Multimedia devices 650# Multimedia devices
631# 651#
632# CONFIG_VIDEO_DEV is not set 652# CONFIG_VIDEO_DEV is not set
653CONFIG_VIDEO_V4L2=y
633 654
634# 655#
635# Digital Video Broadcasting Devices 656# Digital Video Broadcasting Devices
@@ -639,12 +660,13 @@ CONFIG_LEGACY_PTY_COUNT=256
639# 660#
640# Graphics support 661# Graphics support
641# 662#
663# CONFIG_FIRMWARE_EDID is not set
642CONFIG_FB=y 664CONFIG_FB=y
643# CONFIG_FB_CFB_FILLRECT is not set 665# CONFIG_FB_CFB_FILLRECT is not set
644# CONFIG_FB_CFB_COPYAREA is not set 666# CONFIG_FB_CFB_COPYAREA is not set
645# CONFIG_FB_CFB_IMAGEBLIT is not set 667# CONFIG_FB_CFB_IMAGEBLIT is not set
646# CONFIG_FB_MACMODES is not set 668# CONFIG_FB_MACMODES is not set
647CONFIG_FB_FIRMWARE_EDID=y 669# CONFIG_FB_BACKLIGHT is not set
648# CONFIG_FB_MODE_HELPERS is not set 670# CONFIG_FB_MODE_HELPERS is not set
649# CONFIG_FB_TILEBLITTING is not set 671# CONFIG_FB_TILEBLITTING is not set
650# CONFIG_FB_CIRRUS is not set 672# CONFIG_FB_CIRRUS is not set
@@ -737,6 +759,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
737# CONFIG_RTC_CLASS is not set 759# CONFIG_RTC_CLASS is not set
738 760
739# 761#
762# DMA Engine support
763#
764# CONFIG_DMA_ENGINE is not set
765
766#
767# DMA Clients
768#
769
770#
771# DMA Devices
772#
773
774#
740# File systems 775# File systems
741# 776#
742# CONFIG_EXT2_FS is not set 777# CONFIG_EXT2_FS is not set
@@ -749,6 +784,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
749# CONFIG_MINIX_FS is not set 784# CONFIG_MINIX_FS is not set
750# CONFIG_ROMFS_FS is not set 785# CONFIG_ROMFS_FS is not set
751CONFIG_INOTIFY=y 786CONFIG_INOTIFY=y
787CONFIG_INOTIFY_USER=y
752# CONFIG_QUOTA is not set 788# CONFIG_QUOTA is not set
753CONFIG_DNOTIFY=y 789CONFIG_DNOTIFY=y
754# CONFIG_AUTOFS_FS is not set 790# CONFIG_AUTOFS_FS is not set
@@ -812,6 +848,7 @@ CONFIG_SUNRPC=y
812# CONFIG_RPCSEC_GSS_SPKM3 is not set 848# CONFIG_RPCSEC_GSS_SPKM3 is not set
813# CONFIG_SMB_FS is not set 849# CONFIG_SMB_FS is not set
814# CONFIG_CIFS is not set 850# CONFIG_CIFS is not set
851# CONFIG_CIFS_DEBUG2 is not set
815# CONFIG_NCP_FS is not set 852# CONFIG_NCP_FS is not set
816# CONFIG_CODA_FS is not set 853# CONFIG_CODA_FS is not set
817# CONFIG_AFS_FS is not set 854# CONFIG_AFS_FS is not set
@@ -838,6 +875,7 @@ CONFIG_MSDOS_PARTITION=y
838# 875#
839# CONFIG_PRINTK_TIME is not set 876# CONFIG_PRINTK_TIME is not set
840# CONFIG_MAGIC_SYSRQ is not set 877# CONFIG_MAGIC_SYSRQ is not set
878# CONFIG_UNUSED_SYMBOLS is not set
841# CONFIG_DEBUG_KERNEL is not set 879# CONFIG_DEBUG_KERNEL is not set
842CONFIG_LOG_BUF_SHIFT=14 880CONFIG_LOG_BUF_SHIFT=14
843# CONFIG_DEBUG_FS is not set 881# CONFIG_DEBUG_FS is not set
@@ -879,7 +917,6 @@ CONFIG_CRYPTO_ANUBIS=y
879CONFIG_CRYPTO_DEFLATE=y 917CONFIG_CRYPTO_DEFLATE=y
880CONFIG_CRYPTO_MICHAEL_MIC=y 918CONFIG_CRYPTO_MICHAEL_MIC=y
881CONFIG_CRYPTO_CRC32C=y 919CONFIG_CRYPTO_CRC32C=y
882# CONFIG_CRYPTO_TEST is not set
883 920
884# 921#
885# Hardware crypto devices 922# Hardware crypto devices
@@ -894,3 +931,4 @@ CONFIG_CRC32=y
894CONFIG_LIBCRC32C=y 931CONFIG_LIBCRC32C=y
895CONFIG_ZLIB_INFLATE=y 932CONFIG_ZLIB_INFLATE=y
896CONFIG_ZLIB_DEFLATE=y 933CONFIG_ZLIB_DEFLATE=y
934CONFIG_PLIST=y
diff --git a/arch/mips/configs/lasat200_defconfig b/arch/mips/configs/lasat200_defconfig
index eabcff26fc0e..64dc9f45a19c 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:07 2006 4# Thu Jul 6 10:04:12 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_LASAT=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_LASAT=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -69,6 +72,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
69CONFIG_GENERIC_FIND_NEXT_BIT=y 72CONFIG_GENERIC_FIND_NEXT_BIT=y
70CONFIG_GENERIC_HWEIGHT=y 73CONFIG_GENERIC_HWEIGHT=y
71CONFIG_GENERIC_CALIBRATE_DELAY=y 74CONFIG_GENERIC_CALIBRATE_DELAY=y
75CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
72CONFIG_DMA_NONCOHERENT=y 76CONFIG_DMA_NONCOHERENT=y
73CONFIG_DMA_NEED_PCI_MAP_STATE=y 77CONFIG_DMA_NEED_PCI_MAP_STATE=y
74CONFIG_MIPS_NILE4=y 78CONFIG_MIPS_NILE4=y
@@ -117,7 +121,10 @@ CONFIG_PAGE_SIZE_4KB=y
117# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
118CONFIG_BOARD_SCACHE=y 122CONFIG_BOARD_SCACHE=y
119CONFIG_R5000_CPU_SCACHE=y 123CONFIG_R5000_CPU_SCACHE=y
120# CONFIG_MIPS_MT is not set 124CONFIG_MIPS_MT_DISABLED=y
125# CONFIG_MIPS_MT_SMTC is not set
126# CONFIG_MIPS_MT_SMP is not set
127# CONFIG_MIPS_VPE_LOADER is not set
121# CONFIG_64BIT_PHYS_ADDR is not set 128# CONFIG_64BIT_PHYS_ADDR is not set
122CONFIG_CPU_HAS_LLSC=y 129CONFIG_CPU_HAS_LLSC=y
123CONFIG_CPU_HAS_SYNC=y 130CONFIG_CPU_HAS_SYNC=y
@@ -132,6 +139,7 @@ CONFIG_FLATMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
133# CONFIG_SPARSEMEM_STATIC is not set 140# CONFIG_SPARSEMEM_STATIC is not set
134CONFIG_SPLIT_PTLOCK_CPUS=4 141CONFIG_SPLIT_PTLOCK_CPUS=4
142# CONFIG_RESOURCES_64BIT is not set
135# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -144,6 +152,7 @@ CONFIG_HZ=1000
144CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
145# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
146# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
155CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147 156
148# 157#
149# Code maturity level options 158# Code maturity level options
@@ -175,14 +184,15 @@ CONFIG_PRINTK=y
175CONFIG_BUG=y 184CONFIG_BUG=y
176CONFIG_ELF_CORE=y 185CONFIG_ELF_CORE=y
177CONFIG_BASE_FULL=y 186CONFIG_BASE_FULL=y
187CONFIG_RT_MUTEXES=y
178CONFIG_FUTEX=y 188CONFIG_FUTEX=y
179CONFIG_EPOLL=y 189CONFIG_EPOLL=y
180CONFIG_SHMEM=y 190CONFIG_SHMEM=y
181CONFIG_SLAB=y 191CONFIG_SLAB=y
192CONFIG_VM_EVENT_COUNTERS=y
182# CONFIG_TINY_SHMEM is not set 193# CONFIG_TINY_SHMEM is not set
183CONFIG_BASE_SMALL=0 194CONFIG_BASE_SMALL=0
184# CONFIG_SLOB is not set 195# CONFIG_SLOB is not set
185CONFIG_OBSOLETE_INTERMODULE=y
186 196
187# 197#
188# Loadable module support 198# Loadable module support
@@ -266,6 +276,8 @@ CONFIG_IP_FIB_HASH=y
266# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
267# CONFIG_INET_XFRM_TUNNEL is not set 277# CONFIG_INET_XFRM_TUNNEL is not set
268# CONFIG_INET_TUNNEL is not set 278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_XFRM_MODE_TRANSPORT=m
280CONFIG_INET_XFRM_MODE_TUNNEL=m
269CONFIG_INET_DIAG=y 281CONFIG_INET_DIAG=y
270CONFIG_INET_TCP_DIAG=y 282CONFIG_INET_TCP_DIAG=y
271# CONFIG_TCP_CONG_ADVANCED is not set 283# CONFIG_TCP_CONG_ADVANCED is not set
@@ -273,6 +285,7 @@ CONFIG_TCP_CONG_BIC=y
273# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
274# CONFIG_INET6_XFRM_TUNNEL is not set 286# CONFIG_INET6_XFRM_TUNNEL is not set
275# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETWORK_SECMARK=y
276# CONFIG_NETFILTER is not set 289# CONFIG_NETFILTER is not set
277 290
278# 291#
@@ -332,6 +345,7 @@ CONFIG_WIRELESS_EXT=y
332CONFIG_STANDALONE=y 345CONFIG_STANDALONE=y
333CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
334CONFIG_FW_LOADER=m 347CONFIG_FW_LOADER=m
348# CONFIG_SYS_HYPERVISOR is not set
335 349
336# 350#
337# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -555,6 +569,8 @@ CONFIG_DAVICOM_PHY=m
555CONFIG_QSEMI_PHY=m 569CONFIG_QSEMI_PHY=m
556CONFIG_LXT_PHY=m 570CONFIG_LXT_PHY=m
557CONFIG_CICADA_PHY=m 571CONFIG_CICADA_PHY=m
572CONFIG_VITESSE_PHY=m
573CONFIG_SMSC_PHY=m
558 574
559# 575#
560# Ethernet (10 or 100Mbit) 576# Ethernet (10 or 100Mbit)
@@ -597,6 +613,7 @@ CONFIG_NET_ETHERNET=y
597# CONFIG_CHELSIO_T1 is not set 613# CONFIG_CHELSIO_T1 is not set
598# CONFIG_IXGB is not set 614# CONFIG_IXGB is not set
599# CONFIG_S2IO is not set 615# CONFIG_S2IO is not set
616# CONFIG_MYRI10GE is not set
600 617
601# 618#
602# Token Ring devices 619# Token Ring devices
@@ -674,6 +691,7 @@ CONFIG_SERIO_RAW=m
674CONFIG_VT=y 691CONFIG_VT=y
675CONFIG_VT_CONSOLE=y 692CONFIG_VT_CONSOLE=y
676CONFIG_HW_CONSOLE=y 693CONFIG_HW_CONSOLE=y
694CONFIG_VT_HW_CONSOLE_BINDING=y
677# CONFIG_SERIAL_NONSTANDARD is not set 695# CONFIG_SERIAL_NONSTANDARD is not set
678 696
679# 697#
@@ -705,6 +723,7 @@ CONFIG_LEGACY_PTY_COUNT=256
705# Watchdog Cards 723# Watchdog Cards
706# 724#
707# CONFIG_WATCHDOG is not set 725# CONFIG_WATCHDOG is not set
726# CONFIG_HW_RANDOM is not set
708# CONFIG_RTC is not set 727# CONFIG_RTC is not set
709# CONFIG_GEN_RTC is not set 728# CONFIG_GEN_RTC is not set
710# CONFIG_DTLK is not set 729# CONFIG_DTLK is not set
@@ -753,6 +772,7 @@ CONFIG_LEGACY_PTY_COUNT=256
753# Multimedia devices 772# Multimedia devices
754# 773#
755# CONFIG_VIDEO_DEV is not set 774# CONFIG_VIDEO_DEV is not set
775CONFIG_VIDEO_V4L2=y
756 776
757# 777#
758# Digital Video Broadcasting Devices 778# Digital Video Broadcasting Devices
@@ -762,6 +782,7 @@ CONFIG_LEGACY_PTY_COUNT=256
762# 782#
763# Graphics support 783# Graphics support
764# 784#
785# CONFIG_FIRMWARE_EDID is not set
765# CONFIG_FB is not set 786# CONFIG_FB is not set
766 787
767# 788#
@@ -825,6 +846,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
825# CONFIG_RTC_CLASS is not set 846# CONFIG_RTC_CLASS is not set
826 847
827# 848#
849# DMA Engine support
850#
851# CONFIG_DMA_ENGINE is not set
852
853#
854# DMA Clients
855#
856
857#
858# DMA Devices
859#
860
861#
828# File systems 862# File systems
829# 863#
830CONFIG_EXT2_FS=y 864CONFIG_EXT2_FS=y
@@ -845,6 +879,7 @@ CONFIG_FS_MBCACHE=y
845# CONFIG_MINIX_FS is not set 879# CONFIG_MINIX_FS is not set
846# CONFIG_ROMFS_FS is not set 880# CONFIG_ROMFS_FS is not set
847CONFIG_INOTIFY=y 881CONFIG_INOTIFY=y
882CONFIG_INOTIFY_USER=y
848# CONFIG_QUOTA is not set 883# CONFIG_QUOTA is not set
849CONFIG_DNOTIFY=y 884CONFIG_DNOTIFY=y
850# CONFIG_AUTOFS_FS is not set 885# CONFIG_AUTOFS_FS is not set
@@ -911,6 +946,7 @@ CONFIG_SUNRPC=y
911# CONFIG_RPCSEC_GSS_SPKM3 is not set 946# CONFIG_RPCSEC_GSS_SPKM3 is not set
912# CONFIG_SMB_FS is not set 947# CONFIG_SMB_FS is not set
913# CONFIG_CIFS is not set 948# CONFIG_CIFS is not set
949# CONFIG_CIFS_DEBUG2 is not set
914# CONFIG_NCP_FS is not set 950# CONFIG_NCP_FS is not set
915# CONFIG_CODA_FS is not set 951# CONFIG_CODA_FS is not set
916# CONFIG_AFS_FS is not set 952# CONFIG_AFS_FS is not set
@@ -937,6 +973,7 @@ CONFIG_MSDOS_PARTITION=y
937# 973#
938# CONFIG_PRINTK_TIME is not set 974# CONFIG_PRINTK_TIME is not set
939# CONFIG_MAGIC_SYSRQ is not set 975# CONFIG_MAGIC_SYSRQ is not set
976# CONFIG_UNUSED_SYMBOLS is not set
940# CONFIG_DEBUG_KERNEL is not set 977# CONFIG_DEBUG_KERNEL is not set
941CONFIG_LOG_BUF_SHIFT=14 978CONFIG_LOG_BUF_SHIFT=14
942# CONFIG_DEBUG_FS is not set 979# CONFIG_DEBUG_FS is not set
@@ -992,3 +1029,4 @@ CONFIG_CRC32=y
992CONFIG_LIBCRC32C=m 1029CONFIG_LIBCRC32C=m
993CONFIG_ZLIB_INFLATE=m 1030CONFIG_ZLIB_INFLATE=m
994CONFIG_ZLIB_DEFLATE=m 1031CONFIG_ZLIB_DEFLATE=m
1032CONFIG_PLIST=y
diff --git a/arch/mips/configs/malta_defconfig b/arch/mips/configs/malta_defconfig
index b73cff0d83ca..2690baf15a85 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:08 2006 4# Thu Jul 6 10:04:13 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33CONFIG_MIPS_MALTA=y 34CONFIG_MIPS_MALTA=y
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_MALTA=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_ARCH_MAY_HAVE_PC_FDC=y 72CONFIG_ARCH_MAY_HAVE_PC_FDC=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -126,19 +130,21 @@ CONFIG_PAGE_SIZE_4KB=y
126# CONFIG_PAGE_SIZE_8KB is not set 130# CONFIG_PAGE_SIZE_8KB is not set
127# CONFIG_PAGE_SIZE_16KB is not set 131# CONFIG_PAGE_SIZE_16KB is not set
128# CONFIG_PAGE_SIZE_64KB is not set 132# CONFIG_PAGE_SIZE_64KB is not set
133CONFIG_BOARD_SCACHE=y
134CONFIG_MIPS_CPU_SCACHE=y
129CONFIG_CPU_HAS_PREFETCH=y 135CONFIG_CPU_HAS_PREFETCH=y
130CONFIG_MIPS_MT=y 136# CONFIG_MIPS_MT_DISABLED is not set
131# CONFIG_MIPS_MT_SMTC is not set 137# CONFIG_MIPS_MT_SMTC is not set
132# CONFIG_MIPS_MT_SMP is not set 138# CONFIG_MIPS_MT_SMP is not set
133CONFIG_MIPS_VPE_LOADER=y 139CONFIG_MIPS_VPE_LOADER=y
140CONFIG_MIPS_MT=y
141CONFIG_SYS_SUPPORTS_MULTITHREADING=y
134CONFIG_MIPS_MT_FPAFF=y 142CONFIG_MIPS_MT_FPAFF=y
135CONFIG_MIPS_VPE_LOADER_TOM=y 143CONFIG_MIPS_VPE_LOADER_TOM=y
136CONFIG_MIPS_VPE_APSP_API=y 144CONFIG_MIPS_VPE_APSP_API=y
137CONFIG_MIPS_APSP_KSPD=y 145CONFIG_MIPS_APSP_KSPD=y
138# CONFIG_64BIT_PHYS_ADDR is not set 146# CONFIG_64BIT_PHYS_ADDR is not set
139CONFIG_CPU_HAS_LLSC=y 147CONFIG_CPU_HAS_LLSC=y
140# CONFIG_CPU_MIPSR2_IRQ_VI is not set
141# CONFIG_CPU_MIPSR2_IRQ_EI is not set
142CONFIG_CPU_HAS_SYNC=y 148CONFIG_CPU_HAS_SYNC=y
143CONFIG_GENERIC_HARDIRQS=y 149CONFIG_GENERIC_HARDIRQS=y
144CONFIG_GENERIC_IRQ_PROBE=y 150CONFIG_GENERIC_IRQ_PROBE=y
@@ -152,6 +158,7 @@ CONFIG_FLATMEM=y
152CONFIG_FLAT_NODE_MEM_MAP=y 158CONFIG_FLAT_NODE_MEM_MAP=y
153# CONFIG_SPARSEMEM_STATIC is not set 159# CONFIG_SPARSEMEM_STATIC is not set
154CONFIG_SPLIT_PTLOCK_CPUS=4 160CONFIG_SPLIT_PTLOCK_CPUS=4
161# CONFIG_RESOURCES_64BIT is not set
155# CONFIG_HZ_48 is not set 162# CONFIG_HZ_48 is not set
156CONFIG_HZ_100=y 163CONFIG_HZ_100=y
157# CONFIG_HZ_128 is not set 164# CONFIG_HZ_128 is not set
@@ -164,6 +171,7 @@ CONFIG_HZ=100
164CONFIG_PREEMPT_NONE=y 171CONFIG_PREEMPT_NONE=y
165# CONFIG_PREEMPT_VOLUNTARY is not set 172# CONFIG_PREEMPT_VOLUNTARY is not set
166# CONFIG_PREEMPT is not set 173# CONFIG_PREEMPT is not set
174CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
167 175
168# 176#
169# Code maturity level options 177# Code maturity level options
@@ -195,10 +203,12 @@ CONFIG_PRINTK=y
195CONFIG_BUG=y 203CONFIG_BUG=y
196CONFIG_ELF_CORE=y 204CONFIG_ELF_CORE=y
197CONFIG_BASE_FULL=y 205CONFIG_BASE_FULL=y
206CONFIG_RT_MUTEXES=y
198CONFIG_FUTEX=y 207CONFIG_FUTEX=y
199CONFIG_EPOLL=y 208CONFIG_EPOLL=y
200CONFIG_SHMEM=y 209CONFIG_SHMEM=y
201CONFIG_SLAB=y 210CONFIG_SLAB=y
211CONFIG_VM_EVENT_COUNTERS=y
202# CONFIG_TINY_SHMEM is not set 212# CONFIG_TINY_SHMEM is not set
203CONFIG_BASE_SMALL=0 213CONFIG_BASE_SMALL=0
204# CONFIG_SLOB is not set 214# CONFIG_SLOB is not set
@@ -300,6 +310,8 @@ CONFIG_INET_ESP=m
300CONFIG_INET_IPCOMP=m 310CONFIG_INET_IPCOMP=m
301CONFIG_INET_XFRM_TUNNEL=m 311CONFIG_INET_XFRM_TUNNEL=m
302CONFIG_INET_TUNNEL=m 312CONFIG_INET_TUNNEL=m
313CONFIG_INET_XFRM_MODE_TRANSPORT=m
314CONFIG_INET_XFRM_MODE_TUNNEL=m
303CONFIG_INET_DIAG=y 315CONFIG_INET_DIAG=y
304CONFIG_INET_TCP_DIAG=y 316CONFIG_INET_TCP_DIAG=y
305# CONFIG_TCP_CONG_ADVANCED is not set 317# CONFIG_TCP_CONG_ADVANCED is not set
@@ -347,7 +359,10 @@ CONFIG_INET6_ESP=m
347CONFIG_INET6_IPCOMP=m 359CONFIG_INET6_IPCOMP=m
348CONFIG_INET6_XFRM_TUNNEL=m 360CONFIG_INET6_XFRM_TUNNEL=m
349CONFIG_INET6_TUNNEL=m 361CONFIG_INET6_TUNNEL=m
362CONFIG_INET6_XFRM_MODE_TRANSPORT=m
363CONFIG_INET6_XFRM_MODE_TUNNEL=m
350CONFIG_IPV6_TUNNEL=m 364CONFIG_IPV6_TUNNEL=m
365CONFIG_NETWORK_SECMARK=y
351CONFIG_NETFILTER=y 366CONFIG_NETFILTER=y
352# CONFIG_NETFILTER_DEBUG is not set 367# CONFIG_NETFILTER_DEBUG is not set
353CONFIG_BRIDGE_NETFILTER=y 368CONFIG_BRIDGE_NETFILTER=y
@@ -364,6 +379,8 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
364CONFIG_NETFILTER_XT_TARGET_MARK=m 379CONFIG_NETFILTER_XT_TARGET_MARK=m
365CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 380CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
366CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 381CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
382CONFIG_NETFILTER_XT_TARGET_SECMARK=m
383# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
367CONFIG_NETFILTER_XT_MATCH_COMMENT=m 384CONFIG_NETFILTER_XT_MATCH_COMMENT=m
368CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 385CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
369CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 386CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
@@ -379,9 +396,11 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m
379CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 396CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
380# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set 397# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
381CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 398CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
399CONFIG_NETFILTER_XT_MATCH_QUOTA=m
382CONFIG_NETFILTER_XT_MATCH_REALM=m 400CONFIG_NETFILTER_XT_MATCH_REALM=m
383CONFIG_NETFILTER_XT_MATCH_SCTP=m 401CONFIG_NETFILTER_XT_MATCH_SCTP=m
384CONFIG_NETFILTER_XT_MATCH_STATE=m 402CONFIG_NETFILTER_XT_MATCH_STATE=m
403CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
385CONFIG_NETFILTER_XT_MATCH_STRING=m 404CONFIG_NETFILTER_XT_MATCH_STRING=m
386CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 405CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
387 406
@@ -391,6 +410,7 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
391CONFIG_IP_NF_CONNTRACK=m 410CONFIG_IP_NF_CONNTRACK=m
392CONFIG_IP_NF_CT_ACCT=y 411CONFIG_IP_NF_CT_ACCT=y
393CONFIG_IP_NF_CONNTRACK_MARK=y 412CONFIG_IP_NF_CONNTRACK_MARK=y
413CONFIG_IP_NF_CONNTRACK_SECMARK=y
394CONFIG_IP_NF_CONNTRACK_EVENTS=y 414CONFIG_IP_NF_CONNTRACK_EVENTS=y
395CONFIG_IP_NF_CONNTRACK_NETLINK=m 415CONFIG_IP_NF_CONNTRACK_NETLINK=m
396CONFIG_IP_NF_CT_PROTO_SCTP=m 416CONFIG_IP_NF_CT_PROTO_SCTP=m
@@ -401,6 +421,7 @@ CONFIG_IP_NF_TFTP=m
401CONFIG_IP_NF_AMANDA=m 421CONFIG_IP_NF_AMANDA=m
402CONFIG_IP_NF_PPTP=m 422CONFIG_IP_NF_PPTP=m
403CONFIG_IP_NF_H323=m 423CONFIG_IP_NF_H323=m
424CONFIG_IP_NF_SIP=m
404CONFIG_IP_NF_QUEUE=m 425CONFIG_IP_NF_QUEUE=m
405CONFIG_IP_NF_IPTABLES=m 426CONFIG_IP_NF_IPTABLES=m
406CONFIG_IP_NF_MATCH_IPRANGE=m 427CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -431,6 +452,7 @@ CONFIG_IP_NF_NAT_TFTP=m
431CONFIG_IP_NF_NAT_AMANDA=m 452CONFIG_IP_NF_NAT_AMANDA=m
432CONFIG_IP_NF_NAT_PPTP=m 453CONFIG_IP_NF_NAT_PPTP=m
433CONFIG_IP_NF_NAT_H323=m 454CONFIG_IP_NF_NAT_H323=m
455CONFIG_IP_NF_NAT_SIP=m
434CONFIG_IP_NF_MANGLE=m 456CONFIG_IP_NF_MANGLE=m
435CONFIG_IP_NF_TARGET_TOS=m 457CONFIG_IP_NF_TARGET_TOS=m
436CONFIG_IP_NF_TARGET_ECN=m 458CONFIG_IP_NF_TARGET_ECN=m
@@ -592,6 +614,7 @@ CONFIG_WIRELESS_EXT=y
592CONFIG_STANDALONE=y 614CONFIG_STANDALONE=y
593CONFIG_PREVENT_FIRMWARE_BUILD=y 615CONFIG_PREVENT_FIRMWARE_BUILD=y
594CONFIG_FW_LOADER=y 616CONFIG_FW_LOADER=y
617# CONFIG_SYS_HYPERVISOR is not set
595 618
596# 619#
597# Connector - unified userspace <-> kernelspace linker 620# Connector - unified userspace <-> kernelspace linker
@@ -746,6 +769,7 @@ CONFIG_AIC7XXX_REG_PRETTY_PRINT=y
746# CONFIG_MEGARAID_LEGACY is not set 769# CONFIG_MEGARAID_LEGACY is not set
747# CONFIG_MEGARAID_SAS is not set 770# CONFIG_MEGARAID_SAS is not set
748# CONFIG_SCSI_SATA is not set 771# CONFIG_SCSI_SATA is not set
772# CONFIG_SCSI_HPTIOP is not set
749# CONFIG_SCSI_DMX3191D is not set 773# CONFIG_SCSI_DMX3191D is not set
750# CONFIG_SCSI_FUTURE_DOMAIN is not set 774# CONFIG_SCSI_FUTURE_DOMAIN is not set
751# CONFIG_SCSI_IPS is not set 775# CONFIG_SCSI_IPS is not set
@@ -770,9 +794,8 @@ CONFIG_MD_LINEAR=m
770CONFIG_MD_RAID0=m 794CONFIG_MD_RAID0=m
771CONFIG_MD_RAID1=m 795CONFIG_MD_RAID1=m
772CONFIG_MD_RAID10=m 796CONFIG_MD_RAID10=m
773CONFIG_MD_RAID5=m 797CONFIG_MD_RAID456=m
774CONFIG_MD_RAID5_RESHAPE=y 798CONFIG_MD_RAID5_RESHAPE=y
775CONFIG_MD_RAID6=m
776CONFIG_MD_MULTIPATH=m 799CONFIG_MD_MULTIPATH=m
777CONFIG_MD_FAULTY=m 800CONFIG_MD_FAULTY=m
778CONFIG_BLK_DEV_DM=m 801CONFIG_BLK_DEV_DM=m
@@ -828,6 +851,8 @@ CONFIG_DAVICOM_PHY=m
828CONFIG_QSEMI_PHY=m 851CONFIG_QSEMI_PHY=m
829CONFIG_LXT_PHY=m 852CONFIG_LXT_PHY=m
830CONFIG_CICADA_PHY=m 853CONFIG_CICADA_PHY=m
854CONFIG_VITESSE_PHY=m
855CONFIG_SMSC_PHY=m
831 856
832# 857#
833# Ethernet (10 or 100Mbit) 858# Ethernet (10 or 100Mbit)
@@ -890,6 +915,7 @@ CONFIG_PCNET32=y
890# CONFIG_CHELSIO_T1 is not set 915# CONFIG_CHELSIO_T1 is not set
891# CONFIG_IXGB is not set 916# CONFIG_IXGB is not set
892# CONFIG_S2IO is not set 917# CONFIG_S2IO is not set
918# CONFIG_MYRI10GE is not set
893 919
894# 920#
895# Token Ring devices 921# Token Ring devices
@@ -968,6 +994,7 @@ CONFIG_SERIO_SERPORT=y
968CONFIG_VT=y 994CONFIG_VT=y
969CONFIG_VT_CONSOLE=y 995CONFIG_VT_CONSOLE=y
970CONFIG_HW_CONSOLE=y 996CONFIG_HW_CONSOLE=y
997CONFIG_VT_HW_CONSOLE_BINDING=y
971# CONFIG_SERIAL_NONSTANDARD is not set 998# CONFIG_SERIAL_NONSTANDARD is not set
972 999
973# 1000#
@@ -999,6 +1026,7 @@ CONFIG_LEGACY_PTY_COUNT=256
999# Watchdog Cards 1026# Watchdog Cards
1000# 1027#
1001# CONFIG_WATCHDOG is not set 1028# CONFIG_WATCHDOG is not set
1029# CONFIG_HW_RANDOM is not set
1002CONFIG_RTC=y 1030CONFIG_RTC=y
1003# CONFIG_DTLK is not set 1031# CONFIG_DTLK is not set
1004# CONFIG_R3964 is not set 1032# CONFIG_R3964 is not set
@@ -1046,6 +1074,7 @@ CONFIG_RTC=y
1046# Multimedia devices 1074# Multimedia devices
1047# 1075#
1048# CONFIG_VIDEO_DEV is not set 1076# CONFIG_VIDEO_DEV is not set
1077CONFIG_VIDEO_V4L2=y
1049 1078
1050# 1079#
1051# Digital Video Broadcasting Devices 1080# Digital Video Broadcasting Devices
@@ -1055,6 +1084,7 @@ CONFIG_RTC=y
1055# 1084#
1056# Graphics support 1085# Graphics support
1057# 1086#
1087# CONFIG_FIRMWARE_EDID is not set
1058# CONFIG_FB is not set 1088# CONFIG_FB is not set
1059 1089
1060# 1090#
@@ -1118,6 +1148,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
1118# CONFIG_RTC_CLASS is not set 1148# CONFIG_RTC_CLASS is not set
1119 1149
1120# 1150#
1151# DMA Engine support
1152#
1153# CONFIG_DMA_ENGINE is not set
1154
1155#
1156# DMA Clients
1157#
1158
1159#
1160# DMA Devices
1161#
1162
1163#
1121# File systems 1164# File systems
1122# 1165#
1123CONFIG_EXT2_FS=y 1166CONFIG_EXT2_FS=y
@@ -1143,7 +1186,6 @@ CONFIG_JFS_SECURITY=y
1143# CONFIG_JFS_STATISTICS is not set 1186# CONFIG_JFS_STATISTICS is not set
1144CONFIG_FS_POSIX_ACL=y 1187CONFIG_FS_POSIX_ACL=y
1145CONFIG_XFS_FS=m 1188CONFIG_XFS_FS=m
1146CONFIG_XFS_EXPORT=y
1147CONFIG_XFS_QUOTA=y 1189CONFIG_XFS_QUOTA=y
1148CONFIG_XFS_SECURITY=y 1190CONFIG_XFS_SECURITY=y
1149CONFIG_XFS_POSIX_ACL=y 1191CONFIG_XFS_POSIX_ACL=y
@@ -1152,6 +1194,7 @@ CONFIG_XFS_POSIX_ACL=y
1152CONFIG_MINIX_FS=m 1194CONFIG_MINIX_FS=m
1153CONFIG_ROMFS_FS=m 1195CONFIG_ROMFS_FS=m
1154CONFIG_INOTIFY=y 1196CONFIG_INOTIFY=y
1197CONFIG_INOTIFY_USER=y
1155CONFIG_QUOTA=y 1198CONFIG_QUOTA=y
1156# CONFIG_QFMT_V1 is not set 1199# CONFIG_QFMT_V1 is not set
1157CONFIG_QFMT_V2=y 1200CONFIG_QFMT_V2=y
@@ -1209,6 +1252,8 @@ CONFIG_VXFS_FS=m
1209# CONFIG_QNX4FS_FS is not set 1252# CONFIG_QNX4FS_FS is not set
1210CONFIG_SYSV_FS=m 1253CONFIG_SYSV_FS=m
1211CONFIG_UFS_FS=m 1254CONFIG_UFS_FS=m
1255# CONFIG_UFS_FS_WRITE is not set
1256# CONFIG_UFS_DEBUG is not set
1212 1257
1213# 1258#
1214# Network File Systems 1259# Network File Systems
@@ -1233,6 +1278,7 @@ CONFIG_SUNRPC=y
1233# CONFIG_RPCSEC_GSS_SPKM3 is not set 1278# CONFIG_RPCSEC_GSS_SPKM3 is not set
1234# CONFIG_SMB_FS is not set 1279# CONFIG_SMB_FS is not set
1235# CONFIG_CIFS is not set 1280# CONFIG_CIFS is not set
1281# CONFIG_CIFS_DEBUG2 is not set
1236# CONFIG_NCP_FS is not set 1282# CONFIG_NCP_FS is not set
1237# CONFIG_CODA_FS is not set 1283# CONFIG_CODA_FS is not set
1238# CONFIG_AFS_FS is not set 1284# CONFIG_AFS_FS is not set
@@ -1298,6 +1344,7 @@ CONFIG_NLS_UTF8=m
1298# 1344#
1299# CONFIG_PRINTK_TIME is not set 1345# CONFIG_PRINTK_TIME is not set
1300# CONFIG_MAGIC_SYSRQ is not set 1346# CONFIG_MAGIC_SYSRQ is not set
1347# CONFIG_UNUSED_SYMBOLS is not set
1301# CONFIG_DEBUG_KERNEL is not set 1348# CONFIG_DEBUG_KERNEL is not set
1302CONFIG_LOG_BUF_SHIFT=14 1349CONFIG_LOG_BUF_SHIFT=14
1303# CONFIG_DEBUG_FS is not set 1350# CONFIG_DEBUG_FS is not set
@@ -1356,3 +1403,4 @@ CONFIG_TEXTSEARCH=y
1356CONFIG_TEXTSEARCH_KMP=m 1403CONFIG_TEXTSEARCH_KMP=m
1357CONFIG_TEXTSEARCH_BM=m 1404CONFIG_TEXTSEARCH_BM=m
1358CONFIG_TEXTSEARCH_FSM=m 1405CONFIG_TEXTSEARCH_FSM=m
1406CONFIG_PLIST=y
diff --git a/arch/mips/configs/mipssim_defconfig b/arch/mips/configs/mipssim_defconfig
index 8dd27b55413d..c298979c18ae 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:09 2006 4# Thu Jul 6 10:04:13 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35CONFIG_MIPS_SIM=y 37CONFIG_MIPS_SIM=y
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_SIM=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -113,14 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
116CONFIG_MIPS_MT=y 120CONFIG_MIPS_MT_DISABLED=y
117# CONFIG_MIPS_MT_SMTC is not set 121# CONFIG_MIPS_MT_SMTC is not set
118# CONFIG_MIPS_MT_SMP is not set 122# CONFIG_MIPS_MT_SMP is not set
119CONFIG_MIPS_VPE_LOADER=y 123# CONFIG_MIPS_VPE_LOADER is not set
120CONFIG_MIPS_MT_FPAFF=y
121CONFIG_MIPS_VPE_LOADER_TOM=y
122CONFIG_MIPS_VPE_APSP_API=y
123CONFIG_MIPS_APSP_KSPD=y
124# CONFIG_64BIT_PHYS_ADDR is not set 124# CONFIG_64BIT_PHYS_ADDR is not set
125CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
@@ -136,6 +136,7 @@ CONFIG_FLATMEM=y
136CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
137# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
138CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
139# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
140# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
141# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -148,6 +149,7 @@ CONFIG_HZ=1000
148CONFIG_PREEMPT_NONE=y 149CONFIG_PREEMPT_NONE=y
149# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
150# CONFIG_PREEMPT is not set 151# CONFIG_PREEMPT is not set
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
151 153
152# 154#
153# Code maturity level options 155# Code maturity level options
@@ -180,10 +182,12 @@ CONFIG_PRINTK=y
180CONFIG_BUG=y 182CONFIG_BUG=y
181CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
182CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
183CONFIG_FUTEX=y 186CONFIG_FUTEX=y
184CONFIG_EPOLL=y 187CONFIG_EPOLL=y
185CONFIG_SHMEM=y 188CONFIG_SHMEM=y
186CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
187# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
188CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
189# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
@@ -279,6 +283,8 @@ CONFIG_SYN_COOKIES=y
279# CONFIG_INET_IPCOMP is not set 283# CONFIG_INET_IPCOMP is not set
280# CONFIG_INET_XFRM_TUNNEL is not set 284# CONFIG_INET_XFRM_TUNNEL is not set
281# CONFIG_INET_TUNNEL is not set 285# CONFIG_INET_TUNNEL is not set
286CONFIG_INET_XFRM_MODE_TRANSPORT=m
287CONFIG_INET_XFRM_MODE_TUNNEL=m
282CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
283CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
284# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
@@ -286,6 +292,7 @@ CONFIG_TCP_CONG_BIC=y
286# CONFIG_IPV6 is not set 292# CONFIG_IPV6 is not set
287# CONFIG_INET6_XFRM_TUNNEL is not set 293# CONFIG_INET6_XFRM_TUNNEL is not set
288# CONFIG_INET6_TUNNEL is not set 294# CONFIG_INET6_TUNNEL is not set
295CONFIG_NETWORK_SECMARK=y
289# CONFIG_NETFILTER is not set 296# CONFIG_NETFILTER is not set
290 297
291# 298#
@@ -381,6 +388,7 @@ CONFIG_NET_ESTIMATOR=y
381# CONFIG_PREVENT_FIRMWARE_BUILD is not set 388# CONFIG_PREVENT_FIRMWARE_BUILD is not set
382# CONFIG_FW_LOADER is not set 389# CONFIG_FW_LOADER is not set
383# CONFIG_DEBUG_DRIVER is not set 390# CONFIG_DEBUG_DRIVER is not set
391# CONFIG_SYS_HYPERVISOR is not set
384 392
385# 393#
386# Connector - unified userspace <-> kernelspace linker 394# Connector - unified userspace <-> kernelspace linker
@@ -565,6 +573,7 @@ CONFIG_LEGACY_PTY_COUNT=256
565# Watchdog Cards 573# Watchdog Cards
566# 574#
567# CONFIG_WATCHDOG is not set 575# CONFIG_WATCHDOG is not set
576# CONFIG_HW_RANDOM is not set
568# CONFIG_RTC is not set 577# CONFIG_RTC is not set
569# CONFIG_GEN_RTC is not set 578# CONFIG_GEN_RTC is not set
570# CONFIG_DTLK is not set 579# CONFIG_DTLK is not set
@@ -595,7 +604,6 @@ CONFIG_LEGACY_PTY_COUNT=256
595# 604#
596# Dallas's 1-wire bus 605# Dallas's 1-wire bus
597# 606#
598# CONFIG_W1 is not set
599 607
600# 608#
601# Hardware Monitoring support 609# Hardware Monitoring support
@@ -611,6 +619,7 @@ CONFIG_LEGACY_PTY_COUNT=256
611# Multimedia devices 619# Multimedia devices
612# 620#
613# CONFIG_VIDEO_DEV is not set 621# CONFIG_VIDEO_DEV is not set
622CONFIG_VIDEO_V4L2=y
614 623
615# 624#
616# Digital Video Broadcasting Devices 625# Digital Video Broadcasting Devices
@@ -620,6 +629,7 @@ CONFIG_LEGACY_PTY_COUNT=256
620# 629#
621# Graphics support 630# Graphics support
622# 631#
632# CONFIG_FIRMWARE_EDID is not set
623# CONFIG_FB is not set 633# CONFIG_FB is not set
624 634
625# 635#
@@ -675,6 +685,19 @@ CONFIG_LEGACY_PTY_COUNT=256
675# CONFIG_RTC_CLASS is not set 685# CONFIG_RTC_CLASS is not set
676 686
677# 687#
688# DMA Engine support
689#
690# CONFIG_DMA_ENGINE is not set
691
692#
693# DMA Clients
694#
695
696#
697# DMA Devices
698#
699
700#
678# File systems 701# File systems
679# 702#
680CONFIG_EXT2_FS=y 703CONFIG_EXT2_FS=y
@@ -685,7 +708,6 @@ CONFIG_EXT2_FS=y
685# CONFIG_JFS_FS is not set 708# CONFIG_JFS_FS is not set
686# CONFIG_FS_POSIX_ACL is not set 709# CONFIG_FS_POSIX_ACL is not set
687# CONFIG_XFS_FS is not set 710# CONFIG_XFS_FS is not set
688# CONFIG_OCFS2_FS is not set
689# CONFIG_MINIX_FS is not set 711# CONFIG_MINIX_FS is not set
690CONFIG_ROMFS_FS=y 712CONFIG_ROMFS_FS=y
691# CONFIG_INOTIFY is not set 713# CONFIG_INOTIFY is not set
@@ -753,6 +775,7 @@ CONFIG_SUNRPC=y
753# CONFIG_RPCSEC_GSS_SPKM3 is not set 775# CONFIG_RPCSEC_GSS_SPKM3 is not set
754# CONFIG_SMB_FS is not set 776# CONFIG_SMB_FS is not set
755# CONFIG_CIFS is not set 777# CONFIG_CIFS is not set
778# CONFIG_CIFS_DEBUG2 is not set
756# CONFIG_NCP_FS is not set 779# CONFIG_NCP_FS is not set
757# CONFIG_CODA_FS is not set 780# CONFIG_CODA_FS is not set
758# CONFIG_AFS_FS is not set 781# CONFIG_AFS_FS is not set
@@ -779,14 +802,19 @@ CONFIG_MSDOS_PARTITION=y
779# 802#
780# CONFIG_PRINTK_TIME is not set 803# CONFIG_PRINTK_TIME is not set
781# CONFIG_MAGIC_SYSRQ is not set 804# CONFIG_MAGIC_SYSRQ is not set
805# CONFIG_UNUSED_SYMBOLS is not set
782CONFIG_DEBUG_KERNEL=y 806CONFIG_DEBUG_KERNEL=y
783CONFIG_LOG_BUF_SHIFT=14 807CONFIG_LOG_BUF_SHIFT=14
784# CONFIG_DETECT_SOFTLOCKUP is not set 808# CONFIG_DETECT_SOFTLOCKUP is not set
785# CONFIG_SCHEDSTATS is not set 809# CONFIG_SCHEDSTATS is not set
786# CONFIG_DEBUG_SLAB is not set 810# CONFIG_DEBUG_SLAB is not set
787CONFIG_DEBUG_MUTEXES=y 811# CONFIG_DEBUG_RT_MUTEXES is not set
812# CONFIG_RT_MUTEX_TESTER is not set
788# CONFIG_DEBUG_SPINLOCK is not set 813# CONFIG_DEBUG_SPINLOCK is not set
814CONFIG_DEBUG_MUTEXES=y
815# CONFIG_DEBUG_RWSEMS is not set
789# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 816# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
817# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
790# CONFIG_DEBUG_KOBJECT is not set 818# CONFIG_DEBUG_KOBJECT is not set
791CONFIG_DEBUG_INFO=y 819CONFIG_DEBUG_INFO=y
792# CONFIG_DEBUG_VM is not set 820# CONFIG_DEBUG_VM is not set
@@ -844,3 +872,4 @@ CONFIG_CRYPTO_MD5=y
844CONFIG_CRC16=y 872CONFIG_CRC16=y
845CONFIG_CRC32=y 873CONFIG_CRC32=y
846# CONFIG_LIBCRC32C is not set 874# CONFIG_LIBCRC32C is not set
875CONFIG_PLIST=y
diff --git a/arch/mips/configs/mpc30x_defconfig b/arch/mips/configs/mpc30x_defconfig
index 5d6ff3c352c9..938b38ab5239 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:09 2006 4# Thu Jul 6 10:04:15 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -73,6 +76,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
73CONFIG_GENERIC_FIND_NEXT_BIT=y 76CONFIG_GENERIC_FIND_NEXT_BIT=y
74CONFIG_GENERIC_HWEIGHT=y 77CONFIG_GENERIC_HWEIGHT=y
75CONFIG_GENERIC_CALIBRATE_DELAY=y 78CONFIG_GENERIC_CALIBRATE_DELAY=y
79CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
76CONFIG_DMA_NONCOHERENT=y 80CONFIG_DMA_NONCOHERENT=y
77CONFIG_DMA_NEED_PCI_MAP_STATE=y 81CONFIG_DMA_NEED_PCI_MAP_STATE=y
78# CONFIG_CPU_BIG_ENDIAN is not set 82# CONFIG_CPU_BIG_ENDIAN is not set
@@ -117,7 +121,10 @@ CONFIG_PAGE_SIZE_4KB=y
117# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
118# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
119# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
120# CONFIG_MIPS_MT is not set 124CONFIG_MIPS_MT_DISABLED=y
125# CONFIG_MIPS_MT_SMTC is not set
126# CONFIG_MIPS_MT_SMP is not set
127# CONFIG_MIPS_VPE_LOADER is not set
121CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
123CONFIG_GENERIC_IRQ_PROBE=y 130CONFIG_GENERIC_IRQ_PROBE=y
@@ -130,6 +137,7 @@ CONFIG_FLATMEM=y
130CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
131# CONFIG_SPARSEMEM_STATIC is not set 138# CONFIG_SPARSEMEM_STATIC is not set
132CONFIG_SPLIT_PTLOCK_CPUS=4 139CONFIG_SPLIT_PTLOCK_CPUS=4
140# CONFIG_RESOURCES_64BIT is not set
133# CONFIG_HZ_48 is not set 141# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 142# CONFIG_HZ_100 is not set
135# CONFIG_HZ_128 is not set 143# CONFIG_HZ_128 is not set
@@ -142,6 +150,7 @@ CONFIG_HZ=1000
142CONFIG_PREEMPT_NONE=y 150CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 151# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 152# CONFIG_PREEMPT is not set
153CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
145 154
146# 155#
147# Code maturity level options 156# Code maturity level options
@@ -173,10 +182,12 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 182CONFIG_BUG=y
174CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 186CONFIG_FUTEX=y
177CONFIG_EPOLL=y 187CONFIG_EPOLL=y
178CONFIG_SHMEM=y 188CONFIG_SHMEM=y
179CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
@@ -278,6 +289,8 @@ CONFIG_IP_FIB_HASH=y
278# CONFIG_INET_IPCOMP is not set 289# CONFIG_INET_IPCOMP is not set
279# CONFIG_INET_XFRM_TUNNEL is not set 290# CONFIG_INET_XFRM_TUNNEL is not set
280# CONFIG_INET_TUNNEL is not set 291# CONFIG_INET_TUNNEL is not set
292CONFIG_INET_XFRM_MODE_TRANSPORT=m
293CONFIG_INET_XFRM_MODE_TUNNEL=m
281CONFIG_INET_DIAG=y 294CONFIG_INET_DIAG=y
282CONFIG_INET_TCP_DIAG=y 295CONFIG_INET_TCP_DIAG=y
283# CONFIG_TCP_CONG_ADVANCED is not set 296# CONFIG_TCP_CONG_ADVANCED is not set
@@ -285,6 +298,7 @@ CONFIG_TCP_CONG_BIC=y
285# CONFIG_IPV6 is not set 298# CONFIG_IPV6 is not set
286# CONFIG_INET6_XFRM_TUNNEL is not set 299# CONFIG_INET6_XFRM_TUNNEL is not set
287# CONFIG_INET6_TUNNEL is not set 300# CONFIG_INET6_TUNNEL is not set
301CONFIG_NETWORK_SECMARK=y
288# CONFIG_NETFILTER is not set 302# CONFIG_NETFILTER is not set
289 303
290# 304#
@@ -345,6 +359,7 @@ CONFIG_WIRELESS_EXT=y
345CONFIG_STANDALONE=y 359CONFIG_STANDALONE=y
346CONFIG_PREVENT_FIRMWARE_BUILD=y 360CONFIG_PREVENT_FIRMWARE_BUILD=y
347CONFIG_FW_LOADER=y 361CONFIG_FW_LOADER=y
362# CONFIG_SYS_HYPERVISOR is not set
348 363
349# 364#
350# Connector - unified userspace <-> kernelspace linker 365# Connector - unified userspace <-> kernelspace linker
@@ -483,6 +498,7 @@ CONFIG_MII=m
483# CONFIG_CHELSIO_T1 is not set 498# CONFIG_CHELSIO_T1 is not set
484# CONFIG_IXGB is not set 499# CONFIG_IXGB is not set
485# CONFIG_S2IO is not set 500# CONFIG_S2IO is not set
501# CONFIG_MYRI10GE is not set
486 502
487# 503#
488# Token Ring devices 504# Token Ring devices
@@ -531,8 +547,10 @@ CONFIG_PCMCIA_HERMES=m
531# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support 547# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
532# 548#
533# CONFIG_PRISM54 is not set 549# CONFIG_PRISM54 is not set
550# CONFIG_USB_ZD1201 is not set
534# CONFIG_HOSTAP is not set 551# CONFIG_HOSTAP is not set
535# CONFIG_BCM43XX is not set 552# CONFIG_BCM43XX is not set
553# CONFIG_ZD1211RW is not set
536CONFIG_NET_WIRELESS=y 554CONFIG_NET_WIRELESS=y
537 555
538# 556#
@@ -614,6 +632,7 @@ CONFIG_SERIO_RAW=m
614CONFIG_VT=y 632CONFIG_VT=y
615CONFIG_VT_CONSOLE=y 633CONFIG_VT_CONSOLE=y
616CONFIG_HW_CONSOLE=y 634CONFIG_HW_CONSOLE=y
635CONFIG_VT_HW_CONSOLE_BINDING=y
617# CONFIG_SERIAL_NONSTANDARD is not set 636# CONFIG_SERIAL_NONSTANDARD is not set
618 637
619# 638#
@@ -639,6 +658,7 @@ CONFIG_LEGACY_PTY_COUNT=256
639# Watchdog Cards 658# Watchdog Cards
640# 659#
641# CONFIG_WATCHDOG is not set 660# CONFIG_WATCHDOG is not set
661# CONFIG_HW_RANDOM is not set
642# CONFIG_RTC is not set 662# CONFIG_RTC is not set
643# CONFIG_GEN_RTC is not set 663# CONFIG_GEN_RTC is not set
644# CONFIG_DTLK is not set 664# CONFIG_DTLK is not set
@@ -695,6 +715,7 @@ CONFIG_LEGACY_PTY_COUNT=256
695# Multimedia devices 715# Multimedia devices
696# 716#
697# CONFIG_VIDEO_DEV is not set 717# CONFIG_VIDEO_DEV is not set
718CONFIG_VIDEO_V4L2=y
698 719
699# 720#
700# Digital Video Broadcasting Devices 721# Digital Video Broadcasting Devices
@@ -705,6 +726,7 @@ CONFIG_LEGACY_PTY_COUNT=256
705# 726#
706# Graphics support 727# Graphics support
707# 728#
729# CONFIG_FIRMWARE_EDID is not set
708# CONFIG_FB is not set 730# CONFIG_FB is not set
709 731
710# 732#
@@ -798,7 +820,6 @@ CONFIG_USB_OHCI_LITTLE_ENDIAN=y
798CONFIG_USB_PEGASUS=m 820CONFIG_USB_PEGASUS=m
799# CONFIG_USB_RTL8150 is not set 821# CONFIG_USB_RTL8150 is not set
800# CONFIG_USB_USBNET is not set 822# CONFIG_USB_USBNET is not set
801# CONFIG_USB_ZD1201 is not set
802# CONFIG_USB_MON is not set 823# CONFIG_USB_MON is not set
803 824
804# 825#
@@ -820,10 +841,12 @@ CONFIG_USB_PEGASUS=m
820# CONFIG_USB_LEGOTOWER is not set 841# CONFIG_USB_LEGOTOWER is not set
821# CONFIG_USB_LCD is not set 842# CONFIG_USB_LCD is not set
822# CONFIG_USB_LED is not set 843# CONFIG_USB_LED is not set
844# CONFIG_USB_CY7C63 is not set
823# CONFIG_USB_CYTHERM is not set 845# CONFIG_USB_CYTHERM is not set
824# CONFIG_USB_PHIDGETKIT is not set 846# CONFIG_USB_PHIDGETKIT is not set
825# CONFIG_USB_PHIDGETSERVO is not set 847# CONFIG_USB_PHIDGETSERVO is not set
826# CONFIG_USB_IDMOUSE is not set 848# CONFIG_USB_IDMOUSE is not set
849# CONFIG_USB_APPLEDISPLAY is not set
827# CONFIG_USB_LD is not set 850# CONFIG_USB_LD is not set
828# CONFIG_USB_TEST is not set 851# CONFIG_USB_TEST is not set
829 852
@@ -869,6 +892,19 @@ CONFIG_USB_PEGASUS=m
869# CONFIG_RTC_CLASS is not set 892# CONFIG_RTC_CLASS is not set
870 893
871# 894#
895# DMA Engine support
896#
897# CONFIG_DMA_ENGINE is not set
898
899#
900# DMA Clients
901#
902
903#
904# DMA Devices
905#
906
907#
872# File systems 908# File systems
873# 909#
874CONFIG_EXT2_FS=y 910CONFIG_EXT2_FS=y
@@ -883,6 +919,7 @@ CONFIG_EXT2_FS=y
883# CONFIG_MINIX_FS is not set 919# CONFIG_MINIX_FS is not set
884# CONFIG_ROMFS_FS is not set 920# CONFIG_ROMFS_FS is not set
885CONFIG_INOTIFY=y 921CONFIG_INOTIFY=y
922CONFIG_INOTIFY_USER=y
886# CONFIG_QUOTA is not set 923# CONFIG_QUOTA is not set
887CONFIG_DNOTIFY=y 924CONFIG_DNOTIFY=y
888CONFIG_AUTOFS_FS=y 925CONFIG_AUTOFS_FS=y
@@ -945,6 +982,7 @@ CONFIG_SUNRPC=y
945# CONFIG_RPCSEC_GSS_SPKM3 is not set 982# CONFIG_RPCSEC_GSS_SPKM3 is not set
946# CONFIG_SMB_FS is not set 983# CONFIG_SMB_FS is not set
947# CONFIG_CIFS is not set 984# CONFIG_CIFS is not set
985# CONFIG_CIFS_DEBUG2 is not set
948# CONFIG_NCP_FS is not set 986# CONFIG_NCP_FS is not set
949# CONFIG_CODA_FS is not set 987# CONFIG_CODA_FS is not set
950# CONFIG_AFS_FS is not set 988# CONFIG_AFS_FS is not set
@@ -971,6 +1009,7 @@ CONFIG_MSDOS_PARTITION=y
971# 1009#
972# CONFIG_PRINTK_TIME is not set 1010# CONFIG_PRINTK_TIME is not set
973# CONFIG_MAGIC_SYSRQ is not set 1011# CONFIG_MAGIC_SYSRQ is not set
1012# CONFIG_UNUSED_SYMBOLS is not set
974# CONFIG_DEBUG_KERNEL is not set 1013# CONFIG_DEBUG_KERNEL is not set
975CONFIG_LOG_BUF_SHIFT=14 1014CONFIG_LOG_BUF_SHIFT=14
976# CONFIG_DEBUG_FS is not set 1015# CONFIG_DEBUG_FS is not set
@@ -1026,3 +1065,4 @@ CONFIG_CRC32=y
1026CONFIG_LIBCRC32C=m 1065CONFIG_LIBCRC32C=m
1027CONFIG_ZLIB_INFLATE=m 1066CONFIG_ZLIB_INFLATE=m
1028CONFIG_ZLIB_DEFLATE=m 1067CONFIG_ZLIB_DEFLATE=m
1068CONFIG_PLIST=y
diff --git a/arch/mips/configs/ocelot_3_defconfig b/arch/mips/configs/ocelot_3_defconfig
index fe5e3dd915f5..ec5758f22676 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:10 2006 4# Thu Jul 6 10:04:15 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MOMENCO_OCELOT_3=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -118,7 +122,10 @@ CONFIG_PAGE_SIZE_4KB=y
118CONFIG_BOARD_SCACHE=y 122CONFIG_BOARD_SCACHE=y
119CONFIG_RM7000_CPU_SCACHE=y 123CONFIG_RM7000_CPU_SCACHE=y
120CONFIG_CPU_HAS_PREFETCH=y 124CONFIG_CPU_HAS_PREFETCH=y
121# CONFIG_MIPS_MT is not set 125CONFIG_MIPS_MT_DISABLED=y
126# CONFIG_MIPS_MT_SMTC is not set
127# CONFIG_MIPS_MT_SMP is not set
128# CONFIG_MIPS_VPE_LOADER is not set
122# CONFIG_64BIT_PHYS_ADDR is not set 129# CONFIG_64BIT_PHYS_ADDR is not set
123CONFIG_CPU_HAS_LLSC=y 130CONFIG_CPU_HAS_LLSC=y
124CONFIG_CPU_HAS_SYNC=y 131CONFIG_CPU_HAS_SYNC=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -143,10 +151,10 @@ CONFIG_HZ_1000=y
143# CONFIG_HZ_1024 is not set 151# CONFIG_HZ_1024 is not set
144CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 152CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
145CONFIG_HZ=1000 153CONFIG_HZ=1000
146# CONFIG_SMP is not set
147CONFIG_PREEMPT_NONE=y 154CONFIG_PREEMPT_NONE=y
148# CONFIG_PREEMPT_VOLUNTARY is not set 155# CONFIG_PREEMPT_VOLUNTARY is not set
149# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
150 158
151# 159#
152# Code maturity level options 160# Code maturity level options
@@ -179,10 +187,12 @@ CONFIG_PRINTK=y
179CONFIG_BUG=y 187CONFIG_BUG=y
180CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
181CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
182CONFIG_FUTEX=y 191CONFIG_FUTEX=y
183CONFIG_EPOLL=y 192CONFIG_EPOLL=y
184CONFIG_SHMEM=y 193CONFIG_SHMEM=y
185CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
186# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
187CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
188# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -273,6 +283,8 @@ CONFIG_IP_PNP_BOOTP=y
273# CONFIG_INET_IPCOMP is not set 283# CONFIG_INET_IPCOMP is not set
274# CONFIG_INET_XFRM_TUNNEL is not set 284# CONFIG_INET_XFRM_TUNNEL is not set
275# CONFIG_INET_TUNNEL is not set 285# CONFIG_INET_TUNNEL is not set
286CONFIG_INET_XFRM_MODE_TRANSPORT=m
287CONFIG_INET_XFRM_MODE_TUNNEL=m
276CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
277CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
278# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
@@ -291,7 +303,10 @@ CONFIG_IPV6_ROUTE_INFO=y
291# CONFIG_INET6_IPCOMP is not set 303# CONFIG_INET6_IPCOMP is not set
292# CONFIG_INET6_XFRM_TUNNEL is not set 304# CONFIG_INET6_XFRM_TUNNEL is not set
293# CONFIG_INET6_TUNNEL is not set 305# CONFIG_INET6_TUNNEL is not set
306CONFIG_INET6_XFRM_MODE_TRANSPORT=m
307CONFIG_INET6_XFRM_MODE_TUNNEL=m
294# CONFIG_IPV6_TUNNEL is not set 308# CONFIG_IPV6_TUNNEL is not set
309CONFIG_NETWORK_SECMARK=y
295CONFIG_NETFILTER=y 310CONFIG_NETFILTER=y
296# CONFIG_NETFILTER_DEBUG is not set 311# CONFIG_NETFILTER_DEBUG is not set
297 312
@@ -306,6 +321,7 @@ CONFIG_NETFILTER_XTABLES=m
306CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 321CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
307CONFIG_NETFILTER_XT_TARGET_MARK=m 322CONFIG_NETFILTER_XT_TARGET_MARK=m
308CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 323CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
324CONFIG_NETFILTER_XT_TARGET_SECMARK=m
309CONFIG_NETFILTER_XT_MATCH_COMMENT=m 325CONFIG_NETFILTER_XT_MATCH_COMMENT=m
310CONFIG_NETFILTER_XT_MATCH_DCCP=m 326CONFIG_NETFILTER_XT_MATCH_DCCP=m
311CONFIG_NETFILTER_XT_MATCH_ESP=m 327CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -316,8 +332,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
316CONFIG_NETFILTER_XT_MATCH_POLICY=m 332CONFIG_NETFILTER_XT_MATCH_POLICY=m
317CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 333CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
318CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 334CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
335CONFIG_NETFILTER_XT_MATCH_QUOTA=m
319CONFIG_NETFILTER_XT_MATCH_REALM=m 336CONFIG_NETFILTER_XT_MATCH_REALM=m
320CONFIG_NETFILTER_XT_MATCH_SCTP=m 337CONFIG_NETFILTER_XT_MATCH_SCTP=m
338CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
321CONFIG_NETFILTER_XT_MATCH_STRING=m 339CONFIG_NETFILTER_XT_MATCH_STRING=m
322CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 340CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
323 341
@@ -393,6 +411,7 @@ CONFIG_WIRELESS_EXT=y
393CONFIG_STANDALONE=y 411CONFIG_STANDALONE=y
394CONFIG_PREVENT_FIRMWARE_BUILD=y 412CONFIG_PREVENT_FIRMWARE_BUILD=y
395CONFIG_FW_LOADER=m 413CONFIG_FW_LOADER=m
414# CONFIG_SYS_HYPERVISOR is not set
396 415
397# 416#
398# Connector - unified userspace <-> kernelspace linker 417# Connector - unified userspace <-> kernelspace linker
@@ -483,6 +502,7 @@ CONFIG_ISCSI_TCP=m
483# CONFIG_MEGARAID_LEGACY is not set 502# CONFIG_MEGARAID_LEGACY is not set
484# CONFIG_MEGARAID_SAS is not set 503# CONFIG_MEGARAID_SAS is not set
485# CONFIG_SCSI_SATA is not set 504# CONFIG_SCSI_SATA is not set
505# CONFIG_SCSI_HPTIOP is not set
486# CONFIG_SCSI_DMX3191D is not set 506# CONFIG_SCSI_DMX3191D is not set
487# CONFIG_SCSI_FUTURE_DOMAIN is not set 507# CONFIG_SCSI_FUTURE_DOMAIN is not set
488# CONFIG_SCSI_IPS is not set 508# CONFIG_SCSI_IPS is not set
@@ -548,6 +568,8 @@ CONFIG_DAVICOM_PHY=m
548CONFIG_QSEMI_PHY=m 568CONFIG_QSEMI_PHY=m
549CONFIG_LXT_PHY=m 569CONFIG_LXT_PHY=m
550CONFIG_CICADA_PHY=m 570CONFIG_CICADA_PHY=m
571CONFIG_VITESSE_PHY=m
572CONFIG_SMSC_PHY=m
551 573
552# 574#
553# Ethernet (10 or 100Mbit) 575# Ethernet (10 or 100Mbit)
@@ -614,6 +636,7 @@ CONFIG_MV643XX_ETH_2=y
614# CONFIG_CHELSIO_T1 is not set 636# CONFIG_CHELSIO_T1 is not set
615# CONFIG_IXGB is not set 637# CONFIG_IXGB is not set
616# CONFIG_S2IO is not set 638# CONFIG_S2IO is not set
639# CONFIG_MYRI10GE is not set
617 640
618# 641#
619# Token Ring devices 642# Token Ring devices
@@ -697,6 +720,7 @@ CONFIG_SERIO=y
697CONFIG_VT=y 720CONFIG_VT=y
698CONFIG_VT_CONSOLE=y 721CONFIG_VT_CONSOLE=y
699CONFIG_HW_CONSOLE=y 722CONFIG_HW_CONSOLE=y
723CONFIG_VT_HW_CONSOLE_BINDING=y
700# CONFIG_SERIAL_NONSTANDARD is not set 724# CONFIG_SERIAL_NONSTANDARD is not set
701 725
702# 726#
@@ -728,6 +752,7 @@ CONFIG_LEGACY_PTY_COUNT=256
728# Watchdog Cards 752# Watchdog Cards
729# 753#
730# CONFIG_WATCHDOG is not set 754# CONFIG_WATCHDOG is not set
755# CONFIG_HW_RANDOM is not set
731CONFIG_RTC=y 756CONFIG_RTC=y
732# CONFIG_DTLK is not set 757# CONFIG_DTLK is not set
733# CONFIG_R3964 is not set 758# CONFIG_R3964 is not set
@@ -775,6 +800,7 @@ CONFIG_RTC=y
775# Multimedia devices 800# Multimedia devices
776# 801#
777# CONFIG_VIDEO_DEV is not set 802# CONFIG_VIDEO_DEV is not set
803CONFIG_VIDEO_V4L2=y
778 804
779# 805#
780# Digital Video Broadcasting Devices 806# Digital Video Broadcasting Devices
@@ -784,12 +810,13 @@ CONFIG_RTC=y
784# 810#
785# Graphics support 811# Graphics support
786# 812#
813# CONFIG_FIRMWARE_EDID is not set
787CONFIG_FB=y 814CONFIG_FB=y
788# CONFIG_FB_CFB_FILLRECT is not set 815# CONFIG_FB_CFB_FILLRECT is not set
789# CONFIG_FB_CFB_COPYAREA is not set 816# CONFIG_FB_CFB_COPYAREA is not set
790# CONFIG_FB_CFB_IMAGEBLIT is not set 817# CONFIG_FB_CFB_IMAGEBLIT is not set
791# CONFIG_FB_MACMODES is not set 818# CONFIG_FB_MACMODES is not set
792CONFIG_FB_FIRMWARE_EDID=y 819# CONFIG_FB_BACKLIGHT is not set
793CONFIG_FB_MODE_HELPERS=y 820CONFIG_FB_MODE_HELPERS=y
794# CONFIG_FB_TILEBLITTING is not set 821# CONFIG_FB_TILEBLITTING is not set
795# CONFIG_FB_CIRRUS is not set 822# CONFIG_FB_CIRRUS is not set
@@ -889,6 +916,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
889# CONFIG_RTC_CLASS is not set 916# CONFIG_RTC_CLASS is not set
890 917
891# 918#
919# DMA Engine support
920#
921# CONFIG_DMA_ENGINE is not set
922
923#
924# DMA Clients
925#
926
927#
928# DMA Devices
929#
930
931#
892# File systems 932# File systems
893# 933#
894CONFIG_EXT2_FS=y 934CONFIG_EXT2_FS=y
@@ -908,7 +948,6 @@ CONFIG_REISERFS_FS=m
908# CONFIG_JFS_FS is not set 948# CONFIG_JFS_FS is not set
909# CONFIG_FS_POSIX_ACL is not set 949# CONFIG_FS_POSIX_ACL is not set
910CONFIG_XFS_FS=m 950CONFIG_XFS_FS=m
911CONFIG_XFS_EXPORT=y
912# CONFIG_XFS_QUOTA is not set 951# CONFIG_XFS_QUOTA is not set
913# CONFIG_XFS_SECURITY is not set 952# CONFIG_XFS_SECURITY is not set
914# CONFIG_XFS_POSIX_ACL is not set 953# CONFIG_XFS_POSIX_ACL is not set
@@ -917,6 +956,7 @@ CONFIG_XFS_EXPORT=y
917# CONFIG_MINIX_FS is not set 956# CONFIG_MINIX_FS is not set
918# CONFIG_ROMFS_FS is not set 957# CONFIG_ROMFS_FS is not set
919CONFIG_INOTIFY=y 958CONFIG_INOTIFY=y
959CONFIG_INOTIFY_USER=y
920# CONFIG_QUOTA is not set 960# CONFIG_QUOTA is not set
921CONFIG_DNOTIFY=y 961CONFIG_DNOTIFY=y
922CONFIG_AUTOFS_FS=y 962CONFIG_AUTOFS_FS=y
@@ -988,6 +1028,7 @@ CONFIG_SUNRPC=y
988CONFIG_SMB_FS=m 1028CONFIG_SMB_FS=m
989# CONFIG_SMB_NLS_DEFAULT is not set 1029# CONFIG_SMB_NLS_DEFAULT is not set
990# CONFIG_CIFS is not set 1030# CONFIG_CIFS is not set
1031# CONFIG_CIFS_DEBUG2 is not set
991# CONFIG_NCP_FS is not set 1032# CONFIG_NCP_FS is not set
992# CONFIG_CODA_FS is not set 1033# CONFIG_CODA_FS is not set
993# CONFIG_AFS_FS is not set 1034# CONFIG_AFS_FS is not set
@@ -1053,6 +1094,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1053# 1094#
1054# CONFIG_PRINTK_TIME is not set 1095# CONFIG_PRINTK_TIME is not set
1055# CONFIG_MAGIC_SYSRQ is not set 1096# CONFIG_MAGIC_SYSRQ is not set
1097# CONFIG_UNUSED_SYMBOLS is not set
1056# CONFIG_DEBUG_KERNEL is not set 1098# CONFIG_DEBUG_KERNEL is not set
1057CONFIG_LOG_BUF_SHIFT=14 1099CONFIG_LOG_BUF_SHIFT=14
1058# CONFIG_DEBUG_FS is not set 1100# CONFIG_DEBUG_FS is not set
@@ -1111,3 +1153,4 @@ CONFIG_TEXTSEARCH=y
1111CONFIG_TEXTSEARCH_KMP=m 1153CONFIG_TEXTSEARCH_KMP=m
1112CONFIG_TEXTSEARCH_BM=m 1154CONFIG_TEXTSEARCH_BM=m
1113CONFIG_TEXTSEARCH_FSM=m 1155CONFIG_TEXTSEARCH_FSM=m
1156CONFIG_PLIST=y
diff --git a/arch/mips/configs/ocelot_c_defconfig b/arch/mips/configs/ocelot_c_defconfig
index f4a33ce47e50..0d33d87de1a1 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:10 2006 4# Thu Jul 6 10:04:16 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MOMENCO_OCELOT_C=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -116,7 +120,10 @@ CONFIG_PAGE_SIZE_4KB=y
116CONFIG_BOARD_SCACHE=y 120CONFIG_BOARD_SCACHE=y
117CONFIG_RM7000_CPU_SCACHE=y 121CONFIG_RM7000_CPU_SCACHE=y
118CONFIG_CPU_HAS_PREFETCH=y 122CONFIG_CPU_HAS_PREFETCH=y
119# CONFIG_MIPS_MT is not set 123CONFIG_MIPS_MT_DISABLED=y
124# CONFIG_MIPS_MT_SMTC is not set
125# CONFIG_MIPS_MT_SMP is not set
126# CONFIG_MIPS_VPE_LOADER is not set
120CONFIG_CPU_HAS_LLSC=y 127CONFIG_CPU_HAS_LLSC=y
121CONFIG_CPU_HAS_SYNC=y 128CONFIG_CPU_HAS_SYNC=y
122CONFIG_GENERIC_HARDIRQS=y 129CONFIG_GENERIC_HARDIRQS=y
@@ -131,6 +138,7 @@ CONFIG_FLATMEM=y
131CONFIG_FLAT_NODE_MEM_MAP=y 138CONFIG_FLAT_NODE_MEM_MAP=y
132# CONFIG_SPARSEMEM_STATIC is not set 139# CONFIG_SPARSEMEM_STATIC is not set
133CONFIG_SPLIT_PTLOCK_CPUS=4 140CONFIG_SPLIT_PTLOCK_CPUS=4
141CONFIG_RESOURCES_64BIT=y
134# CONFIG_HZ_48 is not set 142# CONFIG_HZ_48 is not set
135# CONFIG_HZ_100 is not set 143# CONFIG_HZ_100 is not set
136# CONFIG_HZ_128 is not set 144# CONFIG_HZ_128 is not set
@@ -143,6 +151,7 @@ CONFIG_HZ=1000
143CONFIG_PREEMPT_NONE=y 151CONFIG_PREEMPT_NONE=y
144# CONFIG_PREEMPT_VOLUNTARY is not set 152# CONFIG_PREEMPT_VOLUNTARY is not set
145# CONFIG_PREEMPT is not set 153# CONFIG_PREEMPT is not set
154CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
146 155
147# 156#
148# Code maturity level options 157# Code maturity level options
@@ -174,10 +183,12 @@ CONFIG_PRINTK=y
174CONFIG_BUG=y 183CONFIG_BUG=y
175CONFIG_ELF_CORE=y 184CONFIG_ELF_CORE=y
176CONFIG_BASE_FULL=y 185CONFIG_BASE_FULL=y
186CONFIG_RT_MUTEXES=y
177CONFIG_FUTEX=y 187CONFIG_FUTEX=y
178CONFIG_EPOLL=y 188CONFIG_EPOLL=y
179CONFIG_SHMEM=y 189CONFIG_SHMEM=y
180CONFIG_SLAB=y 190CONFIG_SLAB=y
191CONFIG_VM_EVENT_COUNTERS=y
181# CONFIG_TINY_SHMEM is not set 192# CONFIG_TINY_SHMEM is not set
182CONFIG_BASE_SMALL=0 193CONFIG_BASE_SMALL=0
183# CONFIG_SLOB is not set 194# CONFIG_SLOB is not set
@@ -265,6 +276,8 @@ CONFIG_IP_PNP_DHCP=y
265# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
266# CONFIG_INET_XFRM_TUNNEL is not set 277# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set 278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_XFRM_MODE_TRANSPORT=y
280CONFIG_INET_XFRM_MODE_TUNNEL=y
268CONFIG_INET_DIAG=y 281CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 282CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 283# CONFIG_TCP_CONG_ADVANCED is not set
@@ -272,6 +285,7 @@ CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
273# CONFIG_INET6_XFRM_TUNNEL is not set 286# CONFIG_INET6_XFRM_TUNNEL is not set
274# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETWORK_SECMARK=y
275# CONFIG_NETFILTER is not set 289# CONFIG_NETFILTER is not set
276 290
277# 291#
@@ -331,6 +345,7 @@ CONFIG_WIRELESS_EXT=y
331CONFIG_STANDALONE=y 345CONFIG_STANDALONE=y
332CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
333CONFIG_FW_LOADER=y 347CONFIG_FW_LOADER=y
348# CONFIG_SYS_HYPERVISOR is not set
334 349
335# 350#
336# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -428,6 +443,8 @@ CONFIG_DAVICOM_PHY=y
428CONFIG_QSEMI_PHY=y 443CONFIG_QSEMI_PHY=y
429CONFIG_LXT_PHY=y 444CONFIG_LXT_PHY=y
430CONFIG_CICADA_PHY=y 445CONFIG_CICADA_PHY=y
446CONFIG_VITESSE_PHY=y
447CONFIG_SMSC_PHY=y
431 448
432# 449#
433# Ethernet (10 or 100Mbit) 450# Ethernet (10 or 100Mbit)
@@ -471,6 +488,7 @@ CONFIG_NET_ETHERNET=y
471# CONFIG_CHELSIO_T1 is not set 488# CONFIG_CHELSIO_T1 is not set
472# CONFIG_IXGB is not set 489# CONFIG_IXGB is not set
473# CONFIG_S2IO is not set 490# CONFIG_S2IO is not set
491# CONFIG_MYRI10GE is not set
474 492
475# 493#
476# Token Ring devices 494# Token Ring devices
@@ -548,6 +566,7 @@ CONFIG_SERIO_RAW=y
548CONFIG_VT=y 566CONFIG_VT=y
549CONFIG_VT_CONSOLE=y 567CONFIG_VT_CONSOLE=y
550CONFIG_HW_CONSOLE=y 568CONFIG_HW_CONSOLE=y
569CONFIG_VT_HW_CONSOLE_BINDING=y
551# CONFIG_SERIAL_NONSTANDARD is not set 570# CONFIG_SERIAL_NONSTANDARD is not set
552 571
553# 572#
@@ -579,6 +598,7 @@ CONFIG_LEGACY_PTY_COUNT=256
579# Watchdog Cards 598# Watchdog Cards
580# 599#
581# CONFIG_WATCHDOG is not set 600# CONFIG_WATCHDOG is not set
601# CONFIG_HW_RANDOM is not set
582# CONFIG_RTC is not set 602# CONFIG_RTC is not set
583# CONFIG_GEN_RTC is not set 603# CONFIG_GEN_RTC is not set
584# CONFIG_DTLK is not set 604# CONFIG_DTLK is not set
@@ -627,6 +647,7 @@ CONFIG_LEGACY_PTY_COUNT=256
627# Multimedia devices 647# Multimedia devices
628# 648#
629# CONFIG_VIDEO_DEV is not set 649# CONFIG_VIDEO_DEV is not set
650CONFIG_VIDEO_V4L2=y
630 651
631# 652#
632# Digital Video Broadcasting Devices 653# Digital Video Broadcasting Devices
@@ -636,6 +657,7 @@ CONFIG_LEGACY_PTY_COUNT=256
636# 657#
637# Graphics support 658# Graphics support
638# 659#
660# CONFIG_FIRMWARE_EDID is not set
639# CONFIG_FB is not set 661# CONFIG_FB is not set
640 662
641# 663#
@@ -699,6 +721,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
699# CONFIG_RTC_CLASS is not set 721# CONFIG_RTC_CLASS is not set
700 722
701# 723#
724# DMA Engine support
725#
726# CONFIG_DMA_ENGINE is not set
727
728#
729# DMA Clients
730#
731
732#
733# DMA Devices
734#
735
736#
702# File systems 737# File systems
703# 738#
704CONFIG_EXT2_FS=y 739CONFIG_EXT2_FS=y
@@ -713,6 +748,7 @@ CONFIG_EXT2_FS=y
713# CONFIG_MINIX_FS is not set 748# CONFIG_MINIX_FS is not set
714# CONFIG_ROMFS_FS is not set 749# CONFIG_ROMFS_FS is not set
715CONFIG_INOTIFY=y 750CONFIG_INOTIFY=y
751CONFIG_INOTIFY_USER=y
716# CONFIG_QUOTA is not set 752# CONFIG_QUOTA is not set
717CONFIG_DNOTIFY=y 753CONFIG_DNOTIFY=y
718# CONFIG_AUTOFS_FS is not set 754# CONFIG_AUTOFS_FS is not set
@@ -779,6 +815,7 @@ CONFIG_SUNRPC=y
779# CONFIG_RPCSEC_GSS_SPKM3 is not set 815# CONFIG_RPCSEC_GSS_SPKM3 is not set
780# CONFIG_SMB_FS is not set 816# CONFIG_SMB_FS is not set
781# CONFIG_CIFS is not set 817# CONFIG_CIFS is not set
818# CONFIG_CIFS_DEBUG2 is not set
782# CONFIG_NCP_FS is not set 819# CONFIG_NCP_FS is not set
783# CONFIG_CODA_FS is not set 820# CONFIG_CODA_FS is not set
784# CONFIG_AFS_FS is not set 821# CONFIG_AFS_FS is not set
@@ -805,6 +842,7 @@ CONFIG_MSDOS_PARTITION=y
805# 842#
806# CONFIG_PRINTK_TIME is not set 843# CONFIG_PRINTK_TIME is not set
807# CONFIG_MAGIC_SYSRQ is not set 844# CONFIG_MAGIC_SYSRQ is not set
845# CONFIG_UNUSED_SYMBOLS is not set
808# CONFIG_DEBUG_KERNEL is not set 846# CONFIG_DEBUG_KERNEL is not set
809CONFIG_LOG_BUF_SHIFT=14 847CONFIG_LOG_BUF_SHIFT=14
810# CONFIG_DEBUG_FS is not set 848# CONFIG_DEBUG_FS is not set
@@ -846,7 +884,6 @@ CONFIG_CRYPTO_ANUBIS=y
846CONFIG_CRYPTO_DEFLATE=y 884CONFIG_CRYPTO_DEFLATE=y
847CONFIG_CRYPTO_MICHAEL_MIC=y 885CONFIG_CRYPTO_MICHAEL_MIC=y
848CONFIG_CRYPTO_CRC32C=y 886CONFIG_CRYPTO_CRC32C=y
849# CONFIG_CRYPTO_TEST is not set
850 887
851# 888#
852# Hardware crypto devices 889# Hardware crypto devices
@@ -861,3 +898,4 @@ CONFIG_CRC32=y
861CONFIG_LIBCRC32C=y 898CONFIG_LIBCRC32C=y
862CONFIG_ZLIB_INFLATE=y 899CONFIG_ZLIB_INFLATE=y
863CONFIG_ZLIB_DEFLATE=y 900CONFIG_ZLIB_DEFLATE=y
901CONFIG_PLIST=y
diff --git a/arch/mips/configs/ocelot_defconfig b/arch/mips/configs/ocelot_defconfig
index 21dea9549feb..4b999102715e 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:11 2006 4# Thu Jul 6 10:04:16 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37CONFIG_MOMENCO_OCELOT=y 39CONFIG_MOMENCO_OCELOT=y
@@ -45,6 +47,7 @@ CONFIG_MOMENCO_OCELOT=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119CONFIG_BOARD_SCACHE=y 123CONFIG_BOARD_SCACHE=y
120CONFIG_RM7000_CPU_SCACHE=y 124CONFIG_RM7000_CPU_SCACHE=y
121CONFIG_CPU_HAS_PREFETCH=y 125CONFIG_CPU_HAS_PREFETCH=y
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 130# CONFIG_64BIT_PHYS_ADDR is not set
124CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
125CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
@@ -135,6 +142,7 @@ CONFIG_FLATMEM=y
135CONFIG_FLAT_NODE_MEM_MAP=y 142CONFIG_FLAT_NODE_MEM_MAP=y
136# CONFIG_SPARSEMEM_STATIC is not set 143# CONFIG_SPARSEMEM_STATIC is not set
137CONFIG_SPLIT_PTLOCK_CPUS=4 144CONFIG_SPLIT_PTLOCK_CPUS=4
145# CONFIG_RESOURCES_64BIT is not set
138# CONFIG_HZ_48 is not set 146# CONFIG_HZ_48 is not set
139# CONFIG_HZ_100 is not set 147# CONFIG_HZ_100 is not set
140# CONFIG_HZ_128 is not set 148# CONFIG_HZ_128 is not set
@@ -147,6 +155,7 @@ CONFIG_HZ=1000
147CONFIG_PREEMPT_NONE=y 155CONFIG_PREEMPT_NONE=y
148# CONFIG_PREEMPT_VOLUNTARY is not set 156# CONFIG_PREEMPT_VOLUNTARY is not set
149# CONFIG_PREEMPT is not set 157# CONFIG_PREEMPT is not set
158CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
150 159
151# 160#
152# Code maturity level options 161# Code maturity level options
@@ -178,10 +187,12 @@ CONFIG_PRINTK=y
178CONFIG_BUG=y 187CONFIG_BUG=y
179CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
180CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
181CONFIG_FUTEX=y 191CONFIG_FUTEX=y
182CONFIG_EPOLL=y 192CONFIG_EPOLL=y
183CONFIG_SHMEM=y 193CONFIG_SHMEM=y
184CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
185# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
186CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
187# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -265,6 +276,8 @@ CONFIG_IP_PNP_BOOTP=y
265# CONFIG_INET_IPCOMP is not set 276# CONFIG_INET_IPCOMP is not set
266# CONFIG_INET_XFRM_TUNNEL is not set 277# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set 278# CONFIG_INET_TUNNEL is not set
279CONFIG_INET_XFRM_MODE_TRANSPORT=y
280CONFIG_INET_XFRM_MODE_TUNNEL=y
268CONFIG_INET_DIAG=y 281CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 282CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 283# CONFIG_TCP_CONG_ADVANCED is not set
@@ -272,6 +285,7 @@ CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 285# CONFIG_IPV6 is not set
273# CONFIG_INET6_XFRM_TUNNEL is not set 286# CONFIG_INET6_XFRM_TUNNEL is not set
274# CONFIG_INET6_TUNNEL is not set 287# CONFIG_INET6_TUNNEL is not set
288CONFIG_NETWORK_SECMARK=y
275# CONFIG_NETFILTER is not set 289# CONFIG_NETFILTER is not set
276 290
277# 291#
@@ -331,6 +345,7 @@ CONFIG_WIRELESS_EXT=y
331CONFIG_STANDALONE=y 345CONFIG_STANDALONE=y
332CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
333# CONFIG_FW_LOADER is not set 347# CONFIG_FW_LOADER is not set
348# CONFIG_SYS_HYPERVISOR is not set
334 349
335# 350#
336# Connector - unified userspace <-> kernelspace linker 351# Connector - unified userspace <-> kernelspace linker
@@ -416,6 +431,8 @@ CONFIG_DAVICOM_PHY=y
416CONFIG_QSEMI_PHY=y 431CONFIG_QSEMI_PHY=y
417CONFIG_LXT_PHY=y 432CONFIG_LXT_PHY=y
418CONFIG_CICADA_PHY=y 433CONFIG_CICADA_PHY=y
434CONFIG_VITESSE_PHY=y
435CONFIG_SMSC_PHY=y
419 436
420# 437#
421# Ethernet (10 or 100Mbit) 438# Ethernet (10 or 100Mbit)
@@ -504,6 +521,7 @@ CONFIG_SERIO_RAW=y
504CONFIG_VT=y 521CONFIG_VT=y
505CONFIG_VT_CONSOLE=y 522CONFIG_VT_CONSOLE=y
506CONFIG_HW_CONSOLE=y 523CONFIG_HW_CONSOLE=y
524CONFIG_VT_HW_CONSOLE_BINDING=y
507# CONFIG_SERIAL_NONSTANDARD is not set 525# CONFIG_SERIAL_NONSTANDARD is not set
508 526
509# 527#
@@ -533,6 +551,7 @@ CONFIG_LEGACY_PTY_COUNT=256
533# Watchdog Cards 551# Watchdog Cards
534# 552#
535# CONFIG_WATCHDOG is not set 553# CONFIG_WATCHDOG is not set
554# CONFIG_HW_RANDOM is not set
536# CONFIG_RTC is not set 555# CONFIG_RTC is not set
537# CONFIG_GEN_RTC is not set 556# CONFIG_GEN_RTC is not set
538# CONFIG_DTLK is not set 557# CONFIG_DTLK is not set
@@ -579,6 +598,7 @@ CONFIG_LEGACY_PTY_COUNT=256
579# Multimedia devices 598# Multimedia devices
580# 599#
581# CONFIG_VIDEO_DEV is not set 600# CONFIG_VIDEO_DEV is not set
601CONFIG_VIDEO_V4L2=y
582 602
583# 603#
584# Digital Video Broadcasting Devices 604# Digital Video Broadcasting Devices
@@ -588,6 +608,7 @@ CONFIG_LEGACY_PTY_COUNT=256
588# 608#
589# Graphics support 609# Graphics support
590# 610#
611# CONFIG_FIRMWARE_EDID is not set
591# CONFIG_FB is not set 612# CONFIG_FB is not set
592 613
593# 614#
@@ -649,6 +670,19 @@ CONFIG_DUMMY_CONSOLE=y
649# CONFIG_RTC_CLASS is not set 670# CONFIG_RTC_CLASS is not set
650 671
651# 672#
673# DMA Engine support
674#
675# CONFIG_DMA_ENGINE is not set
676
677#
678# DMA Clients
679#
680
681#
682# DMA Devices
683#
684
685#
652# File systems 686# File systems
653# 687#
654CONFIG_EXT2_FS=y 688CONFIG_EXT2_FS=y
@@ -663,6 +697,7 @@ CONFIG_EXT2_FS=y
663# CONFIG_MINIX_FS is not set 697# CONFIG_MINIX_FS is not set
664# CONFIG_ROMFS_FS is not set 698# CONFIG_ROMFS_FS is not set
665CONFIG_INOTIFY=y 699CONFIG_INOTIFY=y
700CONFIG_INOTIFY_USER=y
666# CONFIG_QUOTA is not set 701# CONFIG_QUOTA is not set
667CONFIG_DNOTIFY=y 702CONFIG_DNOTIFY=y
668# CONFIG_AUTOFS_FS is not set 703# CONFIG_AUTOFS_FS is not set
@@ -729,6 +764,7 @@ CONFIG_SUNRPC=y
729# CONFIG_RPCSEC_GSS_SPKM3 is not set 764# CONFIG_RPCSEC_GSS_SPKM3 is not set
730# CONFIG_SMB_FS is not set 765# CONFIG_SMB_FS is not set
731# CONFIG_CIFS is not set 766# CONFIG_CIFS is not set
767# CONFIG_CIFS_DEBUG2 is not set
732# CONFIG_NCP_FS is not set 768# CONFIG_NCP_FS is not set
733# CONFIG_CODA_FS is not set 769# CONFIG_CODA_FS is not set
734# CONFIG_AFS_FS is not set 770# CONFIG_AFS_FS is not set
@@ -755,6 +791,7 @@ CONFIG_MSDOS_PARTITION=y
755# 791#
756# CONFIG_PRINTK_TIME is not set 792# CONFIG_PRINTK_TIME is not set
757# CONFIG_MAGIC_SYSRQ is not set 793# CONFIG_MAGIC_SYSRQ is not set
794# CONFIG_UNUSED_SYMBOLS is not set
758# CONFIG_DEBUG_KERNEL is not set 795# CONFIG_DEBUG_KERNEL is not set
759CONFIG_LOG_BUF_SHIFT=14 796CONFIG_LOG_BUF_SHIFT=14
760# CONFIG_DEBUG_FS is not set 797# CONFIG_DEBUG_FS is not set
@@ -796,7 +833,6 @@ CONFIG_CRYPTO_ANUBIS=y
796CONFIG_CRYPTO_DEFLATE=y 833CONFIG_CRYPTO_DEFLATE=y
797CONFIG_CRYPTO_MICHAEL_MIC=y 834CONFIG_CRYPTO_MICHAEL_MIC=y
798CONFIG_CRYPTO_CRC32C=y 835CONFIG_CRYPTO_CRC32C=y
799# CONFIG_CRYPTO_TEST is not set
800 836
801# 837#
802# Hardware crypto devices 838# Hardware crypto devices
@@ -811,3 +847,4 @@ CONFIG_CRC32=y
811CONFIG_LIBCRC32C=y 847CONFIG_LIBCRC32C=y
812CONFIG_ZLIB_INFLATE=y 848CONFIG_ZLIB_INFLATE=y
813CONFIG_ZLIB_DEFLATE=y 849CONFIG_ZLIB_DEFLATE=y
850CONFIG_PLIST=y
diff --git a/arch/mips/configs/ocelot_g_defconfig b/arch/mips/configs/ocelot_g_defconfig
index c63b1ca8c8b3..827b344f6010 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:11 2006 4# Thu Jul 6 10:04:16 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MOMENCO_OCELOT_G=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119CONFIG_BOARD_SCACHE=y 123CONFIG_BOARD_SCACHE=y
120CONFIG_RM7000_CPU_SCACHE=y 124CONFIG_RM7000_CPU_SCACHE=y
121CONFIG_CPU_HAS_PREFETCH=y 125CONFIG_CPU_HAS_PREFETCH=y
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123CONFIG_CPU_HAS_LLSC=y 130CONFIG_CPU_HAS_LLSC=y
124CONFIG_CPU_HAS_SYNC=y 131CONFIG_CPU_HAS_SYNC=y
125CONFIG_GENERIC_HARDIRQS=y 132CONFIG_GENERIC_HARDIRQS=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144CONFIG_RESOURCES_64BIT=y
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -146,6 +154,7 @@ CONFIG_HZ=1000
146CONFIG_PREEMPT_NONE=y 154CONFIG_PREEMPT_NONE=y
147# CONFIG_PREEMPT_VOLUNTARY is not set 155# CONFIG_PREEMPT_VOLUNTARY is not set
148# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 158
150# 159#
151# Code maturity level options 160# Code maturity level options
@@ -177,10 +186,12 @@ CONFIG_PRINTK=y
177CONFIG_BUG=y 186CONFIG_BUG=y
178CONFIG_ELF_CORE=y 187CONFIG_ELF_CORE=y
179CONFIG_BASE_FULL=y 188CONFIG_BASE_FULL=y
189CONFIG_RT_MUTEXES=y
180CONFIG_FUTEX=y 190CONFIG_FUTEX=y
181CONFIG_EPOLL=y 191CONFIG_EPOLL=y
182CONFIG_SHMEM=y 192CONFIG_SHMEM=y
183CONFIG_SLAB=y 193CONFIG_SLAB=y
194CONFIG_VM_EVENT_COUNTERS=y
184# CONFIG_TINY_SHMEM is not set 195# CONFIG_TINY_SHMEM is not set
185CONFIG_BASE_SMALL=0 196CONFIG_BASE_SMALL=0
186# CONFIG_SLOB is not set 197# CONFIG_SLOB is not set
@@ -268,6 +279,8 @@ CONFIG_IP_PNP_DHCP=y
268# CONFIG_INET_IPCOMP is not set 279# CONFIG_INET_IPCOMP is not set
269# CONFIG_INET_XFRM_TUNNEL is not set 280# CONFIG_INET_XFRM_TUNNEL is not set
270# CONFIG_INET_TUNNEL is not set 281# CONFIG_INET_TUNNEL is not set
282CONFIG_INET_XFRM_MODE_TRANSPORT=y
283CONFIG_INET_XFRM_MODE_TUNNEL=y
271CONFIG_INET_DIAG=y 284CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 285CONFIG_INET_TCP_DIAG=y
273# CONFIG_TCP_CONG_ADVANCED is not set 286# CONFIG_TCP_CONG_ADVANCED is not set
@@ -275,6 +288,7 @@ CONFIG_TCP_CONG_BIC=y
275# CONFIG_IPV6 is not set 288# CONFIG_IPV6 is not set
276# CONFIG_INET6_XFRM_TUNNEL is not set 289# CONFIG_INET6_XFRM_TUNNEL is not set
277# CONFIG_INET6_TUNNEL is not set 290# CONFIG_INET6_TUNNEL is not set
291CONFIG_NETWORK_SECMARK=y
278# CONFIG_NETFILTER is not set 292# CONFIG_NETFILTER is not set
279 293
280# 294#
@@ -334,6 +348,7 @@ CONFIG_WIRELESS_EXT=y
334CONFIG_STANDALONE=y 348CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 349CONFIG_PREVENT_FIRMWARE_BUILD=y
336CONFIG_FW_LOADER=y 350CONFIG_FW_LOADER=y
351# CONFIG_SYS_HYPERVISOR is not set
337 352
338# 353#
339# Connector - unified userspace <-> kernelspace linker 354# Connector - unified userspace <-> kernelspace linker
@@ -431,6 +446,8 @@ CONFIG_DAVICOM_PHY=y
431CONFIG_QSEMI_PHY=y 446CONFIG_QSEMI_PHY=y
432CONFIG_LXT_PHY=y 447CONFIG_LXT_PHY=y
433CONFIG_CICADA_PHY=y 448CONFIG_CICADA_PHY=y
449CONFIG_VITESSE_PHY=y
450CONFIG_SMSC_PHY=y
434 451
435# 452#
436# Ethernet (10 or 100Mbit) 453# Ethernet (10 or 100Mbit)
@@ -474,6 +491,7 @@ CONFIG_GALILEO_64240_ETH=y
474# CONFIG_CHELSIO_T1 is not set 491# CONFIG_CHELSIO_T1 is not set
475# CONFIG_IXGB is not set 492# CONFIG_IXGB is not set
476# CONFIG_S2IO is not set 493# CONFIG_S2IO is not set
494# CONFIG_MYRI10GE is not set
477 495
478# 496#
479# Token Ring devices 497# Token Ring devices
@@ -551,6 +569,7 @@ CONFIG_SERIO_RAW=y
551CONFIG_VT=y 569CONFIG_VT=y
552CONFIG_VT_CONSOLE=y 570CONFIG_VT_CONSOLE=y
553CONFIG_HW_CONSOLE=y 571CONFIG_HW_CONSOLE=y
572CONFIG_VT_HW_CONSOLE_BINDING=y
554# CONFIG_SERIAL_NONSTANDARD is not set 573# CONFIG_SERIAL_NONSTANDARD is not set
555 574
556# 575#
@@ -582,6 +601,7 @@ CONFIG_LEGACY_PTY_COUNT=256
582# Watchdog Cards 601# Watchdog Cards
583# 602#
584# CONFIG_WATCHDOG is not set 603# CONFIG_WATCHDOG is not set
604# CONFIG_HW_RANDOM is not set
585# CONFIG_RTC is not set 605# CONFIG_RTC is not set
586# CONFIG_GEN_RTC is not set 606# CONFIG_GEN_RTC is not set
587# CONFIG_DTLK is not set 607# CONFIG_DTLK is not set
@@ -630,6 +650,7 @@ CONFIG_LEGACY_PTY_COUNT=256
630# Multimedia devices 650# Multimedia devices
631# 651#
632# CONFIG_VIDEO_DEV is not set 652# CONFIG_VIDEO_DEV is not set
653CONFIG_VIDEO_V4L2=y
633 654
634# 655#
635# Digital Video Broadcasting Devices 656# Digital Video Broadcasting Devices
@@ -639,6 +660,7 @@ CONFIG_LEGACY_PTY_COUNT=256
639# 660#
640# Graphics support 661# Graphics support
641# 662#
663# CONFIG_FIRMWARE_EDID is not set
642# CONFIG_FB is not set 664# CONFIG_FB is not set
643 665
644# 666#
@@ -702,6 +724,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
702# CONFIG_RTC_CLASS is not set 724# CONFIG_RTC_CLASS is not set
703 725
704# 726#
727# DMA Engine support
728#
729# CONFIG_DMA_ENGINE is not set
730
731#
732# DMA Clients
733#
734
735#
736# DMA Devices
737#
738
739#
705# File systems 740# File systems
706# 741#
707CONFIG_EXT2_FS=y 742CONFIG_EXT2_FS=y
@@ -716,6 +751,7 @@ CONFIG_EXT2_FS=y
716# CONFIG_MINIX_FS is not set 751# CONFIG_MINIX_FS is not set
717# CONFIG_ROMFS_FS is not set 752# CONFIG_ROMFS_FS is not set
718CONFIG_INOTIFY=y 753CONFIG_INOTIFY=y
754CONFIG_INOTIFY_USER=y
719# CONFIG_QUOTA is not set 755# CONFIG_QUOTA is not set
720CONFIG_DNOTIFY=y 756CONFIG_DNOTIFY=y
721# CONFIG_AUTOFS_FS is not set 757# CONFIG_AUTOFS_FS is not set
@@ -782,6 +818,7 @@ CONFIG_SUNRPC=y
782# CONFIG_RPCSEC_GSS_SPKM3 is not set 818# CONFIG_RPCSEC_GSS_SPKM3 is not set
783# CONFIG_SMB_FS is not set 819# CONFIG_SMB_FS is not set
784# CONFIG_CIFS is not set 820# CONFIG_CIFS is not set
821# CONFIG_CIFS_DEBUG2 is not set
785# CONFIG_NCP_FS is not set 822# CONFIG_NCP_FS is not set
786# CONFIG_CODA_FS is not set 823# CONFIG_CODA_FS is not set
787# CONFIG_AFS_FS is not set 824# CONFIG_AFS_FS is not set
@@ -808,6 +845,7 @@ CONFIG_MSDOS_PARTITION=y
808# 845#
809# CONFIG_PRINTK_TIME is not set 846# CONFIG_PRINTK_TIME is not set
810# CONFIG_MAGIC_SYSRQ is not set 847# CONFIG_MAGIC_SYSRQ is not set
848# CONFIG_UNUSED_SYMBOLS is not set
811# CONFIG_DEBUG_KERNEL is not set 849# CONFIG_DEBUG_KERNEL is not set
812CONFIG_LOG_BUF_SHIFT=14 850CONFIG_LOG_BUF_SHIFT=14
813# CONFIG_DEBUG_FS is not set 851# CONFIG_DEBUG_FS is not set
@@ -849,7 +887,6 @@ CONFIG_CRYPTO_ANUBIS=y
849CONFIG_CRYPTO_DEFLATE=y 887CONFIG_CRYPTO_DEFLATE=y
850CONFIG_CRYPTO_MICHAEL_MIC=y 888CONFIG_CRYPTO_MICHAEL_MIC=y
851CONFIG_CRYPTO_CRC32C=y 889CONFIG_CRYPTO_CRC32C=y
852# CONFIG_CRYPTO_TEST is not set
853 890
854# 891#
855# Hardware crypto devices 892# Hardware crypto devices
@@ -864,3 +901,4 @@ CONFIG_CRC32=y
864CONFIG_LIBCRC32C=y 901CONFIG_LIBCRC32C=y
865CONFIG_ZLIB_INFLATE=y 902CONFIG_ZLIB_INFLATE=y
866CONFIG_ZLIB_DEFLATE=y 903CONFIG_ZLIB_DEFLATE=y
904CONFIG_PLIST=y
diff --git a/arch/mips/configs/pb1100_defconfig b/arch/mips/configs/pb1100_defconfig
index 6f5c7261e9de..9ed60fef69e0 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:12 2006 4# Thu Jul 6 10:04:17 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_PB1100=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_PB1100=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_PB1100=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -114,7 +118,10 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
116CONFIG_CPU_HAS_PREFETCH=y 120CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 121CONFIG_MIPS_MT_DISABLED=y
122# CONFIG_MIPS_MT_SMTC is not set
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_VPE_LOADER is not set
118CONFIG_64BIT_PHYS_ADDR=y 125CONFIG_64BIT_PHYS_ADDR=y
119CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
@@ -130,6 +137,7 @@ CONFIG_FLATMEM=y
130CONFIG_FLAT_NODE_MEM_MAP=y 137CONFIG_FLAT_NODE_MEM_MAP=y
131# CONFIG_SPARSEMEM_STATIC is not set 138# CONFIG_SPARSEMEM_STATIC is not set
132CONFIG_SPLIT_PTLOCK_CPUS=4 139CONFIG_SPLIT_PTLOCK_CPUS=4
140# CONFIG_RESOURCES_64BIT is not set
133# CONFIG_HZ_48 is not set 141# CONFIG_HZ_48 is not set
134# CONFIG_HZ_100 is not set 142# CONFIG_HZ_100 is not set
135# CONFIG_HZ_128 is not set 143# CONFIG_HZ_128 is not set
@@ -142,6 +150,7 @@ CONFIG_HZ=1000
142CONFIG_PREEMPT_NONE=y 150CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 151# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 152# CONFIG_PREEMPT is not set
153CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
145 154
146# 155#
147# Code maturity level options 156# Code maturity level options
@@ -173,14 +182,15 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 182CONFIG_BUG=y
174CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 186CONFIG_FUTEX=y
177CONFIG_EPOLL=y 187CONFIG_EPOLL=y
178CONFIG_SHMEM=y 188CONFIG_SHMEM=y
179CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
183CONFIG_OBSOLETE_INTERMODULE=y
184 194
185# 195#
186# Loadable module support 196# Loadable module support
@@ -278,6 +288,8 @@ CONFIG_IP_PNP_BOOTP=y
278# CONFIG_INET_IPCOMP is not set 288# CONFIG_INET_IPCOMP is not set
279# CONFIG_INET_XFRM_TUNNEL is not set 289# CONFIG_INET_XFRM_TUNNEL is not set
280# CONFIG_INET_TUNNEL is not set 290# CONFIG_INET_TUNNEL is not set
291CONFIG_INET_XFRM_MODE_TRANSPORT=m
292CONFIG_INET_XFRM_MODE_TUNNEL=m
281CONFIG_INET_DIAG=y 293CONFIG_INET_DIAG=y
282CONFIG_INET_TCP_DIAG=y 294CONFIG_INET_TCP_DIAG=y
283# CONFIG_TCP_CONG_ADVANCED is not set 295# CONFIG_TCP_CONG_ADVANCED is not set
@@ -290,6 +302,7 @@ CONFIG_TCP_CONG_BIC=y
290# CONFIG_IPV6 is not set 302# CONFIG_IPV6 is not set
291# CONFIG_INET6_XFRM_TUNNEL is not set 303# CONFIG_INET6_XFRM_TUNNEL is not set
292# CONFIG_INET6_TUNNEL is not set 304# CONFIG_INET6_TUNNEL is not set
305CONFIG_NETWORK_SECMARK=y
293CONFIG_NETFILTER=y 306CONFIG_NETFILTER=y
294# CONFIG_NETFILTER_DEBUG is not set 307# CONFIG_NETFILTER_DEBUG is not set
295 308
@@ -304,6 +317,7 @@ CONFIG_NETFILTER_XTABLES=m
304CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 317CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
305CONFIG_NETFILTER_XT_TARGET_MARK=m 318CONFIG_NETFILTER_XT_TARGET_MARK=m
306CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 319CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
320CONFIG_NETFILTER_XT_TARGET_SECMARK=m
307CONFIG_NETFILTER_XT_MATCH_COMMENT=m 321CONFIG_NETFILTER_XT_MATCH_COMMENT=m
308CONFIG_NETFILTER_XT_MATCH_DCCP=m 322CONFIG_NETFILTER_XT_MATCH_DCCP=m
309CONFIG_NETFILTER_XT_MATCH_ESP=m 323CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -314,8 +328,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
314CONFIG_NETFILTER_XT_MATCH_POLICY=m 328CONFIG_NETFILTER_XT_MATCH_POLICY=m
315CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 329CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
316CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 330CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
331CONFIG_NETFILTER_XT_MATCH_QUOTA=m
317CONFIG_NETFILTER_XT_MATCH_REALM=m 332CONFIG_NETFILTER_XT_MATCH_REALM=m
318CONFIG_NETFILTER_XT_MATCH_SCTP=m 333CONFIG_NETFILTER_XT_MATCH_SCTP=m
334CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
319CONFIG_NETFILTER_XT_MATCH_STRING=m 335CONFIG_NETFILTER_XT_MATCH_STRING=m
320CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 336CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
321 337
@@ -385,6 +401,7 @@ CONFIG_WIRELESS_EXT=y
385CONFIG_STANDALONE=y 401CONFIG_STANDALONE=y
386CONFIG_PREVENT_FIRMWARE_BUILD=y 402CONFIG_PREVENT_FIRMWARE_BUILD=y
387CONFIG_FW_LOADER=m 403CONFIG_FW_LOADER=m
404# CONFIG_SYS_HYPERVISOR is not set
388 405
389# 406#
390# Connector - unified userspace <-> kernelspace linker 407# Connector - unified userspace <-> kernelspace linker
@@ -544,6 +561,8 @@ CONFIG_DAVICOM_PHY=m
544CONFIG_QSEMI_PHY=m 561CONFIG_QSEMI_PHY=m
545CONFIG_LXT_PHY=m 562CONFIG_LXT_PHY=m
546CONFIG_CICADA_PHY=m 563CONFIG_CICADA_PHY=m
564CONFIG_VITESSE_PHY=m
565CONFIG_SMSC_PHY=m
547 566
548# 567#
549# Ethernet (10 or 100Mbit) 568# Ethernet (10 or 100Mbit)
@@ -647,6 +666,7 @@ CONFIG_SERIO_RAW=m
647CONFIG_VT=y 666CONFIG_VT=y
648CONFIG_VT_CONSOLE=y 667CONFIG_VT_CONSOLE=y
649CONFIG_HW_CONSOLE=y 668CONFIG_HW_CONSOLE=y
669CONFIG_VT_HW_CONSOLE_BINDING=y
650# CONFIG_SERIAL_NONSTANDARD is not set 670# CONFIG_SERIAL_NONSTANDARD is not set
651# CONFIG_AU1X00_GPIO is not set 671# CONFIG_AU1X00_GPIO is not set
652# CONFIG_TS_AU1X00_ADS7846 is not set 672# CONFIG_TS_AU1X00_ADS7846 is not set
@@ -680,6 +700,7 @@ CONFIG_LEGACY_PTY_COUNT=256
680# Watchdog Cards 700# Watchdog Cards
681# 701#
682# CONFIG_WATCHDOG is not set 702# CONFIG_WATCHDOG is not set
703# CONFIG_HW_RANDOM is not set
683# CONFIG_RTC is not set 704# CONFIG_RTC is not set
684# CONFIG_GEN_RTC is not set 705# CONFIG_GEN_RTC is not set
685# CONFIG_DTLK is not set 706# CONFIG_DTLK is not set
@@ -733,6 +754,7 @@ CONFIG_SYNCLINK_CS=m
733# Multimedia devices 754# Multimedia devices
734# 755#
735# CONFIG_VIDEO_DEV is not set 756# CONFIG_VIDEO_DEV is not set
757CONFIG_VIDEO_V4L2=y
736 758
737# 759#
738# Digital Video Broadcasting Devices 760# Digital Video Broadcasting Devices
@@ -742,6 +764,7 @@ CONFIG_SYNCLINK_CS=m
742# 764#
743# Graphics support 765# Graphics support
744# 766#
767# CONFIG_FIRMWARE_EDID is not set
745# CONFIG_FB is not set 768# CONFIG_FB is not set
746 769
747# 770#
@@ -804,6 +827,19 @@ CONFIG_USB_ARCH_HAS_OHCI=y
804# CONFIG_RTC_CLASS is not set 827# CONFIG_RTC_CLASS is not set
805 828
806# 829#
830# DMA Engine support
831#
832# CONFIG_DMA_ENGINE is not set
833
834#
835# DMA Clients
836#
837
838#
839# DMA Devices
840#
841
842#
807# File systems 843# File systems
808# 844#
809CONFIG_EXT2_FS=y 845CONFIG_EXT2_FS=y
@@ -831,6 +867,7 @@ CONFIG_FS_POSIX_ACL=y
831# CONFIG_MINIX_FS is not set 867# CONFIG_MINIX_FS is not set
832# CONFIG_ROMFS_FS is not set 868# CONFIG_ROMFS_FS is not set
833CONFIG_INOTIFY=y 869CONFIG_INOTIFY=y
870CONFIG_INOTIFY_USER=y
834# CONFIG_QUOTA is not set 871# CONFIG_QUOTA is not set
835CONFIG_DNOTIFY=y 872CONFIG_DNOTIFY=y
836CONFIG_AUTOFS_FS=m 873CONFIG_AUTOFS_FS=m
@@ -900,6 +937,7 @@ CONFIG_SUNRPC=y
900CONFIG_SMB_FS=m 937CONFIG_SMB_FS=m
901# CONFIG_SMB_NLS_DEFAULT is not set 938# CONFIG_SMB_NLS_DEFAULT is not set
902# CONFIG_CIFS is not set 939# CONFIG_CIFS is not set
940# CONFIG_CIFS_DEBUG2 is not set
903# CONFIG_NCP_FS is not set 941# CONFIG_NCP_FS is not set
904# CONFIG_CODA_FS is not set 942# CONFIG_CODA_FS is not set
905# CONFIG_AFS_FS is not set 943# CONFIG_AFS_FS is not set
@@ -965,6 +1003,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
965# 1003#
966# CONFIG_PRINTK_TIME is not set 1004# CONFIG_PRINTK_TIME is not set
967# CONFIG_MAGIC_SYSRQ is not set 1005# CONFIG_MAGIC_SYSRQ is not set
1006# CONFIG_UNUSED_SYMBOLS is not set
968# CONFIG_DEBUG_KERNEL is not set 1007# CONFIG_DEBUG_KERNEL is not set
969CONFIG_LOG_BUF_SHIFT=14 1008CONFIG_LOG_BUF_SHIFT=14
970# CONFIG_DEBUG_FS is not set 1009# CONFIG_DEBUG_FS is not set
@@ -1024,3 +1063,4 @@ CONFIG_TEXTSEARCH=y
1024CONFIG_TEXTSEARCH_KMP=m 1063CONFIG_TEXTSEARCH_KMP=m
1025CONFIG_TEXTSEARCH_BM=m 1064CONFIG_TEXTSEARCH_BM=m
1026CONFIG_TEXTSEARCH_FSM=m 1065CONFIG_TEXTSEARCH_FSM=m
1066CONFIG_PLIST=y
diff --git a/arch/mips/configs/pb1500_defconfig b/arch/mips/configs/pb1500_defconfig
index 5676f3747fd5..6774254b1be6 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:13 2006 4# Thu Jul 6 10:04:17 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_PB1500=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_PB1500=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_PB1500=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 124CONFIG_64BIT_PHYS_ADDR=y
118CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
@@ -129,6 +136,7 @@ CONFIG_FLATMEM=y
129CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
130# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
131CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
132# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
134# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -141,6 +149,7 @@ CONFIG_HZ=1000
141CONFIG_PREEMPT_NONE=y 149CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 151# CONFIG_PREEMPT is not set
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
144 153
145# 154#
146# Code maturity level options 155# Code maturity level options
@@ -172,14 +181,15 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
182CONFIG_OBSOLETE_INTERMODULE=y
183 193
184# 194#
185# Loadable module support 195# Loadable module support
@@ -283,6 +293,8 @@ CONFIG_IP_PNP_BOOTP=y
283# CONFIG_INET_IPCOMP is not set 293# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 294# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 295# CONFIG_INET_TUNNEL is not set
296CONFIG_INET_XFRM_MODE_TRANSPORT=m
297CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_DIAG=y 298CONFIG_INET_DIAG=y
287CONFIG_INET_TCP_DIAG=y 299CONFIG_INET_TCP_DIAG=y
288# CONFIG_TCP_CONG_ADVANCED is not set 300# CONFIG_TCP_CONG_ADVANCED is not set
@@ -295,6 +307,7 @@ CONFIG_TCP_CONG_BIC=y
295# CONFIG_IPV6 is not set 307# CONFIG_IPV6 is not set
296# CONFIG_INET6_XFRM_TUNNEL is not set 308# CONFIG_INET6_XFRM_TUNNEL is not set
297# CONFIG_INET6_TUNNEL is not set 309# CONFIG_INET6_TUNNEL is not set
310CONFIG_NETWORK_SECMARK=y
298CONFIG_NETFILTER=y 311CONFIG_NETFILTER=y
299# CONFIG_NETFILTER_DEBUG is not set 312# CONFIG_NETFILTER_DEBUG is not set
300 313
@@ -309,6 +322,7 @@ CONFIG_NETFILTER_XTABLES=m
309CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 322CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
310CONFIG_NETFILTER_XT_TARGET_MARK=m 323CONFIG_NETFILTER_XT_TARGET_MARK=m
311CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 324CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
325CONFIG_NETFILTER_XT_TARGET_SECMARK=m
312CONFIG_NETFILTER_XT_MATCH_COMMENT=m 326CONFIG_NETFILTER_XT_MATCH_COMMENT=m
313CONFIG_NETFILTER_XT_MATCH_DCCP=m 327CONFIG_NETFILTER_XT_MATCH_DCCP=m
314CONFIG_NETFILTER_XT_MATCH_ESP=m 328CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -319,8 +333,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
319CONFIG_NETFILTER_XT_MATCH_POLICY=m 333CONFIG_NETFILTER_XT_MATCH_POLICY=m
320CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 334CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
321CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 335CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
336CONFIG_NETFILTER_XT_MATCH_QUOTA=m
322CONFIG_NETFILTER_XT_MATCH_REALM=m 337CONFIG_NETFILTER_XT_MATCH_REALM=m
323CONFIG_NETFILTER_XT_MATCH_SCTP=m 338CONFIG_NETFILTER_XT_MATCH_SCTP=m
339CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
324CONFIG_NETFILTER_XT_MATCH_STRING=m 340CONFIG_NETFILTER_XT_MATCH_STRING=m
325CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 341CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
326 342
@@ -390,6 +406,7 @@ CONFIG_WIRELESS_EXT=y
390CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
392CONFIG_FW_LOADER=m 408CONFIG_FW_LOADER=m
409# CONFIG_SYS_HYPERVISOR is not set
393 410
394# 411#
395# Connector - unified userspace <-> kernelspace linker 412# Connector - unified userspace <-> kernelspace linker
@@ -604,7 +621,7 @@ CONFIG_NETDEVICES=y
604# 621#
605# PHY device support 622# PHY device support
606# 623#
607CONFIG_PHYLIB=m 624CONFIG_PHYLIB=y
608 625
609# 626#
610# MII PHY device drivers 627# MII PHY device drivers
@@ -614,6 +631,8 @@ CONFIG_DAVICOM_PHY=m
614CONFIG_QSEMI_PHY=m 631CONFIG_QSEMI_PHY=m
615CONFIG_LXT_PHY=m 632CONFIG_LXT_PHY=m
616CONFIG_CICADA_PHY=m 633CONFIG_CICADA_PHY=m
634CONFIG_VITESSE_PHY=m
635CONFIG_SMSC_PHY=m
617 636
618# 637#
619# Ethernet (10 or 100Mbit) 638# Ethernet (10 or 100Mbit)
@@ -658,6 +677,7 @@ CONFIG_MIPS_AU1X00_ENET=y
658# CONFIG_CHELSIO_T1 is not set 677# CONFIG_CHELSIO_T1 is not set
659# CONFIG_IXGB is not set 678# CONFIG_IXGB is not set
660# CONFIG_S2IO is not set 679# CONFIG_S2IO is not set
680# CONFIG_MYRI10GE is not set
661 681
662# 682#
663# Token Ring devices 683# Token Ring devices
@@ -789,6 +809,7 @@ CONFIG_LEGACY_PTY_COUNT=256
789# Watchdog Cards 809# Watchdog Cards
790# 810#
791# CONFIG_WATCHDOG is not set 811# CONFIG_WATCHDOG is not set
812# CONFIG_HW_RANDOM is not set
792# CONFIG_RTC is not set 813# CONFIG_RTC is not set
793# CONFIG_GEN_RTC is not set 814# CONFIG_GEN_RTC is not set
794# CONFIG_DTLK is not set 815# CONFIG_DTLK is not set
@@ -844,6 +865,7 @@ CONFIG_SYNCLINK_CS=m
844# Multimedia devices 865# Multimedia devices
845# 866#
846# CONFIG_VIDEO_DEV is not set 867# CONFIG_VIDEO_DEV is not set
868CONFIG_VIDEO_V4L2=y
847 869
848# 870#
849# Digital Video Broadcasting Devices 871# Digital Video Broadcasting Devices
@@ -853,6 +875,7 @@ CONFIG_SYNCLINK_CS=m
853# 875#
854# Graphics support 876# Graphics support
855# 877#
878# CONFIG_FIRMWARE_EDID is not set
856# CONFIG_FB is not set 879# CONFIG_FB is not set
857 880
858# 881#
@@ -910,6 +933,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
910# CONFIG_RTC_CLASS is not set 933# CONFIG_RTC_CLASS is not set
911 934
912# 935#
936# DMA Engine support
937#
938# CONFIG_DMA_ENGINE is not set
939
940#
941# DMA Clients
942#
943
944#
945# DMA Devices
946#
947
948#
913# File systems 949# File systems
914# 950#
915CONFIG_EXT2_FS=y 951CONFIG_EXT2_FS=y
@@ -937,6 +973,7 @@ CONFIG_FS_POSIX_ACL=y
937# CONFIG_MINIX_FS is not set 973# CONFIG_MINIX_FS is not set
938# CONFIG_ROMFS_FS is not set 974# CONFIG_ROMFS_FS is not set
939CONFIG_INOTIFY=y 975CONFIG_INOTIFY=y
976CONFIG_INOTIFY_USER=y
940# CONFIG_QUOTA is not set 977# CONFIG_QUOTA is not set
941CONFIG_DNOTIFY=y 978CONFIG_DNOTIFY=y
942CONFIG_AUTOFS_FS=m 979CONFIG_AUTOFS_FS=m
@@ -1006,6 +1043,7 @@ CONFIG_SUNRPC=y
1006CONFIG_SMB_FS=m 1043CONFIG_SMB_FS=m
1007# CONFIG_SMB_NLS_DEFAULT is not set 1044# CONFIG_SMB_NLS_DEFAULT is not set
1008# CONFIG_CIFS is not set 1045# CONFIG_CIFS is not set
1046# CONFIG_CIFS_DEBUG2 is not set
1009# CONFIG_NCP_FS is not set 1047# CONFIG_NCP_FS is not set
1010# CONFIG_CODA_FS is not set 1048# CONFIG_CODA_FS is not set
1011# CONFIG_AFS_FS is not set 1049# CONFIG_AFS_FS is not set
@@ -1071,6 +1109,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1071# 1109#
1072# CONFIG_PRINTK_TIME is not set 1110# CONFIG_PRINTK_TIME is not set
1073# CONFIG_MAGIC_SYSRQ is not set 1111# CONFIG_MAGIC_SYSRQ is not set
1112# CONFIG_UNUSED_SYMBOLS is not set
1074# CONFIG_DEBUG_KERNEL is not set 1113# CONFIG_DEBUG_KERNEL is not set
1075CONFIG_LOG_BUF_SHIFT=14 1114CONFIG_LOG_BUF_SHIFT=14
1076# CONFIG_DEBUG_FS is not set 1115# CONFIG_DEBUG_FS is not set
@@ -1130,3 +1169,4 @@ CONFIG_TEXTSEARCH=y
1130CONFIG_TEXTSEARCH_KMP=m 1169CONFIG_TEXTSEARCH_KMP=m
1131CONFIG_TEXTSEARCH_BM=m 1170CONFIG_TEXTSEARCH_BM=m
1132CONFIG_TEXTSEARCH_FSM=m 1171CONFIG_TEXTSEARCH_FSM=m
1172CONFIG_PLIST=y
diff --git a/arch/mips/configs/pb1550_defconfig b/arch/mips/configs/pb1550_defconfig
index a1c479fa613b..1afe5bf6e765 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:13 2006 4# Thu Jul 6 10:04:17 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS_PB1550=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS_PB1550=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_PB1550=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y 74CONFIG_MIPS_DISABLE_OBSOLETE_IDE=y
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117CONFIG_64BIT_PHYS_ADDR=y 124CONFIG_64BIT_PHYS_ADDR=y
118CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
@@ -129,6 +136,7 @@ CONFIG_FLATMEM=y
129CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
130# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
131CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
132# CONFIG_HZ_48 is not set 140# CONFIG_HZ_48 is not set
133# CONFIG_HZ_100 is not set 141# CONFIG_HZ_100 is not set
134# CONFIG_HZ_128 is not set 142# CONFIG_HZ_128 is not set
@@ -141,6 +149,7 @@ CONFIG_HZ=1000
141CONFIG_PREEMPT_NONE=y 149CONFIG_PREEMPT_NONE=y
142# CONFIG_PREEMPT_VOLUNTARY is not set 150# CONFIG_PREEMPT_VOLUNTARY is not set
143# CONFIG_PREEMPT is not set 151# CONFIG_PREEMPT is not set
152CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
144 153
145# 154#
146# Code maturity level options 155# Code maturity level options
@@ -172,14 +181,15 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 181CONFIG_BUG=y
173CONFIG_ELF_CORE=y 182CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 183CONFIG_BASE_FULL=y
184CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 185CONFIG_FUTEX=y
176CONFIG_EPOLL=y 186CONFIG_EPOLL=y
177CONFIG_SHMEM=y 187CONFIG_SHMEM=y
178CONFIG_SLAB=y 188CONFIG_SLAB=y
189CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 190# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 191CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 192# CONFIG_SLOB is not set
182CONFIG_OBSOLETE_INTERMODULE=y
183 193
184# 194#
185# Loadable module support 195# Loadable module support
@@ -283,6 +293,8 @@ CONFIG_IP_PNP_BOOTP=y
283# CONFIG_INET_IPCOMP is not set 293# CONFIG_INET_IPCOMP is not set
284# CONFIG_INET_XFRM_TUNNEL is not set 294# CONFIG_INET_XFRM_TUNNEL is not set
285# CONFIG_INET_TUNNEL is not set 295# CONFIG_INET_TUNNEL is not set
296CONFIG_INET_XFRM_MODE_TRANSPORT=m
297CONFIG_INET_XFRM_MODE_TUNNEL=m
286CONFIG_INET_DIAG=y 298CONFIG_INET_DIAG=y
287CONFIG_INET_TCP_DIAG=y 299CONFIG_INET_TCP_DIAG=y
288# CONFIG_TCP_CONG_ADVANCED is not set 300# CONFIG_TCP_CONG_ADVANCED is not set
@@ -295,6 +307,7 @@ CONFIG_TCP_CONG_BIC=y
295# CONFIG_IPV6 is not set 307# CONFIG_IPV6 is not set
296# CONFIG_INET6_XFRM_TUNNEL is not set 308# CONFIG_INET6_XFRM_TUNNEL is not set
297# CONFIG_INET6_TUNNEL is not set 309# CONFIG_INET6_TUNNEL is not set
310CONFIG_NETWORK_SECMARK=y
298CONFIG_NETFILTER=y 311CONFIG_NETFILTER=y
299# CONFIG_NETFILTER_DEBUG is not set 312# CONFIG_NETFILTER_DEBUG is not set
300 313
@@ -309,6 +322,7 @@ CONFIG_NETFILTER_XTABLES=m
309CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 322CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
310CONFIG_NETFILTER_XT_TARGET_MARK=m 323CONFIG_NETFILTER_XT_TARGET_MARK=m
311CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 324CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
325CONFIG_NETFILTER_XT_TARGET_SECMARK=m
312CONFIG_NETFILTER_XT_MATCH_COMMENT=m 326CONFIG_NETFILTER_XT_MATCH_COMMENT=m
313CONFIG_NETFILTER_XT_MATCH_DCCP=m 327CONFIG_NETFILTER_XT_MATCH_DCCP=m
314CONFIG_NETFILTER_XT_MATCH_ESP=m 328CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -319,8 +333,10 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
319CONFIG_NETFILTER_XT_MATCH_POLICY=m 333CONFIG_NETFILTER_XT_MATCH_POLICY=m
320CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 334CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
321CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 335CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
336CONFIG_NETFILTER_XT_MATCH_QUOTA=m
322CONFIG_NETFILTER_XT_MATCH_REALM=m 337CONFIG_NETFILTER_XT_MATCH_REALM=m
323CONFIG_NETFILTER_XT_MATCH_SCTP=m 338CONFIG_NETFILTER_XT_MATCH_SCTP=m
339CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
324CONFIG_NETFILTER_XT_MATCH_STRING=m 340CONFIG_NETFILTER_XT_MATCH_STRING=m
325CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 341CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
326 342
@@ -390,6 +406,7 @@ CONFIG_WIRELESS_EXT=y
390CONFIG_STANDALONE=y 406CONFIG_STANDALONE=y
391CONFIG_PREVENT_FIRMWARE_BUILD=y 407CONFIG_PREVENT_FIRMWARE_BUILD=y
392CONFIG_FW_LOADER=m 408CONFIG_FW_LOADER=m
409# CONFIG_SYS_HYPERVISOR is not set
393 410
394# 411#
395# Connector - unified userspace <-> kernelspace linker 412# Connector - unified userspace <-> kernelspace linker
@@ -604,7 +621,7 @@ CONFIG_NETDEVICES=y
604# 621#
605# PHY device support 622# PHY device support
606# 623#
607CONFIG_PHYLIB=m 624CONFIG_PHYLIB=y
608 625
609# 626#
610# MII PHY device drivers 627# MII PHY device drivers
@@ -614,6 +631,8 @@ CONFIG_DAVICOM_PHY=m
614CONFIG_QSEMI_PHY=m 631CONFIG_QSEMI_PHY=m
615CONFIG_LXT_PHY=m 632CONFIG_LXT_PHY=m
616CONFIG_CICADA_PHY=m 633CONFIG_CICADA_PHY=m
634CONFIG_VITESSE_PHY=m
635CONFIG_SMSC_PHY=m
617 636
618# 637#
619# Ethernet (10 or 100Mbit) 638# Ethernet (10 or 100Mbit)
@@ -658,6 +677,7 @@ CONFIG_MIPS_AU1X00_ENET=y
658# CONFIG_CHELSIO_T1 is not set 677# CONFIG_CHELSIO_T1 is not set
659# CONFIG_IXGB is not set 678# CONFIG_IXGB is not set
660# CONFIG_S2IO is not set 679# CONFIG_S2IO is not set
680# CONFIG_MYRI10GE is not set
661 681
662# 682#
663# Token Ring devices 683# Token Ring devices
@@ -781,6 +801,7 @@ CONFIG_LEGACY_PTY_COUNT=256
781# Watchdog Cards 801# Watchdog Cards
782# 802#
783# CONFIG_WATCHDOG is not set 803# CONFIG_WATCHDOG is not set
804# CONFIG_HW_RANDOM is not set
784# CONFIG_RTC is not set 805# CONFIG_RTC is not set
785# CONFIG_GEN_RTC is not set 806# CONFIG_GEN_RTC is not set
786# CONFIG_DTLK is not set 807# CONFIG_DTLK is not set
@@ -836,6 +857,7 @@ CONFIG_SYNCLINK_CS=m
836# Multimedia devices 857# Multimedia devices
837# 858#
838# CONFIG_VIDEO_DEV is not set 859# CONFIG_VIDEO_DEV is not set
860CONFIG_VIDEO_V4L2=y
839 861
840# 862#
841# Digital Video Broadcasting Devices 863# Digital Video Broadcasting Devices
@@ -845,6 +867,7 @@ CONFIG_SYNCLINK_CS=m
845# 867#
846# Graphics support 868# Graphics support
847# 869#
870# CONFIG_FIRMWARE_EDID is not set
848# CONFIG_FB is not set 871# CONFIG_FB is not set
849 872
850# 873#
@@ -902,6 +925,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
902# CONFIG_RTC_CLASS is not set 925# CONFIG_RTC_CLASS is not set
903 926
904# 927#
928# DMA Engine support
929#
930# CONFIG_DMA_ENGINE is not set
931
932#
933# DMA Clients
934#
935
936#
937# DMA Devices
938#
939
940#
905# File systems 941# File systems
906# 942#
907CONFIG_EXT2_FS=y 943CONFIG_EXT2_FS=y
@@ -929,6 +965,7 @@ CONFIG_FS_POSIX_ACL=y
929# CONFIG_MINIX_FS is not set 965# CONFIG_MINIX_FS is not set
930# CONFIG_ROMFS_FS is not set 966# CONFIG_ROMFS_FS is not set
931CONFIG_INOTIFY=y 967CONFIG_INOTIFY=y
968CONFIG_INOTIFY_USER=y
932# CONFIG_QUOTA is not set 969# CONFIG_QUOTA is not set
933CONFIG_DNOTIFY=y 970CONFIG_DNOTIFY=y
934CONFIG_AUTOFS_FS=m 971CONFIG_AUTOFS_FS=m
@@ -998,6 +1035,7 @@ CONFIG_SUNRPC=y
998CONFIG_SMB_FS=m 1035CONFIG_SMB_FS=m
999# CONFIG_SMB_NLS_DEFAULT is not set 1036# CONFIG_SMB_NLS_DEFAULT is not set
1000# CONFIG_CIFS is not set 1037# CONFIG_CIFS is not set
1038# CONFIG_CIFS_DEBUG2 is not set
1001# CONFIG_NCP_FS is not set 1039# CONFIG_NCP_FS is not set
1002# CONFIG_CODA_FS is not set 1040# CONFIG_CODA_FS is not set
1003# CONFIG_AFS_FS is not set 1041# CONFIG_AFS_FS is not set
@@ -1063,6 +1101,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1063# 1101#
1064# CONFIG_PRINTK_TIME is not set 1102# CONFIG_PRINTK_TIME is not set
1065# CONFIG_MAGIC_SYSRQ is not set 1103# CONFIG_MAGIC_SYSRQ is not set
1104# CONFIG_UNUSED_SYMBOLS is not set
1066# CONFIG_DEBUG_KERNEL is not set 1105# CONFIG_DEBUG_KERNEL is not set
1067CONFIG_LOG_BUF_SHIFT=14 1106CONFIG_LOG_BUF_SHIFT=14
1068# CONFIG_DEBUG_FS is not set 1107# CONFIG_DEBUG_FS is not set
@@ -1122,3 +1161,4 @@ CONFIG_TEXTSEARCH=y
1122CONFIG_TEXTSEARCH_KMP=m 1161CONFIG_TEXTSEARCH_KMP=m
1123CONFIG_TEXTSEARCH_BM=m 1162CONFIG_TEXTSEARCH_BM=m
1124CONFIG_TEXTSEARCH_FSM=m 1163CONFIG_TEXTSEARCH_FSM=m
1164CONFIG_PLIST=y
diff --git a/arch/mips/configs/pnx8550-jbs_defconfig b/arch/mips/configs/pnx8550-jbs_defconfig
index b2d991b80309..ac616c82d348 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:14 2006 4# Thu Jul 6 10:04:18 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -40,12 +42,13 @@ CONFIG_MIPS=y
40# CONFIG_MOMENCO_OCELOT_G is not set 42# CONFIG_MOMENCO_OCELOT_G is not set
41# CONFIG_MIPS_XXS1500 is not set 43# CONFIG_MIPS_XXS1500 is not set
42# CONFIG_PNX8550_V2PCI is not set 44# CONFIG_PNX8550_V2PCI is not set
43CONFIG_PNX8550_JBS=y 45# CONFIG_PNX8550_JBS is not set
44# CONFIG_DDB5477 is not set 46# CONFIG_DDB5477 is not set
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
48# CONFIG_SGI_IP22 is not set 50# CONFIG_MARKEINS is not set
51CONFIG_SGI_IP22=y
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
51# CONFIG_SIBYTE_BIGSUR is not set 54# CONFIG_SIBYTE_BIGSUR is not set
@@ -65,19 +68,25 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
72CONFIG_ARC=y
68CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 75CONFIG_CPU_BIG_ENDIAN=y
71CONFIG_CPU_LITTLE_ENDIAN=y 76# CONFIG_CPU_LITTLE_ENDIAN is not set
72CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 77CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
73CONFIG_PNX8550=y 78CONFIG_IRQ_CPU=y
74CONFIG_SOC_PNX8550=y 79CONFIG_SWAP_IO_SPACE=y
80CONFIG_ARC32=y
81CONFIG_BOOT_ELF32=y
75CONFIG_MIPS_L1_CACHE_SHIFT=5 82CONFIG_MIPS_L1_CACHE_SHIFT=5
83# CONFIG_ARC_CONSOLE is not set
84CONFIG_ARC_PROMLIB=y
76 85
77# 86#
78# CPU selection 87# CPU selection
79# 88#
80CONFIG_CPU_MIPS32_R1=y 89# CONFIG_CPU_MIPS32_R1 is not set
81# CONFIG_CPU_MIPS32_R2 is not set 90# CONFIG_CPU_MIPS32_R2 is not set
82# CONFIG_CPU_MIPS64_R1 is not set 91# CONFIG_CPU_MIPS64_R1 is not set
83# CONFIG_CPU_MIPS64_R2 is not set 92# CONFIG_CPU_MIPS64_R2 is not set
@@ -85,7 +94,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX39XX is not set 94# CONFIG_CPU_TX39XX is not set
86# CONFIG_CPU_VR41XX is not set 95# CONFIG_CPU_VR41XX is not set
87# CONFIG_CPU_R4300 is not set 96# CONFIG_CPU_R4300 is not set
88# CONFIG_CPU_R4X00 is not set 97CONFIG_CPU_R4X00=y
89# CONFIG_CPU_TX49XX is not set 98# CONFIG_CPU_TX49XX is not set
90# CONFIG_CPU_R5000 is not set 99# CONFIG_CPU_R5000 is not set
91# CONFIG_CPU_R5432 is not set 100# CONFIG_CPU_R5432 is not set
@@ -96,11 +105,12 @@ CONFIG_CPU_MIPS32_R1=y
96# CONFIG_CPU_RM7000 is not set 105# CONFIG_CPU_RM7000 is not set
97# CONFIG_CPU_RM9000 is not set 106# CONFIG_CPU_RM9000 is not set
98# CONFIG_CPU_SB1 is not set 107# CONFIG_CPU_SB1 is not set
99CONFIG_SYS_HAS_CPU_MIPS32_R1=y 108CONFIG_SYS_HAS_CPU_R4X00=y
100CONFIG_CPU_MIPS32=y 109CONFIG_SYS_HAS_CPU_R5000=y
101CONFIG_CPU_MIPSR1=y
102CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 110CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
111CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
103CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 112CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
104 114
105# 115#
106# Kernel type 116# Kernel type
@@ -111,14 +121,17 @@ CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
112# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
114CONFIG_CPU_HAS_PREFETCH=y 124CONFIG_BOARD_SCACHE=y
115# CONFIG_MIPS_MT is not set 125CONFIG_IP22_CPU_SCACHE=y
126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
116# CONFIG_64BIT_PHYS_ADDR is not set 130# CONFIG_64BIT_PHYS_ADDR is not set
117CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 133CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 134CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 135CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 136CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 137CONFIG_FLATMEM_MANUAL=y
@@ -128,6 +141,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -140,6 +154,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 154CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 155# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 158
144# 159#
145# Code maturity level options 160# Code maturity level options
@@ -173,10 +188,12 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 188CONFIG_BUG=y
174CONFIG_ELF_CORE=y 189CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 190CONFIG_BASE_FULL=y
191CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 192CONFIG_FUTEX=y
177CONFIG_EPOLL=y 193CONFIG_EPOLL=y
178CONFIG_SHMEM=y 194CONFIG_SHMEM=y
179CONFIG_SLAB=y 195CONFIG_SLAB=y
196CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 197# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 198CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 199# CONFIG_SLOB is not set
@@ -213,9 +230,8 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
213# 230#
214# Bus options (PCI, PCMCIA, EISA, ISA, TC) 231# Bus options (PCI, PCMCIA, EISA, ISA, TC)
215# 232#
216CONFIG_HW_HAS_PCI=y 233CONFIG_HW_HAS_EISA=y
217CONFIG_PCI=y 234# CONFIG_EISA is not set
218# CONFIG_PCI_DEBUG is not set
219CONFIG_MMU=y 235CONFIG_MMU=y
220 236
221# 237#
@@ -226,7 +242,6 @@ CONFIG_MMU=y
226# 242#
227# PCI Hotplug Support 243# PCI Hotplug Support
228# 244#
229# CONFIG_HOTPLUG_PCI is not set
230 245
231# 246#
232# Executable file formats 247# Executable file formats
@@ -247,6 +262,8 @@ CONFIG_NET=y
247CONFIG_PACKET=y 262CONFIG_PACKET=y
248# CONFIG_PACKET_MMAP is not set 263# CONFIG_PACKET_MMAP is not set
249CONFIG_UNIX=y 264CONFIG_UNIX=y
265CONFIG_XFRM=y
266# CONFIG_XFRM_USER is not set
250# CONFIG_NET_KEY is not set 267# CONFIG_NET_KEY is not set
251CONFIG_INET=y 268CONFIG_INET=y
252# CONFIG_IP_MULTICAST is not set 269# CONFIG_IP_MULTICAST is not set
@@ -265,6 +282,8 @@ CONFIG_IP_PNP_BOOTP=y
265# CONFIG_INET_IPCOMP is not set 282# CONFIG_INET_IPCOMP is not set
266# CONFIG_INET_XFRM_TUNNEL is not set 283# CONFIG_INET_XFRM_TUNNEL is not set
267# CONFIG_INET_TUNNEL is not set 284# CONFIG_INET_TUNNEL is not set
285CONFIG_INET_XFRM_MODE_TRANSPORT=m
286CONFIG_INET_XFRM_MODE_TUNNEL=m
268CONFIG_INET_DIAG=y 287CONFIG_INET_DIAG=y
269CONFIG_INET_TCP_DIAG=y 288CONFIG_INET_TCP_DIAG=y
270# CONFIG_TCP_CONG_ADVANCED is not set 289# CONFIG_TCP_CONG_ADVANCED is not set
@@ -272,6 +291,7 @@ CONFIG_TCP_CONG_BIC=y
272# CONFIG_IPV6 is not set 291# CONFIG_IPV6 is not set
273# CONFIG_INET6_XFRM_TUNNEL is not set 292# CONFIG_INET6_XFRM_TUNNEL is not set
274# CONFIG_INET6_TUNNEL is not set 293# CONFIG_INET6_TUNNEL is not set
294CONFIG_NETWORK_SECMARK=y
275# CONFIG_NETFILTER is not set 295# CONFIG_NETFILTER is not set
276 296
277# 297#
@@ -326,6 +346,7 @@ CONFIG_STANDALONE=y
326CONFIG_PREVENT_FIRMWARE_BUILD=y 346CONFIG_PREVENT_FIRMWARE_BUILD=y
327CONFIG_FW_LOADER=y 347CONFIG_FW_LOADER=y
328# CONFIG_DEBUG_DRIVER is not set 348# CONFIG_DEBUG_DRIVER is not set
349# CONFIG_SYS_HYPERVISOR is not set
329 350
330# 351#
331# Connector - unified userspace <-> kernelspace linker 352# Connector - unified userspace <-> kernelspace linker
@@ -349,16 +370,10 @@ CONFIG_FW_LOADER=y
349# 370#
350# Block devices 371# Block devices
351# 372#
352# CONFIG_BLK_CPQ_DA is not set
353# CONFIG_BLK_CPQ_CISS_DA is not set
354# CONFIG_BLK_DEV_DAC960 is not set
355# CONFIG_BLK_DEV_UMEM is not set
356# CONFIG_BLK_DEV_COW_COMMON is not set 373# CONFIG_BLK_DEV_COW_COMMON is not set
357CONFIG_BLK_DEV_LOOP=y 374CONFIG_BLK_DEV_LOOP=y
358# CONFIG_BLK_DEV_CRYPTOLOOP is not set 375# CONFIG_BLK_DEV_CRYPTOLOOP is not set
359# CONFIG_BLK_DEV_NBD is not set 376# CONFIG_BLK_DEV_NBD is not set
360# CONFIG_BLK_DEV_SX8 is not set
361# CONFIG_BLK_DEV_UB is not set
362CONFIG_BLK_DEV_RAM=y 377CONFIG_BLK_DEV_RAM=y
363CONFIG_BLK_DEV_RAM_COUNT=16 378CONFIG_BLK_DEV_RAM_COUNT=16
364CONFIG_BLK_DEV_RAM_SIZE=8192 379CONFIG_BLK_DEV_RAM_SIZE=8192
@@ -388,38 +403,8 @@ CONFIG_BLK_DEV_IDESCSI=y
388# IDE chipset support/bugfixes 403# IDE chipset support/bugfixes
389# 404#
390CONFIG_IDE_GENERIC=y 405CONFIG_IDE_GENERIC=y
391CONFIG_BLK_DEV_IDEPCI=y
392CONFIG_IDEPCI_SHARE_IRQ=y
393CONFIG_BLK_DEV_OFFBOARD=y
394CONFIG_BLK_DEV_GENERIC=y
395# CONFIG_BLK_DEV_OPTI621 is not set
396CONFIG_BLK_DEV_IDEDMA_PCI=y
397# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
398# CONFIG_IDEDMA_PCI_AUTO is not set
399# CONFIG_BLK_DEV_AEC62XX is not set
400# CONFIG_BLK_DEV_ALI15X3 is not set
401# CONFIG_BLK_DEV_AMD74XX is not set
402# CONFIG_BLK_DEV_CMD64X is not set
403# CONFIG_BLK_DEV_TRIFLEX is not set
404# CONFIG_BLK_DEV_CY82C693 is not set
405# CONFIG_BLK_DEV_CS5520 is not set
406# CONFIG_BLK_DEV_CS5530 is not set
407# CONFIG_BLK_DEV_HPT34X is not set
408CONFIG_BLK_DEV_HPT366=y
409# CONFIG_BLK_DEV_SC1200 is not set
410# CONFIG_BLK_DEV_PIIX is not set
411# CONFIG_BLK_DEV_IT821X is not set
412# CONFIG_BLK_DEV_NS87415 is not set
413# CONFIG_BLK_DEV_PDC202XX_OLD is not set
414# CONFIG_BLK_DEV_PDC202XX_NEW is not set
415# CONFIG_BLK_DEV_SVWKS is not set
416# CONFIG_BLK_DEV_SIIMAGE is not set
417# CONFIG_BLK_DEV_SLC90E66 is not set
418# CONFIG_BLK_DEV_TRM290 is not set
419# CONFIG_BLK_DEV_VIA82CXXX is not set
420# CONFIG_IDE_ARM is not set 406# CONFIG_IDE_ARM is not set
421CONFIG_BLK_DEV_IDEDMA=y 407# CONFIG_BLK_DEV_IDEDMA is not set
422# CONFIG_IDEDMA_IVB is not set
423# CONFIG_IDEDMA_AUTO is not set 408# CONFIG_IDEDMA_AUTO is not set
424# CONFIG_BLK_DEV_HD is not set 409# CONFIG_BLK_DEV_HD is not set
425 410
@@ -459,31 +444,8 @@ CONFIG_SCSI_ISCSI_ATTRS=m
459# SCSI low-level drivers 444# SCSI low-level drivers
460# 445#
461CONFIG_ISCSI_TCP=m 446CONFIG_ISCSI_TCP=m
462# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 447# CONFIG_SGIWD93_SCSI is not set
463# CONFIG_SCSI_3W_9XXX is not set
464# CONFIG_SCSI_ACARD is not set
465# CONFIG_SCSI_AACRAID is not set
466# CONFIG_SCSI_AIC7XXX is not set
467# CONFIG_SCSI_AIC7XXX_OLD is not set
468# CONFIG_SCSI_AIC79XX is not set
469# CONFIG_SCSI_DPT_I2O is not set
470# CONFIG_MEGARAID_NEWGEN is not set
471# CONFIG_MEGARAID_LEGACY is not set
472# CONFIG_MEGARAID_SAS is not set
473# CONFIG_SCSI_SATA is not set 448# CONFIG_SCSI_SATA is not set
474# CONFIG_SCSI_DMX3191D is not set
475# CONFIG_SCSI_FUTURE_DOMAIN is not set
476# CONFIG_SCSI_IPS is not set
477# CONFIG_SCSI_INITIO is not set
478# CONFIG_SCSI_INIA100 is not set
479# CONFIG_SCSI_SYM53C8XX_2 is not set
480# CONFIG_SCSI_IPR is not set
481# CONFIG_SCSI_QLOGIC_1280 is not set
482# CONFIG_SCSI_QLA_FC is not set
483# CONFIG_SCSI_LPFC is not set
484# CONFIG_SCSI_DC395x is not set
485# CONFIG_SCSI_DC390T is not set
486# CONFIG_SCSI_NSP32 is not set
487# CONFIG_SCSI_DEBUG is not set 449# CONFIG_SCSI_DEBUG is not set
488 450
489# 451#
@@ -495,19 +457,14 @@ CONFIG_ISCSI_TCP=m
495# Fusion MPT device support 457# Fusion MPT device support
496# 458#
497# CONFIG_FUSION is not set 459# CONFIG_FUSION is not set
498# CONFIG_FUSION_SPI is not set
499# CONFIG_FUSION_FC is not set
500# CONFIG_FUSION_SAS is not set
501 460
502# 461#
503# IEEE 1394 (FireWire) support 462# IEEE 1394 (FireWire) support
504# 463#
505# CONFIG_IEEE1394 is not set
506 464
507# 465#
508# I2O device support 466# I2O device support
509# 467#
510# CONFIG_I2O is not set
511 468
512# 469#
513# Network device support 470# Network device support
@@ -519,11 +476,6 @@ CONFIG_NETDEVICES=y
519# CONFIG_TUN is not set 476# CONFIG_TUN is not set
520 477
521# 478#
522# ARCnet devices
523#
524# CONFIG_ARCNET is not set
525
526#
527# PHY device support 479# PHY device support
528# 480#
529# CONFIG_PHYLIB is not set 481# CONFIG_PHYLIB is not set
@@ -533,71 +485,20 @@ CONFIG_NETDEVICES=y
533# 485#
534CONFIG_NET_ETHERNET=y 486CONFIG_NET_ETHERNET=y
535CONFIG_MII=y 487CONFIG_MII=y
536# CONFIG_HAPPYMEAL is not set
537# CONFIG_SUNGEM is not set
538# CONFIG_CASSINI is not set
539# CONFIG_NET_VENDOR_3COM is not set
540# CONFIG_DM9000 is not set 488# CONFIG_DM9000 is not set
541 489# CONFIG_SGISEEQ is not set
542#
543# Tulip family network device support
544#
545# CONFIG_NET_TULIP is not set
546# CONFIG_HP100 is not set
547CONFIG_NET_PCI=y
548# CONFIG_PCNET32 is not set
549# CONFIG_AMD8111_ETH is not set
550# CONFIG_ADAPTEC_STARFIRE is not set
551# CONFIG_B44 is not set
552# CONFIG_FORCEDETH is not set
553# CONFIG_DGRS is not set
554# CONFIG_EEPRO100 is not set
555# CONFIG_E100 is not set
556# CONFIG_FEALNX is not set
557# CONFIG_NATSEMI is not set
558# CONFIG_NE2K_PCI is not set
559# CONFIG_8139CP is not set
560CONFIG_8139TOO=y
561# CONFIG_8139TOO_PIO is not set
562CONFIG_8139TOO_TUNE_TWISTER=y
563CONFIG_8139TOO_8129=y
564# CONFIG_8139_OLD_RX_RESET is not set
565# CONFIG_SIS900 is not set
566# CONFIG_EPIC100 is not set
567# CONFIG_SUNDANCE is not set
568# CONFIG_TLAN is not set
569# CONFIG_VIA_RHINE is not set
570# CONFIG_LAN_SAA9730 is not set
571 490
572# 491#
573# Ethernet (1000 Mbit) 492# Ethernet (1000 Mbit)
574# 493#
575# CONFIG_ACENIC is not set
576# CONFIG_DL2K is not set
577# CONFIG_E1000 is not set
578# CONFIG_NS83820 is not set
579# CONFIG_HAMACHI is not set
580# CONFIG_YELLOWFIN is not set
581# CONFIG_R8169 is not set
582# CONFIG_SIS190 is not set
583# CONFIG_SKGE is not set
584# CONFIG_SKY2 is not set
585# CONFIG_SK98LIN is not set
586# CONFIG_VIA_VELOCITY is not set
587# CONFIG_TIGON3 is not set
588# CONFIG_BNX2 is not set
589 494
590# 495#
591# Ethernet (10000 Mbit) 496# Ethernet (10000 Mbit)
592# 497#
593# CONFIG_CHELSIO_T1 is not set
594# CONFIG_IXGB is not set
595# CONFIG_S2IO is not set
596 498
597# 499#
598# Token Ring devices 500# Token Ring devices
599# 501#
600# CONFIG_TR is not set
601 502
602# 503#
603# Wireless LAN (non-hamradio) 504# Wireless LAN (non-hamradio)
@@ -608,11 +509,8 @@ CONFIG_8139TOO_8129=y
608# Wan interfaces 509# Wan interfaces
609# 510#
610# CONFIG_WAN is not set 511# CONFIG_WAN is not set
611# CONFIG_FDDI is not set
612# CONFIG_HIPPI is not set
613# CONFIG_PPP is not set 512# CONFIG_PPP is not set
614# CONFIG_SLIP is not set 513# CONFIG_SLIP is not set
615# CONFIG_NET_FC is not set
616# CONFIG_SHAPER is not set 514# CONFIG_SHAPER is not set
617# CONFIG_NETCONSOLE is not set 515# CONFIG_NETCONSOLE is not set
618# CONFIG_NETPOLL is not set 516# CONFIG_NETPOLL is not set
@@ -657,7 +555,6 @@ CONFIG_INPUT=y
657CONFIG_SERIO=y 555CONFIG_SERIO=y
658# CONFIG_SERIO_I8042 is not set 556# CONFIG_SERIO_I8042 is not set
659# CONFIG_SERIO_SERPORT is not set 557# CONFIG_SERIO_SERPORT is not set
660# CONFIG_SERIO_PCIPS2 is not set
661CONFIG_SERIO_LIBPS2=y 558CONFIG_SERIO_LIBPS2=y
662# CONFIG_SERIO_RAW is not set 559# CONFIG_SERIO_RAW is not set
663# CONFIG_GAMEPORT is not set 560# CONFIG_GAMEPORT is not set
@@ -668,6 +565,7 @@ CONFIG_SERIO_LIBPS2=y
668CONFIG_VT=y 565CONFIG_VT=y
669CONFIG_VT_CONSOLE=y 566CONFIG_VT_CONSOLE=y
670CONFIG_HW_CONSOLE=y 567CONFIG_HW_CONSOLE=y
568CONFIG_VT_HW_CONSOLE_BINDING=y
671# CONFIG_SERIAL_NONSTANDARD is not set 569# CONFIG_SERIAL_NONSTANDARD is not set
672 570
673# 571#
@@ -678,8 +576,7 @@ CONFIG_HW_CONSOLE=y
678# 576#
679# Non-8250 serial port support 577# Non-8250 serial port support
680# 578#
681# CONFIG_SERIAL_IP3106 is not set 579# CONFIG_SERIAL_IP22_ZILOG is not set
682# CONFIG_SERIAL_JSM is not set
683CONFIG_UNIX98_PTYS=y 580CONFIG_UNIX98_PTYS=y
684CONFIG_LEGACY_PTYS=y 581CONFIG_LEGACY_PTYS=y
685CONFIG_LEGACY_PTY_COUNT=256 582CONFIG_LEGACY_PTY_COUNT=256
@@ -693,16 +590,16 @@ CONFIG_LEGACY_PTY_COUNT=256
693# Watchdog Cards 590# Watchdog Cards
694# 591#
695# CONFIG_WATCHDOG is not set 592# CONFIG_WATCHDOG is not set
593# CONFIG_HW_RANDOM is not set
696# CONFIG_RTC is not set 594# CONFIG_RTC is not set
595# CONFIG_SGI_DS1286 is not set
697# CONFIG_GEN_RTC is not set 596# CONFIG_GEN_RTC is not set
698# CONFIG_DTLK is not set 597# CONFIG_DTLK is not set
699# CONFIG_R3964 is not set 598# CONFIG_R3964 is not set
700# CONFIG_APPLICOM is not set
701 599
702# 600#
703# Ftape, the floppy tape device driver 601# Ftape, the floppy tape device driver
704# 602#
705# CONFIG_DRM is not set
706# CONFIG_RAW_DRIVER is not set 603# CONFIG_RAW_DRIVER is not set
707 604
708# 605#
@@ -725,13 +622,13 @@ CONFIG_LEGACY_PTY_COUNT=256
725# 622#
726# Dallas's 1-wire bus 623# Dallas's 1-wire bus
727# 624#
728# CONFIG_W1 is not set
729 625
730# 626#
731# Hardware Monitoring support 627# Hardware Monitoring support
732# 628#
733CONFIG_HWMON=y 629CONFIG_HWMON=y
734# CONFIG_HWMON_VID is not set 630# CONFIG_HWMON_VID is not set
631# CONFIG_SENSORS_ABITUGURU is not set
735# CONFIG_SENSORS_F71805F is not set 632# CONFIG_SENSORS_F71805F is not set
736# CONFIG_HWMON_DEBUG_CHIP is not set 633# CONFIG_HWMON_DEBUG_CHIP is not set
737 634
@@ -743,22 +640,24 @@ CONFIG_HWMON=y
743# Multimedia devices 640# Multimedia devices
744# 641#
745# CONFIG_VIDEO_DEV is not set 642# CONFIG_VIDEO_DEV is not set
643CONFIG_VIDEO_V4L2=y
746 644
747# 645#
748# Digital Video Broadcasting Devices 646# Digital Video Broadcasting Devices
749# 647#
750# CONFIG_DVB is not set 648# CONFIG_DVB is not set
751# CONFIG_USB_DABUSB is not set
752 649
753# 650#
754# Graphics support 651# Graphics support
755# 652#
653# CONFIG_FIRMWARE_EDID is not set
756# CONFIG_FB is not set 654# CONFIG_FB is not set
757 655
758# 656#
759# Console display driver support 657# Console display driver support
760# 658#
761# CONFIG_VGA_CONSOLE is not set 659# CONFIG_VGA_CONSOLE is not set
660# CONFIG_SGI_NEWPORT_CONSOLE is not set
762CONFIG_DUMMY_CONSOLE=y 661CONFIG_DUMMY_CONSOLE=y
763 662
764# 663#
@@ -769,126 +668,15 @@ CONFIG_DUMMY_CONSOLE=y
769# 668#
770# USB support 669# USB support
771# 670#
772CONFIG_USB_ARCH_HAS_HCD=y 671# CONFIG_USB_ARCH_HAS_HCD is not set
773CONFIG_USB_ARCH_HAS_OHCI=y 672# CONFIG_USB_ARCH_HAS_OHCI is not set
774CONFIG_USB_ARCH_HAS_EHCI=y 673# CONFIG_USB_ARCH_HAS_EHCI is not set
775CONFIG_USB=y
776# CONFIG_USB_DEBUG is not set
777
778#
779# Miscellaneous USB options
780#
781# CONFIG_USB_DEVICEFS is not set
782# CONFIG_USB_BANDWIDTH is not set
783# CONFIG_USB_DYNAMIC_MINORS is not set
784# CONFIG_USB_OTG is not set
785
786#
787# USB Host Controller Drivers
788#
789# CONFIG_USB_EHCI_HCD is not set
790# CONFIG_USB_ISP116X_HCD is not set
791CONFIG_USB_OHCI_HCD=y
792# CONFIG_USB_OHCI_BIG_ENDIAN is not set
793CONFIG_USB_OHCI_LITTLE_ENDIAN=y
794# CONFIG_USB_UHCI_HCD is not set
795# CONFIG_USB_SL811_HCD is not set
796
797#
798# USB Device Class drivers
799#
800# CONFIG_USB_ACM is not set
801# CONFIG_USB_PRINTER is not set
802 674
803# 675#
804# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 676# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
805# 677#
806 678
807# 679#
808# may also be needed; see USB_STORAGE Help for more information
809#
810CONFIG_USB_STORAGE=y
811# CONFIG_USB_STORAGE_DEBUG is not set
812CONFIG_USB_STORAGE_DATAFAB=y
813CONFIG_USB_STORAGE_FREECOM=y
814CONFIG_USB_STORAGE_ISD200=y
815CONFIG_USB_STORAGE_DPCM=y
816CONFIG_USB_STORAGE_USBAT=y
817CONFIG_USB_STORAGE_SDDR09=y
818CONFIG_USB_STORAGE_SDDR55=y
819CONFIG_USB_STORAGE_JUMPSHOT=y
820# CONFIG_USB_STORAGE_ALAUDA is not set
821# CONFIG_USB_LIBUSUAL is not set
822
823#
824# USB Input Devices
825#
826# CONFIG_USB_HID is not set
827
828#
829# USB HID Boot Protocol drivers
830#
831# CONFIG_USB_KBD is not set
832# CONFIG_USB_MOUSE is not set
833# CONFIG_USB_AIPTEK is not set
834# CONFIG_USB_WACOM is not set
835# CONFIG_USB_ACECAD is not set
836# CONFIG_USB_KBTAB is not set
837# CONFIG_USB_POWERMATE is not set
838# CONFIG_USB_TOUCHSCREEN is not set
839# CONFIG_USB_YEALINK is not set
840# CONFIG_USB_XPAD is not set
841# CONFIG_USB_ATI_REMOTE is not set
842# CONFIG_USB_ATI_REMOTE2 is not set
843# CONFIG_USB_KEYSPAN_REMOTE is not set
844# CONFIG_USB_APPLETOUCH is not set
845
846#
847# USB Imaging devices
848#
849# CONFIG_USB_MDC800 is not set
850# CONFIG_USB_MICROTEK is not set
851
852#
853# USB Network Adapters
854#
855# CONFIG_USB_CATC is not set
856# CONFIG_USB_KAWETH is not set
857# CONFIG_USB_PEGASUS is not set
858# CONFIG_USB_RTL8150 is not set
859# CONFIG_USB_USBNET is not set
860CONFIG_USB_MON=y
861
862#
863# USB port drivers
864#
865
866#
867# USB Serial Converter support
868#
869# CONFIG_USB_SERIAL is not set
870
871#
872# USB Miscellaneous drivers
873#
874# CONFIG_USB_EMI62 is not set
875# CONFIG_USB_EMI26 is not set
876# CONFIG_USB_AUERSWALD is not set
877# CONFIG_USB_RIO500 is not set
878# CONFIG_USB_LEGOTOWER is not set
879# CONFIG_USB_LCD is not set
880# CONFIG_USB_LED is not set
881# CONFIG_USB_CYTHERM is not set
882# CONFIG_USB_PHIDGETKIT is not set
883# CONFIG_USB_PHIDGETSERVO is not set
884# CONFIG_USB_IDMOUSE is not set
885# CONFIG_USB_LD is not set
886
887#
888# USB DSL modem support
889#
890
891#
892# USB Gadget Support 680# USB Gadget Support
893# 681#
894# CONFIG_USB_GADGET is not set 682# CONFIG_USB_GADGET is not set
@@ -914,7 +702,6 @@ CONFIG_USB_MON=y
914# 702#
915# InfiniBand support 703# InfiniBand support
916# 704#
917# CONFIG_INFINIBAND is not set
918 705
919# 706#
920# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 707# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -926,6 +713,19 @@ CONFIG_USB_MON=y
926# CONFIG_RTC_CLASS is not set 713# CONFIG_RTC_CLASS is not set
927 714
928# 715#
716# DMA Engine support
717#
718# CONFIG_DMA_ENGINE is not set
719
720#
721# DMA Clients
722#
723
724#
725# DMA Devices
726#
727
728#
929# File systems 729# File systems
930# 730#
931CONFIG_EXT2_FS=y 731CONFIG_EXT2_FS=y
@@ -940,6 +740,7 @@ CONFIG_EXT2_FS=y
940# CONFIG_MINIX_FS is not set 740# CONFIG_MINIX_FS is not set
941# CONFIG_ROMFS_FS is not set 741# CONFIG_ROMFS_FS is not set
942CONFIG_INOTIFY=y 742CONFIG_INOTIFY=y
743CONFIG_INOTIFY_USER=y
943# CONFIG_QUOTA is not set 744# CONFIG_QUOTA is not set
944# CONFIG_DNOTIFY is not set 745# CONFIG_DNOTIFY is not set
945# CONFIG_AUTOFS_FS is not set 746# CONFIG_AUTOFS_FS is not set
@@ -1011,6 +812,7 @@ CONFIG_SUNRPC=y
1011# CONFIG_RPCSEC_GSS_SPKM3 is not set 812# CONFIG_RPCSEC_GSS_SPKM3 is not set
1012# CONFIG_SMB_FS is not set 813# CONFIG_SMB_FS is not set
1013# CONFIG_CIFS is not set 814# CONFIG_CIFS is not set
815# CONFIG_CIFS_DEBUG2 is not set
1014# CONFIG_NCP_FS is not set 816# CONFIG_NCP_FS is not set
1015# CONFIG_CODA_FS is not set 817# CONFIG_CODA_FS is not set
1016# CONFIG_AFS_FS is not set 818# CONFIG_AFS_FS is not set
@@ -1021,6 +823,7 @@ CONFIG_SUNRPC=y
1021# 823#
1022# CONFIG_PARTITION_ADVANCED is not set 824# CONFIG_PARTITION_ADVANCED is not set
1023CONFIG_MSDOS_PARTITION=y 825CONFIG_MSDOS_PARTITION=y
826CONFIG_SGI_PARTITION=y
1024 827
1025# 828#
1026# Native Language Support 829# Native Language Support
@@ -1076,15 +879,20 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1076# 879#
1077# CONFIG_PRINTK_TIME is not set 880# CONFIG_PRINTK_TIME is not set
1078CONFIG_MAGIC_SYSRQ=y 881CONFIG_MAGIC_SYSRQ=y
882# CONFIG_UNUSED_SYMBOLS is not set
1079CONFIG_DEBUG_KERNEL=y 883CONFIG_DEBUG_KERNEL=y
1080CONFIG_LOG_BUF_SHIFT=14 884CONFIG_LOG_BUF_SHIFT=14
1081CONFIG_DETECT_SOFTLOCKUP=y 885CONFIG_DETECT_SOFTLOCKUP=y
1082# CONFIG_SCHEDSTATS is not set 886# CONFIG_SCHEDSTATS is not set
1083CONFIG_DEBUG_SLAB=y 887CONFIG_DEBUG_SLAB=y
1084# CONFIG_DEBUG_SLAB_LEAK is not set 888# CONFIG_DEBUG_SLAB_LEAK is not set
1085CONFIG_DEBUG_MUTEXES=y 889# CONFIG_DEBUG_RT_MUTEXES is not set
890# CONFIG_RT_MUTEX_TESTER is not set
1086# CONFIG_DEBUG_SPINLOCK is not set 891# CONFIG_DEBUG_SPINLOCK is not set
892CONFIG_DEBUG_MUTEXES=y
893# CONFIG_DEBUG_RWSEMS is not set
1087# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 894# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
895# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1088# CONFIG_DEBUG_KOBJECT is not set 896# CONFIG_DEBUG_KOBJECT is not set
1089# CONFIG_DEBUG_INFO is not set 897# CONFIG_DEBUG_INFO is not set
1090# CONFIG_DEBUG_FS is not set 898# CONFIG_DEBUG_FS is not set
@@ -1144,3 +952,4 @@ CONFIG_CRC_CCITT=m
1144# CONFIG_CRC16 is not set 952# CONFIG_CRC16 is not set
1145CONFIG_CRC32=y 953CONFIG_CRC32=y
1146CONFIG_LIBCRC32C=m 954CONFIG_LIBCRC32C=m
955CONFIG_PLIST=y
diff --git a/arch/mips/configs/pnx8550-v2pci_defconfig b/arch/mips/configs/pnx8550-v2pci_defconfig
index fe092ac92e89..a8eb51bae3f3 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:14 2006 4# Thu Jul 6 10:04:18 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -39,13 +41,14 @@ CONFIG_MIPS=y
39# CONFIG_MOMENCO_OCELOT_C is not set 41# CONFIG_MOMENCO_OCELOT_C is not set
40# CONFIG_MOMENCO_OCELOT_G is not set 42# CONFIG_MOMENCO_OCELOT_G is not set
41# CONFIG_MIPS_XXS1500 is not set 43# CONFIG_MIPS_XXS1500 is not set
42CONFIG_PNX8550_V2PCI=y 44# CONFIG_PNX8550_V2PCI is not set
43# CONFIG_PNX8550_JBS is not set 45# CONFIG_PNX8550_JBS is not set
44# CONFIG_DDB5477 is not set 46# CONFIG_DDB5477 is not set
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
48# CONFIG_SGI_IP22 is not set 50# CONFIG_MARKEINS is not set
51CONFIG_SGI_IP22=y
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
51# CONFIG_SIBYTE_BIGSUR is not set 54# CONFIG_SIBYTE_BIGSUR is not set
@@ -65,19 +68,25 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
72CONFIG_ARC=y
68CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 75CONFIG_CPU_BIG_ENDIAN=y
71CONFIG_CPU_LITTLE_ENDIAN=y 76# CONFIG_CPU_LITTLE_ENDIAN is not set
72CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y 77CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
73CONFIG_PNX8550=y 78CONFIG_IRQ_CPU=y
74CONFIG_SOC_PNX8550=y 79CONFIG_SWAP_IO_SPACE=y
80CONFIG_ARC32=y
81CONFIG_BOOT_ELF32=y
75CONFIG_MIPS_L1_CACHE_SHIFT=5 82CONFIG_MIPS_L1_CACHE_SHIFT=5
83# CONFIG_ARC_CONSOLE is not set
84CONFIG_ARC_PROMLIB=y
76 85
77# 86#
78# CPU selection 87# CPU selection
79# 88#
80CONFIG_CPU_MIPS32_R1=y 89# CONFIG_CPU_MIPS32_R1 is not set
81# CONFIG_CPU_MIPS32_R2 is not set 90# CONFIG_CPU_MIPS32_R2 is not set
82# CONFIG_CPU_MIPS64_R1 is not set 91# CONFIG_CPU_MIPS64_R1 is not set
83# CONFIG_CPU_MIPS64_R2 is not set 92# CONFIG_CPU_MIPS64_R2 is not set
@@ -85,7 +94,7 @@ CONFIG_CPU_MIPS32_R1=y
85# CONFIG_CPU_TX39XX is not set 94# CONFIG_CPU_TX39XX is not set
86# CONFIG_CPU_VR41XX is not set 95# CONFIG_CPU_VR41XX is not set
87# CONFIG_CPU_R4300 is not set 96# CONFIG_CPU_R4300 is not set
88# CONFIG_CPU_R4X00 is not set 97CONFIG_CPU_R4X00=y
89# CONFIG_CPU_TX49XX is not set 98# CONFIG_CPU_TX49XX is not set
90# CONFIG_CPU_R5000 is not set 99# CONFIG_CPU_R5000 is not set
91# CONFIG_CPU_R5432 is not set 100# CONFIG_CPU_R5432 is not set
@@ -96,11 +105,12 @@ CONFIG_CPU_MIPS32_R1=y
96# CONFIG_CPU_RM7000 is not set 105# CONFIG_CPU_RM7000 is not set
97# CONFIG_CPU_RM9000 is not set 106# CONFIG_CPU_RM9000 is not set
98# CONFIG_CPU_SB1 is not set 107# CONFIG_CPU_SB1 is not set
99CONFIG_SYS_HAS_CPU_MIPS32_R1=y 108CONFIG_SYS_HAS_CPU_R4X00=y
100CONFIG_CPU_MIPS32=y 109CONFIG_SYS_HAS_CPU_R5000=y
101CONFIG_CPU_MIPSR1=y
102CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 110CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
111CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
103CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 112CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
113CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
104 114
105# 115#
106# Kernel type 116# Kernel type
@@ -111,14 +121,17 @@ CONFIG_PAGE_SIZE_4KB=y
111# CONFIG_PAGE_SIZE_8KB is not set 121# CONFIG_PAGE_SIZE_8KB is not set
112# CONFIG_PAGE_SIZE_16KB is not set 122# CONFIG_PAGE_SIZE_16KB is not set
113# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
114CONFIG_CPU_HAS_PREFETCH=y 124CONFIG_BOARD_SCACHE=y
115# CONFIG_MIPS_MT is not set 125CONFIG_IP22_CPU_SCACHE=y
126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
116# CONFIG_64BIT_PHYS_ADDR is not set 130# CONFIG_64BIT_PHYS_ADDR is not set
117CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
118CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
119CONFIG_GENERIC_HARDIRQS=y 133CONFIG_GENERIC_HARDIRQS=y
120CONFIG_GENERIC_IRQ_PROBE=y 134CONFIG_GENERIC_IRQ_PROBE=y
121CONFIG_CPU_SUPPORTS_HIGHMEM=y
122CONFIG_ARCH_FLATMEM_ENABLE=y 135CONFIG_ARCH_FLATMEM_ENABLE=y
123CONFIG_SELECT_MEMORY_MODEL=y 136CONFIG_SELECT_MEMORY_MODEL=y
124CONFIG_FLATMEM_MANUAL=y 137CONFIG_FLATMEM_MANUAL=y
@@ -128,6 +141,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -140,6 +154,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 154CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 155# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 158
144# 159#
145# Code maturity level options 160# Code maturity level options
@@ -172,10 +187,12 @@ CONFIG_PRINTK=y
172CONFIG_BUG=y 187CONFIG_BUG=y
173CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
174CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
175CONFIG_FUTEX=y 191CONFIG_FUTEX=y
176CONFIG_EPOLL=y 192CONFIG_EPOLL=y
177CONFIG_SHMEM=y 193CONFIG_SHMEM=y
178CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
179# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
180CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
181# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -212,8 +229,8 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
212# 229#
213# Bus options (PCI, PCMCIA, EISA, ISA, TC) 230# Bus options (PCI, PCMCIA, EISA, ISA, TC)
214# 231#
215CONFIG_HW_HAS_PCI=y 232CONFIG_HW_HAS_EISA=y
216CONFIG_PCI=y 233# CONFIG_EISA is not set
217CONFIG_MMU=y 234CONFIG_MMU=y
218 235
219# 236#
@@ -224,7 +241,6 @@ CONFIG_MMU=y
224# 241#
225# PCI Hotplug Support 242# PCI Hotplug Support
226# 243#
227# CONFIG_HOTPLUG_PCI is not set
228 244
229# 245#
230# Executable file formats 246# Executable file formats
@@ -245,6 +261,8 @@ CONFIG_NET=y
245CONFIG_PACKET=y 261CONFIG_PACKET=y
246# CONFIG_PACKET_MMAP is not set 262# CONFIG_PACKET_MMAP is not set
247CONFIG_UNIX=y 263CONFIG_UNIX=y
264CONFIG_XFRM=y
265# CONFIG_XFRM_USER is not set
248# CONFIG_NET_KEY is not set 266# CONFIG_NET_KEY is not set
249CONFIG_INET=y 267CONFIG_INET=y
250# CONFIG_IP_MULTICAST is not set 268# CONFIG_IP_MULTICAST is not set
@@ -263,6 +281,8 @@ CONFIG_IP_PNP=y
263# CONFIG_INET_IPCOMP is not set 281# CONFIG_INET_IPCOMP is not set
264# CONFIG_INET_XFRM_TUNNEL is not set 282# CONFIG_INET_XFRM_TUNNEL is not set
265# CONFIG_INET_TUNNEL is not set 283# CONFIG_INET_TUNNEL is not set
284CONFIG_INET_XFRM_MODE_TRANSPORT=m
285CONFIG_INET_XFRM_MODE_TUNNEL=m
266CONFIG_INET_DIAG=y 286CONFIG_INET_DIAG=y
267CONFIG_INET_TCP_DIAG=y 287CONFIG_INET_TCP_DIAG=y
268# CONFIG_TCP_CONG_ADVANCED is not set 288# CONFIG_TCP_CONG_ADVANCED is not set
@@ -281,7 +301,10 @@ CONFIG_IPV6_ROUTE_INFO=y
281# CONFIG_INET6_IPCOMP is not set 301# CONFIG_INET6_IPCOMP is not set
282# CONFIG_INET6_XFRM_TUNNEL is not set 302# CONFIG_INET6_XFRM_TUNNEL is not set
283# CONFIG_INET6_TUNNEL is not set 303# CONFIG_INET6_TUNNEL is not set
304CONFIG_INET6_XFRM_MODE_TRANSPORT=m
305CONFIG_INET6_XFRM_MODE_TUNNEL=m
284# CONFIG_IPV6_TUNNEL is not set 306# CONFIG_IPV6_TUNNEL is not set
307CONFIG_NETWORK_SECMARK=y
285CONFIG_NETFILTER=y 308CONFIG_NETFILTER=y
286# CONFIG_NETFILTER_DEBUG is not set 309# CONFIG_NETFILTER_DEBUG is not set
287 310
@@ -294,6 +317,7 @@ CONFIG_NETFILTER_XTABLES=m
294CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 317CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
295CONFIG_NETFILTER_XT_TARGET_MARK=m 318CONFIG_NETFILTER_XT_TARGET_MARK=m
296CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 319CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
320CONFIG_NETFILTER_XT_TARGET_SECMARK=m
297CONFIG_NETFILTER_XT_MATCH_COMMENT=m 321CONFIG_NETFILTER_XT_MATCH_COMMENT=m
298CONFIG_NETFILTER_XT_MATCH_DCCP=m 322CONFIG_NETFILTER_XT_MATCH_DCCP=m
299CONFIG_NETFILTER_XT_MATCH_ESP=m 323CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -301,10 +325,13 @@ CONFIG_NETFILTER_XT_MATCH_LENGTH=m
301CONFIG_NETFILTER_XT_MATCH_LIMIT=m 325CONFIG_NETFILTER_XT_MATCH_LIMIT=m
302CONFIG_NETFILTER_XT_MATCH_MAC=m 326CONFIG_NETFILTER_XT_MATCH_MAC=m
303CONFIG_NETFILTER_XT_MATCH_MARK=m 327CONFIG_NETFILTER_XT_MATCH_MARK=m
328# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
304CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 329CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
305CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 330CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
331CONFIG_NETFILTER_XT_MATCH_QUOTA=m
306CONFIG_NETFILTER_XT_MATCH_REALM=m 332CONFIG_NETFILTER_XT_MATCH_REALM=m
307CONFIG_NETFILTER_XT_MATCH_SCTP=m 333CONFIG_NETFILTER_XT_MATCH_SCTP=m
334CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
308CONFIG_NETFILTER_XT_MATCH_STRING=m 335CONFIG_NETFILTER_XT_MATCH_STRING=m
309CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 336CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
310 337
@@ -374,6 +401,7 @@ CONFIG_NET_CLS_ROUTE=y
374CONFIG_STANDALONE=y 401CONFIG_STANDALONE=y
375CONFIG_PREVENT_FIRMWARE_BUILD=y 402CONFIG_PREVENT_FIRMWARE_BUILD=y
376CONFIG_FW_LOADER=y 403CONFIG_FW_LOADER=y
404# CONFIG_SYS_HYPERVISOR is not set
377 405
378# 406#
379# Connector - unified userspace <-> kernelspace linker 407# Connector - unified userspace <-> kernelspace linker
@@ -397,16 +425,10 @@ CONFIG_FW_LOADER=y
397# 425#
398# Block devices 426# Block devices
399# 427#
400# CONFIG_BLK_CPQ_DA is not set
401# CONFIG_BLK_CPQ_CISS_DA is not set
402# CONFIG_BLK_DEV_DAC960 is not set
403# CONFIG_BLK_DEV_UMEM is not set
404# CONFIG_BLK_DEV_COW_COMMON is not set 428# CONFIG_BLK_DEV_COW_COMMON is not set
405CONFIG_BLK_DEV_LOOP=y 429CONFIG_BLK_DEV_LOOP=y
406# CONFIG_BLK_DEV_CRYPTOLOOP is not set 430# CONFIG_BLK_DEV_CRYPTOLOOP is not set
407# CONFIG_BLK_DEV_NBD is not set 431# CONFIG_BLK_DEV_NBD is not set
408# CONFIG_BLK_DEV_SX8 is not set
409# CONFIG_BLK_DEV_UB is not set
410CONFIG_BLK_DEV_RAM=y 432CONFIG_BLK_DEV_RAM=y
411CONFIG_BLK_DEV_RAM_COUNT=16 433CONFIG_BLK_DEV_RAM_COUNT=16
412CONFIG_BLK_DEV_RAM_SIZE=8192 434CONFIG_BLK_DEV_RAM_SIZE=8192
@@ -436,40 +458,9 @@ CONFIG_IDEDISK_MULTI_MODE=y
436# IDE chipset support/bugfixes 458# IDE chipset support/bugfixes
437# 459#
438CONFIG_IDE_GENERIC=y 460CONFIG_IDE_GENERIC=y
439CONFIG_BLK_DEV_IDEPCI=y
440CONFIG_IDEPCI_SHARE_IRQ=y
441# CONFIG_BLK_DEV_OFFBOARD is not set
442# CONFIG_BLK_DEV_GENERIC is not set
443# CONFIG_BLK_DEV_OPTI621 is not set
444CONFIG_BLK_DEV_IDEDMA_PCI=y
445# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
446CONFIG_IDEDMA_PCI_AUTO=y
447# CONFIG_IDEDMA_ONLYDISK is not set
448# CONFIG_BLK_DEV_AEC62XX is not set
449# CONFIG_BLK_DEV_ALI15X3 is not set
450# CONFIG_BLK_DEV_AMD74XX is not set
451CONFIG_BLK_DEV_CMD64X=y
452# CONFIG_BLK_DEV_TRIFLEX is not set
453# CONFIG_BLK_DEV_CY82C693 is not set
454# CONFIG_BLK_DEV_CS5520 is not set
455# CONFIG_BLK_DEV_CS5530 is not set
456# CONFIG_BLK_DEV_HPT34X is not set
457# CONFIG_BLK_DEV_HPT366 is not set
458# CONFIG_BLK_DEV_SC1200 is not set
459# CONFIG_BLK_DEV_PIIX is not set
460# CONFIG_BLK_DEV_IT821X is not set
461# CONFIG_BLK_DEV_NS87415 is not set
462# CONFIG_BLK_DEV_PDC202XX_OLD is not set
463# CONFIG_BLK_DEV_PDC202XX_NEW is not set
464# CONFIG_BLK_DEV_SVWKS is not set
465# CONFIG_BLK_DEV_SIIMAGE is not set
466# CONFIG_BLK_DEV_SLC90E66 is not set
467# CONFIG_BLK_DEV_TRM290 is not set
468# CONFIG_BLK_DEV_VIA82CXXX is not set
469# CONFIG_IDE_ARM is not set 461# CONFIG_IDE_ARM is not set
470CONFIG_BLK_DEV_IDEDMA=y 462# CONFIG_BLK_DEV_IDEDMA is not set
471# CONFIG_IDEDMA_IVB is not set 463# CONFIG_IDEDMA_AUTO is not set
472CONFIG_IDEDMA_AUTO=y
473# CONFIG_BLK_DEV_HD is not set 464# CONFIG_BLK_DEV_HD is not set
474 465
475# 466#
@@ -508,36 +499,8 @@ CONFIG_SCSI_ISCSI_ATTRS=m
508# SCSI low-level drivers 499# SCSI low-level drivers
509# 500#
510CONFIG_ISCSI_TCP=m 501CONFIG_ISCSI_TCP=m
511# CONFIG_BLK_DEV_3W_XXXX_RAID is not set 502# CONFIG_SGIWD93_SCSI is not set
512# CONFIG_SCSI_3W_9XXX is not set
513# CONFIG_SCSI_ACARD is not set
514# CONFIG_SCSI_AACRAID is not set
515CONFIG_SCSI_AIC7XXX=m
516CONFIG_AIC7XXX_CMDS_PER_DEVICE=32
517CONFIG_AIC7XXX_RESET_DELAY_MS=15000
518# CONFIG_AIC7XXX_DEBUG_ENABLE is not set
519CONFIG_AIC7XXX_DEBUG_MASK=0
520# CONFIG_AIC7XXX_REG_PRETTY_PRINT is not set
521# CONFIG_SCSI_AIC7XXX_OLD is not set
522# CONFIG_SCSI_AIC79XX is not set
523# CONFIG_SCSI_DPT_I2O is not set
524# CONFIG_MEGARAID_NEWGEN is not set
525# CONFIG_MEGARAID_LEGACY is not set
526# CONFIG_MEGARAID_SAS is not set
527# CONFIG_SCSI_SATA is not set 503# CONFIG_SCSI_SATA is not set
528# CONFIG_SCSI_DMX3191D is not set
529# CONFIG_SCSI_FUTURE_DOMAIN is not set
530# CONFIG_SCSI_IPS is not set
531# CONFIG_SCSI_INITIO is not set
532# CONFIG_SCSI_INIA100 is not set
533# CONFIG_SCSI_SYM53C8XX_2 is not set
534# CONFIG_SCSI_IPR is not set
535# CONFIG_SCSI_QLOGIC_1280 is not set
536# CONFIG_SCSI_QLA_FC is not set
537# CONFIG_SCSI_LPFC is not set
538# CONFIG_SCSI_DC395x is not set
539# CONFIG_SCSI_DC390T is not set
540# CONFIG_SCSI_NSP32 is not set
541# CONFIG_SCSI_DEBUG is not set 504# CONFIG_SCSI_DEBUG is not set
542 505
543# 506#
@@ -549,19 +512,14 @@ CONFIG_AIC7XXX_DEBUG_MASK=0
549# Fusion MPT device support 512# Fusion MPT device support
550# 513#
551# CONFIG_FUSION is not set 514# CONFIG_FUSION is not set
552# CONFIG_FUSION_SPI is not set
553# CONFIG_FUSION_FC is not set
554# CONFIG_FUSION_SAS is not set
555 515
556# 516#
557# IEEE 1394 (FireWire) support 517# IEEE 1394 (FireWire) support
558# 518#
559# CONFIG_IEEE1394 is not set
560 519
561# 520#
562# I2O device support 521# I2O device support
563# 522#
564# CONFIG_I2O is not set
565 523
566# 524#
567# Network device support 525# Network device support
@@ -573,11 +531,6 @@ CONFIG_NETDEVICES=y
573CONFIG_TUN=m 531CONFIG_TUN=m
574 532
575# 533#
576# ARCnet devices
577#
578# CONFIG_ARCNET is not set
579
580#
581# PHY device support 534# PHY device support
582# 535#
583# CONFIG_PHYLIB is not set 536# CONFIG_PHYLIB is not set
@@ -587,71 +540,20 @@ CONFIG_TUN=m
587# 540#
588CONFIG_NET_ETHERNET=y 541CONFIG_NET_ETHERNET=y
589CONFIG_MII=y 542CONFIG_MII=y
590# CONFIG_HAPPYMEAL is not set
591# CONFIG_SUNGEM is not set
592# CONFIG_CASSINI is not set
593# CONFIG_NET_VENDOR_3COM is not set
594# CONFIG_DM9000 is not set 543# CONFIG_DM9000 is not set
595 544# CONFIG_SGISEEQ is not set
596#
597# Tulip family network device support
598#
599# CONFIG_NET_TULIP is not set
600# CONFIG_HP100 is not set
601CONFIG_NET_PCI=y
602# CONFIG_PCNET32 is not set
603# CONFIG_AMD8111_ETH is not set
604# CONFIG_ADAPTEC_STARFIRE is not set
605# CONFIG_B44 is not set
606# CONFIG_FORCEDETH is not set
607# CONFIG_DGRS is not set
608# CONFIG_EEPRO100 is not set
609# CONFIG_E100 is not set
610# CONFIG_FEALNX is not set
611CONFIG_NATSEMI=y
612# CONFIG_NE2K_PCI is not set
613# CONFIG_8139CP is not set
614CONFIG_8139TOO=y
615# CONFIG_8139TOO_PIO is not set
616# CONFIG_8139TOO_TUNE_TWISTER is not set
617# CONFIG_8139TOO_8129 is not set
618# CONFIG_8139_OLD_RX_RESET is not set
619# CONFIG_SIS900 is not set
620# CONFIG_EPIC100 is not set
621# CONFIG_SUNDANCE is not set
622# CONFIG_TLAN is not set
623# CONFIG_VIA_RHINE is not set
624# CONFIG_LAN_SAA9730 is not set
625 545
626# 546#
627# Ethernet (1000 Mbit) 547# Ethernet (1000 Mbit)
628# 548#
629# CONFIG_ACENIC is not set
630# CONFIG_DL2K is not set
631# CONFIG_E1000 is not set
632# CONFIG_NS83820 is not set
633# CONFIG_HAMACHI is not set
634# CONFIG_YELLOWFIN is not set
635# CONFIG_R8169 is not set
636# CONFIG_SIS190 is not set
637# CONFIG_SKGE is not set
638# CONFIG_SKY2 is not set
639# CONFIG_SK98LIN is not set
640# CONFIG_VIA_VELOCITY is not set
641# CONFIG_TIGON3 is not set
642# CONFIG_BNX2 is not set
643 549
644# 550#
645# Ethernet (10000 Mbit) 551# Ethernet (10000 Mbit)
646# 552#
647# CONFIG_CHELSIO_T1 is not set
648# CONFIG_IXGB is not set
649# CONFIG_S2IO is not set
650 553
651# 554#
652# Token Ring devices 555# Token Ring devices
653# 556#
654# CONFIG_TR is not set
655 557
656# 558#
657# Wireless LAN (non-hamradio) 559# Wireless LAN (non-hamradio)
@@ -662,8 +564,6 @@ CONFIG_8139TOO=y
662# Wan interfaces 564# Wan interfaces
663# 565#
664# CONFIG_WAN is not set 566# CONFIG_WAN is not set
665# CONFIG_FDDI is not set
666# CONFIG_HIPPI is not set
667CONFIG_PPP=m 567CONFIG_PPP=m
668# CONFIG_PPP_MULTILINK is not set 568# CONFIG_PPP_MULTILINK is not set
669# CONFIG_PPP_FILTER is not set 569# CONFIG_PPP_FILTER is not set
@@ -674,7 +574,6 @@ CONFIG_PPP_DEFLATE=m
674CONFIG_PPP_MPPE=m 574CONFIG_PPP_MPPE=m
675# CONFIG_PPPOE is not set 575# CONFIG_PPPOE is not set
676# CONFIG_SLIP is not set 576# CONFIG_SLIP is not set
677# CONFIG_NET_FC is not set
678# CONFIG_SHAPER is not set 577# CONFIG_SHAPER is not set
679# CONFIG_NETCONSOLE is not set 578# CONFIG_NETCONSOLE is not set
680# CONFIG_NETPOLL is not set 579# CONFIG_NETPOLL is not set
@@ -730,7 +629,6 @@ CONFIG_MOUSE_PS2=y
730CONFIG_SERIO=y 629CONFIG_SERIO=y
731CONFIG_SERIO_I8042=y 630CONFIG_SERIO_I8042=y
732CONFIG_SERIO_SERPORT=y 631CONFIG_SERIO_SERPORT=y
733# CONFIG_SERIO_PCIPS2 is not set
734CONFIG_SERIO_LIBPS2=y 632CONFIG_SERIO_LIBPS2=y
735# CONFIG_SERIO_RAW is not set 633# CONFIG_SERIO_RAW is not set
736# CONFIG_GAMEPORT is not set 634# CONFIG_GAMEPORT is not set
@@ -741,6 +639,7 @@ CONFIG_SERIO_LIBPS2=y
741CONFIG_VT=y 639CONFIG_VT=y
742# CONFIG_VT_CONSOLE is not set 640# CONFIG_VT_CONSOLE is not set
743CONFIG_HW_CONSOLE=y 641CONFIG_HW_CONSOLE=y
642CONFIG_VT_HW_CONSOLE_BINDING=y
744CONFIG_SERIAL_NONSTANDARD=y 643CONFIG_SERIAL_NONSTANDARD=y
745# CONFIG_COMPUTONE is not set 644# CONFIG_COMPUTONE is not set
746# CONFIG_ROCKETPORT is not set 645# CONFIG_ROCKETPORT is not set
@@ -750,7 +649,6 @@ CONFIG_SERIAL_NONSTANDARD=y
750# CONFIG_MOXA_SMARTIO is not set 649# CONFIG_MOXA_SMARTIO is not set
751# CONFIG_ISI is not set 650# CONFIG_ISI is not set
752# CONFIG_SYNCLINKMP is not set 651# CONFIG_SYNCLINKMP is not set
753# CONFIG_SYNCLINK_GT is not set
754# CONFIG_N_HDLC is not set 652# CONFIG_N_HDLC is not set
755# CONFIG_RISCOM8 is not set 653# CONFIG_RISCOM8 is not set
756# CONFIG_SPECIALIX is not set 654# CONFIG_SPECIALIX is not set
@@ -766,8 +664,7 @@ CONFIG_SERIAL_NONSTANDARD=y
766# 664#
767# Non-8250 serial port support 665# Non-8250 serial port support
768# 666#
769# CONFIG_SERIAL_IP3106 is not set 667# CONFIG_SERIAL_IP22_ZILOG is not set
770# CONFIG_SERIAL_JSM is not set
771CONFIG_UNIX98_PTYS=y 668CONFIG_UNIX98_PTYS=y
772CONFIG_LEGACY_PTYS=y 669CONFIG_LEGACY_PTYS=y
773CONFIG_LEGACY_PTY_COUNT=256 670CONFIG_LEGACY_PTY_COUNT=256
@@ -781,16 +678,16 @@ CONFIG_LEGACY_PTY_COUNT=256
781# Watchdog Cards 678# Watchdog Cards
782# 679#
783# CONFIG_WATCHDOG is not set 680# CONFIG_WATCHDOG is not set
681# CONFIG_HW_RANDOM is not set
784# CONFIG_RTC is not set 682# CONFIG_RTC is not set
683# CONFIG_SGI_DS1286 is not set
785# CONFIG_GEN_RTC is not set 684# CONFIG_GEN_RTC is not set
786# CONFIG_DTLK is not set 685# CONFIG_DTLK is not set
787# CONFIG_R3964 is not set 686# CONFIG_R3964 is not set
788# CONFIG_APPLICOM is not set
789 687
790# 688#
791# Ftape, the floppy tape device driver 689# Ftape, the floppy tape device driver
792# 690#
793# CONFIG_DRM is not set
794# CONFIG_RAW_DRIVER is not set 691# CONFIG_RAW_DRIVER is not set
795 692
796# 693#
@@ -811,29 +708,14 @@ CONFIG_I2C_CHARDEV=m
811CONFIG_I2C_ALGOBIT=m 708CONFIG_I2C_ALGOBIT=m
812# CONFIG_I2C_ALGOPCF is not set 709# CONFIG_I2C_ALGOPCF is not set
813# CONFIG_I2C_ALGOPCA is not set 710# CONFIG_I2C_ALGOPCA is not set
711# CONFIG_I2C_ALGO_SGI is not set
814 712
815# 713#
816# I2C Hardware Bus support 714# I2C Hardware Bus support
817# 715#
818# CONFIG_I2C_ALI1535 is not set 716# CONFIG_I2C_OCORES is not set
819# CONFIG_I2C_ALI1563 is not set
820# CONFIG_I2C_ALI15X3 is not set
821# CONFIG_I2C_AMD756 is not set
822# CONFIG_I2C_AMD8111 is not set
823# CONFIG_I2C_I801 is not set
824# CONFIG_I2C_I810 is not set
825# CONFIG_I2C_PIIX4 is not set
826# CONFIG_I2C_NFORCE2 is not set
827# CONFIG_I2C_PARPORT_LIGHT is not set 717# CONFIG_I2C_PARPORT_LIGHT is not set
828# CONFIG_I2C_PROSAVAGE is not set
829# CONFIG_I2C_SAVAGE4 is not set
830# CONFIG_I2C_SIS5595 is not set
831# CONFIG_I2C_SIS630 is not set
832# CONFIG_I2C_SIS96X is not set
833# CONFIG_I2C_STUB is not set 718# CONFIG_I2C_STUB is not set
834# CONFIG_I2C_VIA is not set
835# CONFIG_I2C_VIAPRO is not set
836# CONFIG_I2C_VOODOO3 is not set
837# CONFIG_I2C_PCA_ISA is not set 719# CONFIG_I2C_PCA_ISA is not set
838 720
839# 721#
@@ -860,13 +742,13 @@ CONFIG_I2C_ALGOBIT=m
860# 742#
861# Dallas's 1-wire bus 743# Dallas's 1-wire bus
862# 744#
863# CONFIG_W1 is not set
864 745
865# 746#
866# Hardware Monitoring support 747# Hardware Monitoring support
867# 748#
868CONFIG_HWMON=y 749CONFIG_HWMON=y
869# CONFIG_HWMON_VID is not set 750# CONFIG_HWMON_VID is not set
751# CONFIG_SENSORS_ABITUGURU is not set
870# CONFIG_SENSORS_ADM1021 is not set 752# CONFIG_SENSORS_ADM1021 is not set
871# CONFIG_SENSORS_ADM1025 is not set 753# CONFIG_SENSORS_ADM1025 is not set
872# CONFIG_SENSORS_ADM1026 is not set 754# CONFIG_SENSORS_ADM1026 is not set
@@ -893,12 +775,11 @@ CONFIG_HWMON=y
893# CONFIG_SENSORS_LM92 is not set 775# CONFIG_SENSORS_LM92 is not set
894# CONFIG_SENSORS_MAX1619 is not set 776# CONFIG_SENSORS_MAX1619 is not set
895# CONFIG_SENSORS_PC87360 is not set 777# CONFIG_SENSORS_PC87360 is not set
896# CONFIG_SENSORS_SIS5595 is not set
897# CONFIG_SENSORS_SMSC47M1 is not set 778# CONFIG_SENSORS_SMSC47M1 is not set
779# CONFIG_SENSORS_SMSC47M192 is not set
898# CONFIG_SENSORS_SMSC47B397 is not set 780# CONFIG_SENSORS_SMSC47B397 is not set
899# CONFIG_SENSORS_VIA686A is not set
900# CONFIG_SENSORS_VT8231 is not set
901# CONFIG_SENSORS_W83781D is not set 781# CONFIG_SENSORS_W83781D is not set
782# CONFIG_SENSORS_W83791D is not set
902# CONFIG_SENSORS_W83792D is not set 783# CONFIG_SENSORS_W83792D is not set
903# CONFIG_SENSORS_W83L785TS is not set 784# CONFIG_SENSORS_W83L785TS is not set
904# CONFIG_SENSORS_W83627HF is not set 785# CONFIG_SENSORS_W83627HF is not set
@@ -913,50 +794,33 @@ CONFIG_HWMON=y
913# Multimedia devices 794# Multimedia devices
914# 795#
915# CONFIG_VIDEO_DEV is not set 796# CONFIG_VIDEO_DEV is not set
797CONFIG_VIDEO_V4L2=y
916 798
917# 799#
918# Digital Video Broadcasting Devices 800# Digital Video Broadcasting Devices
919# 801#
920# CONFIG_DVB is not set 802# CONFIG_DVB is not set
921# CONFIG_USB_DABUSB is not set
922 803
923# 804#
924# Graphics support 805# Graphics support
925# 806#
807# CONFIG_FIRMWARE_EDID is not set
926CONFIG_FB=y 808CONFIG_FB=y
927# CONFIG_FB_CFB_FILLRECT is not set 809# CONFIG_FB_CFB_FILLRECT is not set
928# CONFIG_FB_CFB_COPYAREA is not set 810# CONFIG_FB_CFB_COPYAREA is not set
929# CONFIG_FB_CFB_IMAGEBLIT is not set 811# CONFIG_FB_CFB_IMAGEBLIT is not set
930# CONFIG_FB_MACMODES is not set 812# CONFIG_FB_MACMODES is not set
931CONFIG_FB_FIRMWARE_EDID=y 813# CONFIG_FB_BACKLIGHT is not set
932# CONFIG_FB_MODE_HELPERS is not set 814# CONFIG_FB_MODE_HELPERS is not set
933# CONFIG_FB_TILEBLITTING is not set 815# CONFIG_FB_TILEBLITTING is not set
934# CONFIG_FB_CIRRUS is not set
935# CONFIG_FB_PM2 is not set
936# CONFIG_FB_CYBER2000 is not set
937# CONFIG_FB_ASILIANT is not set
938# CONFIG_FB_IMSTT is not set
939# CONFIG_FB_S1D13XXX is not set 816# CONFIG_FB_S1D13XXX is not set
940# CONFIG_FB_NVIDIA is not set
941# CONFIG_FB_RIVA is not set
942# CONFIG_FB_MATROX is not set
943# CONFIG_FB_RADEON is not set
944# CONFIG_FB_ATY128 is not set
945# CONFIG_FB_ATY is not set
946# CONFIG_FB_SAVAGE is not set
947# CONFIG_FB_SIS is not set
948# CONFIG_FB_NEOMAGIC is not set
949# CONFIG_FB_KYRO is not set
950# CONFIG_FB_3DFX is not set
951# CONFIG_FB_VOODOO1 is not set
952# CONFIG_FB_SMIVGX is not set
953# CONFIG_FB_TRIDENT is not set
954# CONFIG_FB_VIRTUAL is not set 817# CONFIG_FB_VIRTUAL is not set
955 818
956# 819#
957# Console display driver support 820# Console display driver support
958# 821#
959# CONFIG_VGA_CONSOLE is not set 822# CONFIG_VGA_CONSOLE is not set
823# CONFIG_SGI_NEWPORT_CONSOLE is not set
960CONFIG_DUMMY_CONSOLE=y 824CONFIG_DUMMY_CONSOLE=y
961# CONFIG_FRAMEBUFFER_CONSOLE is not set 825# CONFIG_FRAMEBUFFER_CONSOLE is not set
962 826
@@ -974,124 +838,15 @@ CONFIG_DUMMY_CONSOLE=y
974# 838#
975# USB support 839# USB support
976# 840#
977CONFIG_USB_ARCH_HAS_HCD=y 841# CONFIG_USB_ARCH_HAS_HCD is not set
978CONFIG_USB_ARCH_HAS_OHCI=y 842# CONFIG_USB_ARCH_HAS_OHCI is not set
979CONFIG_USB_ARCH_HAS_EHCI=y 843# CONFIG_USB_ARCH_HAS_EHCI is not set
980CONFIG_USB=y
981# CONFIG_USB_DEBUG is not set
982
983#
984# Miscellaneous USB options
985#
986CONFIG_USB_DEVICEFS=y
987# CONFIG_USB_BANDWIDTH is not set
988# CONFIG_USB_DYNAMIC_MINORS is not set
989# CONFIG_USB_OTG is not set
990
991#
992# USB Host Controller Drivers
993#
994# CONFIG_USB_EHCI_HCD is not set
995# CONFIG_USB_ISP116X_HCD is not set
996# CONFIG_USB_OHCI_HCD is not set
997# CONFIG_USB_UHCI_HCD is not set
998# CONFIG_USB_SL811_HCD is not set
999
1000#
1001# USB Device Class drivers
1002#
1003# CONFIG_USB_ACM is not set
1004# CONFIG_USB_PRINTER is not set
1005 844
1006# 845#
1007# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support' 846# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
1008# 847#
1009 848
1010# 849#
1011# may also be needed; see USB_STORAGE Help for more information
1012#
1013CONFIG_USB_STORAGE=y
1014# CONFIG_USB_STORAGE_DEBUG is not set
1015# CONFIG_USB_STORAGE_DATAFAB is not set
1016# CONFIG_USB_STORAGE_FREECOM is not set
1017# CONFIG_USB_STORAGE_ISD200 is not set
1018# CONFIG_USB_STORAGE_DPCM is not set
1019# CONFIG_USB_STORAGE_USBAT is not set
1020# CONFIG_USB_STORAGE_SDDR09 is not set
1021# CONFIG_USB_STORAGE_SDDR55 is not set
1022# CONFIG_USB_STORAGE_JUMPSHOT is not set
1023# CONFIG_USB_STORAGE_ALAUDA is not set
1024# CONFIG_USB_STORAGE_ONETOUCH is not set
1025# CONFIG_USB_LIBUSUAL is not set
1026
1027#
1028# USB Input Devices
1029#
1030CONFIG_USB_HID=y
1031CONFIG_USB_HIDINPUT=y
1032# CONFIG_USB_HIDINPUT_POWERBOOK is not set
1033# CONFIG_HID_FF is not set
1034CONFIG_USB_HIDDEV=y
1035# CONFIG_USB_AIPTEK is not set
1036# CONFIG_USB_WACOM is not set
1037# CONFIG_USB_ACECAD is not set
1038# CONFIG_USB_KBTAB is not set
1039# CONFIG_USB_POWERMATE is not set
1040# CONFIG_USB_TOUCHSCREEN is not set
1041# CONFIG_USB_YEALINK is not set
1042# CONFIG_USB_XPAD is not set
1043# CONFIG_USB_ATI_REMOTE is not set
1044# CONFIG_USB_ATI_REMOTE2 is not set
1045# CONFIG_USB_KEYSPAN_REMOTE is not set
1046# CONFIG_USB_APPLETOUCH is not set
1047
1048#
1049# USB Imaging devices
1050#
1051# CONFIG_USB_MDC800 is not set
1052# CONFIG_USB_MICROTEK is not set
1053
1054#
1055# USB Network Adapters
1056#
1057# CONFIG_USB_CATC is not set
1058# CONFIG_USB_KAWETH is not set
1059# CONFIG_USB_PEGASUS is not set
1060# CONFIG_USB_RTL8150 is not set
1061# CONFIG_USB_USBNET is not set
1062CONFIG_USB_MON=y
1063
1064#
1065# USB port drivers
1066#
1067
1068#
1069# USB Serial Converter support
1070#
1071# CONFIG_USB_SERIAL is not set
1072
1073#
1074# USB Miscellaneous drivers
1075#
1076# CONFIG_USB_EMI62 is not set
1077# CONFIG_USB_EMI26 is not set
1078# CONFIG_USB_AUERSWALD is not set
1079# CONFIG_USB_RIO500 is not set
1080# CONFIG_USB_LEGOTOWER is not set
1081# CONFIG_USB_LCD is not set
1082# CONFIG_USB_LED is not set
1083# CONFIG_USB_CYTHERM is not set
1084# CONFIG_USB_PHIDGETKIT is not set
1085# CONFIG_USB_PHIDGETSERVO is not set
1086# CONFIG_USB_IDMOUSE is not set
1087# CONFIG_USB_LD is not set
1088# CONFIG_USB_TEST is not set
1089
1090#
1091# USB DSL modem support
1092#
1093
1094#
1095# USB Gadget Support 850# USB Gadget Support
1096# 851#
1097# CONFIG_USB_GADGET is not set 852# CONFIG_USB_GADGET is not set
@@ -1117,7 +872,6 @@ CONFIG_USB_MON=y
1117# 872#
1118# InfiniBand support 873# InfiniBand support
1119# 874#
1120# CONFIG_INFINIBAND is not set
1121 875
1122# 876#
1123# EDAC - error detection and reporting (RAS) (EXPERIMENTAL) 877# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
@@ -1129,6 +883,19 @@ CONFIG_USB_MON=y
1129# CONFIG_RTC_CLASS is not set 883# CONFIG_RTC_CLASS is not set
1130 884
1131# 885#
886# DMA Engine support
887#
888# CONFIG_DMA_ENGINE is not set
889
890#
891# DMA Clients
892#
893
894#
895# DMA Devices
896#
897
898#
1132# File systems 899# File systems
1133# 900#
1134CONFIG_EXT2_FS=y 901CONFIG_EXT2_FS=y
@@ -1145,7 +912,6 @@ CONFIG_FS_MBCACHE=y
1145# CONFIG_JFS_FS is not set 912# CONFIG_JFS_FS is not set
1146# CONFIG_FS_POSIX_ACL is not set 913# CONFIG_FS_POSIX_ACL is not set
1147CONFIG_XFS_FS=m 914CONFIG_XFS_FS=m
1148CONFIG_XFS_EXPORT=y
1149# CONFIG_XFS_QUOTA is not set 915# CONFIG_XFS_QUOTA is not set
1150# CONFIG_XFS_SECURITY is not set 916# CONFIG_XFS_SECURITY is not set
1151# CONFIG_XFS_POSIX_ACL is not set 917# CONFIG_XFS_POSIX_ACL is not set
@@ -1154,6 +920,7 @@ CONFIG_XFS_EXPORT=y
1154# CONFIG_MINIX_FS is not set 920# CONFIG_MINIX_FS is not set
1155# CONFIG_ROMFS_FS is not set 921# CONFIG_ROMFS_FS is not set
1156CONFIG_INOTIFY=y 922CONFIG_INOTIFY=y
923CONFIG_INOTIFY_USER=y
1157# CONFIG_QUOTA is not set 924# CONFIG_QUOTA is not set
1158CONFIG_DNOTIFY=y 925CONFIG_DNOTIFY=y
1159CONFIG_AUTOFS_FS=y 926CONFIG_AUTOFS_FS=y
@@ -1226,6 +993,7 @@ CONFIG_SUNRPC=y
1226CONFIG_SMB_FS=m 993CONFIG_SMB_FS=m
1227# CONFIG_SMB_NLS_DEFAULT is not set 994# CONFIG_SMB_NLS_DEFAULT is not set
1228# CONFIG_CIFS is not set 995# CONFIG_CIFS is not set
996# CONFIG_CIFS_DEBUG2 is not set
1229# CONFIG_NCP_FS is not set 997# CONFIG_NCP_FS is not set
1230# CONFIG_CODA_FS is not set 998# CONFIG_CODA_FS is not set
1231# CONFIG_AFS_FS is not set 999# CONFIG_AFS_FS is not set
@@ -1236,6 +1004,7 @@ CONFIG_SMB_FS=m
1236# 1004#
1237# CONFIG_PARTITION_ADVANCED is not set 1005# CONFIG_PARTITION_ADVANCED is not set
1238CONFIG_MSDOS_PARTITION=y 1006CONFIG_MSDOS_PARTITION=y
1007CONFIG_SGI_PARTITION=y
1239 1008
1240# 1009#
1241# Native Language Support 1010# Native Language Support
@@ -1291,6 +1060,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1291# 1060#
1292# CONFIG_PRINTK_TIME is not set 1061# CONFIG_PRINTK_TIME is not set
1293# CONFIG_MAGIC_SYSRQ is not set 1062# CONFIG_MAGIC_SYSRQ is not set
1063# CONFIG_UNUSED_SYMBOLS is not set
1294# CONFIG_DEBUG_KERNEL is not set 1064# CONFIG_DEBUG_KERNEL is not set
1295CONFIG_LOG_BUF_SHIFT=14 1065CONFIG_LOG_BUF_SHIFT=14
1296# CONFIG_DEBUG_FS is not set 1066# CONFIG_DEBUG_FS is not set
@@ -1349,3 +1119,4 @@ CONFIG_TEXTSEARCH=y
1349CONFIG_TEXTSEARCH_KMP=m 1119CONFIG_TEXTSEARCH_KMP=m
1350CONFIG_TEXTSEARCH_BM=m 1120CONFIG_TEXTSEARCH_BM=m
1351CONFIG_TEXTSEARCH_FSM=m 1121CONFIG_TEXTSEARCH_FSM=m
1122CONFIG_PLIST=y
diff --git a/arch/mips/configs/qemu_defconfig b/arch/mips/configs/qemu_defconfig
index db8701344cee..6a63a113b7ea 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:15 2006 4# Thu Jul 6 10:04:18 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47CONFIG_QEMU=y 49CONFIG_QEMU=y
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_COHERENT=y 72CONFIG_DMA_COHERENT=y
69CONFIG_GENERIC_ISA_DMA=y 73CONFIG_GENERIC_ISA_DMA=y
70CONFIG_I8259=y 74CONFIG_I8259=y
@@ -113,7 +117,10 @@ CONFIG_PAGE_SIZE_4KB=y
113# CONFIG_PAGE_SIZE_16KB is not set 117# CONFIG_PAGE_SIZE_16KB is not set
114# CONFIG_PAGE_SIZE_64KB is not set 118# CONFIG_PAGE_SIZE_64KB is not set
115CONFIG_CPU_HAS_PREFETCH=y 119CONFIG_CPU_HAS_PREFETCH=y
116# CONFIG_MIPS_MT is not set 120CONFIG_MIPS_MT_DISABLED=y
121# CONFIG_MIPS_MT_SMTC is not set
122# CONFIG_MIPS_MT_SMP is not set
123# CONFIG_MIPS_VPE_LOADER is not set
117# CONFIG_64BIT_PHYS_ADDR is not set 124# CONFIG_64BIT_PHYS_ADDR is not set
118CONFIG_CPU_HAS_LLSC=y 125CONFIG_CPU_HAS_LLSC=y
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
@@ -121,11 +128,12 @@ CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 128CONFIG_GENERIC_IRQ_PROBE=y
122CONFIG_CPU_SUPPORTS_HIGHMEM=y 129CONFIG_CPU_SUPPORTS_HIGHMEM=y
123CONFIG_ARCH_FLATMEM_ENABLE=y 130CONFIG_ARCH_FLATMEM_ENABLE=y
131CONFIG_ARCH_SPARSEMEM_ENABLE=y
124CONFIG_FLATMEM=y 132CONFIG_FLATMEM=y
125CONFIG_FLAT_NODE_MEM_MAP=y 133CONFIG_FLAT_NODE_MEM_MAP=y
126# CONFIG_SPARSEMEM_STATIC is not set 134# CONFIG_SPARSEMEM_STATIC is not set
127CONFIG_SPLIT_PTLOCK_CPUS=4 135CONFIG_SPLIT_PTLOCK_CPUS=4
128# CONFIG_SMP is not set 136# CONFIG_RESOURCES_64BIT is not set
129# CONFIG_HZ_48 is not set 137# CONFIG_HZ_48 is not set
130CONFIG_HZ_100=y 138CONFIG_HZ_100=y
131# CONFIG_HZ_128 is not set 139# CONFIG_HZ_128 is not set
@@ -138,6 +146,7 @@ CONFIG_HZ=100
138CONFIG_PREEMPT_NONE=y 146CONFIG_PREEMPT_NONE=y
139# CONFIG_PREEMPT_VOLUNTARY is not set 147# CONFIG_PREEMPT_VOLUNTARY is not set
140# CONFIG_PREEMPT is not set 148# CONFIG_PREEMPT is not set
149CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
141 150
142# 151#
143# Code maturity level options 152# Code maturity level options
@@ -171,6 +180,7 @@ CONFIG_ELF_CORE=y
171# CONFIG_EPOLL is not set 180# CONFIG_EPOLL is not set
172# CONFIG_SHMEM is not set 181# CONFIG_SHMEM is not set
173CONFIG_SLAB=y 182CONFIG_SLAB=y
183CONFIG_VM_EVENT_COUNTERS=y
174CONFIG_TINY_SHMEM=y 184CONFIG_TINY_SHMEM=y
175CONFIG_BASE_SMALL=1 185CONFIG_BASE_SMALL=1
176# CONFIG_SLOB is not set 186# CONFIG_SLOB is not set
@@ -235,6 +245,8 @@ CONFIG_NET=y
235CONFIG_PACKET=y 245CONFIG_PACKET=y
236CONFIG_PACKET_MMAP=y 246CONFIG_PACKET_MMAP=y
237CONFIG_UNIX=y 247CONFIG_UNIX=y
248CONFIG_XFRM=y
249# CONFIG_XFRM_USER is not set
238# CONFIG_NET_KEY is not set 250# CONFIG_NET_KEY is not set
239CONFIG_INET=y 251CONFIG_INET=y
240CONFIG_IP_MULTICAST=y 252CONFIG_IP_MULTICAST=y
@@ -253,6 +265,8 @@ CONFIG_IP_PNP_BOOTP=y
253# CONFIG_INET_IPCOMP is not set 265# CONFIG_INET_IPCOMP is not set
254# CONFIG_INET_XFRM_TUNNEL is not set 266# CONFIG_INET_XFRM_TUNNEL is not set
255# CONFIG_INET_TUNNEL is not set 267# CONFIG_INET_TUNNEL is not set
268CONFIG_INET_XFRM_MODE_TRANSPORT=y
269CONFIG_INET_XFRM_MODE_TUNNEL=y
256CONFIG_INET_DIAG=y 270CONFIG_INET_DIAG=y
257CONFIG_INET_TCP_DIAG=y 271CONFIG_INET_TCP_DIAG=y
258# CONFIG_TCP_CONG_ADVANCED is not set 272# CONFIG_TCP_CONG_ADVANCED is not set
@@ -260,6 +274,7 @@ CONFIG_TCP_CONG_BIC=y
260# CONFIG_IPV6 is not set 274# CONFIG_IPV6 is not set
261# CONFIG_INET6_XFRM_TUNNEL is not set 275# CONFIG_INET6_XFRM_TUNNEL is not set
262# CONFIG_INET6_TUNNEL is not set 276# CONFIG_INET6_TUNNEL is not set
277CONFIG_NETWORK_SECMARK=y
263# CONFIG_NETFILTER is not set 278# CONFIG_NETFILTER is not set
264# CONFIG_BRIDGE is not set 279# CONFIG_BRIDGE is not set
265# CONFIG_VLAN_8021Q is not set 280# CONFIG_VLAN_8021Q is not set
@@ -292,6 +307,7 @@ CONFIG_TCP_CONG_BIC=y
292CONFIG_STANDALONE=y 307CONFIG_STANDALONE=y
293# CONFIG_PREVENT_FIRMWARE_BUILD is not set 308# CONFIG_PREVENT_FIRMWARE_BUILD is not set
294# CONFIG_FW_LOADER is not set 309# CONFIG_FW_LOADER is not set
310# CONFIG_SYS_HYPERVISOR is not set
295 311
296# 312#
297# Connector - unified userspace <-> kernelspace linker 313# Connector - unified userspace <-> kernelspace linker
@@ -473,6 +489,7 @@ CONFIG_INPUT=y
473CONFIG_VT=y 489CONFIG_VT=y
474CONFIG_VT_CONSOLE=y 490CONFIG_VT_CONSOLE=y
475CONFIG_HW_CONSOLE=y 491CONFIG_HW_CONSOLE=y
492CONFIG_VT_HW_CONSOLE_BINDING=y
476# CONFIG_SERIAL_NONSTANDARD is not set 493# CONFIG_SERIAL_NONSTANDARD is not set
477 494
478# 495#
@@ -502,6 +519,7 @@ CONFIG_LEGACY_PTY_COUNT=256
502# Watchdog Cards 519# Watchdog Cards
503# 520#
504# CONFIG_WATCHDOG is not set 521# CONFIG_WATCHDOG is not set
522# CONFIG_HW_RANDOM is not set
505# CONFIG_RTC is not set 523# CONFIG_RTC is not set
506# CONFIG_GEN_RTC is not set 524# CONFIG_GEN_RTC is not set
507# CONFIG_DTLK is not set 525# CONFIG_DTLK is not set
@@ -546,6 +564,7 @@ CONFIG_LEGACY_PTY_COUNT=256
546# Multimedia devices 564# Multimedia devices
547# 565#
548# CONFIG_VIDEO_DEV is not set 566# CONFIG_VIDEO_DEV is not set
567CONFIG_VIDEO_V4L2=y
549 568
550# 569#
551# Digital Video Broadcasting Devices 570# Digital Video Broadcasting Devices
@@ -555,6 +574,7 @@ CONFIG_LEGACY_PTY_COUNT=256
555# 574#
556# Graphics support 575# Graphics support
557# 576#
577# CONFIG_FIRMWARE_EDID is not set
558# CONFIG_FB is not set 578# CONFIG_FB is not set
559 579
560# 580#
@@ -617,6 +637,19 @@ CONFIG_DUMMY_CONSOLE=y
617# 637#
618 638
619# 639#
640# DMA Engine support
641#
642# CONFIG_DMA_ENGINE is not set
643
644#
645# DMA Clients
646#
647
648#
649# DMA Devices
650#
651
652#
620# File systems 653# File systems
621# 654#
622# CONFIG_EXT2_FS is not set 655# CONFIG_EXT2_FS is not set
@@ -628,6 +661,7 @@ CONFIG_DUMMY_CONSOLE=y
628# CONFIG_MINIX_FS is not set 661# CONFIG_MINIX_FS is not set
629# CONFIG_ROMFS_FS is not set 662# CONFIG_ROMFS_FS is not set
630CONFIG_INOTIFY=y 663CONFIG_INOTIFY=y
664CONFIG_INOTIFY_USER=y
631# CONFIG_QUOTA is not set 665# CONFIG_QUOTA is not set
632# CONFIG_DNOTIFY is not set 666# CONFIG_DNOTIFY is not set
633# CONFIG_AUTOFS_FS is not set 667# CONFIG_AUTOFS_FS is not set
@@ -682,6 +716,7 @@ CONFIG_NFS_COMMON=y
682CONFIG_SUNRPC=y 716CONFIG_SUNRPC=y
683# CONFIG_SMB_FS is not set 717# CONFIG_SMB_FS is not set
684# CONFIG_CIFS is not set 718# CONFIG_CIFS is not set
719# CONFIG_CIFS_DEBUG2 is not set
685# CONFIG_NCP_FS is not set 720# CONFIG_NCP_FS is not set
686# CONFIG_CODA_FS is not set 721# CONFIG_CODA_FS is not set
687 722
@@ -701,6 +736,7 @@ CONFIG_MSDOS_PARTITION=y
701# 736#
702# CONFIG_PRINTK_TIME is not set 737# CONFIG_PRINTK_TIME is not set
703# CONFIG_MAGIC_SYSRQ is not set 738# CONFIG_MAGIC_SYSRQ is not set
739# CONFIG_UNUSED_SYMBOLS is not set
704# CONFIG_DEBUG_KERNEL is not set 740# CONFIG_DEBUG_KERNEL is not set
705CONFIG_LOG_BUF_SHIFT=14 741CONFIG_LOG_BUF_SHIFT=14
706# CONFIG_DEBUG_FS is not set 742# CONFIG_DEBUG_FS is not set
diff --git a/arch/mips/configs/rbhma4500_defconfig b/arch/mips/configs/rbhma4500_defconfig
index b16731f3684b..6779f449bd2d 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:16 2006 4# Thu Jul 6 10:04:19 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -72,6 +75,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
72CONFIG_GENERIC_FIND_NEXT_BIT=y 75CONFIG_GENERIC_FIND_NEXT_BIT=y
73CONFIG_GENERIC_HWEIGHT=y 76CONFIG_GENERIC_HWEIGHT=y
74CONFIG_GENERIC_CALIBRATE_DELAY=y 77CONFIG_GENERIC_CALIBRATE_DELAY=y
78CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
75CONFIG_DMA_NONCOHERENT=y 79CONFIG_DMA_NONCOHERENT=y
76CONFIG_DMA_NEED_PCI_MAP_STATE=y 80CONFIG_DMA_NEED_PCI_MAP_STATE=y
77CONFIG_GENERIC_ISA_DMA=y 81CONFIG_GENERIC_ISA_DMA=y
@@ -122,7 +126,10 @@ CONFIG_PAGE_SIZE_4KB=y
122# CONFIG_PAGE_SIZE_16KB is not set 126# CONFIG_PAGE_SIZE_16KB is not set
123# CONFIG_PAGE_SIZE_64KB is not set 127# CONFIG_PAGE_SIZE_64KB is not set
124CONFIG_CPU_HAS_PREFETCH=y 128CONFIG_CPU_HAS_PREFETCH=y
125# CONFIG_MIPS_MT is not set 129CONFIG_MIPS_MT_DISABLED=y
130# CONFIG_MIPS_MT_SMTC is not set
131# CONFIG_MIPS_MT_SMP is not set
132# CONFIG_MIPS_VPE_LOADER is not set
126CONFIG_CPU_HAS_LLSC=y 133CONFIG_CPU_HAS_LLSC=y
127CONFIG_CPU_HAS_SYNC=y 134CONFIG_CPU_HAS_SYNC=y
128CONFIG_GENERIC_HARDIRQS=y 135CONFIG_GENERIC_HARDIRQS=y
@@ -136,6 +143,7 @@ CONFIG_FLATMEM=y
136CONFIG_FLAT_NODE_MEM_MAP=y 143CONFIG_FLAT_NODE_MEM_MAP=y
137# CONFIG_SPARSEMEM_STATIC is not set 144# CONFIG_SPARSEMEM_STATIC is not set
138CONFIG_SPLIT_PTLOCK_CPUS=4 145CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_RESOURCES_64BIT is not set
139# CONFIG_HZ_48 is not set 147# CONFIG_HZ_48 is not set
140# CONFIG_HZ_100 is not set 148# CONFIG_HZ_100 is not set
141# CONFIG_HZ_128 is not set 149# CONFIG_HZ_128 is not set
@@ -148,6 +156,7 @@ CONFIG_HZ=1000
148CONFIG_PREEMPT_NONE=y 156CONFIG_PREEMPT_NONE=y
149# CONFIG_PREEMPT_VOLUNTARY is not set 157# CONFIG_PREEMPT_VOLUNTARY is not set
150# CONFIG_PREEMPT is not set 158# CONFIG_PREEMPT is not set
159CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
151 160
152# 161#
153# Code maturity level options 162# Code maturity level options
@@ -184,10 +193,10 @@ CONFIG_BASE_FULL=y
184# CONFIG_EPOLL is not set 193# CONFIG_EPOLL is not set
185CONFIG_SHMEM=y 194CONFIG_SHMEM=y
186CONFIG_SLAB=y 195CONFIG_SLAB=y
196CONFIG_VM_EVENT_COUNTERS=y
187# CONFIG_TINY_SHMEM is not set 197# CONFIG_TINY_SHMEM is not set
188CONFIG_BASE_SMALL=0 198CONFIG_BASE_SMALL=0
189# CONFIG_SLOB is not set 199# CONFIG_SLOB is not set
190CONFIG_OBSOLETE_INTERMODULE=y
191 200
192# 201#
193# Loadable module support 202# Loadable module support
@@ -255,6 +264,8 @@ CONFIG_NET=y
255CONFIG_PACKET=y 264CONFIG_PACKET=y
256# CONFIG_PACKET_MMAP is not set 265# CONFIG_PACKET_MMAP is not set
257CONFIG_UNIX=y 266CONFIG_UNIX=y
267CONFIG_XFRM=y
268# CONFIG_XFRM_USER is not set
258# CONFIG_NET_KEY is not set 269# CONFIG_NET_KEY is not set
259CONFIG_INET=y 270CONFIG_INET=y
260CONFIG_IP_MULTICAST=y 271CONFIG_IP_MULTICAST=y
@@ -274,6 +285,8 @@ CONFIG_IP_PNP_BOOTP=y
274# CONFIG_INET_IPCOMP is not set 285# CONFIG_INET_IPCOMP is not set
275# CONFIG_INET_XFRM_TUNNEL is not set 286# CONFIG_INET_XFRM_TUNNEL is not set
276# CONFIG_INET_TUNNEL is not set 287# CONFIG_INET_TUNNEL is not set
288CONFIG_INET_XFRM_MODE_TRANSPORT=m
289CONFIG_INET_XFRM_MODE_TUNNEL=m
277CONFIG_INET_DIAG=y 290CONFIG_INET_DIAG=y
278CONFIG_INET_TCP_DIAG=y 291CONFIG_INET_TCP_DIAG=y
279# CONFIG_TCP_CONG_ADVANCED is not set 292# CONFIG_TCP_CONG_ADVANCED is not set
@@ -292,7 +305,10 @@ CONFIG_IPV6_ROUTE_INFO=y
292# CONFIG_INET6_IPCOMP is not set 305# CONFIG_INET6_IPCOMP is not set
293# CONFIG_INET6_XFRM_TUNNEL is not set 306# CONFIG_INET6_XFRM_TUNNEL is not set
294# CONFIG_INET6_TUNNEL is not set 307# CONFIG_INET6_TUNNEL is not set
308CONFIG_INET6_XFRM_MODE_TRANSPORT=m
309CONFIG_INET6_XFRM_MODE_TUNNEL=m
295# CONFIG_IPV6_TUNNEL is not set 310# CONFIG_IPV6_TUNNEL is not set
311CONFIG_NETWORK_SECMARK=y
296CONFIG_NETFILTER=y 312CONFIG_NETFILTER=y
297# CONFIG_NETFILTER_DEBUG is not set 313# CONFIG_NETFILTER_DEBUG is not set
298 314
@@ -307,6 +323,7 @@ CONFIG_NETFILTER_XTABLES=m
307CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m 323CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
308CONFIG_NETFILTER_XT_TARGET_MARK=m 324CONFIG_NETFILTER_XT_TARGET_MARK=m
309CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 325CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
326CONFIG_NETFILTER_XT_TARGET_SECMARK=m
310CONFIG_NETFILTER_XT_MATCH_COMMENT=m 327CONFIG_NETFILTER_XT_MATCH_COMMENT=m
311CONFIG_NETFILTER_XT_MATCH_DCCP=m 328CONFIG_NETFILTER_XT_MATCH_DCCP=m
312CONFIG_NETFILTER_XT_MATCH_ESP=m 329CONFIG_NETFILTER_XT_MATCH_ESP=m
@@ -314,10 +331,13 @@ CONFIG_NETFILTER_XT_MATCH_LENGTH=m
314CONFIG_NETFILTER_XT_MATCH_LIMIT=m 331CONFIG_NETFILTER_XT_MATCH_LIMIT=m
315CONFIG_NETFILTER_XT_MATCH_MAC=m 332CONFIG_NETFILTER_XT_MATCH_MAC=m
316CONFIG_NETFILTER_XT_MATCH_MARK=m 333CONFIG_NETFILTER_XT_MATCH_MARK=m
334# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
317CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 335CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
318CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 336CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
337CONFIG_NETFILTER_XT_MATCH_QUOTA=m
319CONFIG_NETFILTER_XT_MATCH_REALM=m 338CONFIG_NETFILTER_XT_MATCH_REALM=m
320CONFIG_NETFILTER_XT_MATCH_SCTP=m 339CONFIG_NETFILTER_XT_MATCH_SCTP=m
340CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
321CONFIG_NETFILTER_XT_MATCH_STRING=m 341CONFIG_NETFILTER_XT_MATCH_STRING=m
322CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 342CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
323 343
@@ -394,6 +414,7 @@ CONFIG_WIRELESS_EXT=y
394CONFIG_STANDALONE=y 414CONFIG_STANDALONE=y
395CONFIG_PREVENT_FIRMWARE_BUILD=y 415CONFIG_PREVENT_FIRMWARE_BUILD=y
396CONFIG_FW_LOADER=m 416CONFIG_FW_LOADER=m
417# CONFIG_SYS_HYPERVISOR is not set
397 418
398# 419#
399# Connector - unified userspace <-> kernelspace linker 420# Connector - unified userspace <-> kernelspace linker
@@ -624,6 +645,8 @@ CONFIG_DAVICOM_PHY=m
624CONFIG_QSEMI_PHY=m 645CONFIG_QSEMI_PHY=m
625CONFIG_LXT_PHY=m 646CONFIG_LXT_PHY=m
626CONFIG_CICADA_PHY=m 647CONFIG_CICADA_PHY=m
648CONFIG_VITESSE_PHY=m
649CONFIG_SMSC_PHY=m
627 650
628# 651#
629# Ethernet (10 or 100Mbit) 652# Ethernet (10 or 100Mbit)
@@ -704,6 +727,7 @@ CONFIG_NET_PCI=y
704# CONFIG_CHELSIO_T1 is not set 727# CONFIG_CHELSIO_T1 is not set
705# CONFIG_IXGB is not set 728# CONFIG_IXGB is not set
706# CONFIG_S2IO is not set 729# CONFIG_S2IO is not set
730# CONFIG_MYRI10GE is not set
707 731
708# 732#
709# Token Ring devices 733# Token Ring devices
@@ -729,7 +753,7 @@ CONFIG_NET_RADIO=y
729# CONFIG_IPW2100 is not set 753# CONFIG_IPW2100 is not set
730CONFIG_IPW2200=m 754CONFIG_IPW2200=m
731# CONFIG_IPW2200_MONITOR is not set 755# CONFIG_IPW2200_MONITOR is not set
732# CONFIG_IPW_QOS is not set 756# CONFIG_IPW2200_QOS is not set
733# CONFIG_IPW2200_DEBUG is not set 757# CONFIG_IPW2200_DEBUG is not set
734# CONFIG_HERMES is not set 758# CONFIG_HERMES is not set
735# CONFIG_ATMEL is not set 759# CONFIG_ATMEL is not set
@@ -738,8 +762,10 @@ CONFIG_IPW2200=m
738# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support 762# Prism GT/Duette 802.11(a/b/g) PCI/Cardbus support
739# 763#
740# CONFIG_PRISM54 is not set 764# CONFIG_PRISM54 is not set
765# CONFIG_USB_ZD1201 is not set
741# CONFIG_HOSTAP is not set 766# CONFIG_HOSTAP is not set
742# CONFIG_BCM43XX is not set 767# CONFIG_BCM43XX is not set
768# CONFIG_ZD1211RW is not set
743CONFIG_NET_WIRELESS=y 769CONFIG_NET_WIRELESS=y
744 770
745# 771#
@@ -827,6 +853,7 @@ CONFIG_SERIO_LIBPS2=y
827CONFIG_VT=y 853CONFIG_VT=y
828CONFIG_VT_CONSOLE=y 854CONFIG_VT_CONSOLE=y
829CONFIG_HW_CONSOLE=y 855CONFIG_HW_CONSOLE=y
856CONFIG_VT_HW_CONSOLE_BINDING=y
830# CONFIG_SERIAL_NONSTANDARD is not set 857# CONFIG_SERIAL_NONSTANDARD is not set
831 858
832# 859#
@@ -856,6 +883,7 @@ CONFIG_LEGACY_PTY_COUNT=256
856# Watchdog Cards 883# Watchdog Cards
857# 884#
858# CONFIG_WATCHDOG is not set 885# CONFIG_WATCHDOG is not set
886# CONFIG_HW_RANDOM is not set
859# CONFIG_RTC is not set 887# CONFIG_RTC is not set
860# CONFIG_GEN_RTC is not set 888# CONFIG_GEN_RTC is not set
861# CONFIG_DTLK is not set 889# CONFIG_DTLK is not set
@@ -895,6 +923,7 @@ CONFIG_LEGACY_PTY_COUNT=256
895# 923#
896CONFIG_HWMON=y 924CONFIG_HWMON=y
897# CONFIG_HWMON_VID is not set 925# CONFIG_HWMON_VID is not set
926# CONFIG_SENSORS_ABITUGURU is not set
898# CONFIG_SENSORS_F71805F is not set 927# CONFIG_SENSORS_F71805F is not set
899# CONFIG_HWMON_DEBUG_CHIP is not set 928# CONFIG_HWMON_DEBUG_CHIP is not set
900 929
@@ -906,6 +935,7 @@ CONFIG_HWMON=y
906# Multimedia devices 935# Multimedia devices
907# 936#
908# CONFIG_VIDEO_DEV is not set 937# CONFIG_VIDEO_DEV is not set
938CONFIG_VIDEO_V4L2=y
909 939
910# 940#
911# Digital Video Broadcasting Devices 941# Digital Video Broadcasting Devices
@@ -916,12 +946,13 @@ CONFIG_HWMON=y
916# 946#
917# Graphics support 947# Graphics support
918# 948#
949# CONFIG_FIRMWARE_EDID is not set
919CONFIG_FB=y 950CONFIG_FB=y
920CONFIG_FB_CFB_FILLRECT=y 951CONFIG_FB_CFB_FILLRECT=y
921CONFIG_FB_CFB_COPYAREA=y 952CONFIG_FB_CFB_COPYAREA=y
922CONFIG_FB_CFB_IMAGEBLIT=y 953CONFIG_FB_CFB_IMAGEBLIT=y
923# CONFIG_FB_MACMODES is not set 954# CONFIG_FB_MACMODES is not set
924CONFIG_FB_FIRMWARE_EDID=y 955# CONFIG_FB_BACKLIGHT is not set
925# CONFIG_FB_MODE_HELPERS is not set 956# CONFIG_FB_MODE_HELPERS is not set
926# CONFIG_FB_TILEBLITTING is not set 957# CONFIG_FB_TILEBLITTING is not set
927# CONFIG_FB_CIRRUS is not set 958# CONFIG_FB_CIRRUS is not set
@@ -1045,7 +1076,6 @@ CONFIG_USB_YEALINK=m
1045# CONFIG_USB_PEGASUS is not set 1076# CONFIG_USB_PEGASUS is not set
1046# CONFIG_USB_RTL8150 is not set 1077# CONFIG_USB_RTL8150 is not set
1047# CONFIG_USB_USBNET is not set 1078# CONFIG_USB_USBNET is not set
1048# CONFIG_USB_ZD1201 is not set
1049CONFIG_USB_MON=y 1079CONFIG_USB_MON=y
1050 1080
1051# 1081#
@@ -1067,10 +1097,12 @@ CONFIG_USB_MON=y
1067# CONFIG_USB_LEGOTOWER is not set 1097# CONFIG_USB_LEGOTOWER is not set
1068# CONFIG_USB_LCD is not set 1098# CONFIG_USB_LCD is not set
1069# CONFIG_USB_LED is not set 1099# CONFIG_USB_LED is not set
1100# CONFIG_USB_CY7C63 is not set
1070# CONFIG_USB_CYTHERM is not set 1101# CONFIG_USB_CYTHERM is not set
1071# CONFIG_USB_PHIDGETKIT is not set 1102# CONFIG_USB_PHIDGETKIT is not set
1072# CONFIG_USB_PHIDGETSERVO is not set 1103# CONFIG_USB_PHIDGETSERVO is not set
1073# CONFIG_USB_IDMOUSE is not set 1104# CONFIG_USB_IDMOUSE is not set
1105# CONFIG_USB_APPLEDISPLAY is not set
1074# CONFIG_USB_LD is not set 1106# CONFIG_USB_LD is not set
1075 1107
1076# 1108#
@@ -1115,6 +1147,19 @@ CONFIG_USB_MON=y
1115# CONFIG_RTC_CLASS is not set 1147# CONFIG_RTC_CLASS is not set
1116 1148
1117# 1149#
1150# DMA Engine support
1151#
1152# CONFIG_DMA_ENGINE is not set
1153
1154#
1155# DMA Clients
1156#
1157
1158#
1159# DMA Devices
1160#
1161
1162#
1118# File systems 1163# File systems
1119# 1164#
1120CONFIG_EXT2_FS=y 1165CONFIG_EXT2_FS=y
@@ -1134,7 +1179,6 @@ CONFIG_REISERFS_FS=m
1134# CONFIG_JFS_FS is not set 1179# CONFIG_JFS_FS is not set
1135# CONFIG_FS_POSIX_ACL is not set 1180# CONFIG_FS_POSIX_ACL is not set
1136CONFIG_XFS_FS=m 1181CONFIG_XFS_FS=m
1137CONFIG_XFS_EXPORT=y
1138# CONFIG_XFS_QUOTA is not set 1182# CONFIG_XFS_QUOTA is not set
1139# CONFIG_XFS_SECURITY is not set 1183# CONFIG_XFS_SECURITY is not set
1140# CONFIG_XFS_POSIX_ACL is not set 1184# CONFIG_XFS_POSIX_ACL is not set
@@ -1143,6 +1187,7 @@ CONFIG_XFS_EXPORT=y
1143# CONFIG_MINIX_FS is not set 1187# CONFIG_MINIX_FS is not set
1144# CONFIG_ROMFS_FS is not set 1188# CONFIG_ROMFS_FS is not set
1145CONFIG_INOTIFY=y 1189CONFIG_INOTIFY=y
1190CONFIG_INOTIFY_USER=y
1146# CONFIG_QUOTA is not set 1191# CONFIG_QUOTA is not set
1147# CONFIG_DNOTIFY is not set 1192# CONFIG_DNOTIFY is not set
1148# CONFIG_AUTOFS_FS is not set 1193# CONFIG_AUTOFS_FS is not set
@@ -1193,6 +1238,7 @@ CONFIG_JFFS2_FS=y
1193CONFIG_JFFS2_FS_DEBUG=0 1238CONFIG_JFFS2_FS_DEBUG=0
1194CONFIG_JFFS2_FS_WRITEBUFFER=y 1239CONFIG_JFFS2_FS_WRITEBUFFER=y
1195# CONFIG_JFFS2_SUMMARY is not set 1240# CONFIG_JFFS2_SUMMARY is not set
1241# CONFIG_JFFS2_FS_XATTR is not set
1196# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set 1242# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set
1197CONFIG_JFFS2_ZLIB=y 1243CONFIG_JFFS2_ZLIB=y
1198CONFIG_JFFS2_RTIME=y 1244CONFIG_JFFS2_RTIME=y
@@ -1226,6 +1272,7 @@ CONFIG_SUNRPC=y
1226CONFIG_SMB_FS=m 1272CONFIG_SMB_FS=m
1227# CONFIG_SMB_NLS_DEFAULT is not set 1273# CONFIG_SMB_NLS_DEFAULT is not set
1228# CONFIG_CIFS is not set 1274# CONFIG_CIFS is not set
1275# CONFIG_CIFS_DEBUG2 is not set
1229# CONFIG_NCP_FS is not set 1276# CONFIG_NCP_FS is not set
1230# CONFIG_CODA_FS is not set 1277# CONFIG_CODA_FS is not set
1231# CONFIG_AFS_FS is not set 1278# CONFIG_AFS_FS is not set
@@ -1291,6 +1338,7 @@ CONFIG_NLS_DEFAULT="iso8859-1"
1291# 1338#
1292# CONFIG_PRINTK_TIME is not set 1339# CONFIG_PRINTK_TIME is not set
1293# CONFIG_MAGIC_SYSRQ is not set 1340# CONFIG_MAGIC_SYSRQ is not set
1341# CONFIG_UNUSED_SYMBOLS is not set
1294# CONFIG_DEBUG_KERNEL is not set 1342# CONFIG_DEBUG_KERNEL is not set
1295CONFIG_LOG_BUF_SHIFT=14 1343CONFIG_LOG_BUF_SHIFT=14
1296# CONFIG_DEBUG_FS is not set 1344# CONFIG_DEBUG_FS is not set
diff --git a/arch/mips/configs/rm200_defconfig b/arch/mips/configs/rm200_defconfig
index 8b0dd8651264..b7826d3a2b77 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:16 2006 4# Thu Jul 6 10:04:19 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_ARC=y 72CONFIG_ARC=y
69CONFIG_ARCH_MAY_HAVE_PC_FDC=y 73CONFIG_ARCH_MAY_HAVE_PC_FDC=y
70CONFIG_DMA_NONCOHERENT=y 74CONFIG_DMA_NONCOHERENT=y
@@ -106,6 +110,7 @@ CONFIG_CPU_R4X00=y
106# CONFIG_CPU_RM9000 is not set 110# CONFIG_CPU_RM9000 is not set
107# CONFIG_CPU_SB1 is not set 111# CONFIG_CPU_SB1 is not set
108CONFIG_SYS_HAS_CPU_R4X00=y 112CONFIG_SYS_HAS_CPU_R4X00=y
113CONFIG_SYS_HAS_CPU_R5000=y
109CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y 114CONFIG_SYS_SUPPORTS_32BIT_KERNEL=y
110CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y 115CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
111CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y 116CONFIG_CPU_SUPPORTS_32BIT_KERNEL=y
@@ -120,7 +125,12 @@ CONFIG_PAGE_SIZE_4KB=y
120# CONFIG_PAGE_SIZE_8KB is not set 125# CONFIG_PAGE_SIZE_8KB is not set
121# CONFIG_PAGE_SIZE_16KB is not set 126# CONFIG_PAGE_SIZE_16KB is not set
122# CONFIG_PAGE_SIZE_64KB is not set 127# CONFIG_PAGE_SIZE_64KB is not set
123# CONFIG_MIPS_MT is not set 128CONFIG_BOARD_SCACHE=y
129CONFIG_R5000_CPU_SCACHE=y
130CONFIG_MIPS_MT_DISABLED=y
131# CONFIG_MIPS_MT_SMTC is not set
132# CONFIG_MIPS_MT_SMP is not set
133# CONFIG_MIPS_VPE_LOADER is not set
124# CONFIG_64BIT_PHYS_ADDR is not set 134# CONFIG_64BIT_PHYS_ADDR is not set
125CONFIG_CPU_HAS_LLSC=y 135CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 136CONFIG_CPU_HAS_SYNC=y
@@ -136,6 +146,7 @@ CONFIG_FLATMEM=y
136CONFIG_FLAT_NODE_MEM_MAP=y 146CONFIG_FLAT_NODE_MEM_MAP=y
137# CONFIG_SPARSEMEM_STATIC is not set 147# CONFIG_SPARSEMEM_STATIC is not set
138CONFIG_SPLIT_PTLOCK_CPUS=4 148CONFIG_SPLIT_PTLOCK_CPUS=4
149# CONFIG_RESOURCES_64BIT is not set
139# CONFIG_HZ_48 is not set 150# CONFIG_HZ_48 is not set
140# CONFIG_HZ_100 is not set 151# CONFIG_HZ_100 is not set
141# CONFIG_HZ_128 is not set 152# CONFIG_HZ_128 is not set
@@ -148,6 +159,7 @@ CONFIG_HZ=1000
148# CONFIG_PREEMPT_NONE is not set 159# CONFIG_PREEMPT_NONE is not set
149CONFIG_PREEMPT_VOLUNTARY=y 160CONFIG_PREEMPT_VOLUNTARY=y
150# CONFIG_PREEMPT is not set 161# CONFIG_PREEMPT is not set
162CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
151 163
152# 164#
153# Code maturity level options 165# Code maturity level options
@@ -181,10 +193,12 @@ CONFIG_PRINTK=y
181CONFIG_BUG=y 193CONFIG_BUG=y
182CONFIG_ELF_CORE=y 194CONFIG_ELF_CORE=y
183CONFIG_BASE_FULL=y 195CONFIG_BASE_FULL=y
196CONFIG_RT_MUTEXES=y
184CONFIG_FUTEX=y 197CONFIG_FUTEX=y
185CONFIG_EPOLL=y 198CONFIG_EPOLL=y
186CONFIG_SHMEM=y 199CONFIG_SHMEM=y
187CONFIG_SLAB=y 200CONFIG_SLAB=y
201CONFIG_VM_EVENT_COUNTERS=y
188# CONFIG_TINY_SHMEM is not set 202# CONFIG_TINY_SHMEM is not set
189CONFIG_BASE_SMALL=0 203CONFIG_BASE_SMALL=0
190# CONFIG_SLOB is not set 204# CONFIG_SLOB is not set
@@ -280,6 +294,8 @@ CONFIG_IP_PIMSM_V2=y
280# CONFIG_INET_IPCOMP is not set 294# CONFIG_INET_IPCOMP is not set
281# CONFIG_INET_XFRM_TUNNEL is not set 295# CONFIG_INET_XFRM_TUNNEL is not set
282CONFIG_INET_TUNNEL=m 296CONFIG_INET_TUNNEL=m
297CONFIG_INET_XFRM_MODE_TRANSPORT=m
298CONFIG_INET_XFRM_MODE_TUNNEL=m
283CONFIG_INET_DIAG=y 299CONFIG_INET_DIAG=y
284CONFIG_INET_TCP_DIAG=y 300CONFIG_INET_TCP_DIAG=y
285# CONFIG_TCP_CONG_ADVANCED is not set 301# CONFIG_TCP_CONG_ADVANCED is not set
@@ -298,7 +314,10 @@ CONFIG_INET6_ESP=m
298CONFIG_INET6_IPCOMP=m 314CONFIG_INET6_IPCOMP=m
299CONFIG_INET6_XFRM_TUNNEL=m 315CONFIG_INET6_XFRM_TUNNEL=m
300CONFIG_INET6_TUNNEL=m 316CONFIG_INET6_TUNNEL=m
317CONFIG_INET6_XFRM_MODE_TRANSPORT=m
318CONFIG_INET6_XFRM_MODE_TUNNEL=m
301CONFIG_IPV6_TUNNEL=m 319CONFIG_IPV6_TUNNEL=m
320CONFIG_NETWORK_SECMARK=y
302CONFIG_NETFILTER=y 321CONFIG_NETFILTER=y
303# CONFIG_NETFILTER_DEBUG is not set 322# CONFIG_NETFILTER_DEBUG is not set
304CONFIG_BRIDGE_NETFILTER=y 323CONFIG_BRIDGE_NETFILTER=y
@@ -315,6 +334,8 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
315CONFIG_NETFILTER_XT_TARGET_MARK=m 334CONFIG_NETFILTER_XT_TARGET_MARK=m
316CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 335CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
317CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 336CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
337CONFIG_NETFILTER_XT_TARGET_SECMARK=m
338# CONFIG_NETFILTER_XT_TARGET_CONNSECMARK is not set
318CONFIG_NETFILTER_XT_MATCH_COMMENT=m 339CONFIG_NETFILTER_XT_MATCH_COMMENT=m
319CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 340CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
320CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m 341CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
@@ -329,9 +350,11 @@ CONFIG_NETFILTER_XT_MATCH_POLICY=m
329CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 350CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
330CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m 351CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
331CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 352CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
353CONFIG_NETFILTER_XT_MATCH_QUOTA=m
332CONFIG_NETFILTER_XT_MATCH_REALM=m 354CONFIG_NETFILTER_XT_MATCH_REALM=m
333CONFIG_NETFILTER_XT_MATCH_SCTP=m 355CONFIG_NETFILTER_XT_MATCH_SCTP=m
334CONFIG_NETFILTER_XT_MATCH_STATE=m 356CONFIG_NETFILTER_XT_MATCH_STATE=m
357CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
335CONFIG_NETFILTER_XT_MATCH_STRING=m 358CONFIG_NETFILTER_XT_MATCH_STRING=m
336CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 359CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
337 360
@@ -341,6 +364,7 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
341CONFIG_IP_NF_CONNTRACK=m 364CONFIG_IP_NF_CONNTRACK=m
342# CONFIG_IP_NF_CT_ACCT is not set 365# CONFIG_IP_NF_CT_ACCT is not set
343CONFIG_IP_NF_CONNTRACK_MARK=y 366CONFIG_IP_NF_CONNTRACK_MARK=y
367CONFIG_IP_NF_CONNTRACK_SECMARK=y
344CONFIG_IP_NF_CONNTRACK_EVENTS=y 368CONFIG_IP_NF_CONNTRACK_EVENTS=y
345CONFIG_IP_NF_CONNTRACK_NETLINK=m 369CONFIG_IP_NF_CONNTRACK_NETLINK=m
346CONFIG_IP_NF_CT_PROTO_SCTP=m 370CONFIG_IP_NF_CT_PROTO_SCTP=m
@@ -351,6 +375,7 @@ CONFIG_IP_NF_TFTP=m
351CONFIG_IP_NF_AMANDA=m 375CONFIG_IP_NF_AMANDA=m
352CONFIG_IP_NF_PPTP=m 376CONFIG_IP_NF_PPTP=m
353CONFIG_IP_NF_H323=m 377CONFIG_IP_NF_H323=m
378CONFIG_IP_NF_SIP=m
354CONFIG_IP_NF_QUEUE=m 379CONFIG_IP_NF_QUEUE=m
355CONFIG_IP_NF_IPTABLES=m 380CONFIG_IP_NF_IPTABLES=m
356CONFIG_IP_NF_MATCH_IPRANGE=m 381CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -381,6 +406,7 @@ CONFIG_IP_NF_NAT_TFTP=m
381CONFIG_IP_NF_NAT_AMANDA=m 406CONFIG_IP_NF_NAT_AMANDA=m
382CONFIG_IP_NF_NAT_PPTP=m 407CONFIG_IP_NF_NAT_PPTP=m
383CONFIG_IP_NF_NAT_H323=m 408CONFIG_IP_NF_NAT_H323=m
409CONFIG_IP_NF_NAT_SIP=m
384CONFIG_IP_NF_MANGLE=m 410CONFIG_IP_NF_MANGLE=m
385CONFIG_IP_NF_TARGET_TOS=m 411CONFIG_IP_NF_TARGET_TOS=m
386CONFIG_IP_NF_TARGET_ECN=m 412CONFIG_IP_NF_TARGET_ECN=m
@@ -559,6 +585,7 @@ CONFIG_WIRELESS_EXT=y
559CONFIG_STANDALONE=y 585CONFIG_STANDALONE=y
560CONFIG_PREVENT_FIRMWARE_BUILD=y 586CONFIG_PREVENT_FIRMWARE_BUILD=y
561CONFIG_FW_LOADER=y 587CONFIG_FW_LOADER=y
588# CONFIG_SYS_HYPERVISOR is not set
562 589
563# 590#
564# Connector - unified userspace <-> kernelspace linker 591# Connector - unified userspace <-> kernelspace linker
@@ -580,6 +607,7 @@ CONFIG_PARPORT_SERIAL=m
580# CONFIG_PARPORT_PC_SUPERIO is not set 607# CONFIG_PARPORT_PC_SUPERIO is not set
581CONFIG_PARPORT_NOT_PC=y 608CONFIG_PARPORT_NOT_PC=y
582# CONFIG_PARPORT_GSC is not set 609# CONFIG_PARPORT_GSC is not set
610# CONFIG_PARPORT_AX88796 is not set
583CONFIG_PARPORT_1284=y 611CONFIG_PARPORT_1284=y
584 612
585# 613#
@@ -699,6 +727,7 @@ CONFIG_MEGARAID_MAILBOX=m
699# CONFIG_MEGARAID_LEGACY is not set 727# CONFIG_MEGARAID_LEGACY is not set
700# CONFIG_MEGARAID_SAS is not set 728# CONFIG_MEGARAID_SAS is not set
701# CONFIG_SCSI_SATA is not set 729# CONFIG_SCSI_SATA is not set
730# CONFIG_SCSI_HPTIOP is not set
702# CONFIG_SCSI_DMX3191D is not set 731# CONFIG_SCSI_DMX3191D is not set
703# CONFIG_SCSI_DTC3280 is not set 732# CONFIG_SCSI_DTC3280 is not set
704# CONFIG_SCSI_FUTURE_DOMAIN is not set 733# CONFIG_SCSI_FUTURE_DOMAIN is not set
@@ -745,9 +774,8 @@ CONFIG_MD_LINEAR=m
745CONFIG_MD_RAID0=m 774CONFIG_MD_RAID0=m
746CONFIG_MD_RAID1=m 775CONFIG_MD_RAID1=m
747CONFIG_MD_RAID10=m 776CONFIG_MD_RAID10=m
748CONFIG_MD_RAID5=m 777CONFIG_MD_RAID456=m
749CONFIG_MD_RAID5_RESHAPE=y 778CONFIG_MD_RAID5_RESHAPE=y
750# CONFIG_MD_RAID6 is not set
751CONFIG_MD_MULTIPATH=m 779CONFIG_MD_MULTIPATH=m
752CONFIG_MD_FAULTY=m 780CONFIG_MD_FAULTY=m
753CONFIG_BLK_DEV_DM=m 781CONFIG_BLK_DEV_DM=m
@@ -803,6 +831,8 @@ CONFIG_DAVICOM_PHY=m
803CONFIG_QSEMI_PHY=m 831CONFIG_QSEMI_PHY=m
804CONFIG_LXT_PHY=m 832CONFIG_LXT_PHY=m
805CONFIG_CICADA_PHY=m 833CONFIG_CICADA_PHY=m
834CONFIG_VITESSE_PHY=m
835CONFIG_SMSC_PHY=m
806 836
807# 837#
808# Ethernet (10 or 100Mbit) 838# Ethernet (10 or 100Mbit)
@@ -884,6 +914,7 @@ CONFIG_VIA_VELOCITY=m
884# CONFIG_CHELSIO_T1 is not set 914# CONFIG_CHELSIO_T1 is not set
885# CONFIG_IXGB is not set 915# CONFIG_IXGB is not set
886# CONFIG_S2IO is not set 916# CONFIG_S2IO is not set
917# CONFIG_MYRI10GE is not set
887 918
888# 919#
889# Token Ring devices 920# Token Ring devices
@@ -975,6 +1006,7 @@ CONFIG_SERIO_RAW=m
975CONFIG_VT=y 1006CONFIG_VT=y
976CONFIG_VT_CONSOLE=y 1007CONFIG_VT_CONSOLE=y
977CONFIG_HW_CONSOLE=y 1008CONFIG_HW_CONSOLE=y
1009CONFIG_VT_HW_CONSOLE_BINDING=y
978# CONFIG_SERIAL_NONSTANDARD is not set 1010# CONFIG_SERIAL_NONSTANDARD is not set
979 1011
980# 1012#
@@ -1012,6 +1044,7 @@ CONFIG_TIPAR=m
1012# Watchdog Cards 1044# Watchdog Cards
1013# 1045#
1014# CONFIG_WATCHDOG is not set 1046# CONFIG_WATCHDOG is not set
1047# CONFIG_HW_RANDOM is not set
1015CONFIG_RTC=m 1048CONFIG_RTC=m
1016# CONFIG_GEN_RTC is not set 1049# CONFIG_GEN_RTC is not set
1017# CONFIG_DTLK is not set 1050# CONFIG_DTLK is not set
@@ -1045,12 +1078,13 @@ CONFIG_RTC=m
1045# Dallas's 1-wire bus 1078# Dallas's 1-wire bus
1046# 1079#
1047CONFIG_W1=m 1080CONFIG_W1=m
1081CONFIG_W1_CON=y
1048 1082
1049# 1083#
1050# 1-wire Bus Masters 1084# 1-wire Bus Masters
1051# 1085#
1052# CONFIG_W1_MASTER_MATROX is not set 1086# CONFIG_W1_MASTER_MATROX is not set
1053# CONFIG_W1_MASTER_DS9490 is not set 1087# CONFIG_W1_MASTER_DS2490 is not set
1054 1088
1055# 1089#
1056# 1-wire Slaves 1090# 1-wire Slaves
@@ -1073,6 +1107,7 @@ CONFIG_W1=m
1073# Multimedia devices 1107# Multimedia devices
1074# 1108#
1075# CONFIG_VIDEO_DEV is not set 1109# CONFIG_VIDEO_DEV is not set
1110CONFIG_VIDEO_V4L2=y
1076 1111
1077# 1112#
1078# Digital Video Broadcasting Devices 1113# Digital Video Broadcasting Devices
@@ -1083,6 +1118,7 @@ CONFIG_USB_DABUSB=m
1083# 1118#
1084# Graphics support 1119# Graphics support
1085# 1120#
1121# CONFIG_FIRMWARE_EDID is not set
1086# CONFIG_FB is not set 1122# CONFIG_FB is not set
1087 1123
1088# 1124#
@@ -1121,6 +1157,7 @@ CONFIG_USB_DEVICEFS=y
1121CONFIG_USB_EHCI_HCD=m 1157CONFIG_USB_EHCI_HCD=m
1122# CONFIG_USB_EHCI_SPLIT_ISO is not set 1158# CONFIG_USB_EHCI_SPLIT_ISO is not set
1123# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 1159# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
1160# CONFIG_USB_EHCI_TT_NEWSCHED is not set
1124# CONFIG_USB_ISP116X_HCD is not set 1161# CONFIG_USB_ISP116X_HCD is not set
1125CONFIG_USB_OHCI_HCD=m 1162CONFIG_USB_OHCI_HCD=m
1126# CONFIG_USB_OHCI_BIG_ENDIAN is not set 1163# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -1219,6 +1256,7 @@ CONFIG_USB_SERIAL=m
1219CONFIG_USB_SERIAL_GENERIC=y 1256CONFIG_USB_SERIAL_GENERIC=y
1220CONFIG_USB_SERIAL_AIRPRIME=m 1257CONFIG_USB_SERIAL_AIRPRIME=m
1221CONFIG_USB_SERIAL_ANYDATA=m 1258CONFIG_USB_SERIAL_ANYDATA=m
1259# CONFIG_USB_SERIAL_ARK3116 is not set
1222CONFIG_USB_SERIAL_BELKIN=m 1260CONFIG_USB_SERIAL_BELKIN=m
1223CONFIG_USB_SERIAL_WHITEHEAT=m 1261CONFIG_USB_SERIAL_WHITEHEAT=m
1224CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m 1262CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
@@ -1259,6 +1297,7 @@ CONFIG_USB_SERIAL_SAFE_PADDED=y
1259# CONFIG_USB_SERIAL_TI is not set 1297# CONFIG_USB_SERIAL_TI is not set
1260CONFIG_USB_SERIAL_CYBERJACK=m 1298CONFIG_USB_SERIAL_CYBERJACK=m
1261CONFIG_USB_SERIAL_XIRCOM=m 1299CONFIG_USB_SERIAL_XIRCOM=m
1300# CONFIG_USB_SERIAL_OPTION is not set
1262CONFIG_USB_SERIAL_OMNINET=m 1301CONFIG_USB_SERIAL_OMNINET=m
1263CONFIG_USB_EZUSB=y 1302CONFIG_USB_EZUSB=y
1264 1303
@@ -1272,10 +1311,12 @@ CONFIG_USB_RIO500=m
1272CONFIG_USB_LEGOTOWER=m 1311CONFIG_USB_LEGOTOWER=m
1273CONFIG_USB_LCD=m 1312CONFIG_USB_LCD=m
1274CONFIG_USB_LED=m 1313CONFIG_USB_LED=m
1314# CONFIG_USB_CY7C63 is not set
1275CONFIG_USB_CYTHERM=m 1315CONFIG_USB_CYTHERM=m
1276CONFIG_USB_PHIDGETKIT=m 1316CONFIG_USB_PHIDGETKIT=m
1277CONFIG_USB_PHIDGETSERVO=m 1317CONFIG_USB_PHIDGETSERVO=m
1278# CONFIG_USB_IDMOUSE is not set 1318# CONFIG_USB_IDMOUSE is not set
1319# CONFIG_USB_APPLEDISPLAY is not set
1279CONFIG_USB_SISUSBVGA=m 1320CONFIG_USB_SISUSBVGA=m
1280# CONFIG_USB_SISUSBVGA_CON is not set 1321# CONFIG_USB_SISUSBVGA_CON is not set
1281CONFIG_USB_LD=m 1322CONFIG_USB_LD=m
@@ -1323,6 +1364,19 @@ CONFIG_USB_TEST=m
1323# CONFIG_RTC_CLASS is not set 1364# CONFIG_RTC_CLASS is not set
1324 1365
1325# 1366#
1367# DMA Engine support
1368#
1369# CONFIG_DMA_ENGINE is not set
1370
1371#
1372# DMA Clients
1373#
1374
1375#
1376# DMA Devices
1377#
1378
1379#
1326# File systems 1380# File systems
1327# 1381#
1328CONFIG_EXT2_FS=m 1382CONFIG_EXT2_FS=m
@@ -1344,7 +1398,6 @@ CONFIG_REISERFS_FS_SECURITY=y
1344# CONFIG_JFS_FS is not set 1398# CONFIG_JFS_FS is not set
1345CONFIG_FS_POSIX_ACL=y 1399CONFIG_FS_POSIX_ACL=y
1346CONFIG_XFS_FS=m 1400CONFIG_XFS_FS=m
1347CONFIG_XFS_EXPORT=y
1348CONFIG_XFS_QUOTA=y 1401CONFIG_XFS_QUOTA=y
1349CONFIG_XFS_SECURITY=y 1402CONFIG_XFS_SECURITY=y
1350# CONFIG_XFS_POSIX_ACL is not set 1403# CONFIG_XFS_POSIX_ACL is not set
@@ -1353,6 +1406,7 @@ CONFIG_XFS_SECURITY=y
1353CONFIG_MINIX_FS=m 1406CONFIG_MINIX_FS=m
1354CONFIG_ROMFS_FS=m 1407CONFIG_ROMFS_FS=m
1355CONFIG_INOTIFY=y 1408CONFIG_INOTIFY=y
1409CONFIG_INOTIFY_USER=y
1356# CONFIG_QUOTA is not set 1410# CONFIG_QUOTA is not set
1357CONFIG_QUOTACTL=y 1411CONFIG_QUOTACTL=y
1358CONFIG_DNOTIFY=y 1412CONFIG_DNOTIFY=y
@@ -1411,6 +1465,8 @@ CONFIG_HPFS_FS=m
1411CONFIG_QNX4FS_FS=m 1465CONFIG_QNX4FS_FS=m
1412CONFIG_SYSV_FS=m 1466CONFIG_SYSV_FS=m
1413CONFIG_UFS_FS=m 1467CONFIG_UFS_FS=m
1468# CONFIG_UFS_FS_WRITE is not set
1469# CONFIG_UFS_DEBUG is not set
1414 1470
1415# 1471#
1416# Network File Systems 1472# Network File Systems
@@ -1437,7 +1493,9 @@ CONFIG_SMB_FS=m
1437# CONFIG_SMB_NLS_DEFAULT is not set 1493# CONFIG_SMB_NLS_DEFAULT is not set
1438CONFIG_CIFS=m 1494CONFIG_CIFS=m
1439# CONFIG_CIFS_STATS is not set 1495# CONFIG_CIFS_STATS is not set
1496# CONFIG_CIFS_WEAK_PW_HASH is not set
1440# CONFIG_CIFS_XATTR is not set 1497# CONFIG_CIFS_XATTR is not set
1498# CONFIG_CIFS_DEBUG2 is not set
1441# CONFIG_CIFS_EXPERIMENTAL is not set 1499# CONFIG_CIFS_EXPERIMENTAL is not set
1442CONFIG_NCP_FS=m 1500CONFIG_NCP_FS=m
1443CONFIG_NCPFS_PACKET_SIGNING=y 1501CONFIG_NCPFS_PACKET_SIGNING=y
@@ -1529,6 +1587,7 @@ CONFIG_NLS_UTF8=m
1529# 1587#
1530# CONFIG_PRINTK_TIME is not set 1588# CONFIG_PRINTK_TIME is not set
1531# CONFIG_MAGIC_SYSRQ is not set 1589# CONFIG_MAGIC_SYSRQ is not set
1590# CONFIG_UNUSED_SYMBOLS is not set
1532# CONFIG_DEBUG_KERNEL is not set 1591# CONFIG_DEBUG_KERNEL is not set
1533CONFIG_LOG_BUF_SHIFT=14 1592CONFIG_LOG_BUF_SHIFT=14
1534# CONFIG_DEBUG_FS is not set 1593# CONFIG_DEBUG_FS is not set
@@ -1588,3 +1647,4 @@ CONFIG_TEXTSEARCH=y
1588CONFIG_TEXTSEARCH_KMP=m 1647CONFIG_TEXTSEARCH_KMP=m
1589CONFIG_TEXTSEARCH_BM=m 1648CONFIG_TEXTSEARCH_BM=m
1590CONFIG_TEXTSEARCH_FSM=m 1649CONFIG_TEXTSEARCH_FSM=m
1650CONFIG_PLIST=y
diff --git a/arch/mips/configs/sb1250-swarm_defconfig b/arch/mips/configs/sb1250-swarm_defconfig
index ff34ed66fe65..625c1c619b6b 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:17 2006 4# Thu Jul 6 10:04:19 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -82,6 +85,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
82CONFIG_GENERIC_FIND_NEXT_BIT=y 85CONFIG_GENERIC_FIND_NEXT_BIT=y
83CONFIG_GENERIC_HWEIGHT=y 86CONFIG_GENERIC_HWEIGHT=y
84CONFIG_GENERIC_CALIBRATE_DELAY=y 87CONFIG_GENERIC_CALIBRATE_DELAY=y
88CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
85CONFIG_DMA_COHERENT=y 89CONFIG_DMA_COHERENT=y
86CONFIG_CPU_BIG_ENDIAN=y 90CONFIG_CPU_BIG_ENDIAN=y
87# CONFIG_CPU_LITTLE_ENDIAN is not set 91# CONFIG_CPU_LITTLE_ENDIAN is not set
@@ -130,12 +134,16 @@ CONFIG_PAGE_SIZE_4KB=y
130# CONFIG_PAGE_SIZE_64KB is not set 134# CONFIG_PAGE_SIZE_64KB is not set
131# CONFIG_SIBYTE_DMA_PAGEOPS is not set 135# CONFIG_SIBYTE_DMA_PAGEOPS is not set
132CONFIG_CPU_HAS_PREFETCH=y 136CONFIG_CPU_HAS_PREFETCH=y
133# CONFIG_MIPS_MT is not set 137CONFIG_MIPS_MT_DISABLED=y
138# CONFIG_MIPS_MT_SMTC is not set
139# CONFIG_MIPS_MT_SMP is not set
140# CONFIG_MIPS_VPE_LOADER is not set
134CONFIG_SB1_PASS_1_WORKAROUNDS=y 141CONFIG_SB1_PASS_1_WORKAROUNDS=y
135CONFIG_CPU_HAS_LLSC=y 142CONFIG_CPU_HAS_LLSC=y
136CONFIG_CPU_HAS_SYNC=y 143CONFIG_CPU_HAS_SYNC=y
137CONFIG_GENERIC_HARDIRQS=y 144CONFIG_GENERIC_HARDIRQS=y
138CONFIG_GENERIC_IRQ_PROBE=y 145CONFIG_GENERIC_IRQ_PROBE=y
146CONFIG_IRQ_PER_CPU=y
139CONFIG_CPU_SUPPORTS_HIGHMEM=y 147CONFIG_CPU_SUPPORTS_HIGHMEM=y
140CONFIG_SYS_SUPPORTS_HIGHMEM=y 148CONFIG_SYS_SUPPORTS_HIGHMEM=y
141CONFIG_ARCH_FLATMEM_ENABLE=y 149CONFIG_ARCH_FLATMEM_ENABLE=y
@@ -147,6 +155,10 @@ CONFIG_FLATMEM=y
147CONFIG_FLAT_NODE_MEM_MAP=y 155CONFIG_FLAT_NODE_MEM_MAP=y
148# CONFIG_SPARSEMEM_STATIC is not set 156# CONFIG_SPARSEMEM_STATIC is not set
149CONFIG_SPLIT_PTLOCK_CPUS=4 157CONFIG_SPLIT_PTLOCK_CPUS=4
158CONFIG_RESOURCES_64BIT=y
159CONFIG_SMP=y
160CONFIG_SYS_SUPPORTS_SMP=y
161CONFIG_NR_CPUS=2
150# CONFIG_HZ_48 is not set 162# CONFIG_HZ_48 is not set
151# CONFIG_HZ_100 is not set 163# CONFIG_HZ_100 is not set
152# CONFIG_HZ_128 is not set 164# CONFIG_HZ_128 is not set
@@ -156,12 +168,11 @@ CONFIG_HZ_1000=y
156# CONFIG_HZ_1024 is not set 168# CONFIG_HZ_1024 is not set
157CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 169CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
158CONFIG_HZ=1000 170CONFIG_HZ=1000
159CONFIG_SMP=y
160CONFIG_NR_CPUS=2
161CONFIG_PREEMPT_NONE=y 171CONFIG_PREEMPT_NONE=y
162# CONFIG_PREEMPT_VOLUNTARY is not set 172# CONFIG_PREEMPT_VOLUNTARY is not set
163# CONFIG_PREEMPT is not set 173# CONFIG_PREEMPT is not set
164CONFIG_PREEMPT_BKL=y 174CONFIG_PREEMPT_BKL=y
175CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
165 176
166# 177#
167# Code maturity level options 178# Code maturity level options
@@ -194,10 +205,12 @@ CONFIG_PRINTK=y
194CONFIG_BUG=y 205CONFIG_BUG=y
195CONFIG_ELF_CORE=y 206CONFIG_ELF_CORE=y
196CONFIG_BASE_FULL=y 207CONFIG_BASE_FULL=y
208CONFIG_RT_MUTEXES=y
197CONFIG_FUTEX=y 209CONFIG_FUTEX=y
198CONFIG_EPOLL=y 210CONFIG_EPOLL=y
199CONFIG_SHMEM=y 211CONFIG_SHMEM=y
200CONFIG_SLAB=y 212CONFIG_SLAB=y
213CONFIG_VM_EVENT_COUNTERS=y
201# CONFIG_TINY_SHMEM is not set 214# CONFIG_TINY_SHMEM is not set
202CONFIG_BASE_SMALL=0 215CONFIG_BASE_SMALL=0
203# CONFIG_SLOB is not set 216# CONFIG_SLOB is not set
@@ -292,6 +305,8 @@ CONFIG_IP_PNP_BOOTP=y
292# CONFIG_INET_IPCOMP is not set 305# CONFIG_INET_IPCOMP is not set
293# CONFIG_INET_XFRM_TUNNEL is not set 306# CONFIG_INET_XFRM_TUNNEL is not set
294# CONFIG_INET_TUNNEL is not set 307# CONFIG_INET_TUNNEL is not set
308CONFIG_INET_XFRM_MODE_TRANSPORT=m
309CONFIG_INET_XFRM_MODE_TUNNEL=m
295CONFIG_INET_DIAG=y 310CONFIG_INET_DIAG=y
296CONFIG_INET_TCP_DIAG=y 311CONFIG_INET_TCP_DIAG=y
297# CONFIG_TCP_CONG_ADVANCED is not set 312# CONFIG_TCP_CONG_ADVANCED is not set
@@ -299,6 +314,7 @@ CONFIG_TCP_CONG_BIC=y
299# CONFIG_IPV6 is not set 314# CONFIG_IPV6 is not set
300# CONFIG_INET6_XFRM_TUNNEL is not set 315# CONFIG_INET6_XFRM_TUNNEL is not set
301# CONFIG_INET6_TUNNEL is not set 316# CONFIG_INET6_TUNNEL is not set
317CONFIG_NETWORK_SECMARK=y
302# CONFIG_NETFILTER is not set 318# CONFIG_NETFILTER is not set
303 319
304# 320#
@@ -358,6 +374,7 @@ CONFIG_WIRELESS_EXT=y
358CONFIG_STANDALONE=y 374CONFIG_STANDALONE=y
359CONFIG_PREVENT_FIRMWARE_BUILD=y 375CONFIG_PREVENT_FIRMWARE_BUILD=y
360CONFIG_FW_LOADER=m 376CONFIG_FW_LOADER=m
377# CONFIG_SYS_HYPERVISOR is not set
361 378
362# 379#
363# Connector - unified userspace <-> kernelspace linker 380# Connector - unified userspace <-> kernelspace linker
@@ -479,6 +496,8 @@ CONFIG_DAVICOM_PHY=m
479CONFIG_QSEMI_PHY=m 496CONFIG_QSEMI_PHY=m
480CONFIG_LXT_PHY=m 497CONFIG_LXT_PHY=m
481CONFIG_CICADA_PHY=m 498CONFIG_CICADA_PHY=m
499CONFIG_VITESSE_PHY=m
500CONFIG_SMSC_PHY=m
482 501
483# 502#
484# Ethernet (10 or 100Mbit) 503# Ethernet (10 or 100Mbit)
@@ -522,6 +541,7 @@ CONFIG_NET_SB1250_MAC=y
522# CONFIG_CHELSIO_T1 is not set 541# CONFIG_CHELSIO_T1 is not set
523# CONFIG_IXGB is not set 542# CONFIG_IXGB is not set
524# CONFIG_S2IO is not set 543# CONFIG_S2IO is not set
544# CONFIG_MYRI10GE is not set
525 545
526# 546#
527# Token Ring devices 547# Token Ring devices
@@ -589,6 +609,7 @@ CONFIG_SERIAL_NONSTANDARD=y
589# CONFIG_N_HDLC is not set 609# CONFIG_N_HDLC is not set
590# CONFIG_SPECIALIX is not set 610# CONFIG_SPECIALIX is not set
591# CONFIG_SX is not set 611# CONFIG_SX is not set
612# CONFIG_RIO is not set
592# CONFIG_STALDRV is not set 613# CONFIG_STALDRV is not set
593CONFIG_SIBYTE_SB1250_DUART=y 614CONFIG_SIBYTE_SB1250_DUART=y
594CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y 615CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
@@ -615,6 +636,7 @@ CONFIG_LEGACY_PTY_COUNT=256
615# Watchdog Cards 636# Watchdog Cards
616# 637#
617# CONFIG_WATCHDOG is not set 638# CONFIG_WATCHDOG is not set
639# CONFIG_HW_RANDOM is not set
618# CONFIG_RTC is not set 640# CONFIG_RTC is not set
619# CONFIG_GEN_RTC is not set 641# CONFIG_GEN_RTC is not set
620# CONFIG_DTLK is not set 642# CONFIG_DTLK is not set
@@ -663,6 +685,7 @@ CONFIG_LEGACY_PTY_COUNT=256
663# Multimedia devices 685# Multimedia devices
664# 686#
665# CONFIG_VIDEO_DEV is not set 687# CONFIG_VIDEO_DEV is not set
688CONFIG_VIDEO_V4L2=y
666 689
667# 690#
668# Digital Video Broadcasting Devices 691# Digital Video Broadcasting Devices
@@ -672,6 +695,7 @@ CONFIG_LEGACY_PTY_COUNT=256
672# 695#
673# Graphics support 696# Graphics support
674# 697#
698# CONFIG_FIRMWARE_EDID is not set
675# CONFIG_FB is not set 699# CONFIG_FB is not set
676 700
677# 701#
@@ -729,6 +753,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
729# CONFIG_RTC_CLASS is not set 753# CONFIG_RTC_CLASS is not set
730 754
731# 755#
756# DMA Engine support
757#
758# CONFIG_DMA_ENGINE is not set
759
760#
761# DMA Clients
762#
763
764#
765# DMA Devices
766#
767
768#
732# File systems 769# File systems
733# 770#
734CONFIG_EXT2_FS=y 771CONFIG_EXT2_FS=y
@@ -746,6 +783,7 @@ CONFIG_FS_POSIX_ACL=y
746# CONFIG_MINIX_FS is not set 783# CONFIG_MINIX_FS is not set
747# CONFIG_ROMFS_FS is not set 784# CONFIG_ROMFS_FS is not set
748CONFIG_INOTIFY=y 785CONFIG_INOTIFY=y
786CONFIG_INOTIFY_USER=y
749# CONFIG_QUOTA is not set 787# CONFIG_QUOTA is not set
750CONFIG_DNOTIFY=y 788CONFIG_DNOTIFY=y
751# CONFIG_AUTOFS_FS is not set 789# CONFIG_AUTOFS_FS is not set
@@ -811,6 +849,7 @@ CONFIG_SUNRPC=y
811# CONFIG_RPCSEC_GSS_SPKM3 is not set 849# CONFIG_RPCSEC_GSS_SPKM3 is not set
812# CONFIG_SMB_FS is not set 850# CONFIG_SMB_FS is not set
813# CONFIG_CIFS is not set 851# CONFIG_CIFS is not set
852# CONFIG_CIFS_DEBUG2 is not set
814# CONFIG_NCP_FS is not set 853# CONFIG_NCP_FS is not set
815# CONFIG_CODA_FS is not set 854# CONFIG_CODA_FS is not set
816# CONFIG_AFS_FS is not set 855# CONFIG_AFS_FS is not set
@@ -837,6 +876,7 @@ CONFIG_MSDOS_PARTITION=y
837# 876#
838# CONFIG_PRINTK_TIME is not set 877# CONFIG_PRINTK_TIME is not set
839# CONFIG_MAGIC_SYSRQ is not set 878# CONFIG_MAGIC_SYSRQ is not set
879# CONFIG_UNUSED_SYMBOLS is not set
840# CONFIG_DEBUG_KERNEL is not set 880# CONFIG_DEBUG_KERNEL is not set
841CONFIG_LOG_BUF_SHIFT=15 881CONFIG_LOG_BUF_SHIFT=15
842# CONFIG_DEBUG_FS is not set 882# CONFIG_DEBUG_FS is not set
@@ -893,3 +933,4 @@ CONFIG_CRC32=y
893CONFIG_LIBCRC32C=m 933CONFIG_LIBCRC32C=m
894CONFIG_ZLIB_INFLATE=m 934CONFIG_ZLIB_INFLATE=m
895CONFIG_ZLIB_DEFLATE=m 935CONFIG_ZLIB_DEFLATE=m
936CONFIG_PLIST=y
diff --git a/arch/mips/configs/sead_defconfig b/arch/mips/configs/sead_defconfig
index 77edeae7f018..4401b602118f 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:17 2006 4# Thu Jul 6 10:04:20 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34CONFIG_MIPS_SEAD=y 35CONFIG_MIPS_SEAD=y
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS_SEAD=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
69CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
70# CONFIG_CPU_BIG_ENDIAN is not set 74# CONFIG_CPU_BIG_ENDIAN is not set
@@ -116,7 +120,10 @@ CONFIG_PAGE_SIZE_4KB=y
116# CONFIG_PAGE_SIZE_16KB is not set 120# CONFIG_PAGE_SIZE_16KB is not set
117# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
118CONFIG_CPU_HAS_PREFETCH=y 122CONFIG_CPU_HAS_PREFETCH=y
119# CONFIG_MIPS_MT is not set 123CONFIG_MIPS_MT_DISABLED=y
124# CONFIG_MIPS_MT_SMTC is not set
125# CONFIG_MIPS_MT_SMP is not set
126# CONFIG_MIPS_VPE_LOADER is not set
120# CONFIG_64BIT_PHYS_ADDR is not set 127# CONFIG_64BIT_PHYS_ADDR is not set
121CONFIG_CPU_HAS_LLSC=y 128CONFIG_CPU_HAS_LLSC=y
122CONFIG_CPU_HAS_SYNC=y 129CONFIG_CPU_HAS_SYNC=y
@@ -132,6 +139,7 @@ CONFIG_FLATMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
133# CONFIG_SPARSEMEM_STATIC is not set 140# CONFIG_SPARSEMEM_STATIC is not set
134CONFIG_SPLIT_PTLOCK_CPUS=4 141CONFIG_SPLIT_PTLOCK_CPUS=4
142# CONFIG_RESOURCES_64BIT is not set
135# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -144,6 +152,7 @@ CONFIG_HZ=1000
144CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
145# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
146# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
155CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147 156
148# 157#
149# Code maturity level options 158# Code maturity level options
@@ -173,10 +182,12 @@ CONFIG_PRINTK=y
173CONFIG_BUG=y 182CONFIG_BUG=y
174CONFIG_ELF_CORE=y 183CONFIG_ELF_CORE=y
175CONFIG_BASE_FULL=y 184CONFIG_BASE_FULL=y
185CONFIG_RT_MUTEXES=y
176CONFIG_FUTEX=y 186CONFIG_FUTEX=y
177CONFIG_EPOLL=y 187CONFIG_EPOLL=y
178CONFIG_SHMEM=y 188CONFIG_SHMEM=y
179CONFIG_SLAB=y 189CONFIG_SLAB=y
190CONFIG_VM_EVENT_COUNTERS=y
180# CONFIG_TINY_SHMEM is not set 191# CONFIG_TINY_SHMEM is not set
181CONFIG_BASE_SMALL=0 192CONFIG_BASE_SMALL=0
182# CONFIG_SLOB is not set 193# CONFIG_SLOB is not set
@@ -242,6 +253,7 @@ CONFIG_TRAD_SIGNALS=y
242CONFIG_STANDALONE=y 253CONFIG_STANDALONE=y
243CONFIG_PREVENT_FIRMWARE_BUILD=y 254CONFIG_PREVENT_FIRMWARE_BUILD=y
244# CONFIG_FW_LOADER is not set 255# CONFIG_FW_LOADER is not set
256# CONFIG_SYS_HYPERVISOR is not set
245 257
246# 258#
247# Connector - unified userspace <-> kernelspace linker 259# Connector - unified userspace <-> kernelspace linker
@@ -355,6 +367,7 @@ CONFIG_LEGACY_PTY_COUNT=256
355# Watchdog Cards 367# Watchdog Cards
356# 368#
357# CONFIG_WATCHDOG is not set 369# CONFIG_WATCHDOG is not set
370# CONFIG_HW_RANDOM is not set
358# CONFIG_RTC is not set 371# CONFIG_RTC is not set
359# CONFIG_GEN_RTC is not set 372# CONFIG_GEN_RTC is not set
360# CONFIG_DTLK is not set 373# CONFIG_DTLK is not set
@@ -385,7 +398,6 @@ CONFIG_LEGACY_PTY_COUNT=256
385# 398#
386# Dallas's 1-wire bus 399# Dallas's 1-wire bus
387# 400#
388# CONFIG_W1 is not set
389 401
390# 402#
391# Hardware Monitoring support 403# Hardware Monitoring support
@@ -401,6 +413,7 @@ CONFIG_LEGACY_PTY_COUNT=256
401# Multimedia devices 413# Multimedia devices
402# 414#
403# CONFIG_VIDEO_DEV is not set 415# CONFIG_VIDEO_DEV is not set
416CONFIG_VIDEO_V4L2=y
404 417
405# 418#
406# Digital Video Broadcasting Devices 419# Digital Video Broadcasting Devices
@@ -409,6 +422,7 @@ CONFIG_LEGACY_PTY_COUNT=256
409# 422#
410# Graphics support 423# Graphics support
411# 424#
425# CONFIG_FIRMWARE_EDID is not set
412# CONFIG_FB is not set 426# CONFIG_FB is not set
413 427
414# 428#
@@ -464,6 +478,19 @@ CONFIG_LEGACY_PTY_COUNT=256
464# CONFIG_RTC_CLASS is not set 478# CONFIG_RTC_CLASS is not set
465 479
466# 480#
481# DMA Engine support
482#
483# CONFIG_DMA_ENGINE is not set
484
485#
486# DMA Clients
487#
488
489#
490# DMA Devices
491#
492
493#
467# File systems 494# File systems
468# 495#
469CONFIG_EXT2_FS=y 496CONFIG_EXT2_FS=y
@@ -477,6 +504,7 @@ CONFIG_EXT2_FS=y
477# CONFIG_MINIX_FS is not set 504# CONFIG_MINIX_FS is not set
478# CONFIG_ROMFS_FS is not set 505# CONFIG_ROMFS_FS is not set
479CONFIG_INOTIFY=y 506CONFIG_INOTIFY=y
507CONFIG_INOTIFY_USER=y
480# CONFIG_QUOTA is not set 508# CONFIG_QUOTA is not set
481CONFIG_DNOTIFY=y 509CONFIG_DNOTIFY=y
482# CONFIG_AUTOFS_FS is not set 510# CONFIG_AUTOFS_FS is not set
@@ -556,6 +584,7 @@ CONFIG_PARTITION_ADVANCED=y
556# 584#
557# CONFIG_PRINTK_TIME is not set 585# CONFIG_PRINTK_TIME is not set
558# CONFIG_MAGIC_SYSRQ is not set 586# CONFIG_MAGIC_SYSRQ is not set
587# CONFIG_UNUSED_SYMBOLS is not set
559# CONFIG_DEBUG_KERNEL is not set 588# CONFIG_DEBUG_KERNEL is not set
560CONFIG_LOG_BUF_SHIFT=14 589CONFIG_LOG_BUF_SHIFT=14
561# CONFIG_DEBUG_FS is not set 590# CONFIG_DEBUG_FS is not set
@@ -585,3 +614,4 @@ CONFIG_CMDLINE=""
585CONFIG_CRC16=y 614CONFIG_CRC16=y
586# CONFIG_CRC32 is not set 615# CONFIG_CRC32 is not set
587# CONFIG_LIBCRC32C is not set 616# CONFIG_LIBCRC32C is not set
617CONFIG_PLIST=y
diff --git a/arch/mips/configs/tb0226_defconfig b/arch/mips/configs/tb0226_defconfig
index 6aa229d54851..2ba4e25e8c34 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:08:41 2006 4# Thu Jul 6 10:04:20 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -75,6 +78,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
75CONFIG_GENERIC_FIND_NEXT_BIT=y 78CONFIG_GENERIC_FIND_NEXT_BIT=y
76CONFIG_GENERIC_HWEIGHT=y 79CONFIG_GENERIC_HWEIGHT=y
77CONFIG_GENERIC_CALIBRATE_DELAY=y 80CONFIG_GENERIC_CALIBRATE_DELAY=y
81CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
78CONFIG_DMA_NONCOHERENT=y 82CONFIG_DMA_NONCOHERENT=y
79CONFIG_DMA_NEED_PCI_MAP_STATE=y 83CONFIG_DMA_NEED_PCI_MAP_STATE=y
80# CONFIG_CPU_BIG_ENDIAN is not set 84# CONFIG_CPU_BIG_ENDIAN is not set
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119# CONFIG_PAGE_SIZE_8KB is not set 123# CONFIG_PAGE_SIZE_8KB is not set
120# CONFIG_PAGE_SIZE_16KB is not set 124# CONFIG_PAGE_SIZE_16KB is not set
121# CONFIG_PAGE_SIZE_64KB is not set 125# CONFIG_PAGE_SIZE_64KB is not set
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123CONFIG_CPU_HAS_SYNC=y 130CONFIG_CPU_HAS_SYNC=y
124CONFIG_GENERIC_HARDIRQS=y 131CONFIG_GENERIC_HARDIRQS=y
125CONFIG_GENERIC_IRQ_PROBE=y 132CONFIG_GENERIC_IRQ_PROBE=y
@@ -132,6 +139,7 @@ CONFIG_FLATMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
133# CONFIG_SPARSEMEM_STATIC is not set 140# CONFIG_SPARSEMEM_STATIC is not set
134CONFIG_SPLIT_PTLOCK_CPUS=4 141CONFIG_SPLIT_PTLOCK_CPUS=4
142# CONFIG_RESOURCES_64BIT is not set
135# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -144,6 +152,7 @@ CONFIG_HZ=1000
144CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
145# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
146# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
155CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147 156
148# 157#
149# Code maturity level options 158# Code maturity level options
@@ -175,10 +184,12 @@ CONFIG_PRINTK=y
175CONFIG_BUG=y 184CONFIG_BUG=y
176CONFIG_ELF_CORE=y 185CONFIG_ELF_CORE=y
177CONFIG_BASE_FULL=y 186CONFIG_BASE_FULL=y
187CONFIG_RT_MUTEXES=y
178CONFIG_FUTEX=y 188CONFIG_FUTEX=y
179CONFIG_EPOLL=y 189CONFIG_EPOLL=y
180CONFIG_SHMEM=y 190CONFIG_SHMEM=y
181CONFIG_SLAB=y 191CONFIG_SLAB=y
192CONFIG_VM_EVENT_COUNTERS=y
182# CONFIG_TINY_SHMEM is not set 193# CONFIG_TINY_SHMEM is not set
183CONFIG_BASE_SMALL=0 194CONFIG_BASE_SMALL=0
184# CONFIG_SLOB is not set 195# CONFIG_SLOB is not set
@@ -249,6 +260,8 @@ CONFIG_NET=y
249CONFIG_PACKET=y 260CONFIG_PACKET=y
250# CONFIG_PACKET_MMAP is not set 261# CONFIG_PACKET_MMAP is not set
251CONFIG_UNIX=y 262CONFIG_UNIX=y
263CONFIG_XFRM=y
264# CONFIG_XFRM_USER is not set
252# CONFIG_NET_KEY is not set 265# CONFIG_NET_KEY is not set
253CONFIG_INET=y 266CONFIG_INET=y
254CONFIG_IP_MULTICAST=y 267CONFIG_IP_MULTICAST=y
@@ -274,6 +287,8 @@ CONFIG_SYN_COOKIES=y
274# CONFIG_INET_IPCOMP is not set 287# CONFIG_INET_IPCOMP is not set
275# CONFIG_INET_XFRM_TUNNEL is not set 288# CONFIG_INET_XFRM_TUNNEL is not set
276# CONFIG_INET_TUNNEL is not set 289# CONFIG_INET_TUNNEL is not set
290CONFIG_INET_XFRM_MODE_TRANSPORT=m
291CONFIG_INET_XFRM_MODE_TUNNEL=m
277CONFIG_INET_DIAG=y 292CONFIG_INET_DIAG=y
278CONFIG_INET_TCP_DIAG=y 293CONFIG_INET_TCP_DIAG=y
279# CONFIG_TCP_CONG_ADVANCED is not set 294# CONFIG_TCP_CONG_ADVANCED is not set
@@ -281,6 +296,7 @@ CONFIG_TCP_CONG_BIC=y
281# CONFIG_IPV6 is not set 296# CONFIG_IPV6 is not set
282# CONFIG_INET6_XFRM_TUNNEL is not set 297# CONFIG_INET6_XFRM_TUNNEL is not set
283# CONFIG_INET6_TUNNEL is not set 298# CONFIG_INET6_TUNNEL is not set
299CONFIG_NETWORK_SECMARK=y
284# CONFIG_NETFILTER is not set 300# CONFIG_NETFILTER is not set
285 301
286# 302#
@@ -334,6 +350,7 @@ CONFIG_TCP_CONG_BIC=y
334CONFIG_STANDALONE=y 350CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 351CONFIG_PREVENT_FIRMWARE_BUILD=y
336CONFIG_FW_LOADER=y 352CONFIG_FW_LOADER=y
353# CONFIG_SYS_HYPERVISOR is not set
337 354
338# 355#
339# Connector - unified userspace <-> kernelspace linker 356# Connector - unified userspace <-> kernelspace linker
@@ -427,6 +444,7 @@ CONFIG_SCSI_MULTI_LUN=y
427# CONFIG_MEGARAID_LEGACY is not set 444# CONFIG_MEGARAID_LEGACY is not set
428# CONFIG_MEGARAID_SAS is not set 445# CONFIG_MEGARAID_SAS is not set
429# CONFIG_SCSI_SATA is not set 446# CONFIG_SCSI_SATA is not set
447# CONFIG_SCSI_HPTIOP is not set
430# CONFIG_SCSI_DMX3191D is not set 448# CONFIG_SCSI_DMX3191D is not set
431# CONFIG_SCSI_FUTURE_DOMAIN is not set 449# CONFIG_SCSI_FUTURE_DOMAIN is not set
432# CONFIG_SCSI_IPS is not set 450# CONFIG_SCSI_IPS is not set
@@ -492,6 +510,8 @@ CONFIG_DAVICOM_PHY=m
492CONFIG_QSEMI_PHY=m 510CONFIG_QSEMI_PHY=m
493CONFIG_LXT_PHY=m 511CONFIG_LXT_PHY=m
494CONFIG_CICADA_PHY=m 512CONFIG_CICADA_PHY=m
513CONFIG_VITESSE_PHY=m
514CONFIG_SMSC_PHY=m
495 515
496# 516#
497# Ethernet (10 or 100Mbit) 517# Ethernet (10 or 100Mbit)
@@ -554,6 +574,7 @@ CONFIG_E100=y
554# CONFIG_CHELSIO_T1 is not set 574# CONFIG_CHELSIO_T1 is not set
555# CONFIG_IXGB is not set 575# CONFIG_IXGB is not set
556# CONFIG_S2IO is not set 576# CONFIG_S2IO is not set
577# CONFIG_MYRI10GE is not set
557 578
558# 579#
559# Token Ring devices 580# Token Ring devices
@@ -624,6 +645,7 @@ CONFIG_INPUT=y
624CONFIG_VT=y 645CONFIG_VT=y
625CONFIG_VT_CONSOLE=y 646CONFIG_VT_CONSOLE=y
626CONFIG_HW_CONSOLE=y 647CONFIG_HW_CONSOLE=y
648CONFIG_VT_HW_CONSOLE_BINDING=y
627# CONFIG_SERIAL_NONSTANDARD is not set 649# CONFIG_SERIAL_NONSTANDARD is not set
628 650
629# 651#
@@ -652,6 +674,7 @@ CONFIG_LEGACY_PTY_COUNT=256
652# Watchdog Cards 674# Watchdog Cards
653# 675#
654# CONFIG_WATCHDOG is not set 676# CONFIG_WATCHDOG is not set
677# CONFIG_HW_RANDOM is not set
655# CONFIG_RTC is not set 678# CONFIG_RTC is not set
656# CONFIG_GEN_RTC is not set 679# CONFIG_GEN_RTC is not set
657# CONFIG_DTLK is not set 680# CONFIG_DTLK is not set
@@ -702,6 +725,7 @@ CONFIG_GPIO_VR41XX=y
702# Multimedia devices 725# Multimedia devices
703# 726#
704# CONFIG_VIDEO_DEV is not set 727# CONFIG_VIDEO_DEV is not set
728CONFIG_VIDEO_V4L2=y
705 729
706# 730#
707# Digital Video Broadcasting Devices 731# Digital Video Broadcasting Devices
@@ -712,6 +736,7 @@ CONFIG_GPIO_VR41XX=y
712# 736#
713# Graphics support 737# Graphics support
714# 738#
739# CONFIG_FIRMWARE_EDID is not set
715# CONFIG_FB is not set 740# CONFIG_FB is not set
716 741
717# 742#
@@ -748,6 +773,7 @@ CONFIG_USB_DEVICEFS=y
748CONFIG_USB_EHCI_HCD=y 773CONFIG_USB_EHCI_HCD=y
749# CONFIG_USB_EHCI_SPLIT_ISO is not set 774# CONFIG_USB_EHCI_SPLIT_ISO is not set
750# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 775# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
776# CONFIG_USB_EHCI_TT_NEWSCHED is not set
751# CONFIG_USB_ISP116X_HCD is not set 777# CONFIG_USB_ISP116X_HCD is not set
752CONFIG_USB_OHCI_HCD=y 778CONFIG_USB_OHCI_HCD=y
753# CONFIG_USB_OHCI_BIG_ENDIAN is not set 779# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -838,10 +864,12 @@ CONFIG_USB_STORAGE=y
838# CONFIG_USB_LEGOTOWER is not set 864# CONFIG_USB_LEGOTOWER is not set
839# CONFIG_USB_LCD is not set 865# CONFIG_USB_LCD is not set
840# CONFIG_USB_LED is not set 866# CONFIG_USB_LED is not set
867# CONFIG_USB_CY7C63 is not set
841# CONFIG_USB_CYTHERM is not set 868# CONFIG_USB_CYTHERM is not set
842# CONFIG_USB_PHIDGETKIT is not set 869# CONFIG_USB_PHIDGETKIT is not set
843# CONFIG_USB_PHIDGETSERVO is not set 870# CONFIG_USB_PHIDGETSERVO is not set
844# CONFIG_USB_IDMOUSE is not set 871# CONFIG_USB_IDMOUSE is not set
872# CONFIG_USB_APPLEDISPLAY is not set
845# CONFIG_USB_SISUSBVGA is not set 873# CONFIG_USB_SISUSBVGA is not set
846# CONFIG_USB_LD is not set 874# CONFIG_USB_LD is not set
847# CONFIG_USB_TEST is not set 875# CONFIG_USB_TEST is not set
@@ -896,13 +924,30 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
896CONFIG_RTC_INTF_SYSFS=y 924CONFIG_RTC_INTF_SYSFS=y
897CONFIG_RTC_INTF_PROC=y 925CONFIG_RTC_INTF_PROC=y
898CONFIG_RTC_INTF_DEV=y 926CONFIG_RTC_INTF_DEV=y
927# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
899 928
900# 929#
901# RTC drivers 930# RTC drivers
902# 931#
932# CONFIG_RTC_DRV_DS1553 is not set
933# CONFIG_RTC_DRV_DS1742 is not set
903# CONFIG_RTC_DRV_M48T86 is not set 934# CONFIG_RTC_DRV_M48T86 is not set
904CONFIG_RTC_DRV_VR41XX=y 935CONFIG_RTC_DRV_VR41XX=y
905# CONFIG_RTC_DRV_TEST is not set 936# CONFIG_RTC_DRV_TEST is not set
937# CONFIG_RTC_DRV_V3020 is not set
938
939#
940# DMA Engine support
941#
942# CONFIG_DMA_ENGINE is not set
943
944#
945# DMA Clients
946#
947
948#
949# DMA Devices
950#
906 951
907# 952#
908# File systems 953# File systems
@@ -919,6 +964,7 @@ CONFIG_EXT2_FS=y
919# CONFIG_MINIX_FS is not set 964# CONFIG_MINIX_FS is not set
920CONFIG_ROMFS_FS=m 965CONFIG_ROMFS_FS=m
921CONFIG_INOTIFY=y 966CONFIG_INOTIFY=y
967CONFIG_INOTIFY_USER=y
922# CONFIG_QUOTA is not set 968# CONFIG_QUOTA is not set
923CONFIG_DNOTIFY=y 969CONFIG_DNOTIFY=y
924# CONFIG_AUTOFS_FS is not set 970# CONFIG_AUTOFS_FS is not set
@@ -989,6 +1035,7 @@ CONFIG_SUNRPC=y
989# CONFIG_RPCSEC_GSS_SPKM3 is not set 1035# CONFIG_RPCSEC_GSS_SPKM3 is not set
990# CONFIG_SMB_FS is not set 1036# CONFIG_SMB_FS is not set
991# CONFIG_CIFS is not set 1037# CONFIG_CIFS is not set
1038# CONFIG_CIFS_DEBUG2 is not set
992# CONFIG_NCP_FS is not set 1039# CONFIG_NCP_FS is not set
993# CONFIG_CODA_FS is not set 1040# CONFIG_CODA_FS is not set
994# CONFIG_AFS_FS is not set 1041# CONFIG_AFS_FS is not set
@@ -1015,6 +1062,7 @@ CONFIG_MSDOS_PARTITION=y
1015# 1062#
1016# CONFIG_PRINTK_TIME is not set 1063# CONFIG_PRINTK_TIME is not set
1017# CONFIG_MAGIC_SYSRQ is not set 1064# CONFIG_MAGIC_SYSRQ is not set
1065# CONFIG_UNUSED_SYMBOLS is not set
1018# CONFIG_DEBUG_KERNEL is not set 1066# CONFIG_DEBUG_KERNEL is not set
1019CONFIG_LOG_BUF_SHIFT=14 1067CONFIG_LOG_BUF_SHIFT=14
1020# CONFIG_DEBUG_FS is not set 1068# CONFIG_DEBUG_FS is not set
@@ -1044,3 +1092,4 @@ CONFIG_CMDLINE="mem=32M console=ttyVR0,115200"
1044# CONFIG_CRC32 is not set 1092# CONFIG_CRC32 is not set
1045# CONFIG_LIBCRC32C is not set 1093# CONFIG_LIBCRC32C is not set
1046CONFIG_ZLIB_INFLATE=m 1094CONFIG_ZLIB_INFLATE=m
1095CONFIG_PLIST=y
diff --git a/arch/mips/configs/tb0229_defconfig b/arch/mips/configs/tb0229_defconfig
index a187b1f0004c..fc8a407c1add 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:08:59 2006 4# Thu Jul 6 10:04:20 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -75,6 +78,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
75CONFIG_GENERIC_FIND_NEXT_BIT=y 78CONFIG_GENERIC_FIND_NEXT_BIT=y
76CONFIG_GENERIC_HWEIGHT=y 79CONFIG_GENERIC_HWEIGHT=y
77CONFIG_GENERIC_CALIBRATE_DELAY=y 80CONFIG_GENERIC_CALIBRATE_DELAY=y
81CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
78CONFIG_DMA_NONCOHERENT=y 82CONFIG_DMA_NONCOHERENT=y
79CONFIG_DMA_NEED_PCI_MAP_STATE=y 83CONFIG_DMA_NEED_PCI_MAP_STATE=y
80# CONFIG_CPU_BIG_ENDIAN is not set 84# CONFIG_CPU_BIG_ENDIAN is not set
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119# CONFIG_PAGE_SIZE_8KB is not set 123# CONFIG_PAGE_SIZE_8KB is not set
120# CONFIG_PAGE_SIZE_16KB is not set 124# CONFIG_PAGE_SIZE_16KB is not set
121# CONFIG_PAGE_SIZE_64KB is not set 125# CONFIG_PAGE_SIZE_64KB is not set
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123CONFIG_CPU_HAS_SYNC=y 130CONFIG_CPU_HAS_SYNC=y
124CONFIG_GENERIC_HARDIRQS=y 131CONFIG_GENERIC_HARDIRQS=y
125CONFIG_GENERIC_IRQ_PROBE=y 132CONFIG_GENERIC_IRQ_PROBE=y
@@ -132,6 +139,7 @@ CONFIG_FLATMEM=y
132CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
133# CONFIG_SPARSEMEM_STATIC is not set 140# CONFIG_SPARSEMEM_STATIC is not set
134CONFIG_SPLIT_PTLOCK_CPUS=4 141CONFIG_SPLIT_PTLOCK_CPUS=4
142# CONFIG_RESOURCES_64BIT is not set
135# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
136# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
137# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -144,6 +152,7 @@ CONFIG_HZ=1000
144CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
145# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
146# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
155CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
147 156
148# 157#
149# Code maturity level options 158# Code maturity level options
@@ -175,10 +184,12 @@ CONFIG_PRINTK=y
175CONFIG_BUG=y 184CONFIG_BUG=y
176CONFIG_ELF_CORE=y 185CONFIG_ELF_CORE=y
177CONFIG_BASE_FULL=y 186CONFIG_BASE_FULL=y
187CONFIG_RT_MUTEXES=y
178CONFIG_FUTEX=y 188CONFIG_FUTEX=y
179CONFIG_EPOLL=y 189CONFIG_EPOLL=y
180CONFIG_SHMEM=y 190CONFIG_SHMEM=y
181CONFIG_SLAB=y 191CONFIG_SLAB=y
192CONFIG_VM_EVENT_COUNTERS=y
182# CONFIG_TINY_SHMEM is not set 193# CONFIG_TINY_SHMEM is not set
183CONFIG_BASE_SMALL=0 194CONFIG_BASE_SMALL=0
184# CONFIG_SLOB is not set 195# CONFIG_SLOB is not set
@@ -249,6 +260,8 @@ CONFIG_NET=y
249CONFIG_PACKET=y 260CONFIG_PACKET=y
250# CONFIG_PACKET_MMAP is not set 261# CONFIG_PACKET_MMAP is not set
251CONFIG_UNIX=y 262CONFIG_UNIX=y
263CONFIG_XFRM=y
264# CONFIG_XFRM_USER is not set
252# CONFIG_NET_KEY is not set 265# CONFIG_NET_KEY is not set
253CONFIG_INET=y 266CONFIG_INET=y
254CONFIG_IP_MULTICAST=y 267CONFIG_IP_MULTICAST=y
@@ -275,6 +288,8 @@ CONFIG_SYN_COOKIES=y
275# CONFIG_INET_IPCOMP is not set 288# CONFIG_INET_IPCOMP is not set
276# CONFIG_INET_XFRM_TUNNEL is not set 289# CONFIG_INET_XFRM_TUNNEL is not set
277CONFIG_INET_TUNNEL=m 290CONFIG_INET_TUNNEL=m
291CONFIG_INET_XFRM_MODE_TRANSPORT=m
292CONFIG_INET_XFRM_MODE_TUNNEL=m
278CONFIG_INET_DIAG=y 293CONFIG_INET_DIAG=y
279CONFIG_INET_TCP_DIAG=y 294CONFIG_INET_TCP_DIAG=y
280# CONFIG_TCP_CONG_ADVANCED is not set 295# CONFIG_TCP_CONG_ADVANCED is not set
@@ -282,6 +297,7 @@ CONFIG_TCP_CONG_BIC=y
282# CONFIG_IPV6 is not set 297# CONFIG_IPV6 is not set
283# CONFIG_INET6_XFRM_TUNNEL is not set 298# CONFIG_INET6_XFRM_TUNNEL is not set
284# CONFIG_INET6_TUNNEL is not set 299# CONFIG_INET6_TUNNEL is not set
300CONFIG_NETWORK_SECMARK=y
285# CONFIG_NETFILTER is not set 301# CONFIG_NETFILTER is not set
286 302
287# 303#
@@ -335,6 +351,7 @@ CONFIG_TCP_CONG_BIC=y
335CONFIG_STANDALONE=y 351CONFIG_STANDALONE=y
336CONFIG_PREVENT_FIRMWARE_BUILD=y 352CONFIG_PREVENT_FIRMWARE_BUILD=y
337# CONFIG_FW_LOADER is not set 353# CONFIG_FW_LOADER is not set
354# CONFIG_SYS_HYPERVISOR is not set
338 355
339# 356#
340# Connector - unified userspace <-> kernelspace linker 357# Connector - unified userspace <-> kernelspace linker
@@ -433,6 +450,8 @@ CONFIG_DAVICOM_PHY=m
433CONFIG_QSEMI_PHY=m 450CONFIG_QSEMI_PHY=m
434CONFIG_LXT_PHY=m 451CONFIG_LXT_PHY=m
435CONFIG_CICADA_PHY=m 452CONFIG_CICADA_PHY=m
453CONFIG_VITESSE_PHY=m
454CONFIG_SMSC_PHY=m
436 455
437# 456#
438# Ethernet (10 or 100Mbit) 457# Ethernet (10 or 100Mbit)
@@ -476,6 +495,7 @@ CONFIG_R8169=y
476# CONFIG_CHELSIO_T1 is not set 495# CONFIG_CHELSIO_T1 is not set
477# CONFIG_IXGB is not set 496# CONFIG_IXGB is not set
478# CONFIG_S2IO is not set 497# CONFIG_S2IO is not set
498# CONFIG_MYRI10GE is not set
479 499
480# 500#
481# Token Ring devices 501# Token Ring devices
@@ -545,6 +565,7 @@ CONFIG_INPUT=y
545CONFIG_VT=y 565CONFIG_VT=y
546CONFIG_VT_CONSOLE=y 566CONFIG_VT_CONSOLE=y
547CONFIG_HW_CONSOLE=y 567CONFIG_HW_CONSOLE=y
568CONFIG_VT_HW_CONSOLE_BINDING=y
548# CONFIG_SERIAL_NONSTANDARD is not set 569# CONFIG_SERIAL_NONSTANDARD is not set
549 570
550# 571#
@@ -573,6 +594,7 @@ CONFIG_LEGACY_PTY_COUNT=256
573# Watchdog Cards 594# Watchdog Cards
574# 595#
575# CONFIG_WATCHDOG is not set 596# CONFIG_WATCHDOG is not set
597# CONFIG_HW_RANDOM is not set
576# CONFIG_RTC is not set 598# CONFIG_RTC is not set
577# CONFIG_GEN_RTC is not set 599# CONFIG_GEN_RTC is not set
578# CONFIG_DTLK is not set 600# CONFIG_DTLK is not set
@@ -607,7 +629,6 @@ CONFIG_GPIO_VR41XX=y
607# 629#
608# Dallas's 1-wire bus 630# Dallas's 1-wire bus
609# 631#
610# CONFIG_W1 is not set
611 632
612# 633#
613# Hardware Monitoring support 634# Hardware Monitoring support
@@ -623,6 +644,7 @@ CONFIG_GPIO_VR41XX=y
623# Multimedia devices 644# Multimedia devices
624# 645#
625# CONFIG_VIDEO_DEV is not set 646# CONFIG_VIDEO_DEV is not set
647CONFIG_VIDEO_V4L2=y
626 648
627# 649#
628# Digital Video Broadcasting Devices 650# Digital Video Broadcasting Devices
@@ -633,6 +655,7 @@ CONFIG_GPIO_VR41XX=y
633# 655#
634# Graphics support 656# Graphics support
635# 657#
658# CONFIG_FIRMWARE_EDID is not set
636# CONFIG_FB is not set 659# CONFIG_FB is not set
637 660
638# 661#
@@ -669,6 +692,7 @@ CONFIG_USB_DEVICEFS=y
669CONFIG_USB_EHCI_HCD=m 692CONFIG_USB_EHCI_HCD=m
670# CONFIG_USB_EHCI_SPLIT_ISO is not set 693# CONFIG_USB_EHCI_SPLIT_ISO is not set
671# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 694# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
695# CONFIG_USB_EHCI_TT_NEWSCHED is not set
672# CONFIG_USB_ISP116X_HCD is not set 696# CONFIG_USB_ISP116X_HCD is not set
673CONFIG_USB_OHCI_HCD=m 697CONFIG_USB_OHCI_HCD=m
674# CONFIG_USB_OHCI_BIG_ENDIAN is not set 698# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -749,10 +773,12 @@ CONFIG_USB_MON=y
749# CONFIG_USB_LEGOTOWER is not set 773# CONFIG_USB_LEGOTOWER is not set
750# CONFIG_USB_LCD is not set 774# CONFIG_USB_LCD is not set
751# CONFIG_USB_LED is not set 775# CONFIG_USB_LED is not set
776# CONFIG_USB_CY7C63 is not set
752# CONFIG_USB_CYTHERM is not set 777# CONFIG_USB_CYTHERM is not set
753# CONFIG_USB_PHIDGETKIT is not set 778# CONFIG_USB_PHIDGETKIT is not set
754# CONFIG_USB_PHIDGETSERVO is not set 779# CONFIG_USB_PHIDGETSERVO is not set
755# CONFIG_USB_IDMOUSE is not set 780# CONFIG_USB_IDMOUSE is not set
781# CONFIG_USB_APPLEDISPLAY is not set
756# CONFIG_USB_SISUSBVGA is not set 782# CONFIG_USB_SISUSBVGA is not set
757# CONFIG_USB_LD is not set 783# CONFIG_USB_LD is not set
758# CONFIG_USB_TEST is not set 784# CONFIG_USB_TEST is not set
@@ -807,13 +833,30 @@ CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
807CONFIG_RTC_INTF_SYSFS=y 833CONFIG_RTC_INTF_SYSFS=y
808CONFIG_RTC_INTF_PROC=y 834CONFIG_RTC_INTF_PROC=y
809CONFIG_RTC_INTF_DEV=y 835CONFIG_RTC_INTF_DEV=y
836# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
810 837
811# 838#
812# RTC drivers 839# RTC drivers
813# 840#
841# CONFIG_RTC_DRV_DS1553 is not set
842# CONFIG_RTC_DRV_DS1742 is not set
814# CONFIG_RTC_DRV_M48T86 is not set 843# CONFIG_RTC_DRV_M48T86 is not set
815CONFIG_RTC_DRV_VR41XX=y 844CONFIG_RTC_DRV_VR41XX=y
816# CONFIG_RTC_DRV_TEST is not set 845# CONFIG_RTC_DRV_TEST is not set
846# CONFIG_RTC_DRV_V3020 is not set
847
848#
849# DMA Engine support
850#
851# CONFIG_DMA_ENGINE is not set
852
853#
854# DMA Clients
855#
856
857#
858# DMA Devices
859#
817 860
818# 861#
819# File systems 862# File systems
@@ -830,6 +873,7 @@ CONFIG_EXT2_FS=y
830# CONFIG_MINIX_FS is not set 873# CONFIG_MINIX_FS is not set
831CONFIG_ROMFS_FS=m 874CONFIG_ROMFS_FS=m
832CONFIG_INOTIFY=y 875CONFIG_INOTIFY=y
876CONFIG_INOTIFY_USER=y
833# CONFIG_QUOTA is not set 877# CONFIG_QUOTA is not set
834CONFIG_DNOTIFY=y 878CONFIG_DNOTIFY=y
835# CONFIG_AUTOFS_FS is not set 879# CONFIG_AUTOFS_FS is not set
@@ -900,6 +944,7 @@ CONFIG_SUNRPC=y
900# CONFIG_RPCSEC_GSS_SPKM3 is not set 944# CONFIG_RPCSEC_GSS_SPKM3 is not set
901# CONFIG_SMB_FS is not set 945# CONFIG_SMB_FS is not set
902# CONFIG_CIFS is not set 946# CONFIG_CIFS is not set
947# CONFIG_CIFS_DEBUG2 is not set
903# CONFIG_NCP_FS is not set 948# CONFIG_NCP_FS is not set
904# CONFIG_CODA_FS is not set 949# CONFIG_CODA_FS is not set
905# CONFIG_AFS_FS is not set 950# CONFIG_AFS_FS is not set
@@ -926,6 +971,7 @@ CONFIG_MSDOS_PARTITION=y
926# 971#
927# CONFIG_PRINTK_TIME is not set 972# CONFIG_PRINTK_TIME is not set
928# CONFIG_MAGIC_SYSRQ is not set 973# CONFIG_MAGIC_SYSRQ is not set
974# CONFIG_UNUSED_SYMBOLS is not set
929# CONFIG_DEBUG_KERNEL is not set 975# CONFIG_DEBUG_KERNEL is not set
930CONFIG_LOG_BUF_SHIFT=14 976CONFIG_LOG_BUF_SHIFT=14
931# CONFIG_DEBUG_FS is not set 977# CONFIG_DEBUG_FS is not set
@@ -955,3 +1001,4 @@ CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
955CONFIG_CRC32=y 1001CONFIG_CRC32=y
956# CONFIG_LIBCRC32C is not set 1002# CONFIG_LIBCRC32C is not set
957CONFIG_ZLIB_INFLATE=m 1003CONFIG_ZLIB_INFLATE=m
1004CONFIG_PLIST=y
diff --git a/arch/mips/configs/tb0287_defconfig b/arch/mips/configs/tb0287_defconfig
index 258457fcbe11..effcb63b81a3 100644
--- a/arch/mips/configs/tb0287_defconfig
+++ b/arch/mips/configs/tb0287_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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:09:17 2006 4# Thu Jul 6 10:04:21 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -120,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
120# CONFIG_PAGE_SIZE_8KB is not set 123# CONFIG_PAGE_SIZE_8KB is not set
121# CONFIG_PAGE_SIZE_16KB is not set 124# CONFIG_PAGE_SIZE_16KB is not set
122# CONFIG_PAGE_SIZE_64KB is not set 125# CONFIG_PAGE_SIZE_64KB is not set
123# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
124CONFIG_CPU_HAS_SYNC=y 130CONFIG_CPU_HAS_SYNC=y
125CONFIG_GENERIC_HARDIRQS=y 131CONFIG_GENERIC_HARDIRQS=y
126CONFIG_GENERIC_IRQ_PROBE=y 132CONFIG_GENERIC_IRQ_PROBE=y
@@ -133,6 +139,7 @@ CONFIG_FLATMEM=y
133CONFIG_FLAT_NODE_MEM_MAP=y 139CONFIG_FLAT_NODE_MEM_MAP=y
134# CONFIG_SPARSEMEM_STATIC is not set 140# CONFIG_SPARSEMEM_STATIC is not set
135CONFIG_SPLIT_PTLOCK_CPUS=4 141CONFIG_SPLIT_PTLOCK_CPUS=4
142# CONFIG_RESOURCES_64BIT is not set
136# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
137# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
138# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -145,6 +152,7 @@ CONFIG_HZ=1000
145CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
146# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
147# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
155CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
148 156
149# 157#
150# Code maturity level options 158# Code maturity level options
@@ -176,10 +184,12 @@ CONFIG_PRINTK=y
176CONFIG_BUG=y 184CONFIG_BUG=y
177CONFIG_ELF_CORE=y 185CONFIG_ELF_CORE=y
178CONFIG_BASE_FULL=y 186CONFIG_BASE_FULL=y
187CONFIG_RT_MUTEXES=y
179CONFIG_FUTEX=y 188CONFIG_FUTEX=y
180CONFIG_EPOLL=y 189CONFIG_EPOLL=y
181CONFIG_SHMEM=y 190CONFIG_SHMEM=y
182CONFIG_SLAB=y 191CONFIG_SLAB=y
192CONFIG_VM_EVENT_COUNTERS=y
183# CONFIG_TINY_SHMEM is not set 193# CONFIG_TINY_SHMEM is not set
184CONFIG_BASE_SMALL=0 194CONFIG_BASE_SMALL=0
185# CONFIG_SLOB is not set 195# CONFIG_SLOB is not set
@@ -250,6 +260,8 @@ CONFIG_NET=y
250CONFIG_PACKET=y 260CONFIG_PACKET=y
251# CONFIG_PACKET_MMAP is not set 261# CONFIG_PACKET_MMAP is not set
252CONFIG_UNIX=y 262CONFIG_UNIX=y
263CONFIG_XFRM=y
264# CONFIG_XFRM_USER is not set
253# CONFIG_NET_KEY is not set 265# CONFIG_NET_KEY is not set
254CONFIG_INET=y 266CONFIG_INET=y
255CONFIG_IP_MULTICAST=y 267CONFIG_IP_MULTICAST=y
@@ -276,6 +288,8 @@ CONFIG_SYN_COOKIES=y
276# CONFIG_INET_IPCOMP is not set 288# CONFIG_INET_IPCOMP is not set
277# CONFIG_INET_XFRM_TUNNEL is not set 289# CONFIG_INET_XFRM_TUNNEL is not set
278CONFIG_INET_TUNNEL=m 290CONFIG_INET_TUNNEL=m
291CONFIG_INET_XFRM_MODE_TRANSPORT=m
292CONFIG_INET_XFRM_MODE_TUNNEL=m
279CONFIG_INET_DIAG=y 293CONFIG_INET_DIAG=y
280CONFIG_INET_TCP_DIAG=y 294CONFIG_INET_TCP_DIAG=y
281CONFIG_TCP_CONG_ADVANCED=y 295CONFIG_TCP_CONG_ADVANCED=y
@@ -291,9 +305,13 @@ CONFIG_TCP_CONG_HTCP=m
291# CONFIG_TCP_CONG_HYBLA is not set 305# CONFIG_TCP_CONG_HYBLA is not set
292# CONFIG_TCP_CONG_VEGAS is not set 306# CONFIG_TCP_CONG_VEGAS is not set
293# CONFIG_TCP_CONG_SCALABLE is not set 307# CONFIG_TCP_CONG_SCALABLE is not set
308# CONFIG_TCP_CONG_LP is not set
309# CONFIG_TCP_CONG_VENO is not set
310# CONFIG_TCP_CONG_COMPOUND is not set
294# CONFIG_IPV6 is not set 311# CONFIG_IPV6 is not set
295# CONFIG_INET6_XFRM_TUNNEL is not set 312# CONFIG_INET6_XFRM_TUNNEL is not set
296# CONFIG_INET6_TUNNEL is not set 313# CONFIG_INET6_TUNNEL is not set
314CONFIG_NETWORK_SECMARK=y
297# CONFIG_NETFILTER is not set 315# CONFIG_NETFILTER is not set
298 316
299# 317#
@@ -347,6 +365,7 @@ CONFIG_TCP_CONG_HTCP=m
347CONFIG_STANDALONE=y 365CONFIG_STANDALONE=y
348CONFIG_PREVENT_FIRMWARE_BUILD=y 366CONFIG_PREVENT_FIRMWARE_BUILD=y
349# CONFIG_FW_LOADER is not set 367# CONFIG_FW_LOADER is not set
368# CONFIG_SYS_HYPERVISOR is not set
350 369
351# 370#
352# Connector - unified userspace <-> kernelspace linker 371# Connector - unified userspace <-> kernelspace linker
@@ -492,6 +511,7 @@ CONFIG_BLK_DEV_SD=y
492# CONFIG_MEGARAID_LEGACY is not set 511# CONFIG_MEGARAID_LEGACY is not set
493# CONFIG_MEGARAID_SAS is not set 512# CONFIG_MEGARAID_SAS is not set
494# CONFIG_SCSI_SATA is not set 513# CONFIG_SCSI_SATA is not set
514# CONFIG_SCSI_HPTIOP is not set
495# CONFIG_SCSI_DMX3191D is not set 515# CONFIG_SCSI_DMX3191D is not set
496# CONFIG_SCSI_FUTURE_DOMAIN is not set 516# CONFIG_SCSI_FUTURE_DOMAIN is not set
497# CONFIG_SCSI_IPS is not set 517# CONFIG_SCSI_IPS is not set
@@ -548,7 +568,6 @@ CONFIG_IEEE1394_OHCI1394=m
548# 568#
549CONFIG_IEEE1394_VIDEO1394=m 569CONFIG_IEEE1394_VIDEO1394=m
550CONFIG_IEEE1394_SBP2=m 570CONFIG_IEEE1394_SBP2=m
551# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
552CONFIG_IEEE1394_ETH1394=m 571CONFIG_IEEE1394_ETH1394=m
553CONFIG_IEEE1394_DV1394=m 572CONFIG_IEEE1394_DV1394=m
554CONFIG_IEEE1394_RAWIO=m 573CONFIG_IEEE1394_RAWIO=m
@@ -619,6 +638,7 @@ CONFIG_R8169=y
619# CONFIG_CHELSIO_T1 is not set 638# CONFIG_CHELSIO_T1 is not set
620# CONFIG_IXGB is not set 639# CONFIG_IXGB is not set
621# CONFIG_S2IO is not set 640# CONFIG_S2IO is not set
641# CONFIG_MYRI10GE is not set
622 642
623# 643#
624# Token Ring devices 644# Token Ring devices
@@ -689,6 +709,7 @@ CONFIG_INPUT=y
689CONFIG_VT=y 709CONFIG_VT=y
690CONFIG_VT_CONSOLE=y 710CONFIG_VT_CONSOLE=y
691CONFIG_HW_CONSOLE=y 711CONFIG_HW_CONSOLE=y
712CONFIG_VT_HW_CONSOLE_BINDING=y
692# CONFIG_SERIAL_NONSTANDARD is not set 713# CONFIG_SERIAL_NONSTANDARD is not set
693 714
694# 715#
@@ -717,6 +738,7 @@ CONFIG_LEGACY_PTY_COUNT=256
717# Watchdog Cards 738# Watchdog Cards
718# 739#
719# CONFIG_WATCHDOG is not set 740# CONFIG_WATCHDOG is not set
741# CONFIG_HW_RANDOM is not set
720# CONFIG_RTC is not set 742# CONFIG_RTC is not set
721# CONFIG_GEN_RTC is not set 743# CONFIG_GEN_RTC is not set
722# CONFIG_DTLK is not set 744# CONFIG_DTLK is not set
@@ -751,7 +773,6 @@ CONFIG_GPIO_VR41XX=y
751# 773#
752# Dallas's 1-wire bus 774# Dallas's 1-wire bus
753# 775#
754# CONFIG_W1 is not set
755 776
756# 777#
757# Hardware Monitoring support 778# Hardware Monitoring support
@@ -767,6 +788,7 @@ CONFIG_GPIO_VR41XX=y
767# Multimedia devices 788# Multimedia devices
768# 789#
769# CONFIG_VIDEO_DEV is not set 790# CONFIG_VIDEO_DEV is not set
791CONFIG_VIDEO_V4L2=y
770 792
771# 793#
772# Digital Video Broadcasting Devices 794# Digital Video Broadcasting Devices
@@ -777,12 +799,13 @@ CONFIG_GPIO_VR41XX=y
777# 799#
778# Graphics support 800# Graphics support
779# 801#
802# CONFIG_FIRMWARE_EDID is not set
780CONFIG_FB=y 803CONFIG_FB=y
781CONFIG_FB_CFB_FILLRECT=y 804CONFIG_FB_CFB_FILLRECT=y
782CONFIG_FB_CFB_COPYAREA=y 805CONFIG_FB_CFB_COPYAREA=y
783CONFIG_FB_CFB_IMAGEBLIT=y 806CONFIG_FB_CFB_IMAGEBLIT=y
784# CONFIG_FB_MACMODES is not set 807# CONFIG_FB_MACMODES is not set
785CONFIG_FB_FIRMWARE_EDID=y 808# CONFIG_FB_BACKLIGHT is not set
786# CONFIG_FB_MODE_HELPERS is not set 809# CONFIG_FB_MODE_HELPERS is not set
787# CONFIG_FB_TILEBLITTING is not set 810# CONFIG_FB_TILEBLITTING is not set
788# CONFIG_FB_CIRRUS is not set 811# CONFIG_FB_CIRRUS is not set
@@ -848,6 +871,7 @@ CONFIG_USB=m
848CONFIG_USB_EHCI_HCD=m 871CONFIG_USB_EHCI_HCD=m
849# CONFIG_USB_EHCI_SPLIT_ISO is not set 872# CONFIG_USB_EHCI_SPLIT_ISO is not set
850# CONFIG_USB_EHCI_ROOT_HUB_TT is not set 873# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
874# CONFIG_USB_EHCI_TT_NEWSCHED is not set
851# CONFIG_USB_ISP116X_HCD is not set 875# CONFIG_USB_ISP116X_HCD is not set
852CONFIG_USB_OHCI_HCD=m 876CONFIG_USB_OHCI_HCD=m
853# CONFIG_USB_OHCI_BIG_ENDIAN is not set 877# CONFIG_USB_OHCI_BIG_ENDIAN is not set
@@ -943,10 +967,12 @@ CONFIG_USB_MON=y
943# CONFIG_USB_LEGOTOWER is not set 967# CONFIG_USB_LEGOTOWER is not set
944# CONFIG_USB_LCD is not set 968# CONFIG_USB_LCD is not set
945# CONFIG_USB_LED is not set 969# CONFIG_USB_LED is not set
970# CONFIG_USB_CY7C63 is not set
946# CONFIG_USB_CYTHERM is not set 971# CONFIG_USB_CYTHERM is not set
947# CONFIG_USB_PHIDGETKIT is not set 972# CONFIG_USB_PHIDGETKIT is not set
948# CONFIG_USB_PHIDGETSERVO is not set 973# CONFIG_USB_PHIDGETSERVO is not set
949# CONFIG_USB_IDMOUSE is not set 974# CONFIG_USB_IDMOUSE is not set
975# CONFIG_USB_APPLEDISPLAY is not set
950# CONFIG_USB_SISUSBVGA is not set 976# CONFIG_USB_SISUSBVGA is not set
951# CONFIG_USB_LD is not set 977# CONFIG_USB_LD is not set
952 978
@@ -992,6 +1018,19 @@ CONFIG_USB_MON=y
992# CONFIG_RTC_CLASS is not set 1018# CONFIG_RTC_CLASS is not set
993 1019
994# 1020#
1021# DMA Engine support
1022#
1023# CONFIG_DMA_ENGINE is not set
1024
1025#
1026# DMA Clients
1027#
1028
1029#
1030# DMA Devices
1031#
1032
1033#
995# File systems 1034# File systems
996# 1035#
997CONFIG_EXT2_FS=y 1036CONFIG_EXT2_FS=y
@@ -1016,6 +1055,7 @@ CONFIG_XFS_POSIX_ACL=y
1016# CONFIG_MINIX_FS is not set 1055# CONFIG_MINIX_FS is not set
1017CONFIG_ROMFS_FS=m 1056CONFIG_ROMFS_FS=m
1018CONFIG_INOTIFY=y 1057CONFIG_INOTIFY=y
1058CONFIG_INOTIFY_USER=y
1019# CONFIG_QUOTA is not set 1059# CONFIG_QUOTA is not set
1020CONFIG_QUOTACTL=y 1060CONFIG_QUOTACTL=y
1021# CONFIG_DNOTIFY is not set 1061# CONFIG_DNOTIFY is not set
@@ -1082,6 +1122,7 @@ CONFIG_SUNRPC=y
1082# CONFIG_RPCSEC_GSS_SPKM3 is not set 1122# CONFIG_RPCSEC_GSS_SPKM3 is not set
1083# CONFIG_SMB_FS is not set 1123# CONFIG_SMB_FS is not set
1084# CONFIG_CIFS is not set 1124# CONFIG_CIFS is not set
1125# CONFIG_CIFS_DEBUG2 is not set
1085# CONFIG_NCP_FS is not set 1126# CONFIG_NCP_FS is not set
1086# CONFIG_CODA_FS is not set 1127# CONFIG_CODA_FS is not set
1087# CONFIG_AFS_FS is not set 1128# CONFIG_AFS_FS is not set
@@ -1108,6 +1149,7 @@ CONFIG_MSDOS_PARTITION=y
1108# 1149#
1109# CONFIG_PRINTK_TIME is not set 1150# CONFIG_PRINTK_TIME is not set
1110# CONFIG_MAGIC_SYSRQ is not set 1151# CONFIG_MAGIC_SYSRQ is not set
1152# CONFIG_UNUSED_SYMBOLS is not set
1111# CONFIG_DEBUG_KERNEL is not set 1153# CONFIG_DEBUG_KERNEL is not set
1112CONFIG_LOG_BUF_SHIFT=14 1154CONFIG_LOG_BUF_SHIFT=14
1113# CONFIG_DEBUG_FS is not set 1155# CONFIG_DEBUG_FS is not set
@@ -1137,3 +1179,4 @@ CONFIG_CMDLINE="mem=64M console=ttyVR0,115200 ip=any root=/dev/nfs"
1137CONFIG_CRC32=y 1179CONFIG_CRC32=y
1138# CONFIG_LIBCRC32C is not set 1180# CONFIG_LIBCRC32C is not set
1139CONFIG_ZLIB_INFLATE=m 1181CONFIG_ZLIB_INFLATE=m
1182CONFIG_PLIST=y
diff --git a/arch/mips/configs/workpad_defconfig b/arch/mips/configs/workpad_defconfig
index 68af54f746e1..4891d02ef8ca 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Tue Apr 25 00:09:33 2006 4# Thu Jul 6 10:04:21 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45CONFIG_MACH_VR41XX=y 47CONFIG_MACH_VR41XX=y
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -71,6 +74,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
71CONFIG_GENERIC_FIND_NEXT_BIT=y 74CONFIG_GENERIC_FIND_NEXT_BIT=y
72CONFIG_GENERIC_HWEIGHT=y 75CONFIG_GENERIC_HWEIGHT=y
73CONFIG_GENERIC_CALIBRATE_DELAY=y 76CONFIG_GENERIC_CALIBRATE_DELAY=y
77CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
74CONFIG_DMA_NONCOHERENT=y 78CONFIG_DMA_NONCOHERENT=y
75CONFIG_DMA_NEED_PCI_MAP_STATE=y 79CONFIG_DMA_NEED_PCI_MAP_STATE=y
76# CONFIG_CPU_BIG_ENDIAN is not set 80# CONFIG_CPU_BIG_ENDIAN is not set
@@ -115,7 +119,10 @@ CONFIG_PAGE_SIZE_4KB=y
115# CONFIG_PAGE_SIZE_8KB is not set 119# CONFIG_PAGE_SIZE_8KB is not set
116# CONFIG_PAGE_SIZE_16KB is not set 120# CONFIG_PAGE_SIZE_16KB is not set
117# CONFIG_PAGE_SIZE_64KB is not set 121# CONFIG_PAGE_SIZE_64KB is not set
118# CONFIG_MIPS_MT is not set 122CONFIG_MIPS_MT_DISABLED=y
123# CONFIG_MIPS_MT_SMTC is not set
124# CONFIG_MIPS_MT_SMP is not set
125# CONFIG_MIPS_VPE_LOADER is not set
119CONFIG_CPU_HAS_SYNC=y 126CONFIG_CPU_HAS_SYNC=y
120CONFIG_GENERIC_HARDIRQS=y 127CONFIG_GENERIC_HARDIRQS=y
121CONFIG_GENERIC_IRQ_PROBE=y 128CONFIG_GENERIC_IRQ_PROBE=y
@@ -128,6 +135,7 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 135CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 136# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 137CONFIG_SPLIT_PTLOCK_CPUS=4
138# CONFIG_RESOURCES_64BIT is not set
131# CONFIG_HZ_48 is not set 139# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 140# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 141# CONFIG_HZ_128 is not set
@@ -140,6 +148,7 @@ CONFIG_HZ=1000
140CONFIG_PREEMPT_NONE=y 148CONFIG_PREEMPT_NONE=y
141# CONFIG_PREEMPT_VOLUNTARY is not set 149# CONFIG_PREEMPT_VOLUNTARY is not set
142# CONFIG_PREEMPT is not set 150# CONFIG_PREEMPT is not set
151CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
143 152
144# 153#
145# Code maturity level options 154# Code maturity level options
@@ -171,10 +180,12 @@ CONFIG_PRINTK=y
171CONFIG_BUG=y 180CONFIG_BUG=y
172CONFIG_ELF_CORE=y 181CONFIG_ELF_CORE=y
173CONFIG_BASE_FULL=y 182CONFIG_BASE_FULL=y
183CONFIG_RT_MUTEXES=y
174CONFIG_FUTEX=y 184CONFIG_FUTEX=y
175CONFIG_EPOLL=y 185CONFIG_EPOLL=y
176CONFIG_SHMEM=y 186CONFIG_SHMEM=y
177CONFIG_SLAB=y 187CONFIG_SLAB=y
188CONFIG_VM_EVENT_COUNTERS=y
178# CONFIG_TINY_SHMEM is not set 189# CONFIG_TINY_SHMEM is not set
179CONFIG_BASE_SMALL=0 190CONFIG_BASE_SMALL=0
180# CONFIG_SLOB is not set 191# CONFIG_SLOB is not set
@@ -273,6 +284,8 @@ CONFIG_IP_FIB_HASH=y
273# CONFIG_INET_IPCOMP is not set 284# CONFIG_INET_IPCOMP is not set
274# CONFIG_INET_XFRM_TUNNEL is not set 285# CONFIG_INET_XFRM_TUNNEL is not set
275# CONFIG_INET_TUNNEL is not set 286# CONFIG_INET_TUNNEL is not set
287CONFIG_INET_XFRM_MODE_TRANSPORT=m
288CONFIG_INET_XFRM_MODE_TUNNEL=m
276CONFIG_INET_DIAG=y 289CONFIG_INET_DIAG=y
277CONFIG_INET_TCP_DIAG=y 290CONFIG_INET_TCP_DIAG=y
278# CONFIG_TCP_CONG_ADVANCED is not set 291# CONFIG_TCP_CONG_ADVANCED is not set
@@ -280,6 +293,7 @@ CONFIG_TCP_CONG_BIC=y
280# CONFIG_IPV6 is not set 293# CONFIG_IPV6 is not set
281# CONFIG_INET6_XFRM_TUNNEL is not set 294# CONFIG_INET6_XFRM_TUNNEL is not set
282# CONFIG_INET6_TUNNEL is not set 295# CONFIG_INET6_TUNNEL is not set
296CONFIG_NETWORK_SECMARK=y
283# CONFIG_NETFILTER is not set 297# CONFIG_NETFILTER is not set
284 298
285# 299#
@@ -334,6 +348,7 @@ CONFIG_WIRELESS_EXT=y
334CONFIG_STANDALONE=y 348CONFIG_STANDALONE=y
335CONFIG_PREVENT_FIRMWARE_BUILD=y 349CONFIG_PREVENT_FIRMWARE_BUILD=y
336CONFIG_FW_LOADER=y 350CONFIG_FW_LOADER=y
351# CONFIG_SYS_HYPERVISOR is not set
337 352
338# 353#
339# Connector - unified userspace <-> kernelspace linker 354# Connector - unified userspace <-> kernelspace linker
@@ -452,6 +467,8 @@ CONFIG_DAVICOM_PHY=m
452CONFIG_QSEMI_PHY=m 467CONFIG_QSEMI_PHY=m
453CONFIG_LXT_PHY=m 468CONFIG_LXT_PHY=m
454CONFIG_CICADA_PHY=m 469CONFIG_CICADA_PHY=m
470CONFIG_VITESSE_PHY=m
471CONFIG_SMSC_PHY=m
455 472
456# 473#
457# Ethernet (10 or 100Mbit) 474# Ethernet (10 or 100Mbit)
@@ -586,6 +603,7 @@ CONFIG_INPUT=y
586CONFIG_VT=y 603CONFIG_VT=y
587CONFIG_VT_CONSOLE=y 604CONFIG_VT_CONSOLE=y
588CONFIG_HW_CONSOLE=y 605CONFIG_HW_CONSOLE=y
606CONFIG_VT_HW_CONSOLE_BINDING=y
589# CONFIG_SERIAL_NONSTANDARD is not set 607# CONFIG_SERIAL_NONSTANDARD is not set
590 608
591# 609#
@@ -613,6 +631,7 @@ CONFIG_LEGACY_PTY_COUNT=256
613# Watchdog Cards 631# Watchdog Cards
614# 632#
615# CONFIG_WATCHDOG is not set 633# CONFIG_WATCHDOG is not set
634# CONFIG_HW_RANDOM is not set
616# CONFIG_RTC is not set 635# CONFIG_RTC is not set
617# CONFIG_GEN_RTC is not set 636# CONFIG_GEN_RTC is not set
618# CONFIG_DTLK is not set 637# CONFIG_DTLK is not set
@@ -667,6 +686,7 @@ CONFIG_LEGACY_PTY_COUNT=256
667# Multimedia devices 686# Multimedia devices
668# 687#
669# CONFIG_VIDEO_DEV is not set 688# CONFIG_VIDEO_DEV is not set
689CONFIG_VIDEO_V4L2=y
670 690
671# 691#
672# Digital Video Broadcasting Devices 692# Digital Video Broadcasting Devices
@@ -676,6 +696,7 @@ CONFIG_LEGACY_PTY_COUNT=256
676# 696#
677# Graphics support 697# Graphics support
678# 698#
699# CONFIG_FIRMWARE_EDID is not set
679# CONFIG_FB is not set 700# CONFIG_FB is not set
680 701
681# 702#
@@ -738,6 +759,19 @@ CONFIG_DUMMY_CONSOLE=y
738# CONFIG_RTC_CLASS is not set 759# CONFIG_RTC_CLASS is not set
739 760
740# 761#
762# DMA Engine support
763#
764# CONFIG_DMA_ENGINE is not set
765
766#
767# DMA Clients
768#
769
770#
771# DMA Devices
772#
773
774#
741# File systems 775# File systems
742# 776#
743CONFIG_EXT2_FS=y 777CONFIG_EXT2_FS=y
@@ -755,6 +789,7 @@ CONFIG_FS_POSIX_ACL=y
755# CONFIG_MINIX_FS is not set 789# CONFIG_MINIX_FS is not set
756# CONFIG_ROMFS_FS is not set 790# CONFIG_ROMFS_FS is not set
757CONFIG_INOTIFY=y 791CONFIG_INOTIFY=y
792CONFIG_INOTIFY_USER=y
758# CONFIG_QUOTA is not set 793# CONFIG_QUOTA is not set
759CONFIG_DNOTIFY=y 794CONFIG_DNOTIFY=y
760# CONFIG_AUTOFS_FS is not set 795# CONFIG_AUTOFS_FS is not set
@@ -820,6 +855,7 @@ CONFIG_SUNRPC=y
820# CONFIG_RPCSEC_GSS_SPKM3 is not set 855# CONFIG_RPCSEC_GSS_SPKM3 is not set
821# CONFIG_SMB_FS is not set 856# CONFIG_SMB_FS is not set
822# CONFIG_CIFS is not set 857# CONFIG_CIFS is not set
858# CONFIG_CIFS_DEBUG2 is not set
823# CONFIG_NCP_FS is not set 859# CONFIG_NCP_FS is not set
824# CONFIG_CODA_FS is not set 860# CONFIG_CODA_FS is not set
825# CONFIG_AFS_FS is not set 861# CONFIG_AFS_FS is not set
@@ -846,6 +882,7 @@ CONFIG_MSDOS_PARTITION=y
846# 882#
847# CONFIG_PRINTK_TIME is not set 883# CONFIG_PRINTK_TIME is not set
848# CONFIG_MAGIC_SYSRQ is not set 884# CONFIG_MAGIC_SYSRQ is not set
885# CONFIG_UNUSED_SYMBOLS is not set
849# CONFIG_DEBUG_KERNEL is not set 886# CONFIG_DEBUG_KERNEL is not set
850CONFIG_LOG_BUF_SHIFT=14 887CONFIG_LOG_BUF_SHIFT=14
851# CONFIG_DEBUG_FS is not set 888# CONFIG_DEBUG_FS is not set
@@ -874,3 +911,4 @@ CONFIG_CMDLINE="console=ttyVR0,19200 mem=16M"
874# CONFIG_CRC16 is not set 911# CONFIG_CRC16 is not set
875CONFIG_CRC32=y 912CONFIG_CRC32=y
876# CONFIG_LIBCRC32C is not set 913# CONFIG_LIBCRC32C is not set
914CONFIG_PLIST=y
diff --git a/arch/mips/configs/wrppmc_defconfig b/arch/mips/configs/wrppmc_defconfig
index 40572a3c8cac..3e4b16b39827 100644
--- a/arch/mips/configs/wrppmc_defconfig
+++ b/arch/mips/configs/wrppmc_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.16.11 3# Linux kernel version: 2.6.18-rc1
4# Fri May 5 17:11:22 2006 4# Thu Jul 6 10:04:21 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -46,6 +47,7 @@ CONFIG_WR_PPMC=y
46# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
47# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
48# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
49# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
50# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
51# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -63,7 +65,10 @@ CONFIG_WR_PPMC=y
63# CONFIG_TOSHIBA_RBTX4927 is not set 65# CONFIG_TOSHIBA_RBTX4927 is not set
64# CONFIG_TOSHIBA_RBTX4938 is not set 66# CONFIG_TOSHIBA_RBTX4938 is not set
65CONFIG_RWSEM_GENERIC_SPINLOCK=y 67CONFIG_RWSEM_GENERIC_SPINLOCK=y
68CONFIG_GENERIC_FIND_NEXT_BIT=y
69CONFIG_GENERIC_HWEIGHT=y
66CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
67CONFIG_DMA_NONCOHERENT=y 72CONFIG_DMA_NONCOHERENT=y
68CONFIG_DMA_NEED_PCI_MAP_STATE=y 73CONFIG_DMA_NEED_PCI_MAP_STATE=y
69CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
@@ -119,9 +124,11 @@ CONFIG_PAGE_SIZE_4KB=y
119# CONFIG_PAGE_SIZE_16KB is not set 124# CONFIG_PAGE_SIZE_16KB is not set
120# CONFIG_PAGE_SIZE_64KB is not set 125# CONFIG_PAGE_SIZE_64KB is not set
121CONFIG_CPU_HAS_PREFETCH=y 126CONFIG_CPU_HAS_PREFETCH=y
122# CONFIG_MIPS_MT is not set 127CONFIG_MIPS_MT_DISABLED=y
128# CONFIG_MIPS_MT_SMTC is not set
129# CONFIG_MIPS_MT_SMP is not set
130# CONFIG_MIPS_VPE_LOADER is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 131# CONFIG_64BIT_PHYS_ADDR is not set
124# CONFIG_CPU_ADVANCED is not set
125CONFIG_CPU_HAS_LLSC=y 132CONFIG_CPU_HAS_LLSC=y
126CONFIG_CPU_HAS_SYNC=y 133CONFIG_CPU_HAS_SYNC=y
127CONFIG_GENERIC_HARDIRQS=y 134CONFIG_GENERIC_HARDIRQS=y
@@ -136,6 +143,7 @@ CONFIG_FLATMEM=y
136CONFIG_FLAT_NODE_MEM_MAP=y 143CONFIG_FLAT_NODE_MEM_MAP=y
137# CONFIG_SPARSEMEM_STATIC is not set 144# CONFIG_SPARSEMEM_STATIC is not set
138CONFIG_SPLIT_PTLOCK_CPUS=4 145CONFIG_SPLIT_PTLOCK_CPUS=4
146# CONFIG_RESOURCES_64BIT is not set
139# CONFIG_HZ_48 is not set 147# CONFIG_HZ_48 is not set
140# CONFIG_HZ_100 is not set 148# CONFIG_HZ_100 is not set
141# CONFIG_HZ_128 is not set 149# CONFIG_HZ_128 is not set
@@ -148,6 +156,7 @@ CONFIG_HZ=1000
148CONFIG_PREEMPT_NONE=y 156CONFIG_PREEMPT_NONE=y
149# CONFIG_PREEMPT_VOLUNTARY is not set 157# CONFIG_PREEMPT_VOLUNTARY is not set
150# CONFIG_PREEMPT is not set 158# CONFIG_PREEMPT is not set
159CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
151 160
152# 161#
153# Code maturity level options 162# Code maturity level options
@@ -169,6 +178,7 @@ CONFIG_BSD_PROCESS_ACCT=y
169CONFIG_SYSCTL=y 178CONFIG_SYSCTL=y
170# CONFIG_AUDIT is not set 179# CONFIG_AUDIT is not set
171# CONFIG_IKCONFIG is not set 180# CONFIG_IKCONFIG is not set
181# CONFIG_RELAY is not set
172CONFIG_INITRAMFS_SOURCE="" 182CONFIG_INITRAMFS_SOURCE=""
173# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set 183# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
174CONFIG_EMBEDDED=y 184CONFIG_EMBEDDED=y
@@ -179,14 +189,12 @@ CONFIG_PRINTK=y
179CONFIG_BUG=y 189CONFIG_BUG=y
180CONFIG_ELF_CORE=y 190CONFIG_ELF_CORE=y
181CONFIG_BASE_FULL=y 191CONFIG_BASE_FULL=y
192CONFIG_RT_MUTEXES=y
182CONFIG_FUTEX=y 193CONFIG_FUTEX=y
183# CONFIG_EPOLL is not set 194# CONFIG_EPOLL is not set
184CONFIG_SHMEM=y 195CONFIG_SHMEM=y
185CONFIG_CC_ALIGN_FUNCTIONS=0
186CONFIG_CC_ALIGN_LABELS=0
187CONFIG_CC_ALIGN_LOOPS=0
188CONFIG_CC_ALIGN_JUMPS=0
189CONFIG_SLAB=y 196CONFIG_SLAB=y
197CONFIG_VM_EVENT_COUNTERS=y
190# CONFIG_TINY_SHMEM is not set 198# CONFIG_TINY_SHMEM is not set
191CONFIG_BASE_SMALL=0 199CONFIG_BASE_SMALL=0
192# CONFIG_SLOB is not set 200# CONFIG_SLOB is not set
@@ -197,7 +205,6 @@ CONFIG_BASE_SMALL=0
197CONFIG_MODULES=y 205CONFIG_MODULES=y
198CONFIG_MODULE_UNLOAD=y 206CONFIG_MODULE_UNLOAD=y
199# CONFIG_MODULE_FORCE_UNLOAD is not set 207# CONFIG_MODULE_FORCE_UNLOAD is not set
200CONFIG_OBSOLETE_MODPARM=y
201CONFIG_MODVERSIONS=y 208CONFIG_MODVERSIONS=y
202CONFIG_MODULE_SRCVERSION_ALL=y 209CONFIG_MODULE_SRCVERSION_ALL=y
203# CONFIG_KMOD is not set 210# CONFIG_KMOD is not set
@@ -206,6 +213,8 @@ CONFIG_MODULE_SRCVERSION_ALL=y
206# Block layer 213# Block layer
207# 214#
208# CONFIG_LBD is not set 215# CONFIG_LBD is not set
216# CONFIG_BLK_DEV_IO_TRACE is not set
217# CONFIG_LSF is not set
209 218
210# 219#
211# IO Schedulers 220# IO Schedulers
@@ -225,7 +234,6 @@ CONFIG_DEFAULT_IOSCHED="anticipatory"
225# 234#
226CONFIG_HW_HAS_PCI=y 235CONFIG_HW_HAS_PCI=y
227CONFIG_PCI=y 236CONFIG_PCI=y
228CONFIG_PCI_LEGACY_PROC=y
229CONFIG_MMU=y 237CONFIG_MMU=y
230 238
231# 239#
@@ -260,6 +268,8 @@ CONFIG_NET=y
260CONFIG_PACKET=y 268CONFIG_PACKET=y
261CONFIG_PACKET_MMAP=y 269CONFIG_PACKET_MMAP=y
262CONFIG_UNIX=y 270CONFIG_UNIX=y
271CONFIG_XFRM=y
272# CONFIG_XFRM_USER is not set
263# CONFIG_NET_KEY is not set 273# CONFIG_NET_KEY is not set
264CONFIG_INET=y 274CONFIG_INET=y
265CONFIG_IP_MULTICAST=y 275CONFIG_IP_MULTICAST=y
@@ -279,12 +289,18 @@ CONFIG_ARPD=y
279# CONFIG_INET_AH is not set 289# CONFIG_INET_AH is not set
280# CONFIG_INET_ESP is not set 290# CONFIG_INET_ESP is not set
281# CONFIG_INET_IPCOMP is not set 291# CONFIG_INET_IPCOMP is not set
292# CONFIG_INET_XFRM_TUNNEL is not set
282# CONFIG_INET_TUNNEL is not set 293# CONFIG_INET_TUNNEL is not set
294CONFIG_INET_XFRM_MODE_TRANSPORT=m
295CONFIG_INET_XFRM_MODE_TUNNEL=m
283CONFIG_INET_DIAG=y 296CONFIG_INET_DIAG=y
284CONFIG_INET_TCP_DIAG=y 297CONFIG_INET_TCP_DIAG=y
285# CONFIG_TCP_CONG_ADVANCED is not set 298# CONFIG_TCP_CONG_ADVANCED is not set
286CONFIG_TCP_CONG_BIC=y 299CONFIG_TCP_CONG_BIC=y
287# CONFIG_IPV6 is not set 300# CONFIG_IPV6 is not set
301# CONFIG_INET6_XFRM_TUNNEL is not set
302# CONFIG_INET6_TUNNEL is not set
303CONFIG_NETWORK_SECMARK=y
288# CONFIG_NETFILTER is not set 304# CONFIG_NETFILTER is not set
289 305
290# 306#
@@ -338,6 +354,7 @@ CONFIG_TCP_CONG_BIC=y
338CONFIG_STANDALONE=y 354CONFIG_STANDALONE=y
339CONFIG_PREVENT_FIRMWARE_BUILD=y 355CONFIG_PREVENT_FIRMWARE_BUILD=y
340# CONFIG_FW_LOADER is not set 356# CONFIG_FW_LOADER is not set
357# CONFIG_SYS_HYPERVISOR is not set
341 358
342# 359#
343# Connector - unified userspace <-> kernelspace linker 360# Connector - unified userspace <-> kernelspace linker
@@ -434,6 +451,8 @@ CONFIG_PHYLIB=y
434# CONFIG_QSEMI_PHY is not set 451# CONFIG_QSEMI_PHY is not set
435# CONFIG_LXT_PHY is not set 452# CONFIG_LXT_PHY is not set
436# CONFIG_CICADA_PHY is not set 453# CONFIG_CICADA_PHY is not set
454CONFIG_VITESSE_PHY=m
455CONFIG_SMSC_PHY=m
437 456
438# 457#
439# Ethernet (10 or 100Mbit) 458# Ethernet (10 or 100Mbit)
@@ -496,6 +515,7 @@ CONFIG_E100=y
496# CONFIG_CHELSIO_T1 is not set 515# CONFIG_CHELSIO_T1 is not set
497# CONFIG_IXGB is not set 516# CONFIG_IXGB is not set
498# CONFIG_S2IO is not set 517# CONFIG_S2IO is not set
518# CONFIG_MYRI10GE is not set
499 519
500# 520#
501# Token Ring devices 521# Token Ring devices
@@ -552,6 +572,7 @@ CONFIG_E100=y
552# 572#
553CONFIG_SERIAL_8250=y 573CONFIG_SERIAL_8250=y
554CONFIG_SERIAL_8250_CONSOLE=y 574CONFIG_SERIAL_8250_CONSOLE=y
575CONFIG_SERIAL_8250_PCI=y
555CONFIG_SERIAL_8250_NR_UARTS=1 576CONFIG_SERIAL_8250_NR_UARTS=1
556CONFIG_SERIAL_8250_RUNTIME_UARTS=1 577CONFIG_SERIAL_8250_RUNTIME_UARTS=1
557# CONFIG_SERIAL_8250_EXTENDED is not set 578# CONFIG_SERIAL_8250_EXTENDED is not set
@@ -575,6 +596,7 @@ CONFIG_LEGACY_PTY_COUNT=256
575# Watchdog Cards 596# Watchdog Cards
576# 597#
577# CONFIG_WATCHDOG is not set 598# CONFIG_WATCHDOG is not set
599# CONFIG_HW_RANDOM is not set
578CONFIG_RTC=y 600CONFIG_RTC=y
579# CONFIG_DTLK is not set 601# CONFIG_DTLK is not set
580# CONFIG_R3964 is not set 602# CONFIG_R3964 is not set
@@ -606,13 +628,13 @@ CONFIG_RTC=y
606# 628#
607# Dallas's 1-wire bus 629# Dallas's 1-wire bus
608# 630#
609# CONFIG_W1 is not set
610 631
611# 632#
612# Hardware Monitoring support 633# Hardware Monitoring support
613# 634#
614CONFIG_HWMON=y 635CONFIG_HWMON=y
615# CONFIG_HWMON_VID is not set 636# CONFIG_HWMON_VID is not set
637# CONFIG_SENSORS_ABITUGURU is not set
616# CONFIG_SENSORS_F71805F is not set 638# CONFIG_SENSORS_F71805F is not set
617# CONFIG_HWMON_DEBUG_CHIP is not set 639# CONFIG_HWMON_DEBUG_CHIP is not set
618 640
@@ -621,13 +643,10 @@ CONFIG_HWMON=y
621# 643#
622 644
623# 645#
624# Multimedia Capabilities Port drivers
625#
626
627#
628# Multimedia devices 646# Multimedia devices
629# 647#
630# CONFIG_VIDEO_DEV is not set 648# CONFIG_VIDEO_DEV is not set
649CONFIG_VIDEO_V4L2=y
631 650
632# 651#
633# Digital Video Broadcasting Devices 652# Digital Video Broadcasting Devices
@@ -637,6 +656,7 @@ CONFIG_HWMON=y
637# 656#
638# Graphics support 657# Graphics support
639# 658#
659# CONFIG_FIRMWARE_EDID is not set
640# CONFIG_FB is not set 660# CONFIG_FB is not set
641 661
642# 662#
@@ -649,6 +669,7 @@ CONFIG_HWMON=y
649# 669#
650CONFIG_USB_ARCH_HAS_HCD=y 670CONFIG_USB_ARCH_HAS_HCD=y
651CONFIG_USB_ARCH_HAS_OHCI=y 671CONFIG_USB_ARCH_HAS_OHCI=y
672CONFIG_USB_ARCH_HAS_EHCI=y
652# CONFIG_USB is not set 673# CONFIG_USB is not set
653 674
654# 675#
@@ -666,6 +687,19 @@ CONFIG_USB_ARCH_HAS_OHCI=y
666# CONFIG_MMC is not set 687# CONFIG_MMC is not set
667 688
668# 689#
690# LED devices
691#
692# CONFIG_NEW_LEDS is not set
693
694#
695# LED drivers
696#
697
698#
699# LED Triggers
700#
701
702#
669# InfiniBand support 703# InfiniBand support
670# 704#
671# CONFIG_INFINIBAND is not set 705# CONFIG_INFINIBAND is not set
@@ -675,6 +709,24 @@ CONFIG_USB_ARCH_HAS_OHCI=y
675# 709#
676 710
677# 711#
712# Real Time Clock
713#
714# CONFIG_RTC_CLASS is not set
715
716#
717# DMA Engine support
718#
719# CONFIG_DMA_ENGINE is not set
720
721#
722# DMA Clients
723#
724
725#
726# DMA Devices
727#
728
729#
678# File systems 730# File systems
679# 731#
680# CONFIG_EXT2_FS is not set 732# CONFIG_EXT2_FS is not set
@@ -687,6 +739,7 @@ CONFIG_USB_ARCH_HAS_OHCI=y
687# CONFIG_MINIX_FS is not set 739# CONFIG_MINIX_FS is not set
688# CONFIG_ROMFS_FS is not set 740# CONFIG_ROMFS_FS is not set
689CONFIG_INOTIFY=y 741CONFIG_INOTIFY=y
742CONFIG_INOTIFY_USER=y
690# CONFIG_QUOTA is not set 743# CONFIG_QUOTA is not set
691CONFIG_DNOTIFY=y 744CONFIG_DNOTIFY=y
692# CONFIG_AUTOFS_FS is not set 745# CONFIG_AUTOFS_FS is not set
@@ -715,7 +768,6 @@ CONFIG_SYSFS=y
715CONFIG_TMPFS=y 768CONFIG_TMPFS=y
716# CONFIG_HUGETLB_PAGE is not set 769# CONFIG_HUGETLB_PAGE is not set
717CONFIG_RAMFS=y 770CONFIG_RAMFS=y
718# CONFIG_RELAYFS_FS is not set
719# CONFIG_CONFIGFS_FS is not set 771# CONFIG_CONFIGFS_FS is not set
720 772
721# 773#
@@ -753,6 +805,7 @@ CONFIG_SUNRPC=y
753# CONFIG_RPCSEC_GSS_SPKM3 is not set 805# CONFIG_RPCSEC_GSS_SPKM3 is not set
754# CONFIG_SMB_FS is not set 806# CONFIG_SMB_FS is not set
755# CONFIG_CIFS is not set 807# CONFIG_CIFS is not set
808# CONFIG_CIFS_DEBUG2 is not set
756# CONFIG_NCP_FS is not set 809# CONFIG_NCP_FS is not set
757# CONFIG_CODA_FS is not set 810# CONFIG_CODA_FS is not set
758# CONFIG_AFS_FS is not set 811# CONFIG_AFS_FS is not set
@@ -779,8 +832,10 @@ CONFIG_MSDOS_PARTITION=y
779# 832#
780# CONFIG_PRINTK_TIME is not set 833# CONFIG_PRINTK_TIME is not set
781# CONFIG_MAGIC_SYSRQ is not set 834# CONFIG_MAGIC_SYSRQ is not set
835# CONFIG_UNUSED_SYMBOLS is not set
782# CONFIG_DEBUG_KERNEL is not set 836# CONFIG_DEBUG_KERNEL is not set
783CONFIG_LOG_BUF_SHIFT=14 837CONFIG_LOG_BUF_SHIFT=14
838# CONFIG_DEBUG_FS is not set
784CONFIG_CROSSCOMPILE=y 839CONFIG_CROSSCOMPILE=y
785CONFIG_CMDLINE="console=ttyS0,115200n8" 840CONFIG_CMDLINE="console=ttyS0,115200n8"
786 841
@@ -806,3 +861,4 @@ CONFIG_CRC_CCITT=y
806CONFIG_CRC16=y 861CONFIG_CRC16=y
807CONFIG_CRC32=y 862CONFIG_CRC32=y
808CONFIG_LIBCRC32C=y 863CONFIG_LIBCRC32C=y
864CONFIG_PLIST=y
diff --git a/arch/mips/configs/yosemite_defconfig b/arch/mips/configs/yosemite_defconfig
index 7ece2c008e9b..3a68d8a25b66 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:51:20 2006 4# Thu Jul 6 10:04:21 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46CONFIG_PMC_YOSEMITE=y 48CONFIG_PMC_YOSEMITE=y
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48# CONFIG_SGI_IP22 is not set 51# CONFIG_SGI_IP22 is not set
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -66,6 +69,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
66CONFIG_GENERIC_FIND_NEXT_BIT=y 69CONFIG_GENERIC_FIND_NEXT_BIT=y
67CONFIG_GENERIC_HWEIGHT=y 70CONFIG_GENERIC_HWEIGHT=y
68CONFIG_GENERIC_CALIBRATE_DELAY=y 71CONFIG_GENERIC_CALIBRATE_DELAY=y
72CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
69CONFIG_DMA_COHERENT=y 73CONFIG_DMA_COHERENT=y
70CONFIG_CPU_BIG_ENDIAN=y 74CONFIG_CPU_BIG_ENDIAN=y
71# CONFIG_CPU_LITTLE_ENDIAN is not set 75# CONFIG_CPU_LITTLE_ENDIAN is not set
@@ -114,12 +118,16 @@ CONFIG_PAGE_SIZE_4KB=y
114# CONFIG_PAGE_SIZE_16KB is not set 118# CONFIG_PAGE_SIZE_16KB is not set
115# CONFIG_PAGE_SIZE_64KB is not set 119# CONFIG_PAGE_SIZE_64KB is not set
116CONFIG_CPU_HAS_PREFETCH=y 120CONFIG_CPU_HAS_PREFETCH=y
117# CONFIG_MIPS_MT is not set 121CONFIG_MIPS_MT_DISABLED=y
122# CONFIG_MIPS_MT_SMTC is not set
123# CONFIG_MIPS_MT_SMP is not set
124# CONFIG_MIPS_VPE_LOADER is not set
118# CONFIG_64BIT_PHYS_ADDR is not set 125# CONFIG_64BIT_PHYS_ADDR is not set
119CONFIG_CPU_HAS_LLSC=y 126CONFIG_CPU_HAS_LLSC=y
120CONFIG_CPU_HAS_SYNC=y 127CONFIG_CPU_HAS_SYNC=y
121CONFIG_GENERIC_HARDIRQS=y 128CONFIG_GENERIC_HARDIRQS=y
122CONFIG_GENERIC_IRQ_PROBE=y 129CONFIG_GENERIC_IRQ_PROBE=y
130CONFIG_IRQ_PER_CPU=y
123CONFIG_HIGHMEM=y 131CONFIG_HIGHMEM=y
124CONFIG_CPU_SUPPORTS_HIGHMEM=y 132CONFIG_CPU_SUPPORTS_HIGHMEM=y
125CONFIG_SYS_SUPPORTS_HIGHMEM=y 133CONFIG_SYS_SUPPORTS_HIGHMEM=y
@@ -128,6 +136,10 @@ CONFIG_FLATMEM=y
128CONFIG_FLAT_NODE_MEM_MAP=y 136CONFIG_FLAT_NODE_MEM_MAP=y
129# CONFIG_SPARSEMEM_STATIC is not set 137# CONFIG_SPARSEMEM_STATIC is not set
130CONFIG_SPLIT_PTLOCK_CPUS=4 138CONFIG_SPLIT_PTLOCK_CPUS=4
139# CONFIG_RESOURCES_64BIT is not set
140CONFIG_SMP=y
141CONFIG_SYS_SUPPORTS_SMP=y
142CONFIG_NR_CPUS=2
131# CONFIG_HZ_48 is not set 143# CONFIG_HZ_48 is not set
132# CONFIG_HZ_100 is not set 144# CONFIG_HZ_100 is not set
133# CONFIG_HZ_128 is not set 145# CONFIG_HZ_128 is not set
@@ -137,12 +149,11 @@ CONFIG_HZ_1000=y
137# CONFIG_HZ_1024 is not set 149# CONFIG_HZ_1024 is not set
138CONFIG_SYS_SUPPORTS_ARBIT_HZ=y 150CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
139CONFIG_HZ=1000 151CONFIG_HZ=1000
140CONFIG_SMP=y
141CONFIG_NR_CPUS=2
142CONFIG_PREEMPT_NONE=y 152CONFIG_PREEMPT_NONE=y
143# CONFIG_PREEMPT_VOLUNTARY is not set 153# CONFIG_PREEMPT_VOLUNTARY is not set
144# CONFIG_PREEMPT is not set 154# CONFIG_PREEMPT is not set
145CONFIG_PREEMPT_BKL=y 155CONFIG_PREEMPT_BKL=y
156CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
146 157
147# 158#
148# Code maturity level options 159# Code maturity level options
@@ -175,10 +186,12 @@ CONFIG_PRINTK=y
175CONFIG_BUG=y 186CONFIG_BUG=y
176CONFIG_ELF_CORE=y 187CONFIG_ELF_CORE=y
177CONFIG_BASE_FULL=y 188CONFIG_BASE_FULL=y
189CONFIG_RT_MUTEXES=y
178CONFIG_FUTEX=y 190CONFIG_FUTEX=y
179CONFIG_EPOLL=y 191CONFIG_EPOLL=y
180CONFIG_SHMEM=y 192CONFIG_SHMEM=y
181CONFIG_SLAB=y 193CONFIG_SLAB=y
194CONFIG_VM_EVENT_COUNTERS=y
182# CONFIG_TINY_SHMEM is not set 195# CONFIG_TINY_SHMEM is not set
183CONFIG_BASE_SMALL=0 196CONFIG_BASE_SMALL=0
184# CONFIG_SLOB is not set 197# CONFIG_SLOB is not set
@@ -268,6 +281,8 @@ CONFIG_IP_PNP_BOOTP=y
268# CONFIG_INET_IPCOMP is not set 281# CONFIG_INET_IPCOMP is not set
269# CONFIG_INET_XFRM_TUNNEL is not set 282# CONFIG_INET_XFRM_TUNNEL is not set
270# CONFIG_INET_TUNNEL is not set 283# CONFIG_INET_TUNNEL is not set
284CONFIG_INET_XFRM_MODE_TRANSPORT=m
285CONFIG_INET_XFRM_MODE_TUNNEL=m
271CONFIG_INET_DIAG=y 286CONFIG_INET_DIAG=y
272CONFIG_INET_TCP_DIAG=y 287CONFIG_INET_TCP_DIAG=y
273# CONFIG_TCP_CONG_ADVANCED is not set 288# CONFIG_TCP_CONG_ADVANCED is not set
@@ -280,7 +295,10 @@ CONFIG_INET6_ESP=m
280CONFIG_INET6_IPCOMP=m 295CONFIG_INET6_IPCOMP=m
281CONFIG_INET6_XFRM_TUNNEL=m 296CONFIG_INET6_XFRM_TUNNEL=m
282CONFIG_INET6_TUNNEL=m 297CONFIG_INET6_TUNNEL=m
298CONFIG_INET6_XFRM_MODE_TRANSPORT=m
299CONFIG_INET6_XFRM_MODE_TUNNEL=m
283CONFIG_IPV6_TUNNEL=m 300CONFIG_IPV6_TUNNEL=m
301CONFIG_NETWORK_SECMARK=y
284# CONFIG_NETFILTER is not set 302# CONFIG_NETFILTER is not set
285# CONFIG_BRIDGE is not set 303# CONFIG_BRIDGE is not set
286# CONFIG_VLAN_8021Q is not set 304# CONFIG_VLAN_8021Q is not set
@@ -317,6 +335,7 @@ CONFIG_STANDALONE=y
317CONFIG_PREVENT_FIRMWARE_BUILD=y 335CONFIG_PREVENT_FIRMWARE_BUILD=y
318CONFIG_FW_LOADER=m 336CONFIG_FW_LOADER=m
319# CONFIG_DEBUG_DRIVER is not set 337# CONFIG_DEBUG_DRIVER is not set
338# CONFIG_SYS_HYPERVISOR is not set
320 339
321# 340#
322# Connector - unified userspace <-> kernelspace linker 341# Connector - unified userspace <-> kernelspace linker
@@ -411,6 +430,8 @@ CONFIG_DAVICOM_PHY=m
411CONFIG_QSEMI_PHY=m 430CONFIG_QSEMI_PHY=m
412CONFIG_LXT_PHY=m 431CONFIG_LXT_PHY=m
413CONFIG_CICADA_PHY=m 432CONFIG_CICADA_PHY=m
433CONFIG_VITESSE_PHY=m
434CONFIG_SMSC_PHY=m
414 435
415# 436#
416# Ethernet (10 or 100Mbit) 437# Ethernet (10 or 100Mbit)
@@ -452,6 +473,7 @@ CONFIG_TITAN_GE=y
452# CONFIG_CHELSIO_T1 is not set 473# CONFIG_CHELSIO_T1 is not set
453# CONFIG_IXGB is not set 474# CONFIG_IXGB is not set
454# CONFIG_S2IO is not set 475# CONFIG_S2IO is not set
476# CONFIG_MYRI10GE is not set
455 477
456# 478#
457# Token Ring devices 479# Token Ring devices
@@ -529,6 +551,7 @@ CONFIG_LEGACY_PTY_COUNT=256
529# Watchdog Cards 551# Watchdog Cards
530# 552#
531# CONFIG_WATCHDOG is not set 553# CONFIG_WATCHDOG is not set
554# CONFIG_HW_RANDOM is not set
532# CONFIG_RTC is not set 555# CONFIG_RTC is not set
533CONFIG_GEN_RTC=y 556CONFIG_GEN_RTC=y
534CONFIG_GEN_RTC_X=y 557CONFIG_GEN_RTC_X=y
@@ -576,6 +599,7 @@ CONFIG_GEN_RTC_X=y
576# Multimedia devices 599# Multimedia devices
577# 600#
578# CONFIG_VIDEO_DEV is not set 601# CONFIG_VIDEO_DEV is not set
602CONFIG_VIDEO_V4L2=y
579 603
580# 604#
581# Digital Video Broadcasting Devices 605# Digital Video Broadcasting Devices
@@ -585,6 +609,7 @@ CONFIG_GEN_RTC_X=y
585# 609#
586# Graphics support 610# Graphics support
587# 611#
612# CONFIG_FIRMWARE_EDID is not set
588# CONFIG_FB is not set 613# CONFIG_FB is not set
589 614
590# 615#
@@ -641,6 +666,19 @@ CONFIG_USB_ARCH_HAS_EHCI=y
641# 666#
642 667
643# 668#
669# DMA Engine support
670#
671# CONFIG_DMA_ENGINE is not set
672
673#
674# DMA Clients
675#
676
677#
678# DMA Devices
679#
680
681#
644# File systems 682# File systems
645# 683#
646# CONFIG_EXT2_FS is not set 684# CONFIG_EXT2_FS is not set
@@ -652,6 +690,7 @@ CONFIG_USB_ARCH_HAS_EHCI=y
652# CONFIG_MINIX_FS is not set 690# CONFIG_MINIX_FS is not set
653# CONFIG_ROMFS_FS is not set 691# CONFIG_ROMFS_FS is not set
654CONFIG_INOTIFY=y 692CONFIG_INOTIFY=y
693CONFIG_INOTIFY_USER=y
655# CONFIG_QUOTA is not set 694# CONFIG_QUOTA is not set
656CONFIG_DNOTIFY=y 695CONFIG_DNOTIFY=y
657# CONFIG_AUTOFS_FS is not set 696# CONFIG_AUTOFS_FS is not set
@@ -704,6 +743,7 @@ CONFIG_NFS_COMMON=y
704CONFIG_SUNRPC=y 743CONFIG_SUNRPC=y
705# CONFIG_SMB_FS is not set 744# CONFIG_SMB_FS is not set
706# CONFIG_CIFS is not set 745# CONFIG_CIFS is not set
746# CONFIG_CIFS_DEBUG2 is not set
707# CONFIG_NCP_FS is not set 747# CONFIG_NCP_FS is not set
708# CONFIG_CODA_FS is not set 748# CONFIG_CODA_FS is not set
709 749
@@ -723,14 +763,19 @@ CONFIG_MSDOS_PARTITION=y
723# 763#
724# CONFIG_PRINTK_TIME is not set 764# CONFIG_PRINTK_TIME is not set
725# CONFIG_MAGIC_SYSRQ is not set 765# CONFIG_MAGIC_SYSRQ is not set
766# CONFIG_UNUSED_SYMBOLS is not set
726CONFIG_DEBUG_KERNEL=y 767CONFIG_DEBUG_KERNEL=y
727CONFIG_LOG_BUF_SHIFT=14 768CONFIG_LOG_BUF_SHIFT=14
728CONFIG_DETECT_SOFTLOCKUP=y 769CONFIG_DETECT_SOFTLOCKUP=y
729# CONFIG_SCHEDSTATS is not set 770# CONFIG_SCHEDSTATS is not set
730# CONFIG_DEBUG_SLAB is not set 771# CONFIG_DEBUG_SLAB is not set
731CONFIG_DEBUG_MUTEXES=y 772# CONFIG_DEBUG_RT_MUTEXES is not set
773# CONFIG_RT_MUTEX_TESTER is not set
732# CONFIG_DEBUG_SPINLOCK is not set 774# CONFIG_DEBUG_SPINLOCK is not set
775CONFIG_DEBUG_MUTEXES=y
776# CONFIG_DEBUG_RWSEMS is not set
733# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 777# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
778# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
734# CONFIG_DEBUG_KOBJECT is not set 779# CONFIG_DEBUG_KOBJECT is not set
735# CONFIG_DEBUG_HIGHMEM is not set 780# CONFIG_DEBUG_HIGHMEM is not set
736# CONFIG_DEBUG_INFO is not set 781# CONFIG_DEBUG_INFO is not set
@@ -793,3 +838,4 @@ CONFIG_CRC32=m
793CONFIG_LIBCRC32C=m 838CONFIG_LIBCRC32C=m
794CONFIG_ZLIB_INFLATE=m 839CONFIG_ZLIB_INFLATE=m
795CONFIG_ZLIB_DEFLATE=m 840CONFIG_ZLIB_DEFLATE=m
841CONFIG_PLIST=y
diff --git a/arch/mips/ddb5xxx/ddb5477/irq.c b/arch/mips/ddb5xxx/ddb5477/irq.c
index 22fb94b7c440..513fc6722d84 100644
--- a/arch/mips/ddb5xxx/ddb5477/irq.c
+++ b/arch/mips/ddb5xxx/ddb5477/irq.c
@@ -74,7 +74,6 @@ set_pci_int_attr(u32 pci, u32 intn, u32 active, u32 trigger)
74 74
75extern void vrc5477_irq_init(u32 base); 75extern void vrc5477_irq_init(u32 base);
76extern void mips_cpu_irq_init(u32 base); 76extern void mips_cpu_irq_init(u32 base);
77extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
78static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL }; 77static struct irqaction irq_cascade = { no_action, 0, CPU_MASK_NONE, "cascade", NULL, NULL };
79 78
80void __init arch_init_irq(void) 79void __init arch_init_irq(void)
diff --git a/arch/mips/ddb5xxx/ddb5477/irq_5477.c b/arch/mips/ddb5xxx/ddb5477/irq_5477.c
index 63c3d6534b3a..ba52705a2738 100644
--- a/arch/mips/ddb5xxx/ddb5477/irq_5477.c
+++ b/arch/mips/ddb5xxx/ddb5477/irq_5477.c
@@ -89,7 +89,7 @@ vrc5477_irq_end(unsigned int irq)
89 ll_vrc5477_irq_enable( irq - vrc5477_irq_base); 89 ll_vrc5477_irq_enable( irq - vrc5477_irq_base);
90} 90}
91 91
92hw_irq_controller vrc5477_irq_controller = { 92struct irq_chip vrc5477_irq_controller = {
93 .typename = "vrc5477_irq", 93 .typename = "vrc5477_irq",
94 .startup = vrc5477_irq_startup, 94 .startup = vrc5477_irq_startup,
95 .shutdown = vrc5477_irq_shutdown, 95 .shutdown = vrc5477_irq_shutdown,
diff --git a/arch/mips/ddb5xxx/ddb5477/setup.c b/arch/mips/ddb5xxx/ddb5477/setup.c
index 47ba0b6f210f..f0cc0e8a8afa 100644
--- a/arch/mips/ddb5xxx/ddb5477/setup.c
+++ b/arch/mips/ddb5xxx/ddb5477/setup.c
@@ -19,6 +19,7 @@
19#include <linux/sched.h> 19#include <linux/sched.h>
20#include <linux/pci.h> 20#include <linux/pci.h>
21#include <linux/ide.h> 21#include <linux/ide.h>
22#include <linux/irq.h>
22#include <linux/fs.h> 23#include <linux/fs.h>
23#include <linux/ioport.h> 24#include <linux/ioport.h>
24#include <linux/param.h> /* for HZ */ 25#include <linux/param.h> /* for HZ */
@@ -146,9 +147,7 @@ static void __init ddb_time_init(void)
146 mips_hpt_frequency = bus_frequency*(i+4)/4; 147 mips_hpt_frequency = bus_frequency*(i+4)/4;
147} 148}
148 149
149extern int setup_irq(unsigned int irq, struct irqaction *irqaction); 150void __init plat_timer_setup(struct irqaction *irq)
150
151static void __init ddb_timer_setup(struct irqaction *irq)
152{ 151{
153#if defined(USE_CPU_COUNTER_TIMER) 152#if defined(USE_CPU_COUNTER_TIMER)
154 153
@@ -178,7 +177,6 @@ void __init plat_mem_setup(void)
178 set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE)); 177 set_io_port_base(KSEG1ADDR(DDB_PCI_IO_BASE));
179 178
180 board_time_init = ddb_time_init; 179 board_time_init = ddb_time_init;
181 board_timer_setup = ddb_timer_setup;
182 180
183 _machine_restart = ddb_machine_restart; 181 _machine_restart = ddb_machine_restart;
184 _machine_halt = ddb_machine_halt; 182 _machine_halt = ddb_machine_halt;
diff --git a/arch/mips/dec/ioasic-irq.c b/arch/mips/dec/ioasic-irq.c
index da2dbb42f913..41cd2a96148b 100644
--- a/arch/mips/dec/ioasic-irq.c
+++ b/arch/mips/dec/ioasic-irq.c
@@ -93,7 +93,7 @@ static inline void end_ioasic_irq(unsigned int irq)
93 enable_ioasic_irq(irq); 93 enable_ioasic_irq(irq);
94} 94}
95 95
96static struct hw_interrupt_type ioasic_irq_type = { 96static struct irq_chip ioasic_irq_type = {
97 .typename = "IO-ASIC", 97 .typename = "IO-ASIC",
98 .startup = startup_ioasic_irq, 98 .startup = startup_ioasic_irq,
99 .shutdown = shutdown_ioasic_irq, 99 .shutdown = shutdown_ioasic_irq,
@@ -121,7 +121,7 @@ static inline void end_ioasic_dma_irq(unsigned int irq)
121 end_ioasic_irq(irq); 121 end_ioasic_irq(irq);
122} 122}
123 123
124static struct hw_interrupt_type ioasic_dma_irq_type = { 124static struct irq_chip ioasic_dma_irq_type = {
125 .typename = "IO-ASIC-DMA", 125 .typename = "IO-ASIC-DMA",
126 .startup = startup_ioasic_dma_irq, 126 .startup = startup_ioasic_dma_irq,
127 .shutdown = shutdown_ioasic_dma_irq, 127 .shutdown = shutdown_ioasic_dma_irq,
diff --git a/arch/mips/dec/kn02-irq.c b/arch/mips/dec/kn02-irq.c
index d44c00d9e80f..04a367a60a57 100644
--- a/arch/mips/dec/kn02-irq.c
+++ b/arch/mips/dec/kn02-irq.c
@@ -94,7 +94,7 @@ static void end_kn02_irq(unsigned int irq)
94 enable_kn02_irq(irq); 94 enable_kn02_irq(irq);
95} 95}
96 96
97static struct hw_interrupt_type kn02_irq_type = { 97static struct irq_chip kn02_irq_type = {
98 .typename = "KN02-CSR", 98 .typename = "KN02-CSR",
99 .startup = startup_kn02_irq, 99 .startup = startup_kn02_irq,
100 .shutdown = shutdown_kn02_irq, 100 .shutdown = shutdown_kn02_irq,
diff --git a/arch/mips/dec/setup.c b/arch/mips/dec/setup.c
index 2684f121784b..d43241c2f541 100644
--- a/arch/mips/dec/setup.c
+++ b/arch/mips/dec/setup.c
@@ -145,13 +145,11 @@ static void __init dec_be_init(void)
145 145
146 146
147extern void dec_time_init(void); 147extern void dec_time_init(void);
148extern void dec_timer_setup(struct irqaction *);
149 148
150void __init plat_mem_setup(void) 149void __init plat_mem_setup(void)
151{ 150{
152 board_be_init = dec_be_init; 151 board_be_init = dec_be_init;
153 board_time_init = dec_time_init; 152 board_time_init = dec_time_init;
154 board_timer_setup = dec_timer_setup;
155 153
156 wbflush_setup(); 154 wbflush_setup();
157 155
diff --git a/arch/mips/dec/time.c b/arch/mips/dec/time.c
index 76e4d09ff4d2..57294740c2dd 100644
--- a/arch/mips/dec/time.c
+++ b/arch/mips/dec/time.c
@@ -186,7 +186,7 @@ void __init dec_time_init(void)
186 186
187EXPORT_SYMBOL(do_settimeofday); 187EXPORT_SYMBOL(do_settimeofday);
188 188
189void __init dec_timer_setup(struct irqaction *irq) 189void __init plat_timer_setup(struct irqaction *irq)
190{ 190{
191 setup_irq(dec_interrupt[DEC_IRQ_RTC], irq); 191 setup_irq(dec_interrupt[DEC_IRQ_RTC], irq);
192 192
diff --git a/arch/mips/defconfig b/arch/mips/defconfig
index 879ba1ad99ca..fff6fcc96212 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.17-rc2 3# Linux kernel version: 2.6.18-rc1
4# Mon Apr 24 14:50:54 2006 4# Thu Jul 6 09:49:33 2006
5# 5#
6CONFIG_MIPS=y 6CONFIG_MIPS=y
7 7
@@ -21,6 +21,7 @@ CONFIG_MIPS=y
21# CONFIG_MIPS_DB1550 is not set 21# CONFIG_MIPS_DB1550 is not set
22# CONFIG_MIPS_DB1200 is not set 22# CONFIG_MIPS_DB1200 is not set
23# CONFIG_MIPS_MIRAGE is not set 23# CONFIG_MIPS_MIRAGE is not set
24# CONFIG_BASLER_EXCITE is not set
24# CONFIG_MIPS_COBALT is not set 25# CONFIG_MIPS_COBALT is not set
25# CONFIG_MACH_DECSTATION is not set 26# CONFIG_MACH_DECSTATION is not set
26# CONFIG_MIPS_EV64120 is not set 27# CONFIG_MIPS_EV64120 is not set
@@ -32,6 +33,7 @@ CONFIG_MIPS=y
32# CONFIG_MIPS_ATLAS is not set 33# CONFIG_MIPS_ATLAS is not set
33# CONFIG_MIPS_MALTA is not set 34# CONFIG_MIPS_MALTA is not set
34# CONFIG_MIPS_SEAD is not set 35# CONFIG_MIPS_SEAD is not set
36# CONFIG_WR_PPMC is not set
35# CONFIG_MIPS_SIM is not set 37# CONFIG_MIPS_SIM is not set
36# CONFIG_MOMENCO_JAGUAR_ATX is not set 38# CONFIG_MOMENCO_JAGUAR_ATX is not set
37# CONFIG_MOMENCO_OCELOT is not set 39# CONFIG_MOMENCO_OCELOT is not set
@@ -45,6 +47,7 @@ CONFIG_MIPS=y
45# CONFIG_MACH_VR41XX is not set 47# CONFIG_MACH_VR41XX is not set
46# CONFIG_PMC_YOSEMITE is not set 48# CONFIG_PMC_YOSEMITE is not set
47# CONFIG_QEMU is not set 49# CONFIG_QEMU is not set
50# CONFIG_MARKEINS is not set
48CONFIG_SGI_IP22=y 51CONFIG_SGI_IP22=y
49# CONFIG_SGI_IP27 is not set 52# CONFIG_SGI_IP27 is not set
50# CONFIG_SGI_IP32 is not set 53# CONFIG_SGI_IP32 is not set
@@ -65,6 +68,7 @@ CONFIG_RWSEM_GENERIC_SPINLOCK=y
65CONFIG_GENERIC_FIND_NEXT_BIT=y 68CONFIG_GENERIC_FIND_NEXT_BIT=y
66CONFIG_GENERIC_HWEIGHT=y 69CONFIG_GENERIC_HWEIGHT=y
67CONFIG_GENERIC_CALIBRATE_DELAY=y 70CONFIG_GENERIC_CALIBRATE_DELAY=y
71CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
68CONFIG_ARC=y 72CONFIG_ARC=y
69CONFIG_DMA_NONCOHERENT=y 73CONFIG_DMA_NONCOHERENT=y
70CONFIG_DMA_NEED_PCI_MAP_STATE=y 74CONFIG_DMA_NEED_PCI_MAP_STATE=y
@@ -119,7 +123,10 @@ CONFIG_PAGE_SIZE_4KB=y
119# CONFIG_PAGE_SIZE_64KB is not set 123# CONFIG_PAGE_SIZE_64KB is not set
120CONFIG_BOARD_SCACHE=y 124CONFIG_BOARD_SCACHE=y
121CONFIG_IP22_CPU_SCACHE=y 125CONFIG_IP22_CPU_SCACHE=y
122# CONFIG_MIPS_MT is not set 126CONFIG_MIPS_MT_DISABLED=y
127# CONFIG_MIPS_MT_SMTC is not set
128# CONFIG_MIPS_MT_SMP is not set
129# CONFIG_MIPS_VPE_LOADER is not set
123# CONFIG_64BIT_PHYS_ADDR is not set 130# CONFIG_64BIT_PHYS_ADDR is not set
124CONFIG_CPU_HAS_LLSC=y 131CONFIG_CPU_HAS_LLSC=y
125CONFIG_CPU_HAS_SYNC=y 132CONFIG_CPU_HAS_SYNC=y
@@ -134,6 +141,7 @@ CONFIG_FLATMEM=y
134CONFIG_FLAT_NODE_MEM_MAP=y 141CONFIG_FLAT_NODE_MEM_MAP=y
135# CONFIG_SPARSEMEM_STATIC is not set 142# CONFIG_SPARSEMEM_STATIC is not set
136CONFIG_SPLIT_PTLOCK_CPUS=4 143CONFIG_SPLIT_PTLOCK_CPUS=4
144# CONFIG_RESOURCES_64BIT is not set
137# CONFIG_HZ_48 is not set 145# CONFIG_HZ_48 is not set
138# CONFIG_HZ_100 is not set 146# CONFIG_HZ_100 is not set
139# CONFIG_HZ_128 is not set 147# CONFIG_HZ_128 is not set
@@ -146,6 +154,7 @@ CONFIG_HZ=1000
146# CONFIG_PREEMPT_NONE is not set 154# CONFIG_PREEMPT_NONE is not set
147CONFIG_PREEMPT_VOLUNTARY=y 155CONFIG_PREEMPT_VOLUNTARY=y
148# CONFIG_PREEMPT is not set 156# CONFIG_PREEMPT is not set
157CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
149 158
150# 159#
151# Code maturity level options 160# Code maturity level options
@@ -178,10 +187,12 @@ CONFIG_PRINTK=y
178CONFIG_BUG=y 187CONFIG_BUG=y
179CONFIG_ELF_CORE=y 188CONFIG_ELF_CORE=y
180CONFIG_BASE_FULL=y 189CONFIG_BASE_FULL=y
190CONFIG_RT_MUTEXES=y
181CONFIG_FUTEX=y 191CONFIG_FUTEX=y
182CONFIG_EPOLL=y 192CONFIG_EPOLL=y
183CONFIG_SHMEM=y 193CONFIG_SHMEM=y
184CONFIG_SLAB=y 194CONFIG_SLAB=y
195CONFIG_VM_EVENT_COUNTERS=y
185# CONFIG_TINY_SHMEM is not set 196# CONFIG_TINY_SHMEM is not set
186CONFIG_BASE_SMALL=0 197CONFIG_BASE_SMALL=0
187# CONFIG_SLOB is not set 198# CONFIG_SLOB is not set
@@ -272,6 +283,8 @@ CONFIG_INET_ESP=m
272CONFIG_INET_IPCOMP=m 283CONFIG_INET_IPCOMP=m
273CONFIG_INET_XFRM_TUNNEL=m 284CONFIG_INET_XFRM_TUNNEL=m
274CONFIG_INET_TUNNEL=m 285CONFIG_INET_TUNNEL=m
286CONFIG_INET_XFRM_MODE_TRANSPORT=m
287CONFIG_INET_XFRM_MODE_TUNNEL=m
275CONFIG_INET_DIAG=y 288CONFIG_INET_DIAG=y
276CONFIG_INET_TCP_DIAG=y 289CONFIG_INET_TCP_DIAG=y
277# CONFIG_TCP_CONG_ADVANCED is not set 290# CONFIG_TCP_CONG_ADVANCED is not set
@@ -319,7 +332,10 @@ CONFIG_INET6_ESP=m
319CONFIG_INET6_IPCOMP=m 332CONFIG_INET6_IPCOMP=m
320CONFIG_INET6_XFRM_TUNNEL=m 333CONFIG_INET6_XFRM_TUNNEL=m
321CONFIG_INET6_TUNNEL=m 334CONFIG_INET6_TUNNEL=m
335CONFIG_INET6_XFRM_MODE_TRANSPORT=m
336CONFIG_INET6_XFRM_MODE_TUNNEL=m
322CONFIG_IPV6_TUNNEL=m 337CONFIG_IPV6_TUNNEL=m
338CONFIG_NETWORK_SECMARK=y
323CONFIG_NETFILTER=y 339CONFIG_NETFILTER=y
324# CONFIG_NETFILTER_DEBUG is not set 340# CONFIG_NETFILTER_DEBUG is not set
325 341
@@ -335,6 +351,8 @@ CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
335CONFIG_NETFILTER_XT_TARGET_MARK=m 351CONFIG_NETFILTER_XT_TARGET_MARK=m
336CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m 352CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
337CONFIG_NETFILTER_XT_TARGET_NOTRACK=m 353CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
354CONFIG_NETFILTER_XT_TARGET_SECMARK=m
355CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
338CONFIG_NETFILTER_XT_MATCH_COMMENT=m 356CONFIG_NETFILTER_XT_MATCH_COMMENT=m
339CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m 357CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
340CONFIG_NETFILTER_XT_MATCH_CONNMARK=m 358CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
@@ -349,9 +367,11 @@ CONFIG_NETFILTER_XT_MATCH_MARK=m
349CONFIG_NETFILTER_XT_MATCH_POLICY=m 367CONFIG_NETFILTER_XT_MATCH_POLICY=m
350CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m 368CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
351CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m 369CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
370CONFIG_NETFILTER_XT_MATCH_QUOTA=m
352CONFIG_NETFILTER_XT_MATCH_REALM=m 371CONFIG_NETFILTER_XT_MATCH_REALM=m
353CONFIG_NETFILTER_XT_MATCH_SCTP=m 372CONFIG_NETFILTER_XT_MATCH_SCTP=m
354CONFIG_NETFILTER_XT_MATCH_STATE=m 373CONFIG_NETFILTER_XT_MATCH_STATE=m
374CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
355CONFIG_NETFILTER_XT_MATCH_STRING=m 375CONFIG_NETFILTER_XT_MATCH_STRING=m
356CONFIG_NETFILTER_XT_MATCH_TCPMSS=m 376CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
357 377
@@ -361,6 +381,7 @@ CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
361CONFIG_IP_NF_CONNTRACK=m 381CONFIG_IP_NF_CONNTRACK=m
362CONFIG_IP_NF_CT_ACCT=y 382CONFIG_IP_NF_CT_ACCT=y
363CONFIG_IP_NF_CONNTRACK_MARK=y 383CONFIG_IP_NF_CONNTRACK_MARK=y
384CONFIG_IP_NF_CONNTRACK_SECMARK=y
364CONFIG_IP_NF_CONNTRACK_EVENTS=y 385CONFIG_IP_NF_CONNTRACK_EVENTS=y
365CONFIG_IP_NF_CONNTRACK_NETLINK=m 386CONFIG_IP_NF_CONNTRACK_NETLINK=m
366# CONFIG_IP_NF_CT_PROTO_SCTP is not set 387# CONFIG_IP_NF_CT_PROTO_SCTP is not set
@@ -371,6 +392,7 @@ CONFIG_IP_NF_TFTP=m
371CONFIG_IP_NF_AMANDA=m 392CONFIG_IP_NF_AMANDA=m
372CONFIG_IP_NF_PPTP=m 393CONFIG_IP_NF_PPTP=m
373CONFIG_IP_NF_H323=m 394CONFIG_IP_NF_H323=m
395CONFIG_IP_NF_SIP=m
374CONFIG_IP_NF_QUEUE=m 396CONFIG_IP_NF_QUEUE=m
375CONFIG_IP_NF_IPTABLES=m 397CONFIG_IP_NF_IPTABLES=m
376CONFIG_IP_NF_MATCH_IPRANGE=m 398CONFIG_IP_NF_MATCH_IPRANGE=m
@@ -401,6 +423,7 @@ CONFIG_IP_NF_NAT_TFTP=m
401CONFIG_IP_NF_NAT_AMANDA=m 423CONFIG_IP_NF_NAT_AMANDA=m
402CONFIG_IP_NF_NAT_PPTP=m 424CONFIG_IP_NF_NAT_PPTP=m
403CONFIG_IP_NF_NAT_H323=m 425CONFIG_IP_NF_NAT_H323=m
426CONFIG_IP_NF_NAT_SIP=m
404CONFIG_IP_NF_MANGLE=m 427CONFIG_IP_NF_MANGLE=m
405CONFIG_IP_NF_TARGET_TOS=m 428CONFIG_IP_NF_TARGET_TOS=m
406CONFIG_IP_NF_TARGET_ECN=m 429CONFIG_IP_NF_TARGET_ECN=m
@@ -533,6 +556,7 @@ CONFIG_WIRELESS_EXT=y
533CONFIG_STANDALONE=y 556CONFIG_STANDALONE=y
534CONFIG_PREVENT_FIRMWARE_BUILD=y 557CONFIG_PREVENT_FIRMWARE_BUILD=y
535# CONFIG_FW_LOADER is not set 558# CONFIG_FW_LOADER is not set
559# CONFIG_SYS_HYPERVISOR is not set
536 560
537# 561#
538# Connector - unified userspace <-> kernelspace linker 562# Connector - unified userspace <-> kernelspace linker
@@ -652,6 +676,8 @@ CONFIG_DAVICOM_PHY=m
652CONFIG_QSEMI_PHY=m 676CONFIG_QSEMI_PHY=m
653CONFIG_LXT_PHY=m 677CONFIG_LXT_PHY=m
654CONFIG_CICADA_PHY=m 678CONFIG_CICADA_PHY=m
679# CONFIG_VITESSE_PHY is not set
680# CONFIG_SMSC_PHY is not set
655 681
656# 682#
657# Ethernet (10 or 100Mbit) 683# Ethernet (10 or 100Mbit)
@@ -749,6 +775,7 @@ CONFIG_SERIO_RAW=m
749CONFIG_VT=y 775CONFIG_VT=y
750CONFIG_VT_CONSOLE=y 776CONFIG_VT_CONSOLE=y
751CONFIG_HW_CONSOLE=y 777CONFIG_HW_CONSOLE=y
778CONFIG_VT_HW_CONSOLE_BINDING=y
752# CONFIG_SERIAL_NONSTANDARD is not set 779# CONFIG_SERIAL_NONSTANDARD is not set
753 780
754# 781#
@@ -781,6 +808,7 @@ CONFIG_WATCHDOG=y
781# 808#
782# CONFIG_SOFT_WATCHDOG is not set 809# CONFIG_SOFT_WATCHDOG is not set
783CONFIG_INDYDOG=m 810CONFIG_INDYDOG=m
811# CONFIG_HW_RANDOM is not set
784# CONFIG_RTC is not set 812# CONFIG_RTC is not set
785CONFIG_SGI_DS1286=m 813CONFIG_SGI_DS1286=m
786# CONFIG_GEN_RTC is not set 814# CONFIG_GEN_RTC is not set
@@ -829,6 +857,7 @@ CONFIG_MAX_RAW_DEVS=256
829# Multimedia devices 857# Multimedia devices
830# 858#
831# CONFIG_VIDEO_DEV is not set 859# CONFIG_VIDEO_DEV is not set
860CONFIG_VIDEO_V4L2=y
832 861
833# 862#
834# Digital Video Broadcasting Devices 863# Digital Video Broadcasting Devices
@@ -838,6 +867,7 @@ CONFIG_MAX_RAW_DEVS=256
838# 867#
839# Graphics support 868# Graphics support
840# 869#
870CONFIG_FIRMWARE_EDID=y
841# CONFIG_FB is not set 871# CONFIG_FB is not set
842 872
843# 873#
@@ -910,6 +940,19 @@ CONFIG_LOGO_SGI_CLUT224=y
910# CONFIG_RTC_CLASS is not set 940# CONFIG_RTC_CLASS is not set
911 941
912# 942#
943# DMA Engine support
944#
945# CONFIG_DMA_ENGINE is not set
946
947#
948# DMA Clients
949#
950
951#
952# DMA Devices
953#
954
955#
913# File systems 956# File systems
914# 957#
915CONFIG_EXT2_FS=m 958CONFIG_EXT2_FS=m
@@ -926,7 +969,6 @@ CONFIG_FS_MBCACHE=y
926# CONFIG_JFS_FS is not set 969# CONFIG_JFS_FS is not set
927CONFIG_FS_POSIX_ACL=y 970CONFIG_FS_POSIX_ACL=y
928CONFIG_XFS_FS=m 971CONFIG_XFS_FS=m
929CONFIG_XFS_EXPORT=y
930CONFIG_XFS_QUOTA=y 972CONFIG_XFS_QUOTA=y
931CONFIG_XFS_SECURITY=y 973CONFIG_XFS_SECURITY=y
932# CONFIG_XFS_POSIX_ACL is not set 974# CONFIG_XFS_POSIX_ACL is not set
@@ -935,6 +977,7 @@ CONFIG_XFS_SECURITY=y
935CONFIG_MINIX_FS=m 977CONFIG_MINIX_FS=m
936# CONFIG_ROMFS_FS is not set 978# CONFIG_ROMFS_FS is not set
937CONFIG_INOTIFY=y 979CONFIG_INOTIFY=y
980CONFIG_INOTIFY_USER=y
938CONFIG_QUOTA=y 981CONFIG_QUOTA=y
939# CONFIG_QFMT_V1 is not set 982# CONFIG_QFMT_V1 is not set
940CONFIG_QFMT_V2=m 983CONFIG_QFMT_V2=m
@@ -991,6 +1034,8 @@ CONFIG_EFS_FS=m
991# CONFIG_QNX4FS_FS is not set 1034# CONFIG_QNX4FS_FS is not set
992# CONFIG_SYSV_FS is not set 1035# CONFIG_SYSV_FS is not set
993CONFIG_UFS_FS=m 1036CONFIG_UFS_FS=m
1037# CONFIG_UFS_FS_WRITE is not set
1038# CONFIG_UFS_DEBUG is not set
994 1039
995# 1040#
996# Network File Systems 1041# Network File Systems
@@ -1020,7 +1065,9 @@ CONFIG_SMB_NLS_DEFAULT=y
1020CONFIG_SMB_NLS_REMOTE="cp437" 1065CONFIG_SMB_NLS_REMOTE="cp437"
1021CONFIG_CIFS=m 1066CONFIG_CIFS=m
1022# CONFIG_CIFS_STATS is not set 1067# CONFIG_CIFS_STATS is not set
1068# CONFIG_CIFS_WEAK_PW_HASH is not set
1023# CONFIG_CIFS_XATTR is not set 1069# CONFIG_CIFS_XATTR is not set
1070# CONFIG_CIFS_DEBUG2 is not set
1024# CONFIG_CIFS_EXPERIMENTAL is not set 1071# CONFIG_CIFS_EXPERIMENTAL is not set
1025# CONFIG_NCP_FS is not set 1072# CONFIG_NCP_FS is not set
1026CONFIG_CODA_FS=m 1073CONFIG_CODA_FS=m
@@ -1103,6 +1150,7 @@ CONFIG_NLS_UTF8=m
1103# 1150#
1104# CONFIG_PRINTK_TIME is not set 1151# CONFIG_PRINTK_TIME is not set
1105# CONFIG_MAGIC_SYSRQ is not set 1152# CONFIG_MAGIC_SYSRQ is not set
1153# CONFIG_UNUSED_SYMBOLS is not set
1106# CONFIG_DEBUG_KERNEL is not set 1154# CONFIG_DEBUG_KERNEL is not set
1107CONFIG_LOG_BUF_SHIFT=14 1155CONFIG_LOG_BUF_SHIFT=14
1108# CONFIG_DEBUG_FS is not set 1156# CONFIG_DEBUG_FS is not set
@@ -1162,3 +1210,4 @@ CONFIG_TEXTSEARCH=y
1162CONFIG_TEXTSEARCH_KMP=m 1210CONFIG_TEXTSEARCH_KMP=m
1163CONFIG_TEXTSEARCH_BM=m 1211CONFIG_TEXTSEARCH_BM=m
1164CONFIG_TEXTSEARCH_FSM=m 1212CONFIG_TEXTSEARCH_FSM=m
1213CONFIG_PLIST=y
diff --git a/arch/mips/emma2rh/common/irq.c b/arch/mips/emma2rh/common/irq.c
index b075281e50e9..3af57693c84c 100644
--- a/arch/mips/emma2rh/common/irq.c
+++ b/arch/mips/emma2rh/common/irq.c
@@ -22,7 +22,6 @@
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25#include <linux/config.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/interrupt.h> 26#include <linux/interrupt.h>
28#include <linux/irq.h> 27#include <linux/irq.h>
diff --git a/arch/mips/emma2rh/common/irq_emma2rh.c b/arch/mips/emma2rh/common/irq_emma2rh.c
index b886aa94ca90..7c930860c921 100644
--- a/arch/mips/emma2rh/common/irq_emma2rh.c
+++ b/arch/mips/emma2rh/common/irq_emma2rh.c
@@ -78,7 +78,7 @@ static void emma2rh_irq_end(unsigned int irq)
78 ll_emma2rh_irq_enable(irq - emma2rh_irq_base); 78 ll_emma2rh_irq_enable(irq - emma2rh_irq_base);
79} 79}
80 80
81hw_irq_controller emma2rh_irq_controller = { 81struct irq_chip emma2rh_irq_controller = {
82 .typename = "emma2rh_irq", 82 .typename = "emma2rh_irq",
83 .startup = emma2rh_irq_startup, 83 .startup = emma2rh_irq_startup,
84 .shutdown = emma2rh_irq_shutdown, 84 .shutdown = emma2rh_irq_shutdown,
diff --git a/arch/mips/emma2rh/common/prom.c b/arch/mips/emma2rh/common/prom.c
index 8bba0b02a204..7433bd8e5562 100644
--- a/arch/mips/emma2rh/common/prom.c
+++ b/arch/mips/emma2rh/common/prom.c
@@ -22,7 +22,6 @@
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25#include <linux/config.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/mm.h> 26#include <linux/mm.h>
28#include <linux/sched.h> 27#include <linux/sched.h>
diff --git a/arch/mips/emma2rh/markeins/irq.c b/arch/mips/emma2rh/markeins/irq.c
index 76dc3faeaf4e..2a736be42c8c 100644
--- a/arch/mips/emma2rh/markeins/irq.c
+++ b/arch/mips/emma2rh/markeins/irq.c
@@ -22,7 +22,6 @@
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25#include <linux/config.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/interrupt.h> 26#include <linux/interrupt.h>
28#include <linux/irq.h> 27#include <linux/irq.h>
diff --git a/arch/mips/emma2rh/markeins/irq_markeins.c b/arch/mips/emma2rh/markeins/irq_markeins.c
index 1783fdab6459..f23ae9fcffa0 100644
--- a/arch/mips/emma2rh/markeins/irq_markeins.c
+++ b/arch/mips/emma2rh/markeins/irq_markeins.c
@@ -67,7 +67,7 @@ static void emma2rh_sw_irq_end(unsigned int irq)
67 ll_emma2rh_sw_irq_enable(irq - emma2rh_sw_irq_base); 67 ll_emma2rh_sw_irq_enable(irq - emma2rh_sw_irq_base);
68} 68}
69 69
70hw_irq_controller emma2rh_sw_irq_controller = { 70struct irq_chip emma2rh_sw_irq_controller = {
71 .typename = "emma2rh_sw_irq", 71 .typename = "emma2rh_sw_irq",
72 .startup = emma2rh_sw_irq_startup, 72 .startup = emma2rh_sw_irq_startup,
73 .shutdown = emma2rh_sw_irq_shutdown, 73 .shutdown = emma2rh_sw_irq_shutdown,
@@ -147,7 +147,7 @@ static void emma2rh_gpio_irq_end(unsigned int irq)
147 ll_emma2rh_gpio_irq_enable(irq - emma2rh_gpio_irq_base); 147 ll_emma2rh_gpio_irq_enable(irq - emma2rh_gpio_irq_base);
148} 148}
149 149
150hw_irq_controller emma2rh_gpio_irq_controller = { 150struct irq_chip emma2rh_gpio_irq_controller = {
151 .typename = "emma2rh_gpio_irq", 151 .typename = "emma2rh_gpio_irq",
152 .startup = emma2rh_gpio_irq_startup, 152 .startup = emma2rh_gpio_irq_startup,
153 .shutdown = emma2rh_gpio_irq_shutdown, 153 .shutdown = emma2rh_gpio_irq_shutdown,
diff --git a/arch/mips/emma2rh/markeins/platform.c b/arch/mips/emma2rh/markeins/platform.c
index 6c1eeae1a898..15cc61df3622 100644
--- a/arch/mips/emma2rh/markeins/platform.c
+++ b/arch/mips/emma2rh/markeins/platform.c
@@ -20,7 +20,6 @@
20 * along with this program; if not, write to the Free Software 20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */ 22 */
23#include <linux/config.h>
24#include <linux/init.h> 23#include <linux/init.h>
25#include <linux/kernel.h> 24#include <linux/kernel.h>
26#include <linux/types.h> 25#include <linux/types.h>
diff --git a/arch/mips/emma2rh/markeins/setup.c b/arch/mips/emma2rh/markeins/setup.c
index 7d98fdbf8390..b29a44739230 100644
--- a/arch/mips/emma2rh/markeins/setup.c
+++ b/arch/mips/emma2rh/markeins/setup.c
@@ -22,7 +22,6 @@
22 * along with this program; if not, write to the Free Software 22 * along with this program; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25#include <linux/config.h>
26#include <linux/init.h> 25#include <linux/init.h>
27#include <linux/kernel.h> 26#include <linux/kernel.h>
28#include <linux/types.h> 27#include <linux/types.h>
@@ -105,7 +104,7 @@ static void __init emma2rh_time_init(void)
105 mips_hpt_frequency = (bus_frequency * (4 + reg)) / 4 / 2; 104 mips_hpt_frequency = (bus_frequency * (4 + reg)) / 4 / 2;
106} 105}
107 106
108static void __init emma2rh_timer_setup(struct irqaction *irq) 107void __init plat_timer_setup(struct irqaction *irq)
109{ 108{
110 /* we are using the cpu counter for timer interrupts */ 109 /* we are using the cpu counter for timer interrupts */
111 setup_irq(CPU_IRQ_BASE + 7, irq); 110 setup_irq(CPU_IRQ_BASE + 7, irq);
@@ -150,7 +149,6 @@ void __init plat_mem_setup(void)
150 set_io_port_base(KSEG1ADDR(EMMA2RH_PCI_IO_BASE)); 149 set_io_port_base(KSEG1ADDR(EMMA2RH_PCI_IO_BASE));
151 150
152 board_time_init = emma2rh_time_init; 151 board_time_init = emma2rh_time_init;
153 board_timer_setup = emma2rh_timer_setup;
154 152
155 _machine_restart = markeins_machine_restart; 153 _machine_restart = markeins_machine_restart;
156 _machine_halt = markeins_machine_halt; 154 _machine_halt = markeins_machine_halt;
diff --git a/arch/mips/gt64120/ev64120/irq.c b/arch/mips/gt64120/ev64120/irq.c
index f489a8067a93..5d939ac58f3f 100644
--- a/arch/mips/gt64120/ev64120/irq.c
+++ b/arch/mips/gt64120/ev64120/irq.c
@@ -104,7 +104,7 @@ static void end_ev64120_irq(unsigned int irq)
104 enable_ev64120_irq(irq); 104 enable_ev64120_irq(irq);
105} 105}
106 106
107static struct hw_interrupt_type ev64120_irq_type = { 107static struct irq_chip ev64120_irq_type = {
108 .typename = "EV64120", 108 .typename = "EV64120",
109 .startup = startup_ev64120_irq, 109 .startup = startup_ev64120_irq,
110 .shutdown = shutdown_ev64120_irq, 110 .shutdown = shutdown_ev64120_irq,
@@ -138,7 +138,7 @@ void __init arch_init_irq(void)
138 /* Let's initialize our IRQ descriptors */ 138 /* Let's initialize our IRQ descriptors */
139 for (i = 0; i < NR_IRQS; i++) { 139 for (i = 0; i < NR_IRQS; i++) {
140 irq_desc[i].status = 0; 140 irq_desc[i].status = 0;
141 irq_desc[i].chip = &no_irq_type; 141 irq_desc[i].chip = &no_irq_chip;
142 irq_desc[i].action = NULL; 142 irq_desc[i].action = NULL;
143 irq_desc[i].depth = 0; 143 irq_desc[i].depth = 0;
144 spin_lock_init(&irq_desc[i].lock); 144 spin_lock_init(&irq_desc[i].lock);
diff --git a/arch/mips/gt64120/wrppmc/setup.c b/arch/mips/gt64120/wrppmc/setup.c
index 2db6375ef29e..429afc400cb4 100644
--- a/arch/mips/gt64120/wrppmc/setup.c
+++ b/arch/mips/gt64120/wrppmc/setup.c
@@ -8,7 +8,6 @@
8 * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org) 8 * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org)
9 * Copyright (C) 2006, Wind River System Inc. Rongkai.zhan <rongkai.zhan@windriver.com> 9 * Copyright (C) 2006, Wind River System Inc. Rongkai.zhan <rongkai.zhan@windriver.com>
10 */ 10 */
11#include <linux/config.h>
12#include <linux/init.h> 11#include <linux/init.h>
13#include <linux/string.h> 12#include <linux/string.h>
14#include <linux/kernel.h> 13#include <linux/kernel.h>
@@ -128,7 +127,6 @@ static void wrppmc_setup_serial(void)
128void __init plat_mem_setup(void) 127void __init plat_mem_setup(void)
129{ 128{
130 extern void wrppmc_time_init(void); 129 extern void wrppmc_time_init(void);
131 extern void wrppmc_timer_setup(struct irqaction *);
132 extern void wrppmc_machine_restart(char *command); 130 extern void wrppmc_machine_restart(char *command);
133 extern void wrppmc_machine_halt(void); 131 extern void wrppmc_machine_halt(void);
134 extern void wrppmc_machine_power_off(void); 132 extern void wrppmc_machine_power_off(void);
@@ -139,7 +137,6 @@ void __init plat_mem_setup(void)
139 137
140 /* Use MIPS Count/Compare Timer */ 138 /* Use MIPS Count/Compare Timer */
141 board_time_init = wrppmc_time_init; 139 board_time_init = wrppmc_time_init;
142 board_timer_setup = wrppmc_timer_setup;
143 140
144 /* This makes the operations of 'in/out[bwl]' to the 141 /* This makes the operations of 'in/out[bwl]' to the
145 * physical address ( < KSEG0) can work via KSEG1 142 * physical address ( < KSEG0) can work via KSEG1
diff --git a/arch/mips/gt64120/wrppmc/time.c b/arch/mips/gt64120/wrppmc/time.c
index 6c24a82df0dd..5b440859bcee 100644
--- a/arch/mips/gt64120/wrppmc/time.c
+++ b/arch/mips/gt64120/wrppmc/time.c
@@ -10,7 +10,6 @@
10 * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org) 10 * Copyright (C) 1996, 1997, 2004 by Ralf Baechle (ralf@linux-mips.org)
11 * Copyright (C) 2006, Wind River System Inc. 11 * Copyright (C) 2006, Wind River System Inc.
12 */ 12 */
13#include <linux/config.h>
14#include <linux/init.h> 13#include <linux/init.h>
15#include <linux/string.h> 14#include <linux/string.h>
16#include <linux/kernel.h> 15#include <linux/kernel.h>
@@ -27,7 +26,7 @@
27 26
28#define WRPPMC_CPU_CLK_FREQ 40000000 /* 40MHZ */ 27#define WRPPMC_CPU_CLK_FREQ 40000000 /* 40MHZ */
29 28
30void __init wrppmc_timer_setup(struct irqaction *irq) 29void __init plat_timer_setup(struct irqaction *irq)
31{ 30{
32 /* Install ISR for timer interrupt */ 31 /* Install ISR for timer interrupt */
33 setup_irq(WRPPMC_MIPS_TIMER_IRQ, irq); 32 setup_irq(WRPPMC_MIPS_TIMER_IRQ, irq);
diff --git a/arch/mips/ite-boards/generic/irq.c b/arch/mips/ite-boards/generic/irq.c
index a6749c56fe38..cb59ca4f76f0 100644
--- a/arch/mips/ite-boards/generic/irq.c
+++ b/arch/mips/ite-boards/generic/irq.c
@@ -133,7 +133,7 @@ static void end_ite_irq(unsigned int irq)
133 enable_it8172_irq(irq); 133 enable_it8172_irq(irq);
134} 134}
135 135
136static struct hw_interrupt_type it8172_irq_type = { 136static struct irq_chip it8172_irq_type = {
137 .typename = "ITE8172", 137 .typename = "ITE8172",
138 .startup = startup_ite_irq, 138 .startup = startup_ite_irq,
139 .shutdown = shutdown_ite_irq, 139 .shutdown = shutdown_ite_irq,
@@ -153,7 +153,7 @@ static void ack_none(unsigned int irq) { }
153#define shutdown_none disable_none 153#define shutdown_none disable_none
154#define end_none enable_none 154#define end_none enable_none
155 155
156static struct hw_interrupt_type cp0_irq_type = { 156static struct irq_chip cp0_irq_type = {
157 .typename = "CP0 Count", 157 .typename = "CP0 Count",
158 .startup = startup_none, 158 .startup = startup_none,
159 .shutdown = shutdown_none, 159 .shutdown = shutdown_none,
diff --git a/arch/mips/ite-boards/generic/it8172_setup.c b/arch/mips/ite-boards/generic/it8172_setup.c
index a4615a5904aa..07faf3cacff2 100644
--- a/arch/mips/ite-boards/generic/it8172_setup.c
+++ b/arch/mips/ite-boards/generic/it8172_setup.c
@@ -29,6 +29,7 @@
29#include <linux/init.h> 29#include <linux/init.h>
30#include <linux/sched.h> 30#include <linux/sched.h>
31#include <linux/ioport.h> 31#include <linux/ioport.h>
32#include <linux/irq.h>
32#include <linux/serial_reg.h> 33#include <linux/serial_reg.h>
33#include <linux/major.h> 34#include <linux/major.h>
34#include <linux/kdev_t.h> 35#include <linux/kdev_t.h>
@@ -58,10 +59,7 @@ extern void it8172_restart(char *command);
58extern void it8172_halt(void); 59extern void it8172_halt(void);
59extern void it8172_power_off(void); 60extern void it8172_power_off(void);
60 61
61extern void (*board_time_init)(void);
62extern void (*board_timer_setup)(struct irqaction *irq);
63extern void it8172_time_init(void); 62extern void it8172_time_init(void);
64extern void it8172_timer_setup(struct irqaction *irq);
65 63
66#ifdef CONFIG_IT8172_REVC 64#ifdef CONFIG_IT8172_REVC
67struct { 65struct {
@@ -169,7 +167,6 @@ void __init plat_mem_setup(void)
169 clear_c0_status(ST0_FR); 167 clear_c0_status(ST0_FR);
170 168
171 board_time_init = it8172_time_init; 169 board_time_init = it8172_time_init;
172 board_timer_setup = it8172_timer_setup;
173 170
174 _machine_restart = it8172_restart; 171 _machine_restart = it8172_restart;
175 _machine_halt = it8172_halt; 172 _machine_halt = it8172_halt;
diff --git a/arch/mips/ite-boards/generic/time.c b/arch/mips/ite-boards/generic/time.c
index dee497a91807..3dc55569ff7f 100644
--- a/arch/mips/ite-boards/generic/time.c
+++ b/arch/mips/ite-boards/generic/time.c
@@ -233,7 +233,8 @@ void __init it8172_time_init(void)
233} 233}
234 234
235#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5) 235#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
236void __init it8172_timer_setup(struct irqaction *irq) 236
237void __init plat_timer_setup(struct irqaction *irq)
237{ 238{
238 puts("timer_setup\n"); 239 puts("timer_setup\n");
239 put32(NR_IRQS); 240 put32(NR_IRQS);
diff --git a/arch/mips/jazz/irq.c b/arch/mips/jazz/irq.c
index 478be9858a1e..eef05093deb4 100644
--- a/arch/mips/jazz/irq.c
+++ b/arch/mips/jazz/irq.c
@@ -55,7 +55,7 @@ static void end_r4030_irq(unsigned int irq)
55 enable_r4030_irq(irq); 55 enable_r4030_irq(irq);
56} 56}
57 57
58static struct hw_interrupt_type r4030_irq_type = { 58static struct irq_chip r4030_irq_type = {
59 .typename = "R4030", 59 .typename = "R4030",
60 .startup = startup_r4030_irq, 60 .startup = startup_r4030_irq,
61 .shutdown = shutdown_r4030_irq, 61 .shutdown = shutdown_r4030_irq,
diff --git a/arch/mips/jazz/setup.c b/arch/mips/jazz/setup.c
index 385413e30fdd..487a9ea1ef00 100644
--- a/arch/mips/jazz/setup.c
+++ b/arch/mips/jazz/setup.c
@@ -37,7 +37,7 @@ extern void jazz_machine_restart(char *command);
37extern void jazz_machine_halt(void); 37extern void jazz_machine_halt(void);
38extern void jazz_machine_power_off(void); 38extern void jazz_machine_power_off(void);
39 39
40static void __init jazz_time_init(struct irqaction *irq) 40void __init plat_time_init(struct irqaction *irq)
41{ 41{
42 /* set the clock to 100 Hz */ 42 /* set the clock to 100 Hz */
43 r4030_write_reg32(JAZZ_TIMER_INTERVAL, 9); 43 r4030_write_reg32(JAZZ_TIMER_INTERVAL, 9);
@@ -75,7 +75,6 @@ void __init plat_mem_setup(void)
75 for (i = 0; i < ARRAY_SIZE(jazz_io_resources); i++) 75 for (i = 0; i < ARRAY_SIZE(jazz_io_resources); i++)
76 request_resource(&ioport_resource, jazz_io_resources + i); 76 request_resource(&ioport_resource, jazz_io_resources + i);
77 77
78 board_timer_setup = jazz_time_init;
79 /* The RTC is outside the port address space */ 78 /* The RTC is outside the port address space */
80 79
81 _machine_restart = jazz_machine_restart; 80 _machine_restart = jazz_machine_restart;
diff --git a/arch/mips/jmr3927/rbhma3100/irq.c b/arch/mips/jmr3927/rbhma3100/irq.c
index 9c43702e7a93..722174481467 100644
--- a/arch/mips/jmr3927/rbhma3100/irq.c
+++ b/arch/mips/jmr3927/rbhma3100/irq.c
@@ -416,7 +416,7 @@ void __init arch_init_irq(void)
416 set_c0_status(ST0_IM); /* IE bit is still 0. */ 416 set_c0_status(ST0_IM); /* IE bit is still 0. */
417} 417}
418 418
419static hw_irq_controller jmr3927_irq_controller = { 419static struct irq_chip jmr3927_irq_controller = {
420 .typename = "jmr3927_irq", 420 .typename = "jmr3927_irq",
421 .startup = jmr3927_irq_startup, 421 .startup = jmr3927_irq_startup,
422 .shutdown = jmr3927_irq_shutdown, 422 .shutdown = jmr3927_irq_shutdown,
diff --git a/arch/mips/jmr3927/rbhma3100/setup.c b/arch/mips/jmr3927/rbhma3100/setup.c
index 6d4635d89d94..025434054ed0 100644
--- a/arch/mips/jmr3927/rbhma3100/setup.c
+++ b/arch/mips/jmr3927/rbhma3100/setup.c
@@ -40,6 +40,7 @@
40#include <linux/sched.h> 40#include <linux/sched.h>
41#include <linux/pci.h> 41#include <linux/pci.h>
42#include <linux/ide.h> 42#include <linux/ide.h>
43#include <linux/irq.h>
43#include <linux/ioport.h> 44#include <linux/ioport.h>
44#include <linux/param.h> /* for HZ */ 45#include <linux/param.h> /* for HZ */
45#include <linux/delay.h> 46#include <linux/delay.h>
@@ -183,9 +184,8 @@ static void __init jmr3927_time_init(void)
183} 184}
184 185
185unsigned long jmr3927_do_gettimeoffset(void); 186unsigned long jmr3927_do_gettimeoffset(void);
186extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
187 187
188static void __init jmr3927_timer_setup(struct irqaction *irq) 188void __init plat_timer_setup(struct irqaction *irq)
189{ 189{
190 do_gettimeoffset = jmr3927_do_gettimeoffset; 190 do_gettimeoffset = jmr3927_do_gettimeoffset;
191 191
@@ -244,7 +244,6 @@ void __init plat_mem_setup(void)
244 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO); 244 set_io_port_base(JMR3927_PORT_BASE + JMR3927_PCIIO);
245 245
246 board_time_init = jmr3927_time_init; 246 board_time_init = jmr3927_time_init;
247 board_timer_setup = jmr3927_timer_setup;
248 247
249 _machine_restart = jmr3927_machine_restart; 248 _machine_restart = jmr3927_machine_restart;
250 _machine_halt = jmr3927_machine_halt; 249 _machine_halt = jmr3927_machine_halt;
diff --git a/arch/mips/kernel/apm.c b/arch/mips/kernel/apm.c
index 7bdbcd811b57..528e731049c1 100644
--- a/arch/mips/kernel/apm.c
+++ b/arch/mips/kernel/apm.c
@@ -10,7 +10,6 @@
10 * [This document is available from Microsoft at: 10 * [This document is available from Microsoft at:
11 * http://www.microsoft.com/hwdev/busbios/amp_12.htm] 11 * http://www.microsoft.com/hwdev/busbios/amp_12.htm]
12 */ 12 */
13#include <linux/config.h>
14#include <linux/module.h> 13#include <linux/module.h>
15#include <linux/poll.h> 14#include <linux/poll.h>
16#include <linux/timer.h> 15#include <linux/timer.h>
diff --git a/arch/mips/kernel/cpu-probe.c b/arch/mips/kernel/cpu-probe.c
index ba08f055feb2..aa2caa67299a 100644
--- a/arch/mips/kernel/cpu-probe.c
+++ b/arch/mips/kernel/cpu-probe.c
@@ -459,7 +459,7 @@ static inline unsigned int decode_config0(struct cpuinfo_mips *c)
459 isa = (config0 & MIPS_CONF_AT) >> 13; 459 isa = (config0 & MIPS_CONF_AT) >> 13;
460 switch (isa) { 460 switch (isa) {
461 case 0: 461 case 0:
462 switch ((config0 >> 10) & 7) { 462 switch ((config0 & MIPS_CONF_AR) >> 10) {
463 case 0: 463 case 0:
464 c->isa_level = MIPS_CPU_ISA_M32R1; 464 c->isa_level = MIPS_CPU_ISA_M32R1;
465 break; 465 break;
@@ -471,7 +471,7 @@ static inline unsigned int decode_config0(struct cpuinfo_mips *c)
471 } 471 }
472 break; 472 break;
473 case 2: 473 case 2:
474 switch ((config0 >> 10) & 7) { 474 switch ((config0 & MIPS_CONF_AR) >> 10) {
475 case 0: 475 case 0:
476 c->isa_level = MIPS_CPU_ISA_M64R1; 476 c->isa_level = MIPS_CPU_ISA_M64R1;
477 break; 477 break;
@@ -548,7 +548,7 @@ static inline unsigned int decode_config3(struct cpuinfo_mips *c)
548 return config3 & MIPS_CONF_M; 548 return config3 & MIPS_CONF_M;
549} 549}
550 550
551static inline void decode_configs(struct cpuinfo_mips *c) 551static void __init decode_configs(struct cpuinfo_mips *c)
552{ 552{
553 /* MIPS32 or MIPS64 compliant CPU. */ 553 /* MIPS32 or MIPS64 compliant CPU. */
554 c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER | 554 c->options = MIPS_CPU_4KEX | MIPS_CPU_4K_CACHE | MIPS_CPU_COUNTER |
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S
index 01e7fa86aa43..766655f35250 100644
--- a/arch/mips/kernel/entry.S
+++ b/arch/mips/kernel/entry.S
@@ -113,6 +113,21 @@ FEXPORT(restore_all) # restore full frame
113 RESTORE_AT 113 RESTORE_AT
114 RESTORE_STATIC 114 RESTORE_STATIC
115FEXPORT(restore_partial) # restore partial frame 115FEXPORT(restore_partial) # restore partial frame
116#ifdef CONFIG_TRACE_IRQFLAGS
117 SAVE_STATIC
118 SAVE_AT
119 SAVE_TEMP
120 LONG_L v0, PT_STATUS(sp)
121 and v0, 1
122 beqz v0, 1f
123 jal trace_hardirqs_on
124 b 2f
1251: jal trace_hardirqs_off
1262:
127 RESTORE_TEMP
128 RESTORE_AT
129 RESTORE_STATIC
130#endif
116 RESTORE_SOME 131 RESTORE_SOME
117 RESTORE_SP_AND_RET 132 RESTORE_SP_AND_RET
118 .set at 133 .set at
diff --git a/arch/mips/kernel/gdb-low.S b/arch/mips/kernel/gdb-low.S
index 666bc9014cbd..2c446063636a 100644
--- a/arch/mips/kernel/gdb-low.S
+++ b/arch/mips/kernel/gdb-low.S
@@ -7,6 +7,7 @@
7 7
8#include <asm/asm.h> 8#include <asm/asm.h>
9#include <asm/errno.h> 9#include <asm/errno.h>
10#include <asm/irqflags.h>
10#include <asm/mipsregs.h> 11#include <asm/mipsregs.h>
11#include <asm/regdef.h> 12#include <asm/regdef.h>
12#include <asm/stackframe.h> 13#include <asm/stackframe.h>
@@ -120,6 +121,7 @@
120 LONG_S $31, GDB_FR_REG31(sp) 121 LONG_S $31, GDB_FR_REG31(sp)
121 122
122 CLI /* disable interrupts */ 123 CLI /* disable interrupts */
124 TRACE_IRQS_OFF
123 125
124/* 126/*
125 * Followed by the floating point registers 127 * Followed by the floating point registers
diff --git a/arch/mips/kernel/genex.S b/arch/mips/kernel/genex.S
index 5254a2222d2b..37fda3dcdfc5 100644
--- a/arch/mips/kernel/genex.S
+++ b/arch/mips/kernel/genex.S
@@ -13,6 +13,7 @@
13#include <asm/asm.h> 13#include <asm/asm.h>
14#include <asm/asmmacro.h> 14#include <asm/asmmacro.h>
15#include <asm/cacheops.h> 15#include <asm/cacheops.h>
16#include <asm/irqflags.h>
16#include <asm/regdef.h> 17#include <asm/regdef.h>
17#include <asm/fpregdef.h> 18#include <asm/fpregdef.h>
18#include <asm/mipsregs.h> 19#include <asm/mipsregs.h>
@@ -128,6 +129,7 @@ handle_vcei:
128NESTED(handle_int, PT_SIZE, sp) 129NESTED(handle_int, PT_SIZE, sp)
129 SAVE_ALL 130 SAVE_ALL
130 CLI 131 CLI
132 TRACE_IRQS_OFF
131 133
132 PTR_LA ra, ret_from_irq 134 PTR_LA ra, ret_from_irq
133 move a0, sp 135 move a0, sp
@@ -216,6 +218,7 @@ NESTED(except_vec_vi_handler, 0, sp)
216 _ehb 218 _ehb
217#endif /* CONFIG_MIPS_MT_SMTC */ 219#endif /* CONFIG_MIPS_MT_SMTC */
218 CLI 220 CLI
221 TRACE_IRQS_OFF
219 move a0, sp 222 move a0, sp
220 jalr v0 223 jalr v0
221 j ret_from_irq 224 j ret_from_irq
@@ -288,11 +291,13 @@ NESTED(nmi_handler, PT_SIZE, sp)
288 .endm 291 .endm
289 292
290 .macro __build_clear_sti 293 .macro __build_clear_sti
294 TRACE_IRQS_ON
291 STI 295 STI
292 .endm 296 .endm
293 297
294 .macro __build_clear_cli 298 .macro __build_clear_cli
295 CLI 299 CLI
300 TRACE_IRQS_OFF
296 .endm 301 .endm
297 302
298 .macro __build_clear_fpe 303 .macro __build_clear_fpe
@@ -300,6 +305,7 @@ NESTED(nmi_handler, PT_SIZE, sp)
300 li a2, ~(0x3f << 12) 305 li a2, ~(0x3f << 12)
301 and a2, a1 306 and a2, a1
302 ctc1 a2, fcr31 307 ctc1 a2, fcr31
308 TRACE_IRQS_ON
303 STI 309 STI
304 .endm 310 .endm
305 311
@@ -365,7 +371,7 @@ NESTED(nmi_handler, PT_SIZE, sp)
365 BUILD_HANDLER mdmx mdmx sti silent /* #22 */ 371 BUILD_HANDLER mdmx mdmx sti silent /* #22 */
366 BUILD_HANDLER watch watch sti verbose /* #23 */ 372 BUILD_HANDLER watch watch sti verbose /* #23 */
367 BUILD_HANDLER mcheck mcheck cli verbose /* #24 */ 373 BUILD_HANDLER mcheck mcheck cli verbose /* #24 */
368 BUILD_HANDLER mt mt sti verbose /* #25 */ 374 BUILD_HANDLER mt mt sti silent /* #25 */
369 BUILD_HANDLER dsp dsp sti silent /* #26 */ 375 BUILD_HANDLER dsp dsp sti silent /* #26 */
370 BUILD_HANDLER reserved reserved sti verbose /* others */ 376 BUILD_HANDLER reserved reserved sti verbose /* others */
371 377
diff --git a/arch/mips/kernel/head.S b/arch/mips/kernel/head.S
index 476c1eb33c94..8c6db0fc72f0 100644
--- a/arch/mips/kernel/head.S
+++ b/arch/mips/kernel/head.S
@@ -5,7 +5,7 @@
5 * 5 *
6 * Copyright (C) 1994, 1995 Waldorf Electronics 6 * Copyright (C) 1994, 1995 Waldorf Electronics
7 * Written by Ralf Baechle and Andreas Busse 7 * Written by Ralf Baechle and Andreas Busse
8 * Copyright (C) 1994, 95, 96, 97, 98, 99, 2003 Ralf Baechle 8 * Copyright (C) 1994 - 99, 2003, 06 Ralf Baechle
9 * Copyright (C) 1996 Paul M. Antoine 9 * Copyright (C) 1996 Paul M. Antoine
10 * Modified for DECStation and hence R3000 support by Paul M. Antoine 10 * Modified for DECStation and hence R3000 support by Paul M. Antoine
11 * Further modifications by David S. Miller and Harald Koerfgen 11 * Further modifications by David S. Miller and Harald Koerfgen
@@ -18,6 +18,7 @@
18 18
19#include <asm/asm.h> 19#include <asm/asm.h>
20#include <asm/asmmacro.h> 20#include <asm/asmmacro.h>
21#include <asm/irqflags.h>
21#include <asm/regdef.h> 22#include <asm/regdef.h>
22#include <asm/page.h> 23#include <asm/page.h>
23#include <asm/mipsregs.h> 24#include <asm/mipsregs.h>
diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
index 91ffb1233cad..ea36c8e8852c 100644
--- a/arch/mips/kernel/i8259.c
+++ b/arch/mips/kernel/i8259.c
@@ -51,7 +51,7 @@ static unsigned int startup_8259A_irq(unsigned int irq)
51 return 0; /* never anything pending */ 51 return 0; /* never anything pending */
52} 52}
53 53
54static struct hw_interrupt_type i8259A_irq_type = { 54static struct irq_chip i8259A_irq_type = {
55 .typename = "XT-PIC", 55 .typename = "XT-PIC",
56 .startup = startup_8259A_irq, 56 .startup = startup_8259A_irq,
57 .shutdown = shutdown_8259A_irq, 57 .shutdown = shutdown_8259A_irq,
diff --git a/arch/mips/kernel/irq-msc01.c b/arch/mips/kernel/irq-msc01.c
index f8cd1ac64d88..63dfeb41796b 100644
--- a/arch/mips/kernel/irq-msc01.c
+++ b/arch/mips/kernel/irq-msc01.c
@@ -137,7 +137,7 @@ msc_bind_eic_interrupt (unsigned int irq, unsigned int set)
137 137
138#define shutdown_msc_irq disable_msc_irq 138#define shutdown_msc_irq disable_msc_irq
139 139
140struct hw_interrupt_type msc_levelirq_type = { 140struct irq_chip msc_levelirq_type = {
141 .typename = "SOC-it-Level", 141 .typename = "SOC-it-Level",
142 .startup = startup_msc_irq, 142 .startup = startup_msc_irq,
143 .shutdown = shutdown_msc_irq, 143 .shutdown = shutdown_msc_irq,
@@ -147,7 +147,7 @@ struct hw_interrupt_type msc_levelirq_type = {
147 .end = end_msc_irq, 147 .end = end_msc_irq,
148}; 148};
149 149
150struct hw_interrupt_type msc_edgeirq_type = { 150struct irq_chip msc_edgeirq_type = {
151 .typename = "SOC-it-Edge", 151 .typename = "SOC-it-Edge",
152 .startup =startup_msc_irq, 152 .startup =startup_msc_irq,
153 .shutdown = shutdown_msc_irq, 153 .shutdown = shutdown_msc_irq,
diff --git a/arch/mips/kernel/irq-mv6434x.c b/arch/mips/kernel/irq-mv6434x.c
index f9c763a65547..b117e64da64d 100644
--- a/arch/mips/kernel/irq-mv6434x.c
+++ b/arch/mips/kernel/irq-mv6434x.c
@@ -136,7 +136,7 @@ void ll_mv64340_irq(struct pt_regs *regs)
136 136
137#define shutdown_mv64340_irq disable_mv64340_irq 137#define shutdown_mv64340_irq disable_mv64340_irq
138 138
139struct hw_interrupt_type mv64340_irq_type = { 139struct irq_chip mv64340_irq_type = {
140 .typename = "MV-64340", 140 .typename = "MV-64340",
141 .startup = startup_mv64340_irq, 141 .startup = startup_mv64340_irq,
142 .shutdown = shutdown_mv64340_irq, 142 .shutdown = shutdown_mv64340_irq,
diff --git a/arch/mips/kernel/irq-rm7000.c b/arch/mips/kernel/irq-rm7000.c
index 121da385a94d..6b54c7109e2e 100644
--- a/arch/mips/kernel/irq-rm7000.c
+++ b/arch/mips/kernel/irq-rm7000.c
@@ -71,7 +71,7 @@ static void rm7k_cpu_irq_end(unsigned int irq)
71 unmask_rm7k_irq(irq); 71 unmask_rm7k_irq(irq);
72} 72}
73 73
74static hw_irq_controller rm7k_irq_controller = { 74static struct irq_chip rm7k_irq_controller = {
75 .typename = "RM7000", 75 .typename = "RM7000",
76 .startup = rm7k_cpu_irq_startup, 76 .startup = rm7k_cpu_irq_startup,
77 .shutdown = rm7k_cpu_irq_shutdown, 77 .shutdown = rm7k_cpu_irq_shutdown,
diff --git a/arch/mips/kernel/irq-rm9000.c b/arch/mips/kernel/irq-rm9000.c
index 25109c103e44..62f011ba97a2 100644
--- a/arch/mips/kernel/irq-rm9000.c
+++ b/arch/mips/kernel/irq-rm9000.c
@@ -105,7 +105,7 @@ static void rm9k_cpu_irq_end(unsigned int irq)
105 unmask_rm9k_irq(irq); 105 unmask_rm9k_irq(irq);
106} 106}
107 107
108static hw_irq_controller rm9k_irq_controller = { 108static struct irq_chip rm9k_irq_controller = {
109 .typename = "RM9000", 109 .typename = "RM9000",
110 .startup = rm9k_cpu_irq_startup, 110 .startup = rm9k_cpu_irq_startup,
111 .shutdown = rm9k_cpu_irq_shutdown, 111 .shutdown = rm9k_cpu_irq_shutdown,
@@ -115,7 +115,7 @@ static hw_irq_controller rm9k_irq_controller = {
115 .end = rm9k_cpu_irq_end, 115 .end = rm9k_cpu_irq_end,
116}; 116};
117 117
118static hw_irq_controller rm9k_perfcounter_irq = { 118static struct irq_chip rm9k_perfcounter_irq = {
119 .typename = "RM9000", 119 .typename = "RM9000",
120 .startup = rm9k_perfcounter_irq_startup, 120 .startup = rm9k_perfcounter_irq_startup,
121 .shutdown = rm9k_perfcounter_irq_shutdown, 121 .shutdown = rm9k_perfcounter_irq_shutdown,
diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
index cde5e5afa179..d955aaefbb8e 100644
--- a/arch/mips/kernel/irq.c
+++ b/arch/mips/kernel/irq.c
@@ -136,7 +136,7 @@ void __init init_IRQ(void)
136 irq_desc[i].status = IRQ_DISABLED; 136 irq_desc[i].status = IRQ_DISABLED;
137 irq_desc[i].action = NULL; 137 irq_desc[i].action = NULL;
138 irq_desc[i].depth = 1; 138 irq_desc[i].depth = 1;
139 irq_desc[i].chip = &no_irq_type; 139 irq_desc[i].chip = &no_irq_chip;
140 spin_lock_init(&irq_desc[i].lock); 140 spin_lock_init(&irq_desc[i].lock);
141#ifdef CONFIG_MIPS_MT_SMTC 141#ifdef CONFIG_MIPS_MT_SMTC
142 irq_hwmask[i] = 0; 142 irq_hwmask[i] = 0;
diff --git a/arch/mips/kernel/irq_cpu.c b/arch/mips/kernel/irq_cpu.c
index 0e455a8ad860..9bb21c7f2149 100644
--- a/arch/mips/kernel/irq_cpu.c
+++ b/arch/mips/kernel/irq_cpu.c
@@ -94,7 +94,7 @@ static void mips_cpu_irq_end(unsigned int irq)
94 unmask_mips_irq(irq); 94 unmask_mips_irq(irq);
95} 95}
96 96
97static hw_irq_controller mips_cpu_irq_controller = { 97static struct irq_chip mips_cpu_irq_controller = {
98 .typename = "MIPS", 98 .typename = "MIPS",
99 .startup = mips_cpu_irq_startup, 99 .startup = mips_cpu_irq_startup,
100 .shutdown = mips_cpu_irq_shutdown, 100 .shutdown = mips_cpu_irq_shutdown,
@@ -140,7 +140,7 @@ static void mips_mt_cpu_irq_ack(unsigned int irq)
140 140
141#define mips_mt_cpu_irq_end mips_cpu_irq_end 141#define mips_mt_cpu_irq_end mips_cpu_irq_end
142 142
143static hw_irq_controller mips_mt_cpu_irq_controller = { 143static struct irq_chip mips_mt_cpu_irq_controller = {
144 .typename = "MIPS", 144 .typename = "MIPS",
145 .startup = mips_mt_cpu_irq_startup, 145 .startup = mips_mt_cpu_irq_startup,
146 .shutdown = mips_mt_cpu_irq_shutdown, 146 .shutdown = mips_mt_cpu_irq_shutdown,
diff --git a/arch/mips/kernel/mips-mt.c b/arch/mips/kernel/mips-mt.c
index 4dcc39f42951..c1373a6e668b 100644
--- a/arch/mips/kernel/mips-mt.c
+++ b/arch/mips/kernel/mips-mt.c
@@ -7,6 +7,7 @@
7#include <linux/sched.h> 7#include <linux/sched.h>
8#include <linux/cpumask.h> 8#include <linux/cpumask.h>
9#include <linux/interrupt.h> 9#include <linux/interrupt.h>
10#include <linux/security.h>
10 11
11#include <asm/cpu.h> 12#include <asm/cpu.h>
12#include <asm/processor.h> 13#include <asm/processor.h>
diff --git a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
index 8f8101f878ca..ba1bcd83c7d3 100644
--- a/arch/mips/kernel/scall32-o32.S
+++ b/arch/mips/kernel/scall32-o32.S
@@ -3,13 +3,14 @@
3 * License. See the file "COPYING" in the main directory of this archive 3 * License. See the file "COPYING" in the main directory of this archive
4 * for more details. 4 * for more details.
5 * 5 *
6 * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01, 02 by Ralf Baechle 6 * Copyright (C) 1995-99, 2000- 02, 06 Ralf Baechle <ralf@linux-mips.org>
7 * Copyright (C) 2001 MIPS Technologies, Inc. 7 * Copyright (C) 2001 MIPS Technologies, Inc.
8 * Copyright (C) 2004 Thiemo Seufer 8 * Copyright (C) 2004 Thiemo Seufer
9 */ 9 */
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <asm/asm.h> 11#include <asm/asm.h>
12#include <asm/asmmacro.h> 12#include <asm/asmmacro.h>
13#include <asm/irqflags.h>
13#include <asm/mipsregs.h> 14#include <asm/mipsregs.h>
14#include <asm/regdef.h> 15#include <asm/regdef.h>
15#include <asm/stackframe.h> 16#include <asm/stackframe.h>
@@ -27,6 +28,18 @@
27NESTED(handle_sys, PT_SIZE, sp) 28NESTED(handle_sys, PT_SIZE, sp)
28 .set noat 29 .set noat
29 SAVE_SOME 30 SAVE_SOME
31#ifdef CONFIG_TRACE_IRQFLAGS
32 TRACE_IRQS_ON
33#ifdef CONFIG_64BIT
34 LONG_L $8, PT_R8(sp)
35 LONG_L $9, PT_R9(sp)
36#endif
37 LONG_L $7, PT_R7(sp)
38 LONG_L $6, PT_R6(sp)
39 LONG_L $5, PT_R5(sp)
40 LONG_L $4, PT_R4(sp)
41 LONG_L $2, PT_R2(sp)
42#endif
30 STI 43 STI
31 .set at 44 .set at
32 45
@@ -647,6 +660,8 @@ einval: li v0, -EINVAL
647 sys sys_splice 4 660 sys sys_splice 4
648 sys sys_sync_file_range 7 /* 4305 */ 661 sys sys_sync_file_range 7 /* 4305 */
649 sys sys_tee 4 662 sys sys_tee 4
663 sys sys_vmsplice 4
664 sys sys_move_pages 6
650 .endm 665 .endm
651 666
652 /* We pre-compute the number of _instruction_ bytes needed to 667 /* We pre-compute the number of _instruction_ bytes needed to
diff --git a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
index b4a34a625a2e..939e172db953 100644
--- a/arch/mips/kernel/scall64-64.S
+++ b/arch/mips/kernel/scall64-64.S
@@ -10,6 +10,7 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <asm/asm.h> 11#include <asm/asm.h>
12#include <asm/asmmacro.h> 12#include <asm/asmmacro.h>
13#include <asm/irqflags.h>
13#include <asm/mipsregs.h> 14#include <asm/mipsregs.h>
14#include <asm/regdef.h> 15#include <asm/regdef.h>
15#include <asm/stackframe.h> 16#include <asm/stackframe.h>
@@ -33,6 +34,7 @@ NESTED(handle_sys64, PT_SIZE, sp)
33 */ 34 */
34 .set noat 35 .set noat
35 SAVE_SOME 36 SAVE_SOME
37 TRACE_IRQS_ON
36 STI 38 STI
37 .set at 39 .set at
38#endif 40#endif
@@ -462,3 +464,5 @@ sys_call_table:
462 PTR sys_splice 464 PTR sys_splice
463 PTR sys_sync_file_range 465 PTR sys_sync_file_range
464 PTR sys_tee /* 5265 */ 466 PTR sys_tee /* 5265 */
467 PTR sys_vmsplice
468 PTR sys_move_pages
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index df8c4f8ccd61..98abbc5a9f13 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -10,6 +10,7 @@
10#include <linux/errno.h> 10#include <linux/errno.h>
11#include <asm/asm.h> 11#include <asm/asm.h>
12#include <asm/asmmacro.h> 12#include <asm/asmmacro.h>
13#include <asm/irqflags.h>
13#include <asm/mipsregs.h> 14#include <asm/mipsregs.h>
14#include <asm/regdef.h> 15#include <asm/regdef.h>
15#include <asm/stackframe.h> 16#include <asm/stackframe.h>
@@ -32,6 +33,7 @@ NESTED(handle_sysn32, PT_SIZE, sp)
32#ifndef CONFIG_MIPS32_O32 33#ifndef CONFIG_MIPS32_O32
33 .set noat 34 .set noat
34 SAVE_SOME 35 SAVE_SOME
36 TRACE_IRQS_ON
35 STI 37 STI
36 .set at 38 .set at
37#endif 39#endif
@@ -388,3 +390,5 @@ EXPORT(sysn32_call_table)
388 PTR sys_splice 390 PTR sys_splice
389 PTR sys_sync_file_range 391 PTR sys_sync_file_range
390 PTR sys_tee 392 PTR sys_tee
393 PTR sys_vmsplice /* 6271 */
394 PTR sys_move_pages
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index f04fe4f085c3..505c9ee54009 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -16,6 +16,7 @@
16#include <linux/errno.h> 16#include <linux/errno.h>
17#include <asm/asm.h> 17#include <asm/asm.h>
18#include <asm/asmmacro.h> 18#include <asm/asmmacro.h>
19#include <asm/irqflags.h>
19#include <asm/mipsregs.h> 20#include <asm/mipsregs.h>
20#include <asm/regdef.h> 21#include <asm/regdef.h>
21#include <asm/stackframe.h> 22#include <asm/stackframe.h>
@@ -27,6 +28,7 @@
27NESTED(handle_sys, PT_SIZE, sp) 28NESTED(handle_sys, PT_SIZE, sp)
28 .set noat 29 .set noat
29 SAVE_SOME 30 SAVE_SOME
31 TRACE_IRQS_ON
30 STI 32 STI
31 .set at 33 .set at
32 ld t1, PT_EPC(sp) # skip syscall on return 34 ld t1, PT_EPC(sp) # skip syscall on return
@@ -510,4 +512,6 @@ sys_call_table:
510 PTR sys_splice 512 PTR sys_splice
511 PTR sys32_sync_file_range /* 4305 */ 513 PTR sys32_sync_file_range /* 4305 */
512 PTR sys_tee 514 PTR sys_tee
515 PTR sys_vmsplice
516 PTR compat_sys_move_pages
513 .size sys_call_table,.-sys_call_table 517 .size sys_call_table,.-sys_call_table
diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c
index 9096a5ea4229..221895802dca 100644
--- a/arch/mips/kernel/smp.c
+++ b/arch/mips/kernel/smp.c
@@ -319,6 +319,32 @@ static void flush_tlb_mm_ipi(void *mm)
319} 319}
320 320
321/* 321/*
322 * Special Variant of smp_call_function for use by TLB functions:
323 *
324 * o No return value
325 * o collapses to normal function call on UP kernels
326 * o collapses to normal function call on systems with a single shared
327 * primary cache.
328 * o CONFIG_MIPS_MT_SMTC currently implies there is only one physical core.
329 */
330static inline void smp_on_other_tlbs(void (*func) (void *info), void *info)
331{
332#ifndef CONFIG_MIPS_MT_SMTC
333 smp_call_function(func, info, 1, 1);
334#endif
335}
336
337static inline void smp_on_each_tlb(void (*func) (void *info), void *info)
338{
339 preempt_disable();
340
341 smp_on_other_tlbs(func, info);
342 func(info);
343
344 preempt_enable();
345}
346
347/*
322 * The following tlb flush calls are invoked when old translations are 348 * The following tlb flush calls are invoked when old translations are
323 * being torn down, or pte attributes are changing. For single threaded 349 * being torn down, or pte attributes are changing. For single threaded
324 * address spaces, a new context is obtained on the current cpu, and tlb 350 * address spaces, a new context is obtained on the current cpu, and tlb
@@ -336,7 +362,7 @@ void flush_tlb_mm(struct mm_struct *mm)
336 preempt_disable(); 362 preempt_disable();
337 363
338 if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) { 364 if ((atomic_read(&mm->mm_users) != 1) || (current->mm != mm)) {
339 smp_call_function(flush_tlb_mm_ipi, (void *)mm, 1, 1); 365 smp_on_other_tlbs(flush_tlb_mm_ipi, (void *)mm);
340 } else { 366 } else {
341 int i; 367 int i;
342 for (i = 0; i < num_online_cpus(); i++) 368 for (i = 0; i < num_online_cpus(); i++)
@@ -372,7 +398,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned l
372 fd.vma = vma; 398 fd.vma = vma;
373 fd.addr1 = start; 399 fd.addr1 = start;
374 fd.addr2 = end; 400 fd.addr2 = end;
375 smp_call_function(flush_tlb_range_ipi, (void *)&fd, 1, 1); 401 smp_on_other_tlbs(flush_tlb_range_ipi, (void *)&fd);
376 } else { 402 } else {
377 int i; 403 int i;
378 for (i = 0; i < num_online_cpus(); i++) 404 for (i = 0; i < num_online_cpus(); i++)
@@ -414,7 +440,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
414 440
415 fd.vma = vma; 441 fd.vma = vma;
416 fd.addr1 = page; 442 fd.addr1 = page;
417 smp_call_function(flush_tlb_page_ipi, (void *)&fd, 1, 1); 443 smp_on_other_tlbs(flush_tlb_page_ipi, (void *)&fd);
418 } else { 444 } else {
419 int i; 445 int i;
420 for (i = 0; i < num_online_cpus(); i++) 446 for (i = 0; i < num_online_cpus(); i++)
@@ -434,8 +460,7 @@ static void flush_tlb_one_ipi(void *info)
434 460
435void flush_tlb_one(unsigned long vaddr) 461void flush_tlb_one(unsigned long vaddr)
436{ 462{
437 smp_call_function(flush_tlb_one_ipi, (void *) vaddr, 1, 1); 463 smp_on_each_tlb(flush_tlb_one_ipi, (void *) vaddr);
438 local_flush_tlb_one(vaddr);
439} 464}
440 465
441static DEFINE_PER_CPU(struct cpu, cpu_devices); 466static DEFINE_PER_CPU(struct cpu, cpu_devices);
diff --git a/arch/mips/kernel/smtc-asm.S b/arch/mips/kernel/smtc-asm.S
index 72c6d98f8854..4cc3dea36612 100644
--- a/arch/mips/kernel/smtc-asm.S
+++ b/arch/mips/kernel/smtc-asm.S
@@ -96,6 +96,7 @@ FEXPORT(__smtc_ipi_vector)
96 /* Save all will redundantly recompute the SP, but use it for now */ 96 /* Save all will redundantly recompute the SP, but use it for now */
97 SAVE_ALL 97 SAVE_ALL
98 CLI 98 CLI
99 TRACE_IRQS_OFF
99 move a0,sp 100 move a0,sp
100 /* Function to be invoked passed stack pad slot 5 */ 101 /* Function to be invoked passed stack pad slot 5 */
101 lw t0,PT_PADSLOT5(sp) 102 lw t0,PT_PADSLOT5(sp)
diff --git a/arch/mips/kernel/smtc.c b/arch/mips/kernel/smtc.c
index a48d9e553083..604bcc5cb7c8 100644
--- a/arch/mips/kernel/smtc.c
+++ b/arch/mips/kernel/smtc.c
@@ -127,7 +127,7 @@ static int __init stlb_disable(char *s)
127static int __init asidmask_set(char *str) 127static int __init asidmask_set(char *str)
128{ 128{
129 get_option(&str, &asidmask); 129 get_option(&str, &asidmask);
130 switch(asidmask) { 130 switch (asidmask) {
131 case 0x1: 131 case 0x1:
132 case 0x3: 132 case 0x3:
133 case 0x7: 133 case 0x7:
@@ -249,7 +249,7 @@ void smtc_configure_tlb(void)
249 /* 249 /*
250 * Only count if the MMU Type indicated is TLB 250 * Only count if the MMU Type indicated is TLB
251 */ 251 */
252 if(((read_vpe_c0_config() & MIPS_CONF_MT) >> 7) == 1) { 252 if (((read_vpe_c0_config() & MIPS_CONF_MT) >> 7) == 1) {
253 config1val = read_vpe_c0_config1(); 253 config1val = read_vpe_c0_config1();
254 tlbsiz += ((config1val >> 25) & 0x3f) + 1; 254 tlbsiz += ((config1val >> 25) & 0x3f) + 1;
255 } 255 }
@@ -500,7 +500,7 @@ void mipsmt_prepare_cpus(void)
500 /* Set up coprocessor affinity CPU mask(s) */ 500 /* Set up coprocessor affinity CPU mask(s) */
501 501
502 for (tc = 0; tc < ntc; tc++) { 502 for (tc = 0; tc < ntc; tc++) {
503 if(cpu_data[tc].options & MIPS_CPU_FPU) 503 if (cpu_data[tc].options & MIPS_CPU_FPU)
504 cpu_set(tc, mt_fpu_cpumask); 504 cpu_set(tc, mt_fpu_cpumask);
505 } 505 }
506 506
@@ -577,13 +577,13 @@ void smtc_init_secondary(void)
577{ 577{
578 /* 578 /*
579 * Start timer on secondary VPEs if necessary. 579 * Start timer on secondary VPEs if necessary.
580 * mips_timer_setup should already have been invoked by init/main 580 * plat_timer_setup has already have been invoked by init/main
581 * on "boot" TC. Like per_cpu_trap_init() hack, this assumes that 581 * on "boot" TC. Like per_cpu_trap_init() hack, this assumes that
582 * SMTC init code assigns TCs consdecutively and in ascending order 582 * SMTC init code assigns TCs consdecutively and in ascending order
583 * to across available VPEs. 583 * to across available VPEs.
584 */ 584 */
585 if(((read_c0_tcbind() & TCBIND_CURTC) != 0) 585 if (((read_c0_tcbind() & TCBIND_CURTC) != 0) &&
586 && ((read_c0_tcbind() & TCBIND_CURVPE) 586 ((read_c0_tcbind() & TCBIND_CURVPE)
587 != cpu_data[smp_processor_id() - 1].vpe_id)){ 587 != cpu_data[smp_processor_id() - 1].vpe_id)){
588 write_c0_compare (read_c0_count() + mips_hpt_frequency/HZ); 588 write_c0_compare (read_c0_count() + mips_hpt_frequency/HZ);
589 } 589 }
@@ -757,8 +757,8 @@ void smtc_send_ipi(int cpu, int type, unsigned int action)
757 write_tc_c0_tchalt(0); 757 write_tc_c0_tchalt(0);
758 UNLOCK_CORE_PRA(); 758 UNLOCK_CORE_PRA();
759 /* Try to reduce redundant timer interrupt messages */ 759 /* Try to reduce redundant timer interrupt messages */
760 if(type == SMTC_CLOCK_TICK) { 760 if (type == SMTC_CLOCK_TICK) {
761 if(atomic_postincrement(&ipi_timer_latch[cpu])!=0) { 761 if (atomic_postincrement(&ipi_timer_latch[cpu])!=0){
762 smtc_ipi_nq(&freeIPIq, pipi); 762 smtc_ipi_nq(&freeIPIq, pipi);
763 return; 763 return;
764 } 764 }
@@ -797,7 +797,7 @@ void post_direct_ipi(int cpu, struct smtc_ipi *pipi)
797 * CU bit of Status is indicator that TC was 797 * CU bit of Status is indicator that TC was
798 * already running on a kernel stack... 798 * already running on a kernel stack...
799 */ 799 */
800 if(tcstatus & ST0_CU0) { 800 if (tcstatus & ST0_CU0) {
801 /* Note that this "- 1" is pointer arithmetic */ 801 /* Note that this "- 1" is pointer arithmetic */
802 kstack = ((struct pt_regs *)read_tc_gpr_sp()) - 1; 802 kstack = ((struct pt_regs *)read_tc_gpr_sp()) - 1;
803 } else { 803 } else {
@@ -840,31 +840,31 @@ void ipi_decode(struct pt_regs *regs, struct smtc_ipi *pipi)
840 840
841 smtc_ipi_nq(&freeIPIq, pipi); 841 smtc_ipi_nq(&freeIPIq, pipi);
842 switch (type_copy) { 842 switch (type_copy) {
843 case SMTC_CLOCK_TICK: 843 case SMTC_CLOCK_TICK:
844 /* Invoke Clock "Interrupt" */ 844 /* Invoke Clock "Interrupt" */
845 ipi_timer_latch[dest_copy] = 0; 845 ipi_timer_latch[dest_copy] = 0;
846#ifdef SMTC_IDLE_HOOK_DEBUG 846#ifdef SMTC_IDLE_HOOK_DEBUG
847 clock_hang_reported[dest_copy] = 0; 847 clock_hang_reported[dest_copy] = 0;
848#endif /* SMTC_IDLE_HOOK_DEBUG */ 848#endif /* SMTC_IDLE_HOOK_DEBUG */
849 local_timer_interrupt(0, NULL, regs); 849 local_timer_interrupt(0, NULL, regs);
850 break;
851 case LINUX_SMP_IPI:
852 switch ((int)arg_copy) {
853 case SMP_RESCHEDULE_YOURSELF:
854 ipi_resched_interrupt(regs);
850 break; 855 break;
851 case LINUX_SMP_IPI: 856 case SMP_CALL_FUNCTION:
852 switch ((int)arg_copy) { 857 ipi_call_interrupt(regs);
853 case SMP_RESCHEDULE_YOURSELF:
854 ipi_resched_interrupt(regs);
855 break;
856 case SMP_CALL_FUNCTION:
857 ipi_call_interrupt(regs);
858 break;
859 default:
860 printk("Impossible SMTC IPI Argument 0x%x\n",
861 (int)arg_copy);
862 break;
863 }
864 break; 858 break;
865 default: 859 default:
866 printk("Impossible SMTC IPI Type 0x%x\n", type_copy); 860 printk("Impossible SMTC IPI Argument 0x%x\n",
861 (int)arg_copy);
867 break; 862 break;
863 }
864 break;
865 default:
866 printk("Impossible SMTC IPI Type 0x%x\n", type_copy);
867 break;
868 } 868 }
869} 869}
870 870
@@ -879,7 +879,7 @@ void deferred_smtc_ipi(struct pt_regs *regs)
879 * Test is not atomic, but much faster than a dequeue, 879 * Test is not atomic, but much faster than a dequeue,
880 * and the vast majority of invocations will have a null queue. 880 * and the vast majority of invocations will have a null queue.
881 */ 881 */
882 if(IPIQ[q].head != NULL) { 882 if (IPIQ[q].head != NULL) {
883 while((pipi = smtc_ipi_dq(&IPIQ[q])) != NULL) { 883 while((pipi = smtc_ipi_dq(&IPIQ[q])) != NULL) {
884 /* ipi_decode() should be called with interrupts off */ 884 /* ipi_decode() should be called with interrupts off */
885 local_irq_save(flags); 885 local_irq_save(flags);
@@ -1254,7 +1254,7 @@ void smtc_flush_tlb_asid(unsigned long asid)
1254 tlb_read(); 1254 tlb_read();
1255 ehb(); 1255 ehb();
1256 ehi = read_c0_entryhi(); 1256 ehi = read_c0_entryhi();
1257 if((ehi & ASID_MASK) == asid) { 1257 if ((ehi & ASID_MASK) == asid) {
1258 /* 1258 /*
1259 * Invalidate only entries with specified ASID, 1259 * Invalidate only entries with specified ASID,
1260 * makiing sure all entries differ. 1260 * makiing sure all entries differ.
diff --git a/arch/mips/kernel/time.c b/arch/mips/kernel/time.c
index 2393c11d5a20..170cb67f4ede 100644
--- a/arch/mips/kernel/time.c
+++ b/arch/mips/kernel/time.c
@@ -566,14 +566,13 @@ asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs)
566 * 2) setup xtime based on rtc_mips_get_time(). 566 * 2) setup xtime based on rtc_mips_get_time().
567 * 3) choose a appropriate gettimeoffset routine. 567 * 3) choose a appropriate gettimeoffset routine.
568 * 4) calculate a couple of cached variables for later usage 568 * 4) calculate a couple of cached variables for later usage
569 * 5) board_timer_setup() - 569 * 5) plat_timer_setup() -
570 * a) (optional) over-write any choices made above by time_init(). 570 * a) (optional) over-write any choices made above by time_init().
571 * b) machine specific code should setup the timer irqaction. 571 * b) machine specific code should setup the timer irqaction.
572 * c) enable the timer interrupt 572 * c) enable the timer interrupt
573 */ 573 */
574 574
575void (*board_time_init)(void); 575void (*board_time_init)(void);
576void (*board_timer_setup)(struct irqaction *irq);
577 576
578unsigned int mips_hpt_frequency; 577unsigned int mips_hpt_frequency;
579 578
@@ -718,7 +717,7 @@ void __init time_init(void)
718 * to be NULL function so that we are sure the high-level code 717 * to be NULL function so that we are sure the high-level code
719 * is not invoked accidentally. 718 * is not invoked accidentally.
720 */ 719 */
721 board_timer_setup(&timer_irqaction); 720 plat_timer_setup(&timer_irqaction);
722} 721}
723 722
724#define FEBRUARY 2 723#define FEBRUARY 2
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
index 8b95eca9ac74..954a198494ef 100644
--- a/arch/mips/kernel/traps.c
+++ b/arch/mips/kernel/traps.c
@@ -569,6 +569,8 @@ asmlinkage void do_ov(struct pt_regs *regs)
569 */ 569 */
570asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31) 570asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
571{ 571{
572 die_if_kernel("FP exception in kernel code", regs);
573
572 if (fcr31 & FPU_CSR_UNI_X) { 574 if (fcr31 & FPU_CSR_UNI_X) {
573 int sig; 575 int sig;
574 576
@@ -847,31 +849,29 @@ asmlinkage void do_mt(struct pt_regs *regs)
847{ 849{
848 int subcode; 850 int subcode;
849 851
850 die_if_kernel("MIPS MT Thread exception in kernel", regs);
851
852 subcode = (read_vpe_c0_vpecontrol() & VPECONTROL_EXCPT) 852 subcode = (read_vpe_c0_vpecontrol() & VPECONTROL_EXCPT)
853 >> VPECONTROL_EXCPT_SHIFT; 853 >> VPECONTROL_EXCPT_SHIFT;
854 switch (subcode) { 854 switch (subcode) {
855 case 0: 855 case 0:
856 printk(KERN_ERR "Thread Underflow\n"); 856 printk(KERN_DEBUG "Thread Underflow\n");
857 break; 857 break;
858 case 1: 858 case 1:
859 printk(KERN_ERR "Thread Overflow\n"); 859 printk(KERN_DEBUG "Thread Overflow\n");
860 break; 860 break;
861 case 2: 861 case 2:
862 printk(KERN_ERR "Invalid YIELD Qualifier\n"); 862 printk(KERN_DEBUG "Invalid YIELD Qualifier\n");
863 break; 863 break;
864 case 3: 864 case 3:
865 printk(KERN_ERR "Gating Storage Exception\n"); 865 printk(KERN_DEBUG "Gating Storage Exception\n");
866 break; 866 break;
867 case 4: 867 case 4:
868 printk(KERN_ERR "YIELD Scheduler Exception\n"); 868 printk(KERN_DEBUG "YIELD Scheduler Exception\n");
869 break; 869 break;
870 case 5: 870 case 5:
871 printk(KERN_ERR "Gating Storage Schedulier Exception\n"); 871 printk(KERN_DEBUG "Gating Storage Schedulier Exception\n");
872 break; 872 break;
873 default: 873 default:
874 printk(KERN_ERR "*** UNKNOWN THREAD EXCEPTION %d ***\n", 874 printk(KERN_DEBUG "*** UNKNOWN THREAD EXCEPTION %d ***\n",
875 subcode); 875 subcode);
876 break; 876 break;
877 } 877 }
@@ -980,10 +980,10 @@ void ejtag_exception_handler(struct pt_regs *regs)
980 unsigned long depc, old_epc; 980 unsigned long depc, old_epc;
981 unsigned int debug; 981 unsigned int debug;
982 982
983 printk("SDBBP EJTAG debug exception - not handled yet, just ignored!\n"); 983 printk(KERN_DEBUG "SDBBP EJTAG debug exception - not handled yet, just ignored!\n");
984 depc = read_c0_depc(); 984 depc = read_c0_depc();
985 debug = read_c0_debug(); 985 debug = read_c0_debug();
986 printk("c0_depc = %0*lx, DEBUG = %08x\n", field, depc, debug); 986 printk(KERN_DEBUG "c0_depc = %0*lx, DEBUG = %08x\n", field, depc, debug);
987 if (debug & 0x80000000) { 987 if (debug & 0x80000000) {
988 /* 988 /*
989 * In branch delay slot. 989 * In branch delay slot.
@@ -1001,7 +1001,7 @@ void ejtag_exception_handler(struct pt_regs *regs)
1001 write_c0_depc(depc); 1001 write_c0_depc(depc);
1002 1002
1003#if 0 1003#if 0
1004 printk("\n\n----- Enable EJTAG single stepping ----\n\n"); 1004 printk(KERN_DEBUG "\n\n----- Enable EJTAG single stepping ----\n\n");
1005 write_c0_debug(debug | 0x100); 1005 write_c0_debug(debug | 0x100);
1006#endif 1006#endif
1007} 1007}
diff --git a/arch/mips/kernel/vpe.c b/arch/mips/kernel/vpe.c
index 85d7df7b18e1..9ee0ec2cd067 100644
--- a/arch/mips/kernel/vpe.c
+++ b/arch/mips/kernel/vpe.c
@@ -28,7 +28,6 @@
28 * i.e cat spapp >/dev/vpe1. 28 * i.e cat spapp >/dev/vpe1.
29 */ 29 */
30 30
31#include <linux/config.h>
32#include <linux/kernel.h> 31#include <linux/kernel.h>
33#include <linux/module.h> 32#include <linux/module.h>
34#include <linux/fs.h> 33#include <linux/fs.h>
diff --git a/arch/mips/lasat/interrupt.c b/arch/mips/lasat/interrupt.c
index 9316a024a818..456be8fc961a 100644
--- a/arch/mips/lasat/interrupt.c
+++ b/arch/mips/lasat/interrupt.c
@@ -69,7 +69,7 @@ static void end_lasat_irq(unsigned int irq)
69 enable_lasat_irq(irq); 69 enable_lasat_irq(irq);
70} 70}
71 71
72static struct hw_interrupt_type lasat_irq_type = { 72static struct irq_chip lasat_irq_type = {
73 .typename = "Lasat", 73 .typename = "Lasat",
74 .startup = startup_lasat_irq, 74 .startup = startup_lasat_irq,
75 .shutdown = shutdown_lasat_irq, 75 .shutdown = shutdown_lasat_irq,
diff --git a/arch/mips/lasat/setup.c b/arch/mips/lasat/setup.c
index 2187e63c6d88..0ffc43c600d9 100644
--- a/arch/mips/lasat/setup.c
+++ b/arch/mips/lasat/setup.c
@@ -115,12 +115,9 @@ static void lasat_time_init(void)
115 mips_hpt_frequency = lasat_board_info.li_cpu_hz / 2; 115 mips_hpt_frequency = lasat_board_info.li_cpu_hz / 2;
116} 116}
117 117
118static void lasat_timer_setup(struct irqaction *irq) 118void __init plat_timer_setup(struct irqaction *irq)
119{ 119{
120 120 write_c0_compare( read_c0_count() + mips_hpt_frequency / HZ);
121 write_c0_compare(
122 read_c0_count() +
123 mips_hpt_frequency / HZ);
124 change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5); 121 change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5);
125} 122}
126 123
@@ -170,7 +167,6 @@ void __init plat_mem_setup(void)
170 lasat_reboot_setup(); 167 lasat_reboot_setup();
171 168
172 board_time_init = lasat_time_init; 169 board_time_init = lasat_time_init;
173 board_timer_setup = lasat_timer_setup;
174 170
175#ifdef CONFIG_DS1603 171#ifdef CONFIG_DS1603
176 ds1603 = &ds_defs[mips_machtype]; 172 ds1603 = &ds_defs[mips_machtype];
diff --git a/arch/mips/mips-boards/atlas/atlas_int.c b/arch/mips/mips-boards/atlas/atlas_int.c
index 9dd6b8925581..fb25e0377f11 100644
--- a/arch/mips/mips-boards/atlas/atlas_int.c
+++ b/arch/mips/mips-boards/atlas/atlas_int.c
@@ -73,7 +73,7 @@ static void end_atlas_irq(unsigned int irq)
73 enable_atlas_irq(irq); 73 enable_atlas_irq(irq);
74} 74}
75 75
76static struct hw_interrupt_type atlas_irq_type = { 76static struct irq_chip atlas_irq_type = {
77 .typename = "Atlas", 77 .typename = "Atlas",
78 .startup = startup_atlas_irq, 78 .startup = startup_atlas_irq,
79 .shutdown = shutdown_atlas_irq, 79 .shutdown = shutdown_atlas_irq,
diff --git a/arch/mips/mips-boards/atlas/atlas_setup.c b/arch/mips/mips-boards/atlas/atlas_setup.c
index 3a7c3d28aa0d..9871a91fdb07 100644
--- a/arch/mips/mips-boards/atlas/atlas_setup.c
+++ b/arch/mips/mips-boards/atlas/atlas_setup.c
@@ -35,7 +35,6 @@
35 35
36extern void mips_reboot_setup(void); 36extern void mips_reboot_setup(void);
37extern void mips_time_init(void); 37extern void mips_time_init(void);
38extern void mips_timer_setup(struct irqaction *irq);
39extern unsigned long mips_rtc_get_time(void); 38extern unsigned long mips_rtc_get_time(void);
40 39
41#ifdef CONFIG_KGDB 40#ifdef CONFIG_KGDB
@@ -63,7 +62,6 @@ void __init plat_mem_setup(void)
63 mips_reboot_setup(); 62 mips_reboot_setup();
64 63
65 board_time_init = mips_time_init; 64 board_time_init = mips_time_init;
66 board_timer_setup = mips_timer_setup;
67 rtc_mips_get_time = mips_rtc_get_time; 65 rtc_mips_get_time = mips_rtc_get_time;
68} 66}
69 67
diff --git a/arch/mips/mips-boards/generic/memory.c b/arch/mips/mips-boards/generic/memory.c
index c89fcf9e9c22..be80c5dd4a0c 100644
--- a/arch/mips/mips-boards/generic/memory.c
+++ b/arch/mips/mips-boards/generic/memory.c
@@ -47,43 +47,45 @@ static char *mtypes[3] = {
47}; 47};
48#endif 48#endif
49 49
50/* determined physical memory size, not overridden by command line args */
51unsigned long physical_memsize = 0L;
52
50struct prom_pmemblock * __init prom_getmdesc(void) 53struct prom_pmemblock * __init prom_getmdesc(void)
51{ 54{
52 char *memsize_str; 55 char *memsize_str;
53 unsigned int memsize; 56 unsigned int memsize;
54 char cmdline[CL_SIZE], *ptr; 57 char cmdline[CL_SIZE], *ptr;
55 58
56 /* Check the command line first for a memsize directive */ 59 /* otherwise look in the environment */
57 strcpy(cmdline, arcs_cmdline); 60 memsize_str = prom_getenv("memsize");
58 ptr = strstr(cmdline, "memsize="); 61 if (!memsize_str) {
59 if (ptr && (ptr != cmdline) && (*(ptr - 1) != ' ')) 62 prom_printf("memsize not set in boot prom, set to default (32Mb)\n");
60 ptr = strstr(ptr, " memsize="); 63 physical_memsize = 0x02000000;
61 64 } else {
62 if (ptr) {
63 memsize = memparse(ptr + 8, &ptr);
64 }
65 else {
66 /* otherwise look in the environment */
67 memsize_str = prom_getenv("memsize");
68 if (!memsize_str) {
69 prom_printf("memsize not set in boot prom, set to default (32Mb)\n");
70 memsize = 0x02000000;
71 } else {
72#ifdef DEBUG 65#ifdef DEBUG
73 prom_printf("prom_memsize = %s\n", memsize_str); 66 prom_printf("prom_memsize = %s\n", memsize_str);
74#endif 67#endif
75 memsize = simple_strtol(memsize_str, NULL, 0); 68 physical_memsize = simple_strtol(memsize_str, NULL, 0);
76 }
77 } 69 }
78 70
79#ifdef CONFIG_CPU_BIG_ENDIAN 71#ifdef CONFIG_CPU_BIG_ENDIAN
80 /* 72 /* SOC-it swaps, or perhaps doesn't swap, when DMA'ing the last
81 * SOC-it swaps, or perhaps doesn't swap, when DMA'ing the last 73 word of physical memory */
82 * word of physical memory 74 physical_memsize -= PAGE_SIZE;
83 */
84 memsize -= PAGE_SIZE;
85#endif 75#endif
86 76
77 /* Check the command line for a memsize directive that overrides
78 the physical/default amount */
79 strcpy(cmdline, arcs_cmdline);
80 ptr = strstr(cmdline, "memsize=");
81 if (ptr && (ptr != cmdline) && (*(ptr - 1) != ' '))
82 ptr = strstr(ptr, " memsize=");
83
84 if (ptr)
85 memsize = memparse(ptr + 8, &ptr);
86 else
87 memsize = physical_memsize;
88
87 memset(mdesc, 0, sizeof(mdesc)); 89 memset(mdesc, 0, sizeof(mdesc));
88 90
89 mdesc[0].type = yamon_dontuse; 91 mdesc[0].type = yamon_dontuse;
diff --git a/arch/mips/mips-boards/generic/time.c b/arch/mips/mips-boards/generic/time.c
index 5e207760826b..557bf961f36a 100644
--- a/arch/mips/mips-boards/generic/time.c
+++ b/arch/mips/mips-boards/generic/time.c
@@ -228,9 +228,7 @@ unsigned long __init mips_rtc_get_time(void)
228 228
229void __init mips_time_init(void) 229void __init mips_time_init(void)
230{ 230{
231 unsigned int est_freq, flags; 231 unsigned int est_freq;
232
233 local_irq_save(flags);
234 232
235 /* Set Data mode - binary. */ 233 /* Set Data mode - binary. */
236 CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL); 234 CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL);
@@ -241,11 +239,9 @@ void __init mips_time_init(void)
241 (est_freq%1000000)*100/1000000); 239 (est_freq%1000000)*100/1000000);
242 240
243 cpu_khz = est_freq / 1000; 241 cpu_khz = est_freq / 1000;
244
245 local_irq_restore(flags);
246} 242}
247 243
248void __init mips_timer_setup(struct irqaction *irq) 244void __init plat_timer_setup(struct irqaction *irq)
249{ 245{
250 if (cpu_has_veic) { 246 if (cpu_has_veic) {
251 set_vi_handler (MSC01E_INT_CPUCTR, mips_timer_dispatch); 247 set_vi_handler (MSC01E_INT_CPUCTR, mips_timer_dispatch);
diff --git a/arch/mips/mips-boards/malta/malta_setup.c b/arch/mips/mips-boards/malta/malta_setup.c
index 7a54195c78fb..ab460f805bef 100644
--- a/arch/mips/mips-boards/malta/malta_setup.c
+++ b/arch/mips/mips-boards/malta/malta_setup.c
@@ -44,7 +44,6 @@
44 44
45extern void mips_reboot_setup(void); 45extern void mips_reboot_setup(void);
46extern void mips_time_init(void); 46extern void mips_time_init(void);
47extern void mips_timer_setup(struct irqaction *irq);
48extern unsigned long mips_rtc_get_time(void); 47extern unsigned long mips_rtc_get_time(void);
49 48
50#ifdef CONFIG_KGDB 49#ifdef CONFIG_KGDB
@@ -223,6 +222,5 @@ void __init plat_mem_setup(void)
223 mips_reboot_setup(); 222 mips_reboot_setup();
224 223
225 board_time_init = mips_time_init; 224 board_time_init = mips_time_init;
226 board_timer_setup = mips_timer_setup;
227 rtc_mips_get_time = mips_rtc_get_time; 225 rtc_mips_get_time = mips_rtc_get_time;
228} 226}
diff --git a/arch/mips/mips-boards/sead/sead_setup.c b/arch/mips/mips-boards/sead/sead_setup.c
index a856bd664879..a189dec7c7bc 100644
--- a/arch/mips/mips-boards/sead/sead_setup.c
+++ b/arch/mips/mips-boards/sead/sead_setup.c
@@ -35,7 +35,6 @@
35 35
36extern void mips_reboot_setup(void); 36extern void mips_reboot_setup(void);
37extern void mips_time_init(void); 37extern void mips_time_init(void);
38extern void mips_timer_setup(struct irqaction *irq);
39 38
40static void __init serial_init(void); 39static void __init serial_init(void);
41 40
@@ -51,7 +50,6 @@ void __init plat_mem_setup(void)
51 serial_init (); 50 serial_init ();
52 51
53 board_time_init = mips_time_init; 52 board_time_init = mips_time_init;
54 board_timer_setup = mips_timer_setup;
55 53
56 mips_reboot_setup(); 54 mips_reboot_setup();
57} 55}
diff --git a/arch/mips/mips-boards/sim/Makefile b/arch/mips/mips-boards/sim/Makefile
index 5b977de4ecff..a12e32aafde0 100644
--- a/arch/mips/mips-boards/sim/Makefile
+++ b/arch/mips/mips-boards/sim/Makefile
@@ -15,6 +15,5 @@
15# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA. 15# 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
16# 16#
17 17
18obj-y := sim_setup.o sim_mem.o sim_time.o sim_printf.o sim_int.o sim_irq.o \ 18obj-y := sim_setup.o sim_mem.o sim_time.o sim_printf.o sim_int.o sim_cmdline.o
19 sim_cmdline.o
20obj-$(CONFIG_SMP) += sim_smp.o 19obj-$(CONFIG_SMP) += sim_smp.o
diff --git a/arch/mips/mips-boards/sim/sim_IRQ.c b/arch/mips/mips-boards/sim/sim_IRQ.c
deleted file mode 100644
index ec549f3e2011..000000000000
--- a/arch/mips/mips-boards/sim/sim_IRQ.c
+++ /dev/null
@@ -1,147 +0,0 @@
1/*
2 * Carsten Langgaard, carstenl@mips.com
3 * Copyright (C) 1999, 2000 MIPS Technologies, Inc. All rights reserved.
4 *
5 * This program is free software; you can distribute it and/or modify it
6 * under the terms of the GNU General Public License (Version 2) as
7 * published by the Free Software Foundation.
8 *
9 * This program is distributed in the hope it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * for more details.
13 *
14 * You should have received a copy of the GNU General Public License along
15 * with this program; if not, write to the Free Software Foundation, Inc.,
16 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
17 *
18 * Interrupt exception dispatch code.
19 */
20
21#include <asm/asm.h>
22#include <asm/mipsregs.h>
23#include <asm/regdef.h>
24#include <asm/stackframe.h>
25
26/* A lot of complication here is taken away because:
27 *
28 * 1) We handle one interrupt and return, sitting in a loop and moving across
29 * all the pending IRQ bits in the cause register is _NOT_ the answer, the
30 * common case is one pending IRQ so optimize in that direction.
31 *
32 * 2) We need not check against bits in the status register IRQ mask, that
33 * would make this routine slow as hell.
34 *
35 * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
36 * between like BSD spl() brain-damage.
37 *
38 * Furthermore, the IRQs on the MIPS board look basically (barring software
39 * IRQs which we don't use at all and all external interrupt sources are
40 * combined together on hardware interrupt 0 (MIPS IRQ 2)) like:
41 *
42 * MIPS IRQ Source
43 * -------- ------
44 * 0 Software (ignored)
45 * 1 Software (ignored)
46 * 2 Combined hardware interrupt (hw0)
47 * 3 Hardware (ignored)
48 * 4 Hardware (ignored)
49 * 5 Hardware (ignored)
50 * 6 Hardware (ignored)
51 * 7 R4k timer (what we use)
52 *
53 * Note: On the SEAD board thing are a little bit different.
54 * Here IRQ 2 (hw0) is wired to the UART0 and IRQ 3 (hw1) is wired
55 * wired to UART1.
56 *
57 * We handle the IRQ according to _our_ priority which is:
58 *
59 * Highest ---- R4k Timer
60 * Lowest ---- Combined hardware interrupt
61 *
62 * then we just return, if multiple IRQs are pending then we will just take
63 * another exception, big deal.
64 */
65
66 .text
67 .set noreorder
68 .set noat
69 .align 5
70 NESTED(mipsIRQ, PT_SIZE, sp)
71 SAVE_ALL
72 CLI
73 .set at
74
75 mfc0 s0, CP0_CAUSE # get irq bits
76 mfc0 s1, CP0_STATUS # get irq mask
77 and s0, s1
78
79 /* First we check for r4k counter/timer IRQ. */
80 andi a0, s0, CAUSEF_IP7
81 beq a0, zero, 1f
82 andi a0, s0, CAUSEF_IP2 # delay slot, check hw0 interrupt
83
84 /* Wheee, a timer interrupt. */
85 move a0, sp
86 jal mips_timer_interrupt
87 nop
88
89 j ret_from_irq
90 nop
91
921:
93#if defined(CONFIG_MIPS_SEAD)
94 beq a0, zero, 1f
95 andi a0, s0, CAUSEF_IP3 # delay slot, check hw1 interrupt
96#else
97 beq a0, zero, 1f # delay slot, check hw3 interrupt
98 andi a0, s0, CAUSEF_IP5
99#endif
100
101 /* Wheee, combined hardware level zero interrupt. */
102#if defined(CONFIG_MIPS_ATLAS)
103 jal atlas_hw0_irqdispatch
104#elif defined(CONFIG_MIPS_MALTA)
105 jal malta_hw0_irqdispatch
106#elif defined(CONFIG_MIPS_SEAD)
107 jal sead_hw0_irqdispatch
108#else
109#error "MIPS board not supported\n"
110#endif
111 move a0, sp # delay slot
112
113 j ret_from_irq
114 nop # delay slot
115
1161:
117#if defined(CONFIG_MIPS_SEAD)
118 beq a0, zero, 1f
119 andi a0, s0, CAUSEF_IP5 # delay slot, check hw3 interrupt
120 jal sead_hw1_irqdispatch
121 move a0, sp # delay slot
122 j ret_from_irq
123 nop # delay slot
1241:
125#endif
126#if defined(CONFIG_MIPS_MALTA)
127 beq a0, zero, 1f # check hw3 (coreHI) interrupt
128 nop
129 jal corehi_irqdispatch
130 move a0, sp
131 j ret_from_irq
132 nop
1331:
134#endif
135 /*
136 * Here by mistake? This is possible, what can happen is that by the
137 * time we take the exception the IRQ pin goes low, so just leave if
138 * this is the case.
139 */
140 move a1,s0
141 PRINT("Got interrupt: c0_cause = %08x\n")
142 mfc0 a1, CP0_EPC
143 PRINT("c0_epc = %08x\n")
144
145 j ret_from_irq
146 nop
147 END(mipsIRQ)
diff --git a/arch/mips/mips-boards/sim/sim_irq.S b/arch/mips/mips-boards/sim/sim_irq.S
deleted file mode 100644
index b7444e74a6a1..000000000000
--- a/arch/mips/mips-boards/sim/sim_irq.S
+++ /dev/null
@@ -1,100 +0,0 @@
1/*
2 * Copyright (C) 1999, 2005 MIPS Technologies, Inc. All rights reserved.
3 *
4 * This program is free software; you can distribute it and/or modify it
5 * under the terms of the GNU General Public License (Version 2) as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope it will be useful, but WITHOUT
9 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 * for more details.
12 *
13 * You should have received a copy of the GNU General Public License along
14 * with this program; if not, write to the Free Software Foundation, Inc.,
15 * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
16 *
17 * Interrupt exception dispatch code.
18 *
19 */
20
21#include <asm/asm.h>
22#include <asm/mipsregs.h>
23#include <asm/regdef.h>
24#include <asm/stackframe.h>
25
26#include <asm/mips-boards/simint.h>
27
28
29 .text
30 .set noreorder
31 .set noat
32 .align 5
33 NESTED(simIRQ, PT_SIZE, sp)
34 SAVE_ALL
35 CLI
36 .set at
37
38 mfc0 s0, CP0_CAUSE # get irq bits
39 mfc0 s1, CP0_STATUS # get irq mask
40 andi s0, ST0_IM # CAUSE.CE may be non-zero!
41 and s0, s1
42
43#if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
44 .set mips32
45 clz a0, s0
46 .set mips0
47 negu a0
48 addu a0, 31-CAUSEB_IP
49 bltz a0, spurious
50#else
51 beqz s0, spurious
52 li a0, 7
53
54 and t0, s0, 0xf000
55 sltiu t0, t0, 1
56 sll t0, 2
57 subu a0, t0
58 sll s0, t0
59
60 and t0, s0, 0xc000
61 sltiu t0, t0, 1
62 sll t0, 1
63 subu a0, t0
64 sll s0, t0
65
66 and t0, s0, 0x8000
67 sltiu t0, t0, 1
68 # sll t0, 0
69 subu a0, t0
70 # sll s0, t0
71#endif
72
73#ifdef CASCADE_IRQ
74 li a1, CASCADE_IRQ
75 bne a0, a1, 1f
76 addu a0, MIPSCPU_INT_BASE
77
78 jal CASCADE_DISPATCH
79 move a0, sp
80
81 j ret_from_irq
82 nop
831:
84#else
85 addu a0, MIPSCPU_INT_BASE
86#endif
87
88 jal do_IRQ
89 move a1, sp
90
91 j ret_from_irq
92 nop
93
94
95spurious:
96 jal spurious_interrupt
97 nop
98 j ret_from_irq
99 nop
100 END(simIRQ)
diff --git a/arch/mips/mips-boards/sim/sim_setup.c b/arch/mips/mips-boards/sim/sim_setup.c
index 3d4a785b565a..2659c1c3b78d 100644
--- a/arch/mips/mips-boards/sim/sim_setup.c
+++ b/arch/mips/mips-boards/sim/sim_setup.c
@@ -37,7 +37,6 @@
37 37
38 38
39extern void sim_time_init(void); 39extern void sim_time_init(void);
40extern void sim_timer_setup(struct irqaction *irq);
41static void __init serial_init(void); 40static void __init serial_init(void);
42unsigned int _isbonito = 0; 41unsigned int _isbonito = 0;
43 42
@@ -56,7 +55,6 @@ void __init plat_mem_setup(void)
56 serial_init(); 55 serial_init();
57 56
58 board_time_init = sim_time_init; 57 board_time_init = sim_time_init;
59 board_timer_setup = sim_timer_setup;
60 prom_printf("Linux started...\n"); 58 prom_printf("Linux started...\n");
61 59
62#ifdef CONFIG_MT_SMP 60#ifdef CONFIG_MT_SMP
diff --git a/arch/mips/mips-boards/sim/sim_time.c b/arch/mips/mips-boards/sim/sim_time.c
index e7f6003357f7..230929ecd57f 100644
--- a/arch/mips/mips-boards/sim/sim_time.c
+++ b/arch/mips/mips-boards/sim/sim_time.c
@@ -33,8 +33,6 @@
33 33
34unsigned long cpu_khz; 34unsigned long cpu_khz;
35 35
36extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
37
38irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs) 36irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
39{ 37{
40#ifdef CONFIG_SMP 38#ifdef CONFIG_SMP
@@ -185,7 +183,7 @@ static void mips_timer_dispatch (struct pt_regs *regs)
185} 183}
186 184
187 185
188void __init sim_timer_setup(struct irqaction *irq) 186void __init plat_timer_setup(struct irqaction *irq)
189{ 187{
190 if (cpu_has_veic) { 188 if (cpu_has_veic) {
191 set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch); 189 set_vi_handler(MSC01E_INT_CPUCTR, mips_timer_dispatch);
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c
index 857b726f4d41..069803f58f3b 100644
--- a/arch/mips/mm/c-r4k.c
+++ b/arch/mips/mm/c-r4k.c
@@ -578,7 +578,7 @@ static inline void local_r4k_flush_icache_page(void *args)
578 * secondary cache will result in any entries in the primary caches 578 * secondary cache will result in any entries in the primary caches
579 * also getting invalidated which hopefully is a bit more economical. 579 * also getting invalidated which hopefully is a bit more economical.
580 */ 580 */
581 if (cpu_has_subset_pcaches) { 581 if (cpu_has_inclusive_pcaches) {
582 unsigned long addr = (unsigned long) page_address(page); 582 unsigned long addr = (unsigned long) page_address(page);
583 583
584 r4k_blast_scache_page(addr); 584 r4k_blast_scache_page(addr);
@@ -634,7 +634,7 @@ static void r4k_dma_cache_wback_inv(unsigned long addr, unsigned long size)
634 /* Catch bad driver code */ 634 /* Catch bad driver code */
635 BUG_ON(size == 0); 635 BUG_ON(size == 0);
636 636
637 if (cpu_has_subset_pcaches) { 637 if (cpu_has_inclusive_pcaches) {
638 if (size >= scache_size) 638 if (size >= scache_size)
639 r4k_blast_scache(); 639 r4k_blast_scache();
640 else 640 else
@@ -662,7 +662,7 @@ static void r4k_dma_cache_inv(unsigned long addr, unsigned long size)
662 /* Catch bad driver code */ 662 /* Catch bad driver code */
663 BUG_ON(size == 0); 663 BUG_ON(size == 0);
664 664
665 if (cpu_has_subset_pcaches) { 665 if (cpu_has_inclusive_pcaches) {
666 if (size >= scache_size) 666 if (size >= scache_size)
667 r4k_blast_scache(); 667 r4k_blast_scache();
668 else 668 else
@@ -862,15 +862,18 @@ static void __init probe_pcache(void)
862 break; 862 break;
863 863
864 case CPU_VR4133: 864 case CPU_VR4133:
865 write_c0_config(config & ~CONF_EB); 865 write_c0_config(config & ~VR41_CONF_P4K);
866 case CPU_VR4131: 866 case CPU_VR4131:
867 /* Workaround for cache instruction bug of VR4131 */ 867 /* Workaround for cache instruction bug of VR4131 */
868 if (c->processor_id == 0x0c80U || c->processor_id == 0x0c81U || 868 if (c->processor_id == 0x0c80U || c->processor_id == 0x0c81U ||
869 c->processor_id == 0x0c82U) { 869 c->processor_id == 0x0c82U) {
870 config &= ~0x00000030U; 870 config |= 0x00400000U;
871 config |= 0x00410000U; 871 if (c->processor_id == 0x0c80U)
872 config |= VR41_CONF_BP;
872 write_c0_config(config); 873 write_c0_config(config);
873 } 874 } else
875 c->options |= MIPS_CPU_CACHE_CDEX_P;
876
874 icache_size = 1 << (10 + ((config & CONF_IC) >> 9)); 877 icache_size = 1 << (10 + ((config & CONF_IC) >> 9));
875 c->icache.linesz = 16 << ((config & CONF_IB) >> 5); 878 c->icache.linesz = 16 << ((config & CONF_IB) >> 5);
876 c->icache.ways = 2; 879 c->icache.ways = 2;
@@ -880,8 +883,6 @@ static void __init probe_pcache(void)
880 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4); 883 c->dcache.linesz = 16 << ((config & CONF_DB) >> 4);
881 c->dcache.ways = 2; 884 c->dcache.ways = 2;
882 c->dcache.waybit = __ffs(dcache_size/2); 885 c->dcache.waybit = __ffs(dcache_size/2);
883
884 c->options |= MIPS_CPU_CACHE_CDEX_P;
885 break; 886 break;
886 887
887 case CPU_VR41XX: 888 case CPU_VR41XX:
@@ -1192,7 +1193,7 @@ static void __init setup_scache(void)
1192 printk("Unified secondary cache %ldkB %s, linesize %d bytes.\n", 1193 printk("Unified secondary cache %ldkB %s, linesize %d bytes.\n",
1193 scache_size >> 10, way_string[c->scache.ways], c->scache.linesz); 1194 scache_size >> 10, way_string[c->scache.ways], c->scache.linesz);
1194 1195
1195 c->options |= MIPS_CPU_SUBSET_CACHES; 1196 c->options |= MIPS_CPU_INCLUSIVE_CACHES;
1196} 1197}
1197 1198
1198void au1x00_fixup_config_od(void) 1199void au1x00_fixup_config_od(void)
diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c
index 802bdd32aa2b..c52497bb102a 100644
--- a/arch/mips/mm/init.c
+++ b/arch/mips/mm/init.c
@@ -139,10 +139,36 @@ void __init fixrange_init(unsigned long start, unsigned long end,
139#ifndef CONFIG_NEED_MULTIPLE_NODES 139#ifndef CONFIG_NEED_MULTIPLE_NODES
140extern void pagetable_init(void); 140extern void pagetable_init(void);
141 141
142static int __init page_is_ram(unsigned long pagenr)
143{
144 int i;
145
146 for (i = 0; i < boot_mem_map.nr_map; i++) {
147 unsigned long addr, end;
148
149 if (boot_mem_map.map[i].type != BOOT_MEM_RAM)
150 /* not usable memory */
151 continue;
152
153 addr = PFN_UP(boot_mem_map.map[i].addr);
154 end = PFN_DOWN(boot_mem_map.map[i].addr +
155 boot_mem_map.map[i].size);
156
157 if (pagenr >= addr && pagenr < end)
158 return 1;
159 }
160
161 return 0;
162}
163
142void __init paging_init(void) 164void __init paging_init(void)
143{ 165{
144 unsigned long zones_size[MAX_NR_ZONES] = {0, 0, 0}; 166 unsigned long zones_size[] = { [0 ... MAX_NR_ZONES - 1] = 0 };
145 unsigned long max_dma, high, low; 167 unsigned long max_dma, high, low;
168#ifndef CONFIG_FLATMEM
169 unsigned long zholes_size[] = { [0 ... MAX_NR_ZONES - 1] = 0 };
170 unsigned long i, j, pfn;
171#endif
146 172
147 pagetable_init(); 173 pagetable_init();
148 174
@@ -174,29 +200,16 @@ void __init paging_init(void)
174 zones_size[ZONE_HIGHMEM] = high - low; 200 zones_size[ZONE_HIGHMEM] = high - low;
175#endif 201#endif
176 202
203#ifdef CONFIG_FLATMEM
177 free_area_init(zones_size); 204 free_area_init(zones_size);
178} 205#else
179 206 pfn = 0;
180static inline int page_is_ram(unsigned long pagenr) 207 for (i = 0; i < MAX_NR_ZONES; i++)
181{ 208 for (j = 0; j < zones_size[i]; j++, pfn++)
182 int i; 209 if (!page_is_ram(pfn))
183 210 zholes_size[i]++;
184 for (i = 0; i < boot_mem_map.nr_map; i++) { 211 free_area_init_node(0, NODE_DATA(0), zones_size, 0, zholes_size);
185 unsigned long addr, end; 212#endif
186
187 if (boot_mem_map.map[i].type != BOOT_MEM_RAM)
188 /* not usable memory */
189 continue;
190
191 addr = PFN_UP(boot_mem_map.map[i].addr);
192 end = PFN_DOWN(boot_mem_map.map[i].addr +
193 boot_mem_map.map[i].size);
194
195 if (pagenr >= addr && pagenr < end)
196 return 1;
197 }
198
199 return 0;
200} 213}
201 214
202static struct kcore_list kcore_mem, kcore_vmalloc; 215static struct kcore_list kcore_mem, kcore_vmalloc;
@@ -213,9 +226,9 @@ void __init mem_init(void)
213#ifdef CONFIG_DISCONTIGMEM 226#ifdef CONFIG_DISCONTIGMEM
214#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet" 227#error "CONFIG_HIGHMEM and CONFIG_DISCONTIGMEM dont work together yet"
215#endif 228#endif
216 max_mapnr = num_physpages = highend_pfn; 229 max_mapnr = highend_pfn;
217#else 230#else
218 max_mapnr = num_physpages = max_low_pfn; 231 max_mapnr = max_low_pfn;
219#endif 232#endif
220 high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT); 233 high_memory = (void *) __va(max_low_pfn << PAGE_SHIFT);
221 234
@@ -229,6 +242,7 @@ void __init mem_init(void)
229 if (PageReserved(pfn_to_page(tmp))) 242 if (PageReserved(pfn_to_page(tmp)))
230 reservedpages++; 243 reservedpages++;
231 } 244 }
245 num_physpages = ram;
232 246
233#ifdef CONFIG_HIGHMEM 247#ifdef CONFIG_HIGHMEM
234 for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) { 248 for (tmp = highstart_pfn; tmp < highend_pfn; tmp++) {
@@ -247,6 +261,7 @@ void __init mem_init(void)
247 totalhigh_pages++; 261 totalhigh_pages++;
248 } 262 }
249 totalram_pages += totalhigh_pages; 263 totalram_pages += totalhigh_pages;
264 num_physpages += totalhigh_pages;
250#endif 265#endif
251 266
252 codesize = (unsigned long) &_etext - (unsigned long) &_text; 267 codesize = (unsigned long) &_etext - (unsigned long) &_text;
diff --git a/arch/mips/mm/pgtable.c b/arch/mips/mm/pgtable.c
index 792c6eb44232..c93aa6cbcaca 100644
--- a/arch/mips/mm/pgtable.c
+++ b/arch/mips/mm/pgtable.c
@@ -15,6 +15,8 @@ void show_mem(void)
15 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10)); 15 printk("Free swap: %6ldkB\n", nr_swap_pages<<(PAGE_SHIFT-10));
16 pfn = max_mapnr; 16 pfn = max_mapnr;
17 while (pfn-- > 0) { 17 while (pfn-- > 0) {
18 if (!pfn_valid(pfn))
19 continue;
18 page = pfn_to_page(pfn); 20 page = pfn_to_page(pfn);
19 total++; 21 total++;
20 if (PageHighMem(page)) 22 if (PageHighMem(page))
diff --git a/arch/mips/mm/tlbex.c b/arch/mips/mm/tlbex.c
index e1a8139fc8fb..375e0991505d 100644
--- a/arch/mips/mm/tlbex.c
+++ b/arch/mips/mm/tlbex.c
@@ -5,7 +5,7 @@
5 * 5 *
6 * Synthesize TLB refill handlers at runtime. 6 * Synthesize TLB refill handlers at runtime.
7 * 7 *
8 * Copyright (C) 2004,2005 by Thiemo Seufer 8 * Copyright (C) 2004,2005,2006 by Thiemo Seufer
9 * Copyright (C) 2005 Maciej W. Rozycki 9 * Copyright (C) 2005 Maciej W. Rozycki
10 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org) 10 * Copyright (C) 2006 Ralf Baechle (ralf@linux-mips.org)
11 * 11 *
@@ -35,8 +35,6 @@
35#include <asm/smp.h> 35#include <asm/smp.h>
36#include <asm/war.h> 36#include <asm/war.h>
37 37
38/* #define DEBUG_TLB */
39
40static __init int __attribute__((unused)) r45k_bvahwbug(void) 38static __init int __attribute__((unused)) r45k_bvahwbug(void)
41{ 39{
42 /* XXX: We should probe for the presence of this bug, but we don't. */ 40 /* XXX: We should probe for the presence of this bug, but we don't. */
@@ -728,6 +726,7 @@ static void __init build_r3000_tlb_refill_handler(void)
728{ 726{
729 long pgdc = (long)pgd_current; 727 long pgdc = (long)pgd_current;
730 u32 *p; 728 u32 *p;
729 int i;
731 730
732 memset(tlb_handler, 0, sizeof(tlb_handler)); 731 memset(tlb_handler, 0, sizeof(tlb_handler));
733 p = tlb_handler; 732 p = tlb_handler;
@@ -753,16 +752,14 @@ static void __init build_r3000_tlb_refill_handler(void)
753 if (p > tlb_handler + 32) 752 if (p > tlb_handler + 32)
754 panic("TLB refill handler space exceeded"); 753 panic("TLB refill handler space exceeded");
755 754
756 printk("Synthesized TLB refill handler (%u instructions).\n", 755 pr_info("Synthesized TLB refill handler (%u instructions).\n",
757 (unsigned int)(p - tlb_handler)); 756 (unsigned int)(p - tlb_handler));
758#ifdef DEBUG_TLB
759 {
760 int i;
761 757
762 for (i = 0; i < (p - tlb_handler); i++) 758 pr_debug("\t.set push\n");
763 printk("%08x\n", tlb_handler[i]); 759 pr_debug("\t.set noreorder\n");
764 } 760 for (i = 0; i < (p - tlb_handler); i++)
765#endif 761 pr_debug("\t.word 0x%08x\n", tlb_handler[i]);
762 pr_debug("\t.set pop\n");
766 763
767 memcpy((void *)ebase, tlb_handler, 0x80); 764 memcpy((void *)ebase, tlb_handler, 0x80);
768} 765}
@@ -1175,6 +1172,7 @@ static void __init build_r4000_tlb_refill_handler(void)
1175 struct reloc *r = relocs; 1172 struct reloc *r = relocs;
1176 u32 *f; 1173 u32 *f;
1177 unsigned int final_len; 1174 unsigned int final_len;
1175 int i;
1178 1176
1179 memset(tlb_handler, 0, sizeof(tlb_handler)); 1177 memset(tlb_handler, 0, sizeof(tlb_handler));
1180 memset(labels, 0, sizeof(labels)); 1178 memset(labels, 0, sizeof(labels));
@@ -1272,24 +1270,21 @@ static void __init build_r4000_tlb_refill_handler(void)
1272#endif /* CONFIG_64BIT */ 1270#endif /* CONFIG_64BIT */
1273 1271
1274 resolve_relocs(relocs, labels); 1272 resolve_relocs(relocs, labels);
1275 printk("Synthesized TLB refill handler (%u instructions).\n", 1273 pr_info("Synthesized TLB refill handler (%u instructions).\n",
1276 final_len); 1274 final_len);
1277
1278#ifdef DEBUG_TLB
1279 {
1280 int i;
1281 1275
1282 f = final_handler; 1276 f = final_handler;
1283#ifdef CONFIG_64BIT 1277#ifdef CONFIG_64BIT
1284 if (final_len > 32) 1278 if (final_len > 32)
1285 final_len = 64; 1279 final_len = 64;
1286 else 1280 else
1287 f = final_handler + 32; 1281 f = final_handler + 32;
1288#endif /* CONFIG_64BIT */ 1282#endif /* CONFIG_64BIT */
1289 for (i = 0; i < final_len; i++) 1283 pr_debug("\t.set push\n");
1290 printk("%08x\n", f[i]); 1284 pr_debug("\t.set noreorder\n");
1291 } 1285 for (i = 0; i < final_len; i++)
1292#endif 1286 pr_debug("\t.word 0x%08x\n", f[i]);
1287 pr_debug("\t.set pop\n");
1293 1288
1294 memcpy((void *)ebase, final_handler, 0x100); 1289 memcpy((void *)ebase, final_handler, 0x100);
1295} 1290}
@@ -1522,6 +1517,7 @@ static void __init build_r3000_tlb_load_handler(void)
1522 u32 *p = handle_tlbl; 1517 u32 *p = handle_tlbl;
1523 struct label *l = labels; 1518 struct label *l = labels;
1524 struct reloc *r = relocs; 1519 struct reloc *r = relocs;
1520 int i;
1525 1521
1526 memset(handle_tlbl, 0, sizeof(handle_tlbl)); 1522 memset(handle_tlbl, 0, sizeof(handle_tlbl));
1527 memset(labels, 0, sizeof(labels)); 1523 memset(labels, 0, sizeof(labels));
@@ -1541,17 +1537,14 @@ static void __init build_r3000_tlb_load_handler(void)
1541 panic("TLB load handler fastpath space exceeded"); 1537 panic("TLB load handler fastpath space exceeded");
1542 1538
1543 resolve_relocs(relocs, labels); 1539 resolve_relocs(relocs, labels);
1544 printk("Synthesized TLB load handler fastpath (%u instructions).\n", 1540 pr_info("Synthesized TLB load handler fastpath (%u instructions).\n",
1545 (unsigned int)(p - handle_tlbl)); 1541 (unsigned int)(p - handle_tlbl));
1546
1547#ifdef DEBUG_TLB
1548 {
1549 int i;
1550 1542
1551 for (i = 0; i < (p - handle_tlbl); i++) 1543 pr_debug("\t.set push\n");
1552 printk("%08x\n", handle_tlbl[i]); 1544 pr_debug("\t.set noreorder\n");
1553 } 1545 for (i = 0; i < (p - handle_tlbl); i++)
1554#endif 1546 pr_debug("\t.word 0x%08x\n", handle_tlbl[i]);
1547 pr_debug("\t.set pop\n");
1555} 1548}
1556 1549
1557static void __init build_r3000_tlb_store_handler(void) 1550static void __init build_r3000_tlb_store_handler(void)
@@ -1559,6 +1552,7 @@ static void __init build_r3000_tlb_store_handler(void)
1559 u32 *p = handle_tlbs; 1552 u32 *p = handle_tlbs;
1560 struct label *l = labels; 1553 struct label *l = labels;
1561 struct reloc *r = relocs; 1554 struct reloc *r = relocs;
1555 int i;
1562 1556
1563 memset(handle_tlbs, 0, sizeof(handle_tlbs)); 1557 memset(handle_tlbs, 0, sizeof(handle_tlbs));
1564 memset(labels, 0, sizeof(labels)); 1558 memset(labels, 0, sizeof(labels));
@@ -1578,17 +1572,14 @@ static void __init build_r3000_tlb_store_handler(void)
1578 panic("TLB store handler fastpath space exceeded"); 1572 panic("TLB store handler fastpath space exceeded");
1579 1573
1580 resolve_relocs(relocs, labels); 1574 resolve_relocs(relocs, labels);
1581 printk("Synthesized TLB store handler fastpath (%u instructions).\n", 1575 pr_info("Synthesized TLB store handler fastpath (%u instructions).\n",
1582 (unsigned int)(p - handle_tlbs)); 1576 (unsigned int)(p - handle_tlbs));
1583 1577
1584#ifdef DEBUG_TLB 1578 pr_debug("\t.set push\n");
1585 { 1579 pr_debug("\t.set noreorder\n");
1586 int i; 1580 for (i = 0; i < (p - handle_tlbs); i++)
1587 1581 pr_debug("\t.word 0x%08x\n", handle_tlbs[i]);
1588 for (i = 0; i < (p - handle_tlbs); i++) 1582 pr_debug("\t.set pop\n");
1589 printk("%08x\n", handle_tlbs[i]);
1590 }
1591#endif
1592} 1583}
1593 1584
1594static void __init build_r3000_tlb_modify_handler(void) 1585static void __init build_r3000_tlb_modify_handler(void)
@@ -1596,6 +1587,7 @@ static void __init build_r3000_tlb_modify_handler(void)
1596 u32 *p = handle_tlbm; 1587 u32 *p = handle_tlbm;
1597 struct label *l = labels; 1588 struct label *l = labels;
1598 struct reloc *r = relocs; 1589 struct reloc *r = relocs;
1590 int i;
1599 1591
1600 memset(handle_tlbm, 0, sizeof(handle_tlbm)); 1592 memset(handle_tlbm, 0, sizeof(handle_tlbm));
1601 memset(labels, 0, sizeof(labels)); 1593 memset(labels, 0, sizeof(labels));
@@ -1615,17 +1607,14 @@ static void __init build_r3000_tlb_modify_handler(void)
1615 panic("TLB modify handler fastpath space exceeded"); 1607 panic("TLB modify handler fastpath space exceeded");
1616 1608
1617 resolve_relocs(relocs, labels); 1609 resolve_relocs(relocs, labels);
1618 printk("Synthesized TLB modify handler fastpath (%u instructions).\n", 1610 pr_info("Synthesized TLB modify handler fastpath (%u instructions).\n",
1619 (unsigned int)(p - handle_tlbm)); 1611 (unsigned int)(p - handle_tlbm));
1620 1612
1621#ifdef DEBUG_TLB 1613 pr_debug("\t.set push\n");
1622 { 1614 pr_debug("\t.set noreorder\n");
1623 int i; 1615 for (i = 0; i < (p - handle_tlbm); i++)
1624 1616 pr_debug("\t.word 0x%08x\n", handle_tlbm[i]);
1625 for (i = 0; i < (p - handle_tlbm); i++) 1617 pr_debug("\t.set pop\n");
1626 printk("%08x\n", handle_tlbm[i]);
1627 }
1628#endif
1629} 1618}
1630 1619
1631/* 1620/*
@@ -1677,6 +1666,7 @@ static void __init build_r4000_tlb_load_handler(void)
1677 u32 *p = handle_tlbl; 1666 u32 *p = handle_tlbl;
1678 struct label *l = labels; 1667 struct label *l = labels;
1679 struct reloc *r = relocs; 1668 struct reloc *r = relocs;
1669 int i;
1680 1670
1681 memset(handle_tlbl, 0, sizeof(handle_tlbl)); 1671 memset(handle_tlbl, 0, sizeof(handle_tlbl));
1682 memset(labels, 0, sizeof(labels)); 1672 memset(labels, 0, sizeof(labels));
@@ -1704,17 +1694,14 @@ static void __init build_r4000_tlb_load_handler(void)
1704 panic("TLB load handler fastpath space exceeded"); 1694 panic("TLB load handler fastpath space exceeded");
1705 1695
1706 resolve_relocs(relocs, labels); 1696 resolve_relocs(relocs, labels);
1707 printk("Synthesized TLB load handler fastpath (%u instructions).\n", 1697 pr_info("Synthesized TLB load handler fastpath (%u instructions).\n",
1708 (unsigned int)(p - handle_tlbl)); 1698 (unsigned int)(p - handle_tlbl));
1709
1710#ifdef DEBUG_TLB
1711 {
1712 int i;
1713 1699
1714 for (i = 0; i < (p - handle_tlbl); i++) 1700 pr_debug("\t.set push\n");
1715 printk("%08x\n", handle_tlbl[i]); 1701 pr_debug("\t.set noreorder\n");
1716 } 1702 for (i = 0; i < (p - handle_tlbl); i++)
1717#endif 1703 pr_debug("\t.word 0x%08x\n", handle_tlbl[i]);
1704 pr_debug("\t.set pop\n");
1718} 1705}
1719 1706
1720static void __init build_r4000_tlb_store_handler(void) 1707static void __init build_r4000_tlb_store_handler(void)
@@ -1722,6 +1709,7 @@ static void __init build_r4000_tlb_store_handler(void)
1722 u32 *p = handle_tlbs; 1709 u32 *p = handle_tlbs;
1723 struct label *l = labels; 1710 struct label *l = labels;
1724 struct reloc *r = relocs; 1711 struct reloc *r = relocs;
1712 int i;
1725 1713
1726 memset(handle_tlbs, 0, sizeof(handle_tlbs)); 1714 memset(handle_tlbs, 0, sizeof(handle_tlbs));
1727 memset(labels, 0, sizeof(labels)); 1715 memset(labels, 0, sizeof(labels));
@@ -1740,17 +1728,14 @@ static void __init build_r4000_tlb_store_handler(void)
1740 panic("TLB store handler fastpath space exceeded"); 1728 panic("TLB store handler fastpath space exceeded");
1741 1729
1742 resolve_relocs(relocs, labels); 1730 resolve_relocs(relocs, labels);
1743 printk("Synthesized TLB store handler fastpath (%u instructions).\n", 1731 pr_info("Synthesized TLB store handler fastpath (%u instructions).\n",
1744 (unsigned int)(p - handle_tlbs)); 1732 (unsigned int)(p - handle_tlbs));
1745
1746#ifdef DEBUG_TLB
1747 {
1748 int i;
1749 1733
1750 for (i = 0; i < (p - handle_tlbs); i++) 1734 pr_debug("\t.set push\n");
1751 printk("%08x\n", handle_tlbs[i]); 1735 pr_debug("\t.set noreorder\n");
1752 } 1736 for (i = 0; i < (p - handle_tlbs); i++)
1753#endif 1737 pr_debug("\t.word 0x%08x\n", handle_tlbs[i]);
1738 pr_debug("\t.set pop\n");
1754} 1739}
1755 1740
1756static void __init build_r4000_tlb_modify_handler(void) 1741static void __init build_r4000_tlb_modify_handler(void)
@@ -1758,6 +1743,7 @@ static void __init build_r4000_tlb_modify_handler(void)
1758 u32 *p = handle_tlbm; 1743 u32 *p = handle_tlbm;
1759 struct label *l = labels; 1744 struct label *l = labels;
1760 struct reloc *r = relocs; 1745 struct reloc *r = relocs;
1746 int i;
1761 1747
1762 memset(handle_tlbm, 0, sizeof(handle_tlbm)); 1748 memset(handle_tlbm, 0, sizeof(handle_tlbm));
1763 memset(labels, 0, sizeof(labels)); 1749 memset(labels, 0, sizeof(labels));
@@ -1777,17 +1763,14 @@ static void __init build_r4000_tlb_modify_handler(void)
1777 panic("TLB modify handler fastpath space exceeded"); 1763 panic("TLB modify handler fastpath space exceeded");
1778 1764
1779 resolve_relocs(relocs, labels); 1765 resolve_relocs(relocs, labels);
1780 printk("Synthesized TLB modify handler fastpath (%u instructions).\n", 1766 pr_info("Synthesized TLB modify handler fastpath (%u instructions).\n",
1781 (unsigned int)(p - handle_tlbm)); 1767 (unsigned int)(p - handle_tlbm));
1782 1768
1783#ifdef DEBUG_TLB 1769 pr_debug("\t.set push\n");
1784 { 1770 pr_debug("\t.set noreorder\n");
1785 int i; 1771 for (i = 0; i < (p - handle_tlbm); i++)
1786 1772 pr_debug("\t.word 0x%08x\n", handle_tlbm[i]);
1787 for (i = 0; i < (p - handle_tlbm); i++) 1773 pr_debug("\t.set pop\n");
1788 printk("%08x\n", handle_tlbm[i]);
1789 }
1790#endif
1791} 1774}
1792 1775
1793void __init build_tlb_refill_handler(void) 1776void __init build_tlb_refill_handler(void)
diff --git a/arch/mips/momentum/jaguar_atx/setup.c b/arch/mips/momentum/jaguar_atx/setup.c
index b08e6a0456c1..e6fe2992227d 100644
--- a/arch/mips/momentum/jaguar_atx/setup.c
+++ b/arch/mips/momentum/jaguar_atx/setup.c
@@ -212,7 +212,7 @@ int m48t37y_set_time(unsigned long sec)
212 return 0; 212 return 0;
213} 213}
214 214
215void momenco_timer_setup(struct irqaction *irq) 215void __init plat_timer_setup(struct irqaction *irq)
216{ 216{
217 setup_irq(8, irq); 217 setup_irq(8, irq);
218} 218}
@@ -226,7 +226,6 @@ void momenco_time_init(void)
226 wire_stupidity_into_tlb(); 226 wire_stupidity_into_tlb();
227 227
228 mips_hpt_frequency = cpu_clock / 2; 228 mips_hpt_frequency = cpu_clock / 2;
229 board_timer_setup = momenco_timer_setup;
230 229
231 rtc_mips_get_time = m48t37y_get_time; 230 rtc_mips_get_time = m48t37y_get_time;
232 rtc_mips_set_time = m48t37y_set_time; 231 rtc_mips_set_time = m48t37y_set_time;
diff --git a/arch/mips/momentum/ocelot_3/setup.c b/arch/mips/momentum/ocelot_3/setup.c
index 8c53490ba6f1..435d0787329e 100644
--- a/arch/mips/momentum/ocelot_3/setup.c
+++ b/arch/mips/momentum/ocelot_3/setup.c
@@ -197,7 +197,7 @@ int m48t37y_set_time(unsigned long sec)
197 return 0; 197 return 0;
198} 198}
199 199
200void momenco_timer_setup(struct irqaction *irq) 200void __init plat_timer_setup(struct irqaction *irq)
201{ 201{
202 setup_irq(7, irq); /* Timer interrupt, unmask status IM7 */ 202 setup_irq(7, irq); /* Timer interrupt, unmask status IM7 */
203} 203}
@@ -211,7 +211,6 @@ void momenco_time_init(void)
211 * the Rm7900 and the Rm7065C 211 * the Rm7900 and the Rm7065C
212 */ 212 */
213 mips_hpt_frequency = cpu_clock / 2; 213 mips_hpt_frequency = cpu_clock / 2;
214 board_timer_setup = momenco_timer_setup;
215 214
216 rtc_mips_get_time = m48t37y_get_time; 215 rtc_mips_get_time = m48t37y_get_time;
217 rtc_mips_set_time = m48t37y_set_time; 216 rtc_mips_set_time = m48t37y_set_time;
diff --git a/arch/mips/momentum/ocelot_c/cpci-irq.c b/arch/mips/momentum/ocelot_c/cpci-irq.c
index 31d179c4673f..a5dc230520df 100644
--- a/arch/mips/momentum/ocelot_c/cpci-irq.c
+++ b/arch/mips/momentum/ocelot_c/cpci-irq.c
@@ -128,7 +128,7 @@ void ll_cpci_irq(struct pt_regs *regs)
128 128
129#define shutdown_cpci_irq disable_cpci_irq 129#define shutdown_cpci_irq disable_cpci_irq
130 130
131struct hw_interrupt_type cpci_irq_type = { 131struct irq_chip cpci_irq_type = {
132 .typename = "CPCI/FPGA", 132 .typename = "CPCI/FPGA",
133 .startup = startup_cpci_irq, 133 .startup = startup_cpci_irq,
134 .shutdown = shutdown_cpci_irq, 134 .shutdown = shutdown_cpci_irq,
diff --git a/arch/mips/momentum/ocelot_c/setup.c b/arch/mips/momentum/ocelot_c/setup.c
index 6a4519936ee9..36f570ecc6fb 100644
--- a/arch/mips/momentum/ocelot_c/setup.c
+++ b/arch/mips/momentum/ocelot_c/setup.c
@@ -209,7 +209,7 @@ int m48t37y_set_time(unsigned long sec)
209 return 0; 209 return 0;
210} 210}
211 211
212void momenco_timer_setup(struct irqaction *irq) 212void __init plat_timer_setup(struct irqaction *irq)
213{ 213{
214 setup_irq(7, irq); 214 setup_irq(7, irq);
215} 215}
@@ -224,7 +224,6 @@ void momenco_time_init(void)
224#error Unknown CPU for this board 224#error Unknown CPU for this board
225#endif 225#endif
226 printk("momenco_time_init cpu_clock=%d\n", cpu_clock); 226 printk("momenco_time_init cpu_clock=%d\n", cpu_clock);
227 board_timer_setup = momenco_timer_setup;
228 227
229 rtc_mips_get_time = m48t37y_get_time; 228 rtc_mips_get_time = m48t37y_get_time;
230 rtc_mips_set_time = m48t37y_set_time; 229 rtc_mips_set_time = m48t37y_set_time;
diff --git a/arch/mips/momentum/ocelot_c/uart-irq.c b/arch/mips/momentum/ocelot_c/uart-irq.c
index 852265026fd1..9f33d8f1d826 100644
--- a/arch/mips/momentum/ocelot_c/uart-irq.c
+++ b/arch/mips/momentum/ocelot_c/uart-irq.c
@@ -121,7 +121,7 @@ void ll_uart_irq(struct pt_regs *regs)
121 121
122#define shutdown_uart_irq disable_uart_irq 122#define shutdown_uart_irq disable_uart_irq
123 123
124struct hw_interrupt_type uart_irq_type = { 124struct irq_chip uart_irq_type = {
125 .typename = "UART/FPGA", 125 .typename = "UART/FPGA",
126 .startup = startup_uart_irq, 126 .startup = startup_uart_irq,
127 .shutdown = shutdown_uart_irq, 127 .shutdown = shutdown_uart_irq,
diff --git a/arch/mips/oprofile/op_model_mipsxx.c b/arch/mips/oprofile/op_model_mipsxx.c
index a09c5f901233..a175d673540f 100644
--- a/arch/mips/oprofile/op_model_mipsxx.c
+++ b/arch/mips/oprofile/op_model_mipsxx.c
@@ -49,6 +49,7 @@ static inline unsigned int r_c0_ ## r ## n(void) \
49 default: \ 49 default: \
50 BUG(); \ 50 BUG(); \
51 } \ 51 } \
52 return 0; \
52} \ 53} \
53 \ 54 \
54static inline void w_c0_ ## r ## n(unsigned int value) \ 55static inline void w_c0_ ## r ## n(unsigned int value) \
@@ -65,6 +66,7 @@ static inline void w_c0_ ## r ## n(unsigned int value) \
65 default: \ 66 default: \
66 BUG(); \ 67 BUG(); \
67 } \ 68 } \
69 return; \
68} \ 70} \
69 71
70__define_perf_accessors(perfcntr, 0, 2) 72__define_perf_accessors(perfcntr, 0, 2)
diff --git a/arch/mips/pci/fixup-emma2rh.c b/arch/mips/pci/fixup-emma2rh.c
index 3a34cd0efd6b..7abcfd175d43 100644
--- a/arch/mips/pci/fixup-emma2rh.c
+++ b/arch/mips/pci/fixup-emma2rh.c
@@ -23,7 +23,6 @@
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25 25
26#include <linux/config.h>
27#include <linux/kernel.h> 26#include <linux/kernel.h>
28#include <linux/init.h> 27#include <linux/init.h>
29#include <linux/types.h> 28#include <linux/types.h>
diff --git a/arch/mips/pci/fixup-mpc30x.c b/arch/mips/pci/fixup-mpc30x.c
index b67ddaa47122..3c9ae41f7517 100644
--- a/arch/mips/pci/fixup-mpc30x.c
+++ b/arch/mips/pci/fixup-mpc30x.c
@@ -21,7 +21,6 @@
21#include <linux/pci.h> 21#include <linux/pci.h>
22 22
23#include <asm/vr41xx/mpc30x.h> 23#include <asm/vr41xx/mpc30x.h>
24#include <asm/vr41xx/vrc4173.h>
25 24
26static const int internal_func_irqs[] __initdata = { 25static const int internal_func_irqs[] __initdata = {
27 VRC4173_CASCADE_IRQ, 26 VRC4173_CASCADE_IRQ,
diff --git a/arch/mips/pci/ops-emma2rh.c b/arch/mips/pci/ops-emma2rh.c
index e21b11bf66bc..38f181625e10 100644
--- a/arch/mips/pci/ops-emma2rh.c
+++ b/arch/mips/pci/ops-emma2rh.c
@@ -23,7 +23,6 @@
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25 25
26#include <linux/config.h>
27#include <linux/pci.h> 26#include <linux/pci.h>
28#include <linux/kernel.h> 27#include <linux/kernel.h>
29#include <linux/types.h> 28#include <linux/types.h>
diff --git a/arch/mips/pci/pci-emma2rh.c b/arch/mips/pci/pci-emma2rh.c
index 0f8b230057d3..d99591a0cdfe 100644
--- a/arch/mips/pci/pci-emma2rh.c
+++ b/arch/mips/pci/pci-emma2rh.c
@@ -23,7 +23,6 @@
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */ 24 */
25 25
26#include <linux/config.h>
27#include <linux/kernel.h> 26#include <linux/kernel.h>
28#include <linux/init.h> 27#include <linux/init.h>
29#include <linux/types.h> 28#include <linux/types.h>
diff --git a/arch/mips/philips/pnx8550/common/int.c b/arch/mips/philips/pnx8550/common/int.c
index 8aca317d4624..099679a9dfb9 100644
--- a/arch/mips/philips/pnx8550/common/int.c
+++ b/arch/mips/philips/pnx8550/common/int.c
@@ -207,7 +207,7 @@ static void end_irq(unsigned int irq)
207 } 207 }
208} 208}
209 209
210static struct hw_interrupt_type level_irq_type = { 210static struct irq_chip level_irq_type = {
211 .typename = "PNX Level IRQ", 211 .typename = "PNX Level IRQ",
212 .startup = startup_irq, 212 .startup = startup_irq,
213 .shutdown = shutdown_irq, 213 .shutdown = shutdown_irq,
diff --git a/arch/mips/philips/pnx8550/common/setup.c b/arch/mips/philips/pnx8550/common/setup.c
index 8ac81a9dc293..36b0c8bc6c06 100644
--- a/arch/mips/philips/pnx8550/common/setup.c
+++ b/arch/mips/philips/pnx8550/common/setup.c
@@ -20,6 +20,7 @@
20#include <linux/init.h> 20#include <linux/init.h>
21#include <linux/sched.h> 21#include <linux/sched.h>
22#include <linux/ioport.h> 22#include <linux/ioport.h>
23#include <linux/irq.h>
23#include <linux/mm.h> 24#include <linux/mm.h>
24#include <linux/delay.h> 25#include <linux/delay.h>
25#include <linux/interrupt.h> 26#include <linux/interrupt.h>
@@ -48,10 +49,7 @@ extern void pnx8550_machine_halt(void);
48extern void pnx8550_machine_power_off(void); 49extern void pnx8550_machine_power_off(void);
49extern struct resource ioport_resource; 50extern struct resource ioport_resource;
50extern struct resource iomem_resource; 51extern struct resource iomem_resource;
51extern void (*board_time_init)(void);
52extern void pnx8550_time_init(void); 52extern void pnx8550_time_init(void);
53extern void (*board_timer_setup)(struct irqaction *irq);
54extern void pnx8550_timer_setup(struct irqaction *irq);
55extern void rs_kgdb_hook(int tty_no); 53extern void rs_kgdb_hook(int tty_no);
56extern void prom_printf(char *fmt, ...); 54extern void prom_printf(char *fmt, ...);
57extern char *prom_getcmdline(void); 55extern char *prom_getcmdline(void);
@@ -110,7 +108,6 @@ void __init plat_mem_setup(void)
110 pm_power_off = pnx8550_machine_power_off; 108 pm_power_off = pnx8550_machine_power_off;
111 109
112 board_time_init = pnx8550_time_init; 110 board_time_init = pnx8550_time_init;
113 board_timer_setup = pnx8550_timer_setup;
114 111
115 /* Clear the Global 2 Register, PCI Inta Output Enable Registers 112 /* Clear the Global 2 Register, PCI Inta Output Enable Registers
116 Bit 1:Enable DAC Powerdown 113 Bit 1:Enable DAC Powerdown
diff --git a/arch/mips/philips/pnx8550/common/time.c b/arch/mips/philips/pnx8550/common/time.c
index 70664ea96b92..0af655b1f330 100644
--- a/arch/mips/philips/pnx8550/common/time.c
+++ b/arch/mips/philips/pnx8550/common/time.c
@@ -70,16 +70,7 @@ void pnx8550_time_init(void)
70 mips_hpt_frequency = 27UL * ((1000000UL * n)/(m * pow2p)); 70 mips_hpt_frequency = 27UL * ((1000000UL * n)/(m * pow2p));
71} 71}
72 72
73/* 73void __init plat_timer_setup(struct irqaction *irq)
74 * pnx8550_timer_setup() - it does the following things:
75 *
76 * 5) board_timer_setup() -
77 * a) (optional) over-write any choices made above by time_init().
78 * b) machine specific code should setup the timer irqaction.
79 * c) enable the timer interrupt
80 */
81
82void __init pnx8550_timer_setup(struct irqaction *irq)
83{ 74{
84 int configPR; 75 int configPR;
85 76
diff --git a/arch/mips/pmc-sierra/yosemite/setup.c b/arch/mips/pmc-sierra/yosemite/setup.c
index aa0d6ff3c6ec..0a6ee8e5eec2 100644
--- a/arch/mips/pmc-sierra/yosemite/setup.c
+++ b/arch/mips/pmc-sierra/yosemite/setup.c
@@ -133,14 +133,13 @@ int m48t37y_set_time(unsigned long sec)
133 return 0; 133 return 0;
134} 134}
135 135
136void yosemite_timer_setup(struct irqaction *irq) 136void __init plat_timer_setup(struct irqaction *irq)
137{ 137{
138 setup_irq(7, irq); 138 setup_irq(7, irq);
139} 139}
140 140
141void yosemite_time_init(void) 141void yosemite_time_init(void)
142{ 142{
143 board_timer_setup = yosemite_timer_setup;
144 mips_hpt_frequency = cpu_clock / 2; 143 mips_hpt_frequency = cpu_clock / 2;
145mips_hpt_frequency = 33000000 * 3 * 5; 144mips_hpt_frequency = 33000000 * 3 * 5;
146} 145}
diff --git a/arch/mips/qemu/q-reset.c b/arch/mips/qemu/q-reset.c
index c04ebcfc7843..dbbe44ad7e89 100644
--- a/arch/mips/qemu/q-reset.c
+++ b/arch/mips/qemu/q-reset.c
@@ -1,4 +1,3 @@
1#include <linux/config.h>
2 1
3#include <asm/io.h> 2#include <asm/io.h>
4#include <asm/reboot.h> 3#include <asm/reboot.h>
diff --git a/arch/mips/qemu/q-setup.c b/arch/mips/qemu/q-setup.c
index e100d6072e31..841394336f00 100644
--- a/arch/mips/qemu/q-setup.c
+++ b/arch/mips/qemu/q-setup.c
@@ -11,7 +11,7 @@ const char *get_system_type(void)
11 return "Qemu"; 11 return "Qemu";
12} 12}
13 13
14static void __init qemu_timer_setup(struct irqaction *irq) 14void __init plat_timer_setup(struct irqaction *irq)
15{ 15{
16 /* set the clock to 100 Hz */ 16 /* set the clock to 100 Hz */
17 outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */ 17 outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */
@@ -23,7 +23,5 @@ static void __init qemu_timer_setup(struct irqaction *irq)
23void __init plat_mem_setup(void) 23void __init plat_mem_setup(void)
24{ 24{
25 set_io_port_base(QEMU_PORT_BASE); 25 set_io_port_base(QEMU_PORT_BASE);
26 board_timer_setup = qemu_timer_setup;
27
28 qemu_reboot_setup(); 26 qemu_reboot_setup();
29} 27}
diff --git a/arch/mips/sgi-ip22/ip22-eisa.c b/arch/mips/sgi-ip22/ip22-eisa.c
index ce8e4a7869b0..ee0514a29922 100644
--- a/arch/mips/sgi-ip22/ip22-eisa.c
+++ b/arch/mips/sgi-ip22/ip22-eisa.c
@@ -144,7 +144,7 @@ static void end_eisa1_irq(unsigned int irq)
144 enable_eisa1_irq(irq); 144 enable_eisa1_irq(irq);
145} 145}
146 146
147static struct hw_interrupt_type ip22_eisa1_irq_type = { 147static struct irq_chip ip22_eisa1_irq_type = {
148 .typename = "IP22 EISA", 148 .typename = "IP22 EISA",
149 .startup = startup_eisa1_irq, 149 .startup = startup_eisa1_irq,
150 .shutdown = shutdown_eisa1_irq, 150 .shutdown = shutdown_eisa1_irq,
@@ -206,7 +206,7 @@ static void end_eisa2_irq(unsigned int irq)
206 enable_eisa2_irq(irq); 206 enable_eisa2_irq(irq);
207} 207}
208 208
209static struct hw_interrupt_type ip22_eisa2_irq_type = { 209static struct irq_chip ip22_eisa2_irq_type = {
210 .typename = "IP22 EISA", 210 .typename = "IP22 EISA",
211 .startup = startup_eisa2_irq, 211 .startup = startup_eisa2_irq,
212 .shutdown = shutdown_eisa2_irq, 212 .shutdown = shutdown_eisa2_irq,
diff --git a/arch/mips/sgi-ip22/ip22-int.c b/arch/mips/sgi-ip22/ip22-int.c
index 2d8762818d95..f66026e5d64b 100644
--- a/arch/mips/sgi-ip22/ip22-int.c
+++ b/arch/mips/sgi-ip22/ip22-int.c
@@ -74,7 +74,7 @@ static void end_local0_irq (unsigned int irq)
74 enable_local0_irq(irq); 74 enable_local0_irq(irq);
75} 75}
76 76
77static struct hw_interrupt_type ip22_local0_irq_type = { 77static struct irq_chip ip22_local0_irq_type = {
78 .typename = "IP22 local 0", 78 .typename = "IP22 local 0",
79 .startup = startup_local0_irq, 79 .startup = startup_local0_irq,
80 .shutdown = shutdown_local0_irq, 80 .shutdown = shutdown_local0_irq,
@@ -120,7 +120,7 @@ static void end_local1_irq (unsigned int irq)
120 enable_local1_irq(irq); 120 enable_local1_irq(irq);
121} 121}
122 122
123static struct hw_interrupt_type ip22_local1_irq_type = { 123static struct irq_chip ip22_local1_irq_type = {
124 .typename = "IP22 local 1", 124 .typename = "IP22 local 1",
125 .startup = startup_local1_irq, 125 .startup = startup_local1_irq,
126 .shutdown = shutdown_local1_irq, 126 .shutdown = shutdown_local1_irq,
@@ -166,7 +166,7 @@ static void end_local2_irq (unsigned int irq)
166 enable_local2_irq(irq); 166 enable_local2_irq(irq);
167} 167}
168 168
169static struct hw_interrupt_type ip22_local2_irq_type = { 169static struct irq_chip ip22_local2_irq_type = {
170 .typename = "IP22 local 2", 170 .typename = "IP22 local 2",
171 .startup = startup_local2_irq, 171 .startup = startup_local2_irq,
172 .shutdown = shutdown_local2_irq, 172 .shutdown = shutdown_local2_irq,
@@ -212,7 +212,7 @@ static void end_local3_irq (unsigned int irq)
212 enable_local3_irq(irq); 212 enable_local3_irq(irq);
213} 213}
214 214
215static struct hw_interrupt_type ip22_local3_irq_type = { 215static struct irq_chip ip22_local3_irq_type = {
216 .typename = "IP22 local 3", 216 .typename = "IP22 local 3",
217 .startup = startup_local3_irq, 217 .startup = startup_local3_irq,
218 .shutdown = shutdown_local3_irq, 218 .shutdown = shutdown_local3_irq,
@@ -421,7 +421,7 @@ void __init arch_init_irq(void)
421 mips_cpu_irq_init(SGINT_CPU); 421 mips_cpu_irq_init(SGINT_CPU);
422 422
423 for (i = SGINT_LOCAL0; i < SGI_INTERRUPTS; i++) { 423 for (i = SGINT_LOCAL0; i < SGI_INTERRUPTS; i++) {
424 hw_irq_controller *handler; 424 struct irq_chip *handler;
425 425
426 if (i < SGINT_LOCAL1) 426 if (i < SGINT_LOCAL1)
427 handler = &ip22_local0_irq_type; 427 handler = &ip22_local0_irq_type;
diff --git a/arch/mips/sgi-ip22/ip22-time.c b/arch/mips/sgi-ip22/ip22-time.c
index cca688ad64ad..0e061890f797 100644
--- a/arch/mips/sgi-ip22/ip22-time.c
+++ b/arch/mips/sgi-ip22/ip22-time.c
@@ -7,11 +7,12 @@
7 * Ralf Baechle or David S. Miller (sorry guys, i'm really not sure) 7 * Ralf Baechle or David S. Miller (sorry guys, i'm really not sure)
8 * 8 *
9 * Copyright (C) 2001 by Ladislav Michl 9 * Copyright (C) 2001 by Ladislav Michl
10 * Copyright (C) 2003 Ralf Baechle (ralf@linux-mips.org) 10 * Copyright (C) 2003, 06 Ralf Baechle (ralf@linux-mips.org)
11 */ 11 */
12#include <linux/bcd.h> 12#include <linux/bcd.h>
13#include <linux/ds1286.h> 13#include <linux/ds1286.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/irq.h>
15#include <linux/kernel.h> 16#include <linux/kernel.h>
16#include <linux/interrupt.h> 17#include <linux/interrupt.h>
17#include <linux/kernel_stat.h> 18#include <linux/kernel_stat.h>
@@ -76,7 +77,7 @@ static int indy_rtc_set_time(unsigned long tim)
76 save_control = hpc3c0->rtcregs[RTC_CMD] & 0xff; 77 save_control = hpc3c0->rtcregs[RTC_CMD] & 0xff;
77 hpc3c0->rtcregs[RTC_CMD] = save_control | RTC_TE; 78 hpc3c0->rtcregs[RTC_CMD] = save_control | RTC_TE;
78 79
79 hpc3c0->rtcregs[RTC_YEAR] = BIN2BCD(tm.tm_sec); 80 hpc3c0->rtcregs[RTC_YEAR] = BIN2BCD(tm.tm_year);
80 hpc3c0->rtcregs[RTC_MONTH] = BIN2BCD(tm.tm_mon); 81 hpc3c0->rtcregs[RTC_MONTH] = BIN2BCD(tm.tm_mon);
81 hpc3c0->rtcregs[RTC_DATE] = BIN2BCD(tm.tm_mday); 82 hpc3c0->rtcregs[RTC_DATE] = BIN2BCD(tm.tm_mday);
82 hpc3c0->rtcregs[RTC_HOURS] = BIN2BCD(tm.tm_hour); 83 hpc3c0->rtcregs[RTC_HOURS] = BIN2BCD(tm.tm_hour);
@@ -198,9 +199,7 @@ void indy_r4k_timer_interrupt(struct pt_regs *regs)
198 irq_exit(); 199 irq_exit();
199} 200}
200 201
201extern int setup_irq(unsigned int irq, struct irqaction *irqaction); 202void __init plat_timer_setup(struct irqaction *irq)
202
203static void indy_timer_setup(struct irqaction *irq)
204{ 203{
205 /* over-write the handler, we use our own way */ 204 /* over-write the handler, we use our own way */
206 irq->handler = no_action; 205 irq->handler = no_action;
@@ -216,5 +215,4 @@ void __init ip22_time_init(void)
216 rtc_mips_set_time = indy_rtc_set_time; 215 rtc_mips_set_time = indy_rtc_set_time;
217 216
218 board_time_init = indy_time_init; 217 board_time_init = indy_time_init;
219 board_timer_setup = indy_timer_setup;
220} 218}
diff --git a/arch/mips/sgi-ip27/ip27-irq.c b/arch/mips/sgi-ip27/ip27-irq.c
index 597ec73359b7..24a85372284f 100644
--- a/arch/mips/sgi-ip27/ip27-irq.c
+++ b/arch/mips/sgi-ip27/ip27-irq.c
@@ -296,7 +296,6 @@ static void shutdown_bridge_irq(unsigned int irq)
296 struct bridge_controller *bc = IRQ_TO_BRIDGE(irq); 296 struct bridge_controller *bc = IRQ_TO_BRIDGE(irq);
297 struct hub_data *hub = hub_data(cpu_to_node(bc->irq_cpu)); 297 struct hub_data *hub = hub_data(cpu_to_node(bc->irq_cpu));
298 bridge_t *bridge = bc->base; 298 bridge_t *bridge = bc->base;
299 struct slice_data *si = cpu_data[bc->irq_cpu].data;
300 int pin, swlevel; 299 int pin, swlevel;
301 cpuid_t cpu; 300 cpuid_t cpu;
302 301
@@ -311,7 +310,6 @@ static void shutdown_bridge_irq(unsigned int irq)
311 intr_disconnect_level(cpu, swlevel); 310 intr_disconnect_level(cpu, swlevel);
312 311
313 __clear_bit(swlevel, hub->irq_alloc_mask); 312 __clear_bit(swlevel, hub->irq_alloc_mask);
314 si->level_to_irq[swlevel] = -1;
315 313
316 bridge->b_int_enable &= ~(1 << pin); 314 bridge->b_int_enable &= ~(1 << pin);
317 bridge->b_wid_tflush; 315 bridge->b_wid_tflush;
@@ -347,7 +345,7 @@ static void end_bridge_irq(unsigned int irq)
347 enable_bridge_irq(irq); 345 enable_bridge_irq(irq);
348} 346}
349 347
350static struct hw_interrupt_type bridge_irq_type = { 348static struct irq_chip bridge_irq_type = {
351 .typename = "bridge", 349 .typename = "bridge",
352 .startup = startup_bridge_irq, 350 .startup = startup_bridge_irq,
353 .shutdown = shutdown_bridge_irq, 351 .shutdown = shutdown_bridge_irq,
diff --git a/arch/mips/sgi-ip27/ip27-timer.c b/arch/mips/sgi-ip27/ip27-timer.c
index 3ca614a851e5..b029ba79c27a 100644
--- a/arch/mips/sgi-ip27/ip27-timer.c
+++ b/arch/mips/sgi-ip27/ip27-timer.c
@@ -1,5 +1,5 @@
1/* 1/*
2 * Copytight (C) 1999, 2000, 05 Ralf Baechle (ralf@linux-mips.org) 2 * Copytight (C) 1999, 2000, 05, 06 Ralf Baechle (ralf@linux-mips.org)
3 * Copytight (C) 1999, 2000 Silicon Graphics, Inc. 3 * Copytight (C) 1999, 2000 Silicon Graphics, Inc.
4 */ 4 */
5#include <linux/bcd.h> 5#include <linux/bcd.h>
@@ -181,8 +181,9 @@ static __init unsigned long get_m48t35_time(void)
181 return mktime(year, month, date, hour, min, sec); 181 return mktime(year, month, date, hour, min, sec);
182} 182}
183 183
184static void startup_rt_irq(unsigned int irq) 184static unsigned int startup_rt_irq(unsigned int irq)
185{ 185{
186 return 0;
186} 187}
187 188
188static void shutdown_rt_irq(unsigned int irq) 189static void shutdown_rt_irq(unsigned int irq)
@@ -205,7 +206,7 @@ static void end_rt_irq(unsigned int irq)
205{ 206{
206} 207}
207 208
208static struct hw_interrupt_type rt_irq_type = { 209static struct irq_chip rt_irq_type = {
209 .typename = "SN HUB RT timer", 210 .typename = "SN HUB RT timer",
210 .startup = startup_rt_irq, 211 .startup = startup_rt_irq,
211 .shutdown = shutdown_rt_irq, 212 .shutdown = shutdown_rt_irq,
@@ -224,17 +225,17 @@ static struct irqaction rt_irqaction = {
224 225
225extern int allocate_irqno(void); 226extern int allocate_irqno(void);
226 227
227static void ip27_timer_setup(struct irqaction *irq) 228void __init plat_timer_setup(struct irqaction *irq)
228{ 229{
229 int irqno = allocate_irqno(); 230 int irqno = allocate_irqno();
230 231
231 if (irqno < 0) 232 if (irqno < 0)
232 panic("Can't allocate interrupt number for timer interrupt"); 233 panic("Can't allocate interrupt number for timer interrupt");
233 234
234 irq_desc[irqno].status = IRQ_DISABLED; 235 irq_desc[irqno].status = IRQ_DISABLED;
235 irq_desc[irqno].action = NULL; 236 irq_desc[irqno].action = NULL;
236 irq_desc[irqno].depth = 1; 237 irq_desc[irqno].depth = 1;
237 irq_desc[irqno].handler = &rt_irq_type; 238 irq_desc[irqno].chip = &rt_irq_type;
238 239
239 /* over-write the handler, we use our own way */ 240 /* over-write the handler, we use our own way */
240 irq->handler = no_action; 241 irq->handler = no_action;
@@ -243,6 +244,10 @@ static void ip27_timer_setup(struct irqaction *irq)
243 irq_desc[irqno].status |= IRQ_PER_CPU; 244 irq_desc[irqno].status |= IRQ_PER_CPU;
244 245
245 rt_timer_irq = irqno; 246 rt_timer_irq = irqno;
247 /*
248 * Only needed to get /proc/interrupt to display timer irq stats
249 */
250 setup_irq(irqno, &rt_irqaction);
246} 251}
247 252
248void __init ip27_time_init(void) 253void __init ip27_time_init(void)
@@ -251,8 +256,6 @@ void __init ip27_time_init(void)
251 xtime.tv_nsec = 0; 256 xtime.tv_nsec = 0;
252 257
253 do_gettimeoffset = ip27_do_gettimeoffset; 258 do_gettimeoffset = ip27_do_gettimeoffset;
254
255 board_timer_setup = ip27_timer_setup;
256} 259}
257 260
258void __init cpu_time_init(void) 261void __init cpu_time_init(void)
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index 3b7e74b6222e..c64a820373de 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -160,7 +160,7 @@ static void end_cpu_irq(unsigned int irq)
160#define shutdown_cpu_irq disable_cpu_irq 160#define shutdown_cpu_irq disable_cpu_irq
161#define mask_and_ack_cpu_irq disable_cpu_irq 161#define mask_and_ack_cpu_irq disable_cpu_irq
162 162
163static struct hw_interrupt_type ip32_cpu_interrupt = { 163static struct irq_chip ip32_cpu_interrupt = {
164 .typename = "IP32 CPU", 164 .typename = "IP32 CPU",
165 .startup = startup_cpu_irq, 165 .startup = startup_cpu_irq,
166 .shutdown = shutdown_cpu_irq, 166 .shutdown = shutdown_cpu_irq,
@@ -230,7 +230,7 @@ static void end_crime_irq(unsigned int irq)
230 230
231#define shutdown_crime_irq disable_crime_irq 231#define shutdown_crime_irq disable_crime_irq
232 232
233static struct hw_interrupt_type ip32_crime_interrupt = { 233static struct irq_chip ip32_crime_interrupt = {
234 .typename = "IP32 CRIME", 234 .typename = "IP32 CRIME",
235 .startup = startup_crime_irq, 235 .startup = startup_crime_irq,
236 .shutdown = shutdown_crime_irq, 236 .shutdown = shutdown_crime_irq,
@@ -289,7 +289,7 @@ static void end_macepci_irq(unsigned int irq)
289#define shutdown_macepci_irq disable_macepci_irq 289#define shutdown_macepci_irq disable_macepci_irq
290#define mask_and_ack_macepci_irq disable_macepci_irq 290#define mask_and_ack_macepci_irq disable_macepci_irq
291 291
292static struct hw_interrupt_type ip32_macepci_interrupt = { 292static struct irq_chip ip32_macepci_interrupt = {
293 .typename = "IP32 MACE PCI", 293 .typename = "IP32 MACE PCI",
294 .startup = startup_macepci_irq, 294 .startup = startup_macepci_irq,
295 .shutdown = shutdown_macepci_irq, 295 .shutdown = shutdown_macepci_irq,
@@ -316,9 +316,9 @@ static struct hw_interrupt_type ip32_macepci_interrupt = {
316 MACEISA_KEYB_POLL_INT | \ 316 MACEISA_KEYB_POLL_INT | \
317 MACEISA_MOUSE_INT | \ 317 MACEISA_MOUSE_INT | \
318 MACEISA_MOUSE_POLL_INT | \ 318 MACEISA_MOUSE_POLL_INT | \
319 MACEIIRQF_TIMER0_INT | \ 319 MACEISA_TIMER0_INT | \
320 MACEIIRQF_TIMER1_INT | \ 320 MACEISA_TIMER1_INT | \
321 MACEIIRQF_TIMER2_INT) 321 MACEISA_TIMER2_INT)
322#define MACEISA_SUPERIO_INT (MACEISA_PARALLEL_INT | \ 322#define MACEISA_SUPERIO_INT (MACEISA_PARALLEL_INT | \
323 MACEISA_PAR_CTXA_INT | \ 323 MACEISA_PAR_CTXA_INT | \
324 MACEISA_PAR_CTXB_INT | \ 324 MACEISA_PAR_CTXB_INT | \
@@ -349,7 +349,7 @@ static void enable_maceisa_irq (unsigned int irq)
349 case MACEISA_AUDIO_SW_IRQ ... MACEISA_AUDIO3_MERR_IRQ: 349 case MACEISA_AUDIO_SW_IRQ ... MACEISA_AUDIO3_MERR_IRQ:
350 crime_int = MACE_AUDIO_INT; 350 crime_int = MACE_AUDIO_INT;
351 break; 351 break;
352 case MACEISA_RTC_IRQ ... MACEIIRQF_TIMER2_IRQ: 352 case MACEISA_RTC_IRQ ... MACEISA_TIMER2_IRQ:
353 crime_int = MACE_MISC_INT; 353 crime_int = MACE_MISC_INT;
354 break; 354 break;
355 case MACEISA_PARALLEL_IRQ ... MACEISA_SERIAL2_RDMAOR_IRQ: 355 case MACEISA_PARALLEL_IRQ ... MACEISA_SERIAL2_RDMAOR_IRQ:
@@ -419,7 +419,7 @@ static void end_maceisa_irq(unsigned irq)
419 419
420#define shutdown_maceisa_irq disable_maceisa_irq 420#define shutdown_maceisa_irq disable_maceisa_irq
421 421
422static struct hw_interrupt_type ip32_maceisa_interrupt = { 422static struct irq_chip ip32_maceisa_interrupt = {
423 .typename = "IP32 MACE ISA", 423 .typename = "IP32 MACE ISA",
424 .startup = startup_maceisa_irq, 424 .startup = startup_maceisa_irq,
425 .shutdown = shutdown_maceisa_irq, 425 .shutdown = shutdown_maceisa_irq,
@@ -469,7 +469,7 @@ static void end_mace_irq(unsigned int irq)
469#define shutdown_mace_irq disable_mace_irq 469#define shutdown_mace_irq disable_mace_irq
470#define mask_and_ack_mace_irq disable_mace_irq 470#define mask_and_ack_mace_irq disable_mace_irq
471 471
472static struct hw_interrupt_type ip32_mace_interrupt = { 472static struct irq_chip ip32_mace_interrupt = {
473 .typename = "IP32 MACE", 473 .typename = "IP32 MACE",
474 .startup = startup_mace_irq, 474 .startup = startup_mace_irq,
475 .shutdown = shutdown_mace_irq, 475 .shutdown = shutdown_mace_irq,
@@ -575,7 +575,7 @@ void __init arch_init_irq(void)
575 mace->perif.ctrl.imask = 0; 575 mace->perif.ctrl.imask = 0;
576 576
577 for (irq = 0; irq <= IP32_IRQ_MAX; irq++) { 577 for (irq = 0; irq <= IP32_IRQ_MAX; irq++) {
578 hw_irq_controller *controller; 578 struct irq_chip *controller;
579 579
580 if (irq == IP32_R4K_TIMER_IRQ) 580 if (irq == IP32_R4K_TIMER_IRQ)
581 controller = &ip32_cpu_interrupt; 581 controller = &ip32_cpu_interrupt;
diff --git a/arch/mips/sgi-ip32/ip32-setup.c b/arch/mips/sgi-ip32/ip32-setup.c
index 240a2f981d08..57708fe28bd7 100644
--- a/arch/mips/sgi-ip32/ip32-setup.c
+++ b/arch/mips/sgi-ip32/ip32-setup.c
@@ -7,6 +7,7 @@
7 * 7 *
8 * Copyright (C) 2000 Harald Koerfgen 8 * Copyright (C) 2000 Harald Koerfgen
9 * Copyright (C) 2002, 2003, 2005 Ilya A. Volynets 9 * Copyright (C) 2002, 2003, 2005 Ilya A. Volynets
10 * Copyright (C) 2006 Ralf Baechle <ralf@linux-mips.org>
10 */ 11 */
11#include <linux/console.h> 12#include <linux/console.h>
12#include <linux/init.h> 13#include <linux/init.h>
@@ -80,7 +81,7 @@ void __init ip32_time_init(void)
80 printk("%d MHz CPU detected\n", mips_hpt_frequency * 2 / 1000000); 81 printk("%d MHz CPU detected\n", mips_hpt_frequency * 2 / 1000000);
81} 82}
82 83
83void __init ip32_timer_setup(struct irqaction *irq) 84void __init plat_timer_setup(struct irqaction *irq)
84{ 85{
85 irq->handler = no_action; 86 irq->handler = no_action;
86 setup_irq(IP32_R4K_TIMER_IRQ, irq); 87 setup_irq(IP32_R4K_TIMER_IRQ, irq);
@@ -94,7 +95,6 @@ void __init plat_mem_setup(void)
94 rtc_mips_set_mmss = mc146818_set_rtc_mmss; 95 rtc_mips_set_mmss = mc146818_set_rtc_mmss;
95 96
96 board_time_init = ip32_time_init; 97 board_time_init = ip32_time_init;
97 board_timer_setup = ip32_timer_setup;
98 98
99#ifdef CONFIG_SERIAL_8250 99#ifdef CONFIG_SERIAL_8250
100 { 100 {
diff --git a/arch/mips/sibyte/bcm1480/irq.c b/arch/mips/sibyte/bcm1480/irq.c
index 29d3bbb5847d..ed325f0ab28a 100644
--- a/arch/mips/sibyte/bcm1480/irq.c
+++ b/arch/mips/sibyte/bcm1480/irq.c
@@ -83,7 +83,7 @@ extern char sb1250_duart_present[];
83#endif 83#endif
84#endif 84#endif
85 85
86static struct hw_interrupt_type bcm1480_irq_type = { 86static struct irq_chip bcm1480_irq_type = {
87 .typename = "BCM1480-IMR", 87 .typename = "BCM1480-IMR",
88 .startup = startup_bcm1480_irq, 88 .startup = startup_bcm1480_irq,
89 .shutdown = shutdown_bcm1480_irq, 89 .shutdown = shutdown_bcm1480_irq,
@@ -140,7 +140,7 @@ static void bcm1480_set_affinity(unsigned int irq, cpumask_t mask)
140{ 140{
141 int i = 0, old_cpu, cpu, int_on, k; 141 int i = 0, old_cpu, cpu, int_on, k;
142 u64 cur_ints; 142 u64 cur_ints;
143 irq_desc_t *desc = irq_desc + irq; 143 struct irq_desc *desc = irq_desc + irq;
144 unsigned long flags; 144 unsigned long flags;
145 unsigned int irq_dirty; 145 unsigned int irq_dirty;
146 146
@@ -278,7 +278,7 @@ void __init init_bcm1480_irqs(void)
278 irq_desc[i].chip = &bcm1480_irq_type; 278 irq_desc[i].chip = &bcm1480_irq_type;
279 bcm1480_irq_owner[i] = 0; 279 bcm1480_irq_owner[i] = 0;
280 } else { 280 } else {
281 irq_desc[i].chip = &no_irq_type; 281 irq_desc[i].chip = &no_irq_chip;
282 } 282 }
283 } 283 }
284} 284}
@@ -301,7 +301,7 @@ static struct irqaction bcm1480_dummy_action = {
301 301
302int bcm1480_steal_irq(int irq) 302int bcm1480_steal_irq(int irq)
303{ 303{
304 irq_desc_t *desc = irq_desc + irq; 304 struct irq_desc *desc = irq_desc + irq;
305 unsigned long flags; 305 unsigned long flags;
306 int retval = 0; 306 int retval = 0;
307 307
@@ -502,22 +502,23 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
502#ifdef CONFIG_SIBYTE_BCM1480_PROF 502#ifdef CONFIG_SIBYTE_BCM1480_PROF
503 if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */ 503 if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
504 sbprof_cpu_intr(exception_epc(regs)); 504 sbprof_cpu_intr(exception_epc(regs));
505 else
505#endif 506#endif
506 507
507 if (pending & CAUSEF_IP4) 508 if (pending & CAUSEF_IP4)
508 bcm1480_timer_interrupt(regs); 509 bcm1480_timer_interrupt(regs);
509 510
510#ifdef CONFIG_SMP 511#ifdef CONFIG_SMP
511 if (pending & CAUSEF_IP3) 512 else if (pending & CAUSEF_IP3)
512 bcm1480_mailbox_interrupt(regs); 513 bcm1480_mailbox_interrupt(regs);
513#endif 514#endif
514 515
515#ifdef CONFIG_KGDB 516#ifdef CONFIG_KGDB
516 if (pending & CAUSEF_IP6) 517 else if (pending & CAUSEF_IP6)
517 bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */ 518 bcm1480_kgdb_interrupt(regs); /* KGDB (uart 1) */
518#endif 519#endif
519 520
520 if (pending & CAUSEF_IP2) { 521 else if (pending & CAUSEF_IP2) {
521 unsigned long long mask_h, mask_l; 522 unsigned long long mask_h, mask_l;
522 unsigned long base; 523 unsigned long base;
523 524
@@ -533,7 +534,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
533 mask_l = __raw_readq( 534 mask_l = __raw_readq(
534 IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L)); 535 IOADDR(base + R_BCM1480_IMR_INTERRUPT_STATUS_BASE_L));
535 536
536 if (!mask_h) { 537 if (mask_h) {
537 if (mask_h ^ 1) 538 if (mask_h ^ 1)
538 do_IRQ(63 - dclz(mask_h), regs); 539 do_IRQ(63 - dclz(mask_h), regs);
539 else 540 else
diff --git a/arch/mips/sibyte/sb1250/irq.c b/arch/mips/sibyte/sb1250/irq.c
index 1d280aabcf6a..1de71adec6c6 100644
--- a/arch/mips/sibyte/sb1250/irq.c
+++ b/arch/mips/sibyte/sb1250/irq.c
@@ -69,7 +69,7 @@ extern char sb1250_duart_present[];
69#endif 69#endif
70#endif 70#endif
71 71
72static struct hw_interrupt_type sb1250_irq_type = { 72static struct irq_chip sb1250_irq_type = {
73 .typename = "SB1250-IMR", 73 .typename = "SB1250-IMR",
74 .startup = startup_sb1250_irq, 74 .startup = startup_sb1250_irq,
75 .shutdown = shutdown_sb1250_irq, 75 .shutdown = shutdown_sb1250_irq,
@@ -120,7 +120,7 @@ static void sb1250_set_affinity(unsigned int irq, cpumask_t mask)
120{ 120{
121 int i = 0, old_cpu, cpu, int_on; 121 int i = 0, old_cpu, cpu, int_on;
122 u64 cur_ints; 122 u64 cur_ints;
123 irq_desc_t *desc = irq_desc + irq; 123 struct irq_desc *desc = irq_desc + irq;
124 unsigned long flags; 124 unsigned long flags;
125 125
126 i = first_cpu(mask); 126 i = first_cpu(mask);
@@ -248,7 +248,7 @@ void __init init_sb1250_irqs(void)
248 irq_desc[i].chip = &sb1250_irq_type; 248 irq_desc[i].chip = &sb1250_irq_type;
249 sb1250_irq_owner[i] = 0; 249 sb1250_irq_owner[i] = 0;
250 } else { 250 } else {
251 irq_desc[i].chip = &no_irq_type; 251 irq_desc[i].chip = &no_irq_chip;
252 } 252 }
253 } 253 }
254} 254}
@@ -271,7 +271,7 @@ static struct irqaction sb1250_dummy_action = {
271 271
272int sb1250_steal_irq(int irq) 272int sb1250_steal_irq(int irq)
273{ 273{
274 irq_desc_t *desc = irq_desc + irq; 274 struct irq_desc *desc = irq_desc + irq;
275 unsigned long flags; 275 unsigned long flags;
276 int retval = 0; 276 int retval = 0;
277 277
@@ -460,25 +460,25 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs)
460 pending = read_c0_cause(); 460 pending = read_c0_cause();
461 461
462#ifdef CONFIG_SIBYTE_SB1250_PROF 462#ifdef CONFIG_SIBYTE_SB1250_PROF
463 if (pending & CAUSEF_IP7) { /* Cpu performance counter interrupt */ 463 if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */
464 sbprof_cpu_intr(exception_epc(regs)); 464 sbprof_cpu_intr(exception_epc(regs));
465 } 465 else
466#endif 466#endif
467 467
468 if (pending & CAUSEF_IP4) 468 if (pending & CAUSEF_IP4)
469 sb1250_timer_interrupt(regs); 469 sb1250_timer_interrupt(regs);
470 470
471#ifdef CONFIG_SMP 471#ifdef CONFIG_SMP
472 if (pending & CAUSEF_IP3) 472 else if (pending & CAUSEF_IP3)
473 sb1250_mailbox_interrupt(regs); 473 sb1250_mailbox_interrupt(regs);
474#endif 474#endif
475 475
476#ifdef CONFIG_KGDB 476#ifdef CONFIG_KGDB
477 if (pending & CAUSEF_IP6) /* KGDB (uart 1) */ 477 else if (pending & CAUSEF_IP6) /* KGDB (uart 1) */
478 sb1250_kgdb_interrupt(regs); 478 sb1250_kgdb_interrupt(regs);
479#endif 479#endif
480 480
481 if (pending & CAUSEF_IP2) { 481 else if (pending & CAUSEF_IP2) {
482 unsigned long long mask; 482 unsigned long long mask;
483 483
484 /* 484 /*
diff --git a/arch/mips/sibyte/swarm/setup.c b/arch/mips/sibyte/swarm/setup.c
index 2996e338cfbd..ac342f5643c9 100644
--- a/arch/mips/sibyte/swarm/setup.c
+++ b/arch/mips/sibyte/swarm/setup.c
@@ -77,7 +77,7 @@ void __init swarm_time_init(void)
77#endif 77#endif
78} 78}
79 79
80void __init swarm_timer_setup(struct irqaction *irq) 80void __init plat_timer_setup(struct irqaction *irq)
81{ 81{
82 /* 82 /*
83 * we don't set up irqaction, because we will deliver timer 83 * we don't set up irqaction, because we will deliver timer
@@ -117,7 +117,6 @@ void __init plat_mem_setup(void)
117 panic_timeout = 5; /* For debug. */ 117 panic_timeout = 5; /* For debug. */
118 118
119 board_time_init = swarm_time_init; 119 board_time_init = swarm_time_init;
120 board_timer_setup = swarm_timer_setup;
121 board_be_handler = swarm_be_handler; 120 board_be_handler = swarm_be_handler;
122 121
123 if (xicor_probe()) { 122 if (xicor_probe()) {
diff --git a/arch/mips/sni/irq.c b/arch/mips/sni/irq.c
index c19e158ec402..cda165f42b6a 100644
--- a/arch/mips/sni/irq.c
+++ b/arch/mips/sni/irq.c
@@ -55,7 +55,7 @@ static void end_pciasic_irq(unsigned int irq)
55 enable_pciasic_irq(irq); 55 enable_pciasic_irq(irq);
56} 56}
57 57
58static struct hw_interrupt_type pciasic_irq_type = { 58static struct irq_chip pciasic_irq_type = {
59 .typename = "ASIC-PCI", 59 .typename = "ASIC-PCI",
60 .startup = startup_pciasic_irq, 60 .startup = startup_pciasic_irq,
61 .shutdown = shutdown_pciasic_irq, 61 .shutdown = shutdown_pciasic_irq,
diff --git a/arch/mips/sni/setup.c b/arch/mips/sni/setup.c
index e5646b027f72..4e98feb15410 100644
--- a/arch/mips/sni/setup.c
+++ b/arch/mips/sni/setup.c
@@ -41,7 +41,7 @@ extern void sni_machine_restart(char *command);
41extern void sni_machine_halt(void); 41extern void sni_machine_halt(void);
42extern void sni_machine_power_off(void); 42extern void sni_machine_power_off(void);
43 43
44static void __init sni_rm200_pci_timer_setup(struct irqaction *irq) 44void __init plat_timer_setup(struct irqaction *irq)
45{ 45{
46 /* set the clock to 100 Hz */ 46 /* set the clock to 100 Hz */
47 outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */ 47 outb_p(0x34,0x43); /* binary, mode 2, LSB/MSB, ch 0 */
@@ -270,7 +270,6 @@ void __init plat_mem_setup(void)
270#endif 270#endif
271 271
272 sni_resource_init(); 272 sni_resource_init();
273 board_timer_setup = sni_rm200_pci_timer_setup;
274 273
275 _machine_restart = sni_machine_restart; 274 _machine_restart = sni_machine_restart;
276 _machine_halt = sni_machine_halt; 275 _machine_halt = sni_machine_halt;
diff --git a/arch/mips/tx4927/common/tx4927_irq.c b/arch/mips/tx4927/common/tx4927_irq.c
index ae9d5653a863..cd176f6a06c8 100644
--- a/arch/mips/tx4927/common/tx4927_irq.c
+++ b/arch/mips/tx4927/common/tx4927_irq.c
@@ -146,7 +146,7 @@ static DEFINE_SPINLOCK(tx4927_cp0_lock);
146static DEFINE_SPINLOCK(tx4927_pic_lock); 146static DEFINE_SPINLOCK(tx4927_pic_lock);
147 147
148#define TX4927_CP0_NAME "TX4927-CP0" 148#define TX4927_CP0_NAME "TX4927-CP0"
149static struct hw_interrupt_type tx4927_irq_cp0_type = { 149static struct irq_chip tx4927_irq_cp0_type = {
150 .typename = TX4927_CP0_NAME, 150 .typename = TX4927_CP0_NAME,
151 .startup = tx4927_irq_cp0_startup, 151 .startup = tx4927_irq_cp0_startup,
152 .shutdown = tx4927_irq_cp0_shutdown, 152 .shutdown = tx4927_irq_cp0_shutdown,
@@ -158,7 +158,7 @@ static struct hw_interrupt_type tx4927_irq_cp0_type = {
158}; 158};
159 159
160#define TX4927_PIC_NAME "TX4927-PIC" 160#define TX4927_PIC_NAME "TX4927-PIC"
161static struct hw_interrupt_type tx4927_irq_pic_type = { 161static struct irq_chip tx4927_irq_pic_type = {
162 .typename = TX4927_PIC_NAME, 162 .typename = TX4927_PIC_NAME,
163 .startup = tx4927_irq_pic_startup, 163 .startup = tx4927_irq_pic_startup,
164 .shutdown = tx4927_irq_pic_shutdown, 164 .shutdown = tx4927_irq_pic_shutdown,
diff --git a/arch/mips/tx4927/common/tx4927_setup.c b/arch/mips/tx4927/common/tx4927_setup.c
index 64a1b394b252..3ace4037343e 100644
--- a/arch/mips/tx4927/common/tx4927_setup.c
+++ b/arch/mips/tx4927/common/tx4927_setup.c
@@ -50,7 +50,6 @@
50#undef DEBUG 50#undef DEBUG
51 51
52void __init tx4927_time_init(void); 52void __init tx4927_time_init(void);
53void __init tx4927_timer_setup(struct irqaction *irq);
54void dump_cp0(char *key); 53void dump_cp0(char *key);
55 54
56 55
@@ -66,7 +65,6 @@ static void tx4927_write_buffer_flush(void)
66void __init plat_mem_setup(void) 65void __init plat_mem_setup(void)
67{ 66{
68 board_time_init = tx4927_time_init; 67 board_time_init = tx4927_time_init;
69 board_timer_setup = tx4927_timer_setup;
70 __wbflush = tx4927_write_buffer_flush; 68 __wbflush = tx4927_write_buffer_flush;
71 69
72#ifdef CONFIG_TOSHIBA_RBTX4927 70#ifdef CONFIG_TOSHIBA_RBTX4927
@@ -91,7 +89,7 @@ void __init tx4927_time_init(void)
91} 89}
92 90
93 91
94void __init tx4927_timer_setup(struct irqaction *irq) 92void __init plat_timer_setup(struct irqaction *irq)
95{ 93{
96 u32 count; 94 u32 count;
97 u32 c1; 95 u32 c1;
diff --git a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
index ec0a0de3083d..b0f021f2a6c4 100644
--- a/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
+++ b/arch/mips/tx4927/toshiba_rbtx4927/toshiba_rbtx4927_irq.c
@@ -251,7 +251,7 @@ static DEFINE_SPINLOCK(toshiba_rbtx4927_ioc_lock);
251 251
252 252
253#define TOSHIBA_RBTX4927_IOC_NAME "RBTX4927-IOC" 253#define TOSHIBA_RBTX4927_IOC_NAME "RBTX4927-IOC"
254static struct hw_interrupt_type toshiba_rbtx4927_irq_ioc_type = { 254static struct irq_chip toshiba_rbtx4927_irq_ioc_type = {
255 .typename = TOSHIBA_RBTX4927_IOC_NAME, 255 .typename = TOSHIBA_RBTX4927_IOC_NAME,
256 .startup = toshiba_rbtx4927_irq_ioc_startup, 256 .startup = toshiba_rbtx4927_irq_ioc_startup,
257 .shutdown = toshiba_rbtx4927_irq_ioc_shutdown, 257 .shutdown = toshiba_rbtx4927_irq_ioc_shutdown,
@@ -267,7 +267,7 @@ static struct hw_interrupt_type toshiba_rbtx4927_irq_ioc_type = {
267 267
268#ifdef CONFIG_TOSHIBA_FPCIB0 268#ifdef CONFIG_TOSHIBA_FPCIB0
269#define TOSHIBA_RBTX4927_ISA_NAME "RBTX4927-ISA" 269#define TOSHIBA_RBTX4927_ISA_NAME "RBTX4927-ISA"
270static struct hw_interrupt_type toshiba_rbtx4927_irq_isa_type = { 270static struct irq_chip toshiba_rbtx4927_irq_isa_type = {
271 .typename = TOSHIBA_RBTX4927_ISA_NAME, 271 .typename = TOSHIBA_RBTX4927_ISA_NAME,
272 .startup = toshiba_rbtx4927_irq_isa_startup, 272 .startup = toshiba_rbtx4927_irq_isa_startup,
273 .shutdown = toshiba_rbtx4927_irq_isa_shutdown, 273 .shutdown = toshiba_rbtx4927_irq_isa_shutdown,
diff --git a/arch/mips/tx4938/common/irq.c b/arch/mips/tx4938/common/irq.c
index 0b2f8c849218..dc30d66123b6 100644
--- a/arch/mips/tx4938/common/irq.c
+++ b/arch/mips/tx4938/common/irq.c
@@ -57,7 +57,7 @@ DEFINE_SPINLOCK(tx4938_cp0_lock);
57DEFINE_SPINLOCK(tx4938_pic_lock); 57DEFINE_SPINLOCK(tx4938_pic_lock);
58 58
59#define TX4938_CP0_NAME "TX4938-CP0" 59#define TX4938_CP0_NAME "TX4938-CP0"
60static struct hw_interrupt_type tx4938_irq_cp0_type = { 60static struct irq_chip tx4938_irq_cp0_type = {
61 .typename = TX4938_CP0_NAME, 61 .typename = TX4938_CP0_NAME,
62 .startup = tx4938_irq_cp0_startup, 62 .startup = tx4938_irq_cp0_startup,
63 .shutdown = tx4938_irq_cp0_shutdown, 63 .shutdown = tx4938_irq_cp0_shutdown,
@@ -69,7 +69,7 @@ static struct hw_interrupt_type tx4938_irq_cp0_type = {
69}; 69};
70 70
71#define TX4938_PIC_NAME "TX4938-PIC" 71#define TX4938_PIC_NAME "TX4938-PIC"
72static struct hw_interrupt_type tx4938_irq_pic_type = { 72static struct irq_chip tx4938_irq_pic_type = {
73 .typename = TX4938_PIC_NAME, 73 .typename = TX4938_PIC_NAME,
74 .startup = tx4938_irq_pic_startup, 74 .startup = tx4938_irq_pic_startup,
75 .shutdown = tx4938_irq_pic_shutdown, 75 .shutdown = tx4938_irq_pic_shutdown,
diff --git a/arch/mips/tx4938/common/setup.c b/arch/mips/tx4938/common/setup.c
index ef59a5cffc69..71859c4fee84 100644
--- a/arch/mips/tx4938/common/setup.c
+++ b/arch/mips/tx4938/common/setup.c
@@ -39,7 +39,6 @@ extern void rbtx4938_time_init(void);
39 39
40void __init tx4938_setup(void); 40void __init tx4938_setup(void);
41void __init tx4938_time_init(void); 41void __init tx4938_time_init(void);
42void __init tx4938_timer_setup(struct irqaction *irq);
43void dump_cp0(char *key); 42void dump_cp0(char *key);
44 43
45void (*__wbflush) (void); 44void (*__wbflush) (void);
@@ -64,7 +63,6 @@ void __init
64plat_mem_setup(void) 63plat_mem_setup(void)
65{ 64{
66 board_time_init = tx4938_time_init; 65 board_time_init = tx4938_time_init;
67 board_timer_setup = tx4938_timer_setup;
68 __wbflush = tx4938_write_buffer_flush; 66 __wbflush = tx4938_write_buffer_flush;
69 toshiba_rbtx4938_setup(); 67 toshiba_rbtx4938_setup();
70} 68}
@@ -75,8 +73,7 @@ tx4938_time_init(void)
75 rbtx4938_time_init(); 73 rbtx4938_time_init();
76} 74}
77 75
78void __init 76void __init plat_timer_setup(struct irqaction *irq)
79tx4938_timer_setup(struct irqaction *irq)
80{ 77{
81 u32 count; 78 u32 count;
82 u32 c1; 79 u32 c1;
diff --git a/arch/mips/tx4938/toshiba_rbtx4938/irq.c b/arch/mips/tx4938/toshiba_rbtx4938/irq.c
index 3b8245dc5bd3..83f2750825a4 100644
--- a/arch/mips/tx4938/toshiba_rbtx4938/irq.c
+++ b/arch/mips/tx4938/toshiba_rbtx4938/irq.c
@@ -97,7 +97,7 @@ static void toshiba_rbtx4938_irq_ioc_end(unsigned int irq);
97DEFINE_SPINLOCK(toshiba_rbtx4938_ioc_lock); 97DEFINE_SPINLOCK(toshiba_rbtx4938_ioc_lock);
98 98
99#define TOSHIBA_RBTX4938_IOC_NAME "RBTX4938-IOC" 99#define TOSHIBA_RBTX4938_IOC_NAME "RBTX4938-IOC"
100static struct hw_interrupt_type toshiba_rbtx4938_irq_ioc_type = { 100static struct irq_chip toshiba_rbtx4938_irq_ioc_type = {
101 .typename = TOSHIBA_RBTX4938_IOC_NAME, 101 .typename = TOSHIBA_RBTX4938_IOC_NAME,
102 .startup = toshiba_rbtx4938_irq_ioc_startup, 102 .startup = toshiba_rbtx4938_irq_ioc_startup,
103 .shutdown = toshiba_rbtx4938_irq_ioc_shutdown, 103 .shutdown = toshiba_rbtx4938_irq_ioc_shutdown,
diff --git a/arch/mips/vr41xx/Kconfig b/arch/mips/vr41xx/Kconfig
index 6046ef23b2bf..92f41f6f934a 100644
--- a/arch/mips/vr41xx/Kconfig
+++ b/arch/mips/vr41xx/Kconfig
@@ -86,9 +86,3 @@ config PCI_VR41XX
86 depends on MACH_VR41XX && HW_HAS_PCI 86 depends on MACH_VR41XX && HW_HAS_PCI
87 default y 87 default y
88 select PCI 88 select PCI
89
90config VRC4173
91 tristate "Add NEC VRC4173 companion chip support"
92 depends on MACH_VR41XX && PCI_VR41XX
93 help
94 The NEC VRC4173 is a companion chip for NEC VR4122/VR4131.
diff --git a/arch/mips/vr41xx/casio-e55/setup.c b/arch/mips/vr41xx/casio-e55/setup.c
index 814900915c28..6d9bab890587 100644
--- a/arch/mips/vr41xx/casio-e55/setup.c
+++ b/arch/mips/vr41xx/casio-e55/setup.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * setup.c, Setup for the CASIO CASSIOPEIA E-11/15/55/65. 2 * setup.c, Setup for the CASIO CASSIOPEIA E-11/15/55/65.
3 * 3 *
4 * Copyright (C) 2002-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 4 * Copyright (C) 2002-2006 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -21,13 +21,18 @@
21#include <linux/ioport.h> 21#include <linux/ioport.h>
22 22
23#include <asm/io.h> 23#include <asm/io.h>
24#include <asm/vr41xx/e55.h> 24
25#define E55_ISA_IO_BASE 0x1400c000
26#define E55_ISA_IO_SIZE 0x03ff4000
27#define E55_ISA_IO_START 0
28#define E55_ISA_IO_END (E55_ISA_IO_SIZE - 1)
29#define E55_IO_PORT_BASE KSEG1ADDR(E55_ISA_IO_BASE)
25 30
26static int __init casio_e55_setup(void) 31static int __init casio_e55_setup(void)
27{ 32{
28 set_io_port_base(IO_PORT_BASE); 33 set_io_port_base(E55_IO_PORT_BASE);
29 ioport_resource.start = IO_PORT_RESOURCE_START; 34 ioport_resource.start = E55_ISA_IO_START;
30 ioport_resource.end = IO_PORT_RESOURCE_END; 35 ioport_resource.end = E55_ISA_IO_END;
31 36
32 return 0; 37 return 0;
33} 38}
diff --git a/arch/mips/vr41xx/common/Makefile b/arch/mips/vr41xx/common/Makefile
index aa373974c80f..975d5caf9d1b 100644
--- a/arch/mips/vr41xx/common/Makefile
+++ b/arch/mips/vr41xx/common/Makefile
@@ -2,7 +2,6 @@
2# Makefile for common code of the NEC VR4100 series. 2# Makefile for common code of the NEC VR4100 series.
3# 3#
4 4
5obj-y += bcu.o cmu.o icu.o init.o irq.o pmu.o type.o 5obj-y += bcu.o cmu.o icu.o init.o irq.o pmu.o type.o
6obj-$(CONFIG_VRC4173) += vrc4173.o
7 6
8EXTRA_AFLAGS := $(CFLAGS) 7EXTRA_AFLAGS := $(CFLAGS)
diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
index b9323302cc4e..7a5c31d58378 100644
--- a/arch/mips/vr41xx/common/icu.c
+++ b/arch/mips/vr41xx/common/icu.c
@@ -38,6 +38,7 @@
38 38
39#include <asm/cpu.h> 39#include <asm/cpu.h>
40#include <asm/io.h> 40#include <asm/io.h>
41#include <asm/vr41xx/irq.h>
41#include <asm/vr41xx/vr41xx.h> 42#include <asm/vr41xx/vr41xx.h>
42 43
43static void __iomem *icu1_base; 44static void __iomem *icu1_base;
@@ -152,7 +153,7 @@ static inline uint16_t icu2_clear(uint8_t offset, uint16_t clear)
152 153
153void vr41xx_enable_piuint(uint16_t mask) 154void vr41xx_enable_piuint(uint16_t mask)
154{ 155{
155 irq_desc_t *desc = irq_desc + PIU_IRQ; 156 struct irq_desc *desc = irq_desc + PIU_IRQ;
156 unsigned long flags; 157 unsigned long flags;
157 158
158 if (current_cpu_data.cputype == CPU_VR4111 || 159 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -167,7 +168,7 @@ EXPORT_SYMBOL(vr41xx_enable_piuint);
167 168
168void vr41xx_disable_piuint(uint16_t mask) 169void vr41xx_disable_piuint(uint16_t mask)
169{ 170{
170 irq_desc_t *desc = irq_desc + PIU_IRQ; 171 struct irq_desc *desc = irq_desc + PIU_IRQ;
171 unsigned long flags; 172 unsigned long flags;
172 173
173 if (current_cpu_data.cputype == CPU_VR4111 || 174 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -182,7 +183,7 @@ EXPORT_SYMBOL(vr41xx_disable_piuint);
182 183
183void vr41xx_enable_aiuint(uint16_t mask) 184void vr41xx_enable_aiuint(uint16_t mask)
184{ 185{
185 irq_desc_t *desc = irq_desc + AIU_IRQ; 186 struct irq_desc *desc = irq_desc + AIU_IRQ;
186 unsigned long flags; 187 unsigned long flags;
187 188
188 if (current_cpu_data.cputype == CPU_VR4111 || 189 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -197,7 +198,7 @@ EXPORT_SYMBOL(vr41xx_enable_aiuint);
197 198
198void vr41xx_disable_aiuint(uint16_t mask) 199void vr41xx_disable_aiuint(uint16_t mask)
199{ 200{
200 irq_desc_t *desc = irq_desc + AIU_IRQ; 201 struct irq_desc *desc = irq_desc + AIU_IRQ;
201 unsigned long flags; 202 unsigned long flags;
202 203
203 if (current_cpu_data.cputype == CPU_VR4111 || 204 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -212,7 +213,7 @@ EXPORT_SYMBOL(vr41xx_disable_aiuint);
212 213
213void vr41xx_enable_kiuint(uint16_t mask) 214void vr41xx_enable_kiuint(uint16_t mask)
214{ 215{
215 irq_desc_t *desc = irq_desc + KIU_IRQ; 216 struct irq_desc *desc = irq_desc + KIU_IRQ;
216 unsigned long flags; 217 unsigned long flags;
217 218
218 if (current_cpu_data.cputype == CPU_VR4111 || 219 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -227,7 +228,7 @@ EXPORT_SYMBOL(vr41xx_enable_kiuint);
227 228
228void vr41xx_disable_kiuint(uint16_t mask) 229void vr41xx_disable_kiuint(uint16_t mask)
229{ 230{
230 irq_desc_t *desc = irq_desc + KIU_IRQ; 231 struct irq_desc *desc = irq_desc + KIU_IRQ;
231 unsigned long flags; 232 unsigned long flags;
232 233
233 if (current_cpu_data.cputype == CPU_VR4111 || 234 if (current_cpu_data.cputype == CPU_VR4111 ||
@@ -242,7 +243,7 @@ EXPORT_SYMBOL(vr41xx_disable_kiuint);
242 243
243void vr41xx_enable_dsiuint(uint16_t mask) 244void vr41xx_enable_dsiuint(uint16_t mask)
244{ 245{
245 irq_desc_t *desc = irq_desc + DSIU_IRQ; 246 struct irq_desc *desc = irq_desc + DSIU_IRQ;
246 unsigned long flags; 247 unsigned long flags;
247 248
248 spin_lock_irqsave(&desc->lock, flags); 249 spin_lock_irqsave(&desc->lock, flags);
@@ -254,7 +255,7 @@ EXPORT_SYMBOL(vr41xx_enable_dsiuint);
254 255
255void vr41xx_disable_dsiuint(uint16_t mask) 256void vr41xx_disable_dsiuint(uint16_t mask)
256{ 257{
257 irq_desc_t *desc = irq_desc + DSIU_IRQ; 258 struct irq_desc *desc = irq_desc + DSIU_IRQ;
258 unsigned long flags; 259 unsigned long flags;
259 260
260 spin_lock_irqsave(&desc->lock, flags); 261 spin_lock_irqsave(&desc->lock, flags);
@@ -266,7 +267,7 @@ EXPORT_SYMBOL(vr41xx_disable_dsiuint);
266 267
267void vr41xx_enable_firint(uint16_t mask) 268void vr41xx_enable_firint(uint16_t mask)
268{ 269{
269 irq_desc_t *desc = irq_desc + FIR_IRQ; 270 struct irq_desc *desc = irq_desc + FIR_IRQ;
270 unsigned long flags; 271 unsigned long flags;
271 272
272 spin_lock_irqsave(&desc->lock, flags); 273 spin_lock_irqsave(&desc->lock, flags);
@@ -278,7 +279,7 @@ EXPORT_SYMBOL(vr41xx_enable_firint);
278 279
279void vr41xx_disable_firint(uint16_t mask) 280void vr41xx_disable_firint(uint16_t mask)
280{ 281{
281 irq_desc_t *desc = irq_desc + FIR_IRQ; 282 struct irq_desc *desc = irq_desc + FIR_IRQ;
282 unsigned long flags; 283 unsigned long flags;
283 284
284 spin_lock_irqsave(&desc->lock, flags); 285 spin_lock_irqsave(&desc->lock, flags);
@@ -290,7 +291,7 @@ EXPORT_SYMBOL(vr41xx_disable_firint);
290 291
291void vr41xx_enable_pciint(void) 292void vr41xx_enable_pciint(void)
292{ 293{
293 irq_desc_t *desc = irq_desc + PCI_IRQ; 294 struct irq_desc *desc = irq_desc + PCI_IRQ;
294 unsigned long flags; 295 unsigned long flags;
295 296
296 if (current_cpu_data.cputype == CPU_VR4122 || 297 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -306,7 +307,7 @@ EXPORT_SYMBOL(vr41xx_enable_pciint);
306 307
307void vr41xx_disable_pciint(void) 308void vr41xx_disable_pciint(void)
308{ 309{
309 irq_desc_t *desc = irq_desc + PCI_IRQ; 310 struct irq_desc *desc = irq_desc + PCI_IRQ;
310 unsigned long flags; 311 unsigned long flags;
311 312
312 if (current_cpu_data.cputype == CPU_VR4122 || 313 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -322,7 +323,7 @@ EXPORT_SYMBOL(vr41xx_disable_pciint);
322 323
323void vr41xx_enable_scuint(void) 324void vr41xx_enable_scuint(void)
324{ 325{
325 irq_desc_t *desc = irq_desc + SCU_IRQ; 326 struct irq_desc *desc = irq_desc + SCU_IRQ;
326 unsigned long flags; 327 unsigned long flags;
327 328
328 if (current_cpu_data.cputype == CPU_VR4122 || 329 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -338,7 +339,7 @@ EXPORT_SYMBOL(vr41xx_enable_scuint);
338 339
339void vr41xx_disable_scuint(void) 340void vr41xx_disable_scuint(void)
340{ 341{
341 irq_desc_t *desc = irq_desc + SCU_IRQ; 342 struct irq_desc *desc = irq_desc + SCU_IRQ;
342 unsigned long flags; 343 unsigned long flags;
343 344
344 if (current_cpu_data.cputype == CPU_VR4122 || 345 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -354,7 +355,7 @@ EXPORT_SYMBOL(vr41xx_disable_scuint);
354 355
355void vr41xx_enable_csiint(uint16_t mask) 356void vr41xx_enable_csiint(uint16_t mask)
356{ 357{
357 irq_desc_t *desc = irq_desc + CSI_IRQ; 358 struct irq_desc *desc = irq_desc + CSI_IRQ;
358 unsigned long flags; 359 unsigned long flags;
359 360
360 if (current_cpu_data.cputype == CPU_VR4122 || 361 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -370,7 +371,7 @@ EXPORT_SYMBOL(vr41xx_enable_csiint);
370 371
371void vr41xx_disable_csiint(uint16_t mask) 372void vr41xx_disable_csiint(uint16_t mask)
372{ 373{
373 irq_desc_t *desc = irq_desc + CSI_IRQ; 374 struct irq_desc *desc = irq_desc + CSI_IRQ;
374 unsigned long flags; 375 unsigned long flags;
375 376
376 if (current_cpu_data.cputype == CPU_VR4122 || 377 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -386,7 +387,7 @@ EXPORT_SYMBOL(vr41xx_disable_csiint);
386 387
387void vr41xx_enable_bcuint(void) 388void vr41xx_enable_bcuint(void)
388{ 389{
389 irq_desc_t *desc = irq_desc + BCU_IRQ; 390 struct irq_desc *desc = irq_desc + BCU_IRQ;
390 unsigned long flags; 391 unsigned long flags;
391 392
392 if (current_cpu_data.cputype == CPU_VR4122 || 393 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -402,7 +403,7 @@ EXPORT_SYMBOL(vr41xx_enable_bcuint);
402 403
403void vr41xx_disable_bcuint(void) 404void vr41xx_disable_bcuint(void)
404{ 405{
405 irq_desc_t *desc = irq_desc + BCU_IRQ; 406 struct irq_desc *desc = irq_desc + BCU_IRQ;
406 unsigned long flags; 407 unsigned long flags;
407 408
408 if (current_cpu_data.cputype == CPU_VR4122 || 409 if (current_cpu_data.cputype == CPU_VR4122 ||
@@ -442,7 +443,7 @@ static void end_sysint1_irq(unsigned int irq)
442 icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq)); 443 icu1_set(MSYSINT1REG, 1 << SYSINT1_IRQ_TO_PIN(irq));
443} 444}
444 445
445static struct hw_interrupt_type sysint1_irq_type = { 446static struct irq_chip sysint1_irq_type = {
446 .typename = "SYSINT1", 447 .typename = "SYSINT1",
447 .startup = startup_sysint1_irq, 448 .startup = startup_sysint1_irq,
448 .shutdown = shutdown_sysint1_irq, 449 .shutdown = shutdown_sysint1_irq,
@@ -478,7 +479,7 @@ static void end_sysint2_irq(unsigned int irq)
478 icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq)); 479 icu2_set(MSYSINT2REG, 1 << SYSINT2_IRQ_TO_PIN(irq));
479} 480}
480 481
481static struct hw_interrupt_type sysint2_irq_type = { 482static struct irq_chip sysint2_irq_type = {
482 .typename = "SYSINT2", 483 .typename = "SYSINT2",
483 .startup = startup_sysint2_irq, 484 .startup = startup_sysint2_irq,
484 .shutdown = shutdown_sysint2_irq, 485 .shutdown = shutdown_sysint2_irq,
@@ -490,7 +491,7 @@ static struct hw_interrupt_type sysint2_irq_type = {
490 491
491static inline int set_sysint1_assign(unsigned int irq, unsigned char assign) 492static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
492{ 493{
493 irq_desc_t *desc = irq_desc + irq; 494 struct irq_desc *desc = irq_desc + irq;
494 uint16_t intassign0, intassign1; 495 uint16_t intassign0, intassign1;
495 unsigned int pin; 496 unsigned int pin;
496 497
@@ -549,7 +550,7 @@ static inline int set_sysint1_assign(unsigned int irq, unsigned char assign)
549 550
550static inline int set_sysint2_assign(unsigned int irq, unsigned char assign) 551static inline int set_sysint2_assign(unsigned int irq, unsigned char assign)
551{ 552{
552 irq_desc_t *desc = irq_desc + irq; 553 struct irq_desc *desc = irq_desc + irq;
553 uint16_t intassign2, intassign3; 554 uint16_t intassign2, intassign3;
554 unsigned int pin; 555 unsigned int pin;
555 556
diff --git a/arch/mips/vr41xx/common/init.c b/arch/mips/vr41xx/common/init.c
index 915bfa5c0719..a2e285c1d4d5 100644
--- a/arch/mips/vr41xx/common/init.c
+++ b/arch/mips/vr41xx/common/init.c
@@ -24,6 +24,7 @@
24 24
25#include <asm/bootinfo.h> 25#include <asm/bootinfo.h>
26#include <asm/time.h> 26#include <asm/time.h>
27#include <asm/vr41xx/irq.h>
27#include <asm/vr41xx/vr41xx.h> 28#include <asm/vr41xx/vr41xx.h>
28 29
29#define IO_MEM_RESOURCE_START 0UL 30#define IO_MEM_RESOURCE_START 0UL
@@ -47,7 +48,7 @@ static void __init setup_timer_frequency(void)
47 mips_hpt_frequency = tclock / 4; 48 mips_hpt_frequency = tclock / 4;
48} 49}
49 50
50static void __init setup_timer_irq(struct irqaction *irq) 51void __init plat_timer_setup(struct irqaction *irq)
51{ 52{
52 setup_irq(TIMER_IRQ, irq); 53 setup_irq(TIMER_IRQ, irq);
53} 54}
@@ -55,7 +56,6 @@ static void __init setup_timer_irq(struct irqaction *irq)
55static void __init timer_init(void) 56static void __init timer_init(void)
56{ 57{
57 board_time_init = setup_timer_frequency; 58 board_time_init = setup_timer_frequency;
58 board_timer_setup = setup_timer_irq;
59} 59}
60 60
61void __init plat_mem_setup(void) 61void __init plat_mem_setup(void)
diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
index 66aa50802deb..4733c5344467 100644
--- a/arch/mips/vr41xx/common/irq.c
+++ b/arch/mips/vr41xx/common/irq.c
@@ -22,7 +22,7 @@
22 22
23#include <asm/irq_cpu.h> 23#include <asm/irq_cpu.h>
24#include <asm/system.h> 24#include <asm/system.h>
25#include <asm/vr41xx/vr41xx.h> 25#include <asm/vr41xx/irq.h>
26 26
27typedef struct irq_cascade { 27typedef struct irq_cascade {
28 int (*get_irq)(unsigned int, struct pt_regs *); 28 int (*get_irq)(unsigned int, struct pt_regs *);
@@ -62,7 +62,7 @@ EXPORT_SYMBOL_GPL(cascade_irq);
62static void irq_dispatch(unsigned int irq, struct pt_regs *regs) 62static void irq_dispatch(unsigned int irq, struct pt_regs *regs)
63{ 63{
64 irq_cascade_t *cascade; 64 irq_cascade_t *cascade;
65 irq_desc_t *desc; 65 struct irq_desc *desc;
66 66
67 if (irq >= NR_IRQS) { 67 if (irq >= NR_IRQS) {
68 atomic_inc(&irq_err_count); 68 atomic_inc(&irq_err_count);
diff --git a/arch/mips/vr41xx/common/vrc4173.c b/arch/mips/vr41xx/common/vrc4173.c
deleted file mode 100644
index 2d287b8893d9..000000000000
--- a/arch/mips/vr41xx/common/vrc4173.c
+++ /dev/null
@@ -1,581 +0,0 @@
1/*
2 * vrc4173.c, NEC VRC4173 base driver for NEC VR4122/VR4131.
3 *
4 * Copyright (C) 2001-2003 MontaVista Software Inc.
5 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
6 * Copyright (C) 2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
7 * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
8 *
9 * This program is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Public License for more details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this program; if not, write to the Free Software
21 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22 */
23#include <linux/init.h>
24#include <linux/module.h>
25#include <linux/interrupt.h>
26#include <linux/irq.h>
27#include <linux/pci.h>
28#include <linux/spinlock.h>
29#include <linux/types.h>
30
31#include <asm/vr41xx/vr41xx.h>
32#include <asm/vr41xx/vrc4173.h>
33
34MODULE_DESCRIPTION("NEC VRC4173 base driver for NEC VR4122/4131");
35MODULE_AUTHOR("Yoichi Yuasa <yyuasa@mvista.com>");
36MODULE_LICENSE("GPL");
37
38#define VRC4173_CMUCLKMSK 0x040
39 #define MSKPIU 0x0001
40 #define MSKKIU 0x0002
41 #define MSKAIU 0x0004
42 #define MSKPS2CH1 0x0008
43 #define MSKPS2CH2 0x0010
44 #define MSKUSB 0x0020
45 #define MSKCARD1 0x0040
46 #define MSKCARD2 0x0080
47 #define MSKAC97 0x0100
48 #define MSK48MUSB 0x0400
49 #define MSK48MPIN 0x0800
50 #define MSK48MOSC 0x1000
51#define VRC4173_CMUSRST 0x042
52 #define USBRST 0x0001
53 #define CARD1RST 0x0002
54 #define CARD2RST 0x0004
55 #define AC97RST 0x0008
56
57#define VRC4173_SYSINT1REG 0x060
58#define VRC4173_MSYSINT1REG 0x06c
59#define VRC4173_MPIUINTREG 0x06e
60#define VRC4173_MAIUINTREG 0x070
61#define VRC4173_MKIUINTREG 0x072
62
63#define VRC4173_SELECTREG 0x09e
64 #define SEL3 0x0008
65 #define SEL2 0x0004
66 #define SEL1 0x0002
67 #define SEL0 0x0001
68
69static struct pci_device_id vrc4173_id_table[] __devinitdata = {
70 { .vendor = PCI_VENDOR_ID_NEC,
71 .device = PCI_DEVICE_ID_NEC_VRC4173,
72 .subvendor = PCI_ANY_ID,
73 .subdevice = PCI_ANY_ID, },
74 { .vendor = 0, },
75};
76
77unsigned long vrc4173_io_offset = 0;
78
79EXPORT_SYMBOL(vrc4173_io_offset);
80
81static int vrc4173_initialized;
82static uint16_t vrc4173_cmuclkmsk;
83static uint16_t vrc4173_selectreg;
84static DEFINE_SPINLOCK(vrc4173_cmu_lock);
85static DEFINE_SPINLOCK(vrc4173_giu_lock);
86
87static inline void set_cmusrst(uint16_t val)
88{
89 uint16_t cmusrst;
90
91 cmusrst = vrc4173_inw(VRC4173_CMUSRST);
92 cmusrst |= val;
93 vrc4173_outw(cmusrst, VRC4173_CMUSRST);
94}
95
96static inline void clear_cmusrst(uint16_t val)
97{
98 uint16_t cmusrst;
99
100 cmusrst = vrc4173_inw(VRC4173_CMUSRST);
101 cmusrst &= ~val;
102 vrc4173_outw(cmusrst, VRC4173_CMUSRST);
103}
104
105void vrc4173_supply_clock(vrc4173_clock_t clock)
106{
107 if (vrc4173_initialized) {
108 spin_lock_irq(&vrc4173_cmu_lock);
109
110 switch (clock) {
111 case VRC4173_PIU_CLOCK:
112 vrc4173_cmuclkmsk |= MSKPIU;
113 break;
114 case VRC4173_KIU_CLOCK:
115 vrc4173_cmuclkmsk |= MSKKIU;
116 break;
117 case VRC4173_AIU_CLOCK:
118 vrc4173_cmuclkmsk |= MSKAIU;
119 break;
120 case VRC4173_PS2_CH1_CLOCK:
121 vrc4173_cmuclkmsk |= MSKPS2CH1;
122 break;
123 case VRC4173_PS2_CH2_CLOCK:
124 vrc4173_cmuclkmsk |= MSKPS2CH2;
125 break;
126 case VRC4173_USBU_PCI_CLOCK:
127 set_cmusrst(USBRST);
128 vrc4173_cmuclkmsk |= MSKUSB;
129 break;
130 case VRC4173_CARDU1_PCI_CLOCK:
131 set_cmusrst(CARD1RST);
132 vrc4173_cmuclkmsk |= MSKCARD1;
133 break;
134 case VRC4173_CARDU2_PCI_CLOCK:
135 set_cmusrst(CARD2RST);
136 vrc4173_cmuclkmsk |= MSKCARD2;
137 break;
138 case VRC4173_AC97U_PCI_CLOCK:
139 set_cmusrst(AC97RST);
140 vrc4173_cmuclkmsk |= MSKAC97;
141 break;
142 case VRC4173_USBU_48MHz_CLOCK:
143 set_cmusrst(USBRST);
144 vrc4173_cmuclkmsk |= MSK48MUSB;
145 break;
146 case VRC4173_EXT_48MHz_CLOCK:
147 if (vrc4173_cmuclkmsk & MSK48MOSC)
148 vrc4173_cmuclkmsk |= MSK48MPIN;
149 else
150 printk(KERN_WARNING
151 "vrc4173_supply_clock: "
152 "Please supply VRC4173_48MHz_CLOCK first "
153 "rather than VRC4173_EXT_48MHz_CLOCK.\n");
154 break;
155 case VRC4173_48MHz_CLOCK:
156 vrc4173_cmuclkmsk |= MSK48MOSC;
157 break;
158 default:
159 printk(KERN_WARNING
160 "vrc4173_supply_clock: Invalid CLOCK value %u\n", clock);
161 break;
162 }
163
164 vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
165
166 switch (clock) {
167 case VRC4173_USBU_PCI_CLOCK:
168 case VRC4173_USBU_48MHz_CLOCK:
169 clear_cmusrst(USBRST);
170 break;
171 case VRC4173_CARDU1_PCI_CLOCK:
172 clear_cmusrst(CARD1RST);
173 break;
174 case VRC4173_CARDU2_PCI_CLOCK:
175 clear_cmusrst(CARD2RST);
176 break;
177 case VRC4173_AC97U_PCI_CLOCK:
178 clear_cmusrst(AC97RST);
179 break;
180 default:
181 break;
182 }
183
184 spin_unlock_irq(&vrc4173_cmu_lock);
185 }
186}
187
188EXPORT_SYMBOL(vrc4173_supply_clock);
189
190void vrc4173_mask_clock(vrc4173_clock_t clock)
191{
192 if (vrc4173_initialized) {
193 spin_lock_irq(&vrc4173_cmu_lock);
194
195 switch (clock) {
196 case VRC4173_PIU_CLOCK:
197 vrc4173_cmuclkmsk &= ~MSKPIU;
198 break;
199 case VRC4173_KIU_CLOCK:
200 vrc4173_cmuclkmsk &= ~MSKKIU;
201 break;
202 case VRC4173_AIU_CLOCK:
203 vrc4173_cmuclkmsk &= ~MSKAIU;
204 break;
205 case VRC4173_PS2_CH1_CLOCK:
206 vrc4173_cmuclkmsk &= ~MSKPS2CH1;
207 break;
208 case VRC4173_PS2_CH2_CLOCK:
209 vrc4173_cmuclkmsk &= ~MSKPS2CH2;
210 break;
211 case VRC4173_USBU_PCI_CLOCK:
212 set_cmusrst(USBRST);
213 vrc4173_cmuclkmsk &= ~MSKUSB;
214 break;
215 case VRC4173_CARDU1_PCI_CLOCK:
216 set_cmusrst(CARD1RST);
217 vrc4173_cmuclkmsk &= ~MSKCARD1;
218 break;
219 case VRC4173_CARDU2_PCI_CLOCK:
220 set_cmusrst(CARD2RST);
221 vrc4173_cmuclkmsk &= ~MSKCARD2;
222 break;
223 case VRC4173_AC97U_PCI_CLOCK:
224 set_cmusrst(AC97RST);
225 vrc4173_cmuclkmsk &= ~MSKAC97;
226 break;
227 case VRC4173_USBU_48MHz_CLOCK:
228 set_cmusrst(USBRST);
229 vrc4173_cmuclkmsk &= ~MSK48MUSB;
230 break;
231 case VRC4173_EXT_48MHz_CLOCK:
232 vrc4173_cmuclkmsk &= ~MSK48MPIN;
233 break;
234 case VRC4173_48MHz_CLOCK:
235 vrc4173_cmuclkmsk &= ~MSK48MOSC;
236 break;
237 default:
238 printk(KERN_WARNING "vrc4173_mask_clock: Invalid CLOCK value %u\n", clock);
239 break;
240 }
241
242 vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
243
244 switch (clock) {
245 case VRC4173_USBU_PCI_CLOCK:
246 case VRC4173_USBU_48MHz_CLOCK:
247 clear_cmusrst(USBRST);
248 break;
249 case VRC4173_CARDU1_PCI_CLOCK:
250 clear_cmusrst(CARD1RST);
251 break;
252 case VRC4173_CARDU2_PCI_CLOCK:
253 clear_cmusrst(CARD2RST);
254 break;
255 case VRC4173_AC97U_PCI_CLOCK:
256 clear_cmusrst(AC97RST);
257 break;
258 default:
259 break;
260 }
261
262 spin_unlock_irq(&vrc4173_cmu_lock);
263 }
264}
265
266EXPORT_SYMBOL(vrc4173_mask_clock);
267
268static inline void vrc4173_cmu_init(void)
269{
270 vrc4173_cmuclkmsk = vrc4173_inw(VRC4173_CMUCLKMSK);
271
272 spin_lock_init(&vrc4173_cmu_lock);
273}
274
275void vrc4173_select_function(vrc4173_function_t function)
276{
277 if (vrc4173_initialized) {
278 spin_lock_irq(&vrc4173_giu_lock);
279
280 switch(function) {
281 case PS2_CHANNEL1:
282 vrc4173_selectreg |= SEL2;
283 break;
284 case PS2_CHANNEL2:
285 vrc4173_selectreg |= SEL1;
286 break;
287 case TOUCHPANEL:
288 vrc4173_selectreg &= SEL2 | SEL1 | SEL0;
289 break;
290 case KEYBOARD_8SCANLINES:
291 vrc4173_selectreg &= SEL3 | SEL2 | SEL1;
292 break;
293 case KEYBOARD_10SCANLINES:
294 vrc4173_selectreg &= SEL3 | SEL2;
295 break;
296 case KEYBOARD_12SCANLINES:
297 vrc4173_selectreg &= SEL3;
298 break;
299 case GPIO_0_15PINS:
300 vrc4173_selectreg |= SEL0;
301 break;
302 case GPIO_16_20PINS:
303 vrc4173_selectreg |= SEL3;
304 break;
305 }
306
307 vrc4173_outw(vrc4173_selectreg, VRC4173_SELECTREG);
308
309 spin_unlock_irq(&vrc4173_giu_lock);
310 }
311}
312
313EXPORT_SYMBOL(vrc4173_select_function);
314
315static inline void vrc4173_giu_init(void)
316{
317 vrc4173_selectreg = vrc4173_inw(VRC4173_SELECTREG);
318
319 spin_lock_init(&vrc4173_giu_lock);
320}
321
322void vrc4173_enable_piuint(uint16_t mask)
323{
324 irq_desc_t *desc = irq_desc + VRC4173_PIU_IRQ;
325 unsigned long flags;
326 uint16_t val;
327
328 spin_lock_irqsave(&desc->lock, flags);
329 val = vrc4173_inw(VRC4173_MPIUINTREG);
330 val |= mask;
331 vrc4173_outw(val, VRC4173_MPIUINTREG);
332 spin_unlock_irqrestore(&desc->lock, flags);
333}
334
335EXPORT_SYMBOL(vrc4173_enable_piuint);
336
337void vrc4173_disable_piuint(uint16_t mask)
338{
339 irq_desc_t *desc = irq_desc + VRC4173_PIU_IRQ;
340 unsigned long flags;
341 uint16_t val;
342
343 spin_lock_irqsave(&desc->lock, flags);
344 val = vrc4173_inw(VRC4173_MPIUINTREG);
345 val &= ~mask;
346 vrc4173_outw(val, VRC4173_MPIUINTREG);
347 spin_unlock_irqrestore(&desc->lock, flags);
348}
349
350EXPORT_SYMBOL(vrc4173_disable_piuint);
351
352void vrc4173_enable_aiuint(uint16_t mask)
353{
354 irq_desc_t *desc = irq_desc + VRC4173_AIU_IRQ;
355 unsigned long flags;
356 uint16_t val;
357
358 spin_lock_irqsave(&desc->lock, flags);
359 val = vrc4173_inw(VRC4173_MAIUINTREG);
360 val |= mask;
361 vrc4173_outw(val, VRC4173_MAIUINTREG);
362 spin_unlock_irqrestore(&desc->lock, flags);
363}
364
365EXPORT_SYMBOL(vrc4173_enable_aiuint);
366
367void vrc4173_disable_aiuint(uint16_t mask)
368{
369 irq_desc_t *desc = irq_desc + VRC4173_AIU_IRQ;
370 unsigned long flags;
371 uint16_t val;
372
373 spin_lock_irqsave(&desc->lock, flags);
374 val = vrc4173_inw(VRC4173_MAIUINTREG);
375 val &= ~mask;
376 vrc4173_outw(val, VRC4173_MAIUINTREG);
377 spin_unlock_irqrestore(&desc->lock, flags);
378}
379
380EXPORT_SYMBOL(vrc4173_disable_aiuint);
381
382void vrc4173_enable_kiuint(uint16_t mask)
383{
384 irq_desc_t *desc = irq_desc + VRC4173_KIU_IRQ;
385 unsigned long flags;
386 uint16_t val;
387
388 spin_lock_irqsave(&desc->lock, flags);
389 val = vrc4173_inw(VRC4173_MKIUINTREG);
390 val |= mask;
391 vrc4173_outw(val, VRC4173_MKIUINTREG);
392 spin_unlock_irqrestore(&desc->lock, flags);
393}
394
395EXPORT_SYMBOL(vrc4173_enable_kiuint);
396
397void vrc4173_disable_kiuint(uint16_t mask)
398{
399 irq_desc_t *desc = irq_desc + VRC4173_KIU_IRQ;
400 unsigned long flags;
401 uint16_t val;
402
403 spin_lock_irqsave(&desc->lock, flags);
404 val = vrc4173_inw(VRC4173_MKIUINTREG);
405 val &= ~mask;
406 vrc4173_outw(val, VRC4173_MKIUINTREG);
407 spin_unlock_irqrestore(&desc->lock, flags);
408}
409
410EXPORT_SYMBOL(vrc4173_disable_kiuint);
411
412static void enable_vrc4173_irq(unsigned int irq)
413{
414 uint16_t val;
415
416 val = vrc4173_inw(VRC4173_MSYSINT1REG);
417 val |= (uint16_t)1 << (irq - VRC4173_IRQ_BASE);
418 vrc4173_outw(val, VRC4173_MSYSINT1REG);
419}
420
421static void disable_vrc4173_irq(unsigned int irq)
422{
423 uint16_t val;
424
425 val = vrc4173_inw(VRC4173_MSYSINT1REG);
426 val &= ~((uint16_t)1 << (irq - VRC4173_IRQ_BASE));
427 vrc4173_outw(val, VRC4173_MSYSINT1REG);
428}
429
430static unsigned int startup_vrc4173_irq(unsigned int irq)
431{
432 enable_vrc4173_irq(irq);
433 return 0; /* never anything pending */
434}
435
436#define shutdown_vrc4173_irq disable_vrc4173_irq
437#define ack_vrc4173_irq disable_vrc4173_irq
438
439static void end_vrc4173_irq(unsigned int irq)
440{
441 if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
442 enable_vrc4173_irq(irq);
443}
444
445static struct hw_interrupt_type vrc4173_irq_type = {
446 .typename = "VRC4173",
447 .startup = startup_vrc4173_irq,
448 .shutdown = shutdown_vrc4173_irq,
449 .enable = enable_vrc4173_irq,
450 .disable = disable_vrc4173_irq,
451 .ack = ack_vrc4173_irq,
452 .end = end_vrc4173_irq,
453};
454
455static int vrc4173_get_irq_number(int irq)
456{
457 uint16_t status, mask;
458 int i;
459
460 status = vrc4173_inw(VRC4173_SYSINT1REG);
461 mask = vrc4173_inw(VRC4173_MSYSINT1REG);
462
463 status &= mask;
464 if (status) {
465 for (i = 0; i < 16; i++)
466 if (status & (0x0001 << i))
467 return VRC4173_IRQ(i);
468 }
469
470 return -EINVAL;
471}
472
473static inline int vrc4173_icu_init(int cascade_irq)
474{
475 int i;
476
477 if (cascade_irq < GIU_IRQ(0) || cascade_irq > GIU_IRQ(15))
478 return -EINVAL;
479
480 vrc4173_outw(0, VRC4173_MSYSINT1REG);
481
482 vr41xx_set_irq_trigger(GIU_IRQ_TO_PIN(cascade_irq), TRIGGER_LEVEL, SIGNAL_THROUGH);
483 vr41xx_set_irq_level(GIU_IRQ_TO_PIN(cascade_irq), LEVEL_LOW);
484
485 for (i = VRC4173_IRQ_BASE; i <= VRC4173_IRQ_LAST; i++)
486 irq_desc[i].chip = &vrc4173_irq_type;
487
488 return 0;
489}
490
491static int __devinit vrc4173_probe(struct pci_dev *dev,
492 const struct pci_device_id *id)
493{
494 unsigned long start, flags;
495 int err;
496
497 err = pci_enable_device(dev);
498 if (err < 0) {
499 printk(KERN_ERR "vrc4173: Failed to enable PCI device, aborting\n");
500 return err;
501 }
502
503 pci_set_master(dev);
504
505 start = pci_resource_start(dev, 0);
506 if (start == 0) {
507 printk(KERN_ERR "vrc4173:No such PCI I/O resource, aborting\n");
508 return -ENXIO;
509 }
510
511 flags = pci_resource_flags(dev, 0);
512 if ((flags & IORESOURCE_IO) == 0) {
513 printk(KERN_ERR "vrc4173: No such PCI I/O resource, aborting\n");
514 return -ENXIO;
515 }
516
517 err = pci_request_regions(dev, "NEC VRC4173");
518 if (err < 0) {
519 printk(KERN_ERR "vrc4173: PCI resources are busy, aborting\n");
520 return err;
521 }
522
523 set_vrc4173_io_offset(start);
524
525 vrc4173_cmu_init();
526 vrc4173_giu_init();
527
528 err = vrc4173_icu_init(dev->irq);
529 if (err < 0) {
530 printk(KERN_ERR "vrc4173: Invalid IRQ %d, aborting\n", dev->irq);
531 return err;
532 }
533
534 err = vr41xx_cascade_irq(dev->irq, vrc4173_get_irq_number);
535 if (err < 0) {
536 printk(KERN_ERR "vrc4173: IRQ resource %d is busy, aborting\n", dev->irq);
537 return err;
538 }
539
540 printk(KERN_INFO
541 "NEC VRC4173 at 0x%#08lx, IRQ is cascaded to %d\n", start, dev->irq);
542
543 return 0;
544}
545
546static void vrc4173_remove(struct pci_dev *dev)
547{
548 free_irq(dev->irq, NULL);
549
550 pci_release_regions(dev);
551}
552
553static struct pci_driver vrc4173_driver = {
554 .name = "NEC VRC4173",
555 .probe = vrc4173_probe,
556 .remove = vrc4173_remove,
557 .id_table = vrc4173_id_table,
558};
559
560static int __devinit vrc4173_init(void)
561{
562 int err;
563
564 err = pci_register_driver(&vrc4173_driver);
565 if (err < 0)
566 return err;
567
568 vrc4173_initialized = 1;
569
570 return 0;
571}
572
573static void __devexit vrc4173_exit(void)
574{
575 vrc4173_initialized = 0;
576
577 pci_unregister_driver(&vrc4173_driver);
578}
579
580module_init(vrc4173_init);
581module_exit(vrc4173_exit);
diff --git a/arch/mips/vr41xx/ibm-workpad/setup.c b/arch/mips/vr41xx/ibm-workpad/setup.c
index 50fe8af4c52c..9eef297eca1a 100644
--- a/arch/mips/vr41xx/ibm-workpad/setup.c
+++ b/arch/mips/vr41xx/ibm-workpad/setup.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * setup.c, Setup for the IBM WorkPad z50. 2 * setup.c, Setup for the IBM WorkPad z50.
3 * 3 *
4 * Copyright (C) 2002-2005 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> 4 * Copyright (C) 2002-2006 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
5 * 5 *
6 * This program is free software; you can redistribute it and/or modify 6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by 7 * it under the terms of the GNU General Public License as published by
@@ -21,13 +21,18 @@
21#include <linux/ioport.h> 21#include <linux/ioport.h>
22 22
23#include <asm/io.h> 23#include <asm/io.h>
24#include <asm/vr41xx/workpad.h> 24
25#define WORKPAD_ISA_IO_BASE 0x15000000
26#define WORKPAD_ISA_IO_SIZE 0x03000000
27#define WORKPAD_ISA_IO_START 0
28#define WORKPAD_ISA_IO_END (WORKPAD_ISA_IO_SIZE - 1)
29#define WORKPAD_IO_PORT_BASE KSEG1ADDR(WORKPAD_ISA_IO_BASE)
25 30
26static int __init ibm_workpad_setup(void) 31static int __init ibm_workpad_setup(void)
27{ 32{
28 set_io_port_base(IO_PORT_BASE); 33 set_io_port_base(WORKPAD_IO_PORT_BASE);
29 ioport_resource.start = IO_PORT_RESOURCE_START; 34 ioport_resource.start = WORKPAD_ISA_IO_START;
30 ioport_resource.end = IO_PORT_RESOURCE_END; 35 ioport_resource.end = WORKPAD_ISA_IO_END;
31 36
32 return 0; 37 return 0;
33} 38}
diff --git a/arch/mips/vr41xx/nec-cmbvr4133/irq.c b/arch/mips/vr41xx/nec-cmbvr4133/irq.c
index 7b2511ca0a61..2483487344c2 100644
--- a/arch/mips/vr41xx/nec-cmbvr4133/irq.c
+++ b/arch/mips/vr41xx/nec-cmbvr4133/irq.c
@@ -62,7 +62,7 @@ static void end_i8259_irq(unsigned int irq)
62 enable_8259A_irq(irq - I8259_IRQ_BASE); 62 enable_8259A_irq(irq - I8259_IRQ_BASE);
63} 63}
64 64
65static struct hw_interrupt_type i8259_irq_type = { 65static struct irq_chip i8259_irq_type = {
66 .typename = "XT-PIC", 66 .typename = "XT-PIC",
67 .startup = startup_i8259_irq, 67 .startup = startup_i8259_irq,
68 .shutdown = shutdown_i8259_irq, 68 .shutdown = shutdown_i8259_irq,
diff --git a/arch/s390/hypfs/hypfs_diag.c b/arch/s390/hypfs/hypfs_diag.c
index efa74af7f04a..1785bce2b919 100644
--- a/arch/s390/hypfs/hypfs_diag.c
+++ b/arch/s390/hypfs/hypfs_diag.c
@@ -403,7 +403,7 @@ static void *diag204_get_buffer(enum diag204_format fmt, int *pages)
403 *pages = 1; 403 *pages = 1;
404 return diag204_alloc_rbuf(); 404 return diag204_alloc_rbuf();
405 } else {/* INFO_EXT */ 405 } else {/* INFO_EXT */
406 *pages = diag204(SUBC_RSI | INFO_EXT, 0, 0); 406 *pages = diag204(SUBC_RSI | INFO_EXT, 0, NULL);
407 if (*pages <= 0) 407 if (*pages <= 0)
408 return ERR_PTR(-ENOSYS); 408 return ERR_PTR(-ENOSYS);
409 else 409 else
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
index cabb4ff54cd7..785c9f70ac98 100644
--- a/arch/s390/kernel/compat_linux.c
+++ b/arch/s390/kernel/compat_linux.c
@@ -409,7 +409,7 @@ asmlinkage long sys32_sysinfo(struct sysinfo32 __user *info)
409 mm_segment_t old_fs = get_fs (); 409 mm_segment_t old_fs = get_fs ();
410 410
411 set_fs (KERNEL_DS); 411 set_fs (KERNEL_DS);
412 ret = sys_sysinfo(&s); 412 ret = sys_sysinfo((struct sysinfo __user *) &s);
413 set_fs (old_fs); 413 set_fs (old_fs);
414 err = put_user (s.uptime, &info->uptime); 414 err = put_user (s.uptime, &info->uptime);
415 err |= __put_user (s.loads[0], &info->loads[0]); 415 err |= __put_user (s.loads[0], &info->loads[0]);
@@ -438,7 +438,7 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid,
438 mm_segment_t old_fs = get_fs (); 438 mm_segment_t old_fs = get_fs ();
439 439
440 set_fs (KERNEL_DS); 440 set_fs (KERNEL_DS);
441 ret = sys_sched_rr_get_interval(pid, &t); 441 ret = sys_sched_rr_get_interval(pid, (struct timespec __user *) &t);
442 set_fs (old_fs); 442 set_fs (old_fs);
443 if (put_compat_timespec(&t, interval)) 443 if (put_compat_timespec(&t, interval))
444 return -EFAULT; 444 return -EFAULT;
@@ -464,7 +464,10 @@ asmlinkage long sys32_rt_sigprocmask(int how, compat_sigset_t __user *set,
464 } 464 }
465 } 465 }
466 set_fs (KERNEL_DS); 466 set_fs (KERNEL_DS);
467 ret = sys_rt_sigprocmask(how, set ? &s : NULL, oset ? &s : NULL, sigsetsize); 467 ret = sys_rt_sigprocmask(how,
468 set ? (sigset_t __user *) &s : NULL,
469 oset ? (sigset_t __user *) &s : NULL,
470 sigsetsize);
468 set_fs (old_fs); 471 set_fs (old_fs);
469 if (ret) return ret; 472 if (ret) return ret;
470 if (oset) { 473 if (oset) {
@@ -489,7 +492,7 @@ asmlinkage long sys32_rt_sigpending(compat_sigset_t __user *set,
489 mm_segment_t old_fs = get_fs(); 492 mm_segment_t old_fs = get_fs();
490 493
491 set_fs (KERNEL_DS); 494 set_fs (KERNEL_DS);
492 ret = sys_rt_sigpending(&s, sigsetsize); 495 ret = sys_rt_sigpending((sigset_t __user *) &s, sigsetsize);
493 set_fs (old_fs); 496 set_fs (old_fs);
494 if (!ret) { 497 if (!ret) {
495 switch (_NSIG_WORDS) { 498 switch (_NSIG_WORDS) {
@@ -514,7 +517,7 @@ sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo)
514 if (copy_siginfo_from_user32(&info, uinfo)) 517 if (copy_siginfo_from_user32(&info, uinfo))
515 return -EFAULT; 518 return -EFAULT;
516 set_fs (KERNEL_DS); 519 set_fs (KERNEL_DS);
517 ret = sys_rt_sigqueueinfo(pid, sig, &info); 520 ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __user *) &info);
518 set_fs (old_fs); 521 set_fs (old_fs);
519 return ret; 522 return ret;
520} 523}
@@ -674,7 +677,8 @@ asmlinkage long sys32_sendfile(int out_fd, int in_fd, compat_off_t __user *offse
674 return -EFAULT; 677 return -EFAULT;
675 678
676 set_fs(KERNEL_DS); 679 set_fs(KERNEL_DS);
677 ret = sys_sendfile(out_fd, in_fd, offset ? &of : NULL, count); 680 ret = sys_sendfile(out_fd, in_fd,
681 offset ? (off_t __user *) &of : NULL, count);
678 set_fs(old_fs); 682 set_fs(old_fs);
679 683
680 if (offset && put_user(of, offset)) 684 if (offset && put_user(of, offset))
@@ -694,7 +698,8 @@ asmlinkage long sys32_sendfile64(int out_fd, int in_fd,
694 return -EFAULT; 698 return -EFAULT;
695 699
696 set_fs(KERNEL_DS); 700 set_fs(KERNEL_DS);
697 ret = sys_sendfile64(out_fd, in_fd, offset ? &lof : NULL, count); 701 ret = sys_sendfile64(out_fd, in_fd,
702 offset ? (loff_t __user *) &lof : NULL, count);
698 set_fs(old_fs); 703 set_fs(old_fs);
699 704
700 if (offset && put_user(lof, offset)) 705 if (offset && put_user(lof, offset))
diff --git a/arch/s390/kernel/machine_kexec.c b/arch/s390/kernel/machine_kexec.c
index fbde6a915264..60b1ea9f946b 100644
--- a/arch/s390/kernel/machine_kexec.c
+++ b/arch/s390/kernel/machine_kexec.c
@@ -63,6 +63,7 @@ NORET_TYPE void
63machine_kexec(struct kimage *image) 63machine_kexec(struct kimage *image)
64{ 64{
65 clear_all_subchannels(); 65 clear_all_subchannels();
66 cio_reset_channel_paths();
66 67
67 /* Disable lowcore protection */ 68 /* Disable lowcore protection */
68 ctl_clear_bit(0,28); 69 ctl_clear_bit(0,28);
diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
index c271cdab58e2..d989ed45a7aa 100644
--- a/arch/s390/kernel/module.c
+++ b/arch/s390/kernel/module.c
@@ -119,7 +119,7 @@ module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
119 int nrela, i, j; 119 int nrela, i, j;
120 120
121 /* Find symbol table and string table. */ 121 /* Find symbol table and string table. */
122 symtab = 0; 122 symtab = NULL;
123 for (i = 0; i < hdr->e_shnum; i++) 123 for (i = 0; i < hdr->e_shnum; i++)
124 switch (sechdrs[i].sh_type) { 124 switch (sechdrs[i].sh_type) {
125 case SHT_SYMTAB: 125 case SHT_SYMTAB:
diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
index 78c8e5548caf..d3cbfa3005ec 100644
--- a/arch/s390/kernel/process.c
+++ b/arch/s390/kernel/process.c
@@ -172,7 +172,7 @@ void show_regs(struct pt_regs *regs)
172 show_registers(regs); 172 show_registers(regs);
173 /* Show stack backtrace if pt_regs is from kernel mode */ 173 /* Show stack backtrace if pt_regs is from kernel mode */
174 if (!(regs->psw.mask & PSW_MASK_PSTATE)) 174 if (!(regs->psw.mask & PSW_MASK_PSTATE))
175 show_trace(0,(unsigned long *) regs->gprs[15]); 175 show_trace(NULL, (unsigned long *) regs->gprs[15]);
176} 176}
177 177
178extern void kernel_thread_starter(void); 178extern void kernel_thread_starter(void);
diff --git a/arch/s390/kernel/profile.c b/arch/s390/kernel/profile.c
index 7ba777eec1a8..b81aa1f569ca 100644
--- a/arch/s390/kernel/profile.c
+++ b/arch/s390/kernel/profile.c
@@ -13,7 +13,7 @@ static struct proc_dir_entry * root_irq_dir;
13void init_irq_proc(void) 13void init_irq_proc(void)
14{ 14{
15 /* create /proc/irq */ 15 /* create /proc/irq */
16 root_irq_dir = proc_mkdir("irq", 0); 16 root_irq_dir = proc_mkdir("irq", NULL);
17 17
18 /* create /proc/irq/prof_cpu_mask */ 18 /* create /proc/irq/prof_cpu_mask */
19 create_prof_cpu_mask(root_irq_dir); 19 create_prof_cpu_mask(root_irq_dir);
diff --git a/arch/s390/kernel/s390_ext.c b/arch/s390/kernel/s390_ext.c
index 207bc511a6e3..c1b383537fec 100644
--- a/arch/s390/kernel/s390_ext.c
+++ b/arch/s390/kernel/s390_ext.c
@@ -24,7 +24,7 @@
24 * (0x1202 external call, 0x1004 cpu timer, 0x2401 hwc console, 0x4000 24 * (0x1202 external call, 0x1004 cpu timer, 0x2401 hwc console, 0x4000
25 * iucv and 0x2603 pfault) this is always the first element. 25 * iucv and 0x2603 pfault) this is always the first element.
26 */ 26 */
27ext_int_info_t *ext_int_hash[256] = { 0, }; 27ext_int_info_t *ext_int_hash[256] = { NULL, };
28 28
29static inline int ext_hash(__u16 code) 29static inline int ext_hash(__u16 code)
30{ 30{
diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
index f7fe9bc43397..74e6178fbaf2 100644
--- a/arch/s390/kernel/time.c
+++ b/arch/s390/kernel/time.c
@@ -379,7 +379,7 @@ void __init time_init(void)
379 -xtime.tv_sec, -xtime.tv_nsec); 379 -xtime.tv_sec, -xtime.tv_nsec);
380 380
381 /* request the clock comparator external interrupt */ 381 /* request the clock comparator external interrupt */
382 if (register_early_external_interrupt(0x1004, 0, 382 if (register_early_external_interrupt(0x1004, NULL,
383 &ext_int_info_cc) != 0) 383 &ext_int_info_cc) != 0)
384 panic("Couldn't request external interrupt 0x1004"); 384 panic("Couldn't request external interrupt 0x1004");
385 385
diff --git a/arch/s390/kernel/traps.c b/arch/s390/kernel/traps.c
index 12240c03a6dd..bde1d1d59858 100644
--- a/arch/s390/kernel/traps.c
+++ b/arch/s390/kernel/traps.c
@@ -170,7 +170,7 @@ void show_stack(struct task_struct *task, unsigned long *sp)
170 */ 170 */
171void dump_stack(void) 171void dump_stack(void)
172{ 172{
173 show_stack(0, 0); 173 show_stack(NULL, NULL);
174} 174}
175 175
176EXPORT_SYMBOL(dump_stack); 176EXPORT_SYMBOL(dump_stack);
@@ -331,9 +331,9 @@ static void inline do_trap(long interruption_code, int signr, char *str,
331 } 331 }
332} 332}
333 333
334static inline void *get_check_address(struct pt_regs *regs) 334static inline void __user *get_check_address(struct pt_regs *regs)
335{ 335{
336 return (void *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN); 336 return (void __user *)((regs->psw.addr-S390_lowcore.pgm_ilc) & PSW_ADDR_INSN);
337} 337}
338 338
339void do_single_step(struct pt_regs *regs) 339void do_single_step(struct pt_regs *regs)
@@ -360,7 +360,7 @@ asmlinkage void name(struct pt_regs * regs, long interruption_code) \
360 info.si_signo = signr; \ 360 info.si_signo = signr; \
361 info.si_errno = 0; \ 361 info.si_errno = 0; \
362 info.si_code = sicode; \ 362 info.si_code = sicode; \
363 info.si_addr = (void *)siaddr; \ 363 info.si_addr = siaddr; \
364 do_trap(interruption_code, signr, str, regs, &info); \ 364 do_trap(interruption_code, signr, str, regs, &info); \
365} 365}
366 366
@@ -392,7 +392,7 @@ DO_ERROR_INFO(SIGILL, "translation exception", translation_exception,
392 ILL_ILLOPN, get_check_address(regs)) 392 ILL_ILLOPN, get_check_address(regs))
393 393
394static inline void 394static inline void
395do_fp_trap(struct pt_regs *regs, void *location, 395do_fp_trap(struct pt_regs *regs, void __user *location,
396 int fpc, long interruption_code) 396 int fpc, long interruption_code)
397{ 397{
398 siginfo_t si; 398 siginfo_t si;
@@ -424,10 +424,10 @@ asmlinkage void illegal_op(struct pt_regs * regs, long interruption_code)
424{ 424{
425 siginfo_t info; 425 siginfo_t info;
426 __u8 opcode[6]; 426 __u8 opcode[6];
427 __u16 *location; 427 __u16 __user *location;
428 int signal = 0; 428 int signal = 0;
429 429
430 location = (__u16 *) get_check_address(regs); 430 location = get_check_address(regs);
431 431
432 /* 432 /*
433 * We got all needed information from the lowcore and can 433 * We got all needed information from the lowcore and can
@@ -559,10 +559,10 @@ DO_ERROR_INFO(SIGILL, "specification exception", specification_exception,
559 559
560asmlinkage void data_exception(struct pt_regs * regs, long interruption_code) 560asmlinkage void data_exception(struct pt_regs * regs, long interruption_code)
561{ 561{
562 __u16 *location; 562 __u16 __user *location;
563 int signal = 0; 563 int signal = 0;
564 564
565 location = (__u16 *) get_check_address(regs); 565 location = get_check_address(regs);
566 566
567 /* 567 /*
568 * We got all needed information from the lowcore and can 568 * We got all needed information from the lowcore and can
diff --git a/arch/s390/lib/string.c b/arch/s390/lib/string.c
index 8240cc77e06e..ae5cf5d03d41 100644
--- a/arch/s390/lib/string.c
+++ b/arch/s390/lib/string.c
@@ -233,7 +233,7 @@ char * strrchr(const char * s, int c)
233 if (s[len] == (char) c) 233 if (s[len] == (char) c)
234 return (char *) s + len; 234 return (char *) s + len;
235 } while (--len > 0); 235 } while (--len > 0);
236 return 0; 236 return NULL;
237} 237}
238EXPORT_SYMBOL(strrchr); 238EXPORT_SYMBOL(strrchr);
239 239
@@ -267,7 +267,7 @@ char * strstr(const char * s1,const char * s2)
267 return (char *) s1; 267 return (char *) s1;
268 s1++; 268 s1++;
269 } 269 }
270 return 0; 270 return NULL;
271} 271}
272EXPORT_SYMBOL(strstr); 272EXPORT_SYMBOL(strstr);
273 273
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c
index 81be2fec7dc5..ceea51cff03b 100644
--- a/arch/s390/mm/cmm.c
+++ b/arch/s390/mm/cmm.c
@@ -161,7 +161,7 @@ cmm_thread(void *dummy)
161static void 161static void
162cmm_start_thread(void) 162cmm_start_thread(void)
163{ 163{
164 kernel_thread(cmm_thread, 0, 0); 164 kernel_thread(cmm_thread, NULL, 0);
165} 165}
166 166
167static void 167static void
diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
index 833d5941746a..7cd82575813d 100644
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -144,7 +144,7 @@ static void do_sigsegv(struct pt_regs *regs, unsigned long error_code,
144#endif 144#endif
145 si.si_signo = SIGSEGV; 145 si.si_signo = SIGSEGV;
146 si.si_code = si_code; 146 si.si_code = si_code;
147 si.si_addr = (void *) address; 147 si.si_addr = (void __user *) address;
148 force_sig_info(SIGSEGV, &si, current); 148 force_sig_info(SIGSEGV, &si, current);
149} 149}
150 150
diff --git a/arch/sparc/kernel/of_device.c b/arch/sparc/kernel/of_device.c
index bc956c530376..5a2faad5d043 100644
--- a/arch/sparc/kernel/of_device.c
+++ b/arch/sparc/kernel/of_device.c
@@ -183,7 +183,7 @@ struct bus_type of_bus_type = {
183}; 183};
184EXPORT_SYMBOL(of_bus_type); 184EXPORT_SYMBOL(of_bus_type);
185 185
186static inline u64 of_read_addr(u32 *cell, int size) 186static inline u64 of_read_addr(const u32 *cell, int size)
187{ 187{
188 u64 r = 0; 188 u64 r = 0;
189 while (size--) 189 while (size--)
@@ -209,8 +209,8 @@ struct of_bus {
209 int (*match)(struct device_node *parent); 209 int (*match)(struct device_node *parent);
210 void (*count_cells)(struct device_node *child, 210 void (*count_cells)(struct device_node *child,
211 int *addrc, int *sizec); 211 int *addrc, int *sizec);
212 u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); 212 int (*map)(u32 *addr, const u32 *range,
213 int (*translate)(u32 *addr, u64 offset, int na); 213 int na, int ns, int pna);
214 unsigned int (*get_flags)(u32 *addr); 214 unsigned int (*get_flags)(u32 *addr);
215}; 215};
216 216
@@ -224,27 +224,49 @@ static void of_bus_default_count_cells(struct device_node *dev,
224 get_cells(dev, addrc, sizec); 224 get_cells(dev, addrc, sizec);
225} 225}
226 226
227static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) 227/* Make sure the least significant 64-bits are in-range. Even
228 * for 3 or 4 cell values it is a good enough approximation.
229 */
230static int of_out_of_range(const u32 *addr, const u32 *base,
231 const u32 *size, int na, int ns)
228{ 232{
229 u64 cp, s, da; 233 u64 a = of_read_addr(addr, na);
234 u64 b = of_read_addr(base, na);
235
236 if (a < b)
237 return 1;
230 238
231 cp = of_read_addr(range, na); 239 b += of_read_addr(size, ns);
232 s = of_read_addr(range + na + pna, ns); 240 if (a >= b)
233 da = of_read_addr(addr, na); 241 return 1;
234 242
235 if (da < cp || da >= (cp + s)) 243 return 0;
236 return OF_BAD_ADDR;
237 return da - cp;
238} 244}
239 245
240static int of_bus_default_translate(u32 *addr, u64 offset, int na) 246static int of_bus_default_map(u32 *addr, const u32 *range,
247 int na, int ns, int pna)
241{ 248{
242 u64 a = of_read_addr(addr, na); 249 u32 result[OF_MAX_ADDR_CELLS];
243 memset(addr, 0, na * 4); 250 int i;
244 a += offset; 251
245 if (na > 1) 252 if (ns > 2) {
246 addr[na - 2] = a >> 32; 253 printk("of_device: Cannot handle size cells (%d) > 2.", ns);
247 addr[na - 1] = a & 0xffffffffu; 254 return -EINVAL;
255 }
256
257 if (of_out_of_range(addr, range, range + na + pna, na, ns))
258 return -EINVAL;
259
260 /* Start with the parent range base. */
261 memcpy(result, range + na, pna * 4);
262
263 /* Add in the child address offset. */
264 for (i = 0; i < na; i++)
265 result[pna - 1 - i] +=
266 (addr[na - 1 - i] -
267 range[na - 1 - i]);
268
269 memcpy(addr, result, pna * 4);
248 270
249 return 0; 271 return 0;
250} 272}
@@ -254,14 +276,26 @@ static unsigned int of_bus_default_get_flags(u32 *addr)
254 return IORESOURCE_MEM; 276 return IORESOURCE_MEM;
255} 277}
256 278
257
258/* 279/*
259 * PCI bus specific translator 280 * PCI bus specific translator
260 */ 281 */
261 282
262static int of_bus_pci_match(struct device_node *np) 283static int of_bus_pci_match(struct device_node *np)
263{ 284{
264 return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); 285 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
286 /* Do not do PCI specific frobbing if the
287 * PCI bridge lacks a ranges property. We
288 * want to pass it through up to the next
289 * parent as-is, not with the PCI translate
290 * method which chops off the top address cell.
291 */
292 if (!of_find_property(np, "ranges", NULL))
293 return 0;
294
295 return 1;
296 }
297
298 return 0;
265} 299}
266 300
267static void of_bus_pci_count_cells(struct device_node *np, 301static void of_bus_pci_count_cells(struct device_node *np,
@@ -273,27 +307,32 @@ static void of_bus_pci_count_cells(struct device_node *np,
273 *sizec = 2; 307 *sizec = 2;
274} 308}
275 309
276static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) 310static int of_bus_pci_map(u32 *addr, const u32 *range,
311 int na, int ns, int pna)
277{ 312{
278 u64 cp, s, da; 313 u32 result[OF_MAX_ADDR_CELLS];
314 int i;
279 315
280 /* Check address type match */ 316 /* Check address type match */
281 if ((addr[0] ^ range[0]) & 0x03000000) 317 if ((addr[0] ^ range[0]) & 0x03000000)
282 return OF_BAD_ADDR; 318 return -EINVAL;
283 319
284 /* Read address values, skipping high cell */ 320 if (of_out_of_range(addr + 1, range + 1, range + na + pna,
285 cp = of_read_addr(range + 1, na - 1); 321 na - 1, ns))
286 s = of_read_addr(range + na + pna, ns); 322 return -EINVAL;
287 da = of_read_addr(addr + 1, na - 1);
288 323
289 if (da < cp || da >= (cp + s)) 324 /* Start with the parent range base. */
290 return OF_BAD_ADDR; 325 memcpy(result, range + na, pna * 4);
291 return da - cp;
292}
293 326
294static int of_bus_pci_translate(u32 *addr, u64 offset, int na) 327 /* Add in the child address offset, skipping high cell. */
295{ 328 for (i = 0; i < na - 1; i++)
296 return of_bus_default_translate(addr + 1, offset, na - 1); 329 result[pna - 1 - i] +=
330 (addr[na - 1 - i] -
331 range[na - 1 - i]);
332
333 memcpy(addr, result, pna * 4);
334
335 return 0;
297} 336}
298 337
299static unsigned int of_bus_pci_get_flags(u32 *addr) 338static unsigned int of_bus_pci_get_flags(u32 *addr)
@@ -332,16 +371,11 @@ static void of_bus_sbus_count_cells(struct device_node *child,
332 *sizec = 1; 371 *sizec = 1;
333} 372}
334 373
335static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) 374static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
336{ 375{
337 return of_bus_default_map(addr, range, na, ns, pna); 376 return of_bus_default_map(addr, range, na, ns, pna);
338} 377}
339 378
340static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
341{
342 return of_bus_default_translate(addr, offset, na);
343}
344
345static unsigned int of_bus_sbus_get_flags(u32 *addr) 379static unsigned int of_bus_sbus_get_flags(u32 *addr)
346{ 380{
347 return IORESOURCE_MEM; 381 return IORESOURCE_MEM;
@@ -360,7 +394,6 @@ static struct of_bus of_busses[] = {
360 .match = of_bus_pci_match, 394 .match = of_bus_pci_match,
361 .count_cells = of_bus_pci_count_cells, 395 .count_cells = of_bus_pci_count_cells,
362 .map = of_bus_pci_map, 396 .map = of_bus_pci_map,
363 .translate = of_bus_pci_translate,
364 .get_flags = of_bus_pci_get_flags, 397 .get_flags = of_bus_pci_get_flags,
365 }, 398 },
366 /* SBUS */ 399 /* SBUS */
@@ -370,7 +403,6 @@ static struct of_bus of_busses[] = {
370 .match = of_bus_sbus_match, 403 .match = of_bus_sbus_match,
371 .count_cells = of_bus_sbus_count_cells, 404 .count_cells = of_bus_sbus_count_cells,
372 .map = of_bus_sbus_map, 405 .map = of_bus_sbus_map,
373 .translate = of_bus_sbus_translate,
374 .get_flags = of_bus_sbus_get_flags, 406 .get_flags = of_bus_sbus_get_flags,
375 }, 407 },
376 /* Default */ 408 /* Default */
@@ -380,7 +412,6 @@ static struct of_bus of_busses[] = {
380 .match = NULL, 412 .match = NULL,
381 .count_cells = of_bus_default_count_cells, 413 .count_cells = of_bus_default_count_cells,
382 .map = of_bus_default_map, 414 .map = of_bus_default_map,
383 .translate = of_bus_default_translate,
384 .get_flags = of_bus_default_get_flags, 415 .get_flags = of_bus_default_get_flags,
385 }, 416 },
386}; 417};
@@ -405,33 +436,34 @@ static int __init build_one_resource(struct device_node *parent,
405 u32 *ranges; 436 u32 *ranges;
406 unsigned int rlen; 437 unsigned int rlen;
407 int rone; 438 int rone;
408 u64 offset = OF_BAD_ADDR;
409 439
410 ranges = of_get_property(parent, "ranges", &rlen); 440 ranges = of_get_property(parent, "ranges", &rlen);
411 if (ranges == NULL || rlen == 0) { 441 if (ranges == NULL || rlen == 0) {
412 offset = of_read_addr(addr, na); 442 u32 result[OF_MAX_ADDR_CELLS];
413 memset(addr, 0, pna * 4); 443 int i;
414 goto finish; 444
445 memset(result, 0, pna * 4);
446 for (i = 0; i < na; i++)
447 result[pna - 1 - i] =
448 addr[na - 1 - i];
449
450 memcpy(addr, result, pna * 4);
451 return 0;
415 } 452 }
416 453
417 /* Now walk through the ranges */ 454 /* Now walk through the ranges */
418 rlen /= 4; 455 rlen /= 4;
419 rone = na + pna + ns; 456 rone = na + pna + ns;
420 for (; rlen >= rone; rlen -= rone, ranges += rone) { 457 for (; rlen >= rone; rlen -= rone, ranges += rone) {
421 offset = bus->map(addr, ranges, na, ns, pna); 458 if (!bus->map(addr, ranges, na, ns, pna))
422 if (offset != OF_BAD_ADDR) 459 return 0;
423 break;
424 } 460 }
425 if (offset == OF_BAD_ADDR)
426 return 1;
427 461
428 memcpy(addr, ranges + na, 4 * pna); 462 return 1;
429
430finish:
431 /* Translate it into parent bus space */
432 return pbus->translate(addr, offset, pna);
433} 463}
434 464
465static int of_resource_verbose;
466
435static void __init build_device_resources(struct of_device *op, 467static void __init build_device_resources(struct of_device *op,
436 struct device *parent) 468 struct device *parent)
437{ 469{
@@ -497,7 +529,8 @@ static void __init build_device_resources(struct of_device *op,
497 pbus = of_match_bus(pp); 529 pbus = of_match_bus(pp);
498 pbus->count_cells(dp, &pna, &pns); 530 pbus->count_cells(dp, &pna, &pns);
499 531
500 if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) 532 if (build_one_resource(dp, bus, pbus, addr,
533 dna, dns, pna))
501 break; 534 break;
502 535
503 dna = pna; 536 dna = pna;
@@ -507,6 +540,12 @@ static void __init build_device_resources(struct of_device *op,
507 540
508 build_res: 541 build_res:
509 memset(r, 0, sizeof(*r)); 542 memset(r, 0, sizeof(*r));
543
544 if (of_resource_verbose)
545 printk("%s reg[%d] -> %llx\n",
546 op->node->full_name, index,
547 result);
548
510 if (result != OF_BAD_ADDR) { 549 if (result != OF_BAD_ADDR) {
511 r->start = result & 0xffffffff; 550 r->start = result & 0xffffffff;
512 r->end = result + size - 1; 551 r->end = result + size - 1;
@@ -643,6 +682,18 @@ static int __init of_bus_driver_init(void)
643 682
644postcore_initcall(of_bus_driver_init); 683postcore_initcall(of_bus_driver_init);
645 684
685static int __init of_debug(char *str)
686{
687 int val = 0;
688
689 get_option(&str, &val);
690 if (val & 1)
691 of_resource_verbose = 1;
692 return 1;
693}
694
695__setup("of_debug=", of_debug);
696
646int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) 697int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
647{ 698{
648 /* initialize common driver fields */ 699 /* initialize common driver fields */
@@ -695,9 +746,11 @@ int of_device_register(struct of_device *ofdev)
695 if (rc) 746 if (rc)
696 return rc; 747 return rc;
697 748
698 device_create_file(&ofdev->dev, &dev_attr_devspec); 749 rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
750 if (rc)
751 device_unregister(&ofdev->dev);
699 752
700 return 0; 753 return rc;
701} 754}
702 755
703void of_device_unregister(struct of_device *ofdev) 756void of_device_unregister(struct of_device *ofdev)
diff --git a/arch/sparc64/defconfig b/arch/sparc64/defconfig
index b2f41147d0e4..38353621069e 100644
--- a/arch/sparc64/defconfig
+++ b/arch/sparc64/defconfig
@@ -1,7 +1,7 @@
1# 1#
2# Automatically generated make config: don't edit 2# Automatically generated make config: don't edit
3# Linux kernel version: 2.6.17 3# Linux kernel version: 2.6.18-rc1
4# Fri Jun 23 23:17:09 2006 4# Wed Jul 12 14:00:58 2006
5# 5#
6CONFIG_SPARC=y 6CONFIG_SPARC=y
7CONFIG_SPARC64=y 7CONFIG_SPARC64=y
@@ -18,6 +18,7 @@ CONFIG_SECCOMP=y
18CONFIG_HZ_250=y 18CONFIG_HZ_250=y
19# CONFIG_HZ_1000 is not set 19# CONFIG_HZ_1000 is not set
20CONFIG_HZ=250 20CONFIG_HZ=250
21CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
21 22
22# 23#
23# Code maturity level options 24# Code maturity level options
@@ -51,10 +52,12 @@ CONFIG_PRINTK=y
51CONFIG_BUG=y 52CONFIG_BUG=y
52CONFIG_ELF_CORE=y 53CONFIG_ELF_CORE=y
53CONFIG_BASE_FULL=y 54CONFIG_BASE_FULL=y
55CONFIG_RT_MUTEXES=y
54CONFIG_FUTEX=y 56CONFIG_FUTEX=y
55CONFIG_EPOLL=y 57CONFIG_EPOLL=y
56CONFIG_SHMEM=y 58CONFIG_SHMEM=y
57CONFIG_SLAB=y 59CONFIG_SLAB=y
60CONFIG_VM_EVENT_COUNTERS=y
58# CONFIG_TINY_SHMEM is not set 61# CONFIG_TINY_SHMEM is not set
59CONFIG_BASE_SMALL=0 62CONFIG_BASE_SMALL=0
60# CONFIG_SLOB is not set 63# CONFIG_SLOB is not set
@@ -127,8 +130,8 @@ CONFIG_SPARSEMEM=y
127CONFIG_HAVE_MEMORY_PRESENT=y 130CONFIG_HAVE_MEMORY_PRESENT=y
128# CONFIG_SPARSEMEM_STATIC is not set 131# CONFIG_SPARSEMEM_STATIC is not set
129CONFIG_SPARSEMEM_EXTREME=y 132CONFIG_SPARSEMEM_EXTREME=y
130CONFIG_MEMORY_HOTPLUG=y
131CONFIG_SPLIT_PTLOCK_CPUS=4 133CONFIG_SPLIT_PTLOCK_CPUS=4
134CONFIG_RESOURCES_64BIT=y
132CONFIG_GENERIC_ISA_DMA=y 135CONFIG_GENERIC_ISA_DMA=y
133CONFIG_SBUS=y 136CONFIG_SBUS=y
134CONFIG_SBUSCHAR=y 137CONFIG_SBUSCHAR=y
@@ -203,7 +206,6 @@ CONFIG_TCP_CONG_VEGAS=m
203CONFIG_TCP_CONG_SCALABLE=m 206CONFIG_TCP_CONG_SCALABLE=m
204CONFIG_TCP_CONG_LP=m 207CONFIG_TCP_CONG_LP=m
205CONFIG_TCP_CONG_VENO=m 208CONFIG_TCP_CONG_VENO=m
206CONFIG_TCP_CONG_COMPOUND=m
207CONFIG_IPV6=m 209CONFIG_IPV6=m
208CONFIG_IPV6_PRIVACY=y 210CONFIG_IPV6_PRIVACY=y
209CONFIG_IPV6_ROUTER_PREF=y 211CONFIG_IPV6_ROUTER_PREF=y
@@ -461,9 +463,8 @@ CONFIG_MD_LINEAR=m
461CONFIG_MD_RAID0=m 463CONFIG_MD_RAID0=m
462CONFIG_MD_RAID1=m 464CONFIG_MD_RAID1=m
463CONFIG_MD_RAID10=m 465CONFIG_MD_RAID10=m
464CONFIG_MD_RAID5=m 466CONFIG_MD_RAID456=m
465# CONFIG_MD_RAID5_RESHAPE is not set 467# CONFIG_MD_RAID5_RESHAPE is not set
466CONFIG_MD_RAID6=m
467CONFIG_MD_MULTIPATH=m 468CONFIG_MD_MULTIPATH=m
468# CONFIG_MD_FAULTY is not set 469# CONFIG_MD_FAULTY is not set
469CONFIG_BLK_DEV_DM=m 470CONFIG_BLK_DEV_DM=m
@@ -663,6 +664,7 @@ CONFIG_SERIO_RAW=m
663CONFIG_VT=y 664CONFIG_VT=y
664CONFIG_VT_CONSOLE=y 665CONFIG_VT_CONSOLE=y
665CONFIG_HW_CONSOLE=y 666CONFIG_HW_CONSOLE=y
667# CONFIG_VT_HW_CONSOLE_BINDING is not set
666# CONFIG_SERIAL_NONSTANDARD is not set 668# CONFIG_SERIAL_NONSTANDARD is not set
667 669
668# 670#
@@ -693,6 +695,7 @@ CONFIG_UNIX98_PTYS=y
693# Watchdog Cards 695# Watchdog Cards
694# 696#
695# CONFIG_WATCHDOG is not set 697# CONFIG_WATCHDOG is not set
698# CONFIG_HW_RANDOM is not set
696CONFIG_RTC=y 699CONFIG_RTC=y
697# CONFIG_DTLK is not set 700# CONFIG_DTLK is not set
698# CONFIG_R3964 is not set 701# CONFIG_R3964 is not set
@@ -839,12 +842,13 @@ CONFIG_VIDEO_V4L2=y
839# 842#
840# Graphics support 843# Graphics support
841# 844#
845# CONFIG_FIRMWARE_EDID is not set
842CONFIG_FB=y 846CONFIG_FB=y
843CONFIG_FB_CFB_FILLRECT=y 847CONFIG_FB_CFB_FILLRECT=y
844CONFIG_FB_CFB_COPYAREA=y 848CONFIG_FB_CFB_COPYAREA=y
845CONFIG_FB_CFB_IMAGEBLIT=y 849CONFIG_FB_CFB_IMAGEBLIT=y
846# CONFIG_FB_MACMODES is not set 850# CONFIG_FB_MACMODES is not set
847# CONFIG_FB_FIRMWARE_EDID is not set 851# CONFIG_FB_BACKLIGHT is not set
848CONFIG_FB_MODE_HELPERS=y 852CONFIG_FB_MODE_HELPERS=y
849CONFIG_FB_TILEBLITTING=y 853CONFIG_FB_TILEBLITTING=y
850# CONFIG_FB_CIRRUS is not set 854# CONFIG_FB_CIRRUS is not set
@@ -954,6 +958,18 @@ CONFIG_SND_ALI5451=m
954# CONFIG_SND_CMIPCI is not set 958# CONFIG_SND_CMIPCI is not set
955# CONFIG_SND_CS4281 is not set 959# CONFIG_SND_CS4281 is not set
956# CONFIG_SND_CS46XX is not set 960# CONFIG_SND_CS46XX is not set
961# CONFIG_SND_DARLA20 is not set
962# CONFIG_SND_GINA20 is not set
963# CONFIG_SND_LAYLA20 is not set
964# CONFIG_SND_DARLA24 is not set
965# CONFIG_SND_GINA24 is not set
966# CONFIG_SND_LAYLA24 is not set
967# CONFIG_SND_MONA is not set
968# CONFIG_SND_MIA is not set
969# CONFIG_SND_ECHO3G is not set
970# CONFIG_SND_INDIGO is not set
971# CONFIG_SND_INDIGOIO is not set
972# CONFIG_SND_INDIGODJ is not set
957# CONFIG_SND_EMU10K1 is not set 973# CONFIG_SND_EMU10K1 is not set
958# CONFIG_SND_EMU10K1X is not set 974# CONFIG_SND_EMU10K1X is not set
959# CONFIG_SND_ENS1370 is not set 975# CONFIG_SND_ENS1370 is not set
@@ -1263,6 +1279,7 @@ CONFIG_RAMFS=y
1263# CONFIG_NFSD is not set 1279# CONFIG_NFSD is not set
1264# CONFIG_SMB_FS is not set 1280# CONFIG_SMB_FS is not set
1265# CONFIG_CIFS is not set 1281# CONFIG_CIFS is not set
1282# CONFIG_CIFS_DEBUG2 is not set
1266# CONFIG_NCP_FS is not set 1283# CONFIG_NCP_FS is not set
1267# CONFIG_CODA_FS is not set 1284# CONFIG_CODA_FS is not set
1268# CONFIG_AFS_FS is not set 1285# CONFIG_AFS_FS is not set
@@ -1331,14 +1348,19 @@ CONFIG_KPROBES=y
1331# 1348#
1332CONFIG_PRINTK_TIME=y 1349CONFIG_PRINTK_TIME=y
1333CONFIG_MAGIC_SYSRQ=y 1350CONFIG_MAGIC_SYSRQ=y
1351# CONFIG_UNUSED_SYMBOLS is not set
1334CONFIG_DEBUG_KERNEL=y 1352CONFIG_DEBUG_KERNEL=y
1335CONFIG_LOG_BUF_SHIFT=18 1353CONFIG_LOG_BUF_SHIFT=18
1336CONFIG_DETECT_SOFTLOCKUP=y 1354CONFIG_DETECT_SOFTLOCKUP=y
1337CONFIG_SCHEDSTATS=y 1355CONFIG_SCHEDSTATS=y
1338# CONFIG_DEBUG_SLAB is not set 1356# CONFIG_DEBUG_SLAB is not set
1339# CONFIG_DEBUG_MUTEXES is not set 1357# CONFIG_DEBUG_RT_MUTEXES is not set
1358# CONFIG_RT_MUTEX_TESTER is not set
1340# CONFIG_DEBUG_SPINLOCK is not set 1359# CONFIG_DEBUG_SPINLOCK is not set
1360# CONFIG_DEBUG_MUTEXES is not set
1361# CONFIG_DEBUG_RWSEMS is not set
1341# CONFIG_DEBUG_SPINLOCK_SLEEP is not set 1362# CONFIG_DEBUG_SPINLOCK_SLEEP is not set
1363# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
1342# CONFIG_DEBUG_KOBJECT is not set 1364# CONFIG_DEBUG_KOBJECT is not set
1343CONFIG_DEBUG_BUGVERBOSE=y 1365CONFIG_DEBUG_BUGVERBOSE=y
1344# CONFIG_DEBUG_INFO is not set 1366# CONFIG_DEBUG_INFO is not set
@@ -1402,3 +1424,4 @@ CONFIG_CRC32=y
1402CONFIG_LIBCRC32C=m 1424CONFIG_LIBCRC32C=m
1403CONFIG_ZLIB_INFLATE=y 1425CONFIG_ZLIB_INFLATE=y
1404CONFIG_ZLIB_DEFLATE=y 1426CONFIG_ZLIB_DEFLATE=y
1427CONFIG_PLIST=y
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 75684b56767e..c8e9dc9d68a9 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -551,9 +551,10 @@ setup_trap_table:
551 save %sp, -192, %sp 551 save %sp, -192, %sp
552 552
553 /* Force interrupts to be disabled. */ 553 /* Force interrupts to be disabled. */
554 rdpr %pstate, %o1 554 rdpr %pstate, %l0
555 andn %o1, PSTATE_IE, %o1 555 andn %l0, PSTATE_IE, %o1
556 wrpr %o1, 0x0, %pstate 556 wrpr %o1, 0x0, %pstate
557 rdpr %pil, %l1
557 wrpr %g0, 15, %pil 558 wrpr %g0, 15, %pil
558 559
559 /* Make the firmware call to jump over to the Linux trap table. */ 560 /* Make the firmware call to jump over to the Linux trap table. */
@@ -622,11 +623,9 @@ setup_trap_table:
622 call init_irqwork_curcpu 623 call init_irqwork_curcpu
623 nop 624 nop
624 625
625 /* Now we can turn interrupts back on. */ 626 /* Now we can restore interrupt state. */
626 rdpr %pstate, %o1 627 wrpr %l0, 0, %pstate
627 or %o1, PSTATE_IE, %o1 628 wrpr %l1, 0x0, %pil
628 wrpr %o1, 0, %pstate
629 wrpr %g0, 0x0, %pil
630 629
631 ret 630 ret
632 restore 631 restore
diff --git a/arch/sparc64/kernel/of_device.c b/arch/sparc64/kernel/of_device.c
index 169b017eec0b..7064cee290ae 100644
--- a/arch/sparc64/kernel/of_device.c
+++ b/arch/sparc64/kernel/of_device.c
@@ -210,7 +210,7 @@ struct bus_type of_bus_type = {
210}; 210};
211EXPORT_SYMBOL(of_bus_type); 211EXPORT_SYMBOL(of_bus_type);
212 212
213static inline u64 of_read_addr(u32 *cell, int size) 213static inline u64 of_read_addr(const u32 *cell, int size)
214{ 214{
215 u64 r = 0; 215 u64 r = 0;
216 while (size--) 216 while (size--)
@@ -236,8 +236,8 @@ struct of_bus {
236 int (*match)(struct device_node *parent); 236 int (*match)(struct device_node *parent);
237 void (*count_cells)(struct device_node *child, 237 void (*count_cells)(struct device_node *child,
238 int *addrc, int *sizec); 238 int *addrc, int *sizec);
239 u64 (*map)(u32 *addr, u32 *range, int na, int ns, int pna); 239 int (*map)(u32 *addr, const u32 *range,
240 int (*translate)(u32 *addr, u64 offset, int na); 240 int na, int ns, int pna);
241 unsigned int (*get_flags)(u32 *addr); 241 unsigned int (*get_flags)(u32 *addr);
242}; 242};
243 243
@@ -251,27 +251,49 @@ static void of_bus_default_count_cells(struct device_node *dev,
251 get_cells(dev, addrc, sizec); 251 get_cells(dev, addrc, sizec);
252} 252}
253 253
254static u64 of_bus_default_map(u32 *addr, u32 *range, int na, int ns, int pna) 254/* Make sure the least significant 64-bits are in-range. Even
255 * for 3 or 4 cell values it is a good enough approximation.
256 */
257static int of_out_of_range(const u32 *addr, const u32 *base,
258 const u32 *size, int na, int ns)
255{ 259{
256 u64 cp, s, da; 260 u64 a = of_read_addr(addr, na);
261 u64 b = of_read_addr(base, na);
257 262
258 cp = of_read_addr(range, na); 263 if (a < b)
259 s = of_read_addr(range + na + pna, ns); 264 return 1;
260 da = of_read_addr(addr, na);
261 265
262 if (da < cp || da >= (cp + s)) 266 b += of_read_addr(size, ns);
263 return OF_BAD_ADDR; 267 if (a >= b)
264 return da - cp; 268 return 1;
269
270 return 0;
265} 271}
266 272
267static int of_bus_default_translate(u32 *addr, u64 offset, int na) 273static int of_bus_default_map(u32 *addr, const u32 *range,
274 int na, int ns, int pna)
268{ 275{
269 u64 a = of_read_addr(addr, na); 276 u32 result[OF_MAX_ADDR_CELLS];
270 memset(addr, 0, na * 4); 277 int i;
271 a += offset; 278
272 if (na > 1) 279 if (ns > 2) {
273 addr[na - 2] = a >> 32; 280 printk("of_device: Cannot handle size cells (%d) > 2.", ns);
274 addr[na - 1] = a & 0xffffffffu; 281 return -EINVAL;
282 }
283
284 if (of_out_of_range(addr, range, range + na + pna, na, ns))
285 return -EINVAL;
286
287 /* Start with the parent range base. */
288 memcpy(result, range + na, pna * 4);
289
290 /* Add in the child address offset. */
291 for (i = 0; i < na; i++)
292 result[pna - 1 - i] +=
293 (addr[na - 1 - i] -
294 range[na - 1 - i]);
295
296 memcpy(addr, result, pna * 4);
275 297
276 return 0; 298 return 0;
277} 299}
@@ -287,7 +309,20 @@ static unsigned int of_bus_default_get_flags(u32 *addr)
287 309
288static int of_bus_pci_match(struct device_node *np) 310static int of_bus_pci_match(struct device_node *np)
289{ 311{
290 return !strcmp(np->type, "pci") || !strcmp(np->type, "pciex"); 312 if (!strcmp(np->type, "pci") || !strcmp(np->type, "pciex")) {
313 /* Do not do PCI specific frobbing if the
314 * PCI bridge lacks a ranges property. We
315 * want to pass it through up to the next
316 * parent as-is, not with the PCI translate
317 * method which chops off the top address cell.
318 */
319 if (!of_find_property(np, "ranges", NULL))
320 return 0;
321
322 return 1;
323 }
324
325 return 0;
291} 326}
292 327
293static void of_bus_pci_count_cells(struct device_node *np, 328static void of_bus_pci_count_cells(struct device_node *np,
@@ -299,27 +334,32 @@ static void of_bus_pci_count_cells(struct device_node *np,
299 *sizec = 2; 334 *sizec = 2;
300} 335}
301 336
302static u64 of_bus_pci_map(u32 *addr, u32 *range, int na, int ns, int pna) 337static int of_bus_pci_map(u32 *addr, const u32 *range,
338 int na, int ns, int pna)
303{ 339{
304 u64 cp, s, da; 340 u32 result[OF_MAX_ADDR_CELLS];
341 int i;
305 342
306 /* Check address type match */ 343 /* Check address type match */
307 if ((addr[0] ^ range[0]) & 0x03000000) 344 if ((addr[0] ^ range[0]) & 0x03000000)
308 return OF_BAD_ADDR; 345 return -EINVAL;
309 346
310 /* Read address values, skipping high cell */ 347 if (of_out_of_range(addr + 1, range + 1, range + na + pna,
311 cp = of_read_addr(range + 1, na - 1); 348 na - 1, ns))
312 s = of_read_addr(range + na + pna, ns); 349 return -EINVAL;
313 da = of_read_addr(addr + 1, na - 1);
314 350
315 if (da < cp || da >= (cp + s)) 351 /* Start with the parent range base. */
316 return OF_BAD_ADDR; 352 memcpy(result, range + na, pna * 4);
317 return da - cp;
318}
319 353
320static int of_bus_pci_translate(u32 *addr, u64 offset, int na) 354 /* Add in the child address offset, skipping high cell. */
321{ 355 for (i = 0; i < na - 1; i++)
322 return of_bus_default_translate(addr + 1, offset, na - 1); 356 result[pna - 1 - i] +=
357 (addr[na - 1 - i] -
358 range[na - 1 - i]);
359
360 memcpy(addr, result, pna * 4);
361
362 return 0;
323} 363}
324 364
325static unsigned int of_bus_pci_get_flags(u32 *addr) 365static unsigned int of_bus_pci_get_flags(u32 *addr)
@@ -340,59 +380,6 @@ static unsigned int of_bus_pci_get_flags(u32 *addr)
340} 380}
341 381
342/* 382/*
343 * ISA bus specific translator
344 */
345
346static int of_bus_isa_match(struct device_node *np)
347{
348 return !strcmp(np->name, "isa");
349}
350
351static void of_bus_isa_count_cells(struct device_node *child,
352 int *addrc, int *sizec)
353{
354 if (addrc)
355 *addrc = 2;
356 if (sizec)
357 *sizec = 1;
358}
359
360static u64 of_bus_isa_map(u32 *addr, u32 *range, int na, int ns, int pna)
361{
362 u64 cp, s, da;
363
364 /* Check address type match */
365 if ((addr[0] ^ range[0]) & 0x00000001)
366 return OF_BAD_ADDR;
367
368 /* Read address values, skipping high cell */
369 cp = of_read_addr(range + 1, na - 1);
370 s = of_read_addr(range + na + pna, ns);
371 da = of_read_addr(addr + 1, na - 1);
372
373 if (da < cp || da >= (cp + s))
374 return OF_BAD_ADDR;
375 return da - cp;
376}
377
378static int of_bus_isa_translate(u32 *addr, u64 offset, int na)
379{
380 return of_bus_default_translate(addr + 1, offset, na - 1);
381}
382
383static unsigned int of_bus_isa_get_flags(u32 *addr)
384{
385 unsigned int flags = 0;
386 u32 w = addr[0];
387
388 if (w & 1)
389 flags |= IORESOURCE_IO;
390 else
391 flags |= IORESOURCE_MEM;
392 return flags;
393}
394
395/*
396 * SBUS bus specific translator 383 * SBUS bus specific translator
397 */ 384 */
398 385
@@ -411,16 +398,11 @@ static void of_bus_sbus_count_cells(struct device_node *child,
411 *sizec = 1; 398 *sizec = 1;
412} 399}
413 400
414static u64 of_bus_sbus_map(u32 *addr, u32 *range, int na, int ns, int pna) 401static int of_bus_sbus_map(u32 *addr, const u32 *range, int na, int ns, int pna)
415{ 402{
416 return of_bus_default_map(addr, range, na, ns, pna); 403 return of_bus_default_map(addr, range, na, ns, pna);
417} 404}
418 405
419static int of_bus_sbus_translate(u32 *addr, u64 offset, int na)
420{
421 return of_bus_default_translate(addr, offset, na);
422}
423
424static unsigned int of_bus_sbus_get_flags(u32 *addr) 406static unsigned int of_bus_sbus_get_flags(u32 *addr)
425{ 407{
426 return IORESOURCE_MEM; 408 return IORESOURCE_MEM;
@@ -439,19 +421,8 @@ static struct of_bus of_busses[] = {
439 .match = of_bus_pci_match, 421 .match = of_bus_pci_match,
440 .count_cells = of_bus_pci_count_cells, 422 .count_cells = of_bus_pci_count_cells,
441 .map = of_bus_pci_map, 423 .map = of_bus_pci_map,
442 .translate = of_bus_pci_translate,
443 .get_flags = of_bus_pci_get_flags, 424 .get_flags = of_bus_pci_get_flags,
444 }, 425 },
445 /* ISA */
446 {
447 .name = "isa",
448 .addr_prop_name = "reg",
449 .match = of_bus_isa_match,
450 .count_cells = of_bus_isa_count_cells,
451 .map = of_bus_isa_map,
452 .translate = of_bus_isa_translate,
453 .get_flags = of_bus_isa_get_flags,
454 },
455 /* SBUS */ 426 /* SBUS */
456 { 427 {
457 .name = "sbus", 428 .name = "sbus",
@@ -459,7 +430,6 @@ static struct of_bus of_busses[] = {
459 .match = of_bus_sbus_match, 430 .match = of_bus_sbus_match,
460 .count_cells = of_bus_sbus_count_cells, 431 .count_cells = of_bus_sbus_count_cells,
461 .map = of_bus_sbus_map, 432 .map = of_bus_sbus_map,
462 .translate = of_bus_sbus_translate,
463 .get_flags = of_bus_sbus_get_flags, 433 .get_flags = of_bus_sbus_get_flags,
464 }, 434 },
465 /* Default */ 435 /* Default */
@@ -469,7 +439,6 @@ static struct of_bus of_busses[] = {
469 .match = NULL, 439 .match = NULL,
470 .count_cells = of_bus_default_count_cells, 440 .count_cells = of_bus_default_count_cells,
471 .map = of_bus_default_map, 441 .map = of_bus_default_map,
472 .translate = of_bus_default_translate,
473 .get_flags = of_bus_default_get_flags, 442 .get_flags = of_bus_default_get_flags,
474 }, 443 },
475}; 444};
@@ -494,33 +463,62 @@ static int __init build_one_resource(struct device_node *parent,
494 u32 *ranges; 463 u32 *ranges;
495 unsigned int rlen; 464 unsigned int rlen;
496 int rone; 465 int rone;
497 u64 offset = OF_BAD_ADDR;
498 466
499 ranges = of_get_property(parent, "ranges", &rlen); 467 ranges = of_get_property(parent, "ranges", &rlen);
500 if (ranges == NULL || rlen == 0) { 468 if (ranges == NULL || rlen == 0) {
501 offset = of_read_addr(addr, na); 469 u32 result[OF_MAX_ADDR_CELLS];
502 memset(addr, 0, pna * 4); 470 int i;
503 goto finish; 471
472 memset(result, 0, pna * 4);
473 for (i = 0; i < na; i++)
474 result[pna - 1 - i] =
475 addr[na - 1 - i];
476
477 memcpy(addr, result, pna * 4);
478 return 0;
504 } 479 }
505 480
506 /* Now walk through the ranges */ 481 /* Now walk through the ranges */
507 rlen /= 4; 482 rlen /= 4;
508 rone = na + pna + ns; 483 rone = na + pna + ns;
509 for (; rlen >= rone; rlen -= rone, ranges += rone) { 484 for (; rlen >= rone; rlen -= rone, ranges += rone) {
510 offset = bus->map(addr, ranges, na, ns, pna); 485 if (!bus->map(addr, ranges, na, ns, pna))
511 if (offset != OF_BAD_ADDR) 486 return 0;
512 break;
513 } 487 }
514 if (offset == OF_BAD_ADDR) 488
489 return 1;
490}
491
492static int __init use_1to1_mapping(struct device_node *pp)
493{
494 char *model;
495
496 /* If this is on the PMU bus, don't try to translate it even
497 * if a ranges property exists.
498 */
499 if (!strcmp(pp->name, "pmu"))
515 return 1; 500 return 1;
516 501
517 memcpy(addr, ranges + na, 4 * pna); 502 /* If we have a ranges property in the parent, use it. */
503 if (of_find_property(pp, "ranges", NULL) != NULL)
504 return 0;
505
506 /* If the parent is the dma node of an ISA bus, pass
507 * the translation up to the root.
508 */
509 if (!strcmp(pp->name, "dma"))
510 return 0;
511
512 /* Similarly for Simba PCI bridges. */
513 model = of_get_property(pp, "model", NULL);
514 if (model && !strcmp(model, "SUNW,simba"))
515 return 0;
518 516
519finish: 517 return 1;
520 /* Translate it into parent bus space */
521 return pbus->translate(addr, offset, pna);
522} 518}
523 519
520static int of_resource_verbose;
521
524static void __init build_device_resources(struct of_device *op, 522static void __init build_device_resources(struct of_device *op,
525 struct device *parent) 523 struct device *parent)
526{ 524{
@@ -564,15 +562,7 @@ static void __init build_device_resources(struct of_device *op,
564 562
565 memcpy(addr, reg, na * 4); 563 memcpy(addr, reg, na * 4);
566 564
567 /* If the immediate parent has no ranges property to apply, 565 if (use_1to1_mapping(pp)) {
568 * just use a 1<->1 mapping. Unless it is the 'dma' child
569 * of an isa bus, which must be passed up towards the root.
570 *
571 * Also, don't try to translate PMU bus device registers.
572 */
573 if ((of_find_property(pp, "ranges", NULL) == NULL &&
574 strcmp(pp->name, "dma") != 0) ||
575 !strcmp(pp->name, "pmu")) {
576 result = of_read_addr(addr, na); 566 result = of_read_addr(addr, na);
577 goto build_res; 567 goto build_res;
578 } 568 }
@@ -591,7 +581,8 @@ static void __init build_device_resources(struct of_device *op,
591 pbus = of_match_bus(pp); 581 pbus = of_match_bus(pp);
592 pbus->count_cells(dp, &pna, &pns); 582 pbus->count_cells(dp, &pna, &pns);
593 583
594 if (build_one_resource(dp, bus, pbus, addr, dna, dns, pna)) 584 if (build_one_resource(dp, bus, pbus, addr,
585 dna, dns, pna))
595 break; 586 break;
596 587
597 dna = pna; 588 dna = pna;
@@ -601,6 +592,12 @@ static void __init build_device_resources(struct of_device *op,
601 592
602 build_res: 593 build_res:
603 memset(r, 0, sizeof(*r)); 594 memset(r, 0, sizeof(*r));
595
596 if (of_resource_verbose)
597 printk("%s reg[%d] -> %lx\n",
598 op->node->full_name, index,
599 result);
600
604 if (result != OF_BAD_ADDR) { 601 if (result != OF_BAD_ADDR) {
605 if (tlb_type == hypervisor) 602 if (tlb_type == hypervisor)
606 result &= 0x0fffffffffffffffUL; 603 result &= 0x0fffffffffffffffUL;
@@ -684,6 +681,8 @@ static unsigned int __init pci_irq_swizzle(struct device_node *dp,
684 return ret; 681 return ret;
685} 682}
686 683
684static int of_irq_verbose;
685
687static unsigned int __init build_one_device_irq(struct of_device *op, 686static unsigned int __init build_one_device_irq(struct of_device *op,
688 struct device *parent, 687 struct device *parent,
689 unsigned int irq) 688 unsigned int irq)
@@ -698,10 +697,11 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
698 if (dp->irq_trans) { 697 if (dp->irq_trans) {
699 irq = dp->irq_trans->irq_build(dp, irq, 698 irq = dp->irq_trans->irq_build(dp, irq,
700 dp->irq_trans->data); 699 dp->irq_trans->data);
701#if 1 700
702 printk("%s: direct translate %x --> %x\n", 701 if (of_irq_verbose)
703 dp->full_name, orig_irq, irq); 702 printk("%s: direct translate %x --> %x\n",
704#endif 703 dp->full_name, orig_irq, irq);
704
705 return irq; 705 return irq;
706 } 706 }
707 707
@@ -728,12 +728,13 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
728 iret = apply_interrupt_map(dp, pp, 728 iret = apply_interrupt_map(dp, pp,
729 imap, imlen, imsk, 729 imap, imlen, imsk,
730 &irq); 730 &irq);
731#if 1 731
732 printk("%s: Apply [%s:%x] imap --> [%s:%x]\n", 732 if (of_irq_verbose)
733 op->node->full_name, 733 printk("%s: Apply [%s:%x] imap --> [%s:%x]\n",
734 pp->full_name, this_orig_irq, 734 op->node->full_name,
735 (iret ? iret->full_name : "NULL"), irq); 735 pp->full_name, this_orig_irq,
736#endif 736 (iret ? iret->full_name : "NULL"), irq);
737
737 if (!iret) 738 if (!iret)
738 break; 739 break;
739 740
@@ -747,11 +748,13 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
747 unsigned int this_orig_irq = irq; 748 unsigned int this_orig_irq = irq;
748 749
749 irq = pci_irq_swizzle(dp, pp, irq); 750 irq = pci_irq_swizzle(dp, pp, irq);
750#if 1 751 if (of_irq_verbose)
751 printk("%s: PCI swizzle [%s] %x --> %x\n", 752 printk("%s: PCI swizzle [%s] "
752 op->node->full_name, 753 "%x --> %x\n",
753 pp->full_name, this_orig_irq, irq); 754 op->node->full_name,
754#endif 755 pp->full_name, this_orig_irq,
756 irq);
757
755 } 758 }
756 759
757 if (pp->irq_trans) { 760 if (pp->irq_trans) {
@@ -767,10 +770,9 @@ static unsigned int __init build_one_device_irq(struct of_device *op,
767 770
768 irq = ip->irq_trans->irq_build(op->node, irq, 771 irq = ip->irq_trans->irq_build(op->node, irq,
769 ip->irq_trans->data); 772 ip->irq_trans->data);
770#if 1 773 if (of_irq_verbose)
771 printk("%s: Apply IRQ trans [%s] %x --> %x\n", 774 printk("%s: Apply IRQ trans [%s] %x --> %x\n",
772 op->node->full_name, ip->full_name, orig_irq, irq); 775 op->node->full_name, ip->full_name, orig_irq, irq);
773#endif
774 776
775 return irq; 777 return irq;
776} 778}
@@ -870,6 +872,20 @@ static int __init of_bus_driver_init(void)
870 872
871postcore_initcall(of_bus_driver_init); 873postcore_initcall(of_bus_driver_init);
872 874
875static int __init of_debug(char *str)
876{
877 int val = 0;
878
879 get_option(&str, &val);
880 if (val & 1)
881 of_resource_verbose = 1;
882 if (val & 2)
883 of_irq_verbose = 1;
884 return 1;
885}
886
887__setup("of_debug=", of_debug);
888
873int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus) 889int of_register_driver(struct of_platform_driver *drv, struct bus_type *bus)
874{ 890{
875 /* initialize common driver fields */ 891 /* initialize common driver fields */
@@ -922,9 +938,11 @@ int of_device_register(struct of_device *ofdev)
922 if (rc) 938 if (rc)
923 return rc; 939 return rc;
924 940
925 device_create_file(&ofdev->dev, &dev_attr_devspec); 941 rc = device_create_file(&ofdev->dev, &dev_attr_devspec);
942 if (rc)
943 device_unregister(&ofdev->dev);
926 944
927 return 0; 945 return rc;
928} 946}
929 947
930void of_device_unregister(struct of_device *ofdev) 948void of_device_unregister(struct of_device *ofdev)
diff --git a/arch/sparc64/kernel/pci_psycho.c b/arch/sparc64/kernel/pci_psycho.c
index 197a7ffd57ee..1ec0aab68c08 100644
--- a/arch/sparc64/kernel/pci_psycho.c
+++ b/arch/sparc64/kernel/pci_psycho.c
@@ -1099,9 +1099,6 @@ static void pbm_register_toplevel_resources(struct pci_controller_info *p,
1099{ 1099{
1100 char *name = pbm->name; 1100 char *name = pbm->name;
1101 1101
1102 sprintf(name, "PSYCHO%d PBM%c",
1103 p->index,
1104 (pbm == &p->pbm_A ? 'A' : 'B'));
1105 pbm->io_space.name = pbm->mem_space.name = name; 1102 pbm->io_space.name = pbm->mem_space.name = name;
1106 1103
1107 request_resource(&ioport_resource, &pbm->io_space); 1104 request_resource(&ioport_resource, &pbm->io_space);
@@ -1203,12 +1200,13 @@ static void psycho_pbm_init(struct pci_controller_info *p,
1203 pbm->io_space.flags = IORESOURCE_IO; 1200 pbm->io_space.flags = IORESOURCE_IO;
1204 pbm->mem_space.end = pbm->mem_space.start + PSYCHO_MEMSPACE_SIZE; 1201 pbm->mem_space.end = pbm->mem_space.start + PSYCHO_MEMSPACE_SIZE;
1205 pbm->mem_space.flags = IORESOURCE_MEM; 1202 pbm->mem_space.flags = IORESOURCE_MEM;
1206 pbm_register_toplevel_resources(p, pbm);
1207 1203
1208 pbm->parent = p; 1204 pbm->parent = p;
1209 pbm->prom_node = dp; 1205 pbm->prom_node = dp;
1210 pbm->name = dp->full_name; 1206 pbm->name = dp->full_name;
1211 1207
1208 pbm_register_toplevel_resources(p, pbm);
1209
1212 printk("%s: PSYCHO PCI Bus Module ver[%x:%x]\n", 1210 printk("%s: PSYCHO PCI Bus Module ver[%x:%x]\n",
1213 pbm->name, 1211 pbm->name,
1214 pbm->chip_version, pbm->chip_revision); 1212 pbm->chip_version, pbm->chip_revision);
diff --git a/arch/sparc64/kernel/prom.c b/arch/sparc64/kernel/prom.c
index 99daeee4209d..c86007a2aa3f 100644
--- a/arch/sparc64/kernel/prom.c
+++ b/arch/sparc64/kernel/prom.c
@@ -539,6 +539,45 @@ static unsigned long __sabre_onboard_imap_off[] = {
539 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \ 539 ((ino & 0x20) ? (SABRE_ICLR_SCSI + (((ino) & 0x1f) << 3)) : \
540 (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3))) 540 (SABRE_ICLR_A_SLOT0 + (((ino) & 0x1f)<<3)))
541 541
542static int sabre_device_needs_wsync(struct device_node *dp)
543{
544 struct device_node *parent = dp->parent;
545 char *parent_model, *parent_compat;
546
547 /* This traversal up towards the root is meant to
548 * handle two cases:
549 *
550 * 1) non-PCI bus sitting under PCI, such as 'ebus'
551 * 2) the PCI controller interrupts themselves, which
552 * will use the sabre_irq_build but do not need
553 * the DMA synchronization handling
554 */
555 while (parent) {
556 if (!strcmp(parent->type, "pci"))
557 break;
558 parent = parent->parent;
559 }
560
561 if (!parent)
562 return 0;
563
564 parent_model = of_get_property(parent,
565 "model", NULL);
566 if (parent_model &&
567 (!strcmp(parent_model, "SUNW,sabre") ||
568 !strcmp(parent_model, "SUNW,simba")))
569 return 0;
570
571 parent_compat = of_get_property(parent,
572 "compatible", NULL);
573 if (parent_compat &&
574 (!strcmp(parent_compat, "pci108e,a000") ||
575 !strcmp(parent_compat, "pci108e,a001")))
576 return 0;
577
578 return 1;
579}
580
542static unsigned int sabre_irq_build(struct device_node *dp, 581static unsigned int sabre_irq_build(struct device_node *dp,
543 unsigned int ino, 582 unsigned int ino,
544 void *_data) 583 void *_data)
@@ -577,15 +616,17 @@ static unsigned int sabre_irq_build(struct device_node *dp,
577 616
578 virt_irq = build_irq(inofixup, iclr, imap); 617 virt_irq = build_irq(inofixup, iclr, imap);
579 618
619 /* If the parent device is a PCI<->PCI bridge other than
620 * APB, we have to install a pre-handler to ensure that
621 * all pending DMA is drained before the interrupt handler
622 * is run.
623 */
580 regs = of_get_property(dp, "reg", NULL); 624 regs = of_get_property(dp, "reg", NULL);
581 if (regs && 625 if (regs && sabre_device_needs_wsync(dp)) {
582 ((regs->phys_hi >> 16) & 0xff) != irq_data->pci_first_busno) {
583 irq_install_pre_handler(virt_irq, 626 irq_install_pre_handler(virt_irq,
584 sabre_wsync_handler, 627 sabre_wsync_handler,
585 (void *) (long) regs->phys_hi, 628 (void *) (long) regs->phys_hi,
586 (void *) 629 (void *) irq_data);
587 controller_regs +
588 SABRE_WRSYNC);
589 } 630 }
590 631
591 return virt_irq; 632 return virt_irq;
diff --git a/arch/sparc64/kernel/time.c b/arch/sparc64/kernel/time.c
index b43de647ba73..094d3e35be18 100644
--- a/arch/sparc64/kernel/time.c
+++ b/arch/sparc64/kernel/time.c
@@ -928,8 +928,6 @@ static void sparc64_start_timers(void)
928 __asm__ __volatile__("wrpr %0, 0x0, %%pstate" 928 __asm__ __volatile__("wrpr %0, 0x0, %%pstate"
929 : /* no outputs */ 929 : /* no outputs */
930 : "r" (pstate)); 930 : "r" (pstate));
931
932 local_irq_enable();
933} 931}
934 932
935struct freq_table { 933struct freq_table {
diff --git a/arch/um/Makefile-x86_64 b/arch/um/Makefile-x86_64
index dffd1184c956..9558a7cf34d5 100644
--- a/arch/um/Makefile-x86_64
+++ b/arch/um/Makefile-x86_64
@@ -11,6 +11,7 @@ USER_CFLAGS += -fno-builtin -m64
11CHECKFLAGS += -m64 11CHECKFLAGS += -m64
12AFLAGS += -m64 12AFLAGS += -m64
13LDFLAGS += -m elf_x86_64 13LDFLAGS += -m elf_x86_64
14CPPFLAGS += -m64
14 15
15ELF_ARCH := i386:x86-64 16ELF_ARCH := i386:x86-64
16ELF_FORMAT := elf64-x86-64 17ELF_FORMAT := elf64-x86-64
diff --git a/arch/um/include/longjmp.h b/arch/um/include/longjmp.h
index 8e7053013f7b..1b5c0131a12e 100644
--- a/arch/um/include/longjmp.h
+++ b/arch/um/include/longjmp.h
@@ -8,8 +8,8 @@
8 longjmp(*buf, val); \ 8 longjmp(*buf, val); \
9} while(0) 9} while(0)
10 10
11#define UML_SETJMP(buf, enable) ({ \ 11#define UML_SETJMP(buf) ({ \
12 int n; \ 12 int n, enable; \
13 enable = get_signals(); \ 13 enable = get_signals(); \
14 n = setjmp(*buf); \ 14 n = setjmp(*buf); \
15 if(n != 0) \ 15 if(n != 0) \
diff --git a/arch/um/include/os.h b/arch/um/include/os.h
index b6c52496e15a..5316e8a4a4fd 100644
--- a/arch/um/include/os.h
+++ b/arch/um/include/os.h
@@ -1,4 +1,4 @@
1/* 1/*
2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com) 2 * Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
3 * Licensed under the GPL 3 * Licensed under the GPL
4 */ 4 */
@@ -15,9 +15,9 @@
15#include "irq_user.h" 15#include "irq_user.h"
16#include "sysdep/tls.h" 16#include "sysdep/tls.h"
17 17
18#define OS_TYPE_FILE 1 18#define OS_TYPE_FILE 1
19#define OS_TYPE_DIR 2 19#define OS_TYPE_DIR 2
20#define OS_TYPE_SYMLINK 3 20#define OS_TYPE_SYMLINK 3
21#define OS_TYPE_CHARDEV 4 21#define OS_TYPE_CHARDEV 4
22#define OS_TYPE_BLOCKDEV 5 22#define OS_TYPE_BLOCKDEV 5
23#define OS_TYPE_FIFO 6 23#define OS_TYPE_FIFO 6
@@ -61,68 +61,68 @@ struct openflags {
61}; 61};
62 62
63#define OPENFLAGS() ((struct openflags) { .r = 0, .w = 0, .s = 0, .c = 0, \ 63#define OPENFLAGS() ((struct openflags) { .r = 0, .w = 0, .s = 0, .c = 0, \
64 .t = 0, .a = 0, .e = 0, .cl = 0 }) 64 .t = 0, .a = 0, .e = 0, .cl = 0 })
65 65
66static inline struct openflags of_read(struct openflags flags) 66static inline struct openflags of_read(struct openflags flags)
67{ 67{
68 flags.r = 1; 68 flags.r = 1;
69 return(flags); 69 return flags;
70} 70}
71 71
72static inline struct openflags of_write(struct openflags flags) 72static inline struct openflags of_write(struct openflags flags)
73{ 73{
74 flags.w = 1; 74 flags.w = 1;
75 return(flags); 75 return flags;
76} 76}
77 77
78static inline struct openflags of_rdwr(struct openflags flags) 78static inline struct openflags of_rdwr(struct openflags flags)
79{ 79{
80 return(of_read(of_write(flags))); 80 return of_read(of_write(flags));
81} 81}
82 82
83static inline struct openflags of_set_rw(struct openflags flags, int r, int w) 83static inline struct openflags of_set_rw(struct openflags flags, int r, int w)
84{ 84{
85 flags.r = r; 85 flags.r = r;
86 flags.w = w; 86 flags.w = w;
87 return(flags); 87 return flags;
88} 88}
89 89
90static inline struct openflags of_sync(struct openflags flags) 90static inline struct openflags of_sync(struct openflags flags)
91{ 91{
92 flags.s = 1; 92 flags.s = 1;
93 return(flags); 93 return flags;
94} 94}
95 95
96static inline struct openflags of_create(struct openflags flags) 96static inline struct openflags of_create(struct openflags flags)
97{ 97{
98 flags.c = 1; 98 flags.c = 1;
99 return(flags); 99 return flags;
100} 100}
101 101
102static inline struct openflags of_trunc(struct openflags flags) 102static inline struct openflags of_trunc(struct openflags flags)
103{ 103{
104 flags.t = 1; 104 flags.t = 1;
105 return(flags); 105 return flags;
106} 106}
107 107
108static inline struct openflags of_append(struct openflags flags) 108static inline struct openflags of_append(struct openflags flags)
109{ 109{
110 flags.a = 1; 110 flags.a = 1;
111 return(flags); 111 return flags;
112} 112}
113 113
114static inline struct openflags of_excl(struct openflags flags) 114static inline struct openflags of_excl(struct openflags flags)
115{ 115{
116 flags.e = 1; 116 flags.e = 1;
117 return(flags); 117 return flags;
118} 118}
119 119
120static inline struct openflags of_cloexec(struct openflags flags) 120static inline struct openflags of_cloexec(struct openflags flags)
121{ 121{
122 flags.cl = 1; 122 flags.cl = 1;
123 return(flags); 123 return flags;
124} 124}
125 125
126/* file.c */ 126/* file.c */
127extern int os_stat_file(const char *file_name, struct uml_stat *buf); 127extern int os_stat_file(const char *file_name, struct uml_stat *buf);
128extern int os_stat_fd(const int fd, struct uml_stat *buf); 128extern int os_stat_fd(const int fd, struct uml_stat *buf);
@@ -204,7 +204,7 @@ extern int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr);
204 204
205extern int os_map_memory(void *virt, int fd, unsigned long long off, 205extern int os_map_memory(void *virt, int fd, unsigned long long off,
206 unsigned long len, int r, int w, int x); 206 unsigned long len, int r, int w, int x);
207extern int os_protect_memory(void *addr, unsigned long len, 207extern int os_protect_memory(void *addr, unsigned long len,
208 int r, int w, int x); 208 int r, int w, int x);
209extern int os_unmap_memory(void *addr, int len); 209extern int os_unmap_memory(void *addr, int len);
210extern int os_drop_memory(void *addr, int length); 210extern int os_drop_memory(void *addr, int length);
diff --git a/arch/um/kernel/syscall.c b/arch/um/kernel/syscall.c
index abf14aaf905f..48cf88dd02d4 100644
--- a/arch/um/kernel/syscall.c
+++ b/arch/um/kernel/syscall.c
@@ -110,7 +110,7 @@ long sys_uname(struct old_utsname __user * name)
110 if (!name) 110 if (!name)
111 return -EFAULT; 111 return -EFAULT;
112 down_read(&uts_sem); 112 down_read(&uts_sem);
113 err = copy_to_user(name, utsname(), sizeof (*name)); 113 err = copy_to_user(name, &system_utsname, sizeof (*name));
114 up_read(&uts_sem); 114 up_read(&uts_sem);
115 return err?-EFAULT:0; 115 return err?-EFAULT:0;
116} 116}
@@ -126,21 +126,21 @@ long sys_olduname(struct oldold_utsname __user * name)
126 126
127 down_read(&uts_sem); 127 down_read(&uts_sem);
128 128
129 error = __copy_to_user(&name->sysname, &utsname()->sysname, 129 error = __copy_to_user(&name->sysname,&system_utsname.sysname,
130 __OLD_UTS_LEN); 130 __OLD_UTS_LEN);
131 error |= __put_user(0, name->sysname + __OLD_UTS_LEN); 131 error |= __put_user(0,name->sysname+__OLD_UTS_LEN);
132 error |= __copy_to_user(&name->nodename, &utsname()->nodename, 132 error |= __copy_to_user(&name->nodename,&system_utsname.nodename,
133 __OLD_UTS_LEN); 133 __OLD_UTS_LEN);
134 error |= __put_user(0, name->nodename + __OLD_UTS_LEN); 134 error |= __put_user(0,name->nodename+__OLD_UTS_LEN);
135 error |= __copy_to_user(&name->release, &utsname()->release, 135 error |= __copy_to_user(&name->release,&system_utsname.release,
136 __OLD_UTS_LEN); 136 __OLD_UTS_LEN);
137 error |= __put_user(0, name->release + __OLD_UTS_LEN); 137 error |= __put_user(0,name->release+__OLD_UTS_LEN);
138 error |= __copy_to_user(&name->version, &utsname()->version, 138 error |= __copy_to_user(&name->version,&system_utsname.version,
139 __OLD_UTS_LEN); 139 __OLD_UTS_LEN);
140 error |= __put_user(0, name->version + __OLD_UTS_LEN); 140 error |= __put_user(0,name->version+__OLD_UTS_LEN);
141 error |= __copy_to_user(&name->machine, &utsname()->machine, 141 error |= __copy_to_user(&name->machine,&system_utsname.machine,
142 __OLD_UTS_LEN); 142 __OLD_UTS_LEN);
143 error |= __put_user(0, name->machine + __OLD_UTS_LEN); 143 error |= __put_user(0,name->machine+__OLD_UTS_LEN);
144 144
145 up_read(&uts_sem); 145 up_read(&uts_sem);
146 146
diff --git a/arch/um/kernel/vmlinux.lds.S b/arch/um/kernel/vmlinux.lds.S
index 72acdce205e0..f8aeb448aab6 100644
--- a/arch/um/kernel/vmlinux.lds.S
+++ b/arch/um/kernel/vmlinux.lds.S
@@ -1,5 +1,3 @@
1/* in case the preprocessor is a 32bit one */
2#undef i386
3#ifdef CONFIG_LD_SCRIPT_STATIC 1#ifdef CONFIG_LD_SCRIPT_STATIC
4#include "uml.lds.S" 2#include "uml.lds.S"
5#else 3#else
diff --git a/arch/um/os-Linux/process.c b/arch/um/os-Linux/process.c
index b1cda818f5b5..b98d3ca2cd1b 100644
--- a/arch/um/os-Linux/process.c
+++ b/arch/um/os-Linux/process.c
@@ -273,12 +273,12 @@ void init_new_thread_signals(void)
273int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr) 273int run_kernel_thread(int (*fn)(void *), void *arg, void **jmp_ptr)
274{ 274{
275 jmp_buf buf; 275 jmp_buf buf;
276 int n, enable; 276 int n;
277 277
278 *jmp_ptr = &buf; 278 *jmp_ptr = &buf;
279 n = UML_SETJMP(&buf, enable); 279 n = UML_SETJMP(&buf);
280 if(n != 0) 280 if(n != 0)
281 return(n); 281 return n;
282 (*fn)(arg); 282 (*fn)(arg);
283 return(0); 283 return 0;
284} 284}
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index bf35572d9cfa..7baf90fda58b 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -435,7 +435,6 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
435{ 435{
436 unsigned long flags; 436 unsigned long flags;
437 jmp_buf switch_buf, fork_buf; 437 jmp_buf switch_buf, fork_buf;
438 int enable;
439 438
440 *switch_buf_ptr = &switch_buf; 439 *switch_buf_ptr = &switch_buf;
441 *fork_buf_ptr = &fork_buf; 440 *fork_buf_ptr = &fork_buf;
@@ -450,7 +449,7 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
450 */ 449 */
451 flags = get_signals(); 450 flags = get_signals();
452 block_signals(); 451 block_signals();
453 if(UML_SETJMP(&fork_buf, enable) == 0) 452 if(UML_SETJMP(&fork_buf) == 0)
454 new_thread_proc(stack, handler); 453 new_thread_proc(stack, handler);
455 454
456 remove_sigstack(); 455 remove_sigstack();
@@ -467,21 +466,19 @@ void new_thread(void *stack, void **switch_buf_ptr, void **fork_buf_ptr,
467void thread_wait(void *sw, void *fb) 466void thread_wait(void *sw, void *fb)
468{ 467{
469 jmp_buf buf, **switch_buf = sw, *fork_buf; 468 jmp_buf buf, **switch_buf = sw, *fork_buf;
470 int enable;
471 469
472 *switch_buf = &buf; 470 *switch_buf = &buf;
473 fork_buf = fb; 471 fork_buf = fb;
474 if(UML_SETJMP(&buf, enable) == 0) 472 if(UML_SETJMP(&buf) == 0)
475 siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK); 473 siglongjmp(*fork_buf, INIT_JMP_REMOVE_SIGSTACK);
476} 474}
477 475
478void switch_threads(void *me, void *next) 476void switch_threads(void *me, void *next)
479{ 477{
480 jmp_buf my_buf, **me_ptr = me, *next_buf = next; 478 jmp_buf my_buf, **me_ptr = me, *next_buf = next;
481 int enable;
482 479
483 *me_ptr = &my_buf; 480 *me_ptr = &my_buf;
484 if(UML_SETJMP(&my_buf, enable) == 0) 481 if(UML_SETJMP(&my_buf) == 0)
485 UML_LONGJMP(next_buf, 1); 482 UML_LONGJMP(next_buf, 1);
486} 483}
487 484
@@ -495,14 +492,14 @@ static jmp_buf *cb_back;
495int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr) 492int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
496{ 493{
497 jmp_buf **switch_buf = switch_buf_ptr; 494 jmp_buf **switch_buf = switch_buf_ptr;
498 int n, enable; 495 int n;
499 496
500 set_handler(SIGWINCH, (__sighandler_t) sig_handler, 497 set_handler(SIGWINCH, (__sighandler_t) sig_handler,
501 SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGALRM, 498 SA_ONSTACK | SA_RESTART, SIGUSR1, SIGIO, SIGALRM,
502 SIGVTALRM, -1); 499 SIGVTALRM, -1);
503 500
504 *fork_buf_ptr = &initial_jmpbuf; 501 *fork_buf_ptr = &initial_jmpbuf;
505 n = UML_SETJMP(&initial_jmpbuf, enable); 502 n = UML_SETJMP(&initial_jmpbuf);
506 switch(n){ 503 switch(n){
507 case INIT_JMP_NEW_THREAD: 504 case INIT_JMP_NEW_THREAD:
508 new_thread_proc((void *) stack, new_thread_handler); 505 new_thread_proc((void *) stack, new_thread_handler);
@@ -529,14 +526,13 @@ int start_idle_thread(void *stack, void *switch_buf_ptr, void **fork_buf_ptr)
529void initial_thread_cb_skas(void (*proc)(void *), void *arg) 526void initial_thread_cb_skas(void (*proc)(void *), void *arg)
530{ 527{
531 jmp_buf here; 528 jmp_buf here;
532 int enable;
533 529
534 cb_proc = proc; 530 cb_proc = proc;
535 cb_arg = arg; 531 cb_arg = arg;
536 cb_back = &here; 532 cb_back = &here;
537 533
538 block_signals(); 534 block_signals();
539 if(UML_SETJMP(&here, enable) == 0) 535 if(UML_SETJMP(&here) == 0)
540 UML_LONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK); 536 UML_LONGJMP(&initial_jmpbuf, INIT_JMP_CALLBACK);
541 unblock_signals(); 537 unblock_signals();
542 538
diff --git a/arch/um/os-Linux/uaccess.c b/arch/um/os-Linux/uaccess.c
index e523719330b2..865f6a6a2590 100644
--- a/arch/um/os-Linux/uaccess.c
+++ b/arch/um/os-Linux/uaccess.c
@@ -14,11 +14,10 @@ unsigned long __do_user_copy(void *to, const void *from, int n,
14 int n), int *faulted_out) 14 int n), int *faulted_out)
15{ 15{
16 unsigned long *faddrp = (unsigned long *) fault_addr, ret; 16 unsigned long *faddrp = (unsigned long *) fault_addr, ret;
17 int enable;
18 17
19 jmp_buf jbuf; 18 jmp_buf jbuf;
20 *fault_catcher = &jbuf; 19 *fault_catcher = &jbuf;
21 if(UML_SETJMP(&jbuf, enable) == 0){ 20 if(UML_SETJMP(&jbuf) == 0){
22 (*op)(to, from, n); 21 (*op)(to, from, n);
23 ret = 0; 22 ret = 0;
24 *faulted_out = 0; 23 *faulted_out = 0;
diff --git a/block/ioctl.c b/block/ioctl.c
index 9cfa2e1ecb24..309760b7e37f 100644
--- a/block/ioctl.c
+++ b/block/ioctl.c
@@ -72,7 +72,7 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user
72 bdevp = bdget_disk(disk, part); 72 bdevp = bdget_disk(disk, part);
73 if (!bdevp) 73 if (!bdevp)
74 return -ENOMEM; 74 return -ENOMEM;
75 mutex_lock(&bdevp->bd_mutex); 75 mutex_lock_nested(&bdevp->bd_mutex, BD_MUTEX_PARTITION);
76 if (bdevp->bd_openers) { 76 if (bdevp->bd_openers) {
77 mutex_unlock(&bdevp->bd_mutex); 77 mutex_unlock(&bdevp->bd_mutex);
78 bdput(bdevp); 78 bdput(bdevp);
@@ -82,7 +82,7 @@ static int blkpg_ioctl(struct block_device *bdev, struct blkpg_ioctl_arg __user
82 fsync_bdev(bdevp); 82 fsync_bdev(bdevp);
83 invalidate_bdev(bdevp, 0); 83 invalidate_bdev(bdevp, 0);
84 84
85 mutex_lock(&bdev->bd_mutex); 85 mutex_lock_nested(&bdev->bd_mutex, BD_MUTEX_WHOLE);
86 delete_partition(disk, part); 86 delete_partition(disk, part);
87 mutex_unlock(&bdev->bd_mutex); 87 mutex_unlock(&bdev->bd_mutex);
88 mutex_unlock(&bdevp->bd_mutex); 88 mutex_unlock(&bdevp->bd_mutex);
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 47dfde95b8f8..b7d1514cd199 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -36,7 +36,6 @@
36#include <linux/delay.h> 36#include <linux/delay.h>
37#include <linux/workqueue.h> 37#include <linux/workqueue.h>
38#include <linux/nmi.h> 38#include <linux/nmi.h>
39#include <linux/kthread.h>
40#include <acpi/acpi.h> 39#include <acpi/acpi.h>
41#include <asm/io.h> 40#include <asm/io.h>
42#include <acpi/acpi_bus.h> 41#include <acpi/acpi_bus.h>
@@ -583,16 +582,6 @@ static void acpi_os_execute_deferred(void *context)
583 return; 582 return;
584} 583}
585 584
586static int acpi_os_execute_thread(void *context)
587{
588 struct acpi_os_dpc *dpc = (struct acpi_os_dpc *)context;
589 if (dpc) {
590 dpc->function(dpc->context);
591 kfree(dpc);
592 }
593 do_exit(0);
594}
595
596/******************************************************************************* 585/*******************************************************************************
597 * 586 *
598 * FUNCTION: acpi_os_execute 587 * FUNCTION: acpi_os_execute
@@ -614,10 +603,16 @@ acpi_status acpi_os_execute(acpi_execute_type type,
614 acpi_status status = AE_OK; 603 acpi_status status = AE_OK;
615 struct acpi_os_dpc *dpc; 604 struct acpi_os_dpc *dpc;
616 struct work_struct *task; 605 struct work_struct *task;
617 struct task_struct *p; 606
607 ACPI_FUNCTION_TRACE("os_queue_for_execution");
608
609 ACPI_DEBUG_PRINT((ACPI_DB_EXEC,
610 "Scheduling function [%p(%p)] for deferred execution.\n",
611 function, context));
618 612
619 if (!function) 613 if (!function)
620 return AE_BAD_PARAMETER; 614 return_ACPI_STATUS(AE_BAD_PARAMETER);
615
621 /* 616 /*
622 * Allocate/initialize DPC structure. Note that this memory will be 617 * Allocate/initialize DPC structure. Note that this memory will be
623 * freed by the callee. The kernel handles the tq_struct list in a 618 * freed by the callee. The kernel handles the tq_struct list in a
@@ -628,34 +623,27 @@ acpi_status acpi_os_execute(acpi_execute_type type,
628 * We can save time and code by allocating the DPC and tq_structs 623 * We can save time and code by allocating the DPC and tq_structs
629 * from the same memory. 624 * from the same memory.
630 */ 625 */
631 if (type == OSL_NOTIFY_HANDLER) { 626
632 dpc = kmalloc(sizeof(struct acpi_os_dpc), GFP_KERNEL); 627 dpc =
633 } else { 628 kmalloc(sizeof(struct acpi_os_dpc) + sizeof(struct work_struct),
634 dpc = kmalloc(sizeof(struct acpi_os_dpc) + 629 GFP_ATOMIC);
635 sizeof(struct work_struct), GFP_ATOMIC);
636 }
637 if (!dpc) 630 if (!dpc)
638 return AE_NO_MEMORY; 631 return_ACPI_STATUS(AE_NO_MEMORY);
632
639 dpc->function = function; 633 dpc->function = function;
640 dpc->context = context; 634 dpc->context = context;
641 635
642 if (type == OSL_NOTIFY_HANDLER) { 636 task = (void *)(dpc + 1);
643 p = kthread_create(acpi_os_execute_thread, dpc, "kacpid_notify"); 637 INIT_WORK(task, acpi_os_execute_deferred, (void *)dpc);
644 if (!IS_ERR(p)) { 638
645 wake_up_process(p); 639 if (!queue_work(kacpid_wq, task)) {
646 } else { 640 ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
647 status = AE_NO_MEMORY; 641 "Call to queue_work() failed.\n"));
648 kfree(dpc); 642 kfree(dpc);
649 } 643 status = AE_ERROR;
650 } else {
651 task = (void *)(dpc + 1);
652 INIT_WORK(task, acpi_os_execute_deferred, (void *)dpc);
653 if (!queue_work(kacpid_wq, task)) {
654 status = AE_ERROR;
655 kfree(dpc);
656 }
657 } 644 }
658 return status; 645
646 return_ACPI_STATUS(status);
659} 647}
660 648
661EXPORT_SYMBOL(acpi_os_execute); 649EXPORT_SYMBOL(acpi_os_execute);
diff --git a/drivers/base/bus.c b/drivers/base/bus.c
index 83fa8b291a59..2e954d07175a 100644
--- a/drivers/base/bus.c
+++ b/drivers/base/bus.c
@@ -129,7 +129,7 @@ static struct kobj_type ktype_bus = {
129 129
130}; 130};
131 131
132decl_subsys(bus, &ktype_bus, NULL); 132static decl_subsys(bus, &ktype_bus, NULL);
133 133
134 134
135#ifdef CONFIG_HOTPLUG 135#ifdef CONFIG_HOTPLUG
@@ -598,12 +598,13 @@ void put_bus(struct bus_type * bus)
598 * 598 *
599 * Note that kset_find_obj increments bus' reference count. 599 * Note that kset_find_obj increments bus' reference count.
600 */ 600 */
601 601#if 0
602struct bus_type * find_bus(char * name) 602struct bus_type * find_bus(char * name)
603{ 603{
604 struct kobject * k = kset_find_obj(&bus_subsys.kset, name); 604 struct kobject * k = kset_find_obj(&bus_subsys.kset, name);
605 return k ? to_bus(k) : NULL; 605 return k ? to_bus(k) : NULL;
606} 606}
607#endif /* 0 */
607 608
608 609
609/** 610/**
diff --git a/drivers/base/core.c b/drivers/base/core.c
index b21f864c9ce8..be6b5bc0677d 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -559,20 +559,20 @@ static void device_create_release(struct device *dev)
559 559
560/** 560/**
561 * device_create - creates a device and registers it with sysfs 561 * device_create - creates a device and registers it with sysfs
562 * @cs: pointer to the struct class that this device should be registered to. 562 * @class: pointer to the struct class that this device should be registered to
563 * @parent: pointer to the parent struct device of this new device, if any. 563 * @parent: pointer to the parent struct device of this new device, if any
564 * @dev: the dev_t for the char device to be added. 564 * @devt: the dev_t for the char device to be added
565 * @fmt: string for the class device's name 565 * @fmt: string for the device's name
566 *
567 * This function can be used by char device classes. A struct device
568 * will be created in sysfs, registered to the specified class.
566 * 569 *
567 * This function can be used by char device classes. A struct
568 * device will be created in sysfs, registered to the specified
569 * class.
570 * A "dev" file will be created, showing the dev_t for the device, if 570 * A "dev" file will be created, showing the dev_t for the device, if
571 * the dev_t is not 0,0. 571 * the dev_t is not 0,0.
572 * If a pointer to a parent struct device is passed in, the newly 572 * If a pointer to a parent struct device is passed in, the newly created
573 * created struct device will be a child of that device in sysfs. The 573 * struct device will be a child of that device in sysfs.
574 * pointer to the struct device will be returned from the call. Any 574 * The pointer to the struct device will be returned from the call.
575 * further sysfs files that might be required can be created using this 575 * Any further sysfs files that might be required can be created using this
576 * pointer. 576 * pointer.
577 * 577 *
578 * Note: the struct class passed to this function must have previously 578 * Note: the struct class passed to this function must have previously
@@ -620,11 +620,11 @@ EXPORT_SYMBOL_GPL(device_create);
620 620
621/** 621/**
622 * device_destroy - removes a device that was created with device_create() 622 * device_destroy - removes a device that was created with device_create()
623 * @class: the pointer to the struct class that this device was registered * with. 623 * @class: pointer to the struct class that this device was registered with
624 * @dev: the dev_t of the device that was previously registered. 624 * @devt: the dev_t of the device that was previously registered
625 * 625 *
626 * This call unregisters and cleans up a class device that was created with a 626 * This call unregisters and cleans up a device that was created with a
627 * call to class_device_create() 627 * call to device_create().
628 */ 628 */
629void device_destroy(struct class *class, dev_t devt) 629void device_destroy(struct class *class, dev_t devt)
630{ 630{
diff --git a/drivers/block/Kconfig b/drivers/block/Kconfig
index 93d94749310b..b5382cedf0c0 100644
--- a/drivers/block/Kconfig
+++ b/drivers/block/Kconfig
@@ -400,6 +400,16 @@ config BLK_DEV_RAM_SIZE
400 what are you doing. If you are using IBM S/390, then set this to 400 what are you doing. If you are using IBM S/390, then set this to
401 8192. 401 8192.
402 402
403config BLK_DEV_RAM_BLOCKSIZE
404 int "Default RAM disk block size (bytes)"
405 depends on BLK_DEV_RAM
406 default "1024"
407 help
408 The default value is 1024 kilobytes. PAGE_SIZE is a much more
409 efficient choice however. The default is kept to ensure initrd
410 setups function - apparently needed by the rd_load_image routine
411 that supposes the filesystem in the image uses a 1024 blocksize.
412
403config BLK_DEV_INITRD 413config BLK_DEV_INITRD
404 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support" 414 bool "Initial RAM filesystem and RAM disk (initramfs/initrd) support"
405 depends on BROKEN || !FRV 415 depends on BROKEN || !FRV
diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
index 757f42dd8e86..78082edc14b4 100644
--- a/drivers/block/cpqarray.c
+++ b/drivers/block/cpqarray.c
@@ -1739,8 +1739,6 @@ static void getgeometry(int ctlr)
1739 (log_index < id_ctlr_buf->nr_drvs) 1739 (log_index < id_ctlr_buf->nr_drvs)
1740 && (log_unit < NWD); 1740 && (log_unit < NWD);
1741 log_unit++) { 1741 log_unit++) {
1742 struct gendisk *disk = ida_gendisk[ctlr][log_unit];
1743
1744 size = sizeof(sense_log_drv_stat_t); 1742 size = sizeof(sense_log_drv_stat_t);
1745 1743
1746 /* 1744 /*
diff --git a/drivers/block/rd.c b/drivers/block/rd.c
index 3cf246abb5ec..a3f64bfe6b58 100644
--- a/drivers/block/rd.c
+++ b/drivers/block/rd.c
@@ -84,7 +84,7 @@ int rd_size = CONFIG_BLK_DEV_RAM_SIZE; /* Size of the RAM disks */
84 * behaviour. The default is still BLOCK_SIZE (needed by rd_load_image that 84 * behaviour. The default is still BLOCK_SIZE (needed by rd_load_image that
85 * supposes the filesystem in the image uses a BLOCK_SIZE blocksize). 85 * supposes the filesystem in the image uses a BLOCK_SIZE blocksize).
86 */ 86 */
87static int rd_blocksize = BLOCK_SIZE; /* blocksize of the RAM disks */ 87static int rd_blocksize = CONFIG_BLK_DEV_RAM_BLOCKSIZE;
88 88
89/* 89/*
90 * Copyright (C) 2000 Linus Torvalds. 90 * Copyright (C) 2000 Linus Torvalds.
diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
index 1994270c16e1..93ba25b7ea32 100644
--- a/drivers/bluetooth/hci_ldisc.c
+++ b/drivers/bluetooth/hci_ldisc.c
@@ -191,7 +191,7 @@ static int hci_uart_flush(struct hci_dev *hdev)
191 191
192 /* Flush any pending characters in the driver and discipline. */ 192 /* Flush any pending characters in the driver and discipline. */
193 tty_ldisc_flush(tty); 193 tty_ldisc_flush(tty);
194 if (tty->driver->flush_buffer) 194 if (tty->driver && tty->driver->flush_buffer)
195 tty->driver->flush_buffer(tty); 195 tty->driver->flush_buffer(tty);
196 196
197 if (test_bit(HCI_UART_PROTO_SET, &hu->flags)) 197 if (test_bit(HCI_UART_PROTO_SET, &hu->flags))
@@ -290,7 +290,7 @@ static int hci_uart_tty_open(struct tty_struct *tty)
290 if (tty->ldisc.flush_buffer) 290 if (tty->ldisc.flush_buffer)
291 tty->ldisc.flush_buffer(tty); 291 tty->ldisc.flush_buffer(tty);
292 292
293 if (tty->driver->flush_buffer) 293 if (tty->driver && tty->driver->flush_buffer)
294 tty->driver->flush_buffer(tty); 294 tty->driver->flush_buffer(tty);
295 295
296 return 0; 296 return 0;
diff --git a/drivers/char/nsc_gpio.c b/drivers/char/nsc_gpio.c
index 5b91e4e25641..7719bd75810b 100644
--- a/drivers/char/nsc_gpio.c
+++ b/drivers/char/nsc_gpio.c
@@ -68,13 +68,11 @@ ssize_t nsc_gpio_write(struct file *file, const char __user *data,
68 amp->gpio_config(m, ~1, 0); 68 amp->gpio_config(m, ~1, 0);
69 break; 69 break;
70 case 'T': 70 case 'T':
71 dev_dbg(dev, "GPIO%d output is push pull\n", 71 dev_dbg(dev, "GPIO%d output is push pull\n", m);
72 m);
73 amp->gpio_config(m, ~2, 2); 72 amp->gpio_config(m, ~2, 2);
74 break; 73 break;
75 case 't': 74 case 't':
76 dev_dbg(dev, "GPIO%d output is open drain\n", 75 dev_dbg(dev, "GPIO%d output is open drain\n", m);
77 m);
78 amp->gpio_config(m, ~2, 0); 76 amp->gpio_config(m, ~2, 0);
79 break; 77 break;
80 case 'P': 78 case 'P':
diff --git a/drivers/char/pc8736x_gpio.c b/drivers/char/pc8736x_gpio.c
index 11bd78c80628..645eb81cb5a9 100644
--- a/drivers/char/pc8736x_gpio.c
+++ b/drivers/char/pc8736x_gpio.c
@@ -212,22 +212,21 @@ static void pc8736x_gpio_change(unsigned index)
212 pc8736x_gpio_set(index, !pc8736x_gpio_current(index)); 212 pc8736x_gpio_set(index, !pc8736x_gpio_current(index));
213} 213}
214 214
215static struct nsc_gpio_ops pc8736x_access = { 215static struct nsc_gpio_ops pc8736x_gpio_ops = {
216 .owner = THIS_MODULE, 216 .owner = THIS_MODULE,
217 .gpio_config = pc8736x_gpio_configure, 217 .gpio_config = pc8736x_gpio_configure,
218 .gpio_dump = nsc_gpio_dump, 218 .gpio_dump = nsc_gpio_dump,
219 .gpio_get = pc8736x_gpio_get, 219 .gpio_get = pc8736x_gpio_get,
220 .gpio_set = pc8736x_gpio_set, 220 .gpio_set = pc8736x_gpio_set,
221 .gpio_set_high = pc8736x_gpio_set_high,
222 .gpio_set_low = pc8736x_gpio_set_low,
223 .gpio_change = pc8736x_gpio_change, 221 .gpio_change = pc8736x_gpio_change,
224 .gpio_current = pc8736x_gpio_current 222 .gpio_current = pc8736x_gpio_current
225}; 223};
224EXPORT_SYMBOL(pc8736x_gpio_ops);
226 225
227static int pc8736x_gpio_open(struct inode *inode, struct file *file) 226static int pc8736x_gpio_open(struct inode *inode, struct file *file)
228{ 227{
229 unsigned m = iminor(inode); 228 unsigned m = iminor(inode);
230 file->private_data = &pc8736x_access; 229 file->private_data = &pc8736x_gpio_ops;
231 230
232 dev_dbg(&pdev->dev, "open %d\n", m); 231 dev_dbg(&pdev->dev, "open %d\n", m);
233 232
@@ -236,7 +235,7 @@ static int pc8736x_gpio_open(struct inode *inode, struct file *file)
236 return nonseekable_open(inode, file); 235 return nonseekable_open(inode, file);
237} 236}
238 237
239static const struct file_operations pc8736x_gpio_fops = { 238static const struct file_operations pc8736x_gpio_fileops = {
240 .owner = THIS_MODULE, 239 .owner = THIS_MODULE,
241 .open = pc8736x_gpio_open, 240 .open = pc8736x_gpio_open,
242 .write = nsc_gpio_write, 241 .write = nsc_gpio_write,
@@ -278,7 +277,7 @@ static int __init pc8736x_gpio_init(void)
278 dev_err(&pdev->dev, "no device found\n"); 277 dev_err(&pdev->dev, "no device found\n");
279 goto undo_platform_dev_add; 278 goto undo_platform_dev_add;
280 } 279 }
281 pc8736x_access.dev = &pdev->dev; 280 pc8736x_gpio_ops.dev = &pdev->dev;
282 281
283 /* Verify that chip and it's GPIO unit are both enabled. 282 /* Verify that chip and it's GPIO unit are both enabled.
284 My BIOS does this, so I take minimum action here 283 My BIOS does this, so I take minimum action here
@@ -328,7 +327,7 @@ static int __init pc8736x_gpio_init(void)
328 pc8736x_init_shadow(); 327 pc8736x_init_shadow();
329 328
330 /* ignore minor errs, and succeed */ 329 /* ignore minor errs, and succeed */
331 cdev_init(&pc8736x_gpio_cdev, &pc8736x_gpio_fops); 330 cdev_init(&pc8736x_gpio_cdev, &pc8736x_gpio_fileops);
332 cdev_add(&pc8736x_gpio_cdev, devid, PC8736X_GPIO_CT); 331 cdev_add(&pc8736x_gpio_cdev, devid, PC8736X_GPIO_CT);
333 332
334 return 0; 333 return 0;
@@ -355,7 +354,5 @@ static void __exit pc8736x_gpio_cleanup(void)
355 platform_device_put(pdev); 354 platform_device_put(pdev);
356} 355}
357 356
358EXPORT_SYMBOL(pc8736x_access);
359
360module_init(pc8736x_gpio_init); 357module_init(pc8736x_gpio_init);
361module_exit(pc8736x_gpio_cleanup); 358module_exit(pc8736x_gpio_cleanup);
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 6ccc364c08df..6e6a7c7a7eff 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -1245,7 +1245,7 @@ static int rtc_proc_open(struct inode *inode, struct file *file)
1245 1245
1246void rtc_get_rtc_time(struct rtc_time *rtc_tm) 1246void rtc_get_rtc_time(struct rtc_time *rtc_tm)
1247{ 1247{
1248 unsigned long uip_watchdog = jiffies; 1248 unsigned long uip_watchdog = jiffies, flags;
1249 unsigned char ctrl; 1249 unsigned char ctrl;
1250#ifdef CONFIG_MACH_DECSTATION 1250#ifdef CONFIG_MACH_DECSTATION
1251 unsigned int real_year; 1251 unsigned int real_year;
@@ -1272,7 +1272,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm)
1272 * RTC has RTC_DAY_OF_WEEK, we should usually ignore it, as it is 1272 * RTC has RTC_DAY_OF_WEEK, we should usually ignore it, as it is
1273 * only updated by the RTC when initially set to a non-zero value. 1273 * only updated by the RTC when initially set to a non-zero value.
1274 */ 1274 */
1275 spin_lock_irq(&rtc_lock); 1275 spin_lock_irqsave(&rtc_lock, flags);
1276 rtc_tm->tm_sec = CMOS_READ(RTC_SECONDS); 1276 rtc_tm->tm_sec = CMOS_READ(RTC_SECONDS);
1277 rtc_tm->tm_min = CMOS_READ(RTC_MINUTES); 1277 rtc_tm->tm_min = CMOS_READ(RTC_MINUTES);
1278 rtc_tm->tm_hour = CMOS_READ(RTC_HOURS); 1278 rtc_tm->tm_hour = CMOS_READ(RTC_HOURS);
@@ -1286,7 +1286,7 @@ void rtc_get_rtc_time(struct rtc_time *rtc_tm)
1286 real_year = CMOS_READ(RTC_DEC_YEAR); 1286 real_year = CMOS_READ(RTC_DEC_YEAR);
1287#endif 1287#endif
1288 ctrl = CMOS_READ(RTC_CONTROL); 1288 ctrl = CMOS_READ(RTC_CONTROL);
1289 spin_unlock_irq(&rtc_lock); 1289 spin_unlock_irqrestore(&rtc_lock, flags);
1290 1290
1291 if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD) 1291 if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD)
1292 { 1292 {
diff --git a/drivers/char/scx200_gpio.c b/drivers/char/scx200_gpio.c
index 425c58719db6..b956c7babd18 100644
--- a/drivers/char/scx200_gpio.c
+++ b/drivers/char/scx200_gpio.c
@@ -5,7 +5,6 @@
5 5
6 Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com> */ 6 Copyright (c) 2001,2002 Christer Weinigel <wingel@nano-system.com> */
7 7
8#include <linux/config.h>
9#include <linux/device.h> 8#include <linux/device.h>
10#include <linux/fs.h> 9#include <linux/fs.h>
11#include <linux/module.h> 10#include <linux/module.h>
@@ -22,37 +21,37 @@
22#include <linux/scx200_gpio.h> 21#include <linux/scx200_gpio.h>
23#include <linux/nsc_gpio.h> 22#include <linux/nsc_gpio.h>
24 23
25#define NAME "scx200_gpio" 24#define DRVNAME "scx200_gpio"
26#define DEVNAME NAME
27 25
28static struct platform_device *pdev; 26static struct platform_device *pdev;
29 27
30MODULE_AUTHOR("Christer Weinigel <wingel@nano-system.com>"); 28MODULE_AUTHOR("Christer Weinigel <wingel@nano-system.com>");
31MODULE_DESCRIPTION("NatSemi SCx200 GPIO Pin Driver"); 29MODULE_DESCRIPTION("NatSemi/AMD SCx200 GPIO Pin Driver");
32MODULE_LICENSE("GPL"); 30MODULE_LICENSE("GPL");
33 31
34static int major = 0; /* default to dynamic major */ 32static int major = 0; /* default to dynamic major */
35module_param(major, int, 0); 33module_param(major, int, 0);
36MODULE_PARM_DESC(major, "Major device number"); 34MODULE_PARM_DESC(major, "Major device number");
37 35
38struct nsc_gpio_ops scx200_access = { 36#define MAX_PINS 32 /* 64 later, when known ok */
37
38struct nsc_gpio_ops scx200_gpio_ops = {
39 .owner = THIS_MODULE, 39 .owner = THIS_MODULE,
40 .gpio_config = scx200_gpio_configure, 40 .gpio_config = scx200_gpio_configure,
41 .gpio_dump = nsc_gpio_dump, 41 .gpio_dump = nsc_gpio_dump,
42 .gpio_get = scx200_gpio_get, 42 .gpio_get = scx200_gpio_get,
43 .gpio_set = scx200_gpio_set, 43 .gpio_set = scx200_gpio_set,
44 .gpio_set_high = scx200_gpio_set_high,
45 .gpio_set_low = scx200_gpio_set_low,
46 .gpio_change = scx200_gpio_change, 44 .gpio_change = scx200_gpio_change,
47 .gpio_current = scx200_gpio_current 45 .gpio_current = scx200_gpio_current
48}; 46};
47EXPORT_SYMBOL(scx200_gpio_ops);
49 48
50static int scx200_gpio_open(struct inode *inode, struct file *file) 49static int scx200_gpio_open(struct inode *inode, struct file *file)
51{ 50{
52 unsigned m = iminor(inode); 51 unsigned m = iminor(inode);
53 file->private_data = &scx200_access; 52 file->private_data = &scx200_gpio_ops;
54 53
55 if (m > 63) 54 if (m >= MAX_PINS)
56 return -EINVAL; 55 return -EINVAL;
57 return nonseekable_open(inode, file); 56 return nonseekable_open(inode, file);
58} 57}
@@ -62,8 +61,7 @@ static int scx200_gpio_release(struct inode *inode, struct file *file)
62 return 0; 61 return 0;
63} 62}
64 63
65 64static const struct file_operations scx200_gpio_fileops = {
66static const struct file_operations scx200_gpio_fops = {
67 .owner = THIS_MODULE, 65 .owner = THIS_MODULE,
68 .write = nsc_gpio_write, 66 .write = nsc_gpio_write,
69 .read = nsc_gpio_read, 67 .read = nsc_gpio_read,
@@ -71,21 +69,20 @@ static const struct file_operations scx200_gpio_fops = {
71 .release = scx200_gpio_release, 69 .release = scx200_gpio_release,
72}; 70};
73 71
74struct cdev *scx200_devices; 72struct cdev scx200_gpio_cdev; /* use 1 cdev for all pins */
75static int num_pins = 32;
76 73
77static int __init scx200_gpio_init(void) 74static int __init scx200_gpio_init(void)
78{ 75{
79 int rc, i; 76 int rc;
80 dev_t dev = MKDEV(major, 0); 77 dev_t devid;
81 78
82 if (!scx200_gpio_present()) { 79 if (!scx200_gpio_present()) {
83 printk(KERN_ERR NAME ": no SCx200 gpio present\n"); 80 printk(KERN_ERR DRVNAME ": no SCx200 gpio present\n");
84 return -ENODEV; 81 return -ENODEV;
85 } 82 }
86 83
87 /* support dev_dbg() with pdev->dev */ 84 /* support dev_dbg() with pdev->dev */
88 pdev = platform_device_alloc(DEVNAME, 0); 85 pdev = platform_device_alloc(DRVNAME, 0);
89 if (!pdev) 86 if (!pdev)
90 return -ENOMEM; 87 return -ENOMEM;
91 88
@@ -94,37 +91,25 @@ static int __init scx200_gpio_init(void)
94 goto undo_malloc; 91 goto undo_malloc;
95 92
96 /* nsc_gpio uses dev_dbg(), so needs this */ 93 /* nsc_gpio uses dev_dbg(), so needs this */
97 scx200_access.dev = &pdev->dev; 94 scx200_gpio_ops.dev = &pdev->dev;
98 95
99 if (major) 96 if (major) {
100 rc = register_chrdev_region(dev, num_pins, "scx200_gpio"); 97 devid = MKDEV(major, 0);
101 else { 98 rc = register_chrdev_region(devid, MAX_PINS, "scx200_gpio");
102 rc = alloc_chrdev_region(&dev, 0, num_pins, "scx200_gpio"); 99 } else {
103 major = MAJOR(dev); 100 rc = alloc_chrdev_region(&devid, 0, MAX_PINS, "scx200_gpio");
101 major = MAJOR(devid);
104 } 102 }
105 if (rc < 0) { 103 if (rc < 0) {
106 dev_err(&pdev->dev, "SCx200 chrdev_region err: %d\n", rc); 104 dev_err(&pdev->dev, "SCx200 chrdev_region err: %d\n", rc);
107 goto undo_platform_device_add; 105 goto undo_platform_device_add;
108 } 106 }
109 scx200_devices = kzalloc(num_pins * sizeof(struct cdev), GFP_KERNEL); 107
110 if (!scx200_devices) { 108 cdev_init(&scx200_gpio_cdev, &scx200_gpio_fileops);
111 rc = -ENOMEM; 109 cdev_add(&scx200_gpio_cdev, devid, MAX_PINS);
112 goto undo_chrdev_region;
113 }
114 for (i = 0; i < num_pins; i++) {
115 struct cdev *cdev = &scx200_devices[i];
116 cdev_init(cdev, &scx200_gpio_fops);
117 cdev->owner = THIS_MODULE;
118 rc = cdev_add(cdev, MKDEV(major, i), 1);
119 /* tolerate 'minor' errors */
120 if (rc)
121 dev_err(&pdev->dev, "Error %d on minor %d", rc, i);
122 }
123 110
124 return 0; /* succeed */ 111 return 0; /* succeed */
125 112
126undo_chrdev_region:
127 unregister_chrdev_region(dev, num_pins);
128undo_platform_device_add: 113undo_platform_device_add:
129 platform_device_del(pdev); 114 platform_device_del(pdev);
130undo_malloc: 115undo_malloc:
@@ -135,10 +120,11 @@ undo_malloc:
135 120
136static void __exit scx200_gpio_cleanup(void) 121static void __exit scx200_gpio_cleanup(void)
137{ 122{
138 kfree(scx200_devices); 123 cdev_del(&scx200_gpio_cdev);
139 unregister_chrdev_region(MKDEV(major, 0), num_pins); 124 /* cdev_put(&scx200_gpio_cdev); */
125
126 unregister_chrdev_region(MKDEV(major, 0), MAX_PINS);
140 platform_device_unregister(pdev); 127 platform_device_unregister(pdev);
141 /* kfree(pdev); */
142} 128}
143 129
144module_init(scx200_gpio_init); 130module_init(scx200_gpio_init);
diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
index 6889e7db3aff..a082a2e34252 100644
--- a/drivers/char/tpm/tpm.c
+++ b/drivers/char/tpm/tpm.c
@@ -1141,6 +1141,7 @@ struct tpm_chip *tpm_register_hardware(struct device *dev, const struct tpm_vend
1141 put_device(dev); 1141 put_device(dev);
1142 clear_bit(chip->dev_num, dev_mask); 1142 clear_bit(chip->dev_num, dev_mask);
1143 kfree(chip); 1143 kfree(chip);
1144 kfree(devname);
1144 return NULL; 1145 return NULL;
1145 } 1146 }
1146 1147
diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
index 3232b1932597..ee7ac6f43c65 100644
--- a/drivers/char/tpm/tpm_tis.c
+++ b/drivers/char/tpm/tpm_tis.c
@@ -424,6 +424,7 @@ static irqreturn_t tis_int_handler(int irq, void *dev_id, struct pt_regs *regs)
424 iowrite32(interrupt, 424 iowrite32(interrupt,
425 chip->vendor.iobase + 425 chip->vendor.iobase +
426 TPM_INT_STATUS(chip->vendor.locality)); 426 TPM_INT_STATUS(chip->vendor.locality));
427 ioread32(chip->vendor.iobase + TPM_INT_STATUS(chip->vendor.locality));
427 return IRQ_HANDLED; 428 return IRQ_HANDLED;
428} 429}
429 430
@@ -431,23 +432,19 @@ static int interrupts = 1;
431module_param(interrupts, bool, 0444); 432module_param(interrupts, bool, 0444);
432MODULE_PARM_DESC(interrupts, "Enable interrupts"); 433MODULE_PARM_DESC(interrupts, "Enable interrupts");
433 434
434static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev, 435static int tpm_tis_init(struct device *dev, resource_size_t start,
435 const struct pnp_device_id *pnp_id) 436 resource_size_t len)
436{ 437{
437 u32 vendor, intfcaps, intmask; 438 u32 vendor, intfcaps, intmask;
438 int rc, i; 439 int rc, i;
439 unsigned long start, len;
440 struct tpm_chip *chip; 440 struct tpm_chip *chip;
441 441
442 start = pnp_mem_start(pnp_dev, 0);
443 len = pnp_mem_len(pnp_dev, 0);
444
445 if (!start) 442 if (!start)
446 start = TIS_MEM_BASE; 443 start = TIS_MEM_BASE;
447 if (!len) 444 if (!len)
448 len = TIS_MEM_LEN; 445 len = TIS_MEM_LEN;
449 446
450 if (!(chip = tpm_register_hardware(&pnp_dev->dev, &tpm_tis))) 447 if (!(chip = tpm_register_hardware(dev, &tpm_tis)))
451 return -ENODEV; 448 return -ENODEV;
452 449
453 chip->vendor.iobase = ioremap(start, len); 450 chip->vendor.iobase = ioremap(start, len);
@@ -464,7 +461,7 @@ static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
464 chip->vendor.timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT); 461 chip->vendor.timeout_c = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
465 chip->vendor.timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT); 462 chip->vendor.timeout_d = msecs_to_jiffies(TIS_SHORT_TIMEOUT);
466 463
467 dev_info(&pnp_dev->dev, 464 dev_info(dev,
468 "1.2 TPM (device-id 0x%X, rev-id %d)\n", 465 "1.2 TPM (device-id 0x%X, rev-id %d)\n",
469 vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0))); 466 vendor >> 16, ioread8(chip->vendor.iobase + TPM_RID(0)));
470 467
@@ -472,26 +469,26 @@ static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
472 intfcaps = 469 intfcaps =
473 ioread32(chip->vendor.iobase + 470 ioread32(chip->vendor.iobase +
474 TPM_INTF_CAPS(chip->vendor.locality)); 471 TPM_INTF_CAPS(chip->vendor.locality));
475 dev_dbg(&pnp_dev->dev, "TPM interface capabilities (0x%x):\n", 472 dev_dbg(dev, "TPM interface capabilities (0x%x):\n",
476 intfcaps); 473 intfcaps);
477 if (intfcaps & TPM_INTF_BURST_COUNT_STATIC) 474 if (intfcaps & TPM_INTF_BURST_COUNT_STATIC)
478 dev_dbg(&pnp_dev->dev, "\tBurst Count Static\n"); 475 dev_dbg(dev, "\tBurst Count Static\n");
479 if (intfcaps & TPM_INTF_CMD_READY_INT) 476 if (intfcaps & TPM_INTF_CMD_READY_INT)
480 dev_dbg(&pnp_dev->dev, "\tCommand Ready Int Support\n"); 477 dev_dbg(dev, "\tCommand Ready Int Support\n");
481 if (intfcaps & TPM_INTF_INT_EDGE_FALLING) 478 if (intfcaps & TPM_INTF_INT_EDGE_FALLING)
482 dev_dbg(&pnp_dev->dev, "\tInterrupt Edge Falling\n"); 479 dev_dbg(dev, "\tInterrupt Edge Falling\n");
483 if (intfcaps & TPM_INTF_INT_EDGE_RISING) 480 if (intfcaps & TPM_INTF_INT_EDGE_RISING)
484 dev_dbg(&pnp_dev->dev, "\tInterrupt Edge Rising\n"); 481 dev_dbg(dev, "\tInterrupt Edge Rising\n");
485 if (intfcaps & TPM_INTF_INT_LEVEL_LOW) 482 if (intfcaps & TPM_INTF_INT_LEVEL_LOW)
486 dev_dbg(&pnp_dev->dev, "\tInterrupt Level Low\n"); 483 dev_dbg(dev, "\tInterrupt Level Low\n");
487 if (intfcaps & TPM_INTF_INT_LEVEL_HIGH) 484 if (intfcaps & TPM_INTF_INT_LEVEL_HIGH)
488 dev_dbg(&pnp_dev->dev, "\tInterrupt Level High\n"); 485 dev_dbg(dev, "\tInterrupt Level High\n");
489 if (intfcaps & TPM_INTF_LOCALITY_CHANGE_INT) 486 if (intfcaps & TPM_INTF_LOCALITY_CHANGE_INT)
490 dev_dbg(&pnp_dev->dev, "\tLocality Change Int Support\n"); 487 dev_dbg(dev, "\tLocality Change Int Support\n");
491 if (intfcaps & TPM_INTF_STS_VALID_INT) 488 if (intfcaps & TPM_INTF_STS_VALID_INT)
492 dev_dbg(&pnp_dev->dev, "\tSts Valid Int Support\n"); 489 dev_dbg(dev, "\tSts Valid Int Support\n");
493 if (intfcaps & TPM_INTF_DATA_AVAIL_INT) 490 if (intfcaps & TPM_INTF_DATA_AVAIL_INT)
494 dev_dbg(&pnp_dev->dev, "\tData Avail Int Support\n"); 491 dev_dbg(dev, "\tData Avail Int Support\n");
495 492
496 if (request_locality(chip, 0) != 0) { 493 if (request_locality(chip, 0) != 0) {
497 rc = -ENODEV; 494 rc = -ENODEV;
@@ -594,6 +591,16 @@ out_err:
594 return rc; 591 return rc;
595} 592}
596 593
594static int __devinit tpm_tis_pnp_init(struct pnp_dev *pnp_dev,
595 const struct pnp_device_id *pnp_id)
596{
597 resource_size_t start, len;
598 start = pnp_mem_start(pnp_dev, 0);
599 len = pnp_mem_len(pnp_dev, 0);
600
601 return tpm_tis_init(&pnp_dev->dev, start, len);
602}
603
597static int tpm_tis_pnp_suspend(struct pnp_dev *dev, pm_message_t msg) 604static int tpm_tis_pnp_suspend(struct pnp_dev *dev, pm_message_t msg)
598{ 605{
599 return tpm_pm_suspend(&dev->dev, msg); 606 return tpm_pm_suspend(&dev->dev, msg);
@@ -628,8 +635,36 @@ module_param_string(hid, tpm_pnp_tbl[TIS_HID_USR_IDX].id,
628 sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444); 635 sizeof(tpm_pnp_tbl[TIS_HID_USR_IDX].id), 0444);
629MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe"); 636MODULE_PARM_DESC(hid, "Set additional specific HID for this driver to probe");
630 637
638static struct device_driver tis_drv = {
639 .name = "tpm_tis",
640 .bus = &platform_bus_type,
641 .owner = THIS_MODULE,
642 .suspend = tpm_pm_suspend,
643 .resume = tpm_pm_resume,
644};
645
646static struct platform_device *pdev;
647
648static int force;
649module_param(force, bool, 0444);
650MODULE_PARM_DESC(force, "Force device probe rather than using ACPI entry");
631static int __init init_tis(void) 651static int __init init_tis(void)
632{ 652{
653 int rc;
654
655 if (force) {
656 rc = driver_register(&tis_drv);
657 if (rc < 0)
658 return rc;
659 if (IS_ERR(pdev=platform_device_register_simple("tpm_tis", -1, NULL, 0)))
660 return PTR_ERR(pdev);
661 if((rc=tpm_tis_init(&pdev->dev, 0, 0)) != 0) {
662 platform_device_unregister(pdev);
663 driver_unregister(&tis_drv);
664 }
665 return rc;
666 }
667
633 return pnp_register_driver(&tis_pnp_driver); 668 return pnp_register_driver(&tis_pnp_driver);
634} 669}
635 670
@@ -654,7 +689,11 @@ static void __exit cleanup_tis(void)
654 tpm_remove_hardware(chip->dev); 689 tpm_remove_hardware(chip->dev);
655 } 690 }
656 spin_unlock(&tis_lock); 691 spin_unlock(&tis_lock);
657 pnp_unregister_driver(&tis_pnp_driver); 692 if (force) {
693 platform_device_unregister(pdev);
694 driver_unregister(&tis_drv);
695 } else
696 pnp_unregister_driver(&tis_pnp_driver);
658} 697}
659 698
660module_init(init_tis); 699module_init(init_tis);
diff --git a/drivers/char/vr41xx_giu.c b/drivers/char/vr41xx_giu.c
index 1b9b1f1d4c49..8116a47b80f4 100644
--- a/drivers/char/vr41xx_giu.c
+++ b/drivers/char/vr41xx_giu.c
@@ -33,6 +33,7 @@
33#include <asm/cpu.h> 33#include <asm/cpu.h>
34#include <asm/io.h> 34#include <asm/io.h>
35#include <asm/vr41xx/giu.h> 35#include <asm/vr41xx/giu.h>
36#include <asm/vr41xx/irq.h>
36#include <asm/vr41xx/vr41xx.h> 37#include <asm/vr41xx/vr41xx.h>
37 38
38MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 39MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>");
diff --git a/drivers/crypto/padlock-aes.c b/drivers/crypto/padlock-aes.c
index 17ee684144f9..b643d71298a9 100644
--- a/drivers/crypto/padlock-aes.c
+++ b/drivers/crypto/padlock-aes.c
@@ -59,6 +59,9 @@
59#define AES_EXTENDED_KEY_SIZE 64 /* in uint32_t units */ 59#define AES_EXTENDED_KEY_SIZE 64 /* in uint32_t units */
60#define AES_EXTENDED_KEY_SIZE_B (AES_EXTENDED_KEY_SIZE * sizeof(uint32_t)) 60#define AES_EXTENDED_KEY_SIZE_B (AES_EXTENDED_KEY_SIZE * sizeof(uint32_t))
61 61
62/* Whenever making any changes to the following
63 * structure *make sure* you keep E, d_data
64 * and cword aligned on 16 Bytes boundaries!!! */
62struct aes_ctx { 65struct aes_ctx {
63 struct { 66 struct {
64 struct cword encrypt; 67 struct cword encrypt;
@@ -66,8 +69,10 @@ struct aes_ctx {
66 } cword; 69 } cword;
67 u32 *D; 70 u32 *D;
68 int key_length; 71 int key_length;
69 u32 E[AES_EXTENDED_KEY_SIZE]; 72 u32 E[AES_EXTENDED_KEY_SIZE]
70 u32 d_data[AES_EXTENDED_KEY_SIZE]; 73 __attribute__ ((__aligned__(PADLOCK_ALIGNMENT)));
74 u32 d_data[AES_EXTENDED_KEY_SIZE]
75 __attribute__ ((__aligned__(PADLOCK_ALIGNMENT)));
71}; 76};
72 77
73/* ====== Key management routines ====== */ 78/* ====== Key management routines ====== */
diff --git a/drivers/hwmon/abituguru.c b/drivers/hwmon/abituguru.c
index 59122cc0a50a..cc15c4f2e9ec 100644
--- a/drivers/hwmon/abituguru.c
+++ b/drivers/hwmon/abituguru.c
@@ -142,6 +142,14 @@ static const u8 abituguru_pwm_max[5] = { 0, 255, 255, 75, 75 };
142static int force; 142static int force;
143module_param(force, bool, 0); 143module_param(force, bool, 0);
144MODULE_PARM_DESC(force, "Set to one to force detection."); 144MODULE_PARM_DESC(force, "Set to one to force detection.");
145static int bank1_types[ABIT_UGURU_MAX_BANK1_SENSORS] = { -1, -1, -1, -1, -1,
146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 };
147module_param_array(bank1_types, int, NULL, 0);
148MODULE_PARM_DESC(bank1_types, "Bank1 sensortype autodetection override:\n"
149 " -1 autodetect\n"
150 " 0 volt sensor\n"
151 " 1 temp sensor\n"
152 " 2 not connected");
145static int fan_sensors; 153static int fan_sensors;
146module_param(fan_sensors, int, 0); 154module_param(fan_sensors, int, 0);
147MODULE_PARM_DESC(fan_sensors, "Number of fan sensors on the uGuru " 155MODULE_PARM_DESC(fan_sensors, "Number of fan sensors on the uGuru "
@@ -397,6 +405,15 @@ abituguru_detect_bank1_sensor_type(struct abituguru_data *data,
397 u8 val, buf[3]; 405 u8 val, buf[3];
398 int ret = ABIT_UGURU_NC; 406 int ret = ABIT_UGURU_NC;
399 407
408 /* If overriden by the user return the user selected type */
409 if (bank1_types[sensor_addr] >= ABIT_UGURU_IN_SENSOR &&
410 bank1_types[sensor_addr] <= ABIT_UGURU_NC) {
411 ABIT_UGURU_DEBUG(2, "assuming sensor type %d for bank1 sensor "
412 "%d because of \"bank1_types\" module param\n",
413 bank1_types[sensor_addr], (int)sensor_addr);
414 return bank1_types[sensor_addr];
415 }
416
400 /* First read the sensor and the current settings */ 417 /* First read the sensor and the current settings */
401 if (abituguru_read(data, ABIT_UGURU_SENSOR_BANK1, sensor_addr, &val, 418 if (abituguru_read(data, ABIT_UGURU_SENSOR_BANK1, sensor_addr, &val,
402 1, ABIT_UGURU_MAX_RETRIES) != 1) 419 1, ABIT_UGURU_MAX_RETRIES) != 1)
@@ -514,7 +531,7 @@ abituguru_detect_no_bank2_sensors(struct abituguru_data *data)
514{ 531{
515 int i; 532 int i;
516 533
517 if (fan_sensors) { 534 if (fan_sensors > 0 && fan_sensors <= ABIT_UGURU_MAX_BANK2_SENSORS) {
518 data->bank2_sensors = fan_sensors; 535 data->bank2_sensors = fan_sensors;
519 ABIT_UGURU_DEBUG(2, "assuming %d fan sensors because of " 536 ABIT_UGURU_DEBUG(2, "assuming %d fan sensors because of "
520 "\"fan_sensors\" module param\n", 537 "\"fan_sensors\" module param\n",
@@ -568,7 +585,7 @@ abituguru_detect_no_pwms(struct abituguru_data *data)
568{ 585{
569 int i, j; 586 int i, j;
570 587
571 if (pwms) { 588 if (pwms > 0 && pwms <= ABIT_UGURU_MAX_PWMS) {
572 data->pwms = pwms; 589 data->pwms = pwms;
573 ABIT_UGURU_DEBUG(2, "assuming %d PWM outputs because of " 590 ABIT_UGURU_DEBUG(2, "assuming %d PWM outputs because of "
574 "\"pwms\" module param\n", (int)data->pwms); 591 "\"pwms\" module param\n", (int)data->pwms);
diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c
index df05df1a0ef6..ab230c033f99 100644
--- a/drivers/i2c/algos/i2c-algo-bit.c
+++ b/drivers/i2c/algos/i2c-algo-bit.c
@@ -372,7 +372,6 @@ static inline int readbytes(struct i2c_adapter *i2c_adap, struct i2c_msg *msg)
372 372
373 while (count > 0) { 373 while (count > 0) {
374 inval = i2c_inb(i2c_adap); 374 inval = i2c_inb(i2c_adap);
375/*printk("%#02x ",inval); if ( ! (count % 16) ) printk("\n"); */
376 if (inval>=0) { 375 if (inval>=0) {
377 *temp = inval; 376 *temp = inval;
378 rdcount++; 377 rdcount++;
@@ -544,8 +543,7 @@ int i2c_bit_add_bus(struct i2c_adapter *adap)
544 adap->timeout = 100; /* default values, should */ 543 adap->timeout = 100; /* default values, should */
545 adap->retries = 3; /* be replaced by defines */ 544 adap->retries = 3; /* be replaced by defines */
546 545
547 i2c_add_adapter(adap); 546 return i2c_add_adapter(adap);
548 return 0;
549} 547}
550 548
551 549
diff --git a/drivers/i2c/algos/i2c-algo-ite.c b/drivers/i2c/algos/i2c-algo-ite.c
index 2db7bfc85225..70d8eefb5efc 100644
--- a/drivers/i2c/algos/i2c-algo-ite.c
+++ b/drivers/i2c/algos/i2c-algo-ite.c
@@ -742,10 +742,8 @@ int i2c_iic_add_bus(struct i2c_adapter *adap)
742 adap->retries = 3; /* be replaced by defines */ 742 adap->retries = 3; /* be replaced by defines */
743 adap->flags = 0; 743 adap->flags = 0;
744 744
745 i2c_add_adapter(adap);
746 iic_init(iic_adap); 745 iic_init(iic_adap);
747 746 return i2c_add_adapter(adap);
748 return 0;
749} 747}
750 748
751 749
diff --git a/drivers/i2c/algos/i2c-algo-pca.c b/drivers/i2c/algos/i2c-algo-pca.c
index 82946acab4c7..b88a6fcf7bd0 100644
--- a/drivers/i2c/algos/i2c-algo-pca.c
+++ b/drivers/i2c/algos/i2c-algo-pca.c
@@ -374,10 +374,10 @@ int i2c_pca_add_bus(struct i2c_adapter *adap)
374 adap->timeout = 100; /* default values, should */ 374 adap->timeout = 100; /* default values, should */
375 adap->retries = 3; /* be replaced by defines */ 375 adap->retries = 3; /* be replaced by defines */
376 376
377 rval = pca_init(pca_adap); 377 if ((rval = pca_init(pca_adap)))
378 return rval;
378 379
379 if (!rval) 380 rval = i2c_add_adapter(adap);
380 i2c_add_adapter(adap);
381 381
382 return rval; 382 return rval;
383} 383}
diff --git a/drivers/i2c/algos/i2c-algo-pcf.c b/drivers/i2c/algos/i2c-algo-pcf.c
index 6e498df1f717..5b24930adb5a 100644
--- a/drivers/i2c/algos/i2c-algo-pcf.c
+++ b/drivers/i2c/algos/i2c-algo-pcf.c
@@ -479,9 +479,11 @@ int i2c_pcf_add_bus(struct i2c_adapter *adap)
479 adap->timeout = 100; /* default values, should */ 479 adap->timeout = 100; /* default values, should */
480 adap->retries = 3; /* be replaced by defines */ 480 adap->retries = 3; /* be replaced by defines */
481 481
482 rval = pcf_init_8584(pcf_adap); 482 if ((rval = pcf_init_8584(pcf_adap)))
483 if (!rval) 483 return rval;
484 i2c_add_adapter(adap); 484
485 rval = i2c_add_adapter(adap);
486
485 return rval; 487 return rval;
486} 488}
487 489
diff --git a/drivers/i2c/algos/i2c-algo-sibyte.c b/drivers/i2c/algos/i2c-algo-sibyte.c
index 3df3f09995c2..32d41c6fac0f 100644
--- a/drivers/i2c/algos/i2c-algo-sibyte.c
+++ b/drivers/i2c/algos/i2c-algo-sibyte.c
@@ -173,9 +173,7 @@ int i2c_sibyte_add_bus(struct i2c_adapter *i2c_adap, int speed)
173 printk("\n"); 173 printk("\n");
174 } 174 }
175 175
176 i2c_add_adapter(i2c_adap); 176 return i2c_add_adapter(i2c_adap);
177
178 return 0;
179} 177}
180 178
181 179
diff --git a/drivers/i2c/busses/i2c-iop3xx.c b/drivers/i2c/busses/i2c-iop3xx.c
index aca7e1668605..48c56939c861 100644
--- a/drivers/i2c/busses/i2c-iop3xx.c
+++ b/drivers/i2c/busses/i2c-iop3xx.c
@@ -21,6 +21,9 @@
21 * - Make it work with IXP46x chips 21 * - Make it work with IXP46x chips
22 * - Cleanup function names, coding style, etc 22 * - Cleanup function names, coding style, etc
23 * 23 *
24 * - writing to slave address causes latchup on iop331.
25 * fix: driver refuses to address self.
26 *
24 * This program is free software; you can redistribute it and/or modify 27 * This program is free software; you can redistribute it and/or modify
25 * it under the terms of the GNU General Public License as published by 28 * it under the terms of the GNU General Public License as published by
26 * the Free Software Foundation, version 2. 29 * the Free Software Foundation, version 2.
@@ -73,12 +76,6 @@ iop3xx_i2c_reset(struct i2c_algo_iop3xx_data *iop3xx_adap)
73} 76}
74 77
75static void 78static void
76iop3xx_i2c_set_slave_addr(struct i2c_algo_iop3xx_data *iop3xx_adap)
77{
78 __raw_writel(MYSAR, iop3xx_adap->ioaddr + SAR_OFFSET);
79}
80
81static void
82iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap) 79iop3xx_i2c_enable(struct i2c_algo_iop3xx_data *iop3xx_adap)
83{ 80{
84 u32 cr = IOP3XX_ICR_GCD | IOP3XX_ICR_SCLEN | IOP3XX_ICR_UE; 81 u32 cr = IOP3XX_ICR_GCD | IOP3XX_ICR_SCLEN | IOP3XX_ICR_UE;
@@ -248,6 +245,13 @@ iop3xx_i2c_send_target_addr(struct i2c_algo_iop3xx_data *iop3xx_adap,
248 int status; 245 int status;
249 int rc; 246 int rc;
250 247
248 /* avoid writing to my slave address (hangs on 80331),
249 * forbidden in Intel developer manual
250 */
251 if (msg->addr == MYSAR) {
252 return -EBUSY;
253 }
254
251 __raw_writel(iic_cook_addr(msg), iop3xx_adap->ioaddr + DBR_OFFSET); 255 __raw_writel(iic_cook_addr(msg), iop3xx_adap->ioaddr + DBR_OFFSET);
252 256
253 cr &= ~(IOP3XX_ICR_MSTOP | IOP3XX_ICR_NACK); 257 cr &= ~(IOP3XX_ICR_MSTOP | IOP3XX_ICR_NACK);
@@ -498,7 +502,6 @@ iop3xx_i2c_probe(struct platform_device *pdev)
498 spin_lock_init(&adapter_data->lock); 502 spin_lock_init(&adapter_data->lock);
499 503
500 iop3xx_i2c_reset(adapter_data); 504 iop3xx_i2c_reset(adapter_data);
501 iop3xx_i2c_set_slave_addr(adapter_data);
502 iop3xx_i2c_enable(adapter_data); 505 iop3xx_i2c_enable(adapter_data);
503 506
504 platform_set_drvdata(pdev, new_adapter); 507 platform_set_drvdata(pdev, new_adapter);
diff --git a/drivers/i2c/busses/i2c-iop3xx.h b/drivers/i2c/busses/i2c-iop3xx.h
index e46ebaea7b1e..8485861f6a36 100644
--- a/drivers/i2c/busses/i2c-iop3xx.h
+++ b/drivers/i2c/busses/i2c-iop3xx.h
@@ -80,7 +80,7 @@
80#define IOP3XX_GPOD_I2C0 0x00c0 /* clear these bits to enable ch0 */ 80#define IOP3XX_GPOD_I2C0 0x00c0 /* clear these bits to enable ch0 */
81#define IOP3XX_GPOD_I2C1 0x0030 /* clear these bits to enable ch1 */ 81#define IOP3XX_GPOD_I2C1 0x0030 /* clear these bits to enable ch1 */
82 82
83#define MYSAR 0x02 /* SWAG a suitable slave address */ 83#define MYSAR 0 /* default slave address */
84 84
85#define I2C_ERR 321 85#define I2C_ERR 321
86#define I2C_ERR_BERR (I2C_ERR+0) 86#define I2C_ERR_BERR (I2C_ERR+0)
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c
index 2a0b3be7cdd0..53bb43593863 100644
--- a/drivers/i2c/busses/i2c-powermac.c
+++ b/drivers/i2c/busses/i2c-powermac.c
@@ -148,8 +148,6 @@ static int i2c_powermac_master_xfer( struct i2c_adapter *adap,
148 int read; 148 int read;
149 int addrdir; 149 int addrdir;
150 150
151 if (num != 1)
152 return -EINVAL;
153 if (msgs->flags & I2C_M_TEN) 151 if (msgs->flags & I2C_M_TEN)
154 return -EINVAL; 152 return -EINVAL;
155 read = (msgs->flags & I2C_M_RD) != 0; 153 read = (msgs->flags & I2C_M_RD) != 0;
@@ -166,7 +164,7 @@ static int i2c_powermac_master_xfer( struct i2c_adapter *adap,
166 rc = pmac_i2c_xfer(bus, addrdir, 0, 0, msgs->buf, msgs->len); 164 rc = pmac_i2c_xfer(bus, addrdir, 0, 0, msgs->buf, msgs->len);
167 bail: 165 bail:
168 pmac_i2c_close(bus); 166 pmac_i2c_close(bus);
169 return rc < 0 ? rc : msgs->len; 167 return rc < 0 ? rc : 1;
170} 168}
171 169
172static u32 i2c_powermac_func(struct i2c_adapter * adapter) 170static u32 i2c_powermac_func(struct i2c_adapter * adapter)
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c
index 22a3eda04166..ced309ff056f 100644
--- a/drivers/i2c/busses/scx200_acb.c
+++ b/drivers/i2c/busses/scx200_acb.c
@@ -184,21 +184,21 @@ static void scx200_acb_machine(struct scx200_acb_iface *iface, u8 status)
184 break; 184 break;
185 185
186 case state_read: 186 case state_read:
187 /* Set ACK if receiving the last byte */ 187 /* Set ACK if _next_ byte will be the last one */
188 if (iface->len == 1) 188 if (iface->len == 2)
189 outb(inb(ACBCTL1) | ACBCTL1_ACK, ACBCTL1); 189 outb(inb(ACBCTL1) | ACBCTL1_ACK, ACBCTL1);
190 else 190 else
191 outb(inb(ACBCTL1) & ~ACBCTL1_ACK, ACBCTL1); 191 outb(inb(ACBCTL1) & ~ACBCTL1_ACK, ACBCTL1);
192 192
193 *iface->ptr++ = inb(ACBSDA); 193 if (iface->len == 1) {
194 --iface->len;
195
196 if (iface->len == 0) {
197 iface->result = 0; 194 iface->result = 0;
198 iface->state = state_idle; 195 iface->state = state_idle;
199 outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1); 196 outb(inb(ACBCTL1) | ACBCTL1_STOP, ACBCTL1);
200 } 197 }
201 198
199 *iface->ptr++ = inb(ACBSDA);
200 --iface->len;
201
202 break; 202 break;
203 203
204 case state_write: 204 case state_write:
@@ -307,8 +307,12 @@ static s32 scx200_acb_smbus_xfer(struct i2c_adapter *adapter,
307 buffer = (u8 *)&cur_word; 307 buffer = (u8 *)&cur_word;
308 break; 308 break;
309 309
310 case I2C_SMBUS_BLOCK_DATA: 310 case I2C_SMBUS_I2C_BLOCK_DATA:
311 if (rw == I2C_SMBUS_READ)
312 data->block[0] = I2C_SMBUS_BLOCK_MAX; /* For now */
311 len = data->block[0]; 313 len = data->block[0];
314 if (len == 0 || len > I2C_SMBUS_BLOCK_MAX)
315 return -EINVAL;
312 buffer = &data->block[1]; 316 buffer = &data->block[1];
313 break; 317 break;
314 318
@@ -372,7 +376,7 @@ static u32 scx200_acb_func(struct i2c_adapter *adapter)
372{ 376{
373 return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE | 377 return I2C_FUNC_SMBUS_QUICK | I2C_FUNC_SMBUS_BYTE |
374 I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA | 378 I2C_FUNC_SMBUS_BYTE_DATA | I2C_FUNC_SMBUS_WORD_DATA |
375 I2C_FUNC_SMBUS_BLOCK_DATA; 379 I2C_FUNC_SMBUS_I2C_BLOCK;
376} 380}
377 381
378/* For now, we only handle combined mode (smbus) */ 382/* For now, we only handle combined mode (smbus) */
diff --git a/drivers/i2c/chips/pca9539.c b/drivers/i2c/chips/pca9539.c
index 54b6e6a4beed..cb22280cdd27 100644
--- a/drivers/i2c/chips/pca9539.c
+++ b/drivers/i2c/chips/pca9539.c
@@ -134,11 +134,13 @@ static int pca9539_detect(struct i2c_adapter *adapter, int address, int kind)
134 new_client->driver = &pca9539_driver; 134 new_client->driver = &pca9539_driver;
135 new_client->flags = 0; 135 new_client->flags = 0;
136 136
137 /* Detection: the pca9539 only has 8 registers (0-7). 137 if (kind < 0) {
138 A read of 7 should succeed, but a read of 8 should fail. */ 138 /* Detection: the pca9539 only has 8 registers (0-7).
139 if ((i2c_smbus_read_byte_data(new_client, 7) < 0) || 139 A read of 7 should succeed, but a read of 8 should fail. */
140 (i2c_smbus_read_byte_data(new_client, 8) >= 0)) 140 if ((i2c_smbus_read_byte_data(new_client, 7) < 0) ||
141 goto exit_kfree; 141 (i2c_smbus_read_byte_data(new_client, 8) >= 0))
142 goto exit_kfree;
143 }
142 144
143 strlcpy(new_client->name, "pca9539", I2C_NAME_SIZE); 145 strlcpy(new_client->name, "pca9539", I2C_NAME_SIZE);
144 146
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index a45155f799d4..9cb277d6aa48 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -756,9 +756,9 @@ int i2c_probe(struct i2c_adapter *adapter,
756 "parameter for adapter %d, " 756 "parameter for adapter %d, "
757 "addr 0x%02x\n", adap_id, 757 "addr 0x%02x\n", adap_id,
758 address_data->ignore[j + 1]); 758 address_data->ignore[j + 1]);
759 ignore = 1;
760 break;
759 } 761 }
760 ignore = 1;
761 break;
762 } 762 }
763 if (ignore) 763 if (ignore)
764 continue; 764 continue;
diff --git a/drivers/ide/legacy/ide-cs.c b/drivers/ide/legacy/ide-cs.c
index b7e459e4f284..602797a44208 100644
--- a/drivers/ide/legacy/ide-cs.c
+++ b/drivers/ide/legacy/ide-cs.c
@@ -146,16 +146,7 @@ static void ide_detach(struct pcmcia_device *link)
146 kfree(link->priv); 146 kfree(link->priv);
147} /* ide_detach */ 147} /* ide_detach */
148 148
149static void idecs_mmio_fixup(ide_hwif_t *hwif) 149static int idecs_register(unsigned long io, unsigned long ctl, unsigned long irq, struct pcmcia_device *handle)
150{
151 default_hwif_mmiops(hwif);
152 hwif->mmio = 2;
153
154 ide_undecoded_slave(hwif);
155}
156
157static int idecs_register(unsigned long io, unsigned long ctl,
158 unsigned long irq, struct pcmcia_device *handle, int is_mmio)
159{ 150{
160 hw_regs_t hw; 151 hw_regs_t hw;
161 memset(&hw, 0, sizeof(hw)); 152 memset(&hw, 0, sizeof(hw));
@@ -163,19 +154,7 @@ static int idecs_register(unsigned long io, unsigned long ctl,
163 hw.irq = irq; 154 hw.irq = irq;
164 hw.chipset = ide_pci; 155 hw.chipset = ide_pci;
165 hw.dev = &handle->dev; 156 hw.dev = &handle->dev;
166 157 return ide_register_hw_with_fixup(&hw, NULL, ide_undecoded_slave);
167 if(is_mmio)
168 return ide_register_hw_with_fixup(&hw, NULL, idecs_mmio_fixup);
169 else
170 return ide_register_hw_with_fixup(&hw, NULL, ide_undecoded_slave);
171}
172
173void outb_io(unsigned char value, unsigned long port) {
174 outb(value, port);
175}
176
177void outb_mem(unsigned char value, unsigned long port) {
178 writeb(value, (void __iomem *) port);
179} 158}
180 159
181/*====================================================================== 160/*======================================================================
@@ -201,8 +180,7 @@ static int ide_config(struct pcmcia_device *link)
201 } *stk = NULL; 180 } *stk = NULL;
202 cistpl_cftable_entry_t *cfg; 181 cistpl_cftable_entry_t *cfg;
203 int i, pass, last_ret = 0, last_fn = 0, hd, is_kme = 0; 182 int i, pass, last_ret = 0, last_fn = 0, hd, is_kme = 0;
204 unsigned long io_base, ctl_base, is_mmio, try_slave; 183 unsigned long io_base, ctl_base;
205 void (*my_outb)(unsigned char, unsigned long);
206 184
207 DEBUG(0, "ide_config(0x%p)\n", link); 185 DEBUG(0, "ide_config(0x%p)\n", link);
208 186
@@ -232,7 +210,7 @@ static int ide_config(struct pcmcia_device *link)
232 /* Not sure if this is right... look up the current Vcc */ 210 /* Not sure if this is right... look up the current Vcc */
233 CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link, &stk->conf)); 211 CS_CHECK(GetConfigurationInfo, pcmcia_get_configuration_info(link, &stk->conf));
234 212
235 pass = io_base = ctl_base = is_mmio = try_slave = 0; 213 pass = io_base = ctl_base = 0;
236 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY; 214 tuple.DesiredTuple = CISTPL_CFTABLE_ENTRY;
237 tuple.Attributes = 0; 215 tuple.Attributes = 0;
238 CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple)); 216 CS_CHECK(GetFirstTuple, pcmcia_get_first_tuple(link, &tuple));
@@ -280,45 +258,11 @@ static int ide_config(struct pcmcia_device *link)
280 goto next_entry; 258 goto next_entry;
281 io_base = link->io.BasePort1; 259 io_base = link->io.BasePort1;
282 ctl_base = link->io.BasePort1 + 0x0e; 260 ctl_base = link->io.BasePort1 + 0x0e;
283
284 if (io->win[0].len >= 0x20)
285 try_slave = 1;
286
287 } else goto next_entry; 261 } else goto next_entry;
288 /* If we've got this far, we're done */ 262 /* If we've got this far, we're done */
289 break; 263 break;
290 } 264 }
291 265
292 if ((cfg->mem.nwin > 0) || (stk->dflt.mem.nwin > 0)) {
293 win_req_t req;
294 memreq_t map;
295 cistpl_mem_t *mem = (cfg->mem.nwin) ? &cfg->mem : &stk->dflt.mem;
296
297 if (mem->win[0].len < 16)
298 goto next_entry;
299
300 req.Attributes = WIN_DATA_WIDTH_16|WIN_MEMORY_TYPE_CM;
301 req.Attributes |= WIN_ENABLE;
302 req.Base = mem->win[0].host_addr;
303 req.Size = 0;
304
305 req.AccessSpeed = 0;
306 if (pcmcia_request_window(&link, &req, &link->win) != 0)
307 goto next_entry;
308 map.Page = 0; map.CardOffset = mem->win[0].card_addr;
309 if (pcmcia_map_mem_page(link->win, &map) != 0)
310 goto next_entry;
311
312 io_base = (unsigned long) ioremap(req.Base, req.Size);
313 ctl_base = io_base + 0x0e;
314 is_mmio = 1;
315
316 if (mem->win[0].len >= 0x20)
317 try_slave = 1;
318
319 break;
320 }
321
322 next_entry: 266 next_entry:
323 if (cfg->flags & CISTPL_CFTABLE_DEFAULT) 267 if (cfg->flags & CISTPL_CFTABLE_DEFAULT)
324 memcpy(&stk->dflt, cfg, sizeof(stk->dflt)); 268 memcpy(&stk->dflt, cfg, sizeof(stk->dflt));
@@ -334,26 +278,21 @@ static int ide_config(struct pcmcia_device *link)
334 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); 278 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
335 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); 279 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
336 280
337 if(is_mmio)
338 my_outb = outb_mem;
339 else
340 my_outb = outb_io;
341
342 /* disable drive interrupts during IDE probe */ 281 /* disable drive interrupts during IDE probe */
343 my_outb(0x02, ctl_base); 282 outb(0x02, ctl_base);
344 283
345 /* special setup for KXLC005 card */ 284 /* special setup for KXLC005 card */
346 if (is_kme) 285 if (is_kme)
347 my_outb(0x81, ctl_base+1); 286 outb(0x81, ctl_base+1);
348 287
349 /* retry registration in case device is still spinning up */ 288 /* retry registration in case device is still spinning up */
350 for (hd = -1, i = 0; i < 10; i++) { 289 for (hd = -1, i = 0; i < 10; i++) {
351 hd = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link, is_mmio); 290 hd = idecs_register(io_base, ctl_base, link->irq.AssignedIRQ, link);
352 if (hd >= 0) break; 291 if (hd >= 0) break;
353 if (try_slave) { 292 if (link->io.NumPorts1 == 0x20) {
354 my_outb(0x02, ctl_base + 0x10); 293 outb(0x02, ctl_base + 0x10);
355 hd = idecs_register(io_base + 0x10, ctl_base + 0x10, 294 hd = idecs_register(io_base + 0x10, ctl_base + 0x10,
356 link->irq.AssignedIRQ, link, is_mmio); 295 link->irq.AssignedIRQ, link);
357 if (hd >= 0) { 296 if (hd >= 0) {
358 io_base += 0x10; 297 io_base += 0x10;
359 ctl_base += 0x10; 298 ctl_base += 0x10;
diff --git a/drivers/ide/pci/generic.c b/drivers/ide/pci/generic.c
index f82e82109728..2f962cfa3f7f 100644
--- a/drivers/ide/pci/generic.c
+++ b/drivers/ide/pci/generic.c
@@ -212,6 +212,9 @@ static int __devinit generic_init_one(struct pci_dev *dev, const struct pci_devi
212 (!(PCI_FUNC(dev->devfn) & 1))) 212 (!(PCI_FUNC(dev->devfn) & 1)))
213 goto out; 213 goto out;
214 214
215 if (dev->vendor == PCI_VENDOR_ID_JMICRON && PCI_FUNC(dev->devfn) != 1)
216 goto out;
217
215 pci_read_config_word(dev, PCI_COMMAND, &command); 218 pci_read_config_word(dev, PCI_COMMAND, &command);
216 if (!(command & PCI_COMMAND_IO)) { 219 if (!(command & PCI_COMMAND_IO)) {
217 printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name); 220 printk(KERN_INFO "Skipping disabled %s IDE controller.\n", d->name);
@@ -239,6 +242,11 @@ static struct pci_device_id generic_pci_tbl[] = {
239 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12}, 242 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_1, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 12},
240 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13}, 243 { PCI_VENDOR_ID_TOSHIBA,PCI_DEVICE_ID_TOSHIBA_PICCOLO_2, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 13},
241 { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14}, 244 { PCI_VENDOR_ID_NETCELL,PCI_DEVICE_ID_REVOLUTION, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 14},
245 { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 15},
246 { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB363, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 16},
247 { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB365, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 17},
248 { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB366, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 18},
249 { PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB368, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 19},
242 /* Must come last. If you add entries adjust this table appropriately and the init_one code */ 250 /* Must come last. If you add entries adjust this table appropriately and the init_one code */
243 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0}, 251 { PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_STORAGE_IDE << 8, 0xFFFFFF00UL, 0},
244 { 0, }, 252 { 0, },
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index 3f6705f3083a..f85c97f7500a 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -701,7 +701,7 @@ static void cm_reset_to_idle(struct cm_id_private *cm_id_priv)
701 } 701 }
702} 702}
703 703
704void ib_destroy_cm_id(struct ib_cm_id *cm_id) 704static void cm_destroy_id(struct ib_cm_id *cm_id, int err)
705{ 705{
706 struct cm_id_private *cm_id_priv; 706 struct cm_id_private *cm_id_priv;
707 struct cm_work *work; 707 struct cm_work *work;
@@ -735,12 +735,22 @@ retest:
735 sizeof cm_id_priv->av.port->cm_dev->ca_guid, 735 sizeof cm_id_priv->av.port->cm_dev->ca_guid,
736 NULL, 0); 736 NULL, 0);
737 break; 737 break;
738 case IB_CM_REQ_RCVD:
739 if (err == -ENOMEM) {
740 /* Do not reject to allow future retries. */
741 cm_reset_to_idle(cm_id_priv);
742 spin_unlock_irqrestore(&cm_id_priv->lock, flags);
743 } else {
744 spin_unlock_irqrestore(&cm_id_priv->lock, flags);
745 ib_send_cm_rej(cm_id, IB_CM_REJ_CONSUMER_DEFINED,
746 NULL, 0, NULL, 0);
747 }
748 break;
738 case IB_CM_MRA_REQ_RCVD: 749 case IB_CM_MRA_REQ_RCVD:
739 case IB_CM_REP_SENT: 750 case IB_CM_REP_SENT:
740 case IB_CM_MRA_REP_RCVD: 751 case IB_CM_MRA_REP_RCVD:
741 ib_cancel_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg); 752 ib_cancel_mad(cm_id_priv->av.port->mad_agent, cm_id_priv->msg);
742 /* Fall through */ 753 /* Fall through */
743 case IB_CM_REQ_RCVD:
744 case IB_CM_MRA_REQ_SENT: 754 case IB_CM_MRA_REQ_SENT:
745 case IB_CM_REP_RCVD: 755 case IB_CM_REP_RCVD:
746 case IB_CM_MRA_REP_SENT: 756 case IB_CM_MRA_REP_SENT:
@@ -775,6 +785,11 @@ retest:
775 kfree(cm_id_priv->private_data); 785 kfree(cm_id_priv->private_data);
776 kfree(cm_id_priv); 786 kfree(cm_id_priv);
777} 787}
788
789void ib_destroy_cm_id(struct ib_cm_id *cm_id)
790{
791 cm_destroy_id(cm_id, 0);
792}
778EXPORT_SYMBOL(ib_destroy_cm_id); 793EXPORT_SYMBOL(ib_destroy_cm_id);
779 794
780int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask, 795int ib_cm_listen(struct ib_cm_id *cm_id, __be64 service_id, __be64 service_mask,
@@ -1163,7 +1178,7 @@ static void cm_process_work(struct cm_id_private *cm_id_priv,
1163 } 1178 }
1164 cm_deref_id(cm_id_priv); 1179 cm_deref_id(cm_id_priv);
1165 if (ret) 1180 if (ret)
1166 ib_destroy_cm_id(&cm_id_priv->id); 1181 cm_destroy_id(&cm_id_priv->id, ret);
1167} 1182}
1168 1183
1169static void cm_format_mra(struct cm_mra_msg *mra_msg, 1184static void cm_format_mra(struct cm_mra_msg *mra_msg,
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 863f64befc7c..d6f99d5720fc 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -262,14 +262,14 @@ static void cma_detach_from_dev(struct rdma_id_private *id_priv)
262static int cma_acquire_ib_dev(struct rdma_id_private *id_priv) 262static int cma_acquire_ib_dev(struct rdma_id_private *id_priv)
263{ 263{
264 struct cma_device *cma_dev; 264 struct cma_device *cma_dev;
265 union ib_gid *gid; 265 union ib_gid gid;
266 int ret = -ENODEV; 266 int ret = -ENODEV;
267 267
268 gid = ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr); 268 ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid),
269 269
270 mutex_lock(&lock); 270 mutex_lock(&lock);
271 list_for_each_entry(cma_dev, &dev_list, list) { 271 list_for_each_entry(cma_dev, &dev_list, list) {
272 ret = ib_find_cached_gid(cma_dev->device, gid, 272 ret = ib_find_cached_gid(cma_dev->device, &gid,
273 &id_priv->id.port_num, NULL); 273 &id_priv->id.port_num, NULL);
274 if (!ret) { 274 if (!ret) {
275 cma_attach_to_dev(id_priv, cma_dev); 275 cma_attach_to_dev(id_priv, cma_dev);
@@ -812,6 +812,7 @@ static int cma_ib_handler(struct ib_cm_id *cm_id, struct ib_cm_event *ib_event)
812 cma_modify_qp_err(&id_priv->id); 812 cma_modify_qp_err(&id_priv->id);
813 status = ib_event->param.rej_rcvd.reason; 813 status = ib_event->param.rej_rcvd.reason;
814 event = RDMA_CM_EVENT_REJECTED; 814 event = RDMA_CM_EVENT_REJECTED;
815 private_data_len = IB_CM_REJ_PRIVATE_DATA_SIZE;
815 break; 816 break;
816 default: 817 default:
817 printk(KERN_ERR "RDMA CMA: unexpected IB CM event: %d", 818 printk(KERN_ERR "RDMA CMA: unexpected IB CM event: %d",
@@ -1134,8 +1135,8 @@ static int cma_query_ib_route(struct rdma_id_private *id_priv, int timeout_ms,
1134 struct ib_sa_path_rec path_rec; 1135 struct ib_sa_path_rec path_rec;
1135 1136
1136 memset(&path_rec, 0, sizeof path_rec); 1137 memset(&path_rec, 0, sizeof path_rec);
1137 path_rec.sgid = *ib_addr_get_sgid(addr); 1138 ib_addr_get_sgid(addr, &path_rec.sgid);
1138 path_rec.dgid = *ib_addr_get_dgid(addr); 1139 ib_addr_get_dgid(addr, &path_rec.dgid);
1139 path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(addr)); 1140 path_rec.pkey = cpu_to_be16(ib_addr_get_pkey(addr));
1140 path_rec.numb_path = 1; 1141 path_rec.numb_path = 1;
1141 1142
@@ -1263,7 +1264,7 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
1263{ 1264{
1264 struct cma_device *cma_dev; 1265 struct cma_device *cma_dev;
1265 struct ib_port_attr port_attr; 1266 struct ib_port_attr port_attr;
1266 union ib_gid *gid; 1267 union ib_gid gid;
1267 u16 pkey; 1268 u16 pkey;
1268 int ret; 1269 int ret;
1269 u8 p; 1270 u8 p;
@@ -1284,8 +1285,7 @@ static int cma_bind_loopback(struct rdma_id_private *id_priv)
1284 } 1285 }
1285 1286
1286port_found: 1287port_found:
1287 gid = ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr); 1288 ret = ib_get_cached_gid(cma_dev->device, p, 0, &gid);
1288 ret = ib_get_cached_gid(cma_dev->device, p, 0, gid);
1289 if (ret) 1289 if (ret)
1290 goto out; 1290 goto out;
1291 1291
@@ -1293,6 +1293,7 @@ port_found:
1293 if (ret) 1293 if (ret)
1294 goto out; 1294 goto out;
1295 1295
1296 ib_addr_set_sgid(&id_priv->id.route.addr.dev_addr, &gid);
1296 ib_addr_set_pkey(&id_priv->id.route.addr.dev_addr, pkey); 1297 ib_addr_set_pkey(&id_priv->id.route.addr.dev_addr, pkey);
1297 id_priv->id.port_num = p; 1298 id_priv->id.port_num = p;
1298 cma_attach_to_dev(id_priv, cma_dev); 1299 cma_attach_to_dev(id_priv, cma_dev);
@@ -1339,6 +1340,7 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
1339{ 1340{
1340 struct cma_work *work; 1341 struct cma_work *work;
1341 struct sockaddr_in *src_in, *dst_in; 1342 struct sockaddr_in *src_in, *dst_in;
1343 union ib_gid gid;
1342 int ret; 1344 int ret;
1343 1345
1344 work = kzalloc(sizeof *work, GFP_KERNEL); 1346 work = kzalloc(sizeof *work, GFP_KERNEL);
@@ -1351,8 +1353,8 @@ static int cma_resolve_loopback(struct rdma_id_private *id_priv)
1351 goto err; 1353 goto err;
1352 } 1354 }
1353 1355
1354 ib_addr_set_dgid(&id_priv->id.route.addr.dev_addr, 1356 ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr, &gid);
1355 ib_addr_get_sgid(&id_priv->id.route.addr.dev_addr)); 1357 ib_addr_set_dgid(&id_priv->id.route.addr.dev_addr, &gid);
1356 1358
1357 if (cma_zero_addr(&id_priv->id.route.addr.src_addr)) { 1359 if (cma_zero_addr(&id_priv->id.route.addr.src_addr)) {
1358 src_in = (struct sockaddr_in *)&id_priv->id.route.addr.src_addr; 1360 src_in = (struct sockaddr_in *)&id_priv->id.route.addr.src_addr;
diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
index 615fe9cc6c56..86a3b2d401db 100644
--- a/drivers/infiniband/core/fmr_pool.c
+++ b/drivers/infiniband/core/fmr_pool.c
@@ -426,7 +426,7 @@ EXPORT_SYMBOL(ib_flush_fmr_pool);
426struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle, 426struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
427 u64 *page_list, 427 u64 *page_list,
428 int list_len, 428 int list_len,
429 u64 *io_virtual_address) 429 u64 io_virtual_address)
430{ 430{
431 struct ib_fmr_pool *pool = pool_handle; 431 struct ib_fmr_pool *pool = pool_handle;
432 struct ib_pool_fmr *fmr; 432 struct ib_pool_fmr *fmr;
@@ -440,7 +440,7 @@ struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
440 fmr = ib_fmr_cache_lookup(pool, 440 fmr = ib_fmr_cache_lookup(pool,
441 page_list, 441 page_list,
442 list_len, 442 list_len,
443 *io_virtual_address); 443 io_virtual_address);
444 if (fmr) { 444 if (fmr) {
445 /* found in cache */ 445 /* found in cache */
446 ++fmr->ref_count; 446 ++fmr->ref_count;
@@ -464,7 +464,7 @@ struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
464 spin_unlock_irqrestore(&pool->pool_lock, flags); 464 spin_unlock_irqrestore(&pool->pool_lock, flags);
465 465
466 result = ib_map_phys_fmr(fmr->fmr, page_list, list_len, 466 result = ib_map_phys_fmr(fmr->fmr, page_list, list_len,
467 *io_virtual_address); 467 io_virtual_address);
468 468
469 if (result) { 469 if (result) {
470 spin_lock_irqsave(&pool->pool_lock, flags); 470 spin_lock_irqsave(&pool->pool_lock, flags);
@@ -481,7 +481,7 @@ struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
481 fmr->ref_count = 1; 481 fmr->ref_count = 1;
482 482
483 if (pool->cache_bucket) { 483 if (pool->cache_bucket) {
484 fmr->io_virtual_address = *io_virtual_address; 484 fmr->io_virtual_address = io_virtual_address;
485 fmr->page_list_len = list_len; 485 fmr->page_list_len = list_len;
486 memcpy(fmr->page_list, page_list, list_len * sizeof(*page_list)); 486 memcpy(fmr->page_list, page_list, list_len * sizeof(*page_list));
487 487
diff --git a/drivers/infiniband/core/sa_query.c b/drivers/infiniband/core/sa_query.c
index e911c99ff843..aeda484ffd82 100644
--- a/drivers/infiniband/core/sa_query.c
+++ b/drivers/infiniband/core/sa_query.c
@@ -488,13 +488,13 @@ static void init_mad(struct ib_sa_mad *mad, struct ib_mad_agent *agent)
488 spin_unlock_irqrestore(&tid_lock, flags); 488 spin_unlock_irqrestore(&tid_lock, flags);
489} 489}
490 490
491static int send_mad(struct ib_sa_query *query, int timeout_ms) 491static int send_mad(struct ib_sa_query *query, int timeout_ms, gfp_t gfp_mask)
492{ 492{
493 unsigned long flags; 493 unsigned long flags;
494 int ret, id; 494 int ret, id;
495 495
496retry: 496retry:
497 if (!idr_pre_get(&query_idr, GFP_ATOMIC)) 497 if (!idr_pre_get(&query_idr, gfp_mask))
498 return -ENOMEM; 498 return -ENOMEM;
499 spin_lock_irqsave(&idr_lock, flags); 499 spin_lock_irqsave(&idr_lock, flags);
500 ret = idr_get_new(&query_idr, query, &id); 500 ret = idr_get_new(&query_idr, query, &id);
@@ -630,7 +630,7 @@ int ib_sa_path_rec_get(struct ib_device *device, u8 port_num,
630 630
631 *sa_query = &query->sa_query; 631 *sa_query = &query->sa_query;
632 632
633 ret = send_mad(&query->sa_query, timeout_ms); 633 ret = send_mad(&query->sa_query, timeout_ms, gfp_mask);
634 if (ret < 0) 634 if (ret < 0)
635 goto err2; 635 goto err2;
636 636
@@ -752,7 +752,7 @@ int ib_sa_service_rec_query(struct ib_device *device, u8 port_num, u8 method,
752 752
753 *sa_query = &query->sa_query; 753 *sa_query = &query->sa_query;
754 754
755 ret = send_mad(&query->sa_query, timeout_ms); 755 ret = send_mad(&query->sa_query, timeout_ms, gfp_mask);
756 if (ret < 0) 756 if (ret < 0)
757 goto err2; 757 goto err2;
758 758
@@ -844,7 +844,7 @@ int ib_sa_mcmember_rec_query(struct ib_device *device, u8 port_num,
844 844
845 *sa_query = &query->sa_query; 845 *sa_query = &query->sa_query;
846 846
847 ret = send_mad(&query->sa_query, timeout_ms); 847 ret = send_mad(&query->sa_query, timeout_ms, gfp_mask);
848 if (ret < 0) 848 if (ret < 0)
849 goto err2; 849 goto err2;
850 850
diff --git a/drivers/infiniband/hw/mthca/mthca_av.c b/drivers/infiniband/hw/mthca/mthca_av.c
index b12aa03be251..e215041b2db9 100644
--- a/drivers/infiniband/hw/mthca/mthca_av.c
+++ b/drivers/infiniband/hw/mthca/mthca_av.c
@@ -303,9 +303,10 @@ int mthca_ah_query(struct ib_ah *ibah, struct ib_ah_attr *attr)
303 memset(attr, 0, sizeof *attr); 303 memset(attr, 0, sizeof *attr);
304 attr->dlid = be16_to_cpu(ah->av->dlid); 304 attr->dlid = be16_to_cpu(ah->av->dlid);
305 attr->sl = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28; 305 attr->sl = be32_to_cpu(ah->av->sl_tclass_flowlabel) >> 28;
306 attr->static_rate = ah->av->msg_sr & 0x7;
307 attr->src_path_bits = ah->av->g_slid & 0x7F;
308 attr->port_num = be32_to_cpu(ah->av->port_pd) >> 24; 306 attr->port_num = be32_to_cpu(ah->av->port_pd) >> 24;
307 attr->static_rate = mthca_rate_to_ib(dev, ah->av->msg_sr & 0x7,
308 attr->port_num);
309 attr->src_path_bits = ah->av->g_slid & 0x7F;
309 attr->ah_flags = mthca_ah_grh_present(ah) ? IB_AH_GRH : 0; 310 attr->ah_flags = mthca_ah_grh_present(ah) ? IB_AH_GRH : 0;
310 311
311 if (attr->ah_flags) { 312 if (attr->ah_flags) {
diff --git a/drivers/infiniband/hw/mthca/mthca_qp.c b/drivers/infiniband/hw/mthca/mthca_qp.c
index 490fc783bb0c..cd8b6721ac9c 100644
--- a/drivers/infiniband/hw/mthca/mthca_qp.c
+++ b/drivers/infiniband/hw/mthca/mthca_qp.c
@@ -222,9 +222,8 @@ static void *get_send_wqe(struct mthca_qp *qp, int n)
222 (PAGE_SIZE - 1)); 222 (PAGE_SIZE - 1));
223} 223}
224 224
225static void mthca_wq_init(struct mthca_wq *wq) 225static void mthca_wq_reset(struct mthca_wq *wq)
226{ 226{
227 /* mthca_alloc_qp_common() initializes the locks */
228 wq->next_ind = 0; 227 wq->next_ind = 0;
229 wq->last_comp = wq->max - 1; 228 wq->last_comp = wq->max - 1;
230 wq->head = 0; 229 wq->head = 0;
@@ -845,10 +844,10 @@ int mthca_modify_qp(struct ib_qp *ibqp, struct ib_qp_attr *attr, int attr_mask)
845 mthca_cq_clean(dev, to_mcq(qp->ibqp.recv_cq), qp->qpn, 844 mthca_cq_clean(dev, to_mcq(qp->ibqp.recv_cq), qp->qpn,
846 qp->ibqp.srq ? to_msrq(qp->ibqp.srq) : NULL); 845 qp->ibqp.srq ? to_msrq(qp->ibqp.srq) : NULL);
847 846
848 mthca_wq_init(&qp->sq); 847 mthca_wq_reset(&qp->sq);
849 qp->sq.last = get_send_wqe(qp, qp->sq.max - 1); 848 qp->sq.last = get_send_wqe(qp, qp->sq.max - 1);
850 849
851 mthca_wq_init(&qp->rq); 850 mthca_wq_reset(&qp->rq);
852 qp->rq.last = get_recv_wqe(qp, qp->rq.max - 1); 851 qp->rq.last = get_recv_wqe(qp, qp->rq.max - 1);
853 852
854 if (mthca_is_memfree(dev)) { 853 if (mthca_is_memfree(dev)) {
@@ -1112,9 +1111,9 @@ static int mthca_alloc_qp_common(struct mthca_dev *dev,
1112 qp->atomic_rd_en = 0; 1111 qp->atomic_rd_en = 0;
1113 qp->resp_depth = 0; 1112 qp->resp_depth = 0;
1114 qp->sq_policy = send_policy; 1113 qp->sq_policy = send_policy;
1115 mthca_wq_init(&qp->sq); 1114 mthca_wq_reset(&qp->sq);
1116 mthca_wq_init(&qp->rq); 1115 mthca_wq_reset(&qp->rq);
1117 /* these are initialized separately so lockdep can tell them apart */ 1116
1118 spin_lock_init(&qp->sq.lock); 1117 spin_lock_init(&qp->sq.lock);
1119 spin_lock_init(&qp->rq.lock); 1118 spin_lock_init(&qp->rq.lock);
1120 1119
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index ff117bbf81b4..72febf1f8ff8 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -594,7 +594,7 @@ int iser_reg_page_vec(struct iser_conn *ib_conn,
594 mem = ib_fmr_pool_map_phys(ib_conn->fmr_pool, 594 mem = ib_fmr_pool_map_phys(ib_conn->fmr_pool,
595 page_list, 595 page_list,
596 page_vec->length, 596 page_vec->length,
597 &io_addr); 597 io_addr);
598 598
599 if (IS_ERR(mem)) { 599 if (IS_ERR(mem)) {
600 status = (int)PTR_ERR(mem); 600 status = (int)PTR_ERR(mem);
diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
index 4e22afef7206..8f472e7113b4 100644
--- a/drivers/infiniband/ulp/srp/ib_srp.c
+++ b/drivers/infiniband/ulp/srp/ib_srp.c
@@ -615,9 +615,10 @@ static int srp_map_fmr(struct srp_device *dev, struct scatterlist *scat,
615 (sg_dma_address(&scat[i]) & dev->fmr_page_mask) + j; 615 (sg_dma_address(&scat[i]) & dev->fmr_page_mask) + j;
616 616
617 req->fmr = ib_fmr_pool_map_phys(dev->fmr_pool, 617 req->fmr = ib_fmr_pool_map_phys(dev->fmr_pool,
618 dma_pages, page_cnt, &io_addr); 618 dma_pages, page_cnt, io_addr);
619 if (IS_ERR(req->fmr)) { 619 if (IS_ERR(req->fmr)) {
620 ret = PTR_ERR(req->fmr); 620 ret = PTR_ERR(req->fmr);
621 req->fmr = NULL;
621 goto out; 622 goto out;
622 } 623 }
623 624
diff --git a/drivers/leds/leds-net48xx.c b/drivers/leds/leds-net48xx.c
index 35ee52f9b79e..713c4a8aa77d 100644
--- a/drivers/leds/leds-net48xx.c
+++ b/drivers/leds/leds-net48xx.c
@@ -18,6 +18,7 @@
18#include <asm/io.h> 18#include <asm/io.h>
19#include <linux/scx200_gpio.h> 19#include <linux/scx200_gpio.h>
20 20
21#define DRVNAME "net48xx-led"
21#define NET48XX_ERROR_LED_GPIO 20 22#define NET48XX_ERROR_LED_GPIO 20
22 23
23static struct platform_device *pdev; 24static struct platform_device *pdev;
@@ -66,13 +67,13 @@ static int net48xx_led_remove(struct platform_device *pdev)
66} 67}
67 68
68static struct platform_driver net48xx_led_driver = { 69static struct platform_driver net48xx_led_driver = {
69 .driver.owner = THIS_MODULE,
70 .probe = net48xx_led_probe, 70 .probe = net48xx_led_probe,
71 .remove = net48xx_led_remove, 71 .remove = net48xx_led_remove,
72 .suspend = net48xx_led_suspend, 72 .suspend = net48xx_led_suspend,
73 .resume = net48xx_led_resume, 73 .resume = net48xx_led_resume,
74 .driver = { 74 .driver = {
75 .name = "net48xx-led", 75 .name = DRVNAME,
76 .owner = THIS_MODULE,
76 }, 77 },
77}; 78};
78 79
@@ -89,7 +90,7 @@ static int __init net48xx_led_init(void)
89 if (ret < 0) 90 if (ret < 0)
90 goto out; 91 goto out;
91 92
92 pdev = platform_device_register_simple("net48xx-led", -1, NULL, 0); 93 pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0);
93 if (IS_ERR(pdev)) { 94 if (IS_ERR(pdev)) {
94 ret = PTR_ERR(pdev); 95 ret = PTR_ERR(pdev);
95 platform_driver_unregister(&net48xx_led_driver); 96 platform_driver_unregister(&net48xx_led_driver);
diff --git a/drivers/mfd/ucb1x00-core.c b/drivers/mfd/ucb1x00-core.c
index 632bc218c86a..2bf32721eb53 100644
--- a/drivers/mfd/ucb1x00-core.c
+++ b/drivers/mfd/ucb1x00-core.c
@@ -479,7 +479,7 @@ static int ucb1x00_probe(struct mcp *mcp)
479 mcp_enable(mcp); 479 mcp_enable(mcp);
480 id = mcp_reg_read(mcp, UCB_ID); 480 id = mcp_reg_read(mcp, UCB_ID);
481 481
482 if (id != UCB_ID_1200 && id != UCB_ID_1300) { 482 if (id != UCB_ID_1200 && id != UCB_ID_1300 && id != UCB_ID_TC35143) {
483 printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id); 483 printk(KERN_WARNING "UCB1x00 ID not found: %04x\n", id);
484 goto err_disable; 484 goto err_disable;
485 } 485 }
diff --git a/drivers/mfd/ucb1x00.h b/drivers/mfd/ucb1x00.h
index 9c9a647d8b7b..ca8df8072d43 100644
--- a/drivers/mfd/ucb1x00.h
+++ b/drivers/mfd/ucb1x00.h
@@ -94,6 +94,7 @@
94#define UCB_ID 0x0c 94#define UCB_ID 0x0c
95#define UCB_ID_1200 0x1004 95#define UCB_ID_1200 0x1004
96#define UCB_ID_1300 0x1005 96#define UCB_ID_1300 0x1005
97#define UCB_ID_TC35143 0x9712
97 98
98#define UCB_MODE 0x0d 99#define UCB_MODE 0x0d
99#define UCB_MODE_DYN_VFLAG_ENA (1 << 12) 100#define UCB_MODE_DYN_VFLAG_ENA (1 << 12)
diff --git a/drivers/mmc/sdhci.c b/drivers/mmc/sdhci.c
index 893319108ba4..4e21b3b9d330 100644
--- a/drivers/mmc/sdhci.c
+++ b/drivers/mmc/sdhci.c
@@ -565,7 +565,7 @@ static void sdhci_send_command(struct sdhci_host *host, struct mmc_command *cmd)
565 if (cmd->data) 565 if (cmd->data)
566 flags |= SDHCI_CMD_DATA; 566 flags |= SDHCI_CMD_DATA;
567 567
568 writel(SDHCI_MAKE_CMD(cmd->opcode, flags), 568 writew(SDHCI_MAKE_CMD(cmd->opcode, flags),
569 host->ioaddr + SDHCI_COMMAND); 569 host->ioaddr + SDHCI_COMMAND);
570} 570}
571 571
@@ -1193,10 +1193,8 @@ static int __devinit sdhci_probe_slot(struct pci_dev *pdev, int slot)
1193 version = (version & SDHCI_SPEC_VER_MASK) >> SDHCI_SPEC_VER_SHIFT; 1193 version = (version & SDHCI_SPEC_VER_MASK) >> SDHCI_SPEC_VER_SHIFT;
1194 if (version != 0) { 1194 if (version != 0) {
1195 printk(KERN_ERR "%s: Unknown controller version (%d). " 1195 printk(KERN_ERR "%s: Unknown controller version (%d). "
1196 "Cowardly refusing to continue.\n", host->slot_descr, 1196 "You may experience problems.\n", host->slot_descr,
1197 version); 1197 version);
1198 ret = -ENODEV;
1199 goto unmap;
1200 } 1198 }
1201 1199
1202 caps = readl(host->ioaddr + SDHCI_CAPABILITIES); 1200 caps = readl(host->ioaddr + SDHCI_CAPABILITIES);
diff --git a/drivers/net/wan/c101.c b/drivers/net/wan/c101.c
index c92ac9fde083..2c09ec908a3f 100644
--- a/drivers/net/wan/c101.c
+++ b/drivers/net/wan/c101.c
@@ -116,27 +116,33 @@ static inline void openwin(card_t *card, u8 page)
116#include "hd6457x.c" 116#include "hd6457x.c"
117 117
118 118
119static inline void set_carrier(port_t *port)
120{
121 if (!sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD)
122 netif_carrier_on(port_to_dev(port));
123 else
124 netif_carrier_off(port_to_dev(port));
125}
126
127
119static void sca_msci_intr(port_t *port) 128static void sca_msci_intr(port_t *port)
120{ 129{
121 struct net_device *dev = port_to_dev(port); 130 u8 stat = sca_in(MSCI1_OFFSET + ST1, port); /* read MSCI ST1 status */
122 card_t* card = port_to_card(port);
123 u8 stat = sca_in(MSCI1_OFFSET + ST1, card); /* read MSCI ST1 status */
124 131
125 /* Reset MSCI TX underrun status bit */ 132 /* Reset MSCI TX underrun status bit */
126 sca_out(stat & ST1_UDRN, MSCI0_OFFSET + ST1, card); 133 sca_out(stat & ST1_UDRN, MSCI0_OFFSET + ST1, port);
127 134
128 if (stat & ST1_UDRN) { 135 if (stat & ST1_UDRN) {
129 struct net_device_stats *stats = hdlc_stats(dev); 136 struct net_device_stats *stats = hdlc_stats(port_to_dev(port));
130 stats->tx_errors++; /* TX Underrun error detected */ 137 stats->tx_errors++; /* TX Underrun error detected */
131 stats->tx_fifo_errors++; 138 stats->tx_fifo_errors++;
132 } 139 }
133 140
134 /* Reset MSCI CDCD status bit - uses ch#2 DCD input */ 141 /* Reset MSCI CDCD status bit - uses ch#2 DCD input */
135 sca_out(stat & ST1_CDCD, MSCI1_OFFSET + ST1, card); 142 sca_out(stat & ST1_CDCD, MSCI1_OFFSET + ST1, port);
136 143
137 if (stat & ST1_CDCD) 144 if (stat & ST1_CDCD)
138 hdlc_set_carrier(!(sca_in(MSCI1_OFFSET + ST3, card) & ST3_DCD), 145 set_carrier(port);
139 dev);
140} 146}
141 147
142 148
@@ -190,7 +196,7 @@ static int c101_open(struct net_device *dev)
190 sca_out(IE1_UDRN, MSCI0_OFFSET + IE1, port); 196 sca_out(IE1_UDRN, MSCI0_OFFSET + IE1, port);
191 sca_out(IE0_TXINT, MSCI0_OFFSET + IE0, port); 197 sca_out(IE0_TXINT, MSCI0_OFFSET + IE0, port);
192 198
193 hdlc_set_carrier(!(sca_in(MSCI1_OFFSET + ST3, port) & ST3_DCD), dev); 199 set_carrier(port);
194 printk(KERN_DEBUG "0x%X\n", sca_in(MSCI1_OFFSET + ST3, port)); 200 printk(KERN_DEBUG "0x%X\n", sca_in(MSCI1_OFFSET + ST3, port));
195 201
196 /* enable MSCI1 CDCD interrupt */ 202 /* enable MSCI1 CDCD interrupt */
@@ -378,7 +384,7 @@ static int __init c101_run(unsigned long irq, unsigned long winbase)
378 } 384 }
379 385
380 sca_init_sync_port(card); /* Set up C101 memory */ 386 sca_init_sync_port(card); /* Set up C101 memory */
381 hdlc_set_carrier(!(sca_in(MSCI1_OFFSET + ST3, card) & ST3_DCD), dev); 387 set_carrier(card);
382 388
383 printk(KERN_INFO "%s: Moxa C101 on IRQ%u," 389 printk(KERN_INFO "%s: Moxa C101 on IRQ%u,"
384 " using %u TX + %u RX packets rings\n", 390 " using %u TX + %u RX packets rings\n",
diff --git a/drivers/net/wan/hd6457x.c b/drivers/net/wan/hd6457x.c
index d3743321a977..dce2bb317b82 100644
--- a/drivers/net/wan/hd6457x.c
+++ b/drivers/net/wan/hd6457x.c
@@ -168,6 +168,23 @@ static inline u32 buffer_offset(port_t *port, u16 desc, int transmit)
168} 168}
169 169
170 170
171static inline void sca_set_carrier(port_t *port)
172{
173 if (!(sca_in(get_msci(port) + ST3, port_to_card(port)) & ST3_DCD)) {
174#ifdef DEBUG_LINK
175 printk(KERN_DEBUG "%s: sca_set_carrier on\n",
176 port_to_dev(port)->name);
177#endif
178 netif_carrier_on(port_to_dev(port));
179 } else {
180#ifdef DEBUG_LINK
181 printk(KERN_DEBUG "%s: sca_set_carrier off\n",
182 port_to_dev(port)->name);
183#endif
184 netif_carrier_off(port_to_dev(port));
185 }
186}
187
171 188
172static void sca_init_sync_port(port_t *port) 189static void sca_init_sync_port(port_t *port)
173{ 190{
@@ -237,9 +254,7 @@ static void sca_init_sync_port(port_t *port)
237 sca_out(DIR_BOFE, DIR_TX(phy_node(port)), card); 254 sca_out(DIR_BOFE, DIR_TX(phy_node(port)), card);
238 } 255 }
239 } 256 }
240 257 sca_set_carrier(port);
241 hdlc_set_carrier(!(sca_in(get_msci(port) + ST3, card) & ST3_DCD),
242 port_to_dev(port));
243} 258}
244 259
245 260
@@ -262,8 +277,7 @@ static inline void sca_msci_intr(port_t *port)
262 } 277 }
263 278
264 if (stat & ST1_CDCD) 279 if (stat & ST1_CDCD)
265 hdlc_set_carrier(!(sca_in(msci + ST3, card) & ST3_DCD), 280 sca_set_carrier(port);
266 port_to_dev(port));
267} 281}
268#endif 282#endif
269 283
@@ -566,7 +580,7 @@ static void sca_open(struct net_device *dev)
566 - all DMA interrupts 580 - all DMA interrupts
567*/ 581*/
568 582
569 hdlc_set_carrier(!(sca_in(msci + ST3, card) & ST3_DCD), dev); 583 sca_set_carrier(port);
570 584
571#ifdef __HD64570_H 585#ifdef __HD64570_H
572 /* MSCI TX INT and RX INT A IRQ enable */ 586 /* MSCI TX INT and RX INT A IRQ enable */
diff --git a/drivers/net/wan/hdlc_cisco.c b/drivers/net/wan/hdlc_cisco.c
index 1fd04662c4fc..f289daba0c7b 100644
--- a/drivers/net/wan/hdlc_cisco.c
+++ b/drivers/net/wan/hdlc_cisco.c
@@ -192,9 +192,7 @@ 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_dormant_off(dev);
196 netif_carrier_on(dev);
197#endif
198 hdlc->state.cisco.up = 1; 196 hdlc->state.cisco.up = 1;
199 } 197 }
200 } 198 }
@@ -227,9 +225,7 @@ static void cisco_timer(unsigned long arg)
227 hdlc->state.cisco.settings.timeout * HZ)) { 225 hdlc->state.cisco.settings.timeout * HZ)) {
228 hdlc->state.cisco.up = 0; 226 hdlc->state.cisco.up = 0;
229 printk(KERN_INFO "%s: Link down\n", dev->name); 227 printk(KERN_INFO "%s: Link down\n", dev->name);
230#if 0 228 netif_dormant_on(dev);
231 netif_carrier_off(dev);
232#endif
233 } 229 }
234 230
235 cisco_keepalive_send(dev, CISCO_KEEPALIVE_REQ, 231 cisco_keepalive_send(dev, CISCO_KEEPALIVE_REQ,
@@ -265,10 +261,7 @@ static void cisco_stop(struct net_device *dev)
265{ 261{
266 hdlc_device *hdlc = dev_to_hdlc(dev); 262 hdlc_device *hdlc = dev_to_hdlc(dev);
267 del_timer_sync(&hdlc->state.cisco.timer); 263 del_timer_sync(&hdlc->state.cisco.timer);
268#if 0 264 netif_dormant_on(dev);
269 if (netif_carrier_ok(dev))
270 netif_carrier_off(dev);
271#endif
272 hdlc->state.cisco.up = 0; 265 hdlc->state.cisco.up = 0;
273 hdlc->state.cisco.request_sent = 0; 266 hdlc->state.cisco.request_sent = 0;
274} 267}
@@ -328,6 +321,7 @@ int hdlc_cisco_ioctl(struct net_device *dev, struct ifreq *ifr)
328 dev->type = ARPHRD_CISCO; 321 dev->type = ARPHRD_CISCO;
329 dev->flags = IFF_POINTOPOINT | IFF_NOARP; 322 dev->flags = IFF_POINTOPOINT | IFF_NOARP;
330 dev->addr_len = 0; 323 dev->addr_len = 0;
324 netif_dormant_on(dev);
331 return 0; 325 return 0;
332 } 326 }
333 327
diff --git a/drivers/net/wan/hdlc_fr.c b/drivers/net/wan/hdlc_fr.c
index 523afe17564e..7bb737bbdeb9 100644
--- a/drivers/net/wan/hdlc_fr.c
+++ b/drivers/net/wan/hdlc_fr.c
@@ -301,7 +301,7 @@ static int pvc_open(struct net_device *dev)
301 if (pvc->open_count++ == 0) { 301 if (pvc->open_count++ == 0) {
302 hdlc_device *hdlc = dev_to_hdlc(pvc->master); 302 hdlc_device *hdlc = dev_to_hdlc(pvc->master);
303 if (hdlc->state.fr.settings.lmi == LMI_NONE) 303 if (hdlc->state.fr.settings.lmi == LMI_NONE)
304 pvc->state.active = hdlc->carrier; 304 pvc->state.active = netif_carrier_ok(pvc->master);
305 305
306 pvc_carrier(pvc->state.active, pvc); 306 pvc_carrier(pvc->state.active, pvc);
307 hdlc->state.fr.dce_changed = 1; 307 hdlc->state.fr.dce_changed = 1;
@@ -545,11 +545,7 @@ 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 netif_dormant_off(dev);
549 if (!netif_carrier_ok(dev))
550 netif_carrier_on(dev);
551#endif
552
553 hdlc->state.fr.n391cnt = 0; /* Request full status */ 549 hdlc->state.fr.n391cnt = 0; /* Request full status */
554 hdlc->state.fr.dce_changed = 1; 550 hdlc->state.fr.dce_changed = 1;
555 551
@@ -562,11 +558,7 @@ static void fr_set_link_state(int reliable, struct net_device *dev)
562 } 558 }
563 } 559 }
564 } else { 560 } else {
565#if 0 561 netif_dormant_on(dev);
566 if (netif_carrier_ok(dev))
567 netif_carrier_off(dev);
568#endif
569
570 while (pvc) { /* Deactivate all PVCs */ 562 while (pvc) { /* Deactivate all PVCs */
571 pvc_carrier(0, pvc); 563 pvc_carrier(0, pvc);
572 pvc->state.exist = pvc->state.active = 0; 564 pvc->state.exist = pvc->state.active = 0;
diff --git a/drivers/net/wan/hdlc_generic.c b/drivers/net/wan/hdlc_generic.c
index b7da55140fbd..04ca1f7b6424 100644
--- a/drivers/net/wan/hdlc_generic.c
+++ b/drivers/net/wan/hdlc_generic.c
@@ -34,10 +34,11 @@
34#include <linux/inetdevice.h> 34#include <linux/inetdevice.h>
35#include <linux/lapb.h> 35#include <linux/lapb.h>
36#include <linux/rtnetlink.h> 36#include <linux/rtnetlink.h>
37#include <linux/notifier.h>
37#include <linux/hdlc.h> 38#include <linux/hdlc.h>
38 39
39 40
40static const char* version = "HDLC support module revision 1.18"; 41static const char* version = "HDLC support module revision 1.19";
41 42
42#undef DEBUG_LINK 43#undef DEBUG_LINK
43 44
@@ -73,57 +74,51 @@ static int hdlc_rcv(struct sk_buff *skb, struct net_device *dev,
73 74
74 75
75 76
76static void __hdlc_set_carrier_on(struct net_device *dev) 77static inline void hdlc_proto_start(struct net_device *dev)
77{ 78{
78 hdlc_device *hdlc = dev_to_hdlc(dev); 79 hdlc_device *hdlc = dev_to_hdlc(dev);
79 if (hdlc->proto.start) 80 if (hdlc->proto.start)
80 return hdlc->proto.start(dev); 81 return hdlc->proto.start(dev);
81#if 0
82#ifdef DEBUG_LINK
83 if (netif_carrier_ok(dev))
84 printk(KERN_ERR "hdlc_set_carrier_on(): already on\n");
85#endif
86 netif_carrier_on(dev);
87#endif
88} 82}
89 83
90 84
91 85
92static void __hdlc_set_carrier_off(struct net_device *dev) 86static inline void hdlc_proto_stop(struct net_device *dev)
93{ 87{
94 hdlc_device *hdlc = dev_to_hdlc(dev); 88 hdlc_device *hdlc = dev_to_hdlc(dev);
95 if (hdlc->proto.stop) 89 if (hdlc->proto.stop)
96 return hdlc->proto.stop(dev); 90 return hdlc->proto.stop(dev);
97
98#if 0
99#ifdef DEBUG_LINK
100 if (!netif_carrier_ok(dev))
101 printk(KERN_ERR "hdlc_set_carrier_off(): already off\n");
102#endif
103 netif_carrier_off(dev);
104#endif
105} 91}
106 92
107 93
108 94
109void hdlc_set_carrier(int on, struct net_device *dev) 95static int hdlc_device_event(struct notifier_block *this, unsigned long event,
96 void *ptr)
110{ 97{
111 hdlc_device *hdlc = dev_to_hdlc(dev); 98 struct net_device *dev = ptr;
99 hdlc_device *hdlc;
112 unsigned long flags; 100 unsigned long flags;
113 on = on ? 1 : 0; 101 int on;
102
103 if (dev->get_stats != hdlc_get_stats)
104 return NOTIFY_DONE; /* not an HDLC device */
105
106 if (event != NETDEV_CHANGE)
107 return NOTIFY_DONE; /* Only interrested in carrier changes */
108
109 on = netif_carrier_ok(dev);
114 110
115#ifdef DEBUG_LINK 111#ifdef DEBUG_LINK
116 printk(KERN_DEBUG "hdlc_set_carrier %i\n", on); 112 printk(KERN_DEBUG "%s: hdlc_device_event NETDEV_CHANGE, carrier %i\n",
113 dev->name, on);
117#endif 114#endif
118 115
116 hdlc = dev_to_hdlc(dev);
119 spin_lock_irqsave(&hdlc->state_lock, flags); 117 spin_lock_irqsave(&hdlc->state_lock, flags);
120 118
121 if (hdlc->carrier == on) 119 if (hdlc->carrier == on)
122 goto carrier_exit; /* no change in DCD line level */ 120 goto carrier_exit; /* no change in DCD line level */
123 121
124#ifdef DEBUG_LINK
125 printk(KERN_INFO "%s: carrier %s\n", dev->name, on ? "ON" : "off");
126#endif
127 hdlc->carrier = on; 122 hdlc->carrier = on;
128 123
129 if (!hdlc->open) 124 if (!hdlc->open)
@@ -131,14 +126,15 @@ void hdlc_set_carrier(int on, struct net_device *dev)
131 126
132 if (hdlc->carrier) { 127 if (hdlc->carrier) {
133 printk(KERN_INFO "%s: Carrier detected\n", dev->name); 128 printk(KERN_INFO "%s: Carrier detected\n", dev->name);
134 __hdlc_set_carrier_on(dev); 129 hdlc_proto_start(dev);
135 } else { 130 } else {
136 printk(KERN_INFO "%s: Carrier lost\n", dev->name); 131 printk(KERN_INFO "%s: Carrier lost\n", dev->name);
137 __hdlc_set_carrier_off(dev); 132 hdlc_proto_stop(dev);
138 } 133 }
139 134
140carrier_exit: 135carrier_exit:
141 spin_unlock_irqrestore(&hdlc->state_lock, flags); 136 spin_unlock_irqrestore(&hdlc->state_lock, flags);
137 return NOTIFY_DONE;
142} 138}
143 139
144 140
@@ -165,7 +161,7 @@ int hdlc_open(struct net_device *dev)
165 161
166 if (hdlc->carrier) { 162 if (hdlc->carrier) {
167 printk(KERN_INFO "%s: Carrier detected\n", dev->name); 163 printk(KERN_INFO "%s: Carrier detected\n", dev->name);
168 __hdlc_set_carrier_on(dev); 164 hdlc_proto_start(dev);
169 } else 165 } else
170 printk(KERN_INFO "%s: No carrier\n", dev->name); 166 printk(KERN_INFO "%s: No carrier\n", dev->name);
171 167
@@ -190,7 +186,7 @@ void hdlc_close(struct net_device *dev)
190 186
191 hdlc->open = 0; 187 hdlc->open = 0;
192 if (hdlc->carrier) 188 if (hdlc->carrier)
193 __hdlc_set_carrier_off(dev); 189 hdlc_proto_stop(dev);
194 190
195 spin_unlock_irq(&hdlc->state_lock); 191 spin_unlock_irq(&hdlc->state_lock);
196 192
@@ -303,7 +299,6 @@ MODULE_LICENSE("GPL v2");
303 299
304EXPORT_SYMBOL(hdlc_open); 300EXPORT_SYMBOL(hdlc_open);
305EXPORT_SYMBOL(hdlc_close); 301EXPORT_SYMBOL(hdlc_close);
306EXPORT_SYMBOL(hdlc_set_carrier);
307EXPORT_SYMBOL(hdlc_ioctl); 302EXPORT_SYMBOL(hdlc_ioctl);
308EXPORT_SYMBOL(hdlc_setup); 303EXPORT_SYMBOL(hdlc_setup);
309EXPORT_SYMBOL(alloc_hdlcdev); 304EXPORT_SYMBOL(alloc_hdlcdev);
@@ -315,9 +310,18 @@ static struct packet_type hdlc_packet_type = {
315}; 310};
316 311
317 312
313static struct notifier_block hdlc_notifier = {
314 .notifier_call = hdlc_device_event,
315};
316
317
318static int __init hdlc_module_init(void) 318static int __init hdlc_module_init(void)
319{ 319{
320 int result;
321
320 printk(KERN_INFO "%s\n", version); 322 printk(KERN_INFO "%s\n", version);
323 if ((result = register_netdevice_notifier(&hdlc_notifier)) != 0)
324 return result;
321 dev_add_pack(&hdlc_packet_type); 325 dev_add_pack(&hdlc_packet_type);
322 return 0; 326 return 0;
323} 327}
@@ -327,6 +331,7 @@ static int __init hdlc_module_init(void)
327static void __exit hdlc_module_exit(void) 331static void __exit hdlc_module_exit(void)
328{ 332{
329 dev_remove_pack(&hdlc_packet_type); 333 dev_remove_pack(&hdlc_packet_type);
334 unregister_netdevice_notifier(&hdlc_notifier);
330} 335}
331 336
332 337
diff --git a/drivers/net/wan/wanxl.c b/drivers/net/wan/wanxl.c
index d564224cdca9..b2031dfc4bb1 100644
--- a/drivers/net/wan/wanxl.c
+++ b/drivers/net/wan/wanxl.c
@@ -149,7 +149,10 @@ static inline void wanxl_cable_intr(port_t *port)
149 printk(KERN_INFO "%s: %s%s module, %s cable%s%s\n", 149 printk(KERN_INFO "%s: %s%s module, %s cable%s%s\n",
150 port->dev->name, pm, dte, cable, dsr, dcd); 150 port->dev->name, pm, dte, cable, dsr, dcd);
151 151
152 hdlc_set_carrier(value & STATUS_CABLE_DCD, port->dev); 152 if (value & STATUS_CABLE_DCD)
153 netif_carrier_on(port->dev);
154 else
155 netif_carrier_off(port->dev);
153} 156}
154 157
155 158
diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
index 36bc7c415af7..a83c1f5735d6 100644
--- a/drivers/pci/msi.c
+++ b/drivers/pci/msi.c
@@ -47,13 +47,13 @@ msi_register(struct msi_ops *ops)
47 47
48static void msi_cache_ctor(void *p, kmem_cache_t *cache, unsigned long flags) 48static void msi_cache_ctor(void *p, kmem_cache_t *cache, unsigned long flags)
49{ 49{
50 memset(p, 0, NR_IRQS * sizeof(struct msi_desc)); 50 memset(p, 0, sizeof(struct msi_desc));
51} 51}
52 52
53static int msi_cache_init(void) 53static int msi_cache_init(void)
54{ 54{
55 msi_cachep = kmem_cache_create("msi_cache", 55 msi_cachep = kmem_cache_create("msi_cache",
56 NR_IRQS * sizeof(struct msi_desc), 56 sizeof(struct msi_desc),
57 0, SLAB_HWCACHE_ALIGN, msi_cache_ctor, NULL); 57 0, SLAB_HWCACHE_ALIGN, msi_cache_ctor, NULL);
58 if (!msi_cachep) 58 if (!msi_cachep)
59 return -ENOMEM; 59 return -ENOMEM;
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index cf57d7de3765..9f79dd6d51ab 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -19,6 +19,7 @@
19#include <asm/dma.h> /* isa_dma_bridge_buggy */ 19#include <asm/dma.h> /* isa_dma_bridge_buggy */
20#include "pci.h" 20#include "pci.h"
21 21
22unsigned int pci_pm_d3_delay = 10;
22 23
23/** 24/**
24 * pci_bus_max_busnr - returns maximum PCI bus number of given bus' children 25 * pci_bus_max_busnr - returns maximum PCI bus number of given bus' children
@@ -313,6 +314,14 @@ pci_set_power_state(struct pci_dev *dev, pci_power_t state)
313 } else if (dev->current_state == state) 314 } else if (dev->current_state == state)
314 return 0; /* we're already there */ 315 return 0; /* we're already there */
315 316
317 /*
318 * If the device or the parent bridge can't support PCI PM, ignore
319 * the request if we're doing anything besides putting it into D0
320 * (which would only happen on boot).
321 */
322 if ((state == PCI_D1 || state == PCI_D2) && pci_no_d1d2(dev))
323 return 0;
324
316 /* find PCI PM capability in list */ 325 /* find PCI PM capability in list */
317 pm = pci_find_capability(dev, PCI_CAP_ID_PM); 326 pm = pci_find_capability(dev, PCI_CAP_ID_PM);
318 327
@@ -363,7 +372,7 @@ pci_set_power_state(struct pci_dev *dev, pci_power_t state)
363 /* Mandatory power management transition delays */ 372 /* Mandatory power management transition delays */
364 /* see PCI PM 1.1 5.6.1 table 18 */ 373 /* see PCI PM 1.1 5.6.1 table 18 */
365 if (state == PCI_D3hot || dev->current_state == PCI_D3hot) 374 if (state == PCI_D3hot || dev->current_state == PCI_D3hot)
366 msleep(10); 375 msleep(pci_pm_d3_delay);
367 else if (state == PCI_D2 || dev->current_state == PCI_D2) 376 else if (state == PCI_D2 || dev->current_state == PCI_D2)
368 udelay(200); 377 udelay(200);
369 378
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
index 9cc842b666eb..08d58fc78ee1 100644
--- a/drivers/pci/pci.h
+++ b/drivers/pci/pci.h
@@ -47,7 +47,7 @@ extern int pci_msi_quirk;
47#else 47#else
48#define pci_msi_quirk 0 48#define pci_msi_quirk 0
49#endif 49#endif
50 50extern unsigned int pci_pm_d3_delay;
51#ifdef CONFIG_PCI_MSI 51#ifdef CONFIG_PCI_MSI
52void disable_msi_mode(struct pci_dev *dev, int pos, int type); 52void disable_msi_mode(struct pci_dev *dev, int pos, int type);
53void pci_no_msi(void); 53void pci_no_msi(void);
@@ -66,7 +66,15 @@ static inline int pci_save_msix_state(struct pci_dev *dev) { return 0; }
66static inline void pci_restore_msi_state(struct pci_dev *dev) {} 66static inline void pci_restore_msi_state(struct pci_dev *dev) {}
67static inline void pci_restore_msix_state(struct pci_dev *dev) {} 67static inline void pci_restore_msix_state(struct pci_dev *dev) {}
68#endif 68#endif
69static inline int pci_no_d1d2(struct pci_dev *dev)
70{
71 unsigned int parent_dstates = 0;
69 72
73 if (dev->bus->self)
74 parent_dstates = dev->bus->self->no_d1d2;
75 return (dev->no_d1d2 || parent_dstates);
76
77}
70extern int pcie_mch_quirk; 78extern int pcie_mch_quirk;
71extern struct device_attribute pci_dev_attrs[]; 79extern struct device_attribute pci_dev_attrs[];
72extern struct class_device_attribute class_device_attr_cpuaffinity; 80extern struct class_device_attribute class_device_attr_cpuaffinity;
diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
index d1d7333bb71b..e3c78c39b7e4 100644
--- a/drivers/pci/quirks.c
+++ b/drivers/pci/quirks.c
@@ -400,6 +400,7 @@ static void __devinit quirk_piix4_acpi(struct pci_dev *dev)
400 piix4_io_quirk(dev, "PIIX4 devres J", 0x7c, 1 << 20); 400 piix4_io_quirk(dev, "PIIX4 devres J", 0x7c, 1 << 20);
401} 401}
402DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi ); 402DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB_3, quirk_piix4_acpi );
403DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82443MX_3, quirk_piix4_acpi );
403 404
404/* 405/*
405 * ICH4, ICH4-M, ICH5, ICH5-M ACPI: Three IO regions pointed to by longwords at 406 * ICH4, ICH4-M, ICH5, ICH5-M ACPI: Three IO regions pointed to by longwords at
@@ -682,6 +683,33 @@ static void __devinit quirk_vt82c598_id(struct pci_dev *dev)
682} 683}
683DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt82c598_id ); 684DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C597_0, quirk_vt82c598_id );
684 685
686#ifdef CONFIG_ACPI_SLEEP
687
688/*
689 * Some VIA systems boot with the abnormal status flag set. This can cause
690 * the BIOS to re-POST the system on resume rather than passing control
691 * back to the OS. Clear the flag on boot
692 */
693static void __devinit quirk_via_abnormal_poweroff(struct pci_dev *dev)
694{
695 u32 reg;
696
697 acpi_hw_register_read(ACPI_MTX_DO_NOT_LOCK, ACPI_REGISTER_PM1_STATUS,
698 &reg);
699
700 if (reg & 0x800) {
701 printk("Clearing abnormal poweroff flag\n");
702 acpi_hw_register_write(ACPI_MTX_DO_NOT_LOCK,
703 ACPI_REGISTER_PM1_STATUS,
704 (u16)0x800);
705 }
706}
707
708DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8235, quirk_via_abnormal_poweroff);
709DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_8237, quirk_via_abnormal_poweroff);
710
711#endif
712
685/* 713/*
686 * CardBus controllers have a legacy base address that enables them 714 * CardBus controllers have a legacy base address that enables them
687 * to respond as i82365 pcmcia controllers. We don't want them to 715 * to respond as i82365 pcmcia controllers. We don't want them to
@@ -1174,6 +1202,55 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_962, quirk_sis_96x_
1174DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963, quirk_sis_96x_smbus ); 1202DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_963, quirk_sis_96x_smbus );
1175DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC, quirk_sis_96x_smbus ); 1203DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_SI, PCI_DEVICE_ID_SI_LPC, quirk_sis_96x_smbus );
1176 1204
1205#if defined(CONFIG_SCSI_SATA) || defined(CONFIG_SCSI_SATA_MODULE)
1206
1207/*
1208 * If we are using libata we can drive this chip properly but must
1209 * do this early on to make the additional device appear during
1210 * the PCI scanning.
1211 */
1212
1213static void __devinit quirk_jmicron_dualfn(struct pci_dev *pdev)
1214{
1215 u32 conf;
1216 u8 hdr;
1217
1218 /* Only poke fn 0 */
1219 if (PCI_FUNC(pdev->devfn))
1220 return;
1221
1222 switch(pdev->device) {
1223 case PCI_DEVICE_ID_JMICRON_JMB365:
1224 case PCI_DEVICE_ID_JMICRON_JMB366:
1225 /* Redirect IDE second PATA port to the right spot */
1226 pci_read_config_dword(pdev, 0x80, &conf);
1227 conf |= (1 << 24);
1228 /* Fall through */
1229 pci_write_config_dword(pdev, 0x80, conf);
1230 case PCI_DEVICE_ID_JMICRON_JMB361:
1231 case PCI_DEVICE_ID_JMICRON_JMB363:
1232 pci_read_config_dword(pdev, 0x40, &conf);
1233 /* Enable dual function mode, AHCI on fn 0, IDE fn1 */
1234 /* Set the class codes correctly and then direct IDE 0 */
1235 conf &= ~0x000F0200; /* Clear bit 9 and 16-19 */
1236 conf |= 0x00C20002; /* Set bit 1, 17, 22, 23 */
1237 pci_write_config_dword(pdev, 0x40, conf);
1238
1239 /* Reconfigure so that the PCI scanner discovers the
1240 device is now multifunction */
1241
1242 pci_read_config_byte(pdev, PCI_HEADER_TYPE, &hdr);
1243 pdev->hdr_type = hdr & 0x7f;
1244 pdev->multifunction = !!(hdr & 0x80);
1245
1246 break;
1247 }
1248}
1249
1250DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_JMICRON, PCI_ANY_ID, quirk_jmicron_dualfn);
1251
1252#endif
1253
1177#ifdef CONFIG_X86_IO_APIC 1254#ifdef CONFIG_X86_IO_APIC
1178static void __init quirk_alder_ioapic(struct pci_dev *pdev) 1255static void __init quirk_alder_ioapic(struct pci_dev *pdev)
1179{ 1256{
@@ -1341,6 +1418,37 @@ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_0, quirk_pc
1341DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_pcie_pxh); 1418DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXH_1, quirk_pcie_pxh);
1342DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_pcie_pxh); 1419DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_PXHV, quirk_pcie_pxh);
1343 1420
1421/*
1422 * Some Intel PCI Express chipsets have trouble with downstream
1423 * device power management.
1424 */
1425static void quirk_intel_pcie_pm(struct pci_dev * dev)
1426{
1427 pci_pm_d3_delay = 120;
1428 dev->no_d1d2 = 1;
1429}
1430
1431DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e2, quirk_intel_pcie_pm);
1432DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e3, quirk_intel_pcie_pm);
1433DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e4, quirk_intel_pcie_pm);
1434DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e5, quirk_intel_pcie_pm);
1435DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e6, quirk_intel_pcie_pm);
1436DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25e7, quirk_intel_pcie_pm);
1437DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25f7, quirk_intel_pcie_pm);
1438DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25f8, quirk_intel_pcie_pm);
1439DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25f9, quirk_intel_pcie_pm);
1440DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x25fa, quirk_intel_pcie_pm);
1441DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2601, quirk_intel_pcie_pm);
1442DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2602, quirk_intel_pcie_pm);
1443DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2603, quirk_intel_pcie_pm);
1444DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2604, quirk_intel_pcie_pm);
1445DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2605, quirk_intel_pcie_pm);
1446DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2606, quirk_intel_pcie_pm);
1447DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2607, quirk_intel_pcie_pm);
1448DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2608, quirk_intel_pcie_pm);
1449DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x2609, quirk_intel_pcie_pm);
1450DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260a, quirk_intel_pcie_pm);
1451DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x260b, quirk_intel_pcie_pm);
1344 1452
1345/* 1453/*
1346 * Fixup the cardbus bridges on the IBM Dock II docking station 1454 * Fixup the cardbus bridges on the IBM Dock II docking station
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index f5b9f187a930..7ff1d88094b6 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -121,6 +121,16 @@ config RTC_DRV_DS1553
121 This driver can also be built as a module. If so, the module 121 This driver can also be built as a module. If so, the module
122 will be called rtc-ds1553. 122 will be called rtc-ds1553.
123 123
124config RTC_DRV_ISL1208
125 tristate "Intersil 1208"
126 depends on RTC_CLASS && I2C
127 help
128 If you say yes here you get support for the
129 Intersil 1208 RTC chip.
130
131 This driver can also be built as a module. If so, the module
132 will be called rtc-isl1208.
133
124config RTC_DRV_DS1672 134config RTC_DRV_DS1672
125 tristate "Dallas/Maxim DS1672" 135 tristate "Dallas/Maxim DS1672"
126 depends on RTC_CLASS && I2C 136 depends on RTC_CLASS && I2C
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 54220714ff49..bbcfb09d81d9 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -12,6 +12,7 @@ obj-$(CONFIG_RTC_INTF_PROC) += rtc-proc.o
12obj-$(CONFIG_RTC_INTF_DEV) += rtc-dev.o 12obj-$(CONFIG_RTC_INTF_DEV) += rtc-dev.o
13 13
14obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o 14obj-$(CONFIG_RTC_DRV_X1205) += rtc-x1205.o
15obj-$(CONFIG_RTC_DRV_ISL1208) += rtc-isl1208.o
15obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o 16obj-$(CONFIG_RTC_DRV_TEST) += rtc-test.o
16obj-$(CONFIG_RTC_DRV_DS1307) += rtc-ds1307.o 17obj-$(CONFIG_RTC_DRV_DS1307) += rtc-ds1307.o
17obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o 18obj-$(CONFIG_RTC_DRV_DS1672) += rtc-ds1672.o
diff --git a/drivers/rtc/rtc-isl1208.c b/drivers/rtc/rtc-isl1208.c
new file mode 100644
index 000000000000..f324d0a635d4
--- /dev/null
+++ b/drivers/rtc/rtc-isl1208.c
@@ -0,0 +1,591 @@
1/*
2 * Intersil ISL1208 rtc class driver
3 *
4 * Copyright 2005,2006 Hebert Valerio Riedel <hvr@gnu.org>
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2 of the License, or (at your
9 * option) any later version.
10 *
11 */
12
13#include <linux/module.h>
14#include <linux/i2c.h>
15#include <linux/bcd.h>
16#include <linux/rtc.h>
17
18#define DRV_NAME "isl1208"
19#define DRV_VERSION "0.2"
20
21/* Register map */
22/* rtc section */
23#define ISL1208_REG_SC 0x00
24#define ISL1208_REG_MN 0x01
25#define ISL1208_REG_HR 0x02
26#define ISL1208_REG_HR_MIL (1<<7) /* 24h/12h mode */
27#define ISL1208_REG_HR_PM (1<<5) /* PM/AM bit in 12h mode */
28#define ISL1208_REG_DT 0x03
29#define ISL1208_REG_MO 0x04
30#define ISL1208_REG_YR 0x05
31#define ISL1208_REG_DW 0x06
32#define ISL1208_RTC_SECTION_LEN 7
33
34/* control/status section */
35#define ISL1208_REG_SR 0x07
36#define ISL1208_REG_SR_ARST (1<<7) /* auto reset */
37#define ISL1208_REG_SR_XTOSCB (1<<6) /* crystal oscillator */
38#define ISL1208_REG_SR_WRTC (1<<4) /* write rtc */
39#define ISL1208_REG_SR_ALM (1<<2) /* alarm */
40#define ISL1208_REG_SR_BAT (1<<1) /* battery */
41#define ISL1208_REG_SR_RTCF (1<<0) /* rtc fail */
42#define ISL1208_REG_INT 0x08
43#define ISL1208_REG_09 0x09 /* reserved */
44#define ISL1208_REG_ATR 0x0a
45#define ISL1208_REG_DTR 0x0b
46
47/* alarm section */
48#define ISL1208_REG_SCA 0x0c
49#define ISL1208_REG_MNA 0x0d
50#define ISL1208_REG_HRA 0x0e
51#define ISL1208_REG_DTA 0x0f
52#define ISL1208_REG_MOA 0x10
53#define ISL1208_REG_DWA 0x11
54#define ISL1208_ALARM_SECTION_LEN 6
55
56/* user section */
57#define ISL1208_REG_USR1 0x12
58#define ISL1208_REG_USR2 0x13
59#define ISL1208_USR_SECTION_LEN 2
60
61/* i2c configuration */
62#define ISL1208_I2C_ADDR 0xde
63
64static unsigned short normal_i2c[] = {
65 ISL1208_I2C_ADDR>>1, I2C_CLIENT_END
66};
67I2C_CLIENT_INSMOD; /* defines addr_data */
68
69static int isl1208_attach_adapter(struct i2c_adapter *adapter);
70static int isl1208_detach_client(struct i2c_client *client);
71
72static struct i2c_driver isl1208_driver = {
73 .driver = {
74 .name = DRV_NAME,
75 },
76 .id = I2C_DRIVERID_ISL1208,
77 .attach_adapter = &isl1208_attach_adapter,
78 .detach_client = &isl1208_detach_client,
79};
80
81/* block read */
82static int
83isl1208_i2c_read_regs(struct i2c_client *client, u8 reg, u8 buf[],
84 unsigned len)
85{
86 u8 reg_addr[1] = { reg };
87 struct i2c_msg msgs[2] = {
88 { client->addr, client->flags, sizeof(reg_addr), reg_addr },
89 { client->addr, client->flags | I2C_M_RD, len, buf }
90 };
91 int ret;
92
93 BUG_ON(len == 0);
94 BUG_ON(reg > ISL1208_REG_USR2);
95 BUG_ON(reg + len > ISL1208_REG_USR2 + 1);
96
97 ret = i2c_transfer(client->adapter, msgs, 2);
98 if (ret > 0)
99 ret = 0;
100 return ret;
101}
102
103/* block write */
104static int
105isl1208_i2c_set_regs(struct i2c_client *client, u8 reg, u8 const buf[],
106 unsigned len)
107{
108 u8 i2c_buf[ISL1208_REG_USR2 + 2];
109 struct i2c_msg msgs[1] = {
110 { client->addr, client->flags, len + 1, i2c_buf }
111 };
112 int ret;
113
114 BUG_ON(len == 0);
115 BUG_ON(reg > ISL1208_REG_USR2);
116 BUG_ON(reg + len > ISL1208_REG_USR2 + 1);
117
118 i2c_buf[0] = reg;
119 memcpy(&i2c_buf[1], &buf[0], len);
120
121 ret = i2c_transfer(client->adapter, msgs, 1);
122 if (ret > 0)
123 ret = 0;
124 return ret;
125}
126
127/* simple check to see wether we have a isl1208 */
128static int isl1208_i2c_validate_client(struct i2c_client *client)
129{
130 u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
131 u8 zero_mask[ISL1208_RTC_SECTION_LEN] = {
132 0x80, 0x80, 0x40, 0xc0, 0xe0, 0x00, 0xf8
133 };
134 int i;
135 int ret;
136
137 ret = isl1208_i2c_read_regs(client, 0, regs, ISL1208_RTC_SECTION_LEN);
138 if (ret < 0)
139 return ret;
140
141 for (i = 0; i < ISL1208_RTC_SECTION_LEN; ++i) {
142 if (regs[i] & zero_mask[i]) /* check if bits are cleared */
143 return -ENODEV;
144 }
145
146 return 0;
147}
148
149static int isl1208_i2c_get_sr(struct i2c_client *client)
150{
151 return i2c_smbus_read_byte_data(client, ISL1208_REG_SR) == -1 ? -EIO:0;
152}
153
154static int isl1208_i2c_get_atr(struct i2c_client *client)
155{
156 int atr = i2c_smbus_read_byte_data(client, ISL1208_REG_ATR);
157
158 if (atr < 0)
159 return -EIO;
160
161 /* The 6bit value in the ATR register controls the load
162 * capacitance C_load * in steps of 0.25pF
163 *
164 * bit (1<<5) of the ATR register is inverted
165 *
166 * C_load(ATR=0x20) = 4.50pF
167 * C_load(ATR=0x00) = 12.50pF
168 * C_load(ATR=0x1f) = 20.25pF
169 *
170 */
171
172 atr &= 0x3f; /* mask out lsb */
173 atr ^= 1<<5; /* invert 6th bit */
174 atr += 2*9; /* add offset of 4.5pF; unit[atr] = 0.25pF */
175
176 return atr;
177}
178
179static int isl1208_i2c_get_dtr(struct i2c_client *client)
180{
181 int dtr = i2c_smbus_read_byte_data(client, ISL1208_REG_DTR);
182
183 if (dtr < 0)
184 return -EIO;
185
186 /* dtr encodes adjustments of {-60,-40,-20,0,20,40,60} ppm */
187 dtr = ((dtr & 0x3) * 20) * (dtr & (1<<2) ? -1 : 1);
188
189 return dtr;
190}
191
192static int isl1208_i2c_get_usr(struct i2c_client *client)
193{
194 u8 buf[ISL1208_USR_SECTION_LEN] = { 0, };
195 int ret;
196
197 ret = isl1208_i2c_read_regs (client, ISL1208_REG_USR1, buf,
198 ISL1208_USR_SECTION_LEN);
199 if (ret < 0)
200 return ret;
201
202 return (buf[1] << 8) | buf[0];
203}
204
205static int isl1208_i2c_set_usr(struct i2c_client *client, u16 usr)
206{
207 u8 buf[ISL1208_USR_SECTION_LEN];
208
209 buf[0] = usr & 0xff;
210 buf[1] = (usr >> 8) & 0xff;
211
212 return isl1208_i2c_set_regs (client, ISL1208_REG_USR1, buf,
213 ISL1208_USR_SECTION_LEN);
214}
215
216static int isl1208_rtc_proc(struct device *dev, struct seq_file *seq)
217{
218 struct i2c_client *const client = to_i2c_client(dev);
219 int sr, dtr, atr, usr;
220
221 sr = isl1208_i2c_get_sr(client);
222 if (sr < 0) {
223 dev_err(&client->dev, "%s: reading SR failed\n", __func__);
224 return sr;
225 }
226
227 seq_printf(seq, "status_reg\t:%s%s%s%s%s%s (0x%.2x)\n",
228 (sr & ISL1208_REG_SR_RTCF) ? " RTCF" : "",
229 (sr & ISL1208_REG_SR_BAT) ? " BAT" : "",
230 (sr & ISL1208_REG_SR_ALM) ? " ALM" : "",
231 (sr & ISL1208_REG_SR_WRTC) ? " WRTC" : "",
232 (sr & ISL1208_REG_SR_XTOSCB) ? " XTOSCB" : "",
233 (sr & ISL1208_REG_SR_ARST) ? " ARST" : "",
234 sr);
235
236 seq_printf(seq, "batt_status\t: %s\n",
237 (sr & ISL1208_REG_SR_RTCF) ? "bad" : "okay");
238
239 dtr = isl1208_i2c_get_dtr(client);
240 if (dtr >= 0 -1)
241 seq_printf(seq, "digital_trim\t: %d ppm\n", dtr);
242
243 atr = isl1208_i2c_get_atr(client);
244 if (atr >= 0)
245 seq_printf(seq, "analog_trim\t: %d.%.2d pF\n",
246 atr>>2, (atr&0x3)*25);
247
248 usr = isl1208_i2c_get_usr(client);
249 if (usr >= 0)
250 seq_printf(seq, "user_data\t: 0x%.4x\n", usr);
251
252 return 0;
253}
254
255
256static int isl1208_i2c_read_time(struct i2c_client *client,
257 struct rtc_time *tm)
258{
259 int sr;
260 u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
261
262 sr = isl1208_i2c_get_sr(client);
263 if (sr < 0) {
264 dev_err(&client->dev, "%s: reading SR failed\n", __func__);
265 return -EIO;
266 }
267
268 sr = isl1208_i2c_read_regs(client, 0, regs, ISL1208_RTC_SECTION_LEN);
269 if (sr < 0) {
270 dev_err(&client->dev, "%s: reading RTC section failed\n",
271 __func__);
272 return sr;
273 }
274
275 tm->tm_sec = BCD2BIN(regs[ISL1208_REG_SC]);
276 tm->tm_min = BCD2BIN(regs[ISL1208_REG_MN]);
277 { /* HR field has a more complex interpretation */
278 const u8 _hr = regs[ISL1208_REG_HR];
279 if (_hr & ISL1208_REG_HR_MIL) /* 24h format */
280 tm->tm_hour = BCD2BIN(_hr & 0x3f);
281 else { // 12h format
282 tm->tm_hour = BCD2BIN(_hr & 0x1f);
283 if (_hr & ISL1208_REG_HR_PM) /* PM flag set */
284 tm->tm_hour += 12;
285 }
286 }
287
288 tm->tm_mday = BCD2BIN(regs[ISL1208_REG_DT]);
289 tm->tm_mon = BCD2BIN(regs[ISL1208_REG_MO]) - 1; /* rtc starts at 1 */
290 tm->tm_year = BCD2BIN(regs[ISL1208_REG_YR]) + 100;
291 tm->tm_wday = BCD2BIN(regs[ISL1208_REG_DW]);
292
293 return 0;
294}
295
296static int isl1208_i2c_read_alarm(struct i2c_client *client,
297 struct rtc_wkalrm *alarm)
298{
299 struct rtc_time *const tm = &alarm->time;
300 u8 regs[ISL1208_ALARM_SECTION_LEN] = { 0, };
301 int sr;
302
303 sr = isl1208_i2c_get_sr(client);
304 if (sr < 0) {
305 dev_err(&client->dev, "%s: reading SR failed\n", __func__);
306 return sr;
307 }
308
309 sr = isl1208_i2c_read_regs(client, ISL1208_REG_SCA, regs,
310 ISL1208_ALARM_SECTION_LEN);
311 if (sr < 0) {
312 dev_err(&client->dev, "%s: reading alarm section failed\n",
313 __func__);
314 return sr;
315 }
316
317 /* MSB of each alarm register is an enable bit */
318 tm->tm_sec = BCD2BIN(regs[ISL1208_REG_SCA-ISL1208_REG_SCA] & 0x7f);
319 tm->tm_min = BCD2BIN(regs[ISL1208_REG_MNA-ISL1208_REG_SCA] & 0x7f);
320 tm->tm_hour = BCD2BIN(regs[ISL1208_REG_HRA-ISL1208_REG_SCA] & 0x3f);
321 tm->tm_mday = BCD2BIN(regs[ISL1208_REG_DTA-ISL1208_REG_SCA] & 0x3f);
322 tm->tm_mon = BCD2BIN(regs[ISL1208_REG_MOA-ISL1208_REG_SCA] & 0x1f)-1;
323 tm->tm_wday = BCD2BIN(regs[ISL1208_REG_DWA-ISL1208_REG_SCA] & 0x03);
324
325 return 0;
326}
327
328static int isl1208_rtc_read_time(struct device *dev, struct rtc_time *tm)
329{
330 return isl1208_i2c_read_time(to_i2c_client(dev), tm);
331}
332
333static int isl1208_i2c_set_time(struct i2c_client *client,
334 struct rtc_time const *tm)
335{
336 int sr;
337 u8 regs[ISL1208_RTC_SECTION_LEN] = { 0, };
338
339 regs[ISL1208_REG_SC] = BIN2BCD(tm->tm_sec);
340 regs[ISL1208_REG_MN] = BIN2BCD(tm->tm_min);
341 regs[ISL1208_REG_HR] = BIN2BCD(tm->tm_hour) | ISL1208_REG_HR_MIL;
342
343 regs[ISL1208_REG_DT] = BIN2BCD(tm->tm_mday);
344 regs[ISL1208_REG_MO] = BIN2BCD(tm->tm_mon + 1);
345 regs[ISL1208_REG_YR] = BIN2BCD(tm->tm_year - 100);
346
347 regs[ISL1208_REG_DW] = BIN2BCD(tm->tm_wday & 7);
348
349 sr = isl1208_i2c_get_sr(client);
350 if (sr < 0) {
351 dev_err(&client->dev, "%s: reading SR failed\n", __func__);
352 return sr;
353 }
354
355 /* set WRTC */
356 sr = i2c_smbus_write_byte_data (client, ISL1208_REG_SR,
357 sr | ISL1208_REG_SR_WRTC);
358 if (sr < 0) {
359 dev_err(&client->dev, "%s: writing SR failed\n", __func__);
360 return sr;
361 }
362
363 /* write RTC registers */
364 sr = isl1208_i2c_set_regs(client, 0, regs, ISL1208_RTC_SECTION_LEN);
365 if (sr < 0) {
366 dev_err(&client->dev, "%s: writing RTC section failed\n",
367 __func__);
368 return sr;
369 }
370
371 /* clear WRTC again */
372 sr = i2c_smbus_write_byte_data (client, ISL1208_REG_SR,
373 sr & ~ISL1208_REG_SR_WRTC);
374 if (sr < 0) {
375 dev_err(&client->dev, "%s: writing SR failed\n", __func__);
376 return sr;
377 }
378
379 return 0;
380}
381
382
383static int isl1208_rtc_set_time(struct device *dev, struct rtc_time *tm)
384{
385 return isl1208_i2c_set_time(to_i2c_client(dev), tm);
386}
387
388static int isl1208_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm)
389{
390 return isl1208_i2c_read_alarm(to_i2c_client(dev), alarm);
391}
392
393static struct rtc_class_ops isl1208_rtc_ops = {
394 .proc = isl1208_rtc_proc,
395 .read_time = isl1208_rtc_read_time,
396 .set_time = isl1208_rtc_set_time,
397 .read_alarm = isl1208_rtc_read_alarm,
398 //.set_alarm = isl1208_rtc_set_alarm,
399};
400
401/* sysfs interface */
402
403static ssize_t isl1208_sysfs_show_atrim(struct device *dev,
404 struct device_attribute *attr,
405 char *buf)
406{
407 int atr;
408
409 atr = isl1208_i2c_get_atr(to_i2c_client(dev));
410 if (atr < 0)
411 return atr;
412
413 return sprintf(buf, "%d.%.2d pF\n", atr>>2, (atr&0x3)*25);
414}
415static DEVICE_ATTR(atrim, S_IRUGO, isl1208_sysfs_show_atrim, NULL);
416
417static ssize_t isl1208_sysfs_show_dtrim(struct device *dev,
418 struct device_attribute *attr,
419 char *buf)
420{
421 int dtr;
422
423 dtr = isl1208_i2c_get_dtr(to_i2c_client(dev));
424 if (dtr < 0)
425 return dtr;
426
427 return sprintf(buf, "%d ppm\n", dtr);
428}
429static DEVICE_ATTR(dtrim, S_IRUGO, isl1208_sysfs_show_dtrim, NULL);
430
431static ssize_t isl1208_sysfs_show_usr(struct device *dev,
432 struct device_attribute *attr,
433 char *buf)
434{
435 int usr;
436
437 usr = isl1208_i2c_get_usr(to_i2c_client(dev));
438 if (usr < 0)
439 return usr;
440
441 return sprintf(buf, "0x%.4x\n", usr);
442}
443
444static ssize_t isl1208_sysfs_store_usr(struct device *dev,
445 struct device_attribute *attr,
446 const char *buf, size_t count)
447{
448 int usr = -1;
449
450 if (buf[0] == '0' && (buf[1] == 'x' || buf[1] == 'X')) {
451 if (sscanf(buf, "%x", &usr) != 1)
452 return -EINVAL;
453 } else {
454 if (sscanf(buf, "%d", &usr) != 1)
455 return -EINVAL;
456 }
457
458 if (usr < 0 || usr > 0xffff)
459 return -EINVAL;
460
461 return isl1208_i2c_set_usr(to_i2c_client(dev), usr) ? -EIO : count;
462}
463static DEVICE_ATTR(usr, S_IRUGO | S_IWUSR, isl1208_sysfs_show_usr,
464 isl1208_sysfs_store_usr);
465
466static int
467isl1208_probe(struct i2c_adapter *adapter, int addr, int kind)
468{
469 int rc = 0;
470 struct i2c_client *new_client = NULL;
471 struct rtc_device *rtc = NULL;
472
473 if (!i2c_check_functionality(adapter, I2C_FUNC_I2C)) {
474 rc = -ENODEV;
475 goto failout;
476 }
477
478 new_client = kzalloc(sizeof(struct i2c_client), GFP_KERNEL);
479 if (new_client == NULL) {
480 rc = -ENOMEM;
481 goto failout;
482 }
483
484 new_client->addr = addr;
485 new_client->adapter = adapter;
486 new_client->driver = &isl1208_driver;
487 new_client->flags = 0;
488 strcpy(new_client->name, DRV_NAME);
489
490 if (kind < 0) {
491 rc = isl1208_i2c_validate_client(new_client);
492 if (rc < 0)
493 goto failout;
494 }
495
496 rc = i2c_attach_client(new_client);
497 if (rc < 0)
498 goto failout;
499
500 dev_info(&new_client->dev,
501 "chip found, driver version " DRV_VERSION "\n");
502
503 rtc = rtc_device_register(isl1208_driver.driver.name,
504 &new_client->dev,
505 &isl1208_rtc_ops, THIS_MODULE);
506
507 if (IS_ERR(rtc)) {
508 rc = PTR_ERR(rtc);
509 goto failout_detach;
510 }
511
512 i2c_set_clientdata(new_client, rtc);
513
514 rc = isl1208_i2c_get_sr(new_client);
515 if (rc < 0) {
516 dev_err(&new_client->dev, "reading status failed\n");
517 goto failout_unregister;
518 }
519
520 if (rc & ISL1208_REG_SR_RTCF)
521 dev_warn(&new_client->dev, "rtc power failure detected, "
522 "please set clock.\n");
523
524 rc = device_create_file(&new_client->dev, &dev_attr_atrim);
525 if (rc < 0)
526 goto failout_unregister;
527 rc = device_create_file(&new_client->dev, &dev_attr_dtrim);
528 if (rc < 0)
529 goto failout_atrim;
530 rc = device_create_file(&new_client->dev, &dev_attr_usr);
531 if (rc < 0)
532 goto failout_dtrim;
533
534 return 0;
535
536 failout_dtrim:
537 device_remove_file(&new_client->dev, &dev_attr_dtrim);
538 failout_atrim:
539 device_remove_file(&new_client->dev, &dev_attr_atrim);
540 failout_unregister:
541 rtc_device_unregister(rtc);
542 failout_detach:
543 i2c_detach_client(new_client);
544 failout:
545 kfree(new_client);
546 return rc;
547}
548
549static int
550isl1208_attach_adapter (struct i2c_adapter *adapter)
551{
552 return i2c_probe(adapter, &addr_data, isl1208_probe);
553}
554
555static int
556isl1208_detach_client(struct i2c_client *client)
557{
558 int rc;
559 struct rtc_device *const rtc = i2c_get_clientdata(client);
560
561 if (rtc)
562 rtc_device_unregister(rtc); /* do we need to kfree? */
563
564 rc = i2c_detach_client(client);
565 if (rc)
566 return rc;
567
568 kfree(client);
569
570 return 0;
571}
572
573/* module management */
574
575static int __init isl1208_init(void)
576{
577 return i2c_add_driver(&isl1208_driver);
578}
579
580static void __exit isl1208_exit(void)
581{
582 i2c_del_driver(&isl1208_driver);
583}
584
585MODULE_AUTHOR("Herbert Valerio Riedel <hvr@gnu.org>");
586MODULE_DESCRIPTION("Intersil ISL1208 RTC driver");
587MODULE_LICENSE("GPL");
588MODULE_VERSION(DRV_VERSION);
589
590module_init(isl1208_init);
591module_exit(isl1208_exit);
diff --git a/drivers/rtc/rtc-vr41xx.c b/drivers/rtc/rtc-vr41xx.c
index bb6d5ff24fd0..596764fd29f5 100644
--- a/drivers/rtc/rtc-vr41xx.c
+++ b/drivers/rtc/rtc-vr41xx.c
@@ -30,7 +30,7 @@
30#include <asm/div64.h> 30#include <asm/div64.h>
31#include <asm/io.h> 31#include <asm/io.h>
32#include <asm/uaccess.h> 32#include <asm/uaccess.h>
33#include <asm/vr41xx/vr41xx.h> 33#include <asm/vr41xx/irq.h>
34 34
35MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>"); 35MODULE_AUTHOR("Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>");
36MODULE_DESCRIPTION("NEC VR4100 series RTC driver"); 36MODULE_DESCRIPTION("NEC VR4100 series RTC driver");
diff --git a/drivers/s390/block/dasd_devmap.c b/drivers/s390/block/dasd_devmap.c
index d7295386821c..7f6fdac74706 100644
--- a/drivers/s390/block/dasd_devmap.c
+++ b/drivers/s390/block/dasd_devmap.c
@@ -394,7 +394,7 @@ dasd_add_busid(char *bus_id, int features)
394 if (!new) 394 if (!new)
395 return ERR_PTR(-ENOMEM); 395 return ERR_PTR(-ENOMEM);
396 spin_lock(&dasd_devmap_lock); 396 spin_lock(&dasd_devmap_lock);
397 devmap = 0; 397 devmap = NULL;
398 hash = dasd_hash_busid(bus_id); 398 hash = dasd_hash_busid(bus_id);
399 list_for_each_entry(tmp, &dasd_hashlists[hash], list) 399 list_for_each_entry(tmp, &dasd_hashlists[hash], list)
400 if (strncmp(tmp->bus_id, bus_id, BUS_ID_SIZE) == 0) { 400 if (strncmp(tmp->bus_id, bus_id, BUS_ID_SIZE) == 0) {
@@ -406,10 +406,10 @@ dasd_add_busid(char *bus_id, int features)
406 new->devindex = dasd_max_devindex++; 406 new->devindex = dasd_max_devindex++;
407 strncpy(new->bus_id, bus_id, BUS_ID_SIZE); 407 strncpy(new->bus_id, bus_id, BUS_ID_SIZE);
408 new->features = features; 408 new->features = features;
409 new->device = 0; 409 new->device = NULL;
410 list_add(&new->list, &dasd_hashlists[hash]); 410 list_add(&new->list, &dasd_hashlists[hash]);
411 devmap = new; 411 devmap = new;
412 new = 0; 412 new = NULL;
413 } 413 }
414 spin_unlock(&dasd_devmap_lock); 414 spin_unlock(&dasd_devmap_lock);
415 kfree(new); 415 kfree(new);
@@ -479,7 +479,7 @@ dasd_device_from_devindex(int devindex)
479 int i; 479 int i;
480 480
481 spin_lock(&dasd_devmap_lock); 481 spin_lock(&dasd_devmap_lock);
482 devmap = 0; 482 devmap = NULL;
483 for (i = 0; (i < 256) && !devmap; i++) 483 for (i = 0; (i < 256) && !devmap; i++)
484 list_for_each_entry(tmp, &dasd_hashlists[i], list) 484 list_for_each_entry(tmp, &dasd_hashlists[i], list)
485 if (tmp->devindex == devindex) { 485 if (tmp->devindex == devindex) {
diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
index 2e655f466743..39c2281371b5 100644
--- a/drivers/s390/block/dasd_eckd.c
+++ b/drivers/s390/block/dasd_eckd.c
@@ -65,16 +65,16 @@ struct dasd_eckd_private {
65/* The ccw bus type uses this table to find devices that it sends to 65/* The ccw bus type uses this table to find devices that it sends to
66 * dasd_eckd_probe */ 66 * dasd_eckd_probe */
67static struct ccw_device_id dasd_eckd_ids[] = { 67static struct ccw_device_id dasd_eckd_ids[] = {
68 { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3390, 0), driver_info: 0x1}, 68 { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3390, 0), .driver_info = 0x1},
69 { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3390, 0), driver_info: 0x2}, 69 { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3390, 0), .driver_info = 0x2},
70 { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3390, 0), driver_info: 0x3}, 70 { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3390, 0), .driver_info = 0x3},
71 { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3380, 0), driver_info: 0x4}, 71 { CCW_DEVICE_DEVTYPE (0x3990, 0, 0x3380, 0), .driver_info = 0x4},
72 { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3380, 0), driver_info: 0x5}, 72 { CCW_DEVICE_DEVTYPE (0x2105, 0, 0x3380, 0), .driver_info = 0x5},
73 { CCW_DEVICE_DEVTYPE (0x9343, 0, 0x9345, 0), driver_info: 0x6}, 73 { CCW_DEVICE_DEVTYPE (0x9343, 0, 0x9345, 0), .driver_info = 0x6},
74 { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3390, 0), driver_info: 0x7}, 74 { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3390, 0), .driver_info = 0x7},
75 { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3380, 0), driver_info: 0x8}, 75 { CCW_DEVICE_DEVTYPE (0x2107, 0, 0x3380, 0), .driver_info = 0x8},
76 { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3390, 0), driver_info: 0x9}, 76 { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3390, 0), .driver_info = 0x9},
77 { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3380, 0), driver_info: 0xa}, 77 { CCW_DEVICE_DEVTYPE (0x1750, 0, 0x3380, 0), .driver_info = 0xa},
78 { /* end of list */ }, 78 { /* end of list */ },
79}; 79};
80 80
diff --git a/drivers/s390/block/dasd_fba.c b/drivers/s390/block/dasd_fba.c
index 808434d38526..e85015be109b 100644
--- a/drivers/s390/block/dasd_fba.c
+++ b/drivers/s390/block/dasd_fba.c
@@ -44,8 +44,8 @@ struct dasd_fba_private {
44}; 44};
45 45
46static struct ccw_device_id dasd_fba_ids[] = { 46static struct ccw_device_id dasd_fba_ids[] = {
47 { CCW_DEVICE_DEVTYPE (0x6310, 0, 0x9336, 0), driver_info: 0x1}, 47 { CCW_DEVICE_DEVTYPE (0x6310, 0, 0x9336, 0), .driver_info = 0x1},
48 { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3370, 0), driver_info: 0x2}, 48 { CCW_DEVICE_DEVTYPE (0x3880, 0, 0x3370, 0), .driver_info = 0x2},
49 { /* end of list */ }, 49 { /* end of list */ },
50}; 50};
51 51
diff --git a/drivers/s390/block/dasd_genhd.c b/drivers/s390/block/dasd_genhd.c
index 12c7d296eaa8..4c272b70f41a 100644
--- a/drivers/s390/block/dasd_genhd.c
+++ b/drivers/s390/block/dasd_genhd.c
@@ -84,9 +84,9 @@ void
84dasd_gendisk_free(struct dasd_device *device) 84dasd_gendisk_free(struct dasd_device *device)
85{ 85{
86 del_gendisk(device->gdp); 86 del_gendisk(device->gdp);
87 device->gdp->queue = 0; 87 device->gdp->queue = NULL;
88 put_disk(device->gdp); 88 put_disk(device->gdp);
89 device->gdp = 0; 89 device->gdp = NULL;
90} 90}
91 91
92/* 92/*
@@ -136,7 +136,7 @@ dasd_destroy_partitions(struct dasd_device * device)
136 * device->bdev to lower the offline open_count limit again. 136 * device->bdev to lower the offline open_count limit again.
137 */ 137 */
138 bdev = device->bdev; 138 bdev = device->bdev;
139 device->bdev = 0; 139 device->bdev = NULL;
140 140
141 /* 141 /*
142 * See fs/partition/check.c:delete_partition 142 * See fs/partition/check.c:delete_partition
@@ -145,7 +145,7 @@ dasd_destroy_partitions(struct dasd_device * device)
145 */ 145 */
146 memset(&bpart, 0, sizeof(struct blkpg_partition)); 146 memset(&bpart, 0, sizeof(struct blkpg_partition));
147 memset(&barg, 0, sizeof(struct blkpg_ioctl_arg)); 147 memset(&barg, 0, sizeof(struct blkpg_ioctl_arg));
148 barg.data = &bpart; 148 barg.data = (void __user *) &bpart;
149 barg.op = BLKPG_DEL_PARTITION; 149 barg.op = BLKPG_DEL_PARTITION;
150 for (bpart.pno = device->gdp->minors - 1; bpart.pno > 0; bpart.pno--) 150 for (bpart.pno = device->gdp->minors - 1; bpart.pno > 0; bpart.pno--)
151 ioctl_by_bdev(bdev, BLKPG, (unsigned long) &barg); 151 ioctl_by_bdev(bdev, BLKPG, (unsigned long) &barg);
diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
index e97f5316ad2d..8fed3603e9ea 100644
--- a/drivers/s390/block/dasd_ioctl.c
+++ b/drivers/s390/block/dasd_ioctl.c
@@ -345,7 +345,7 @@ dasd_ioctl_set_ro(struct block_device *bdev, void __user *argp)
345 if (bdev != bdev->bd_contains) 345 if (bdev != bdev->bd_contains)
346 // ro setting is not allowed for partitions 346 // ro setting is not allowed for partitions
347 return -EINVAL; 347 return -EINVAL;
348 if (get_user(intval, (int *)argp)) 348 if (get_user(intval, (int __user *)argp))
349 return -EFAULT; 349 return -EFAULT;
350 350
351 set_disk_ro(bdev->bd_disk, intval); 351 set_disk_ro(bdev->bd_disk, intval);
diff --git a/drivers/s390/block/xpram.c b/drivers/s390/block/xpram.c
index 4c1e56b9b98d..4cd879cb9bdd 100644
--- a/drivers/s390/block/xpram.c
+++ b/drivers/s390/block/xpram.c
@@ -71,11 +71,11 @@ static int xpram_devs;
71/* 71/*
72 * Parameter parsing functions. 72 * Parameter parsing functions.
73 */ 73 */
74static int devs = XPRAM_DEVS; 74static int __initdata devs = XPRAM_DEVS;
75static unsigned int sizes[XPRAM_MAX_DEVS]; 75static char __initdata *sizes[XPRAM_MAX_DEVS];
76 76
77module_param(devs, int, 0); 77module_param(devs, int, 0);
78module_param_array(sizes, int, NULL, 0); 78module_param_array(sizes, charp, NULL, 0);
79 79
80MODULE_PARM_DESC(devs, "number of devices (\"partitions\"), " \ 80MODULE_PARM_DESC(devs, "number of devices (\"partitions\"), " \
81 "the default is " __MODULE_STRING(XPRAM_DEVS) "\n"); 81 "the default is " __MODULE_STRING(XPRAM_DEVS) "\n");
@@ -86,59 +86,6 @@ MODULE_PARM_DESC(sizes, "list of device (partition) sizes " \
86 "claimed by explicit sizes\n"); 86 "claimed by explicit sizes\n");
87MODULE_LICENSE("GPL"); 87MODULE_LICENSE("GPL");
88 88
89#ifndef MODULE
90/*
91 * Parses the kernel parameters given in the kernel parameter line.
92 * The expected format is
93 * <number_of_partitions>[","<partition_size>]*
94 * where
95 * devices is a positive integer that initializes xpram_devs
96 * each size is a non-negative integer possibly followed by a
97 * magnitude (k,K,m,M,g,G), the list of sizes initialises
98 * xpram_sizes
99 *
100 * Arguments
101 * str: substring of kernel parameter line that contains xprams
102 * kernel parameters.
103 *
104 * Result 0 on success, -EINVAL else -- only for Version > 2.3
105 *
106 * Side effects
107 * the global variabls devs is set to the value of
108 * <number_of_partitions> and sizes[i] is set to the i-th
109 * partition size (if provided). A parsing error of a value
110 * results in this value being set to -EINVAL.
111 */
112static int __init xpram_setup (char *str)
113{
114 char *cp;
115 int i;
116
117 devs = simple_strtoul(str, &cp, 10);
118 if (cp <= str || devs > XPRAM_MAX_DEVS)
119 return 0;
120 for (i = 0; (i < devs) && (*cp++ == ','); i++) {
121 sizes[i] = simple_strtoul(cp, &cp, 10);
122 if (*cp == 'g' || *cp == 'G') {
123 sizes[i] <<= 20;
124 cp++;
125 } else if (*cp == 'm' || *cp == 'M') {
126 sizes[i] <<= 10;
127 cp++;
128 } else if (*cp == 'k' || *cp == 'K')
129 cp++;
130 while (isspace(*cp)) cp++;
131 }
132 if (*cp == ',' && i >= devs)
133 PRINT_WARN("partition sizes list has too many entries.\n");
134 else if (*cp != 0)
135 PRINT_WARN("ignored '%s' at end of parameter string.\n", cp);
136 return 1;
137}
138
139__setup("xpram_parts=", xpram_setup);
140#endif
141
142/* 89/*
143 * Copy expanded memory page (4kB) into main memory 90 * Copy expanded memory page (4kB) into main memory
144 * Arguments 91 * Arguments
@@ -374,7 +321,9 @@ static int __init xpram_setup_sizes(unsigned long pages)
374 mem_needed = 0; 321 mem_needed = 0;
375 mem_auto_no = 0; 322 mem_auto_no = 0;
376 for (i = 0; i < xpram_devs; i++) { 323 for (i = 0; i < xpram_devs; i++) {
377 xpram_sizes[i] = (sizes[i] + 3) & -4UL; 324 if (sizes[i])
325 xpram_sizes[i] =
326 (memparse(sizes[i], &sizes[i]) + 3) & -4UL;
378 if (xpram_sizes[i]) 327 if (xpram_sizes[i])
379 mem_needed += xpram_sizes[i]; 328 mem_needed += xpram_sizes[i];
380 else 329 else
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
index f25c6d116f6f..2fa566fa6da4 100644
--- a/drivers/s390/char/con3215.c
+++ b/drivers/s390/char/con3215.c
@@ -693,7 +693,7 @@ raw3215_probe (struct ccw_device *cdev)
693 GFP_KERNEL|GFP_DMA); 693 GFP_KERNEL|GFP_DMA);
694 if (raw->buffer == NULL) { 694 if (raw->buffer == NULL) {
695 spin_lock(&raw3215_device_lock); 695 spin_lock(&raw3215_device_lock);
696 raw3215[line] = 0; 696 raw3215[line] = NULL;
697 spin_unlock(&raw3215_device_lock); 697 spin_unlock(&raw3215_device_lock);
698 kfree(raw); 698 kfree(raw);
699 return -ENOMEM; 699 return -ENOMEM;
diff --git a/drivers/s390/char/ctrlchar.c b/drivers/s390/char/ctrlchar.c
index 0ea6f36a2527..d83eb6358bac 100644
--- a/drivers/s390/char/ctrlchar.c
+++ b/drivers/s390/char/ctrlchar.c
@@ -23,7 +23,7 @@ ctrlchar_handle_sysrq(void *tty)
23 handle_sysrq(ctrlchar_sysrq_key, NULL, (struct tty_struct *) tty); 23 handle_sysrq(ctrlchar_sysrq_key, NULL, (struct tty_struct *) tty);
24} 24}
25 25
26static DECLARE_WORK(ctrlchar_work, ctrlchar_handle_sysrq, 0); 26static DECLARE_WORK(ctrlchar_work, ctrlchar_handle_sysrq, NULL);
27#endif 27#endif
28 28
29 29
diff --git a/drivers/s390/char/defkeymap.c b/drivers/s390/char/defkeymap.c
index ca15adb140d1..17027d918cf7 100644
--- a/drivers/s390/char/defkeymap.c
+++ b/drivers/s390/char/defkeymap.c
@@ -83,8 +83,8 @@ static u_short shift_ctrl_map[NR_KEYS] = {
83}; 83};
84 84
85ushort *key_maps[MAX_NR_KEYMAPS] = { 85ushort *key_maps[MAX_NR_KEYMAPS] = {
86 plain_map, shift_map, 0, 0, 86 plain_map, shift_map, NULL, NULL,
87 ctrl_map, shift_ctrl_map, 0 87 ctrl_map, shift_ctrl_map, NULL,
88}; 88};
89 89
90unsigned int keymap_count = 4; 90unsigned int keymap_count = 4;
@@ -145,7 +145,7 @@ char *func_table[MAX_NR_FUNC] = {
145 func_buf + 97, 145 func_buf + 97,
146 func_buf + 103, 146 func_buf + 103,
147 func_buf + 109, 147 func_buf + 109,
148 0, 148 NULL,
149}; 149};
150 150
151struct kbdiacr accent_table[MAX_DIACR] = { 151struct kbdiacr accent_table[MAX_DIACR] = {
diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
index 6099c14de429..ef004d089712 100644
--- a/drivers/s390/char/fs3270.c
+++ b/drivers/s390/char/fs3270.c
@@ -236,7 +236,7 @@ fs3270_irq(struct fs3270 *fp, struct raw3270_request *rq, struct irb *irb)
236 * Process reads from fullscreen 3270. 236 * Process reads from fullscreen 3270.
237 */ 237 */
238static ssize_t 238static ssize_t
239fs3270_read(struct file *filp, char *data, size_t count, loff_t *off) 239fs3270_read(struct file *filp, char __user *data, size_t count, loff_t *off)
240{ 240{
241 struct fs3270 *fp; 241 struct fs3270 *fp;
242 struct raw3270_request *rq; 242 struct raw3270_request *rq;
@@ -281,7 +281,7 @@ fs3270_read(struct file *filp, char *data, size_t count, loff_t *off)
281 * Process writes to fullscreen 3270. 281 * Process writes to fullscreen 3270.
282 */ 282 */
283static ssize_t 283static ssize_t
284fs3270_write(struct file *filp, const char *data, size_t count, loff_t *off) 284fs3270_write(struct file *filp, const char __user *data, size_t count, loff_t *off)
285{ 285{
286 struct fs3270 *fp; 286 struct fs3270 *fp;
287 struct raw3270_request *rq; 287 struct raw3270_request *rq;
@@ -338,10 +338,10 @@ fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
338 fp->write_command = arg; 338 fp->write_command = arg;
339 break; 339 break;
340 case TUBGETI: 340 case TUBGETI:
341 rc = put_user(fp->read_command, (char *) arg); 341 rc = put_user(fp->read_command, (char __user *) arg);
342 break; 342 break;
343 case TUBGETO: 343 case TUBGETO:
344 rc = put_user(fp->write_command,(char *) arg); 344 rc = put_user(fp->write_command,(char __user *) arg);
345 break; 345 break;
346 case TUBGETMOD: 346 case TUBGETMOD:
347 iocb.model = fp->view.model; 347 iocb.model = fp->view.model;
@@ -350,7 +350,7 @@ fs3270_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
350 iocb.pf_cnt = 24; 350 iocb.pf_cnt = 24;
351 iocb.re_cnt = 20; 351 iocb.re_cnt = 20;
352 iocb.map = 0; 352 iocb.map = 0;
353 if (copy_to_user((char *) arg, &iocb, 353 if (copy_to_user((char __user *) arg, &iocb,
354 sizeof(struct raw3270_iocb))) 354 sizeof(struct raw3270_iocb)))
355 rc = -EFAULT; 355 rc = -EFAULT;
356 break; 356 break;
@@ -479,7 +479,7 @@ fs3270_close(struct inode *inode, struct file *filp)
479 struct fs3270 *fp; 479 struct fs3270 *fp;
480 480
481 fp = filp->private_data; 481 fp = filp->private_data;
482 filp->private_data = 0; 482 filp->private_data = NULL;
483 if (fp) { 483 if (fp) {
484 fp->fs_pid = 0; 484 fp->fs_pid = 0;
485 raw3270_reset(&fp->view); 485 raw3270_reset(&fp->view);
diff --git a/drivers/s390/char/keyboard.c b/drivers/s390/char/keyboard.c
index 547ef906ae2c..3be06569180d 100644
--- a/drivers/s390/char/keyboard.c
+++ b/drivers/s390/char/keyboard.c
@@ -103,7 +103,7 @@ out_maps:
103out_kbd: 103out_kbd:
104 kfree(kbd); 104 kfree(kbd);
105out: 105out:
106 return 0; 106 return NULL;
107} 107}
108 108
109void 109void
@@ -304,7 +304,7 @@ kbd_keycode(struct kbd_data *kbd, unsigned int keycode)
304 if (kbd->sysrq) { 304 if (kbd->sysrq) {
305 if (kbd->sysrq == K(KT_LATIN, '-')) { 305 if (kbd->sysrq == K(KT_LATIN, '-')) {
306 kbd->sysrq = 0; 306 kbd->sysrq = 0;
307 handle_sysrq(value, 0, kbd->tty); 307 handle_sysrq(value, NULL, kbd->tty);
308 return; 308 return;
309 } 309 }
310 if (value == '-') { 310 if (value == '-') {
@@ -363,7 +363,7 @@ do_kdsk_ioctl(struct kbd_data *kbd, struct kbentry __user *user_kbe,
363 /* disallocate map */ 363 /* disallocate map */
364 key_map = kbd->key_maps[tmp.kb_table]; 364 key_map = kbd->key_maps[tmp.kb_table];
365 if (key_map) { 365 if (key_map) {
366 kbd->key_maps[tmp.kb_table] = 0; 366 kbd->key_maps[tmp.kb_table] = NULL;
367 kfree(key_map); 367 kfree(key_map);
368 } 368 }
369 break; 369 break;
diff --git a/drivers/s390/char/raw3270.c b/drivers/s390/char/raw3270.c
index e95b56f810db..95e285b2e25c 100644
--- a/drivers/s390/char/raw3270.c
+++ b/drivers/s390/char/raw3270.c
@@ -555,7 +555,7 @@ raw3270_start_init(struct raw3270 *rp, struct raw3270_view *view,
555#ifdef CONFIG_TN3270_CONSOLE 555#ifdef CONFIG_TN3270_CONSOLE
556 if (raw3270_registered == 0) { 556 if (raw3270_registered == 0) {
557 spin_lock_irqsave(get_ccwdev_lock(view->dev->cdev), flags); 557 spin_lock_irqsave(get_ccwdev_lock(view->dev->cdev), flags);
558 rq->callback = 0; 558 rq->callback = NULL;
559 rc = __raw3270_start(rp, view, rq); 559 rc = __raw3270_start(rp, view, rq);
560 if (rc == 0) 560 if (rc == 0)
561 while (!raw3270_request_final(rq)) { 561 while (!raw3270_request_final(rq)) {
@@ -719,8 +719,8 @@ raw3270_size_device(struct raw3270 *rp)
719 rc = __raw3270_size_device_vm(rp); 719 rc = __raw3270_size_device_vm(rp);
720 else 720 else
721 rc = __raw3270_size_device(rp); 721 rc = __raw3270_size_device(rp);
722 raw3270_init_view.dev = 0; 722 raw3270_init_view.dev = NULL;
723 rp->view = 0; 723 rp->view = NULL;
724 up(&raw3270_init_sem); 724 up(&raw3270_init_sem);
725 if (rc == 0) { /* Found something. */ 725 if (rc == 0) { /* Found something. */
726 /* Try to find a model. */ 726 /* Try to find a model. */
@@ -761,8 +761,8 @@ raw3270_reset_device(struct raw3270 *rp)
761 rp->view = &raw3270_init_view; 761 rp->view = &raw3270_init_view;
762 raw3270_init_view.dev = rp; 762 raw3270_init_view.dev = rp;
763 rc = raw3270_start_init(rp, &raw3270_init_view, &rp->init_request); 763 rc = raw3270_start_init(rp, &raw3270_init_view, &rp->init_request);
764 raw3270_init_view.dev = 0; 764 raw3270_init_view.dev = NULL;
765 rp->view = 0; 765 rp->view = NULL;
766 up(&raw3270_init_sem); 766 up(&raw3270_init_sem);
767 return rc; 767 return rc;
768} 768}
@@ -934,7 +934,7 @@ raw3270_activate_view(struct raw3270_view *view)
934 else if (!test_bit(RAW3270_FLAGS_READY, &rp->flags)) 934 else if (!test_bit(RAW3270_FLAGS_READY, &rp->flags))
935 rc = -ENODEV; 935 rc = -ENODEV;
936 else { 936 else {
937 oldview = 0; 937 oldview = NULL;
938 if (rp->view) { 938 if (rp->view) {
939 oldview = rp->view; 939 oldview = rp->view;
940 oldview->fn->deactivate(oldview); 940 oldview->fn->deactivate(oldview);
@@ -951,7 +951,7 @@ raw3270_activate_view(struct raw3270_view *view)
951 rp->view = nv; 951 rp->view = nv;
952 if (nv->fn->activate(nv) == 0) 952 if (nv->fn->activate(nv) == 0)
953 break; 953 break;
954 rp->view = 0; 954 rp->view = NULL;
955 } 955 }
956 } 956 }
957 } 957 }
@@ -975,7 +975,7 @@ raw3270_deactivate_view(struct raw3270_view *view)
975 spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); 975 spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags);
976 if (rp->view == view) { 976 if (rp->view == view) {
977 view->fn->deactivate(view); 977 view->fn->deactivate(view);
978 rp->view = 0; 978 rp->view = NULL;
979 /* Move deactivated view to end of list. */ 979 /* Move deactivated view to end of list. */
980 list_del_init(&view->list); 980 list_del_init(&view->list);
981 list_add_tail(&view->list, &rp->view_list); 981 list_add_tail(&view->list, &rp->view_list);
@@ -985,7 +985,7 @@ raw3270_deactivate_view(struct raw3270_view *view)
985 rp->view = view; 985 rp->view = view;
986 if (view->fn->activate(view) == 0) 986 if (view->fn->activate(view) == 0)
987 break; 987 break;
988 rp->view = 0; 988 rp->view = NULL;
989 } 989 }
990 } 990 }
991 } 991 }
@@ -1076,7 +1076,7 @@ raw3270_del_view(struct raw3270_view *view)
1076 spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags); 1076 spin_lock_irqsave(get_ccwdev_lock(rp->cdev), flags);
1077 if (rp->view == view) { 1077 if (rp->view == view) {
1078 view->fn->deactivate(view); 1078 view->fn->deactivate(view);
1079 rp->view = 0; 1079 rp->view = NULL;
1080 } 1080 }
1081 list_del_init(&view->list); 1081 list_del_init(&view->list);
1082 if (!rp->view && test_bit(RAW3270_FLAGS_READY, &rp->flags)) { 1082 if (!rp->view && test_bit(RAW3270_FLAGS_READY, &rp->flags)) {
@@ -1117,9 +1117,9 @@ raw3270_delete_device(struct raw3270 *rp)
1117 1117
1118 /* Disconnect from ccw_device. */ 1118 /* Disconnect from ccw_device. */
1119 cdev = rp->cdev; 1119 cdev = rp->cdev;
1120 rp->cdev = 0; 1120 rp->cdev = NULL;
1121 cdev->dev.driver_data = 0; 1121 cdev->dev.driver_data = NULL;
1122 cdev->handler = 0; 1122 cdev->handler = NULL;
1123 1123
1124 /* Put ccw_device structure. */ 1124 /* Put ccw_device structure. */
1125 put_device(&cdev->dev); 1125 put_device(&cdev->dev);
@@ -1144,7 +1144,7 @@ raw3270_model_show(struct device *dev, struct device_attribute *attr, char *buf)
1144 return snprintf(buf, PAGE_SIZE, "%i\n", 1144 return snprintf(buf, PAGE_SIZE, "%i\n",
1145 ((struct raw3270 *) dev->driver_data)->model); 1145 ((struct raw3270 *) dev->driver_data)->model);
1146} 1146}
1147static DEVICE_ATTR(model, 0444, raw3270_model_show, 0); 1147static DEVICE_ATTR(model, 0444, raw3270_model_show, NULL);
1148 1148
1149static ssize_t 1149static ssize_t
1150raw3270_rows_show(struct device *dev, struct device_attribute *attr, char *buf) 1150raw3270_rows_show(struct device *dev, struct device_attribute *attr, char *buf)
@@ -1152,7 +1152,7 @@ raw3270_rows_show(struct device *dev, struct device_attribute *attr, char *buf)
1152 return snprintf(buf, PAGE_SIZE, "%i\n", 1152 return snprintf(buf, PAGE_SIZE, "%i\n",
1153 ((struct raw3270 *) dev->driver_data)->rows); 1153 ((struct raw3270 *) dev->driver_data)->rows);
1154} 1154}
1155static DEVICE_ATTR(rows, 0444, raw3270_rows_show, 0); 1155static DEVICE_ATTR(rows, 0444, raw3270_rows_show, NULL);
1156 1156
1157static ssize_t 1157static ssize_t
1158raw3270_columns_show(struct device *dev, struct device_attribute *attr, char *buf) 1158raw3270_columns_show(struct device *dev, struct device_attribute *attr, char *buf)
@@ -1160,7 +1160,7 @@ raw3270_columns_show(struct device *dev, struct device_attribute *attr, char *bu
1160 return snprintf(buf, PAGE_SIZE, "%i\n", 1160 return snprintf(buf, PAGE_SIZE, "%i\n",
1161 ((struct raw3270 *) dev->driver_data)->cols); 1161 ((struct raw3270 *) dev->driver_data)->cols);
1162} 1162}
1163static DEVICE_ATTR(columns, 0444, raw3270_columns_show, 0); 1163static DEVICE_ATTR(columns, 0444, raw3270_columns_show, NULL);
1164 1164
1165static struct attribute * raw3270_attrs[] = { 1165static struct attribute * raw3270_attrs[] = {
1166 &dev_attr_model.attr, 1166 &dev_attr_model.attr,
@@ -1296,7 +1296,7 @@ raw3270_remove (struct ccw_device *cdev)
1296 spin_lock_irqsave(get_ccwdev_lock(cdev), flags); 1296 spin_lock_irqsave(get_ccwdev_lock(cdev), flags);
1297 if (rp->view) { 1297 if (rp->view) {
1298 rp->view->fn->deactivate(rp->view); 1298 rp->view->fn->deactivate(rp->view);
1299 rp->view = 0; 1299 rp->view = NULL;
1300 } 1300 }
1301 while (!list_empty(&rp->view_list)) { 1301 while (!list_empty(&rp->view_list)) {
1302 v = list_entry(rp->view_list.next, struct raw3270_view, list); 1302 v = list_entry(rp->view_list.next, struct raw3270_view, list);
diff --git a/drivers/s390/char/raw3270.h b/drivers/s390/char/raw3270.h
index b635bf8e7775..90beaa80a782 100644
--- a/drivers/s390/char/raw3270.h
+++ b/drivers/s390/char/raw3270.h
@@ -231,7 +231,7 @@ alloc_string(struct list_head *free_list, unsigned long len)
231 INIT_LIST_HEAD(&cs->update); 231 INIT_LIST_HEAD(&cs->update);
232 return cs; 232 return cs;
233 } 233 }
234 return 0; 234 return NULL;
235} 235}
236 236
237static inline unsigned long 237static inline unsigned long
diff --git a/drivers/s390/char/tape_34xx.c b/drivers/s390/char/tape_34xx.c
index 48b4d30a7256..7b95dab913d0 100644
--- a/drivers/s390/char/tape_34xx.c
+++ b/drivers/s390/char/tape_34xx.c
@@ -1309,9 +1309,9 @@ static struct tape_discipline tape_discipline_34xx = {
1309}; 1309};
1310 1310
1311static struct ccw_device_id tape_34xx_ids[] = { 1311static struct ccw_device_id tape_34xx_ids[] = {
1312 { CCW_DEVICE_DEVTYPE(0x3480, 0, 0x3480, 0), driver_info: tape_3480}, 1312 { CCW_DEVICE_DEVTYPE(0x3480, 0, 0x3480, 0), .driver_info = tape_3480},
1313 { CCW_DEVICE_DEVTYPE(0x3490, 0, 0x3490, 0), driver_info: tape_3490}, 1313 { CCW_DEVICE_DEVTYPE(0x3490, 0, 0x3490, 0), .driver_info = tape_3490},
1314 { /* end of list */ } 1314 { /* end of list */ },
1315}; 1315};
1316 1316
1317static int 1317static int
diff --git a/drivers/s390/char/tty3270.c b/drivers/s390/char/tty3270.c
index f496f236b9c0..29718042c6c9 100644
--- a/drivers/s390/char/tty3270.c
+++ b/drivers/s390/char/tty3270.c
@@ -437,7 +437,7 @@ tty3270_rcl_add(struct tty3270 *tp, char *input, int len)
437{ 437{
438 struct string *s; 438 struct string *s;
439 439
440 tp->rcl_walk = 0; 440 tp->rcl_walk = NULL;
441 if (len <= 0) 441 if (len <= 0)
442 return; 442 return;
443 if (tp->rcl_nr >= tp->rcl_max) { 443 if (tp->rcl_nr >= tp->rcl_max) {
@@ -466,12 +466,12 @@ tty3270_rcl_backward(struct kbd_data *kbd)
466 else if (!list_empty(&tp->rcl_lines)) 466 else if (!list_empty(&tp->rcl_lines))
467 tp->rcl_walk = tp->rcl_lines.prev; 467 tp->rcl_walk = tp->rcl_lines.prev;
468 s = tp->rcl_walk ? 468 s = tp->rcl_walk ?
469 list_entry(tp->rcl_walk, struct string, list) : 0; 469 list_entry(tp->rcl_walk, struct string, list) : NULL;
470 if (tp->rcl_walk) { 470 if (tp->rcl_walk) {
471 s = list_entry(tp->rcl_walk, struct string, list); 471 s = list_entry(tp->rcl_walk, struct string, list);
472 tty3270_update_prompt(tp, s->string, s->len); 472 tty3270_update_prompt(tp, s->string, s->len);
473 } else 473 } else
474 tty3270_update_prompt(tp, 0, 0); 474 tty3270_update_prompt(tp, NULL, 0);
475 tty3270_set_timer(tp, 1); 475 tty3270_set_timer(tp, 1);
476 } 476 }
477 spin_unlock_bh(&tp->view.lock); 477 spin_unlock_bh(&tp->view.lock);
@@ -553,7 +553,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
553 * has to be emitted to the tty and for 0x6d the screen 553 * has to be emitted to the tty and for 0x6d the screen
554 * needs to be redrawn. 554 * needs to be redrawn.
555 */ 555 */
556 input = 0; 556 input = NULL;
557 len = 0; 557 len = 0;
558 if (tp->input->string[0] == 0x7d) { 558 if (tp->input->string[0] == 0x7d) {
559 /* Enter: write input to tty. */ 559 /* Enter: write input to tty. */
@@ -567,7 +567,7 @@ tty3270_read_tasklet(struct raw3270_request *rrq)
567 tty3270_update_status(tp); 567 tty3270_update_status(tp);
568 } 568 }
569 /* Clear input area. */ 569 /* Clear input area. */
570 tty3270_update_prompt(tp, 0, 0); 570 tty3270_update_prompt(tp, NULL, 0);
571 tty3270_set_timer(tp, 1); 571 tty3270_set_timer(tp, 1);
572 } else if (tp->input->string[0] == 0x6d) { 572 } else if (tp->input->string[0] == 0x6d) {
573 /* Display has been cleared. Redraw. */ 573 /* Display has been cleared. Redraw. */
@@ -808,8 +808,8 @@ tty3270_release(struct raw3270_view *view)
808 tp = (struct tty3270 *) view; 808 tp = (struct tty3270 *) view;
809 tty = tp->tty; 809 tty = tp->tty;
810 if (tty) { 810 if (tty) {
811 tty->driver_data = 0; 811 tty->driver_data = NULL;
812 tp->tty = tp->kbd->tty = 0; 812 tp->tty = tp->kbd->tty = NULL;
813 tty_hangup(tty); 813 tty_hangup(tty);
814 raw3270_put_view(&tp->view); 814 raw3270_put_view(&tp->view);
815 } 815 }
@@ -948,8 +948,8 @@ tty3270_close(struct tty_struct *tty, struct file * filp)
948 return; 948 return;
949 tp = (struct tty3270 *) tty->driver_data; 949 tp = (struct tty3270 *) tty->driver_data;
950 if (tp) { 950 if (tp) {
951 tty->driver_data = 0; 951 tty->driver_data = NULL;
952 tp->tty = tp->kbd->tty = 0; 952 tp->tty = tp->kbd->tty = NULL;
953 raw3270_put_view(&tp->view); 953 raw3270_put_view(&tp->view);
954 } 954 }
955} 955}
@@ -1673,7 +1673,7 @@ tty3270_set_termios(struct tty_struct *tty, struct termios *old)
1673 new = L_ECHO(tty) ? TF_INPUT: TF_INPUTN; 1673 new = L_ECHO(tty) ? TF_INPUT: TF_INPUTN;
1674 if (new != tp->inattr) { 1674 if (new != tp->inattr) {
1675 tp->inattr = new; 1675 tp->inattr = new;
1676 tty3270_update_prompt(tp, 0, 0); 1676 tty3270_update_prompt(tp, NULL, 0);
1677 tty3270_set_timer(tp, 1); 1677 tty3270_set_timer(tp, 1);
1678 } 1678 }
1679 } 1679 }
@@ -1759,7 +1759,7 @@ void
1759tty3270_notifier(int index, int active) 1759tty3270_notifier(int index, int active)
1760{ 1760{
1761 if (active) 1761 if (active)
1762 tty_register_device(tty3270_driver, index, 0); 1762 tty_register_device(tty3270_driver, index, NULL);
1763 else 1763 else
1764 tty_unregister_device(tty3270_driver, index); 1764 tty_unregister_device(tty3270_driver, index);
1765} 1765}
@@ -1818,7 +1818,7 @@ tty3270_exit(void)
1818 1818
1819 raw3270_unregister_notifier(tty3270_notifier); 1819 raw3270_unregister_notifier(tty3270_notifier);
1820 driver = tty3270_driver; 1820 driver = tty3270_driver;
1821 tty3270_driver = 0; 1821 tty3270_driver = NULL;
1822 tty_unregister_driver(driver); 1822 tty_unregister_driver(driver);
1823 tty3270_del_views(); 1823 tty3270_del_views();
1824} 1824}
diff --git a/drivers/s390/char/vmlogrdr.c b/drivers/s390/char/vmlogrdr.c
index c625b69ebd19..6cb23040954b 100644
--- a/drivers/s390/char/vmlogrdr.c
+++ b/drivers/s390/char/vmlogrdr.c
@@ -86,8 +86,8 @@ struct vmlogrdr_priv_t {
86 */ 86 */
87static int vmlogrdr_open(struct inode *, struct file *); 87static int vmlogrdr_open(struct inode *, struct file *);
88static int vmlogrdr_release(struct inode *, struct file *); 88static int vmlogrdr_release(struct inode *, struct file *);
89static ssize_t vmlogrdr_read (struct file *filp, char *data, size_t count, 89static ssize_t vmlogrdr_read (struct file *filp, char __user *data,
90 loff_t * ppos); 90 size_t count, loff_t * ppos);
91 91
92static struct file_operations vmlogrdr_fops = { 92static struct file_operations vmlogrdr_fops = {
93 .owner = THIS_MODULE, 93 .owner = THIS_MODULE,
@@ -515,7 +515,7 @@ vmlogrdr_receive_data(struct vmlogrdr_priv_t *priv) {
515 515
516 516
517static ssize_t 517static ssize_t
518vmlogrdr_read (struct file *filp, char *data, size_t count, loff_t * ppos) 518vmlogrdr_read(struct file *filp, char __user *data, size_t count, loff_t * ppos)
519{ 519{
520 int rc; 520 int rc;
521 struct vmlogrdr_priv_t * priv = filp->private_data; 521 struct vmlogrdr_priv_t * priv = filp->private_data;
diff --git a/drivers/s390/char/vmwatchdog.c b/drivers/s390/char/vmwatchdog.c
index 5acc0ace3d7d..807320a41fa4 100644
--- a/drivers/s390/char/vmwatchdog.c
+++ b/drivers/s390/char/vmwatchdog.c
@@ -193,7 +193,7 @@ static int vmwdt_ioctl(struct inode *i, struct file *f,
193 return 0; 193 return 0;
194 case WDIOC_GETSTATUS: 194 case WDIOC_GETSTATUS:
195 case WDIOC_GETBOOTSTATUS: 195 case WDIOC_GETBOOTSTATUS:
196 return put_user(0, (int *)arg); 196 return put_user(0, (int __user *)arg);
197 case WDIOC_GETTEMP: 197 case WDIOC_GETTEMP:
198 return -EINVAL; 198 return -EINVAL;
199 case WDIOC_SETOPTIONS: 199 case WDIOC_SETOPTIONS:
diff --git a/drivers/s390/cio/ccwgroup.c b/drivers/s390/cio/ccwgroup.c
index c7319a07ba35..f26a2ee3aad8 100644
--- a/drivers/s390/cio/ccwgroup.c
+++ b/drivers/s390/cio/ccwgroup.c
@@ -319,7 +319,7 @@ ccwgroup_online_store (struct device *dev, struct device_attribute *attr, const
319 if (!try_module_get(gdrv->owner)) 319 if (!try_module_get(gdrv->owner))
320 return -EINVAL; 320 return -EINVAL;
321 321
322 value = simple_strtoul(buf, 0, 0); 322 value = simple_strtoul(buf, NULL, 0);
323 ret = count; 323 ret = count;
324 if (value == 1) 324 if (value == 1)
325 ccwgroup_set_online(gdev); 325 ccwgroup_set_online(gdev);
diff --git a/drivers/s390/cio/chsc.c b/drivers/s390/cio/chsc.c
index a01f3bba4a7b..61ce3f1d5228 100644
--- a/drivers/s390/cio/chsc.c
+++ b/drivers/s390/cio/chsc.c
@@ -1464,6 +1464,40 @@ chsc_get_chp_desc(struct subchannel *sch, int chp_no)
1464 return desc; 1464 return desc;
1465} 1465}
1466 1466
1467static int reset_channel_path(struct channel_path *chp)
1468{
1469 int cc;
1470
1471 cc = rchp(chp->id);
1472 switch (cc) {
1473 case 0:
1474 return 0;
1475 case 2:
1476 return -EBUSY;
1477 default:
1478 return -ENODEV;
1479 }
1480}
1481
1482static void reset_channel_paths_css(struct channel_subsystem *css)
1483{
1484 int i;
1485
1486 for (i = 0; i <= __MAX_CHPID; i++) {
1487 if (css->chps[i])
1488 reset_channel_path(css->chps[i]);
1489 }
1490}
1491
1492void cio_reset_channel_paths(void)
1493{
1494 int i;
1495
1496 for (i = 0; i <= __MAX_CSSID; i++) {
1497 if (css[i] && css[i]->valid)
1498 reset_channel_paths_css(css[i]);
1499 }
1500}
1467 1501
1468static int __init 1502static int __init
1469chsc_alloc_sei_area(void) 1503chsc_alloc_sei_area(void)
diff --git a/drivers/s390/cio/cio.c b/drivers/s390/cio/cio.c
index 6fec90eab00e..89320c1ad825 100644
--- a/drivers/s390/cio/cio.c
+++ b/drivers/s390/cio/cio.c
@@ -519,6 +519,7 @@ cio_validate_subchannel (struct subchannel *sch, struct subchannel_id schid)
519 memset(sch, 0, sizeof(struct subchannel)); 519 memset(sch, 0, sizeof(struct subchannel));
520 520
521 spin_lock_init(&sch->lock); 521 spin_lock_init(&sch->lock);
522 mutex_init(&sch->reg_mutex);
522 523
523 /* Set a name for the subchannel */ 524 /* Set a name for the subchannel */
524 snprintf (sch->dev.bus_id, BUS_ID_SIZE, "0.%x.%04x", schid.ssid, 525 snprintf (sch->dev.bus_id, BUS_ID_SIZE, "0.%x.%04x", schid.ssid,
@@ -797,7 +798,7 @@ struct subchannel *
797cio_get_console_subchannel(void) 798cio_get_console_subchannel(void)
798{ 799{
799 if (!console_subchannel_in_use) 800 if (!console_subchannel_in_use)
800 return 0; 801 return NULL;
801 return &console_subchannel; 802 return &console_subchannel;
802} 803}
803 804
@@ -875,5 +876,6 @@ void
875reipl(unsigned long devno) 876reipl(unsigned long devno)
876{ 877{
877 clear_all_subchannels(); 878 clear_all_subchannels();
879 cio_reset_channel_paths();
878 do_reipl(devno); 880 do_reipl(devno);
879} 881}
diff --git a/drivers/s390/cio/cio.h b/drivers/s390/cio/cio.h
index 0ca987344e07..4541c1af4b66 100644
--- a/drivers/s390/cio/cio.h
+++ b/drivers/s390/cio/cio.h
@@ -2,6 +2,7 @@
2#define S390_CIO_H 2#define S390_CIO_H
3 3
4#include "schid.h" 4#include "schid.h"
5#include <linux/mutex.h>
5 6
6/* 7/*
7 * where we put the ssd info 8 * where we put the ssd info
@@ -87,7 +88,7 @@ struct orb {
87struct subchannel { 88struct subchannel {
88 struct subchannel_id schid; 89 struct subchannel_id schid;
89 spinlock_t lock; /* subchannel lock */ 90 spinlock_t lock; /* subchannel lock */
90 91 struct mutex reg_mutex;
91 enum { 92 enum {
92 SUBCHANNEL_TYPE_IO = 0, 93 SUBCHANNEL_TYPE_IO = 0,
93 SUBCHANNEL_TYPE_CHSC = 1, 94 SUBCHANNEL_TYPE_CHSC = 1,
diff --git a/drivers/s390/cio/cmf.c b/drivers/s390/cio/cmf.c
index 1c3e8e9012b0..0df3af1f08de 100644
--- a/drivers/s390/cio/cmf.c
+++ b/drivers/s390/cio/cmf.c
@@ -1140,7 +1140,7 @@ static struct attribute *cmf_attributes[] = {
1140 &dev_attr_avg_device_disconnect_time.attr, 1140 &dev_attr_avg_device_disconnect_time.attr,
1141 &dev_attr_avg_control_unit_queuing_time.attr, 1141 &dev_attr_avg_control_unit_queuing_time.attr,
1142 &dev_attr_avg_device_active_only_time.attr, 1142 &dev_attr_avg_device_active_only_time.attr,
1143 0, 1143 NULL,
1144}; 1144};
1145 1145
1146static struct attribute_group cmf_attr_group = { 1146static struct attribute_group cmf_attr_group = {
@@ -1160,7 +1160,7 @@ static struct attribute *cmf_attributes_ext[] = {
1160 &dev_attr_avg_device_active_only_time.attr, 1160 &dev_attr_avg_device_active_only_time.attr,
1161 &dev_attr_avg_device_busy_time.attr, 1161 &dev_attr_avg_device_busy_time.attr,
1162 &dev_attr_avg_initial_command_response_time.attr, 1162 &dev_attr_avg_initial_command_response_time.attr,
1163 0, 1163 NULL,
1164}; 1164};
1165 1165
1166static struct attribute_group cmf_attr_group_ext = { 1166static struct attribute_group cmf_attr_group_ext = {
diff --git a/drivers/s390/cio/css.c b/drivers/s390/cio/css.c
index 1d3be80797f8..13eeea3d547f 100644
--- a/drivers/s390/cio/css.c
+++ b/drivers/s390/cio/css.c
@@ -108,6 +108,24 @@ css_subchannel_release(struct device *dev)
108 108
109extern int css_get_ssd_info(struct subchannel *sch); 109extern int css_get_ssd_info(struct subchannel *sch);
110 110
111
112int css_sch_device_register(struct subchannel *sch)
113{
114 int ret;
115
116 mutex_lock(&sch->reg_mutex);
117 ret = device_register(&sch->dev);
118 mutex_unlock(&sch->reg_mutex);
119 return ret;
120}
121
122void css_sch_device_unregister(struct subchannel *sch)
123{
124 mutex_lock(&sch->reg_mutex);
125 device_unregister(&sch->dev);
126 mutex_unlock(&sch->reg_mutex);
127}
128
111static int 129static int
112css_register_subchannel(struct subchannel *sch) 130css_register_subchannel(struct subchannel *sch)
113{ 131{
@@ -119,7 +137,7 @@ css_register_subchannel(struct subchannel *sch)
119 sch->dev.release = &css_subchannel_release; 137 sch->dev.release = &css_subchannel_release;
120 138
121 /* make it known to the system */ 139 /* make it known to the system */
122 ret = device_register(&sch->dev); 140 ret = css_sch_device_register(sch);
123 if (ret) 141 if (ret)
124 printk (KERN_WARNING "%s: could not register %s\n", 142 printk (KERN_WARNING "%s: could not register %s\n",
125 __func__, sch->dev.bus_id); 143 __func__, sch->dev.bus_id);
@@ -250,7 +268,7 @@ css_evaluate_subchannel(struct subchannel_id schid, int slow)
250 * The device will be killed automatically. 268 * The device will be killed automatically.
251 */ 269 */
252 cio_disable_subchannel(sch); 270 cio_disable_subchannel(sch);
253 device_unregister(&sch->dev); 271 css_sch_device_unregister(sch);
254 /* Reset intparm to zeroes. */ 272 /* Reset intparm to zeroes. */
255 sch->schib.pmcw.intparm = 0; 273 sch->schib.pmcw.intparm = 0;
256 cio_modify(sch); 274 cio_modify(sch);
@@ -264,7 +282,7 @@ css_evaluate_subchannel(struct subchannel_id schid, int slow)
264 * away in any case. 282 * away in any case.
265 */ 283 */
266 if (!disc) { 284 if (!disc) {
267 device_unregister(&sch->dev); 285 css_sch_device_unregister(sch);
268 /* Reset intparm to zeroes. */ 286 /* Reset intparm to zeroes. */
269 sch->schib.pmcw.intparm = 0; 287 sch->schib.pmcw.intparm = 0;
270 cio_modify(sch); 288 cio_modify(sch);
@@ -605,9 +623,13 @@ init_channel_subsystem (void)
605 ret = device_register(&css[i]->device); 623 ret = device_register(&css[i]->device);
606 if (ret) 624 if (ret)
607 goto out_free; 625 goto out_free;
608 if (css_characteristics_avail && css_chsc_characteristics.secm) 626 if (css_characteristics_avail &&
609 device_create_file(&css[i]->device, 627 css_chsc_characteristics.secm) {
610 &dev_attr_cm_enable); 628 ret = device_create_file(&css[i]->device,
629 &dev_attr_cm_enable);
630 if (ret)
631 goto out_device;
632 }
611 } 633 }
612 css_init_done = 1; 634 css_init_done = 1;
613 635
@@ -615,6 +637,8 @@ init_channel_subsystem (void)
615 637
616 for_each_subchannel(__init_channel_subsystem, NULL); 638 for_each_subchannel(__init_channel_subsystem, NULL);
617 return 0; 639 return 0;
640out_device:
641 device_unregister(&css[i]->device);
618out_free: 642out_free:
619 kfree(css[i]); 643 kfree(css[i]);
620out_unregister: 644out_unregister:
diff --git a/drivers/s390/cio/css.h b/drivers/s390/cio/css.h
index e210f89a2449..8aabb4adeb5f 100644
--- a/drivers/s390/cio/css.h
+++ b/drivers/s390/cio/css.h
@@ -100,7 +100,7 @@ struct ccw_device_private {
100 struct qdio_irq *qdio_data; 100 struct qdio_irq *qdio_data;
101 struct irb irb; /* device status */ 101 struct irb irb; /* device status */
102 struct senseid senseid; /* SenseID info */ 102 struct senseid senseid; /* SenseID info */
103 struct pgid pgid; /* path group ID */ 103 struct pgid pgid[8]; /* path group IDs per chpid*/
104 struct ccw1 iccws[2]; /* ccws for SNID/SID/SPGID commands */ 104 struct ccw1 iccws[2]; /* ccws for SNID/SID/SPGID commands */
105 struct work_struct kick_work; 105 struct work_struct kick_work;
106 wait_queue_head_t wait_q; 106 wait_queue_head_t wait_q;
@@ -136,6 +136,8 @@ extern struct bus_type css_bus_type;
136extern struct css_driver io_subchannel_driver; 136extern struct css_driver io_subchannel_driver;
137 137
138extern int css_probe_device(struct subchannel_id); 138extern int css_probe_device(struct subchannel_id);
139extern int css_sch_device_register(struct subchannel *);
140extern void css_sch_device_unregister(struct subchannel *);
139extern struct subchannel * get_subchannel_by_schid(struct subchannel_id); 141extern struct subchannel * get_subchannel_by_schid(struct subchannel_id);
140extern int css_init_done; 142extern int css_init_done;
141extern int for_each_subchannel(int(*fn)(struct subchannel_id, void *), void *); 143extern int for_each_subchannel(int(*fn)(struct subchannel_id, void *), void *);
diff --git a/drivers/s390/cio/device.c b/drivers/s390/cio/device.c
index 67f0de6aed33..585fa04233c3 100644
--- a/drivers/s390/cio/device.c
+++ b/drivers/s390/cio/device.c
@@ -100,7 +100,7 @@ ccw_uevent (struct device *dev, char **envp, int num_envp,
100 if ((buffer_size - length <= 0) || (i >= num_envp)) 100 if ((buffer_size - length <= 0) || (i >= num_envp))
101 return -ENOMEM; 101 return -ENOMEM;
102 102
103 envp[i] = 0; 103 envp[i] = NULL;
104 104
105 return 0; 105 return 0;
106} 106}
@@ -280,7 +280,7 @@ ccw_device_remove_disconnected(struct ccw_device *cdev)
280 * 'throw away device'. 280 * 'throw away device'.
281 */ 281 */
282 sch = to_subchannel(cdev->dev.parent); 282 sch = to_subchannel(cdev->dev.parent);
283 device_unregister(&sch->dev); 283 css_sch_device_unregister(sch);
284 /* Reset intparm to zeroes. */ 284 /* Reset intparm to zeroes. */
285 sch->schib.pmcw.intparm = 0; 285 sch->schib.pmcw.intparm = 0;
286 cio_modify(sch); 286 cio_modify(sch);
@@ -625,7 +625,7 @@ ccw_device_do_unreg_rereg(void *data)
625 other_sch->schib.pmcw.intparm = 0; 625 other_sch->schib.pmcw.intparm = 0;
626 cio_modify(other_sch); 626 cio_modify(other_sch);
627 } 627 }
628 device_unregister(&other_sch->dev); 628 css_sch_device_unregister(other_sch);
629 } 629 }
630 } 630 }
631 /* Update ssd info here. */ 631 /* Update ssd info here. */
@@ -709,7 +709,7 @@ ccw_device_call_sch_unregister(void *data)
709 struct subchannel *sch; 709 struct subchannel *sch;
710 710
711 sch = to_subchannel(cdev->dev.parent); 711 sch = to_subchannel(cdev->dev.parent);
712 device_unregister(&sch->dev); 712 css_sch_device_unregister(sch);
713 /* Reset intparm to zeroes. */ 713 /* Reset intparm to zeroes. */
714 sch->schib.pmcw.intparm = 0; 714 sch->schib.pmcw.intparm = 0;
715 cio_modify(sch); 715 cio_modify(sch);
@@ -1057,7 +1057,7 @@ get_ccwdev_by_busid(struct ccw_driver *cdrv, const char *bus_id)
1057 __ccwdev_check_busid); 1057 __ccwdev_check_busid);
1058 put_driver(drv); 1058 put_driver(drv);
1059 1059
1060 return dev ? to_ccwdev(dev) : 0; 1060 return dev ? to_ccwdev(dev) : NULL;
1061} 1061}
1062 1062
1063/************************** device driver handling ************************/ 1063/************************** device driver handling ************************/
@@ -1082,7 +1082,7 @@ ccw_device_probe (struct device *dev)
1082 ret = cdrv->probe ? cdrv->probe(cdev) : -ENODEV; 1082 ret = cdrv->probe ? cdrv->probe(cdev) : -ENODEV;
1083 1083
1084 if (ret) { 1084 if (ret) {
1085 cdev->drv = 0; 1085 cdev->drv = NULL;
1086 return ret; 1086 return ret;
1087 } 1087 }
1088 1088
@@ -1113,7 +1113,7 @@ ccw_device_remove (struct device *dev)
1113 ret, cdev->dev.bus_id); 1113 ret, cdev->dev.bus_id);
1114 } 1114 }
1115 ccw_device_set_timeout(cdev, 0); 1115 ccw_device_set_timeout(cdev, 0);
1116 cdev->drv = 0; 1116 cdev->drv = NULL;
1117 return 0; 1117 return 0;
1118} 1118}
1119 1119
diff --git a/drivers/s390/cio/device_fsm.c b/drivers/s390/cio/device_fsm.c
index cb1af0b6f033..ac6e0c7e43d9 100644
--- a/drivers/s390/cio/device_fsm.c
+++ b/drivers/s390/cio/device_fsm.c
@@ -378,6 +378,56 @@ ccw_device_done(struct ccw_device *cdev, int state)
378 put_device (&cdev->dev); 378 put_device (&cdev->dev);
379} 379}
380 380
381static inline int cmp_pgid(struct pgid *p1, struct pgid *p2)
382{
383 char *c1;
384 char *c2;
385
386 c1 = (char *)p1;
387 c2 = (char *)p2;
388
389 return memcmp(c1 + 1, c2 + 1, sizeof(struct pgid) - 1);
390}
391
392static void __ccw_device_get_common_pgid(struct ccw_device *cdev)
393{
394 int i;
395 int last;
396
397 last = 0;
398 for (i = 0; i < 8; i++) {
399 if (cdev->private->pgid[i].inf.ps.state1 == SNID_STATE1_RESET)
400 /* No PGID yet */
401 continue;
402 if (cdev->private->pgid[last].inf.ps.state1 ==
403 SNID_STATE1_RESET) {
404 /* First non-zero PGID */
405 last = i;
406 continue;
407 }
408 if (cmp_pgid(&cdev->private->pgid[i],
409 &cdev->private->pgid[last]) == 0)
410 /* Non-conflicting PGIDs */
411 continue;
412
413 /* PGID mismatch, can't pathgroup. */
414 CIO_MSG_EVENT(0, "SNID - pgid mismatch for device "
415 "0.%x.%04x, can't pathgroup\n",
416 cdev->private->ssid, cdev->private->devno);
417 cdev->private->options.pgroup = 0;
418 return;
419 }
420 if (cdev->private->pgid[last].inf.ps.state1 ==
421 SNID_STATE1_RESET)
422 /* No previous pgid found */
423 memcpy(&cdev->private->pgid[0], &css[0]->global_pgid,
424 sizeof(struct pgid));
425 else
426 /* Use existing pgid */
427 memcpy(&cdev->private->pgid[0], &cdev->private->pgid[last],
428 sizeof(struct pgid));
429}
430
381/* 431/*
382 * Function called from device_pgid.c after sense path ground has completed. 432 * Function called from device_pgid.c after sense path ground has completed.
383 */ 433 */
@@ -388,24 +438,26 @@ ccw_device_sense_pgid_done(struct ccw_device *cdev, int err)
388 438
389 sch = to_subchannel(cdev->dev.parent); 439 sch = to_subchannel(cdev->dev.parent);
390 switch (err) { 440 switch (err) {
391 case 0: 441 case -EOPNOTSUPP: /* path grouping not supported, use nop instead. */
392 /* Start Path Group verification. */ 442 cdev->private->options.pgroup = 0;
393 sch->vpm = 0; /* Start with no path groups set. */ 443 break;
394 cdev->private->state = DEV_STATE_VERIFY; 444 case 0: /* success */
395 ccw_device_verify_start(cdev); 445 case -EACCES: /* partial success, some paths not operational */
446 /* Check if all pgids are equal or 0. */
447 __ccw_device_get_common_pgid(cdev);
396 break; 448 break;
397 case -ETIME: /* Sense path group id stopped by timeout. */ 449 case -ETIME: /* Sense path group id stopped by timeout. */
398 case -EUSERS: /* device is reserved for someone else. */ 450 case -EUSERS: /* device is reserved for someone else. */
399 ccw_device_done(cdev, DEV_STATE_BOXED); 451 ccw_device_done(cdev, DEV_STATE_BOXED);
400 break; 452 return;
401 case -EOPNOTSUPP: /* path grouping not supported, just set online. */
402 cdev->private->options.pgroup = 0;
403 ccw_device_done(cdev, DEV_STATE_ONLINE);
404 break;
405 default: 453 default:
406 ccw_device_done(cdev, DEV_STATE_NOT_OPER); 454 ccw_device_done(cdev, DEV_STATE_NOT_OPER);
407 break; 455 return;
408 } 456 }
457 /* Start Path Group verification. */
458 sch->vpm = 0; /* Start with no path groups set. */
459 cdev->private->state = DEV_STATE_VERIFY;
460 ccw_device_verify_start(cdev);
409} 461}
410 462
411/* 463/*
@@ -562,8 +614,9 @@ ccw_device_online(struct ccw_device *cdev)
562 } 614 }
563 /* Do we want to do path grouping? */ 615 /* Do we want to do path grouping? */
564 if (!cdev->private->options.pgroup) { 616 if (!cdev->private->options.pgroup) {
565 /* No, set state online immediately. */ 617 /* Start initial path verification. */
566 ccw_device_done(cdev, DEV_STATE_ONLINE); 618 cdev->private->state = DEV_STATE_VERIFY;
619 ccw_device_verify_start(cdev);
567 return 0; 620 return 0;
568 } 621 }
569 /* Do a SensePGID first. */ 622 /* Do a SensePGID first. */
@@ -609,6 +662,7 @@ ccw_device_offline(struct ccw_device *cdev)
609 /* Are we doing path grouping? */ 662 /* Are we doing path grouping? */
610 if (!cdev->private->options.pgroup) { 663 if (!cdev->private->options.pgroup) {
611 /* No, set state offline immediately. */ 664 /* No, set state offline immediately. */
665 sch->vpm = 0;
612 ccw_device_done(cdev, DEV_STATE_OFFLINE); 666 ccw_device_done(cdev, DEV_STATE_OFFLINE);
613 return 0; 667 return 0;
614 } 668 }
@@ -705,8 +759,6 @@ ccw_device_online_verify(struct ccw_device *cdev, enum dev_event dev_event)
705{ 759{
706 struct subchannel *sch; 760 struct subchannel *sch;
707 761
708 if (!cdev->private->options.pgroup)
709 return;
710 if (cdev->private->state == DEV_STATE_W4SENSE) { 762 if (cdev->private->state == DEV_STATE_W4SENSE) {
711 cdev->private->flags.doverify = 1; 763 cdev->private->flags.doverify = 1;
712 return; 764 return;
@@ -995,8 +1047,7 @@ static void
995ccw_device_wait4io_verify(struct ccw_device *cdev, enum dev_event dev_event) 1047ccw_device_wait4io_verify(struct ccw_device *cdev, enum dev_event dev_event)
996{ 1048{
997 /* When the I/O has terminated, we have to start verification. */ 1049 /* When the I/O has terminated, we have to start verification. */
998 if (cdev->private->options.pgroup) 1050 cdev->private->flags.doverify = 1;
999 cdev->private->flags.doverify = 1;
1000} 1051}
1001 1052
1002static void 1053static void
diff --git a/drivers/s390/cio/device_pgid.c b/drivers/s390/cio/device_pgid.c
index 54cb64ed0786..32610fd8868e 100644
--- a/drivers/s390/cio/device_pgid.c
+++ b/drivers/s390/cio/device_pgid.c
@@ -33,12 +33,17 @@ __ccw_device_sense_pgid_start(struct ccw_device *cdev)
33 struct subchannel *sch; 33 struct subchannel *sch;
34 struct ccw1 *ccw; 34 struct ccw1 *ccw;
35 int ret; 35 int ret;
36 int i;
36 37
37 sch = to_subchannel(cdev->dev.parent); 38 sch = to_subchannel(cdev->dev.parent);
39 /* Return if we already checked on all paths. */
40 if (cdev->private->imask == 0)
41 return (sch->lpm == 0) ? -ENODEV : -EACCES;
42 i = 8 - ffs(cdev->private->imask);
43
38 /* Setup sense path group id channel program. */ 44 /* Setup sense path group id channel program. */
39 ccw = cdev->private->iccws; 45 ccw = cdev->private->iccws;
40 ccw->cmd_code = CCW_CMD_SENSE_PGID; 46 ccw->cmd_code = CCW_CMD_SENSE_PGID;
41 ccw->cda = (__u32) __pa (&cdev->private->pgid);
42 ccw->count = sizeof (struct pgid); 47 ccw->count = sizeof (struct pgid);
43 ccw->flags = CCW_FLAG_SLI; 48 ccw->flags = CCW_FLAG_SLI;
44 49
@@ -48,6 +53,7 @@ __ccw_device_sense_pgid_start(struct ccw_device *cdev)
48 ret = -ENODEV; 53 ret = -ENODEV;
49 while (cdev->private->imask != 0) { 54 while (cdev->private->imask != 0) {
50 /* Try every path multiple times. */ 55 /* Try every path multiple times. */
56 ccw->cda = (__u32) __pa (&cdev->private->pgid[i]);
51 if (cdev->private->iretry > 0) { 57 if (cdev->private->iretry > 0) {
52 cdev->private->iretry--; 58 cdev->private->iretry--;
53 ret = cio_start (sch, cdev->private->iccws, 59 ret = cio_start (sch, cdev->private->iccws,
@@ -64,7 +70,9 @@ __ccw_device_sense_pgid_start(struct ccw_device *cdev)
64 } 70 }
65 cdev->private->imask >>= 1; 71 cdev->private->imask >>= 1;
66 cdev->private->iretry = 5; 72 cdev->private->iretry = 5;
73 i++;
67 } 74 }
75
68 return ret; 76 return ret;
69} 77}
70 78
@@ -76,7 +84,7 @@ ccw_device_sense_pgid_start(struct ccw_device *cdev)
76 cdev->private->state = DEV_STATE_SENSE_PGID; 84 cdev->private->state = DEV_STATE_SENSE_PGID;
77 cdev->private->imask = 0x80; 85 cdev->private->imask = 0x80;
78 cdev->private->iretry = 5; 86 cdev->private->iretry = 5;
79 memset (&cdev->private->pgid, 0, sizeof (struct pgid)); 87 memset (&cdev->private->pgid, 0, sizeof (cdev->private->pgid));
80 ret = __ccw_device_sense_pgid_start(cdev); 88 ret = __ccw_device_sense_pgid_start(cdev);
81 if (ret && ret != -EBUSY) 89 if (ret && ret != -EBUSY)
82 ccw_device_sense_pgid_done(cdev, ret); 90 ccw_device_sense_pgid_done(cdev, ret);
@@ -91,6 +99,7 @@ __ccw_device_check_sense_pgid(struct ccw_device *cdev)
91{ 99{
92 struct subchannel *sch; 100 struct subchannel *sch;
93 struct irb *irb; 101 struct irb *irb;
102 int i;
94 103
95 sch = to_subchannel(cdev->dev.parent); 104 sch = to_subchannel(cdev->dev.parent);
96 irb = &cdev->private->irb; 105 irb = &cdev->private->irb;
@@ -124,7 +133,8 @@ __ccw_device_check_sense_pgid(struct ccw_device *cdev)
124 sch->schid.sch_no, sch->orb.lpm); 133 sch->schid.sch_no, sch->orb.lpm);
125 return -EACCES; 134 return -EACCES;
126 } 135 }
127 if (cdev->private->pgid.inf.ps.state2 == SNID_STATE2_RESVD_ELSE) { 136 i = 8 - ffs(cdev->private->imask);
137 if (cdev->private->pgid[i].inf.ps.state2 == SNID_STATE2_RESVD_ELSE) {
128 CIO_MSG_EVENT(2, "SNID - Device %04x on Subchannel 0.%x.%04x " 138 CIO_MSG_EVENT(2, "SNID - Device %04x on Subchannel 0.%x.%04x "
129 "is reserved by someone else\n", 139 "is reserved by someone else\n",
130 cdev->private->devno, sch->schid.ssid, 140 cdev->private->devno, sch->schid.ssid,
@@ -162,12 +172,6 @@ ccw_device_sense_pgid_irq(struct ccw_device *cdev, enum dev_event dev_event)
162 memset(&cdev->private->irb, 0, sizeof(struct irb)); 172 memset(&cdev->private->irb, 0, sizeof(struct irb));
163 switch (ret) { 173 switch (ret) {
164 /* 0, -ETIME, -EOPNOTSUPP, -EAGAIN, -EACCES or -EUSERS */ 174 /* 0, -ETIME, -EOPNOTSUPP, -EAGAIN, -EACCES or -EUSERS */
165 case 0: /* Sense Path Group ID successful. */
166 if (cdev->private->pgid.inf.ps.state1 == SNID_STATE1_RESET)
167 memcpy(&cdev->private->pgid, &css[0]->global_pgid,
168 sizeof(struct pgid));
169 ccw_device_sense_pgid_done(cdev, 0);
170 break;
171 case -EOPNOTSUPP: /* Sense Path Group ID not supported */ 175 case -EOPNOTSUPP: /* Sense Path Group ID not supported */
172 ccw_device_sense_pgid_done(cdev, -EOPNOTSUPP); 176 ccw_device_sense_pgid_done(cdev, -EOPNOTSUPP);
173 break; 177 break;
@@ -176,13 +180,15 @@ ccw_device_sense_pgid_irq(struct ccw_device *cdev, enum dev_event dev_event)
176 break; 180 break;
177 case -EACCES: /* channel is not operational. */ 181 case -EACCES: /* channel is not operational. */
178 sch->lpm &= ~cdev->private->imask; 182 sch->lpm &= ~cdev->private->imask;
183 /* Fall through. */
184 case 0: /* Sense Path Group ID successful. */
179 cdev->private->imask >>= 1; 185 cdev->private->imask >>= 1;
180 cdev->private->iretry = 5; 186 cdev->private->iretry = 5;
181 /* Fall through. */ 187 /* Fall through. */
182 case -EAGAIN: /* Try again. */ 188 case -EAGAIN: /* Try again. */
183 ret = __ccw_device_sense_pgid_start(cdev); 189 ret = __ccw_device_sense_pgid_start(cdev);
184 if (ret != 0 && ret != -EBUSY) 190 if (ret != 0 && ret != -EBUSY)
185 ccw_device_sense_pgid_done(cdev, -ENODEV); 191 ccw_device_sense_pgid_done(cdev, ret);
186 break; 192 break;
187 case -EUSERS: /* device is reserved for someone else. */ 193 case -EUSERS: /* device is reserved for someone else. */
188 ccw_device_sense_pgid_done(cdev, -EUSERS); 194 ccw_device_sense_pgid_done(cdev, -EUSERS);
@@ -203,20 +209,20 @@ __ccw_device_do_pgid(struct ccw_device *cdev, __u8 func)
203 sch = to_subchannel(cdev->dev.parent); 209 sch = to_subchannel(cdev->dev.parent);
204 210
205 /* Setup sense path group id channel program. */ 211 /* Setup sense path group id channel program. */
206 cdev->private->pgid.inf.fc = func; 212 cdev->private->pgid[0].inf.fc = func;
207 ccw = cdev->private->iccws; 213 ccw = cdev->private->iccws;
208 if (!cdev->private->flags.pgid_single) { 214 if (!cdev->private->flags.pgid_single) {
209 cdev->private->pgid.inf.fc |= SPID_FUNC_MULTI_PATH; 215 cdev->private->pgid[0].inf.fc |= SPID_FUNC_MULTI_PATH;
210 ccw->cmd_code = CCW_CMD_SUSPEND_RECONN; 216 ccw->cmd_code = CCW_CMD_SUSPEND_RECONN;
211 ccw->cda = 0; 217 ccw->cda = 0;
212 ccw->count = 0; 218 ccw->count = 0;
213 ccw->flags = CCW_FLAG_SLI | CCW_FLAG_CC; 219 ccw->flags = CCW_FLAG_SLI | CCW_FLAG_CC;
214 ccw++; 220 ccw++;
215 } else 221 } else
216 cdev->private->pgid.inf.fc |= SPID_FUNC_SINGLE_PATH; 222 cdev->private->pgid[0].inf.fc |= SPID_FUNC_SINGLE_PATH;
217 223
218 ccw->cmd_code = CCW_CMD_SET_PGID; 224 ccw->cmd_code = CCW_CMD_SET_PGID;
219 ccw->cda = (__u32) __pa (&cdev->private->pgid); 225 ccw->cda = (__u32) __pa (&cdev->private->pgid[0]);
220 ccw->count = sizeof (struct pgid); 226 ccw->count = sizeof (struct pgid);
221 ccw->flags = CCW_FLAG_SLI; 227 ccw->flags = CCW_FLAG_SLI;
222 228
@@ -244,6 +250,48 @@ __ccw_device_do_pgid(struct ccw_device *cdev, __u8 func)
244} 250}
245 251
246/* 252/*
253 * Helper function to send a nop ccw down a path.
254 */
255static int __ccw_device_do_nop(struct ccw_device *cdev)
256{
257 struct subchannel *sch;
258 struct ccw1 *ccw;
259 int ret;
260
261 sch = to_subchannel(cdev->dev.parent);
262
263 /* Setup nop channel program. */
264 ccw = cdev->private->iccws;
265 ccw->cmd_code = CCW_CMD_NOOP;
266 ccw->cda = 0;
267 ccw->count = 0;
268 ccw->flags = CCW_FLAG_SLI;
269
270 /* Reset device status. */
271 memset(&cdev->private->irb, 0, sizeof(struct irb));
272
273 /* Try multiple times. */
274 ret = -ENODEV;
275 if (cdev->private->iretry > 0) {
276 cdev->private->iretry--;
277 ret = cio_start (sch, cdev->private->iccws,
278 cdev->private->imask);
279 /* ret is 0, -EBUSY, -EACCES or -ENODEV */
280 if ((ret != -EACCES) && (ret != -ENODEV))
281 return ret;
282 }
283 /* nop command failed on this path. Switch it off. */
284 sch->lpm &= ~cdev->private->imask;
285 sch->vpm &= ~cdev->private->imask;
286 CIO_MSG_EVENT(2, "NOP - Device %04x on Subchannel "
287 "0.%x.%04x, lpm %02X, became 'not operational'\n",
288 cdev->private->devno, sch->schid.ssid,
289 sch->schid.sch_no, cdev->private->imask);
290 return ret;
291}
292
293
294/*
247 * Called from interrupt context to check if a valid answer 295 * Called from interrupt context to check if a valid answer
248 * to Set Path Group ID was received. 296 * to Set Path Group ID was received.
249 */ 297 */
@@ -282,6 +330,29 @@ __ccw_device_check_pgid(struct ccw_device *cdev)
282 return 0; 330 return 0;
283} 331}
284 332
333/*
334 * Called from interrupt context to check the path status after a nop has
335 * been send.
336 */
337static int __ccw_device_check_nop(struct ccw_device *cdev)
338{
339 struct subchannel *sch;
340 struct irb *irb;
341
342 sch = to_subchannel(cdev->dev.parent);
343 irb = &cdev->private->irb;
344 if (irb->scsw.fctl & (SCSW_FCTL_HALT_FUNC | SCSW_FCTL_CLEAR_FUNC))
345 return -ETIME;
346 if (irb->scsw.cc == 3) {
347 CIO_MSG_EVENT(2, "NOP - Device %04x on Subchannel 0.%x.%04x,"
348 " lpm %02X, became 'not operational'\n",
349 cdev->private->devno, sch->schid.ssid,
350 sch->schid.sch_no, cdev->private->imask);
351 return -EACCES;
352 }
353 return 0;
354}
355
285static void 356static void
286__ccw_device_verify_start(struct ccw_device *cdev) 357__ccw_device_verify_start(struct ccw_device *cdev)
287{ 358{
@@ -296,9 +367,12 @@ __ccw_device_verify_start(struct ccw_device *cdev)
296 if ((sch->vpm & imask) != (sch->lpm & imask)) 367 if ((sch->vpm & imask) != (sch->lpm & imask))
297 break; 368 break;
298 cdev->private->imask = imask; 369 cdev->private->imask = imask;
299 func = (sch->vpm & imask) ? 370 if (cdev->private->options.pgroup) {
300 SPID_FUNC_RESIGN : SPID_FUNC_ESTABLISH; 371 func = (sch->vpm & imask) ?
301 ret = __ccw_device_do_pgid(cdev, func); 372 SPID_FUNC_RESIGN : SPID_FUNC_ESTABLISH;
373 ret = __ccw_device_do_pgid(cdev, func);
374 } else
375 ret = __ccw_device_do_nop(cdev);
302 if (ret == 0 || ret == -EBUSY) 376 if (ret == 0 || ret == -EBUSY)
303 return; 377 return;
304 cdev->private->iretry = 5; 378 cdev->private->iretry = 5;
@@ -327,7 +401,10 @@ ccw_device_verify_irq(struct ccw_device *cdev, enum dev_event dev_event)
327 if (ccw_device_accumulate_and_sense(cdev, irb) != 0) 401 if (ccw_device_accumulate_and_sense(cdev, irb) != 0)
328 return; 402 return;
329 sch = to_subchannel(cdev->dev.parent); 403 sch = to_subchannel(cdev->dev.parent);
330 ret = __ccw_device_check_pgid(cdev); 404 if (cdev->private->options.pgroup)
405 ret = __ccw_device_check_pgid(cdev);
406 else
407 ret = __ccw_device_check_nop(cdev);
331 memset(&cdev->private->irb, 0, sizeof(struct irb)); 408 memset(&cdev->private->irb, 0, sizeof(struct irb));
332 switch (ret) { 409 switch (ret) {
333 /* 0, -ETIME, -EAGAIN, -EOPNOTSUPP or -EACCES */ 410 /* 0, -ETIME, -EAGAIN, -EOPNOTSUPP or -EACCES */
@@ -345,11 +422,10 @@ ccw_device_verify_irq(struct ccw_device *cdev, enum dev_event dev_event)
345 * One of those strange devices which claim to be able 422 * One of those strange devices which claim to be able
346 * to do multipathing but not for Set Path Group ID. 423 * to do multipathing but not for Set Path Group ID.
347 */ 424 */
348 if (cdev->private->flags.pgid_single) { 425 if (cdev->private->flags.pgid_single)
349 ccw_device_verify_done(cdev, -EOPNOTSUPP); 426 cdev->private->options.pgroup = 0;
350 break; 427 else
351 } 428 cdev->private->flags.pgid_single = 1;
352 cdev->private->flags.pgid_single = 1;
353 /* fall through. */ 429 /* fall through. */
354 case -EAGAIN: /* Try again. */ 430 case -EAGAIN: /* Try again. */
355 __ccw_device_verify_start(cdev); 431 __ccw_device_verify_start(cdev);
diff --git a/drivers/s390/cio/device_status.c b/drivers/s390/cio/device_status.c
index 14bef2c179bf..caf148d5caad 100644
--- a/drivers/s390/cio/device_status.c
+++ b/drivers/s390/cio/device_status.c
@@ -67,8 +67,7 @@ ccw_device_path_notoper(struct ccw_device *cdev)
67 sch->schib.pmcw.pnom); 67 sch->schib.pmcw.pnom);
68 68
69 sch->lpm &= ~sch->schib.pmcw.pnom; 69 sch->lpm &= ~sch->schib.pmcw.pnom;
70 if (cdev->private->options.pgroup) 70 cdev->private->flags.doverify = 1;
71 cdev->private->flags.doverify = 1;
72} 71}
73 72
74/* 73/*
@@ -180,7 +179,7 @@ ccw_device_accumulate_esw(struct ccw_device *cdev, struct irb *irb)
180 cdev_irb->esw.esw0.erw.auth = irb->esw.esw0.erw.auth; 179 cdev_irb->esw.esw0.erw.auth = irb->esw.esw0.erw.auth;
181 /* Copy path verification required flag. */ 180 /* Copy path verification required flag. */
182 cdev_irb->esw.esw0.erw.pvrf = irb->esw.esw0.erw.pvrf; 181 cdev_irb->esw.esw0.erw.pvrf = irb->esw.esw0.erw.pvrf;
183 if (irb->esw.esw0.erw.pvrf && cdev->private->options.pgroup) 182 if (irb->esw.esw0.erw.pvrf)
184 cdev->private->flags.doverify = 1; 183 cdev->private->flags.doverify = 1;
185 /* Copy concurrent sense bit. */ 184 /* Copy concurrent sense bit. */
186 cdev_irb->esw.esw0.erw.cons = irb->esw.esw0.erw.cons; 185 cdev_irb->esw.esw0.erw.cons = irb->esw.esw0.erw.cons;
@@ -354,7 +353,7 @@ ccw_device_accumulate_basic_sense(struct ccw_device *cdev, struct irb *irb)
354 } 353 }
355 /* Check if path verification is required. */ 354 /* Check if path verification is required. */
356 if (ccw_device_accumulate_esw_valid(irb) && 355 if (ccw_device_accumulate_esw_valid(irb) &&
357 irb->esw.esw0.erw.pvrf && cdev->private->options.pgroup) 356 irb->esw.esw0.erw.pvrf)
358 cdev->private->flags.doverify = 1; 357 cdev->private->flags.doverify = 1;
359} 358}
360 359
diff --git a/drivers/s390/cio/qdio.c b/drivers/s390/cio/qdio.c
index b70039af70d6..7c93a8798d23 100644
--- a/drivers/s390/cio/qdio.c
+++ b/drivers/s390/cio/qdio.c
@@ -2735,7 +2735,7 @@ qdio_free(struct ccw_device *cdev)
2735 QDIO_DBF_TEXT1(0,trace,dbf_text); 2735 QDIO_DBF_TEXT1(0,trace,dbf_text);
2736 QDIO_DBF_TEXT0(0,setup,dbf_text); 2736 QDIO_DBF_TEXT0(0,setup,dbf_text);
2737 2737
2738 cdev->private->qdio_data = 0; 2738 cdev->private->qdio_data = NULL;
2739 2739
2740 up(&irq_ptr->setting_up_sema); 2740 up(&irq_ptr->setting_up_sema);
2741 2741
diff --git a/drivers/s390/net/iucv.c b/drivers/s390/net/iucv.c
index 189a49275433..0e863df4027a 100644
--- a/drivers/s390/net/iucv.c
+++ b/drivers/s390/net/iucv.c
@@ -692,7 +692,7 @@ iucv_retrieve_buffer (void)
692 iucv_debug(1, "entering"); 692 iucv_debug(1, "entering");
693 if (iucv_cpuid != -1) { 693 if (iucv_cpuid != -1) {
694 smp_call_function_on(iucv_retrieve_buffer_cpuid, 694 smp_call_function_on(iucv_retrieve_buffer_cpuid,
695 0, 0, 1, iucv_cpuid); 695 NULL, 0, 1, iucv_cpuid);
696 /* Release the cpu reserved by iucv_declare_buffer. */ 696 /* Release the cpu reserved by iucv_declare_buffer. */
697 smp_put_cpu(iucv_cpuid); 697 smp_put_cpu(iucv_cpuid);
698 iucv_cpuid = -1; 698 iucv_cpuid = -1;
diff --git a/drivers/s390/net/qeth_main.c b/drivers/s390/net/qeth_main.c
index 4caced21ac8c..103c41470bd2 100644
--- a/drivers/s390/net/qeth_main.c
+++ b/drivers/s390/net/qeth_main.c
@@ -4804,7 +4804,7 @@ static struct qeth_cmd_buffer *
4804qeth_get_setassparms_cmd(struct qeth_card *, enum qeth_ipa_funcs, 4804qeth_get_setassparms_cmd(struct qeth_card *, enum qeth_ipa_funcs,
4805 __u16, __u16, enum qeth_prot_versions); 4805 __u16, __u16, enum qeth_prot_versions);
4806static int 4806static int
4807qeth_arp_query(struct qeth_card *card, char *udata) 4807qeth_arp_query(struct qeth_card *card, char __user *udata)
4808{ 4808{
4809 struct qeth_cmd_buffer *iob; 4809 struct qeth_cmd_buffer *iob;
4810 struct qeth_arp_query_info qinfo = {0, }; 4810 struct qeth_arp_query_info qinfo = {0, };
@@ -4937,7 +4937,7 @@ qeth_get_adapter_cmd(struct qeth_card *card, __u32 command, __u32 cmdlen)
4937 * function to send SNMP commands to OSA-E card 4937 * function to send SNMP commands to OSA-E card
4938 */ 4938 */
4939static int 4939static int
4940qeth_snmp_command(struct qeth_card *card, char *udata) 4940qeth_snmp_command(struct qeth_card *card, char __user *udata)
4941{ 4941{
4942 struct qeth_cmd_buffer *iob; 4942 struct qeth_cmd_buffer *iob;
4943 struct qeth_ipa_cmd *cmd; 4943 struct qeth_ipa_cmd *cmd;
@@ -7909,9 +7909,9 @@ qeth_set_online(struct ccwgroup_device *gdev)
7909} 7909}
7910 7910
7911static struct ccw_device_id qeth_ids[] = { 7911static struct ccw_device_id qeth_ids[] = {
7912 {CCW_DEVICE(0x1731, 0x01), driver_info:QETH_CARD_TYPE_OSAE}, 7912 {CCW_DEVICE(0x1731, 0x01), .driver_info = QETH_CARD_TYPE_OSAE},
7913 {CCW_DEVICE(0x1731, 0x05), driver_info:QETH_CARD_TYPE_IQD}, 7913 {CCW_DEVICE(0x1731, 0x05), .driver_info = QETH_CARD_TYPE_IQD},
7914 {CCW_DEVICE(0x1731, 0x06), driver_info:QETH_CARD_TYPE_OSN}, 7914 {CCW_DEVICE(0x1731, 0x06), .driver_info = QETH_CARD_TYPE_OSN},
7915 {}, 7915 {},
7916}; 7916};
7917MODULE_DEVICE_TABLE(ccw, qeth_ids); 7917MODULE_DEVICE_TABLE(ccw, qeth_ids);
@@ -8380,7 +8380,7 @@ out:
8380 8380
8381static struct notifier_block qeth_ip_notifier = { 8381static struct notifier_block qeth_ip_notifier = {
8382 qeth_ip_event, 8382 qeth_ip_event,
8383 0 8383 NULL,
8384}; 8384};
8385 8385
8386#ifdef CONFIG_QETH_IPV6 8386#ifdef CONFIG_QETH_IPV6
@@ -8433,7 +8433,7 @@ out:
8433 8433
8434static struct notifier_block qeth_ip6_notifier = { 8434static struct notifier_block qeth_ip6_notifier = {
8435 qeth_ip6_event, 8435 qeth_ip6_event,
8436 0 8436 NULL,
8437}; 8437};
8438#endif 8438#endif
8439 8439
@@ -8460,7 +8460,7 @@ qeth_reboot_event(struct notifier_block *this, unsigned long event, void *ptr)
8460 8460
8461static struct notifier_block qeth_reboot_notifier = { 8461static struct notifier_block qeth_reboot_notifier = {
8462 qeth_reboot_event, 8462 qeth_reboot_event,
8463 0 8463 NULL,
8464}; 8464};
8465 8465
8466static int 8466static int
diff --git a/drivers/s390/net/qeth_sys.c b/drivers/s390/net/qeth_sys.c
index 185a9cfbcbdc..001497bbea16 100644
--- a/drivers/s390/net/qeth_sys.c
+++ b/drivers/s390/net/qeth_sys.c
@@ -1755,7 +1755,7 @@ qeth_driver_group_store(struct device_driver *ddrv, const char *buf,
1755} 1755}
1756 1756
1757 1757
1758static DRIVER_ATTR(group, 0200, 0, qeth_driver_group_store); 1758static DRIVER_ATTR(group, 0200, NULL, qeth_driver_group_store);
1759 1759
1760static ssize_t 1760static ssize_t
1761qeth_driver_notifier_register_store(struct device_driver *ddrv, const char *buf, 1761qeth_driver_notifier_register_store(struct device_driver *ddrv, const char *buf,
@@ -1783,7 +1783,7 @@ qeth_driver_notifier_register_store(struct device_driver *ddrv, const char *buf,
1783 return count; 1783 return count;
1784} 1784}
1785 1785
1786static DRIVER_ATTR(notifier_register, 0200, 0, 1786static DRIVER_ATTR(notifier_register, 0200, NULL,
1787 qeth_driver_notifier_register_store); 1787 qeth_driver_notifier_register_store);
1788 1788
1789int 1789int
diff --git a/drivers/s390/net/smsgiucv.c b/drivers/s390/net/smsgiucv.c
index 72118ee68954..b8179c27ceb6 100644
--- a/drivers/s390/net/smsgiucv.c
+++ b/drivers/s390/net/smsgiucv.c
@@ -66,7 +66,7 @@ smsg_message_pending(iucv_MessagePending *eib, void *pgm_data)
66 return; 66 return;
67 } 67 }
68 rc = iucv_receive(eib->ippathid, eib->ipmsgid, eib->iptrgcls, 68 rc = iucv_receive(eib->ippathid, eib->ipmsgid, eib->iptrgcls,
69 msg, len, 0, 0, 0); 69 msg, len, NULL, NULL, NULL);
70 if (rc == 0) { 70 if (rc == 0) {
71 msg[len] = 0; 71 msg[len] = 0;
72 EBCASC(msg, len); 72 EBCASC(msg, len);
@@ -122,7 +122,7 @@ smsg_unregister_callback(char *prefix, void (*callback)(char *from, char *str))
122 struct smsg_callback *cb, *tmp; 122 struct smsg_callback *cb, *tmp;
123 123
124 spin_lock(&smsg_list_lock); 124 spin_lock(&smsg_list_lock);
125 cb = 0; 125 cb = NULL;
126 list_for_each_entry(tmp, &smsg_list, list) 126 list_for_each_entry(tmp, &smsg_list, list)
127 if (tmp->callback == callback && 127 if (tmp->callback == callback &&
128 strcmp(tmp->prefix, prefix) == 0) { 128 strcmp(tmp->prefix, prefix) == 0) {
@@ -139,7 +139,7 @@ smsg_exit(void)
139{ 139{
140 if (smsg_handle > 0) { 140 if (smsg_handle > 0) {
141 cpcmd("SET SMSG OFF", NULL, 0, NULL); 141 cpcmd("SET SMSG OFF", NULL, 0, NULL);
142 iucv_sever(smsg_pathid, 0); 142 iucv_sever(smsg_pathid, NULL);
143 iucv_unregister_program(smsg_handle); 143 iucv_unregister_program(smsg_handle);
144 driver_unregister(&smsg_driver); 144 driver_unregister(&smsg_driver);
145 } 145 }
@@ -162,19 +162,19 @@ smsg_init(void)
162 return rc; 162 return rc;
163 } 163 }
164 smsg_handle = iucv_register_program("SMSGIUCV ", "*MSG ", 164 smsg_handle = iucv_register_program("SMSGIUCV ", "*MSG ",
165 pgmmask, &smsg_ops, 0); 165 pgmmask, &smsg_ops, NULL);
166 if (!smsg_handle) { 166 if (!smsg_handle) {
167 printk(KERN_ERR "SMSGIUCV: failed to register to iucv"); 167 printk(KERN_ERR "SMSGIUCV: failed to register to iucv");
168 driver_unregister(&smsg_driver); 168 driver_unregister(&smsg_driver);
169 return -EIO; /* better errno ? */ 169 return -EIO; /* better errno ? */
170 } 170 }
171 rc = iucv_connect (&smsg_pathid, 255, 0, "*MSG ", 0, 0, 0, 0, 171 rc = iucv_connect (&smsg_pathid, 255, NULL, "*MSG ", NULL, 0,
172 smsg_handle, 0); 172 NULL, NULL, smsg_handle, NULL);
173 if (rc) { 173 if (rc) {
174 printk(KERN_ERR "SMSGIUCV: failed to connect to *MSG"); 174 printk(KERN_ERR "SMSGIUCV: failed to connect to *MSG");
175 iucv_unregister_program(smsg_handle); 175 iucv_unregister_program(smsg_handle);
176 driver_unregister(&smsg_driver); 176 driver_unregister(&smsg_driver);
177 smsg_handle = 0; 177 smsg_handle = NULL;
178 return -EIO; 178 return -EIO;
179 } 179 }
180 cpcmd("SET SMSG IUCV", NULL, 0, NULL); 180 cpcmd("SET SMSG IUCV", NULL, 0, NULL);
diff --git a/drivers/s390/s390mach.c b/drivers/s390/s390mach.c
index ffb3677e354f..5399c5d99b81 100644
--- a/drivers/s390/s390mach.c
+++ b/drivers/s390/s390mach.c
@@ -111,6 +111,16 @@ repeat:
111 break; 111 break;
112 case CRW_RSC_CPATH: 112 case CRW_RSC_CPATH:
113 pr_debug("source is channel path %02X\n", crw[0].rsid); 113 pr_debug("source is channel path %02X\n", crw[0].rsid);
114 /*
115 * Check for solicited machine checks. These are
116 * created by reset channel path and need not be
117 * reported to the common I/O layer.
118 */
119 if (crw[chain].slct) {
120 DBG(KERN_INFO"solicited machine check for "
121 "channel path %02X\n", crw[0].rsid);
122 break;
123 }
114 switch (crw[0].erc) { 124 switch (crw[0].erc) {
115 case CRW_ERC_IPARM: /* Path has come. */ 125 case CRW_ERC_IPARM: /* Path has come. */
116 ret = chp_process_crw(crw[0].rsid, 1); 126 ret = chp_process_crw(crw[0].rsid, 1);
diff --git a/drivers/s390/scsi/zfcp_fsf.c b/drivers/s390/scsi/zfcp_fsf.c
index 6335f9229184..31db2b06faba 100644
--- a/drivers/s390/scsi/zfcp_fsf.c
+++ b/drivers/s390/scsi/zfcp_fsf.c
@@ -2227,7 +2227,7 @@ zfcp_fsf_exchange_port_data(struct zfcp_erp_action *erp_action,
2227 /* setup new FSF request */ 2227 /* setup new FSF request */
2228 retval = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA, 2228 retval = zfcp_fsf_req_create(adapter, FSF_QTCB_EXCHANGE_PORT_DATA,
2229 erp_action ? ZFCP_REQ_AUTO_CLEANUP : 0, 2229 erp_action ? ZFCP_REQ_AUTO_CLEANUP : 0,
2230 0, &lock_flags, &fsf_req); 2230 NULL, &lock_flags, &fsf_req);
2231 if (retval < 0) { 2231 if (retval < 0) {
2232 ZFCP_LOG_INFO("error: Out of resources. Could not create an " 2232 ZFCP_LOG_INFO("error: Out of resources. Could not create an "
2233 "exchange port data request for" 2233 "exchange port data request for"
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 46e14f22ec18..671f4a6a5d18 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -44,30 +44,29 @@ struct scsi_transport_template *zfcp_transport_template;
44 44
45struct zfcp_data zfcp_data = { 45struct zfcp_data zfcp_data = {
46 .scsi_host_template = { 46 .scsi_host_template = {
47 name: ZFCP_NAME, 47 .name = ZFCP_NAME,
48 proc_name: "zfcp", 48 .proc_name = "zfcp",
49 proc_info: NULL, 49 .proc_info = NULL,
50 detect: NULL, 50 .detect = NULL,
51 slave_alloc: zfcp_scsi_slave_alloc, 51 .slave_alloc = zfcp_scsi_slave_alloc,
52 slave_configure: zfcp_scsi_slave_configure, 52 .slave_configure = zfcp_scsi_slave_configure,
53 slave_destroy: zfcp_scsi_slave_destroy, 53 .slave_destroy = zfcp_scsi_slave_destroy,
54 queuecommand: zfcp_scsi_queuecommand, 54 .queuecommand = zfcp_scsi_queuecommand,
55 eh_abort_handler: zfcp_scsi_eh_abort_handler, 55 .eh_abort_handler = zfcp_scsi_eh_abort_handler,
56 eh_device_reset_handler: zfcp_scsi_eh_device_reset_handler, 56 .eh_device_reset_handler = zfcp_scsi_eh_device_reset_handler,
57 eh_bus_reset_handler: zfcp_scsi_eh_bus_reset_handler, 57 .eh_bus_reset_handler = zfcp_scsi_eh_bus_reset_handler,
58 eh_host_reset_handler: zfcp_scsi_eh_host_reset_handler, 58 .eh_host_reset_handler = zfcp_scsi_eh_host_reset_handler,
59 /* FIXME(openfcp): Tune */ 59 .can_queue = 4096,
60 can_queue: 4096, 60 .this_id = -1,
61 this_id: -1, 61 /*
62 /* 62 * FIXME:
63 * FIXME: 63 * one less? can zfcp_create_sbale cope with it?
64 * one less? can zfcp_create_sbale cope with it? 64 */
65 */ 65 .sg_tablesize = ZFCP_MAX_SBALES_PER_REQ,
66 sg_tablesize: ZFCP_MAX_SBALES_PER_REQ, 66 .cmd_per_lun = 1,
67 cmd_per_lun: 1, 67 .unchecked_isa_dma = 0,
68 unchecked_isa_dma: 0, 68 .use_clustering = 1,
69 use_clustering: 1, 69 .sdev_attrs = zfcp_sysfs_sdev_attrs,
70 sdev_attrs: zfcp_sysfs_sdev_attrs,
71 }, 70 },
72 .driver_version = ZFCP_VERSION, 71 .driver_version = ZFCP_VERSION,
73 /* rest initialised with zeros */ 72 /* rest initialised with zeros */
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c
index 0995430e4cf1..0ae9ced00ed4 100644
--- a/drivers/serial/8250.c
+++ b/drivers/serial/8250.c
@@ -299,6 +299,7 @@ static inline int map_8250_out_reg(struct uart_8250_port *up, int offset)
299 299
300static unsigned int serial_in(struct uart_8250_port *up, int offset) 300static unsigned int serial_in(struct uart_8250_port *up, int offset)
301{ 301{
302 unsigned int tmp;
302 offset = map_8250_in_reg(up, offset) << up->port.regshift; 303 offset = map_8250_in_reg(up, offset) << up->port.regshift;
303 304
304 switch (up->port.iotype) { 305 switch (up->port.iotype) {
@@ -317,6 +318,13 @@ static unsigned int serial_in(struct uart_8250_port *up, int offset)
317 return __raw_readl(up->port.membase + offset); 318 return __raw_readl(up->port.membase + offset);
318#endif 319#endif
319 320
321 case UPIO_TSI:
322 if (offset == UART_IIR) {
323 tmp = readl((u32 *)(up->port.membase + UART_RX));
324 return (cpu_to_le32(tmp) >> 8) & 0xff;
325 } else
326 return readb(up->port.membase + offset);
327
320 default: 328 default:
321 return inb(up->port.iobase + offset); 329 return inb(up->port.iobase + offset);
322 } 330 }
@@ -346,6 +354,10 @@ serial_out(struct uart_8250_port *up, int offset, int value)
346 __raw_writel(value, up->port.membase + offset); 354 __raw_writel(value, up->port.membase + offset);
347 break; 355 break;
348#endif 356#endif
357 case UPIO_TSI:
358 if (!((offset == UART_IER) && (value & UART_IER_UUE)))
359 writeb(value, up->port.membase + offset);
360 break;
349 361
350 default: 362 default:
351 outb(value, up->port.iobase + offset); 363 outb(value, up->port.iobase + offset);
@@ -2240,10 +2252,14 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
2240 2252
2241 touch_nmi_watchdog(); 2253 touch_nmi_watchdog();
2242 2254
2243 if (oops_in_progress) { 2255 local_irq_save(flags);
2244 locked = spin_trylock_irqsave(&up->port.lock, flags); 2256 if (up->port.sysrq) {
2257 /* serial8250_handle_port() already took the lock */
2258 locked = 0;
2259 } else if (oops_in_progress) {
2260 locked = spin_trylock(&up->port.lock);
2245 } else 2261 } else
2246 spin_lock_irqsave(&up->port.lock, flags); 2262 spin_lock(&up->port.lock);
2247 2263
2248 /* 2264 /*
2249 * First save the IER then disable the interrupts 2265 * First save the IER then disable the interrupts
@@ -2265,7 +2281,8 @@ serial8250_console_write(struct console *co, const char *s, unsigned int count)
2265 serial_out(up, UART_IER, ier); 2281 serial_out(up, UART_IER, ier);
2266 2282
2267 if (locked) 2283 if (locked)
2268 spin_unlock_irqrestore(&up->port.lock, flags); 2284 spin_unlock(&up->port.lock);
2285 local_irq_restore(flags);
2269} 2286}
2270 2287
2271static int serial8250_console_setup(struct console *co, char *options) 2288static int serial8250_console_setup(struct console *co, char *options)
diff --git a/drivers/serial/dz.c b/drivers/serial/dz.c
index d119c8296a78..8a98aae80e22 100644
--- a/drivers/serial/dz.c
+++ b/drivers/serial/dz.c
@@ -673,7 +673,7 @@ static void dz_reset(struct dz_port *dport)
673} 673}
674 674
675#ifdef CONFIG_SERIAL_DZ_CONSOLE 675#ifdef CONFIG_SERIAL_DZ_CONSOLE
676static void dz_console_putchar(struct uart_port *port, int ch) 676static void dz_console_putchar(struct uart_port *uport, int ch)
677{ 677{
678 struct dz_port *dport = (struct dz_port *)uport; 678 struct dz_port *dport = (struct dz_port *)uport;
679 unsigned long flags; 679 unsigned long flags;
diff --git a/drivers/serial/ip22zilog.c b/drivers/serial/ip22zilog.c
index 342042889f6e..5ff269fb604c 100644
--- a/drivers/serial/ip22zilog.c
+++ b/drivers/serial/ip22zilog.c
@@ -1143,9 +1143,8 @@ static void __init ip22zilog_prepare(void)
1143 up[(chip * 2) + 1].port.fifosize = 1; 1143 up[(chip * 2) + 1].port.fifosize = 1;
1144 up[(chip * 2) + 1].port.ops = &ip22zilog_pops; 1144 up[(chip * 2) + 1].port.ops = &ip22zilog_pops;
1145 up[(chip * 2) + 1].port.type = PORT_IP22ZILOG; 1145 up[(chip * 2) + 1].port.type = PORT_IP22ZILOG;
1146 up[(chip * 2) + 1].port.flags |= IP22ZILOG_FLAG_IS_CHANNEL_A;
1147 up[(chip * 2) + 1].port.line = (chip * 2) + 1; 1146 up[(chip * 2) + 1].port.line = (chip * 2) + 1;
1148 up[(chip * 2) + 1].flags = 0; 1147 up[(chip * 2) + 1].flags |= IP22ZILOG_FLAG_IS_CHANNEL_A;
1149 } 1148 }
1150} 1149}
1151 1150
diff --git a/drivers/serial/serial_core.c b/drivers/serial/serial_core.c
index d5f636fbf29a..80ef7d482756 100644
--- a/drivers/serial/serial_core.c
+++ b/drivers/serial/serial_core.c
@@ -2036,6 +2036,7 @@ uart_report_port(struct uart_driver *drv, struct uart_port *port)
2036 case UPIO_MEM: 2036 case UPIO_MEM:
2037 case UPIO_MEM32: 2037 case UPIO_MEM32:
2038 case UPIO_AU: 2038 case UPIO_AU:
2039 case UPIO_TSI:
2039 snprintf(address, sizeof(address), 2040 snprintf(address, sizeof(address),
2040 "MMIO 0x%lx", port->mapbase); 2041 "MMIO 0x%lx", port->mapbase);
2041 break; 2042 break;
diff --git a/drivers/serial/sunsab.c b/drivers/serial/sunsab.c
index 0dbd4df44c05..979497f108c8 100644
--- a/drivers/serial/sunsab.c
+++ b/drivers/serial/sunsab.c
@@ -1052,7 +1052,7 @@ static int __devinit sab_probe(struct of_device *op, const struct of_device_id *
1052 if (err) 1052 if (err)
1053 return err; 1053 return err;
1054 1054
1055 err = sunsab_init_one(&up[0], op, 0, 1055 err = sunsab_init_one(&up[1], op, 0,
1056 (inst * 2) + 1); 1056 (inst * 2) + 1);
1057 if (err) { 1057 if (err) {
1058 of_iounmap(up[0].port.membase, 1058 of_iounmap(up[0].port.membase,
diff --git a/drivers/serial/sunsu.c b/drivers/serial/sunsu.c
index f9013baba05b..d3a5aeee73a3 100644
--- a/drivers/serial/sunsu.c
+++ b/drivers/serial/sunsu.c
@@ -1200,6 +1200,11 @@ static int __init sunsu_kbd_ms_init(struct uart_sunsu_port *up)
1200 if (up->port.type == PORT_UNKNOWN) 1200 if (up->port.type == PORT_UNKNOWN)
1201 return -ENODEV; 1201 return -ENODEV;
1202 1202
1203 printk("%s: %s port at %lx, irq %u\n",
1204 to_of_device(up->port.dev)->node->full_name,
1205 (up->su_type == SU_PORT_KBD) ? "Keyboard" : "Mouse",
1206 up->port.mapbase, up->port.irq);
1207
1203#ifdef CONFIG_SERIO 1208#ifdef CONFIG_SERIO
1204 serio = &up->serio; 1209 serio = &up->serio;
1205 serio->port_data = up; 1210 serio->port_data = up;
@@ -1406,25 +1411,35 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m
1406 struct device_node *dp = op->node; 1411 struct device_node *dp = op->node;
1407 struct uart_sunsu_port *up; 1412 struct uart_sunsu_port *up;
1408 struct resource *rp; 1413 struct resource *rp;
1414 enum su_type type;
1409 int err; 1415 int err;
1410 1416
1411 if (inst >= UART_NR) 1417 type = su_get_type(dp);
1412 return -EINVAL; 1418 if (type == SU_PORT_PORT) {
1419 if (inst >= UART_NR)
1420 return -EINVAL;
1421 up = &sunsu_ports[inst];
1422 } else {
1423 up = kzalloc(sizeof(*up), GFP_KERNEL);
1424 if (!up)
1425 return -ENOMEM;
1426 }
1413 1427
1414 up = &sunsu_ports[inst];
1415 up->port.line = inst; 1428 up->port.line = inst;
1416 1429
1417 spin_lock_init(&up->port.lock); 1430 spin_lock_init(&up->port.lock);
1418 1431
1419 up->su_type = su_get_type(dp); 1432 up->su_type = type;
1420 1433
1421 rp = &op->resource[0]; 1434 rp = &op->resource[0];
1422 up->port.mapbase = op->resource[0].start; 1435 up->port.mapbase = rp->start;
1423
1424 up->reg_size = (rp->end - rp->start) + 1; 1436 up->reg_size = (rp->end - rp->start) + 1;
1425 up->port.membase = of_ioremap(rp, 0, up->reg_size, "su"); 1437 up->port.membase = of_ioremap(rp, 0, up->reg_size, "su");
1426 if (!up->port.membase) 1438 if (!up->port.membase) {
1439 if (type != SU_PORT_PORT)
1440 kfree(up);
1427 return -ENOMEM; 1441 return -ENOMEM;
1442 }
1428 1443
1429 up->port.irq = op->irqs[0]; 1444 up->port.irq = op->irqs[0];
1430 1445
@@ -1436,8 +1451,11 @@ static int __devinit su_probe(struct of_device *op, const struct of_device_id *m
1436 err = 0; 1451 err = 0;
1437 if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) { 1452 if (up->su_type == SU_PORT_KBD || up->su_type == SU_PORT_MS) {
1438 err = sunsu_kbd_ms_init(up); 1453 err = sunsu_kbd_ms_init(up);
1439 if (err) 1454 if (err) {
1455 kfree(up);
1440 goto out_unmap; 1456 goto out_unmap;
1457 }
1458 dev_set_drvdata(&op->dev, up);
1441 1459
1442 return 0; 1460 return 0;
1443 } 1461 }
@@ -1476,8 +1494,12 @@ static int __devexit su_remove(struct of_device *dev)
1476#ifdef CONFIG_SERIO 1494#ifdef CONFIG_SERIO
1477 serio_unregister_port(&up->serio); 1495 serio_unregister_port(&up->serio);
1478#endif 1496#endif
1479 } else if (up->port.type != PORT_UNKNOWN) 1497 kfree(up);
1498 } else if (up->port.type != PORT_UNKNOWN) {
1480 uart_remove_one_port(&sunsu_reg, &up->port); 1499 uart_remove_one_port(&sunsu_reg, &up->port);
1500 }
1501
1502 dev_set_drvdata(&dev->dev, NULL);
1481 1503
1482 return 0; 1504 return 0;
1483} 1505}
diff --git a/drivers/serial/vr41xx_siu.c b/drivers/serial/vr41xx_siu.c
index e93d0edc2e08..6c8b0ea83c3c 100644
--- a/drivers/serial/vr41xx_siu.c
+++ b/drivers/serial/vr41xx_siu.c
@@ -38,6 +38,7 @@
38#include <linux/tty_flip.h> 38#include <linux/tty_flip.h>
39 39
40#include <asm/io.h> 40#include <asm/io.h>
41#include <asm/vr41xx/irq.h>
41#include <asm/vr41xx/siu.h> 42#include <asm/vr41xx/siu.h>
42#include <asm/vr41xx/vr41xx.h> 43#include <asm/vr41xx/vr41xx.h>
43 44
diff --git a/drivers/usb/Kconfig b/drivers/usb/Kconfig
index 7fdbc5dad5fd..2ee742d40c43 100644
--- a/drivers/usb/Kconfig
+++ b/drivers/usb/Kconfig
@@ -23,6 +23,7 @@ config USB_ARCH_HAS_OHCI
23 default y if ARCH_LH7A404 23 default y if ARCH_LH7A404
24 default y if ARCH_S3C2410 24 default y if ARCH_S3C2410
25 default y if PXA27x 25 default y if PXA27x
26 default y if ARCH_EP93XX
26 default y if ARCH_AT91RM9200 27 default y if ARCH_AT91RM9200
27 # PPC: 28 # PPC:
28 default y if STB03xxx 29 default y if STB03xxx
diff --git a/drivers/usb/Makefile b/drivers/usb/Makefile
index c7123bf71c58..4710eb02ed64 100644
--- a/drivers/usb/Makefile
+++ b/drivers/usb/Makefile
@@ -48,7 +48,7 @@ obj-$(CONFIG_USB_MICROTEK) += image/
48obj-$(CONFIG_USB_SERIAL) += serial/ 48obj-$(CONFIG_USB_SERIAL) += serial/
49 49
50obj-$(CONFIG_USB_AUERSWALD) += misc/ 50obj-$(CONFIG_USB_AUERSWALD) += misc/
51obj-$(CONFIG_USB_CY7C63) += misc/ 51obj-$(CONFIG_USB_CYPRESS_CY7C63)+= misc/
52obj-$(CONFIG_USB_CYTHERM) += misc/ 52obj-$(CONFIG_USB_CYTHERM) += misc/
53obj-$(CONFIG_USB_EMI26) += misc/ 53obj-$(CONFIG_USB_EMI26) += misc/
54obj-$(CONFIG_USB_EMI62) += misc/ 54obj-$(CONFIG_USB_EMI62) += misc/
diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
index 3670d77e912c..ca90326f2f5c 100644
--- a/drivers/usb/class/cdc-acm.c
+++ b/drivers/usb/class/cdc-acm.c
@@ -291,13 +291,13 @@ static void acm_read_bulk(struct urb *urb, struct pt_regs *regs)
291 struct acm_ru *rcv = urb->context; 291 struct acm_ru *rcv = urb->context;
292 struct acm *acm = rcv->instance; 292 struct acm *acm = rcv->instance;
293 int status = urb->status; 293 int status = urb->status;
294 dbg("Entering acm_read_bulk with status %d\n", urb->status); 294 dbg("Entering acm_read_bulk with status %d", urb->status);
295 295
296 if (!ACM_READY(acm)) 296 if (!ACM_READY(acm))
297 return; 297 return;
298 298
299 if (status) 299 if (status)
300 dev_dbg(&acm->data->dev, "bulk rx status %d\n", status); 300 dev_dbg(&acm->data->dev, "bulk rx status %d", status);
301 301
302 buf = rcv->buffer; 302 buf = rcv->buffer;
303 buf->size = urb->actual_length; 303 buf->size = urb->actual_length;
@@ -343,7 +343,7 @@ next_buffer:
343 list_del(&buf->list); 343 list_del(&buf->list);
344 spin_unlock(&acm->read_lock); 344 spin_unlock(&acm->read_lock);
345 345
346 dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d\n", buf, buf->size); 346 dbg("acm_rx_tasklet: procesing buf 0x%p, size = %d", buf, buf->size);
347 347
348 tty_buffer_request_room(tty, buf->size); 348 tty_buffer_request_room(tty, buf->size);
349 if (!acm->throttle) 349 if (!acm->throttle)
@@ -394,7 +394,7 @@ urbs:
394 rcv->urb->transfer_dma = buf->dma; 394 rcv->urb->transfer_dma = buf->dma;
395 rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP; 395 rcv->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
396 396
397 dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p\n", rcv->urb, rcv, buf); 397 dbg("acm_rx_tasklet: sending urb 0x%p, rcv 0x%p, buf 0x%p", rcv->urb, rcv, buf);
398 398
399 /* This shouldn't kill the driver as unsuccessful URBs are returned to the 399 /* This shouldn't kill the driver as unsuccessful URBs are returned to the
400 free-urbs-pool and resubmited ASAP */ 400 free-urbs-pool and resubmited ASAP */
@@ -413,7 +413,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
413{ 413{
414 struct acm *acm = (struct acm *)urb->context; 414 struct acm *acm = (struct acm *)urb->context;
415 415
416 dbg("Entering acm_write_bulk with status %d\n", urb->status); 416 dbg("Entering acm_write_bulk with status %d", urb->status);
417 417
418 acm_write_done(acm); 418 acm_write_done(acm);
419 acm_write_start(acm); 419 acm_write_start(acm);
@@ -424,7 +424,7 @@ static void acm_write_bulk(struct urb *urb, struct pt_regs *regs)
424static void acm_softint(void *private) 424static void acm_softint(void *private)
425{ 425{
426 struct acm *acm = private; 426 struct acm *acm = private;
427 dbg("Entering acm_softint.\n"); 427 dbg("Entering acm_softint.");
428 428
429 if (!ACM_READY(acm)) 429 if (!ACM_READY(acm))
430 return; 430 return;
@@ -440,7 +440,7 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
440 struct acm *acm; 440 struct acm *acm;
441 int rv = -EINVAL; 441 int rv = -EINVAL;
442 int i; 442 int i;
443 dbg("Entering acm_tty_open.\n"); 443 dbg("Entering acm_tty_open.");
444 444
445 mutex_lock(&open_mutex); 445 mutex_lock(&open_mutex);
446 446
@@ -541,7 +541,7 @@ static int acm_tty_write(struct tty_struct *tty, const unsigned char *buf, int c
541 int wbn; 541 int wbn;
542 struct acm_wb *wb; 542 struct acm_wb *wb;
543 543
544 dbg("Entering acm_tty_write to write %d bytes,\n", count); 544 dbg("Entering acm_tty_write to write %d bytes,", count);
545 545
546 if (!ACM_READY(acm)) 546 if (!ACM_READY(acm))
547 return -EINVAL; 547 return -EINVAL;
@@ -793,7 +793,7 @@ static int acm_probe (struct usb_interface *intf,
793 793
794 if (!buflen) { 794 if (!buflen) {
795 if (intf->cur_altsetting->endpoint->extralen && intf->cur_altsetting->endpoint->extra) { 795 if (intf->cur_altsetting->endpoint->extralen && intf->cur_altsetting->endpoint->extra) {
796 dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint\n"); 796 dev_dbg(&intf->dev,"Seeking extra descriptors on endpoint");
797 buflen = intf->cur_altsetting->endpoint->extralen; 797 buflen = intf->cur_altsetting->endpoint->extralen;
798 buffer = intf->cur_altsetting->endpoint->extra; 798 buffer = intf->cur_altsetting->endpoint->extra;
799 } else { 799 } else {
@@ -842,24 +842,24 @@ next_desc:
842 842
843 if (!union_header) { 843 if (!union_header) {
844 if (call_interface_num > 0) { 844 if (call_interface_num > 0) {
845 dev_dbg(&intf->dev,"No union descriptor, using call management descriptor\n"); 845 dev_dbg(&intf->dev,"No union descriptor, using call management descriptor");
846 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num)); 846 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = call_interface_num));
847 control_interface = intf; 847 control_interface = intf;
848 } else { 848 } else {
849 dev_dbg(&intf->dev,"No union descriptor, giving up\n"); 849 dev_dbg(&intf->dev,"No union descriptor, giving up");
850 return -ENODEV; 850 return -ENODEV;
851 } 851 }
852 } else { 852 } else {
853 control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0); 853 control_interface = usb_ifnum_to_if(usb_dev, union_header->bMasterInterface0);
854 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0)); 854 data_interface = usb_ifnum_to_if(usb_dev, (data_interface_num = union_header->bSlaveInterface0));
855 if (!control_interface || !data_interface) { 855 if (!control_interface || !data_interface) {
856 dev_dbg(&intf->dev,"no interfaces\n"); 856 dev_dbg(&intf->dev,"no interfaces");
857 return -ENODEV; 857 return -ENODEV;
858 } 858 }
859 } 859 }
860 860
861 if (data_interface_num != call_interface_num) 861 if (data_interface_num != call_interface_num)
862 dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.\n"); 862 dev_dbg(&intf->dev,"Seperate call control interface. That is not fully supported.");
863 863
864skip_normal_probe: 864skip_normal_probe:
865 865
@@ -867,7 +867,7 @@ skip_normal_probe:
867 if (data_interface->cur_altsetting->desc.bInterfaceClass != CDC_DATA_INTERFACE_TYPE) { 867 if (data_interface->cur_altsetting->desc.bInterfaceClass != CDC_DATA_INTERFACE_TYPE) {
868 if (control_interface->cur_altsetting->desc.bInterfaceClass == CDC_DATA_INTERFACE_TYPE) { 868 if (control_interface->cur_altsetting->desc.bInterfaceClass == CDC_DATA_INTERFACE_TYPE) {
869 struct usb_interface *t; 869 struct usb_interface *t;
870 dev_dbg(&intf->dev,"Your device has switched interfaces.\n"); 870 dev_dbg(&intf->dev,"Your device has switched interfaces.");
871 871
872 t = control_interface; 872 t = control_interface;
873 control_interface = data_interface; 873 control_interface = data_interface;
@@ -878,7 +878,7 @@ skip_normal_probe:
878 } 878 }
879 879
880 if (usb_interface_claimed(data_interface)) { /* valid in this context */ 880 if (usb_interface_claimed(data_interface)) { /* valid in this context */
881 dev_dbg(&intf->dev,"The data interface isn't available\n"); 881 dev_dbg(&intf->dev,"The data interface isn't available");
882 return -EBUSY; 882 return -EBUSY;
883 } 883 }
884 884
@@ -895,7 +895,7 @@ skip_normal_probe:
895 if ((epread->bEndpointAddress & USB_DIR_IN) != USB_DIR_IN) { 895 if ((epread->bEndpointAddress & USB_DIR_IN) != USB_DIR_IN) {
896 /* descriptors are swapped */ 896 /* descriptors are swapped */
897 struct usb_endpoint_descriptor *t; 897 struct usb_endpoint_descriptor *t;
898 dev_dbg(&intf->dev,"The data interface has switched endpoints\n"); 898 dev_dbg(&intf->dev,"The data interface has switched endpoints");
899 899
900 t = epread; 900 t = epread;
901 epread = epwrite; 901 epread = epwrite;
@@ -910,7 +910,7 @@ skip_normal_probe:
910 } 910 }
911 911
912 if (!(acm = kzalloc(sizeof(struct acm), GFP_KERNEL))) { 912 if (!(acm = kzalloc(sizeof(struct acm), GFP_KERNEL))) {
913 dev_dbg(&intf->dev, "out of memory (acm kzalloc)\n"); 913 dev_dbg(&intf->dev, "out of memory (acm kzalloc)");
914 goto alloc_fail; 914 goto alloc_fail;
915 } 915 }
916 916
@@ -936,26 +936,26 @@ skip_normal_probe:
936 936
937 buf = usb_buffer_alloc(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma); 937 buf = usb_buffer_alloc(usb_dev, ctrlsize, GFP_KERNEL, &acm->ctrl_dma);
938 if (!buf) { 938 if (!buf) {
939 dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)\n"); 939 dev_dbg(&intf->dev, "out of memory (ctrl buffer alloc)");
940 goto alloc_fail2; 940 goto alloc_fail2;
941 } 941 }
942 acm->ctrl_buffer = buf; 942 acm->ctrl_buffer = buf;
943 943
944 if (acm_write_buffers_alloc(acm) < 0) { 944 if (acm_write_buffers_alloc(acm) < 0) {
945 dev_dbg(&intf->dev, "out of memory (write buffer alloc)\n"); 945 dev_dbg(&intf->dev, "out of memory (write buffer alloc)");
946 goto alloc_fail4; 946 goto alloc_fail4;
947 } 947 }
948 948
949 acm->ctrlurb = usb_alloc_urb(0, GFP_KERNEL); 949 acm->ctrlurb = usb_alloc_urb(0, GFP_KERNEL);
950 if (!acm->ctrlurb) { 950 if (!acm->ctrlurb) {
951 dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)\n"); 951 dev_dbg(&intf->dev, "out of memory (ctrlurb kmalloc)");
952 goto alloc_fail5; 952 goto alloc_fail5;
953 } 953 }
954 for (i = 0; i < num_rx_buf; i++) { 954 for (i = 0; i < num_rx_buf; i++) {
955 struct acm_ru *rcv = &(acm->ru[i]); 955 struct acm_ru *rcv = &(acm->ru[i]);
956 956
957 if (!(rcv->urb = usb_alloc_urb(0, GFP_KERNEL))) { 957 if (!(rcv->urb = usb_alloc_urb(0, GFP_KERNEL))) {
958 dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)\n"); 958 dev_dbg(&intf->dev, "out of memory (read urbs usb_alloc_urb)");
959 goto alloc_fail7; 959 goto alloc_fail7;
960 } 960 }
961 961
@@ -966,13 +966,13 @@ skip_normal_probe:
966 struct acm_rb *buf = &(acm->rb[i]); 966 struct acm_rb *buf = &(acm->rb[i]);
967 967
968 if (!(buf->base = usb_buffer_alloc(acm->dev, readsize, GFP_KERNEL, &buf->dma))) { 968 if (!(buf->base = usb_buffer_alloc(acm->dev, readsize, GFP_KERNEL, &buf->dma))) {
969 dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)\n"); 969 dev_dbg(&intf->dev, "out of memory (read bufs usb_buffer_alloc)");
970 goto alloc_fail7; 970 goto alloc_fail7;
971 } 971 }
972 } 972 }
973 acm->writeurb = usb_alloc_urb(0, GFP_KERNEL); 973 acm->writeurb = usb_alloc_urb(0, GFP_KERNEL);
974 if (!acm->writeurb) { 974 if (!acm->writeurb) {
975 dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)\n"); 975 dev_dbg(&intf->dev, "out of memory (writeurb kmalloc)");
976 goto alloc_fail7; 976 goto alloc_fail7;
977 } 977 }
978 978
@@ -1086,6 +1086,9 @@ static struct usb_device_id acm_ids[] = {
1086 { USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */ 1086 { USB_DEVICE(0x0ace, 0x1608), /* ZyDAS 56K USB MODEM */
1087 .driver_info = SINGLE_RX_URB, /* firmware bug */ 1087 .driver_info = SINGLE_RX_URB, /* firmware bug */
1088 }, 1088 },
1089 { USB_DEVICE(0x0ace, 0x1611), /* ZyDAS 56K USB MODEM - new version */
1090 .driver_info = SINGLE_RX_URB, /* firmware bug */
1091 },
1089 /* control interfaces with various AT-command sets */ 1092 /* control interfaces with various AT-command sets */
1090 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM, 1093 { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ACM,
1091 USB_CDC_ACM_PROTO_AT_V25TER) }, 1094 USB_CDC_ACM_PROTO_AT_V25TER) },
diff --git a/drivers/usb/core/Kconfig b/drivers/usb/core/Kconfig
index a08787e253aa..6e3b5358a760 100644
--- a/drivers/usb/core/Kconfig
+++ b/drivers/usb/core/Kconfig
@@ -31,9 +31,6 @@ config USB_DEVICEFS
31 For the format of the various /proc/bus/usb/ files, please read 31 For the format of the various /proc/bus/usb/ files, please read
32 <file:Documentation/usb/proc_usb_info.txt>. 32 <file:Documentation/usb/proc_usb_info.txt>.
33 33
34 Please note that this code is completely unrelated to devfs, the
35 "/dev file system support".
36
37 Most users want to say Y here. 34 Most users want to say Y here.
38 35
39config USB_BANDWIDTH 36config USB_BANDWIDTH
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
index 875596e98e42..26c8cb5f3e67 100644
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -1790,7 +1790,10 @@ static int finish_device_resume(struct usb_device *udev)
1790 * and device drivers will know about any resume quirks. 1790 * and device drivers will know about any resume quirks.
1791 */ 1791 */
1792 status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus); 1792 status = usb_get_status(udev, USB_RECIP_DEVICE, 0, &devstatus);
1793 if (status < 2) 1793 if (status >= 0)
1794 status = (status == 2 ? 0 : -ENODEV);
1795
1796 if (status)
1794 dev_dbg(&udev->dev, 1797 dev_dbg(&udev->dev,
1795 "gone after usb resume? status %d\n", 1798 "gone after usb resume? status %d\n",
1796 status); 1799 status);
@@ -1879,7 +1882,12 @@ hub_port_resume(struct usb_hub *hub, int port1, struct usb_device *udev)
1879 dev_dbg(hub->intfdev, 1882 dev_dbg(hub->intfdev,
1880 "port %d status %04x.%04x after resume, %d\n", 1883 "port %d status %04x.%04x after resume, %d\n",
1881 port1, portchange, devstatus, status); 1884 port1, portchange, devstatus, status);
1885 if (status >= 0)
1886 status = -ENODEV;
1882 } else { 1887 } else {
1888 if (portchange & USB_PORT_STAT_C_SUSPEND)
1889 clear_port_feature(hub->hdev, port1,
1890 USB_PORT_FEAT_C_SUSPEND);
1883 /* TRSMRCY = 10 msec */ 1891 /* TRSMRCY = 10 msec */
1884 msleep(10); 1892 msleep(10);
1885 if (udev) 1893 if (udev)
diff --git a/drivers/usb/core/inode.c b/drivers/usb/core/inode.c
index f48c3dbc367a..3182c2224ba2 100644
--- a/drivers/usb/core/inode.c
+++ b/drivers/usb/core/inode.c
@@ -695,7 +695,7 @@ static void usbfs_remove_device(struct usb_device *dev)
695 wake_up_all(&ds->wait); 695 wake_up_all(&ds->wait);
696 list_del_init(&ds->list); 696 list_del_init(&ds->list);
697 if (ds->discsignr) { 697 if (ds->discsignr) {
698 sinfo.si_signo = SIGPIPE; 698 sinfo.si_signo = ds->discsignr;
699 sinfo.si_errno = EPIPE; 699 sinfo.si_errno = EPIPE;
700 sinfo.si_code = SI_ASYNCIO; 700 sinfo.si_code = SI_ASYNCIO;
701 sinfo.si_addr = ds->disccontext; 701 sinfo.si_addr = ds->disccontext;
diff --git a/drivers/usb/gadget/epautoconf.c b/drivers/usb/gadget/epautoconf.c
index f7c6d758e1b0..53d584589c26 100644
--- a/drivers/usb/gadget/epautoconf.c
+++ b/drivers/usb/gadget/epautoconf.c
@@ -34,12 +34,12 @@
34 34
35 35
36/* we must assign addresses for configurable endpoints (like net2280) */ 36/* we must assign addresses for configurable endpoints (like net2280) */
37static __initdata unsigned epnum; 37static __devinitdata unsigned epnum;
38 38
39// #define MANY_ENDPOINTS 39// #define MANY_ENDPOINTS
40#ifdef MANY_ENDPOINTS 40#ifdef MANY_ENDPOINTS
41/* more than 15 configurable endpoints */ 41/* more than 15 configurable endpoints */
42static __initdata unsigned in_epnum; 42static __devinitdata unsigned in_epnum;
43#endif 43#endif
44 44
45 45
@@ -59,7 +59,7 @@ static __initdata unsigned in_epnum;
59 * NOTE: each endpoint is unidirectional, as specified by its USB 59 * NOTE: each endpoint is unidirectional, as specified by its USB
60 * descriptor; and isn't specific to a configuration or altsetting. 60 * descriptor; and isn't specific to a configuration or altsetting.
61 */ 61 */
62static int __init 62static int __devinit
63ep_matches ( 63ep_matches (
64 struct usb_gadget *gadget, 64 struct usb_gadget *gadget,
65 struct usb_ep *ep, 65 struct usb_ep *ep,
@@ -73,7 +73,7 @@ ep_matches (
73 /* endpoint already claimed? */ 73 /* endpoint already claimed? */
74 if (0 != ep->driver_data) 74 if (0 != ep->driver_data)
75 return 0; 75 return 0;
76 76
77 /* only support ep0 for portable CONTROL traffic */ 77 /* only support ep0 for portable CONTROL traffic */
78 type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK; 78 type = desc->bmAttributes & USB_ENDPOINT_XFERTYPE_MASK;
79 if (USB_ENDPOINT_XFER_CONTROL == type) 79 if (USB_ENDPOINT_XFER_CONTROL == type)
@@ -186,7 +186,7 @@ ep_matches (
186 return 1; 186 return 1;
187} 187}
188 188
189static struct usb_ep * __init 189static struct usb_ep * __devinit
190find_ep (struct usb_gadget *gadget, const char *name) 190find_ep (struct usb_gadget *gadget, const char *name)
191{ 191{
192 struct usb_ep *ep; 192 struct usb_ep *ep;
@@ -228,7 +228,7 @@ find_ep (struct usb_gadget *gadget, const char *name)
228 * 228 *
229 * On failure, this returns a null endpoint descriptor. 229 * On failure, this returns a null endpoint descriptor.
230 */ 230 */
231struct usb_ep * __init usb_ep_autoconfig ( 231struct usb_ep * __devinit usb_ep_autoconfig (
232 struct usb_gadget *gadget, 232 struct usb_gadget *gadget,
233 struct usb_endpoint_descriptor *desc 233 struct usb_endpoint_descriptor *desc
234) 234)
@@ -276,7 +276,7 @@ struct usb_ep * __init usb_ep_autoconfig (
276 return ep; 276 return ep;
277 } 277 }
278 278
279 /* Second, look at endpoints until an unclaimed one looks usable */ 279 /* Second, look at endpoints until an unclaimed one looks usable */
280 list_for_each_entry (ep, &gadget->ep_list, ep_list) { 280 list_for_each_entry (ep, &gadget->ep_list, ep_list) {
281 if (ep_matches (gadget, ep, desc)) 281 if (ep_matches (gadget, ep, desc))
282 return ep; 282 return ep;
@@ -295,7 +295,7 @@ struct usb_ep * __init usb_ep_autoconfig (
295 * state such as ep->driver_data and the record of assigned endpoints 295 * state such as ep->driver_data and the record of assigned endpoints
296 * used by usb_ep_autoconfig(). 296 * used by usb_ep_autoconfig().
297 */ 297 */
298void __init usb_ep_autoconfig_reset (struct usb_gadget *gadget) 298void __devinit usb_ep_autoconfig_reset (struct usb_gadget *gadget)
299{ 299{
300 struct usb_ep *ep; 300 struct usb_ep *ep;
301 301
diff --git a/drivers/usb/gadget/ether.c b/drivers/usb/gadget/ether.c
index 8320fcef0425..4fe1bec1c255 100644
--- a/drivers/usb/gadget/ether.c
+++ b/drivers/usb/gadget/ether.c
@@ -2131,7 +2131,7 @@ eth_req_free (struct usb_ep *ep, struct usb_request *req)
2131} 2131}
2132 2132
2133 2133
2134static void __exit 2134static void /* __init_or_exit */
2135eth_unbind (struct usb_gadget *gadget) 2135eth_unbind (struct usb_gadget *gadget)
2136{ 2136{
2137 struct eth_dev *dev = get_gadget_data (gadget); 2137 struct eth_dev *dev = get_gadget_data (gadget);
@@ -2158,7 +2158,7 @@ eth_unbind (struct usb_gadget *gadget)
2158 set_gadget_data (gadget, NULL); 2158 set_gadget_data (gadget, NULL);
2159} 2159}
2160 2160
2161static u8 __init nibble (unsigned char c) 2161static u8 __devinit nibble (unsigned char c)
2162{ 2162{
2163 if (likely (isdigit (c))) 2163 if (likely (isdigit (c)))
2164 return c - '0'; 2164 return c - '0';
@@ -2168,7 +2168,7 @@ static u8 __init nibble (unsigned char c)
2168 return 0; 2168 return 0;
2169} 2169}
2170 2170
2171static int __init get_ether_addr(const char *str, u8 *dev_addr) 2171static int __devinit get_ether_addr(const char *str, u8 *dev_addr)
2172{ 2172{
2173 if (str) { 2173 if (str) {
2174 unsigned i; 2174 unsigned i;
@@ -2189,7 +2189,7 @@ static int __init get_ether_addr(const char *str, u8 *dev_addr)
2189 return 1; 2189 return 1;
2190} 2190}
2191 2191
2192static int __init 2192static int __devinit
2193eth_bind (struct usb_gadget *gadget) 2193eth_bind (struct usb_gadget *gadget)
2194{ 2194{
2195 struct eth_dev *dev; 2195 struct eth_dev *dev;
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
index b1a9cf06f3e6..8d7f1e84cd7b 100644
--- a/drivers/usb/gadget/file_storage.c
+++ b/drivers/usb/gadget/file_storage.c
@@ -3691,7 +3691,7 @@ static void lun_release(struct device *dev)
3691 kref_put(&fsg->ref, fsg_release); 3691 kref_put(&fsg->ref, fsg_release);
3692} 3692}
3693 3693
3694static void __exit fsg_unbind(struct usb_gadget *gadget) 3694static void /* __init_or_exit */ fsg_unbind(struct usb_gadget *gadget)
3695{ 3695{
3696 struct fsg_dev *fsg = get_gadget_data(gadget); 3696 struct fsg_dev *fsg = get_gadget_data(gadget);
3697 int i; 3697 int i;
diff --git a/drivers/usb/gadget/rndis.c b/drivers/usb/gadget/rndis.c
index 354670d12308..408c3380d602 100644
--- a/drivers/usb/gadget/rndis.c
+++ b/drivers/usb/gadget/rndis.c
@@ -1398,7 +1398,7 @@ static struct proc_dir_entry *rndis_connect_state [RNDIS_MAX_CONFIGS];
1398#endif /* CONFIG_USB_GADGET_DEBUG_FILES */ 1398#endif /* CONFIG_USB_GADGET_DEBUG_FILES */
1399 1399
1400 1400
1401int __init rndis_init (void) 1401int __devinit rndis_init (void)
1402{ 1402{
1403 u8 i; 1403 u8 i;
1404 1404
diff --git a/drivers/usb/gadget/rndis.h b/drivers/usb/gadget/rndis.h
index 2956608be751..4c3c7259f019 100644
--- a/drivers/usb/gadget/rndis.h
+++ b/drivers/usb/gadget/rndis.h
@@ -264,7 +264,7 @@ int rndis_signal_disconnect (int configNr);
264int rndis_state (int configNr); 264int rndis_state (int configNr);
265extern void rndis_set_host_mac (int configNr, const u8 *addr); 265extern void rndis_set_host_mac (int configNr, const u8 *addr);
266 266
267int __init rndis_init (void); 267int __devinit rndis_init (void);
268void rndis_exit (void); 268void rndis_exit (void);
269 269
270#endif /* _LINUX_RNDIS_H */ 270#endif /* _LINUX_RNDIS_H */
diff --git a/drivers/usb/gadget/serial.c b/drivers/usb/gadget/serial.c
index 30d7664d449d..e762aa19ab0a 100644
--- a/drivers/usb/gadget/serial.c
+++ b/drivers/usb/gadget/serial.c
@@ -1473,7 +1473,7 @@ autoconf_fail:
1473 * Called on module unload. Frees the control request and device 1473 * Called on module unload. Frees the control request and device
1474 * structure. 1474 * structure.
1475 */ 1475 */
1476static void __exit gs_unbind(struct usb_gadget *gadget) 1476static void /* __init_or_exit */ gs_unbind(struct usb_gadget *gadget)
1477{ 1477{
1478 struct gs_dev *dev = get_gadget_data(gadget); 1478 struct gs_dev *dev = get_gadget_data(gadget);
1479 1479
diff --git a/drivers/usb/gadget/zero.c b/drivers/usb/gadget/zero.c
index 3a08a7ab4ce0..b7018ee487ea 100644
--- a/drivers/usb/gadget/zero.c
+++ b/drivers/usb/gadget/zero.c
@@ -1121,7 +1121,7 @@ zero_autoresume (unsigned long _dev)
1121 1121
1122/*-------------------------------------------------------------------------*/ 1122/*-------------------------------------------------------------------------*/
1123 1123
1124static void __exit 1124static void /* __init_or_exit */
1125zero_unbind (struct usb_gadget *gadget) 1125zero_unbind (struct usb_gadget *gadget)
1126{ 1126{
1127 struct zero_dev *dev = get_gadget_data (gadget); 1127 struct zero_dev *dev = get_gadget_data (gadget);
diff --git a/drivers/usb/host/ehci-au1xxx.c b/drivers/usb/host/ehci-au1xxx.c
index d66867aa527e..26ed757d22a6 100644
--- a/drivers/usb/host/ehci-au1xxx.c
+++ b/drivers/usb/host/ehci-au1xxx.c
@@ -41,8 +41,6 @@
41#endif 41#endif
42#define USBH_DISABLE (USB_MCFG_EBMEN | USB_MCFG_EMEMEN) 42#define USBH_DISABLE (USB_MCFG_EBMEN | USB_MCFG_EMEMEN)
43 43
44#endif /* Au1200 */
45
46extern int usb_disabled(void); 44extern int usb_disabled(void);
47 45
48/*-------------------------------------------------------------------------*/ 46/*-------------------------------------------------------------------------*/
@@ -107,9 +105,9 @@ int usb_ehci_au1xxx_probe(const struct hc_driver *driver,
107 105
108 /* Au1200 AB USB does not support coherent memory */ 106 /* Au1200 AB USB does not support coherent memory */
109 if (!(read_c0_prid() & 0xff)) { 107 if (!(read_c0_prid() & 0xff)) {
110 pr_info("%s: this is chip revision AB!\n", dev->dev.name); 108 pr_info("%s: this is chip revision AB!\n", dev->name);
111 pr_info("%s: update your board or re-configure the kernel\n", 109 pr_info("%s: update your board or re-configure the kernel\n",
112 dev->dev.name); 110 dev->name);
113 return -ENODEV; 111 return -ENODEV;
114 } 112 }
115#endif 113#endif
@@ -228,9 +226,8 @@ static const struct hc_driver ehci_au1xxx_hc_driver = {
228 226
229/*-------------------------------------------------------------------------*/ 227/*-------------------------------------------------------------------------*/
230 228
231static int ehci_hcd_au1xxx_drv_probe(struct device *dev) 229static int ehci_hcd_au1xxx_drv_probe(struct platform_device *pdev)
232{ 230{
233 struct platform_device *pdev = to_platform_device(dev);
234 struct usb_hcd *hcd = NULL; 231 struct usb_hcd *hcd = NULL;
235 int ret; 232 int ret;
236 233
@@ -243,10 +240,9 @@ static int ehci_hcd_au1xxx_drv_probe(struct device *dev)
243 return ret; 240 return ret;
244} 241}
245 242
246static int ehci_hcd_au1xxx_drv_remove(struct device *dev) 243static int ehci_hcd_au1xxx_drv_remove(struct platform_device *pdev)
247{ 244{
248 struct platform_device *pdev = to_platform_device(dev); 245 struct usb_hcd *hcd = platform_get_drvdata(pdev);
249 struct usb_hcd *hcd = dev_get_drvdata(dev);
250 246
251 usb_ehci_au1xxx_remove(hcd, pdev); 247 usb_ehci_au1xxx_remove(hcd, pdev);
252 return 0; 248 return 0;
@@ -269,12 +265,13 @@ static int ehci_hcd_au1xxx_drv_resume(struct device *dev)
269} 265}
270*/ 266*/
271MODULE_ALIAS("au1xxx-ehci"); 267MODULE_ALIAS("au1xxx-ehci");
272/* FIXME use "struct platform_driver" */ 268static struct platform_driver ehci_hcd_au1xxx_driver = {
273static struct device_driver ehci_hcd_au1xxx_driver = {
274 .name = "au1xxx-ehci",
275 .bus = &platform_bus_type,
276 .probe = ehci_hcd_au1xxx_drv_probe, 269 .probe = ehci_hcd_au1xxx_drv_probe,
277 .remove = ehci_hcd_au1xxx_drv_remove, 270 .remove = ehci_hcd_au1xxx_drv_remove,
278 /*.suspend = ehci_hcd_au1xxx_drv_suspend, */ 271 /*.suspend = ehci_hcd_au1xxx_drv_suspend, */
279 /*.resume = ehci_hcd_au1xxx_drv_resume, */ 272 /*.resume = ehci_hcd_au1xxx_drv_resume, */
273 .driver = {
274 .name = "au1xxx-ehci",
275 .bus = &platform_bus_type
276 }
280}; 277};
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index cee6f538de0a..85b0b4ad4c16 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -625,10 +625,11 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd, struct pt_regs *regs)
625 writel (status | CMD_RUN, &ehci->regs->command); 625 writel (status | CMD_RUN, &ehci->regs->command);
626 626
627 while (i--) { 627 while (i--) {
628 status = readl (&ehci->regs->port_status [i]); 628 int pstatus = readl (&ehci->regs->port_status [i]);
629 if (status & PORT_OWNER) 629
630 if (pstatus & PORT_OWNER)
630 continue; 631 continue;
631 if (!(status & PORT_RESUME) 632 if (!(pstatus & PORT_RESUME)
632 || ehci->reset_done [i] != 0) 633 || ehci->reset_done [i] != 0)
633 continue; 634 continue;
634 635
diff --git a/drivers/usb/host/ohci-au1xxx.c b/drivers/usb/host/ohci-au1xxx.c
index 689261e44018..822914e2f43b 100644
--- a/drivers/usb/host/ohci-au1xxx.c
+++ b/drivers/usb/host/ohci-au1xxx.c
@@ -101,13 +101,16 @@ static void au1xxx_start_ohc(struct platform_device *dev)
101 101
102#endif /* Au1200 */ 102#endif /* Au1200 */
103 103
104#ifndef CONFIG_SOC_AU1200
104 /* wait for reset complete (read register twice; see au1500 errata) */ 105 /* wait for reset complete (read register twice; see au1500 errata) */
105 while (au_readl(USB_HOST_CONFIG), 106 while (au_readl(USB_HOST_CONFIG),
106 !(au_readl(USB_HOST_CONFIG) & USBH_ENABLE_RD)) 107 !(au_readl(USB_HOST_CONFIG) & USBH_ENABLE_RD))
108#endif
107 udelay(1000); 109 udelay(1000);
108 110
109 printk(KERN_DEBUG __FILE__ 111 printk(KERN_DEBUG __FILE__
110 ": Clock to USB host has been enabled \n"); 112 ": Clock to USB host has been enabled \n");
113#endif
111} 114}
112 115
113static void au1xxx_stop_ohc(struct platform_device *dev) 116static void au1xxx_stop_ohc(struct platform_device *dev)
@@ -157,9 +160,9 @@ static int usb_ohci_au1xxx_probe(const struct hc_driver *driver,
157 /* Au1200 AB USB does not support coherent memory */ 160 /* Au1200 AB USB does not support coherent memory */
158 if (!(read_c0_prid() & 0xff)) { 161 if (!(read_c0_prid() & 0xff)) {
159 pr_info("%s: this is chip revision AB !!\n", 162 pr_info("%s: this is chip revision AB !!\n",
160 dev->dev.name); 163 dev->name);
161 pr_info("%s: update your board or re-configure the kernel\n", 164 pr_info("%s: update your board or re-configure the kernel\n",
162 dev->dev.name); 165 dev->name);
163 return -ENODEV; 166 return -ENODEV;
164 } 167 }
165#endif 168#endif
diff --git a/drivers/usb/host/ohci-ep93xx.c b/drivers/usb/host/ohci-ep93xx.c
new file mode 100644
index 000000000000..6531c4d26527
--- /dev/null
+++ b/drivers/usb/host/ohci-ep93xx.c
@@ -0,0 +1,225 @@
1/*
2 * OHCI HCD (Host Controller Driver) for USB.
3 *
4 * (C) Copyright 1999 Roman Weissgaerber <weissg@vienna.at>
5 * (C) Copyright 2000-2002 David Brownell <dbrownell@users.sourceforge.net>
6 * (C) Copyright 2002 Hewlett-Packard Company
7 *
8 * Bus Glue for ep93xx.
9 *
10 * Written by Christopher Hoover <ch@hpl.hp.com>
11 * Based on fragments of previous driver by Russell King et al.
12 *
13 * Modified for LH7A404 from ohci-sa1111.c
14 * by Durgesh Pattamatta <pattamattad@sharpsec.com>
15 *
16 * Modified for pxa27x from ohci-lh7a404.c
17 * by Nick Bane <nick@cecomputing.co.uk> 26-8-2004
18 *
19 * Modified for ep93xx from ohci-pxa27x.c
20 * by Lennert Buytenhek <buytenh@wantstofly.org> 28-2-2006
21 * Based on an earlier driver by Ray Lehtiniemi
22 *
23 * This file is licenced under the GPL.
24 */
25
26#include <linux/clk.h>
27#include <linux/device.h>
28#include <linux/signal.h>
29#include <linux/platform_device.h>
30
31#include <asm/mach-types.h>
32#include <asm/hardware.h>
33
34static struct clk *usb_host_clock;
35
36static void ep93xx_start_hc(struct device *dev)
37{
38 clk_enable(usb_host_clock);
39}
40
41static void ep93xx_stop_hc(struct device *dev)
42{
43 clk_disable(usb_host_clock);
44}
45
46static int usb_hcd_ep93xx_probe(const struct hc_driver *driver,
47 struct platform_device *pdev)
48{
49 int retval;
50 struct usb_hcd *hcd;
51
52 if (pdev->resource[1].flags != IORESOURCE_IRQ) {
53 pr_debug("resource[1] is not IORESOURCE_IRQ");
54 return -ENOMEM;
55 }
56
57 hcd = usb_create_hcd(driver, &pdev->dev, "ep93xx");
58 if (hcd == NULL)
59 return -ENOMEM;
60
61 hcd->rsrc_start = pdev->resource[0].start;
62 hcd->rsrc_len = pdev->resource[0].end - pdev->resource[0].start + 1;
63 if (!request_mem_region(hcd->rsrc_start, hcd->rsrc_len, hcd_name)) {
64 usb_put_hcd(hcd);
65 retval = -EBUSY;
66 goto err1;
67 }
68
69 hcd->regs = ioremap(hcd->rsrc_start, hcd->rsrc_len);
70 if (hcd->regs == NULL) {
71 pr_debug("ioremap failed");
72 retval = -ENOMEM;
73 goto err2;
74 }
75
76 usb_host_clock = clk_get(&pdev->dev, "usb_host");
77 ep93xx_start_hc(&pdev->dev);
78
79 ohci_hcd_init(hcd_to_ohci(hcd));
80
81 retval = usb_add_hcd(hcd, pdev->resource[1].start, SA_INTERRUPT);
82 if (retval == 0)
83 return retval;
84
85 ep93xx_stop_hc(&pdev->dev);
86 iounmap(hcd->regs);
87err2:
88 release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
89err1:
90 usb_put_hcd(hcd);
91
92 return retval;
93}
94
95static void usb_hcd_ep93xx_remove(struct usb_hcd *hcd,
96 struct platform_device *pdev)
97{
98 usb_remove_hcd(hcd);
99 ep93xx_stop_hc(&pdev->dev);
100 clk_put(usb_host_clock);
101 iounmap(hcd->regs);
102 release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
103 usb_put_hcd(hcd);
104}
105
106static int __devinit ohci_ep93xx_start(struct usb_hcd *hcd)
107{
108 struct ohci_hcd *ohci = hcd_to_ohci(hcd);
109 int ret;
110
111 if ((ret = ohci_init(ohci)) < 0)
112 return ret;
113
114 if ((ret = ohci_run(ohci)) < 0) {
115 err("can't start %s", hcd->self.bus_name);
116 ohci_stop(hcd);
117 return ret;
118 }
119
120 return 0;
121}
122
123static struct hc_driver ohci_ep93xx_hc_driver = {
124 .description = hcd_name,
125 .product_desc = "EP93xx OHCI",
126 .hcd_priv_size = sizeof(struct ohci_hcd),
127 .irq = ohci_irq,
128 .flags = HCD_USB11 | HCD_MEMORY,
129 .start = ohci_ep93xx_start,
130 .stop = ohci_stop,
131 .urb_enqueue = ohci_urb_enqueue,
132 .urb_dequeue = ohci_urb_dequeue,
133 .endpoint_disable = ohci_endpoint_disable,
134 .get_frame_number = ohci_get_frame,
135 .hub_status_data = ohci_hub_status_data,
136 .hub_control = ohci_hub_control,
137#ifdef CONFIG_PM
138 .bus_suspend = ohci_bus_suspend,
139 .bus_resume = ohci_bus_resume,
140#endif
141 .start_port_reset = ohci_start_port_reset,
142};
143
144extern int usb_disabled(void);
145
146static int ohci_hcd_ep93xx_drv_probe(struct platform_device *pdev)
147{
148 int ret;
149
150 ret = -ENODEV;
151 if (!usb_disabled())
152 ret = usb_hcd_ep93xx_probe(&ohci_ep93xx_hc_driver, pdev);
153
154 return ret;
155}
156
157static int ohci_hcd_ep93xx_drv_remove(struct platform_device *pdev)
158{
159 struct usb_hcd *hcd = platform_get_drvdata(pdev);
160
161 usb_hcd_ep93xx_remove(hcd, pdev);
162
163 return 0;
164}
165
166#ifdef CONFIG_PM
167static int ohci_hcd_ep93xx_drv_suspend(struct platform_device *pdev, pm_message_t state)
168{
169 struct usb_hcd *hcd = platform_get_drvdata(pdev);
170 struct ochi_hcd *ohci = hcd_to_ohci(hcd);
171
172 if (time_before(jiffies, ohci->next_statechange))
173 msleep(5);
174 ohci->next_statechange = jiffies;
175
176 ep93xx_stop_hc(&pdev->dev);
177 hcd->state = HC_STATE_SUSPENDED;
178 pdev->dev.power.power_state = PMSG_SUSPEND;
179
180 return 0;
181}
182
183static int ohci_hcd_ep93xx_drv_resume(struct platform_device *pdev)
184{
185 struct usb_hcd *hcd = platform_get_drvdata(pdev);
186 struct ohci_hcd *ohci = hcd_to_ohci(hcd);
187 int status;
188
189 if (time_before(jiffies, ohci->next_statechange))
190 msleep(5);
191 ohci->next_statechange = jiffies;
192
193 ep93xx_start_hc(&pdev->dev);
194 pdev->dev.power.power_state = PMSG_ON;
195 usb_hcd_resume_root_hub(hcd);
196
197 return 0;
198}
199#endif
200
201
202static struct platform_driver ohci_hcd_ep93xx_driver = {
203 .probe = ohci_hcd_ep93xx_drv_probe,
204 .remove = ohci_hcd_ep93xx_drv_remove,
205#ifdef CONFIG_PM
206 .suspend = ohci_hcd_ep93xx_drv_suspend,
207 .resume = ohci_hcd_ep93xx_drv_resume,
208#endif
209 .driver = {
210 .name = "ep93xx-ohci",
211 },
212};
213
214static int __init ohci_hcd_ep93xx_init(void)
215{
216 return platform_driver_register(&ohci_hcd_ep93xx_driver);
217}
218
219static void __exit ohci_hcd_ep93xx_cleanup(void)
220{
221 platform_driver_unregister(&ohci_hcd_ep93xx_driver);
222}
223
224module_init(ohci_hcd_ep93xx_init);
225module_exit(ohci_hcd_ep93xx_cleanup);
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
index 8fb842ed5f6e..afef5ac35b4a 100644
--- a/drivers/usb/host/ohci-hcd.c
+++ b/drivers/usb/host/ohci-hcd.c
@@ -901,6 +901,10 @@ MODULE_LICENSE ("GPL");
901#include "ohci-pxa27x.c" 901#include "ohci-pxa27x.c"
902#endif 902#endif
903 903
904#ifdef CONFIG_ARCH_EP93XX
905#include "ohci-ep93xx.c"
906#endif
907
904#ifdef CONFIG_SOC_AU1X00 908#ifdef CONFIG_SOC_AU1X00
905#include "ohci-au1xxx.c" 909#include "ohci-au1xxx.c"
906#endif 910#endif
@@ -919,6 +923,7 @@ MODULE_LICENSE ("GPL");
919 || defined(CONFIG_ARCH_OMAP) \ 923 || defined(CONFIG_ARCH_OMAP) \
920 || defined (CONFIG_ARCH_LH7A404) \ 924 || defined (CONFIG_ARCH_LH7A404) \
921 || defined (CONFIG_PXA27x) \ 925 || defined (CONFIG_PXA27x) \
926 || defined (CONFIG_ARCH_EP93XX) \
922 || defined (CONFIG_SOC_AU1X00) \ 927 || defined (CONFIG_SOC_AU1X00) \
923 || defined (CONFIG_USB_OHCI_HCD_PPC_SOC) \ 928 || defined (CONFIG_USB_OHCI_HCD_PPC_SOC) \
924 || defined (CONFIG_ARCH_AT91RM9200) \ 929 || defined (CONFIG_ARCH_AT91RM9200) \
diff --git a/drivers/usb/host/ohci-hub.c b/drivers/usb/host/ohci-hub.c
index 0bb972b58336..5b0a23fd798b 100644
--- a/drivers/usb/host/ohci-hub.c
+++ b/drivers/usb/host/ohci-hub.c
@@ -581,14 +581,14 @@ static int ohci_hub_control (
581 break; 581 break;
582 case GetHubStatus: 582 case GetHubStatus:
583 temp = roothub_status (ohci) & ~(RH_HS_CRWE | RH_HS_DRWE); 583 temp = roothub_status (ohci) & ~(RH_HS_CRWE | RH_HS_DRWE);
584 *(__le32 *) buf = cpu_to_le32 (temp); 584 put_unaligned(cpu_to_le32 (temp), (__le32 *) buf);
585 break; 585 break;
586 case GetPortStatus: 586 case GetPortStatus:
587 if (!wIndex || wIndex > ports) 587 if (!wIndex || wIndex > ports)
588 goto error; 588 goto error;
589 wIndex--; 589 wIndex--;
590 temp = roothub_portstatus (ohci, wIndex); 590 temp = roothub_portstatus (ohci, wIndex);
591 *(__le32 *) buf = cpu_to_le32 (temp); 591 put_unaligned(cpu_to_le32 (temp), (__le32 *) buf);
592 592
593#ifndef OHCI_VERBOSE_DEBUG 593#ifndef OHCI_VERBOSE_DEBUG
594 if (*(u16*)(buf+2)) /* only if wPortChange is interesting */ 594 if (*(u16*)(buf+2)) /* only if wPortChange is interesting */
diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
index dff60568b4a1..20861650905e 100644
--- a/drivers/usb/host/pci-quirks.c
+++ b/drivers/usb/host/pci-quirks.c
@@ -167,8 +167,6 @@ static int __devinit mmio_resource_enabled(struct pci_dev *pdev, int idx)
167static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev) 167static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)
168{ 168{
169 void __iomem *base; 169 void __iomem *base;
170 int wait_time;
171 u32 control;
172 170
173 if (!mmio_resource_enabled(pdev, 0)) 171 if (!mmio_resource_enabled(pdev, 0))
174 return; 172 return;
@@ -179,9 +177,10 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)
179 177
180/* On PA-RISC, PDC can leave IR set incorrectly; ignore it there. */ 178/* On PA-RISC, PDC can leave IR set incorrectly; ignore it there. */
181#ifndef __hppa__ 179#ifndef __hppa__
182 control = readl(base + OHCI_CONTROL); 180{
181 u32 control = readl(base + OHCI_CONTROL);
183 if (control & OHCI_CTRL_IR) { 182 if (control & OHCI_CTRL_IR) {
184 wait_time = 500; /* arbitrary; 5 seconds */ 183 int wait_time = 500; /* arbitrary; 5 seconds */
185 writel(OHCI_INTR_OC, base + OHCI_INTRENABLE); 184 writel(OHCI_INTR_OC, base + OHCI_INTRENABLE);
186 writel(OHCI_OCR, base + OHCI_CMDSTATUS); 185 writel(OHCI_OCR, base + OHCI_CMDSTATUS);
187 while (wait_time > 0 && 186 while (wait_time > 0 &&
@@ -198,6 +197,7 @@ static void __devinit quirk_usb_handoff_ohci(struct pci_dev *pdev)
198 /* reset controller, preserving RWC */ 197 /* reset controller, preserving RWC */
199 writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL); 198 writel(control & OHCI_CTRL_RWC, base + OHCI_CONTROL);
200 } 199 }
200}
201#endif 201#endif
202 202
203 /* 203 /*
diff --git a/drivers/usb/input/hid-core.c b/drivers/usb/input/hid-core.c
index b9fb9687f926..8ea9c915fbf9 100644
--- a/drivers/usb/input/hid-core.c
+++ b/drivers/usb/input/hid-core.c
@@ -1507,6 +1507,9 @@ void hid_init_reports(struct hid_device *hid)
1507#define USB_DEVICE_ID_4_PHIDGETSERVO_20 0x8104 1507#define USB_DEVICE_ID_4_PHIDGETSERVO_20 0x8104
1508#define USB_DEVICE_ID_DUAL_USB_JOYPAD 0x8866 1508#define USB_DEVICE_ID_DUAL_USB_JOYPAD 0x8866
1509 1509
1510#define USB_VENDOR_ID_WISEGROUP_LTD 0x6677
1511#define USB_DEVICE_ID_SMARTJOY_DUAL_PLUS 0x8802
1512
1510#define USB_VENDOR_ID_CODEMERCS 0x07c0 1513#define USB_VENDOR_ID_CODEMERCS 0x07c0
1511#define USB_DEVICE_ID_CODEMERCS_IOW40 0x1500 1514#define USB_DEVICE_ID_CODEMERCS_IOW40 0x1500
1512#define USB_DEVICE_ID_CODEMERCS_IOW24 0x1501 1515#define USB_DEVICE_ID_CODEMERCS_IOW24 0x1501
@@ -1670,6 +1673,7 @@ static const struct hid_blacklist {
1670 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET }, 1673 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVM, HID_QUIRK_NOGET },
1671 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET }, 1674 { USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_4PORTKVMC, HID_QUIRK_NOGET },
1672 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT }, 1675 { USB_VENDOR_ID_WISEGROUP, USB_DEVICE_ID_DUAL_USB_JOYPAD, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
1676 { USB_VENDOR_ID_WISEGROUP_LTD, USB_DEVICE_ID_SMARTJOY_DUAL_PLUS, HID_QUIRK_NOGET | HID_QUIRK_MULTI_INPUT },
1673 1677
1674 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE, HID_QUIRK_MIGHTYMOUSE | HID_QUIRK_INVERT_HWHEEL }, 1678 { USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_MIGHTYMOUSE, HID_QUIRK_MIGHTYMOUSE | HID_QUIRK_INVERT_HWHEEL },
1675 { USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU, HID_QUIRK_2WHEEL_MOUSE_HACK_7 }, 1679 { USB_VENDOR_ID_A4TECH, USB_DEVICE_ID_A4TECH_WCP32PU, HID_QUIRK_2WHEEL_MOUSE_HACK_7 },
diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
index daa486dde8cf..88928a4be805 100644
--- a/drivers/usb/misc/Kconfig
+++ b/drivers/usb/misc/Kconfig
@@ -88,19 +88,19 @@ config USB_LED
88 To compile this driver as a module, choose M here: the 88 To compile this driver as a module, choose M here: the
89 module will be called usbled. 89 module will be called usbled.
90 90
91config USB_CY7C63 91config USB_CYPRESS_CY7C63
92 tristate "Cypress CY7C63xxx USB driver support" 92 tristate "Cypress CY7C63xxx USB driver support"
93 depends on USB 93 depends on USB
94 help 94 help
95 Say Y here if you want to connect a Cypress CY7C63xxx 95 Say Y here if you want to connect a Cypress CY7C63xxx
96 micro controller to your computer's USB port. This driver 96 micro controller to your computer's USB port. Currently this
97 supports the pre-programmed devices (incl. firmware) by 97 driver supports the pre-programmed devices (incl. firmware)
98 AK Modul-Bus Computer GmbH. 98 by AK Modul-Bus Computer GmbH.
99 99
100 Please see: http://www.ak-modul-bus.de/stat/mikrocontroller.html 100 Please see: http://www.ak-modul-bus.de/stat/mikrocontroller.html
101 101
102 To compile this driver as a module, choose M here: the 102 To compile this driver as a module, choose M here: the
103 module will be called cy7c63. 103 module will be called cypress_cy7c63.
104 104
105config USB_CYTHERM 105config USB_CYTHERM
106 tristate "Cypress USB thermometer driver support" 106 tristate "Cypress USB thermometer driver support"
diff --git a/drivers/usb/misc/Makefile b/drivers/usb/misc/Makefile
index f25a97227297..2927260c5812 100644
--- a/drivers/usb/misc/Makefile
+++ b/drivers/usb/misc/Makefile
@@ -4,7 +4,7 @@
4# 4#
5 5
6obj-$(CONFIG_USB_AUERSWALD) += auerswald.o 6obj-$(CONFIG_USB_AUERSWALD) += auerswald.o
7obj-$(CONFIG_USB_CY7C63) += cy7c63.o 7obj-$(CONFIG_USB_CYPRESS_CY7C63)+= cypress_cy7c63.o
8obj-$(CONFIG_USB_CYTHERM) += cytherm.o 8obj-$(CONFIG_USB_CYTHERM) += cytherm.o
9obj-$(CONFIG_USB_EMI26) += emi26.o 9obj-$(CONFIG_USB_EMI26) += emi26.o
10obj-$(CONFIG_USB_EMI62) += emi62.o 10obj-$(CONFIG_USB_EMI62) += emi62.o
diff --git a/drivers/usb/misc/cy7c63.c b/drivers/usb/misc/cy7c63.c
deleted file mode 100644
index 8a1c10b89b76..000000000000
--- a/drivers/usb/misc/cy7c63.c
+++ /dev/null
@@ -1,244 +0,0 @@
1/*
2* cy7c63.c
3*
4* Copyright (c) 2006 Oliver Bock (bock@fh-wolfenbuettel.de)
5*
6* This driver is based on the Cypress Thermometer USB Driver by
7* Marcus Maul and the 2.0 version of Greg Kroah-Hartman's
8* USB Skeleton driver.
9*
10* Is is a generic driver for the Cypress CY7C63000 family.
11* For the time being it enables you to toggle the single I/O ports
12* of the device.
13*
14* Supported vendors: AK Modul-Bus Computer GmbH
15* Supported devices: CY7C63001A-PC (to be continued...)
16* Supported functions: Read/Write Ports (to be continued...)
17*
18* Chipsets families: CY7C63000, CY7C63001, CY7C63100, CY7C63101
19*
20*
21* This program is free software; you can redistribute it and/or
22* modify it under the terms of the GNU General Public License as
23* published by the Free Software Foundation, version 2.
24*/
25
26#include <linux/init.h>
27#include <linux/module.h>
28#include <linux/kernel.h>
29#include <linux/usb.h>
30
31#define DRIVER_AUTHOR "Oliver Bock (bock@fh-wolfenbuettel.de)"
32#define DRIVER_DESC "Cypress CY7C63xxx USB driver"
33
34#define CY7C63_VENDOR_ID 0xa2c
35#define CY7C63_PRODUCT_ID 0x8
36
37#define CY7C63_READ_PORT 0x4
38#define CY7C63_WRITE_PORT 0x5
39#define CY7C63_READ_RAM 0x2
40#define CY7C63_WRITE_RAM 0x3
41#define CY7C63_READ_ROM 0x1
42
43#define CY7C63_READ_PORT_ID0 0
44#define CY7C63_WRITE_PORT_ID0 0
45#define CY7C63_READ_PORT_ID1 0x2
46#define CY7C63_WRITE_PORT_ID1 1
47
48#define CY7C63_MAX_REQSIZE 8
49
50
51/* table of devices that work with this driver */
52static struct usb_device_id cy7c63_table [] = {
53 { USB_DEVICE(CY7C63_VENDOR_ID, CY7C63_PRODUCT_ID) },
54 { }
55};
56MODULE_DEVICE_TABLE(usb, cy7c63_table);
57
58/* structure to hold all of our device specific stuff */
59struct cy7c63 {
60 struct usb_device * udev;
61 char port0;
62 char port1;
63};
64
65/* used to send usb control messages to device */
66int vendor_command(struct cy7c63 *dev, unsigned char request,
67 unsigned char address, unsigned char data) {
68
69 int retval = 0;
70 unsigned int pipe;
71 unsigned char *iobuf;
72
73 /* allocate some memory for the i/o buffer*/
74 iobuf = kzalloc(CY7C63_MAX_REQSIZE, GFP_KERNEL);
75 if (!iobuf) {
76 dev_err(&dev->udev->dev, "Out of memory!\n");
77 retval = -ENOMEM;
78 goto error;
79 }
80
81 dev_dbg(&dev->udev->dev, "Sending usb_control_msg (data: %d)\n", data);
82
83 /* prepare usb control message and send it upstream */
84 pipe = usb_rcvctrlpipe(dev->udev, 0);
85 retval = usb_control_msg(dev->udev, pipe, request,
86 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER,
87 address, data, iobuf, CY7C63_MAX_REQSIZE,
88 USB_CTRL_GET_TIMEOUT);
89
90 /* store returned data (more READs to be added!) */
91 switch (request) {
92 case CY7C63_READ_PORT:
93 if (address == CY7C63_READ_PORT_ID0) {
94 dev->port0 = iobuf[1];
95 dev_dbg(&dev->udev->dev,
96 "READ_PORT0 returned: %d\n",dev->port0);
97 }
98 else if (address == CY7C63_READ_PORT_ID1) {
99 dev->port1 = iobuf[1];
100 dev_dbg(&dev->udev->dev,
101 "READ_PORT1 returned: %d\n",dev->port1);
102 }
103 break;
104 }
105
106 kfree(iobuf);
107error:
108 return retval;
109}
110
111#define get_set_port(num,read_id,write_id) \
112static ssize_t set_port##num(struct device *dev, struct device_attribute *attr, \
113 const char *buf, size_t count) { \
114 \
115 int value; \
116 int result = 0; \
117 \
118 struct usb_interface *intf = to_usb_interface(dev); \
119 struct cy7c63 *cyp = usb_get_intfdata(intf); \
120 \
121 dev_dbg(&cyp->udev->dev, "WRITE_PORT%d called\n", num); \
122 \
123 /* validate input data */ \
124 if (sscanf(buf, "%d", &value) < 1) { \
125 result = -EINVAL; \
126 goto error; \
127 } \
128 if (value>255 || value<0) { \
129 result = -EINVAL; \
130 goto error; \
131 } \
132 \
133 result = vendor_command(cyp, CY7C63_WRITE_PORT, write_id, \
134 (unsigned char)value); \
135 \
136 dev_dbg(&cyp->udev->dev, "Result of vendor_command: %d\n\n",result); \
137error: \
138 return result < 0 ? result : count; \
139} \
140 \
141static ssize_t get_port##num(struct device *dev, \
142 struct device_attribute *attr, char *buf) { \
143 \
144 int result = 0; \
145 \
146 struct usb_interface *intf = to_usb_interface(dev); \
147 struct cy7c63 *cyp = usb_get_intfdata(intf); \
148 \
149 dev_dbg(&cyp->udev->dev, "READ_PORT%d called\n", num); \
150 \
151 result = vendor_command(cyp, CY7C63_READ_PORT, read_id, 0); \
152 \
153 dev_dbg(&cyp->udev->dev, "Result of vendor_command: %d\n\n", result); \
154 \
155 return sprintf(buf, "%d", cyp->port##num); \
156} \
157static DEVICE_ATTR(port##num, S_IWUGO | S_IRUGO, get_port##num, set_port##num);
158
159get_set_port(0, CY7C63_READ_PORT_ID0, CY7C63_WRITE_PORT_ID0);
160get_set_port(1, CY7C63_READ_PORT_ID1, CY7C63_WRITE_PORT_ID1);
161
162static int cy7c63_probe(struct usb_interface *interface,
163 const struct usb_device_id *id) {
164
165 struct cy7c63 *dev = NULL;
166 int retval = -ENOMEM;
167
168 /* allocate memory for our device state and initialize it */
169 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
170 if (dev == NULL) {
171 dev_err(&dev->udev->dev, "Out of memory!\n");
172 goto error;
173 }
174
175 dev->udev = usb_get_dev(interface_to_usbdev(interface));
176
177 /* save our data pointer in this interface device */
178 usb_set_intfdata(interface, dev);
179
180 /* create device attribute files */
181 device_create_file(&interface->dev, &dev_attr_port0);
182 device_create_file(&interface->dev, &dev_attr_port1);
183
184 /* let the user know what node this device is now attached to */
185 dev_info(&interface->dev,
186 "Cypress CY7C63xxx device now attached\n");
187
188 retval = 0;
189error:
190 return retval;
191}
192
193static void cy7c63_disconnect(struct usb_interface *interface) {
194
195 struct cy7c63 *dev;
196
197 dev = usb_get_intfdata(interface);
198 usb_set_intfdata(interface, NULL);
199
200 /* remove device attribute files */
201 device_remove_file(&interface->dev, &dev_attr_port0);
202 device_remove_file(&interface->dev, &dev_attr_port1);
203
204 usb_put_dev(dev->udev);
205
206 dev_info(&interface->dev,
207 "Cypress CY7C63xxx device now disconnected\n");
208
209 kfree(dev);
210}
211
212static struct usb_driver cy7c63_driver = {
213 .name = "cy7c63",
214 .probe = cy7c63_probe,
215 .disconnect = cy7c63_disconnect,
216 .id_table = cy7c63_table,
217};
218
219static int __init cy7c63_init(void) {
220
221 int result;
222
223 /* register this driver with the USB subsystem */
224 result = usb_register(&cy7c63_driver);
225 if (result) {
226 err("Function usb_register failed! Error number: %d\n", result);
227 }
228
229 return result;
230}
231
232static void __exit cy7c63_exit(void) {
233
234 /* deregister this driver with the USB subsystem */
235 usb_deregister(&cy7c63_driver);
236}
237
238module_init(cy7c63_init);
239module_exit(cy7c63_exit);
240
241MODULE_AUTHOR(DRIVER_AUTHOR);
242MODULE_DESCRIPTION(DRIVER_DESC);
243
244MODULE_LICENSE("GPL");
diff --git a/drivers/usb/misc/cypress_cy7c63.c b/drivers/usb/misc/cypress_cy7c63.c
new file mode 100644
index 000000000000..e091d327bd9e
--- /dev/null
+++ b/drivers/usb/misc/cypress_cy7c63.c
@@ -0,0 +1,279 @@
1/*
2* cypress_cy7c63.c
3*
4* Copyright (c) 2006 Oliver Bock (o.bock@fh-wolfenbuettel.de)
5*
6* This driver is based on the Cypress USB Driver by Marcus Maul
7* (cyport) and the 2.0 version of Greg Kroah-Hartman's
8* USB Skeleton driver.
9*
10* This is a generic driver for the Cypress CY7C63xxx family.
11* For the time being it enables you to read from and write to
12* the single I/O ports of the device.
13*
14* Supported vendors: AK Modul-Bus Computer GmbH
15* Supported devices: CY7C63001A-PC (to be continued...)
16* Supported functions: Read/Write Ports (to be continued...)
17*
18*
19* This program is free software; you can redistribute it and/or
20* modify it under the terms of the GNU General Public License as
21* published by the Free Software Foundation, version 2.
22*/
23
24#include <linux/init.h>
25#include <linux/module.h>
26#include <linux/kernel.h>
27#include <linux/usb.h>
28
29#define DRIVER_AUTHOR "Oliver Bock (o.bock@fh-wolfenbuettel.de)"
30#define DRIVER_DESC "Cypress CY7C63xxx USB driver"
31
32#define CYPRESS_VENDOR_ID 0xa2c
33#define CYPRESS_PRODUCT_ID 0x8
34
35#define CYPRESS_READ_PORT 0x4
36#define CYPRESS_WRITE_PORT 0x5
37
38#define CYPRESS_READ_RAM 0x2
39#define CYPRESS_WRITE_RAM 0x3
40#define CYPRESS_READ_ROM 0x1
41
42#define CYPRESS_READ_PORT_ID0 0
43#define CYPRESS_WRITE_PORT_ID0 0
44#define CYPRESS_READ_PORT_ID1 0x2
45#define CYPRESS_WRITE_PORT_ID1 1
46
47#define CYPRESS_MAX_REQSIZE 8
48
49
50/* table of devices that work with this driver */
51static struct usb_device_id cypress_table [] = {
52 { USB_DEVICE(CYPRESS_VENDOR_ID, CYPRESS_PRODUCT_ID) },
53 { }
54};
55MODULE_DEVICE_TABLE(usb, cypress_table);
56
57/* structure to hold all of our device specific stuff */
58struct cypress {
59 struct usb_device * udev;
60 unsigned char port[2];
61};
62
63/* used to send usb control messages to device */
64static int vendor_command(struct cypress *dev, unsigned char request,
65 unsigned char address, unsigned char data)
66{
67 int retval = 0;
68 unsigned int pipe;
69 unsigned char *iobuf;
70
71 /* allocate some memory for the i/o buffer*/
72 iobuf = kzalloc(CYPRESS_MAX_REQSIZE, GFP_KERNEL);
73 if (!iobuf) {
74 dev_err(&dev->udev->dev, "Out of memory!\n");
75 retval = -ENOMEM;
76 goto error;
77 }
78
79 dev_dbg(&dev->udev->dev, "Sending usb_control_msg (data: %d)\n", data);
80
81 /* prepare usb control message and send it upstream */
82 pipe = usb_rcvctrlpipe(dev->udev, 0);
83 retval = usb_control_msg(dev->udev, pipe, request,
84 USB_DIR_IN | USB_TYPE_VENDOR | USB_RECIP_OTHER,
85 address, data, iobuf, CYPRESS_MAX_REQSIZE,
86 USB_CTRL_GET_TIMEOUT);
87
88 /* store returned data (more READs to be added) */
89 switch (request) {
90 case CYPRESS_READ_PORT:
91 if (address == CYPRESS_READ_PORT_ID0) {
92 dev->port[0] = iobuf[1];
93 dev_dbg(&dev->udev->dev,
94 "READ_PORT0 returned: %d\n",
95 dev->port[0]);
96 }
97 else if (address == CYPRESS_READ_PORT_ID1) {
98 dev->port[1] = iobuf[1];
99 dev_dbg(&dev->udev->dev,
100 "READ_PORT1 returned: %d\n",
101 dev->port[1]);
102 }
103 break;
104 }
105
106 kfree(iobuf);
107error:
108 return retval;
109}
110
111/* write port value */
112static ssize_t write_port(struct device *dev, struct device_attribute *attr,
113 const char *buf, size_t count,
114 int port_num, int write_id)
115{
116 int value = -1;
117 int result = 0;
118
119 struct usb_interface *intf = to_usb_interface(dev);
120 struct cypress *cyp = usb_get_intfdata(intf);
121
122 dev_dbg(&cyp->udev->dev, "WRITE_PORT%d called\n", port_num);
123
124 /* validate input data */
125 if (sscanf(buf, "%d", &value) < 1) {
126 result = -EINVAL;
127 goto error;
128 }
129 if (value < 0 || value > 255) {
130 result = -EINVAL;
131 goto error;
132 }
133
134 result = vendor_command(cyp, CYPRESS_WRITE_PORT, write_id,
135 (unsigned char)value);
136
137 dev_dbg(&cyp->udev->dev, "Result of vendor_command: %d\n\n", result);
138error:
139 return result < 0 ? result : count;
140}
141
142/* attribute callback handler (write) */
143static ssize_t set_port0_handler(struct device *dev,
144 struct device_attribute *attr,
145 const char *buf, size_t count)
146{
147 return write_port(dev, attr, buf, count, 0, CYPRESS_WRITE_PORT_ID0);
148}
149
150/* attribute callback handler (write) */
151static ssize_t set_port1_handler(struct device *dev,
152 struct device_attribute *attr,
153 const char *buf, size_t count)
154{
155 return write_port(dev, attr, buf, count, 1, CYPRESS_WRITE_PORT_ID1);
156}
157
158/* read port value */
159static ssize_t read_port(struct device *dev, struct device_attribute *attr,
160 char *buf, int port_num, int read_id)
161{
162 int result = 0;
163
164 struct usb_interface *intf = to_usb_interface(dev);
165 struct cypress *cyp = usb_get_intfdata(intf);
166
167 dev_dbg(&cyp->udev->dev, "READ_PORT%d called\n", port_num);
168
169 result = vendor_command(cyp, CYPRESS_READ_PORT, read_id, 0);
170
171 dev_dbg(&cyp->udev->dev, "Result of vendor_command: %d\n\n", result);
172
173 return sprintf(buf, "%d", cyp->port[port_num]);
174}
175
176/* attribute callback handler (read) */
177static ssize_t get_port0_handler(struct device *dev,
178 struct device_attribute *attr, char *buf)
179{
180 return read_port(dev, attr, buf, 0, CYPRESS_READ_PORT_ID0);
181}
182
183/* attribute callback handler (read) */
184static ssize_t get_port1_handler(struct device *dev,
185 struct device_attribute *attr, char *buf)
186{
187 return read_port(dev, attr, buf, 1, CYPRESS_READ_PORT_ID1);
188}
189
190static DEVICE_ATTR(port0, S_IWUGO | S_IRUGO,
191 get_port0_handler, set_port0_handler);
192
193static DEVICE_ATTR(port1, S_IWUGO | S_IRUGO,
194 get_port1_handler, set_port1_handler);
195
196
197static int cypress_probe(struct usb_interface *interface,
198 const struct usb_device_id *id)
199{
200 struct cypress *dev = NULL;
201 int retval = -ENOMEM;
202
203 /* allocate memory for our device state and initialize it */
204 dev = kzalloc(sizeof(*dev), GFP_KERNEL);
205 if (dev == NULL) {
206 dev_err(&dev->udev->dev, "Out of memory!\n");
207 goto error;
208 }
209
210 dev->udev = usb_get_dev(interface_to_usbdev(interface));
211
212 /* save our data pointer in this interface device */
213 usb_set_intfdata(interface, dev);
214
215 /* create device attribute files */
216 device_create_file(&interface->dev, &dev_attr_port0);
217 device_create_file(&interface->dev, &dev_attr_port1);
218
219 /* let the user know that the device is now attached */
220 dev_info(&interface->dev,
221 "Cypress CY7C63xxx device now attached\n");
222
223 retval = 0;
224error:
225 return retval;
226}
227
228static void cypress_disconnect(struct usb_interface *interface)
229{
230 struct cypress *dev;
231
232 dev = usb_get_intfdata(interface);
233 usb_set_intfdata(interface, NULL);
234
235 /* remove device attribute files */
236 device_remove_file(&interface->dev, &dev_attr_port0);
237 device_remove_file(&interface->dev, &dev_attr_port1);
238
239 usb_put_dev(dev->udev);
240
241 dev_info(&interface->dev,
242 "Cypress CY7C63xxx device now disconnected\n");
243
244 kfree(dev);
245}
246
247static struct usb_driver cypress_driver = {
248 .name = "cypress_cy7c63",
249 .probe = cypress_probe,
250 .disconnect = cypress_disconnect,
251 .id_table = cypress_table,
252};
253
254static int __init cypress_init(void)
255{
256 int result;
257
258 /* register this driver with the USB subsystem */
259 result = usb_register(&cypress_driver);
260 if (result) {
261 err("Function usb_register failed! Error number: %d\n", result);
262 }
263
264 return result;
265}
266
267static void __exit cypress_exit(void)
268{
269 /* deregister this driver with the USB subsystem */
270 usb_deregister(&cypress_driver);
271}
272
273module_init(cypress_init);
274module_exit(cypress_exit);
275
276MODULE_AUTHOR(DRIVER_AUTHOR);
277MODULE_DESCRIPTION(DRIVER_DESC);
278
279MODULE_LICENSE("GPL");
diff --git a/drivers/usb/misc/usblcd.c b/drivers/usb/misc/usblcd.c
index c82c402285a0..e095772dd8e9 100644
--- a/drivers/usb/misc/usblcd.c
+++ b/drivers/usb/misc/usblcd.c
@@ -200,10 +200,8 @@ static ssize_t lcd_write(struct file *file, const char __user * user_buffer, siz
200 200
201 /* create a urb, and a buffer for it, and copy the data to the urb */ 201 /* create a urb, and a buffer for it, and copy the data to the urb */
202 urb = usb_alloc_urb(0, GFP_KERNEL); 202 urb = usb_alloc_urb(0, GFP_KERNEL);
203 if (!urb) { 203 if (!urb)
204 retval = -ENOMEM; 204 return -ENOMEM;
205 goto error;
206 }
207 205
208 buf = usb_buffer_alloc(dev->udev, count, GFP_KERNEL, &urb->transfer_dma); 206 buf = usb_buffer_alloc(dev->udev, count, GFP_KERNEL, &urb->transfer_dma);
209 if (!buf) { 207 if (!buf) {
diff --git a/drivers/usb/mon/mon_text.c b/drivers/usb/mon/mon_text.c
index e02c1a30c4cd..f961a770cee2 100644
--- a/drivers/usb/mon/mon_text.c
+++ b/drivers/usb/mon/mon_text.c
@@ -64,7 +64,6 @@ struct mon_reader_text {
64}; 64};
65 65
66static void mon_text_ctor(void *, kmem_cache_t *, unsigned long); 66static void mon_text_ctor(void *, kmem_cache_t *, unsigned long);
67static void mon_text_dtor(void *, kmem_cache_t *, unsigned long);
68 67
69/* 68/*
70 * mon_text_submit 69 * mon_text_submit
@@ -268,7 +267,7 @@ static int mon_text_open(struct inode *inode, struct file *file)
268 (long)rp); 267 (long)rp);
269 rp->e_slab = kmem_cache_create(rp->slab_name, 268 rp->e_slab = kmem_cache_create(rp->slab_name,
270 sizeof(struct mon_event_text), sizeof(long), 0, 269 sizeof(struct mon_event_text), sizeof(long), 0,
271 mon_text_ctor, mon_text_dtor); 270 mon_text_ctor, NULL);
272 if (rp->e_slab == NULL) { 271 if (rp->e_slab == NULL) {
273 rc = -ENOMEM; 272 rc = -ENOMEM;
274 goto err_slab; 273 goto err_slab;
@@ -459,7 +458,3 @@ static void mon_text_ctor(void *mem, kmem_cache_t *slab, unsigned long sflags)
459 memset(mem, 0xe5, sizeof(struct mon_event_text)); 458 memset(mem, 0xe5, sizeof(struct mon_event_text));
460} 459}
461 460
462static void mon_text_dtor(void *mem, kmem_cache_t *slab, unsigned long sflags)
463{
464 ;
465}
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c
index 718f8e2b552b..e5e6e4f3ef87 100644
--- a/drivers/usb/net/rtl8150.c
+++ b/drivers/usb/net/rtl8150.c
@@ -128,11 +128,13 @@
128#define VENDOR_ID_MELCO 0x0411 128#define VENDOR_ID_MELCO 0x0411
129#define VENDOR_ID_MICRONET 0x3980 129#define VENDOR_ID_MICRONET 0x3980
130#define VENDOR_ID_LONGSHINE 0x07b8 130#define VENDOR_ID_LONGSHINE 0x07b8
131#define VENDOR_ID_ZYXEL 0x0586
131 132
132#define PRODUCT_ID_RTL8150 0x8150 133#define PRODUCT_ID_RTL8150 0x8150
133#define PRODUCT_ID_LUAKTX 0x0012 134#define PRODUCT_ID_LUAKTX 0x0012
134#define PRODUCT_ID_LCS8138TX 0x401a 135#define PRODUCT_ID_LCS8138TX 0x401a
135#define PRODUCT_ID_SP128AR 0x0003 136#define PRODUCT_ID_SP128AR 0x0003
137#define PRODUCT_ID_PRESTIGE 0x401a
136 138
137#undef EEPROM_WRITE 139#undef EEPROM_WRITE
138 140
@@ -142,6 +144,7 @@ static struct usb_device_id rtl8150_table[] = {
142 {USB_DEVICE(VENDOR_ID_MELCO, PRODUCT_ID_LUAKTX)}, 144 {USB_DEVICE(VENDOR_ID_MELCO, PRODUCT_ID_LUAKTX)},
143 {USB_DEVICE(VENDOR_ID_MICRONET, PRODUCT_ID_SP128AR)}, 145 {USB_DEVICE(VENDOR_ID_MICRONET, PRODUCT_ID_SP128AR)},
144 {USB_DEVICE(VENDOR_ID_LONGSHINE, PRODUCT_ID_LCS8138TX)}, 146 {USB_DEVICE(VENDOR_ID_LONGSHINE, PRODUCT_ID_LCS8138TX)},
147 {USB_DEVICE(VENDOR_ID_ZYXEL, PRODUCT_ID_PRESTIGE)},
145 {} 148 {}
146}; 149};
147 150
diff --git a/drivers/usb/serial/Kconfig b/drivers/usb/serial/Kconfig
index 8bd44fda5eaf..ac33bd47cfce 100644
--- a/drivers/usb/serial/Kconfig
+++ b/drivers/usb/serial/Kconfig
@@ -456,6 +456,17 @@ config USB_SERIAL_SAFE_PADDED
456 bool "USB Secure Encapsulated Driver - Padded" 456 bool "USB Secure Encapsulated Driver - Padded"
457 depends on USB_SERIAL_SAFE 457 depends on USB_SERIAL_SAFE
458 458
459config USB_SERIAL_SIERRAWIRELESS
460 tristate "USB Sierra Wireless Driver"
461 depends on USB_SERIAL
462 help
463 Say M here if you want to use a Sierra Wireless device (if
464 using an PC 5220 or AC580 please use the Airprime driver
465 instead).
466
467 To compile this driver as a module, choose M here: the
468 module will be called sierra.
469
459config USB_SERIAL_TI 470config USB_SERIAL_TI
460 tristate "USB TI 3410/5052 Serial Driver" 471 tristate "USB TI 3410/5052 Serial Driver"
461 depends on USB_SERIAL 472 depends on USB_SERIAL
diff --git a/drivers/usb/serial/Makefile b/drivers/usb/serial/Makefile
index 5a0960fc9d3e..35d4acc7f1d3 100644
--- a/drivers/usb/serial/Makefile
+++ b/drivers/usb/serial/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_USB_SERIAL_OMNINET) += omninet.o
39obj-$(CONFIG_USB_SERIAL_OPTION) += option.o 39obj-$(CONFIG_USB_SERIAL_OPTION) += option.o
40obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o 40obj-$(CONFIG_USB_SERIAL_PL2303) += pl2303.o
41obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o 41obj-$(CONFIG_USB_SERIAL_SAFE) += safe_serial.o
42obj-$(CONFIG_USB_SERIAL_SIERRAWIRELESS) += sierra.o
42obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o 43obj-$(CONFIG_USB_SERIAL_TI) += ti_usb_3410_5052.o
43obj-$(CONFIG_USB_SERIAL_VISOR) += visor.o 44obj-$(CONFIG_USB_SERIAL_VISOR) += visor.o
44obj-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat.o 45obj-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat.o
diff --git a/drivers/usb/serial/airprime.c b/drivers/usb/serial/airprime.c
index 94b9ba0ff875..62082532a8b3 100644
--- a/drivers/usb/serial/airprime.c
+++ b/drivers/usb/serial/airprime.c
@@ -13,7 +13,7 @@
13#include <linux/tty.h> 13#include <linux/tty.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/usb.h> 15#include <linux/usb.h>
16#include "usb-serial.h" 16#include <linux/usb/serial.h>
17 17
18static struct usb_device_id id_table [] = { 18static struct usb_device_id id_table [] = {
19 { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */ 19 { USB_DEVICE(0x0c88, 0x17da) }, /* Kyocera Wireless KPC650/Passport */
diff --git a/drivers/usb/serial/anydata.c b/drivers/usb/serial/anydata.c
index 343f6f228220..01843ef8c11e 100644
--- a/drivers/usb/serial/anydata.c
+++ b/drivers/usb/serial/anydata.c
@@ -13,7 +13,7 @@
13#include <linux/tty.h> 13#include <linux/tty.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/usb.h> 15#include <linux/usb.h>
16#include "usb-serial.h" 16#include <linux/usb/serial.h>
17 17
18static struct usb_device_id id_table [] = { 18static struct usb_device_id id_table [] = {
19 { USB_DEVICE(0x16d5, 0x6501) }, /* AirData CDMA device */ 19 { USB_DEVICE(0x16d5, 0x6501) }, /* AirData CDMA device */
@@ -71,7 +71,7 @@ static int anydata_open(struct usb_serial_port *port, struct file *filp)
71 port->bulk_in_endpointAddress), 71 port->bulk_in_endpointAddress),
72 port->read_urb->transfer_buffer, 72 port->read_urb->transfer_buffer,
73 port->read_urb->transfer_buffer_length, 73 port->read_urb->transfer_buffer_length,
74 usb_serial_generic_write_bulk_callback, port); 74 usb_serial_generic_read_bulk_callback, port);
75 result = usb_submit_urb(port->read_urb, GFP_KERNEL); 75 result = usb_submit_urb(port->read_urb, GFP_KERNEL);
76 if (result) 76 if (result)
77 dev_err(&port->dev, 77 dev_err(&port->dev,
diff --git a/drivers/usb/serial/ark3116.c b/drivers/usb/serial/ark3116.c
index 8dec796222a0..970d9ef0a7a5 100644
--- a/drivers/usb/serial/ark3116.c
+++ b/drivers/usb/serial/ark3116.c
@@ -21,7 +21,7 @@
21#include <linux/tty.h> 21#include <linux/tty.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/usb.h> 23#include <linux/usb.h>
24#include "usb-serial.h" 24#include <linux/usb/serial.h>
25 25
26 26
27static int debug; 27static int debug;
diff --git a/drivers/usb/serial/belkin_sa.c b/drivers/usb/serial/belkin_sa.c
index 3faa7aa0111a..70ece9e01ce4 100644
--- a/drivers/usb/serial/belkin_sa.c
+++ b/drivers/usb/serial/belkin_sa.c
@@ -74,7 +74,7 @@
74#include <linux/spinlock.h> 74#include <linux/spinlock.h>
75#include <asm/uaccess.h> 75#include <asm/uaccess.h>
76#include <linux/usb.h> 76#include <linux/usb.h>
77#include "usb-serial.h" 77#include <linux/usb/serial.h>
78#include "belkin_sa.h" 78#include "belkin_sa.h"
79 79
80static int debug; 80static int debug;
diff --git a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c
index f2d993b70c18..6542f220468f 100644
--- a/drivers/usb/serial/bus.c
+++ b/drivers/usb/serial/bus.c
@@ -13,7 +13,7 @@
13#include <linux/tty.h> 13#include <linux/tty.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/usb.h> 15#include <linux/usb.h>
16#include "usb-serial.h" 16#include <linux/usb/serial.h>
17 17
18static int usb_serial_device_match (struct device *dev, struct device_driver *drv) 18static int usb_serial_device_match (struct device *dev, struct device_driver *drv)
19{ 19{
diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
index 3d456b32c316..3a9073dbfe6a 100644
--- a/drivers/usb/serial/console.c
+++ b/drivers/usb/serial/console.c
@@ -17,11 +17,10 @@
17#include <linux/tty.h> 17#include <linux/tty.h>
18#include <linux/console.h> 18#include <linux/console.h>
19#include <linux/usb.h> 19#include <linux/usb.h>
20#include <linux/usb/serial.h>
20 21
21static int debug; 22static int debug;
22 23
23#include "usb-serial.h"
24
25struct usbcons_info { 24struct usbcons_info {
26 int magic; 25 int magic;
27 int break_flag; 26 int break_flag;
diff --git a/drivers/usb/serial/cp2101.c b/drivers/usb/serial/cp2101.c
index df0a4f98b4ae..486c7411b9a7 100644
--- a/drivers/usb/serial/cp2101.c
+++ b/drivers/usb/serial/cp2101.c
@@ -26,7 +26,7 @@
26#include <linux/moduleparam.h> 26#include <linux/moduleparam.h>
27#include <linux/usb.h> 27#include <linux/usb.h>
28#include <asm/uaccess.h> 28#include <asm/uaccess.h>
29#include "usb-serial.h" 29#include <linux/usb/serial.h>
30 30
31/* 31/*
32 * Version Information 32 * Version Information
diff --git a/drivers/usb/serial/cyberjack.c b/drivers/usb/serial/cyberjack.c
index 49b51ab0d4cb..6286aba86fae 100644
--- a/drivers/usb/serial/cyberjack.c
+++ b/drivers/usb/serial/cyberjack.c
@@ -39,7 +39,7 @@
39#include <linux/spinlock.h> 39#include <linux/spinlock.h>
40#include <asm/uaccess.h> 40#include <asm/uaccess.h>
41#include <linux/usb.h> 41#include <linux/usb.h>
42#include "usb-serial.h" 42#include <linux/usb/serial.h>
43 43
44#define CYBERJACK_LOCAL_BUF_SIZE 32 44#define CYBERJACK_LOCAL_BUF_SIZE 32
45 45
diff --git a/drivers/usb/serial/cypress_m8.c b/drivers/usb/serial/cypress_m8.c
index 4ff2dfb299bd..ee70fddcab60 100644
--- a/drivers/usb/serial/cypress_m8.c
+++ b/drivers/usb/serial/cypress_m8.c
@@ -59,11 +59,11 @@
59#include <linux/moduleparam.h> 59#include <linux/moduleparam.h>
60#include <linux/spinlock.h> 60#include <linux/spinlock.h>
61#include <linux/usb.h> 61#include <linux/usb.h>
62#include <linux/usb/serial.h>
62#include <linux/serial.h> 63#include <linux/serial.h>
63#include <linux/delay.h> 64#include <linux/delay.h>
64#include <asm/uaccess.h> 65#include <asm/uaccess.h>
65 66
66#include "usb-serial.h"
67#include "cypress_m8.h" 67#include "cypress_m8.h"
68 68
69 69
diff --git a/drivers/usb/serial/digi_acceleport.c b/drivers/usb/serial/digi_acceleport.c
index 6953d3ef5738..9b225183fc7a 100644
--- a/drivers/usb/serial/digi_acceleport.c
+++ b/drivers/usb/serial/digi_acceleport.c
@@ -246,7 +246,7 @@
246#include <asm/uaccess.h> 246#include <asm/uaccess.h>
247#include <linux/usb.h> 247#include <linux/usb.h>
248#include <linux/wait.h> 248#include <linux/wait.h>
249#include "usb-serial.h" 249#include <linux/usb/serial.h>
250 250
251/* Defines */ 251/* Defines */
252 252
diff --git a/drivers/usb/serial/empeg.c b/drivers/usb/serial/empeg.c
index 1e2b31eeb497..daafe405d86d 100644
--- a/drivers/usb/serial/empeg.c
+++ b/drivers/usb/serial/empeg.c
@@ -62,7 +62,7 @@
62#include <linux/spinlock.h> 62#include <linux/spinlock.h>
63#include <asm/uaccess.h> 63#include <asm/uaccess.h>
64#include <linux/usb.h> 64#include <linux/usb.h>
65#include "usb-serial.h" 65#include <linux/usb/serial.h>
66 66
67static int debug; 67static int debug;
68 68
diff --git a/drivers/usb/serial/ezusb.c b/drivers/usb/serial/ezusb.c
index debc3b0f9662..5169c2d154ab 100644
--- a/drivers/usb/serial/ezusb.c
+++ b/drivers/usb/serial/ezusb.c
@@ -15,7 +15,7 @@
15#include <linux/tty.h> 15#include <linux/tty.h>
16#include <linux/module.h> 16#include <linux/module.h>
17#include <linux/usb.h> 17#include <linux/usb.h>
18#include "usb-serial.h" 18#include <linux/usb/serial.h>
19 19
20/* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */ 20/* EZ-USB Control and Status Register. Bit 0 controls 8051 reset */
21#define CPUCS_REG 0x7F92 21#define CPUCS_REG 0x7F92
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
index 8a74b19f1283..b458aedc5fb6 100644
--- a/drivers/usb/serial/ftdi_sio.c
+++ b/drivers/usb/serial/ftdi_sio.c
@@ -257,7 +257,7 @@
257#include <asm/uaccess.h> 257#include <asm/uaccess.h>
258#include <linux/usb.h> 258#include <linux/usb.h>
259#include <linux/serial.h> 259#include <linux/serial.h>
260#include "usb-serial.h" 260#include <linux/usb/serial.h>
261#include "ftdi_sio.h" 261#include "ftdi_sio.h"
262 262
263/* 263/*
@@ -313,6 +313,7 @@ static struct usb_device_id id_table_combined [] = {
313 { USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) }, 313 { USB_DEVICE(FTDI_VID, FTDI_8U232AM_PID) },
314 { USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) }, 314 { USB_DEVICE(FTDI_VID, FTDI_8U232AM_ALT_PID) },
315 { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) }, 315 { USB_DEVICE(FTDI_VID, FTDI_8U2232C_PID) },
316 { USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
316 { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) }, 317 { USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
317 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) }, 318 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_IOBOARD_PID) },
318 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) }, 319 { USB_DEVICE(INTERBIOMETRICS_VID, INTERBIOMETRICS_MINI_IOBOARD_PID) },
@@ -500,6 +501,8 @@ static struct usb_device_id id_table_combined [] = {
500 { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) }, 501 { USB_DEVICE(PAPOUCH_VID, PAPOUCH_TMU_PID) },
501 { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) }, 502 { USB_DEVICE(FTDI_VID, FTDI_ACG_HFDUAL_PID) },
502 { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) }, 503 { USB_DEVICE(FTDI_VID, FTDI_YEI_SERVOCENTER31_PID) },
504 { USB_DEVICE(FTDI_VID, FTDI_THORLABS_PID) },
505 { USB_DEVICE(TESTO_VID, TESTO_USB_INTERFACE_PID) },
503 { }, /* Optional parameter entry */ 506 { }, /* Optional parameter entry */
504 { } /* Terminating entry */ 507 { } /* Terminating entry */
505}; 508};
@@ -548,11 +551,17 @@ struct ftdi_private {
548 spinlock_t rx_lock; /* spinlock for receive state */ 551 spinlock_t rx_lock; /* spinlock for receive state */
549 struct work_struct rx_work; 552 struct work_struct rx_work;
550 int rx_processed; 553 int rx_processed;
554 unsigned long rx_bytes;
551 555
552 __u16 interface; /* FT2232C port interface (0 for FT232/245) */ 556 __u16 interface; /* FT2232C port interface (0 for FT232/245) */
553 557
554 int force_baud; /* if non-zero, force the baud rate to this value */ 558 int force_baud; /* if non-zero, force the baud rate to this value */
555 int force_rtscts; /* if non-zero, force RTS-CTS to always be enabled */ 559 int force_rtscts; /* if non-zero, force RTS-CTS to always be enabled */
560
561 spinlock_t tx_lock; /* spinlock for transmit state */
562 unsigned long tx_bytes;
563 unsigned long tx_outstanding_bytes;
564 unsigned long tx_outstanding_urbs;
556}; 565};
557 566
558/* Used for TIOCMIWAIT */ 567/* Used for TIOCMIWAIT */
@@ -626,6 +635,9 @@ static struct usb_serial_driver ftdi_sio_device = {
626#define HIGH 1 635#define HIGH 1
627#define LOW 0 636#define LOW 0
628 637
638/* number of outstanding urbs to prevent userspace DoS from happening */
639#define URB_UPPER_LIMIT 42
640
629/* 641/*
630 * *************************************************************************** 642 * ***************************************************************************
631 * Utlity functions 643 * Utlity functions
@@ -1156,6 +1168,7 @@ static int ftdi_sio_attach (struct usb_serial *serial)
1156 } 1168 }
1157 1169
1158 spin_lock_init(&priv->rx_lock); 1170 spin_lock_init(&priv->rx_lock);
1171 spin_lock_init(&priv->tx_lock);
1159 init_waitqueue_head(&priv->delta_msr_wait); 1172 init_waitqueue_head(&priv->delta_msr_wait);
1160 /* This will push the characters through immediately rather 1173 /* This will push the characters through immediately rather
1161 than queue a task to deliver them */ 1174 than queue a task to deliver them */
@@ -1270,6 +1283,13 @@ static int ftdi_open (struct usb_serial_port *port, struct file *filp)
1270 1283
1271 dbg("%s", __FUNCTION__); 1284 dbg("%s", __FUNCTION__);
1272 1285
1286 spin_lock_irqsave(&priv->tx_lock, flags);
1287 priv->tx_bytes = 0;
1288 spin_unlock_irqrestore(&priv->tx_lock, flags);
1289 spin_lock_irqsave(&priv->rx_lock, flags);
1290 priv->rx_bytes = 0;
1291 spin_unlock_irqrestore(&priv->rx_lock, flags);
1292
1273 if (port->tty) 1293 if (port->tty)
1274 port->tty->low_latency = (priv->flags & ASYNC_LOW_LATENCY) ? 1 : 0; 1294 port->tty->low_latency = (priv->flags & ASYNC_LOW_LATENCY) ? 1 : 0;
1275 1295
@@ -1372,6 +1392,7 @@ static int ftdi_write (struct usb_serial_port *port,
1372 int data_offset ; /* will be 1 for the SIO and 0 otherwise */ 1392 int data_offset ; /* will be 1 for the SIO and 0 otherwise */
1373 int status; 1393 int status;
1374 int transfer_size; 1394 int transfer_size;
1395 unsigned long flags;
1375 1396
1376 dbg("%s port %d, %d bytes", __FUNCTION__, port->number, count); 1397 dbg("%s port %d, %d bytes", __FUNCTION__, port->number, count);
1377 1398
@@ -1379,6 +1400,13 @@ static int ftdi_write (struct usb_serial_port *port,
1379 dbg("write request of 0 bytes"); 1400 dbg("write request of 0 bytes");
1380 return 0; 1401 return 0;
1381 } 1402 }
1403 spin_lock_irqsave(&priv->tx_lock, flags);
1404 if (priv->tx_outstanding_urbs > URB_UPPER_LIMIT) {
1405 spin_unlock_irqrestore(&priv->tx_lock, flags);
1406 dbg("%s - write limit hit\n", __FUNCTION__);
1407 return 0;
1408 }
1409 spin_unlock_irqrestore(&priv->tx_lock, flags);
1382 1410
1383 data_offset = priv->write_offset; 1411 data_offset = priv->write_offset;
1384 dbg("data_offset set to %d",data_offset); 1412 dbg("data_offset set to %d",data_offset);
@@ -1445,6 +1473,12 @@ static int ftdi_write (struct usb_serial_port *port,
1445 err("%s - failed submitting write urb, error %d", __FUNCTION__, status); 1473 err("%s - failed submitting write urb, error %d", __FUNCTION__, status);
1446 count = status; 1474 count = status;
1447 kfree (buffer); 1475 kfree (buffer);
1476 } else {
1477 spin_lock_irqsave(&priv->tx_lock, flags);
1478 ++priv->tx_outstanding_urbs;
1479 priv->tx_outstanding_bytes += count;
1480 priv->tx_bytes += count;
1481 spin_unlock_irqrestore(&priv->tx_lock, flags);
1448 } 1482 }
1449 1483
1450 /* we are done with this urb, so let the host driver 1484 /* we are done with this urb, so let the host driver
@@ -1460,7 +1494,11 @@ static int ftdi_write (struct usb_serial_port *port,
1460 1494
1461static void ftdi_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 1495static void ftdi_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
1462{ 1496{
1497 unsigned long flags;
1463 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1498 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1499 struct ftdi_private *priv;
1500 int data_offset; /* will be 1 for the SIO and 0 otherwise */
1501 unsigned long countback;
1464 1502
1465 /* free up the transfer buffer, as usb_free_urb() does not do this */ 1503 /* free up the transfer buffer, as usb_free_urb() does not do this */
1466 kfree (urb->transfer_buffer); 1504 kfree (urb->transfer_buffer);
@@ -1472,34 +1510,67 @@ static void ftdi_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
1472 return; 1510 return;
1473 } 1511 }
1474 1512
1513 priv = usb_get_serial_port_data(port);
1514 if (!priv) {
1515 dbg("%s - bad port private data pointer - exiting", __FUNCTION__);
1516 return;
1517 }
1518 /* account for transferred data */
1519 countback = urb->actual_length;
1520 data_offset = priv->write_offset;
1521 if (data_offset > 0) {
1522 /* Subtract the control bytes */
1523 countback -= (data_offset * ((countback + (PKTSZ - 1)) / PKTSZ));
1524 }
1525 spin_lock_irqsave(&priv->tx_lock, flags);
1526 --priv->tx_outstanding_urbs;
1527 priv->tx_outstanding_bytes -= countback;
1528 spin_unlock_irqrestore(&priv->tx_lock, flags);
1529
1475 usb_serial_port_softint(port); 1530 usb_serial_port_softint(port);
1476} /* ftdi_write_bulk_callback */ 1531} /* ftdi_write_bulk_callback */
1477 1532
1478 1533
1479static int ftdi_write_room( struct usb_serial_port *port ) 1534static int ftdi_write_room( struct usb_serial_port *port )
1480{ 1535{
1536 struct ftdi_private *priv = usb_get_serial_port_data(port);
1537 int room;
1538 unsigned long flags;
1539
1481 dbg("%s - port %d", __FUNCTION__, port->number); 1540 dbg("%s - port %d", __FUNCTION__, port->number);
1482 1541
1483 /* 1542 spin_lock_irqsave(&priv->tx_lock, flags);
1484 * We really can take anything the user throws at us 1543 if (priv->tx_outstanding_urbs < URB_UPPER_LIMIT) {
1485 * but let's pick a nice big number to tell the tty 1544 /*
1486 * layer that we have lots of free space 1545 * We really can take anything the user throws at us
1487 */ 1546 * but let's pick a nice big number to tell the tty
1488 return 2048; 1547 * layer that we have lots of free space
1548 */
1549 room = 2048;
1550 } else {
1551 room = 0;
1552 }
1553 spin_unlock_irqrestore(&priv->tx_lock, flags);
1554 return room;
1489} /* ftdi_write_room */ 1555} /* ftdi_write_room */
1490 1556
1491 1557
1492static int ftdi_chars_in_buffer (struct usb_serial_port *port) 1558static int ftdi_chars_in_buffer (struct usb_serial_port *port)
1493{ /* ftdi_chars_in_buffer */ 1559{ /* ftdi_chars_in_buffer */
1560 struct ftdi_private *priv = usb_get_serial_port_data(port);
1561 int buffered;
1562 unsigned long flags;
1563
1494 dbg("%s - port %d", __FUNCTION__, port->number); 1564 dbg("%s - port %d", __FUNCTION__, port->number);
1495 1565
1496 /* 1566 spin_lock_irqsave(&priv->tx_lock, flags);
1497 * We can't really account for how much data we 1567 buffered = (int)priv->tx_outstanding_bytes;
1498 * have sent out, but hasn't made it through to the 1568 spin_unlock_irqrestore(&priv->tx_lock, flags);
1499 * device, so just tell the tty layer that everything 1569 if (buffered < 0) {
1500 * is flushed. 1570 err("%s outstanding tx bytes is negative!", __FUNCTION__);
1501 */ 1571 buffered = 0;
1502 return 0; 1572 }
1573 return buffered;
1503} /* ftdi_chars_in_buffer */ 1574} /* ftdi_chars_in_buffer */
1504 1575
1505 1576
@@ -1509,6 +1580,8 @@ static void ftdi_read_bulk_callback (struct urb *urb, struct pt_regs *regs)
1509 struct usb_serial_port *port = (struct usb_serial_port *)urb->context; 1580 struct usb_serial_port *port = (struct usb_serial_port *)urb->context;
1510 struct tty_struct *tty; 1581 struct tty_struct *tty;
1511 struct ftdi_private *priv; 1582 struct ftdi_private *priv;
1583 unsigned long countread;
1584 unsigned long flags;
1512 1585
1513 if (urb->number_of_packets > 0) { 1586 if (urb->number_of_packets > 0) {
1514 err("%s transfer_buffer_length %d actual_length %d number of packets %d",__FUNCTION__, 1587 err("%s transfer_buffer_length %d actual_length %d number of packets %d",__FUNCTION__,
@@ -1543,6 +1616,13 @@ static void ftdi_read_bulk_callback (struct urb *urb, struct pt_regs *regs)
1543 return; 1616 return;
1544 } 1617 }
1545 1618
1619 /* count data bytes, but not status bytes */
1620 countread = urb->actual_length;
1621 countread -= 2 * ((countread + (PKTSZ - 1)) / PKTSZ);
1622 spin_lock_irqsave(&priv->rx_lock, flags);
1623 priv->rx_bytes += countread;
1624 spin_unlock_irqrestore(&priv->rx_lock, flags);
1625
1546 ftdi_process_read(port); 1626 ftdi_process_read(port);
1547 1627
1548} /* ftdi_read_bulk_callback */ 1628} /* ftdi_read_bulk_callback */
diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
index 6ab2ac845bd7..04ef90fcb876 100644
--- a/drivers/usb/serial/ftdi_sio.h
+++ b/drivers/usb/serial/ftdi_sio.h
@@ -36,6 +36,9 @@
36#define FTDI_ACTZWAVE_PID 0xF2D0 36#define FTDI_ACTZWAVE_PID 0xF2D0
37 37
38 38
39/* www.starting-point-systems.com µChameleon device */
40#define FTDI_MICRO_CHAMELEON_PID 0xCAA0 /* Product Id */
41
39/* www.irtrans.de device */ 42/* www.irtrans.de device */
40#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */ 43#define FTDI_IRTRANS_PID 0xFC60 /* Product Id */
41 44
@@ -442,6 +445,18 @@
442 */ 445 */
443#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */ 446#define FTDI_YEI_SERVOCENTER31_PID 0xE050 /* YEI ServoCenter3.1 USB */
444 447
448/*
449 * ThorLabs USB motor drivers
450 */
451#define FTDI_THORLABS_PID 0xfaf0 /* ThorLabs USB motor drivers */
452
453/*
454 * Testo products (http://www.testo.com/)
455 * Submitted by Colin Leroy
456 */
457#define TESTO_VID 0x128D
458#define TESTO_USB_INTERFACE_PID 0x0001
459
445/* Commands */ 460/* Commands */
446#define FTDI_SIO_RESET 0 /* Reset the port */ 461#define FTDI_SIO_RESET 0 /* Reset the port */
447#define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */ 462#define FTDI_SIO_MODEM_CTRL 1 /* Set the modem control register */
diff --git a/drivers/usb/serial/funsoft.c b/drivers/usb/serial/funsoft.c
index 803721b97e2e..77b977206a8c 100644
--- a/drivers/usb/serial/funsoft.c
+++ b/drivers/usb/serial/funsoft.c
@@ -13,7 +13,7 @@
13#include <linux/tty.h> 13#include <linux/tty.h>
14#include <linux/module.h> 14#include <linux/module.h>
15#include <linux/usb.h> 15#include <linux/usb.h>
16#include "usb-serial.h" 16#include <linux/usb/serial.h>
17 17
18static struct usb_device_id id_table [] = { 18static struct usb_device_id id_table [] = {
19 { USB_DEVICE(0x1404, 0xcddc) }, 19 { USB_DEVICE(0x1404, 0xcddc) },
diff --git a/drivers/usb/serial/garmin_gps.c b/drivers/usb/serial/garmin_gps.c
index 1f5d1620baa1..727852634be9 100644
--- a/drivers/usb/serial/garmin_gps.c
+++ b/drivers/usb/serial/garmin_gps.c
@@ -35,6 +35,7 @@
35#include <linux/spinlock.h> 35#include <linux/spinlock.h>
36#include <asm/uaccess.h> 36#include <asm/uaccess.h>
37#include <linux/usb.h> 37#include <linux/usb.h>
38#include <linux/usb/serial.h>
38 39
39/* the mode to be set when the port ist opened */ 40/* the mode to be set when the port ist opened */
40static int initial_mode = 1; 41static int initial_mode = 1;
@@ -42,8 +43,6 @@ static int initial_mode = 1;
42/* debug flag */ 43/* debug flag */
43static int debug = 0; 44static int debug = 0;
44 45
45#include "usb-serial.h"
46
47#define GARMIN_VENDOR_ID 0x091E 46#define GARMIN_VENDOR_ID 0x091E
48 47
49/* 48/*
diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
index 945b8bb38c92..172713556393 100644
--- a/drivers/usb/serial/generic.c
+++ b/drivers/usb/serial/generic.c
@@ -17,8 +17,8 @@
17#include <linux/module.h> 17#include <linux/module.h>
18#include <linux/moduleparam.h> 18#include <linux/moduleparam.h>
19#include <linux/usb.h> 19#include <linux/usb.h>
20#include <linux/usb/serial.h>
20#include <asm/uaccess.h> 21#include <asm/uaccess.h>
21#include "usb-serial.h"
22 22
23static int debug; 23static int debug;
24 24
@@ -285,6 +285,7 @@ void usb_serial_generic_read_bulk_callback (struct urb *urb, struct pt_regs *reg
285 if (result) 285 if (result)
286 dev_err(&port->dev, "%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result); 286 dev_err(&port->dev, "%s - failed resubmitting read urb, error %d\n", __FUNCTION__, result);
287} 287}
288EXPORT_SYMBOL_GPL(usb_serial_generic_read_bulk_callback);
288 289
289void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs) 290void usb_serial_generic_write_bulk_callback (struct urb *urb, struct pt_regs *regs)
290{ 291{
diff --git a/drivers/usb/serial/hp4x.c b/drivers/usb/serial/hp4x.c
index 7e06358b0310..ebcac701b069 100644
--- a/drivers/usb/serial/hp4x.c
+++ b/drivers/usb/serial/hp4x.c
@@ -17,7 +17,7 @@
17#include <linux/tty.h> 17#include <linux/tty.h>
18#include <linux/module.h> 18#include <linux/module.h>
19#include <linux/usb.h> 19#include <linux/usb.h>
20#include "usb-serial.h" 20#include <linux/usb/serial.h>
21 21
22/* 22/*
23 * Version Information 23 * Version Information
diff --git a/drivers/usb/serial/io_edgeport.c b/drivers/usb/serial/io_edgeport.c
index bd2c05dac2a9..c49976c3ad52 100644
--- a/drivers/usb/serial/io_edgeport.c
+++ b/drivers/usb/serial/io_edgeport.c
@@ -44,7 +44,7 @@
44#include <linux/wait.h> 44#include <linux/wait.h>
45#include <asm/uaccess.h> 45#include <asm/uaccess.h>
46#include <linux/usb.h> 46#include <linux/usb.h>
47#include "usb-serial.h" 47#include <linux/usb/serial.h>
48#include "io_edgeport.h" 48#include "io_edgeport.h"
49#include "io_ionsp.h" /* info for the iosp messages */ 49#include "io_ionsp.h" /* info for the iosp messages */
50#include "io_16654.h" /* 16654 UART defines */ 50#include "io_16654.h" /* 16654 UART defines */
diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
index 723a12ae87b5..17c5b1d2311a 100644
--- a/drivers/usb/serial/io_ti.c
+++ b/drivers/usb/serial/io_ti.c
@@ -39,8 +39,8 @@
39#include <asm/uaccess.h> 39#include <asm/uaccess.h>
40#include <asm/semaphore.h> 40#include <asm/semaphore.h>
41#include <linux/usb.h> 41#include <linux/usb.h>
42#include <linux/usb/serial.h>
42 43
43#include "usb-serial.h"
44#include "io_16654.h" 44#include "io_16654.h"
45#include "io_usbvend.h" 45#include "io_usbvend.h"
46#include "io_ti.h" 46#include "io_ti.h"
diff --git a/drivers/usb/serial/ipaq.c b/drivers/usb/serial/ipaq.c
index dbcfe172a5cc..59c5d999009a 100644
--- a/drivers/usb/serial/ipaq.c
+++ b/drivers/usb/serial/ipaq.c
@@ -55,7 +55,7 @@
55#include <linux/spinlock.h> 55#include <linux/spinlock.h>
56#include <asm/uaccess.h> 56#include <asm/uaccess.h>
57#include <linux/usb.h> 57#include <linux/usb.h>
58#include "usb-serial.h" 58#include <linux/usb/serial.h>
59#include "ipaq.h" 59#include "ipaq.h"
60 60
61#define KP_RETRIES 100 61#define KP_RETRIES 100
@@ -70,6 +70,8 @@
70 70
71static __u16 product, vendor; 71static __u16 product, vendor;
72static int debug; 72static int debug;
73static int connect_retries = KP_RETRIES;
74static int initial_wait;
73 75
74/* Function prototypes for an ipaq */ 76/* Function prototypes for an ipaq */
75static int ipaq_open (struct usb_serial_port *port, struct file *filp); 77static int ipaq_open (struct usb_serial_port *port, struct file *filp);
@@ -582,7 +584,7 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp)
582 struct ipaq_private *priv; 584 struct ipaq_private *priv;
583 struct ipaq_packet *pkt; 585 struct ipaq_packet *pkt;
584 int i, result = 0; 586 int i, result = 0;
585 int retries = KP_RETRIES; 587 int retries = connect_retries;
586 588
587 dbg("%s - port %d", __FUNCTION__, port->number); 589 dbg("%s - port %d", __FUNCTION__, port->number);
588 590
@@ -646,16 +648,12 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp)
646 port->read_urb->transfer_buffer_length = URBDATA_SIZE; 648 port->read_urb->transfer_buffer_length = URBDATA_SIZE;
647 port->bulk_out_size = port->write_urb->transfer_buffer_length = URBDATA_SIZE; 649 port->bulk_out_size = port->write_urb->transfer_buffer_length = URBDATA_SIZE;
648 650
651 msleep(1000*initial_wait);
649 /* Start reading from the device */ 652 /* Start reading from the device */
650 usb_fill_bulk_urb(port->read_urb, serial->dev, 653 usb_fill_bulk_urb(port->read_urb, serial->dev,
651 usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress), 654 usb_rcvbulkpipe(serial->dev, port->bulk_in_endpointAddress),
652 port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length, 655 port->read_urb->transfer_buffer, port->read_urb->transfer_buffer_length,
653 ipaq_read_bulk_callback, port); 656 ipaq_read_bulk_callback, port);
654 result = usb_submit_urb(port->read_urb, GFP_KERNEL);
655 if (result) {
656 err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
657 goto error;
658 }
659 657
660 /* 658 /*
661 * Send out control message observed in win98 sniffs. Not sure what 659 * Send out control message observed in win98 sniffs. Not sure what
@@ -670,8 +668,14 @@ static int ipaq_open(struct usb_serial_port *port, struct file *filp)
670 usb_sndctrlpipe(serial->dev, 0), 0x22, 0x21, 668 usb_sndctrlpipe(serial->dev, 0), 0x22, 0x21,
671 0x1, 0, NULL, 0, 100); 669 0x1, 0, NULL, 0, 100);
672 if (result == 0) { 670 if (result == 0) {
671 result = usb_submit_urb(port->read_urb, GFP_KERNEL);
672 if (result) {
673 err("%s - failed submitting read urb, error %d", __FUNCTION__, result);
674 goto error;
675 }
673 return 0; 676 return 0;
674 } 677 }
678 msleep(1000);
675 } 679 }
676 err("%s - failed doing control urb, error %d", __FUNCTION__, result); 680 err("%s - failed doing control urb, error %d", __FUNCTION__, result);
677 goto error; 681 goto error;
@@ -854,6 +858,7 @@ static void ipaq_write_bulk_callback(struct urb *urb, struct pt_regs *regs)
854 858
855 if (urb->status) { 859 if (urb->status) {
856 dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); 860 dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status);
861 return;
857 } 862 }
858 863
859 spin_lock_irqsave(&write_list_lock, flags); 864 spin_lock_irqsave(&write_list_lock, flags);
@@ -966,3 +971,9 @@ MODULE_PARM_DESC(vendor, "User specified USB idVendor");
966 971
967module_param(product, ushort, 0); 972module_param(product, ushort, 0);
968MODULE_PARM_DESC(product, "User specified USB idProduct"); 973MODULE_PARM_DESC(product, "User specified USB idProduct");
974
975module_param(connect_retries, int, S_IRUGO|S_IWUSR);
976MODULE_PARM_DESC(connect_retries, "Maximum number of connect retries (one second each)");
977
978module_param(initial_wait, int, S_IRUGO|S_IWUSR);
979MODULE_PARM_DESC(initial_wait, "Time to wait before attempting a connection (in seconds)");
diff --git a/drivers/usb/serial/ipw.c b/drivers/usb/serial/ipw.c
index a4a0bfeaab00..87306cb6f9f5 100644
--- a/drivers/usb/serial/ipw.c
+++ b/drivers/usb/serial/ipw.c
@@ -46,8 +46,8 @@
46#include <linux/module.h> 46#include <linux/module.h>
47#include <linux/spinlock.h> 47#include <linux/spinlock.h>
48#include <linux/usb.h> 48#include <linux/usb.h>
49#include <linux/usb/serial.h>
49#include <asm/uaccess.h> 50#include <asm/uaccess.h>
50#include "usb-serial.h"
51 51
52/* 52/*
53 * Version Information 53 * Version Information
@@ -373,6 +373,8 @@ static void ipw_write_bulk_callback(struct urb *urb, struct pt_regs *regs)
373 373
374 dbg("%s", __FUNCTION__); 374 dbg("%s", __FUNCTION__);
375 375
376 port->write_urb_busy = 0;
377
376 if (urb->status) 378 if (urb->status)
377 dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status); 379 dbg("%s - nonzero write bulk status received: %d", __FUNCTION__, urb->status);
378 380
diff --git a/drivers/usb/serial/ir-usb.c b/drivers/usb/serial/ir-usb.c
index 2cf1fed3de43..1738b0b6a376 100644
--- a/drivers/usb/serial/ir-usb.c
+++ b/drivers/usb/serial/ir-usb.c
@@ -57,7 +57,7 @@
57#include <linux/spinlock.h> 57#include <linux/spinlock.h>
58#include <asm/uaccess.h> 58#include <asm/uaccess.h>
59#include <linux/usb.h> 59#include <linux/usb.h>
60#include "usb-serial.h" 60#include <linux/usb/serial.h>
61 61
62/* 62/*
63 * Version Information 63 * Version Information
diff --git a/drivers/usb/serial/keyspan.c b/drivers/usb/serial/keyspan.c
index d7c58f1bc960..015ad6cc1bbb 100644
--- a/drivers/usb/serial/keyspan.c
+++ b/drivers/usb/serial/keyspan.c
@@ -107,7 +107,7 @@
107#include <linux/spinlock.h> 107#include <linux/spinlock.h>
108#include <asm/uaccess.h> 108#include <asm/uaccess.h>
109#include <linux/usb.h> 109#include <linux/usb.h>
110#include "usb-serial.h" 110#include <linux/usb/serial.h>
111#include "keyspan.h" 111#include "keyspan.h"
112 112
113static int debug; 113static int debug;
diff --git a/drivers/usb/serial/keyspan_pda.c b/drivers/usb/serial/keyspan_pda.c
index 03ab3c0f3cce..49b8dc039d1f 100644
--- a/drivers/usb/serial/keyspan_pda.c
+++ b/drivers/usb/serial/keyspan_pda.c
@@ -78,6 +78,7 @@
78#include <linux/workqueue.h> 78#include <linux/workqueue.h>
79#include <asm/uaccess.h> 79#include <asm/uaccess.h>
80#include <linux/usb.h> 80#include <linux/usb.h>
81#include <linux/usb/serial.h>
81 82
82static int debug; 83static int debug;
83 84
@@ -107,8 +108,6 @@ struct ezusb_hex_record {
107#include "xircom_pgs_fw.h" 108#include "xircom_pgs_fw.h"
108#endif 109#endif
109 110
110#include "usb-serial.h"
111
112/* 111/*
113 * Version Information 112 * Version Information
114 */ 113 */
diff --git a/drivers/usb/serial/kl5kusb105.c b/drivers/usb/serial/kl5kusb105.c
index b45ff3e7ab40..2a2f3e2da055 100644
--- a/drivers/usb/serial/kl5kusb105.c
+++ b/drivers/usb/serial/kl5kusb105.c
@@ -55,7 +55,7 @@
55#include <linux/module.h> 55#include <linux/module.h>
56#include <asm/uaccess.h> 56#include <asm/uaccess.h>
57#include <linux/usb.h> 57#include <linux/usb.h>
58#include "usb-serial.h" 58#include <linux/usb/serial.h>
59#include "kl5kusb105.h" 59#include "kl5kusb105.h"
60 60
61static int debug; 61static int debug;
diff --git a/drivers/usb/serial/kobil_sct.c b/drivers/usb/serial/kobil_sct.c
index 457733374772..d50dce034958 100644
--- a/drivers/usb/serial/kobil_sct.c
+++ b/drivers/usb/serial/kobil_sct.c
@@ -46,8 +46,8 @@
46#include <linux/spinlock.h> 46#include <linux/spinlock.h>
47#include <asm/uaccess.h> 47#include <asm/uaccess.h>
48#include <linux/usb.h> 48#include <linux/usb.h>
49#include <linux/usb/serial.h>
49#include <linux/ioctl.h> 50#include <linux/ioctl.h>
50#include "usb-serial.h"
51#include "kobil_sct.h" 51#include "kobil_sct.h"
52 52
53static int debug; 53static int debug;
diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
index ca05d3275f3e..f4d4305c2c02 100644
--- a/drivers/usb/serial/mct_u232.c
+++ b/drivers/usb/serial/mct_u232.c
@@ -75,7 +75,7 @@
75#include <linux/spinlock.h> 75#include <linux/spinlock.h>
76#include <asm/uaccess.h> 76#include <asm/uaccess.h>
77#include <linux/usb.h> 77#include <linux/usb.h>
78#include "usb-serial.h" 78#include <linux/usb/serial.h>
79#include "mct_u232.h" 79#include "mct_u232.h"
80 80
81/* 81/*
diff --git a/drivers/usb/serial/navman.c b/drivers/usb/serial/navman.c
index 7f544081032e..ac3f8b5d2c49 100644
--- a/drivers/usb/serial/navman.c
+++ b/drivers/usb/serial/navman.c
@@ -14,7 +14,7 @@
14#include <linux/tty_flip.h> 14#include <linux/tty_flip.h>
15#include <linux/module.h> 15#include <linux/module.h>
16#include <linux/usb.h> 16#include <linux/usb.h>
17#include "usb-serial.h" 17#include <linux/usb/serial.h>
18 18
19static int debug; 19static int debug;
20 20
diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
index cfb711a21a45..e49f40913c27 100644
--- a/drivers/usb/serial/omninet.c
+++ b/drivers/usb/serial/omninet.c
@@ -46,7 +46,7 @@
46#include <linux/spinlock.h> 46#include <linux/spinlock.h>
47#include <asm/uaccess.h> 47#include <asm/uaccess.h>
48#include <linux/usb.h> 48#include <linux/usb.h>
49#include "usb-serial.h" 49#include <linux/usb/serial.h>
50 50
51static int debug; 51static int debug;
52 52
diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
index 78ad4b3126a6..f0530c1d7b7a 100644
--- a/drivers/usb/serial/option.c
+++ b/drivers/usb/serial/option.c
@@ -35,6 +35,7 @@
35 2006-06-01 v0.6.2 add backwards-compatibility stuff 35 2006-06-01 v0.6.2 add backwards-compatibility stuff
36 2006-06-01 v0.6.3 add Novatel Wireless 36 2006-06-01 v0.6.3 add Novatel Wireless
37 2006-06-01 v0.7 Option => GSM 37 2006-06-01 v0.7 Option => GSM
38 2006-06-01 v0.7.1 add COBRA2
38 39
39 Work sponsored by: Sigos GmbH, Germany <info@sigos.de> 40 Work sponsored by: Sigos GmbH, Germany <info@sigos.de>
40 41
@@ -53,7 +54,7 @@
53 device features. 54 device features.
54*/ 55*/
55 56
56#define DRIVER_VERSION "v0.7.0" 57#define DRIVER_VERSION "v0.7.1"
57#define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>" 58#define DRIVER_AUTHOR "Matthias Urlichs <smurf@smurf.noris.de>"
58#define DRIVER_DESC "USB Driver for GSM modems" 59#define DRIVER_DESC "USB Driver for GSM modems"
59 60
@@ -64,7 +65,7 @@
64#include <linux/tty_flip.h> 65#include <linux/tty_flip.h>
65#include <linux/module.h> 66#include <linux/module.h>
66#include <linux/usb.h> 67#include <linux/usb.h>
67#include "usb-serial.h" 68#include <linux/usb/serial.h>
68 69
69/* Function prototypes */ 70/* Function prototypes */
70static int option_open(struct usb_serial_port *port, struct file *filp); 71static int option_open(struct usb_serial_port *port, struct file *filp);
@@ -102,6 +103,7 @@ static int option_send_setup(struct usb_serial_port *port);
102#define OPTION_PRODUCT_FUSION 0x6000 103#define OPTION_PRODUCT_FUSION 0x6000
103#define OPTION_PRODUCT_FUSION2 0x6300 104#define OPTION_PRODUCT_FUSION2 0x6300
104#define OPTION_PRODUCT_COBRA 0x6500 105#define OPTION_PRODUCT_COBRA 0x6500
106#define OPTION_PRODUCT_COBRA2 0x6600
105#define HUAWEI_PRODUCT_E600 0x1001 107#define HUAWEI_PRODUCT_E600 0x1001
106#define AUDIOVOX_PRODUCT_AIRCARD 0x0112 108#define AUDIOVOX_PRODUCT_AIRCARD 0x0112
107#define SIERRAWIRELESS_PRODUCT_MC8755 0x6802 109#define SIERRAWIRELESS_PRODUCT_MC8755 0x6802
@@ -112,6 +114,7 @@ static struct usb_device_id option_ids[] = {
112 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, 114 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) },
113 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, 115 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) },
114 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, 116 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) },
117 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) },
115 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, 118 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
116 { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, 119 { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) },
117 { USB_DEVICE(SIERRAWIRELESS_VENDOR_ID, SIERRAWIRELESS_PRODUCT_MC8755) }, 120 { USB_DEVICE(SIERRAWIRELESS_VENDOR_ID, SIERRAWIRELESS_PRODUCT_MC8755) },
@@ -124,6 +127,7 @@ static struct usb_device_id option_ids1[] = {
124 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) }, 127 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION) },
125 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) }, 128 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_FUSION2) },
126 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) }, 129 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA) },
130 { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COBRA2) },
127 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) }, 131 { USB_DEVICE(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E600) },
128 { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) }, 132 { USB_DEVICE(AUDIOVOX_VENDOR_ID, AUDIOVOX_PRODUCT_AIRCARD) },
129 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) }, 133 { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID,NOVATELWIRELESS_PRODUCT_U740) },
diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
index de93a2b909e7..259db31b65c1 100644
--- a/drivers/usb/serial/pl2303.c
+++ b/drivers/usb/serial/pl2303.c
@@ -27,7 +27,7 @@
27#include <linux/spinlock.h> 27#include <linux/spinlock.h>
28#include <asm/uaccess.h> 28#include <asm/uaccess.h>
29#include <linux/usb.h> 29#include <linux/usb.h>
30#include "usb-serial.h" 30#include <linux/usb/serial.h>
31#include "pl2303.h" 31#include "pl2303.h"
32 32
33/* 33/*
@@ -52,6 +52,7 @@ struct pl2303_buf {
52static struct usb_device_id id_table [] = { 52static struct usb_device_id id_table [] = {
53 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID) }, 53 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID) },
54 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ2) }, 54 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ2) },
55 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_DCU11) },
55 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) }, 56 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_RSAQ3) },
56 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) }, 57 { USB_DEVICE(PL2303_VENDOR_ID, PL2303_PRODUCT_ID_PHAROS) },
57 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) }, 58 { USB_DEVICE(IODATA_VENDOR_ID, IODATA_PRODUCT_ID) },
@@ -79,6 +80,7 @@ static struct usb_device_id id_table [] = {
79 { USB_DEVICE(LEADTEK_VENDOR_ID, LEADTEK_9531_PRODUCT_ID) }, 80 { USB_DEVICE(LEADTEK_VENDOR_ID, LEADTEK_9531_PRODUCT_ID) },
80 { USB_DEVICE(SPEEDDRAGON_VENDOR_ID, SPEEDDRAGON_PRODUCT_ID) }, 81 { USB_DEVICE(SPEEDDRAGON_VENDOR_ID, SPEEDDRAGON_PRODUCT_ID) },
81 { USB_DEVICE(OTI_VENDOR_ID, OTI_PRODUCT_ID) }, 82 { USB_DEVICE(OTI_VENDOR_ID, OTI_PRODUCT_ID) },
83 { USB_DEVICE(DATAPILOT_U2_VENDOR_ID, DATAPILOT_U2_PRODUCT_ID) },
82 { } /* Terminating entry */ 84 { } /* Terminating entry */
83}; 85};
84 86
diff --git a/drivers/usb/serial/pl2303.h b/drivers/usb/serial/pl2303.h
index 7f29e81d3e35..d9c1e6e0b4b3 100644
--- a/drivers/usb/serial/pl2303.h
+++ b/drivers/usb/serial/pl2303.h
@@ -10,6 +10,7 @@
10#define PL2303_VENDOR_ID 0x067b 10#define PL2303_VENDOR_ID 0x067b
11#define PL2303_PRODUCT_ID 0x2303 11#define PL2303_PRODUCT_ID 0x2303
12#define PL2303_PRODUCT_ID_RSAQ2 0x04bb 12#define PL2303_PRODUCT_ID_RSAQ2 0x04bb
13#define PL2303_PRODUCT_ID_DCU11 0x1234
13#define PL2303_PRODUCT_ID_PHAROS 0xaaa0 14#define PL2303_PRODUCT_ID_PHAROS 0xaaa0
14#define PL2303_PRODUCT_ID_RSAQ3 0xaaa2 15#define PL2303_PRODUCT_ID_RSAQ3 0xaaa2
15 16
@@ -84,3 +85,7 @@
84/* Ours Technology Inc DKU-5 clone, chipset: Prolific Technology Inc */ 85/* Ours Technology Inc DKU-5 clone, chipset: Prolific Technology Inc */
85#define OTI_VENDOR_ID 0x0ea0 86#define OTI_VENDOR_ID 0x0ea0
86#define OTI_PRODUCT_ID 0x6858 87#define OTI_PRODUCT_ID 0x6858
88
89/* DATAPILOT Universal-2 Phone Cable */
90#define DATAPILOT_U2_VENDOR_ID 0x0731
91#define DATAPILOT_U2_PRODUCT_ID 0x2003
diff --git a/drivers/usb/serial/safe_serial.c b/drivers/usb/serial/safe_serial.c
index 897d8447252b..789771ecdb11 100644
--- a/drivers/usb/serial/safe_serial.c
+++ b/drivers/usb/serial/safe_serial.c
@@ -71,7 +71,7 @@
71#include <linux/spinlock.h> 71#include <linux/spinlock.h>
72#include <asm/uaccess.h> 72#include <asm/uaccess.h>
73#include <linux/usb.h> 73#include <linux/usb.h>
74#include "usb-serial.h" 74#include <linux/usb/serial.h>
75 75
76 76
77#ifndef CONFIG_USB_SAFE_PADDED 77#ifndef CONFIG_USB_SAFE_PADDED
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
new file mode 100644
index 000000000000..d29638daa987
--- /dev/null
+++ b/drivers/usb/serial/sierra.c
@@ -0,0 +1,75 @@
1/*
2 * Sierra Wireless CDMA Wireless Serial USB driver
3 *
4 * Current Copy modified by: Kevin Lloyd <linux@sierrawireless.com>
5 * Original Copyright (C) 2005-2006 Greg Kroah-Hartman <gregkh@suse.de>
6 *
7 * This program is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License version
9 * 2 as published by the Free Software Foundation.
10 */
11
12#include <linux/kernel.h>
13#include <linux/init.h>
14#include <linux/tty.h>
15#include <linux/module.h>
16#include <linux/usb.h>
17#include <linux/usb/serial.h>
18
19static struct usb_device_id id_table [] = {
20 { USB_DEVICE(0x1199, 0x0018) }, /* Sierra Wireless MC5720 */
21 { USB_DEVICE(0x1199, 0x0020) }, /* Sierra Wireless MC5725 */
22 { USB_DEVICE(0x1199, 0x0017) }, /* Sierra Wireless EM5625 */
23 { USB_DEVICE(0x1199, 0x0019) }, /* Sierra Wireless AirCard 595 */
24 { USB_DEVICE(0x1199, 0x6802) }, /* Sierra Wireless MC8755 */
25 { USB_DEVICE(0x1199, 0x6803) }, /* Sierra Wireless MC8765 */
26 { USB_DEVICE(0x1199, 0x6812) }, /* Sierra Wireless MC8775 */
27 { USB_DEVICE(0x1199, 0x6820) }, /* Sierra Wireless AirCard 875 */
28 /* Following devices are supported in the airprime.c driver */
29 /* { USB_DEVICE(0x1199, 0x0112) }, */ /* Sierra Wireless AirCard 580 */
30 /* { USB_DEVICE(0x0F3D, 0x0112) }, */ /* AirPrime/Sierra PC 5220 */
31 { }
32};
33MODULE_DEVICE_TABLE(usb, id_table);
34
35static struct usb_driver sierra_driver = {
36 .name = "sierra_wireless",
37 .probe = usb_serial_probe,
38 .disconnect = usb_serial_disconnect,
39 .id_table = id_table,
40};
41
42static struct usb_serial_driver sierra_device = {
43 .driver = {
44 .owner = THIS_MODULE,
45 .name = "Sierra_Wireless",
46 },
47 .id_table = id_table,
48 .num_interrupt_in = NUM_DONT_CARE,
49 .num_bulk_in = NUM_DONT_CARE,
50 .num_bulk_out = NUM_DONT_CARE,
51 .num_ports = 3,
52};
53
54static int __init sierra_init(void)
55{
56 int retval;
57
58 retval = usb_serial_register(&sierra_device);
59 if (retval)
60 return retval;
61 retval = usb_register(&sierra_driver);
62 if (retval)
63 usb_serial_deregister(&sierra_device);
64 return retval;
65}
66
67static void __exit sierra_exit(void)
68{
69 usb_deregister(&sierra_driver);
70 usb_serial_deregister(&sierra_device);
71}
72
73module_init(sierra_init);
74module_exit(sierra_exit);
75MODULE_LICENSE("GPL");
diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
index a9afff31a921..ac9b8ee52d44 100644
--- a/drivers/usb/serial/ti_usb_3410_5052.c
+++ b/drivers/usb/serial/ti_usb_3410_5052.c
@@ -83,8 +83,8 @@
83#include <asm/uaccess.h> 83#include <asm/uaccess.h>
84#include <asm/semaphore.h> 84#include <asm/semaphore.h>
85#include <linux/usb.h> 85#include <linux/usb.h>
86#include <linux/usb/serial.h>
86 87
87#include "usb-serial.h"
88#include "ti_usb_3410_5052.h" 88#include "ti_usb_3410_5052.h"
89#include "ti_fw_3410.h" /* firmware image for 3410 */ 89#include "ti_fw_3410.h" /* firmware image for 3410 */
90#include "ti_fw_5052.h" /* firmware image for 5052 */ 90#include "ti_fw_5052.h" /* firmware image for 5052 */
diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
index b59a0536ea5c..12c1694d322e 100644
--- a/drivers/usb/serial/usb-serial.c
+++ b/drivers/usb/serial/usb-serial.c
@@ -31,7 +31,7 @@
31#include <linux/smp_lock.h> 31#include <linux/smp_lock.h>
32#include <asm/uaccess.h> 32#include <asm/uaccess.h>
33#include <linux/usb.h> 33#include <linux/usb.h>
34#include "usb-serial.h" 34#include <linux/usb/serial.h>
35#include "pl2303.h" 35#include "pl2303.h"
36 36
37/* 37/*
@@ -40,6 +40,8 @@
40#define DRIVER_AUTHOR "Greg Kroah-Hartman, greg@kroah.com, http://www.kroah.com/linux/" 40#define DRIVER_AUTHOR "Greg Kroah-Hartman, greg@kroah.com, http://www.kroah.com/linux/"
41#define DRIVER_DESC "USB Serial Driver core" 41#define DRIVER_DESC "USB Serial Driver core"
42 42
43static void port_free(struct usb_serial_port *port);
44
43/* Driver structure we register with the USB core */ 45/* Driver structure we register with the USB core */
44static struct usb_driver usb_serial_driver = { 46static struct usb_driver usb_serial_driver = {
45 .name = "usbserial", 47 .name = "usbserial",
@@ -146,23 +148,10 @@ static void destroy_serial(struct kref *kref)
146 port = serial->port[i]; 148 port = serial->port[i];
147 if (!port) 149 if (!port)
148 continue; 150 continue;
149 usb_kill_urb(port->read_urb); 151 port_free(port);
150 usb_free_urb(port->read_urb);
151 usb_kill_urb(port->write_urb);
152 usb_free_urb(port->write_urb);
153 usb_kill_urb(port->interrupt_in_urb);
154 usb_free_urb(port->interrupt_in_urb);
155 usb_kill_urb(port->interrupt_out_urb);
156 usb_free_urb(port->interrupt_out_urb);
157 kfree(port->bulk_in_buffer);
158 kfree(port->bulk_out_buffer);
159 kfree(port->interrupt_in_buffer);
160 kfree(port->interrupt_out_buffer);
161 } 152 }
162 } 153 }
163 154
164 flush_scheduled_work(); /* port->work */
165
166 usb_put_dev(serial->dev); 155 usb_put_dev(serial->dev);
167 156
168 /* free up any memory that we allocated */ 157 /* free up any memory that we allocated */
@@ -564,6 +553,11 @@ static void port_release(struct device *dev)
564 struct usb_serial_port *port = to_usb_serial_port(dev); 553 struct usb_serial_port *port = to_usb_serial_port(dev);
565 554
566 dbg ("%s - %s", __FUNCTION__, dev->bus_id); 555 dbg ("%s - %s", __FUNCTION__, dev->bus_id);
556 port_free(port);
557}
558
559static void port_free(struct usb_serial_port *port)
560{
567 usb_kill_urb(port->read_urb); 561 usb_kill_urb(port->read_urb);
568 usb_free_urb(port->read_urb); 562 usb_free_urb(port->read_urb);
569 usb_kill_urb(port->write_urb); 563 usb_kill_urb(port->write_urb);
@@ -576,6 +570,7 @@ static void port_release(struct device *dev)
576 kfree(port->bulk_out_buffer); 570 kfree(port->bulk_out_buffer);
577 kfree(port->interrupt_in_buffer); 571 kfree(port->interrupt_in_buffer);
578 kfree(port->interrupt_out_buffer); 572 kfree(port->interrupt_out_buffer);
573 flush_scheduled_work(); /* port->work */
579 kfree(port); 574 kfree(port);
580} 575}
581 576
diff --git a/drivers/usb/serial/visor.c b/drivers/usb/serial/visor.c
index 95a2936e902e..88949f7884ca 100644
--- a/drivers/usb/serial/visor.c
+++ b/drivers/usb/serial/visor.c
@@ -25,7 +25,7 @@
25#include <linux/spinlock.h> 25#include <linux/spinlock.h>
26#include <asm/uaccess.h> 26#include <asm/uaccess.h>
27#include <linux/usb.h> 27#include <linux/usb.h>
28#include "usb-serial.h" 28#include <linux/usb/serial.h>
29#include "visor.h" 29#include "visor.h"
30 30
31/* 31/*
@@ -302,7 +302,6 @@ static int visor_open (struct usb_serial_port *port, struct file *filp)
302 spin_lock_irqsave(&priv->lock, flags); 302 spin_lock_irqsave(&priv->lock, flags);
303 priv->bytes_in = 0; 303 priv->bytes_in = 0;
304 priv->bytes_out = 0; 304 priv->bytes_out = 0;
305 priv->outstanding_urbs = 0;
306 priv->throttled = 0; 305 priv->throttled = 0;
307 spin_unlock_irqrestore(&priv->lock, flags); 306 spin_unlock_irqrestore(&priv->lock, flags);
308 307
@@ -435,13 +434,25 @@ static int visor_write (struct usb_serial_port *port, const unsigned char *buf,
435 434
436static int visor_write_room (struct usb_serial_port *port) 435static int visor_write_room (struct usb_serial_port *port)
437{ 436{
437 struct visor_private *priv = usb_get_serial_port_data(port);
438 unsigned long flags;
439
438 dbg("%s - port %d", __FUNCTION__, port->number); 440 dbg("%s - port %d", __FUNCTION__, port->number);
439 441
440 /* 442 /*
441 * We really can take anything the user throws at us 443 * We really can take anything the user throws at us
442 * but let's pick a nice big number to tell the tty 444 * but let's pick a nice big number to tell the tty
443 * layer that we have lots of free space 445 * layer that we have lots of free space, unless we don't.
444 */ 446 */
447
448 spin_lock_irqsave(&priv->lock, flags);
449 if (priv->outstanding_urbs > URB_UPPER_LIMIT * 2 / 3) {
450 spin_unlock_irqrestore(&priv->lock, flags);
451 dbg("%s - write limit hit\n", __FUNCTION__);
452 return 0;
453 }
454 spin_unlock_irqrestore(&priv->lock, flags);
455
445 return 2048; 456 return 2048;
446} 457}
447 458
@@ -758,15 +769,22 @@ static int visor_calc_num_ports (struct usb_serial *serial)
758 769
759static int generic_startup(struct usb_serial *serial) 770static int generic_startup(struct usb_serial *serial)
760{ 771{
772 struct usb_serial_port **ports = serial->port;
761 struct visor_private *priv; 773 struct visor_private *priv;
762 int i; 774 int i;
763 775
764 for (i = 0; i < serial->num_ports; ++i) { 776 for (i = 0; i < serial->num_ports; ++i) {
765 priv = kzalloc (sizeof(*priv), GFP_KERNEL); 777 priv = kzalloc (sizeof(*priv), GFP_KERNEL);
766 if (!priv) 778 if (!priv) {
779 while (i-- != 0) {
780 priv = usb_get_serial_port_data(ports[i]);
781 usb_set_serial_port_data(ports[i], NULL);
782 kfree(priv);
783 }
767 return -ENOMEM; 784 return -ENOMEM;
785 }
768 spin_lock_init(&priv->lock); 786 spin_lock_init(&priv->lock);
769 usb_set_serial_port_data(serial->port[i], priv); 787 usb_set_serial_port_data(ports[i], priv);
770 } 788 }
771 return 0; 789 return 0;
772} 790}
@@ -876,7 +894,18 @@ static int clie_5_attach (struct usb_serial *serial)
876 894
877static void visor_shutdown (struct usb_serial *serial) 895static void visor_shutdown (struct usb_serial *serial)
878{ 896{
897 struct visor_private *priv;
898 int i;
899
879 dbg("%s", __FUNCTION__); 900 dbg("%s", __FUNCTION__);
901
902 for (i = 0; i < serial->num_ports; i++) {
903 priv = usb_get_serial_port_data(serial->port[i]);
904 if (priv) {
905 usb_set_serial_port_data(serial->port[i], NULL);
906 kfree(priv);
907 }
908 }
880} 909}
881 910
882static int visor_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg) 911static int visor_ioctl (struct usb_serial_port *port, struct file * file, unsigned int cmd, unsigned long arg)
diff --git a/drivers/usb/serial/whiteheat.c b/drivers/usb/serial/whiteheat.c
index 540438c3f381..6e6c7934be32 100644
--- a/drivers/usb/serial/whiteheat.c
+++ b/drivers/usb/serial/whiteheat.c
@@ -79,7 +79,7 @@
79#include <linux/usb.h> 79#include <linux/usb.h>
80#include <linux/serial_reg.h> 80#include <linux/serial_reg.h>
81#include <linux/serial.h> 81#include <linux/serial.h>
82#include "usb-serial.h" 82#include <linux/usb/serial.h>
83#include "whiteheat_fw.h" /* firmware for the ConnectTech WhiteHEAT device */ 83#include "whiteheat_fw.h" /* firmware for the ConnectTech WhiteHEAT device */
84#include "whiteheat.h" /* WhiteHEAT specific commands */ 84#include "whiteheat.h" /* WhiteHEAT specific commands */
85 85
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c
index 5715291ba540..a4b7df9ff8c1 100644
--- a/drivers/usb/storage/scsiglue.c
+++ b/drivers/usb/storage/scsiglue.c
@@ -112,13 +112,11 @@ static int slave_configure(struct scsi_device *sdev)
112 if (sdev->scsi_level < SCSI_2) 112 if (sdev->scsi_level < SCSI_2)
113 sdev->scsi_level = sdev->sdev_target->scsi_level = SCSI_2; 113 sdev->scsi_level = sdev->sdev_target->scsi_level = SCSI_2;
114 114
115 /* According to the technical support people at Genesys Logic, 115 /* Many devices have trouble transfering more than 32KB at a time,
116 * devices using their chips have problems transferring more than 116 * while others have trouble with more than 64K. At this time we
117 * 32 KB at a time. In practice people have found that 64 KB 117 * are limiting both to 32K (64 sectores).
118 * works okay and that's what Windows does. But we'll be 118 */
119 * conservative; people can always use the sysfs interface to 119 if ((us->flags & US_FL_MAX_SECTORS_64) &&
120 * increase max_sectors. */
121 if (le16_to_cpu(us->pusb_dev->descriptor.idVendor) == USB_VENDOR_ID_GENESYS &&
122 sdev->request_queue->max_sectors > 64) 120 sdev->request_queue->max_sectors > 64)
123 blk_queue_max_sectors(sdev->request_queue, 64); 121 blk_queue_max_sectors(sdev->request_queue, 64);
124 122
diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index c7e84e653df9..a5ca449f6e64 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -112,6 +112,19 @@ UNUSUAL_DEV( 0x0411, 0x001c, 0x0113, 0x0113,
112 US_SC_DEVICE, US_PR_DEVICE, NULL, 112 US_SC_DEVICE, US_PR_DEVICE, NULL,
113 US_FL_FIX_INQUIRY ), 113 US_FL_FIX_INQUIRY ),
114 114
115/* Submitted by Ernestas Vaiciukevicius <ernisv@gmail.com> */
116UNUSUAL_DEV( 0x0419, 0x0100, 0x0100, 0x0100,
117 "Samsung Info. Systems America, Inc.",
118 "MP3 Player",
119 US_SC_DEVICE, US_PR_DEVICE, NULL,
120 US_FL_IGNORE_RESIDUE ),
121
122/* Reported by Orgad Shaneh <orgads@gmail.com> */
123UNUSUAL_DEV( 0x0419, 0xaace, 0x0100, 0x0100,
124 "Samsung", "MP3 Player",
125 US_SC_DEVICE, US_PR_DEVICE, NULL,
126 US_FL_IGNORE_RESIDUE ),
127
115/* Reported by Christian Leber <christian@leber.de> */ 128/* Reported by Christian Leber <christian@leber.de> */
116UNUSUAL_DEV( 0x0419, 0xaaf5, 0x0100, 0x0100, 129UNUSUAL_DEV( 0x0419, 0xaaf5, 0x0100, 0x0100,
117 "TrekStor", 130 "TrekStor",
@@ -132,6 +145,14 @@ UNUSUAL_DEV( 0x0420, 0x0001, 0x0100, 0x0100,
132 US_SC_DEVICE, US_PR_DEVICE, NULL, 145 US_SC_DEVICE, US_PR_DEVICE, NULL,
133 US_FL_IGNORE_RESIDUE ), 146 US_FL_IGNORE_RESIDUE ),
134 147
148/* Reported by Sumedha Swamy <sumedhaswamy@gmail.com> and
149 * Einar Th. Einarsson <einarthered@gmail.com> */
150UNUSUAL_DEV( 0x0421, 0x0444, 0x0100, 0x0100,
151 "Nokia",
152 "N91",
153 US_SC_DEVICE, US_PR_DEVICE, NULL,
154 US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ),
155
135/* Reported by Jiri Slaby <jirislaby@gmail.com> and 156/* Reported by Jiri Slaby <jirislaby@gmail.com> and
136 * Rene C. Castberg <Rene@Castberg.org> */ 157 * Rene C. Castberg <Rene@Castberg.org> */
137UNUSUAL_DEV( 0x0421, 0x0446, 0x0100, 0x0100, 158UNUSUAL_DEV( 0x0421, 0x0446, 0x0100, 0x0100,
@@ -140,6 +161,13 @@ UNUSUAL_DEV( 0x0421, 0x0446, 0x0100, 0x0100,
140 US_SC_DEVICE, US_PR_DEVICE, NULL, 161 US_SC_DEVICE, US_PR_DEVICE, NULL,
141 US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ), 162 US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ),
142 163
164/* Reported by Matthew Bloch <matthew@bytemark.co.uk> */
165UNUSUAL_DEV( 0x0421, 0x044e, 0x0100, 0x0100,
166 "Nokia",
167 "E61",
168 US_SC_DEVICE, US_PR_DEVICE, NULL,
169 US_FL_IGNORE_RESIDUE | US_FL_FIX_CAPACITY ),
170
143/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */ 171/* Reported by Olaf Hering <olh@suse.de> from novell bug #105878 */
144UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210, 172UNUSUAL_DEV( 0x0424, 0x0fdc, 0x0210, 0x0210,
145 "SMSC", 173 "SMSC",
@@ -473,10 +501,11 @@ UNUSUAL_DEV( 0x054c, 0x0010, 0x0106, 0x0450,
473 US_SC_SCSI, US_PR_DEVICE, NULL, 501 US_SC_SCSI, US_PR_DEVICE, NULL,
474 US_FL_SINGLE_LUN | US_FL_NOT_LOCKABLE | US_FL_NO_WP_DETECT ), 502 US_FL_SINGLE_LUN | US_FL_NOT_LOCKABLE | US_FL_NO_WP_DETECT ),
475 503
476/* This entry is needed because the device reports Sub=ff */ 504/* Submitted by Lars Jacob <jacob.lars@googlemail.com>
477UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0600, 505 * This entry is needed because the device reports Sub=ff */
506UNUSUAL_DEV( 0x054c, 0x0010, 0x0500, 0x0610,
478 "Sony", 507 "Sony",
479 "DSC-T1/T5", 508 "DSC-T1/T5/H5",
480 US_SC_8070, US_PR_DEVICE, NULL, 509 US_SC_8070, US_PR_DEVICE, NULL,
481 US_FL_SINGLE_LUN ), 510 US_FL_SINGLE_LUN ),
482 511
@@ -708,18 +737,22 @@ UNUSUAL_DEV( 0x05dc, 0xb002, 0x0000, 0x0113,
708 * They were originally reported by Alexander Oltu 737 * They were originally reported by Alexander Oltu
709 * <alexander@all-2.com> and Peter Marks <peter.marks@turner.com> 738 * <alexander@all-2.com> and Peter Marks <peter.marks@turner.com>
710 * respectively. 739 * respectively.
740 *
741 * US_FL_GO_SLOW and US_FL_MAX_SECTORS_64 added by Phil Dibowitz
742 * <phil@ipom.com> as these flags were made and hard-coded
743 * special-cases were pulled from scsiglue.c.
711 */ 744 */
712UNUSUAL_DEV( 0x05e3, 0x0701, 0x0000, 0xffff, 745UNUSUAL_DEV( 0x05e3, 0x0701, 0x0000, 0xffff,
713 "Genesys Logic", 746 "Genesys Logic",
714 "USB to IDE Optical", 747 "USB to IDE Optical",
715 US_SC_DEVICE, US_PR_DEVICE, NULL, 748 US_SC_DEVICE, US_PR_DEVICE, NULL,
716 US_FL_GO_SLOW ), 749 US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ),
717 750
718UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff, 751UNUSUAL_DEV( 0x05e3, 0x0702, 0x0000, 0xffff,
719 "Genesys Logic", 752 "Genesys Logic",
720 "USB to IDE Disk", 753 "USB to IDE Disk",
721 US_SC_DEVICE, US_PR_DEVICE, NULL, 754 US_SC_DEVICE, US_PR_DEVICE, NULL,
722 US_FL_GO_SLOW ), 755 US_FL_GO_SLOW | US_FL_MAX_SECTORS_64 ),
723 756
724/* Reported by Hanno Boeck <hanno@gmx.de> 757/* Reported by Hanno Boeck <hanno@gmx.de>
725 * Taken from the Lycoris Kernel */ 758 * Taken from the Lycoris Kernel */
@@ -1196,6 +1229,14 @@ UNUSUAL_DEV( 0x0ea0, 0x6828, 0x0110, 0x0110,
1196 US_SC_DEVICE, US_PR_DEVICE, NULL, 1229 US_SC_DEVICE, US_PR_DEVICE, NULL,
1197 US_FL_IGNORE_RESIDUE ), 1230 US_FL_IGNORE_RESIDUE ),
1198 1231
1232/* Reported by Benjamin Schiller <sbenni@gmx.de>
1233 * It is also sold by Easylite as DJ 20 */
1234UNUSUAL_DEV( 0x0ed1, 0x7636, 0x0103, 0x0103,
1235 "Typhoon",
1236 "My DJ 1820",
1237 US_SC_DEVICE, US_PR_DEVICE, NULL,
1238 US_FL_IGNORE_RESIDUE | US_FL_GO_SLOW | US_FL_MAX_SECTORS_64),
1239
1199/* Reported by Michael Stattmann <michael@stattmann.com> */ 1240/* Reported by Michael Stattmann <michael@stattmann.com> */
1200UNUSUAL_DEV( 0x0fce, 0xd008, 0x0000, 0x0000, 1241UNUSUAL_DEV( 0x0fce, 0xd008, 0x0000, 0x0000,
1201 "Sony Ericsson", 1242 "Sony Ericsson",
@@ -1227,6 +1268,15 @@ UNUSUAL_DEV( 0x1370, 0x6828, 0x0110, 0x0110,
1227 US_SC_DEVICE, US_PR_DEVICE, NULL, 1268 US_SC_DEVICE, US_PR_DEVICE, NULL,
1228 US_FL_IGNORE_RESIDUE ), 1269 US_FL_IGNORE_RESIDUE ),
1229 1270
1271/* patch submitted by Davide Perini <perini.davide@dpsoftware.org>
1272 * and Renato Perini <rperini@email.it>
1273 */
1274UNUSUAL_DEV( 0x22b8, 0x3010, 0x0001, 0x0001,
1275 "Motorola",
1276 "RAZR V3x",
1277 US_SC_DEVICE, US_PR_DEVICE, NULL,
1278 US_FL_FIX_CAPACITY | US_FL_IGNORE_RESIDUE ),
1279
1230/* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */ 1280/* Reported by Radovan Garabik <garabik@kassiopeia.juls.savba.sk> */
1231UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999, 1281UNUSUAL_DEV( 0x2735, 0x100b, 0x0000, 0x9999,
1232 "MPIO", 1282 "MPIO",
diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
index 1185acac4b21..5ee19be52f65 100644
--- a/drivers/usb/storage/usb.c
+++ b/drivers/usb/storage/usb.c
@@ -55,6 +55,7 @@
55#include <linux/slab.h> 55#include <linux/slab.h>
56#include <linux/kthread.h> 56#include <linux/kthread.h>
57#include <linux/mutex.h> 57#include <linux/mutex.h>
58#include <linux/utsrelease.h>
58 59
59#include <scsi/scsi.h> 60#include <scsi/scsi.h>
60#include <scsi/scsi_cmnd.h> 61#include <scsi/scsi_cmnd.h>
@@ -373,8 +374,12 @@ static int usb_stor_control_thread(void * __us)
373 /* lock access to the state */ 374 /* lock access to the state */
374 scsi_lock(host); 375 scsi_lock(host);
375 376
377 /* did the command already complete because of a disconnect? */
378 if (!us->srb)
379 ; /* nothing to do */
380
376 /* indicate that the command is done */ 381 /* indicate that the command is done */
377 if (us->srb->result != DID_ABORT << 16) { 382 else if (us->srb->result != DID_ABORT << 16) {
378 US_DEBUGP("scsi cmd done, result=0x%x\n", 383 US_DEBUGP("scsi cmd done, result=0x%x\n",
379 us->srb->result); 384 us->srb->result);
380 us->srb->scsi_done(us->srb); 385 us->srb->scsi_done(us->srb);
@@ -524,7 +529,8 @@ static void get_device_info(struct us_data *us, const struct usb_device_id *id)
524 if (msg >= 0 && !(us->flags & US_FL_NEED_OVERRIDE)) 529 if (msg >= 0 && !(us->flags & US_FL_NEED_OVERRIDE))
525 printk(KERN_NOTICE USB_STORAGE "This device " 530 printk(KERN_NOTICE USB_STORAGE "This device "
526 "(%04x,%04x,%04x S %02x P %02x)" 531 "(%04x,%04x,%04x S %02x P %02x)"
527 " has %s in unusual_devs.h\n" 532 " has %s in unusual_devs.h (kernel"
533 " %s)\n"
528 " Please send a copy of this message to " 534 " Please send a copy of this message to "
529 "<linux-usb-devel@lists.sourceforge.net>\n", 535 "<linux-usb-devel@lists.sourceforge.net>\n",
530 le16_to_cpu(ddesc->idVendor), 536 le16_to_cpu(ddesc->idVendor),
@@ -532,7 +538,8 @@ static void get_device_info(struct us_data *us, const struct usb_device_id *id)
532 le16_to_cpu(ddesc->bcdDevice), 538 le16_to_cpu(ddesc->bcdDevice),
533 idesc->bInterfaceSubClass, 539 idesc->bInterfaceSubClass,
534 idesc->bInterfaceProtocol, 540 idesc->bInterfaceProtocol,
535 msgs[msg]); 541 msgs[msg],
542 UTS_RELEASE);
536 } 543 }
537} 544}
538 545
@@ -836,32 +843,34 @@ static void dissociate_dev(struct us_data *us)
836 * the host */ 843 * the host */
837static void quiesce_and_remove_host(struct us_data *us) 844static void quiesce_and_remove_host(struct us_data *us)
838{ 845{
846 struct Scsi_Host *host = us_to_host(us);
847
839 /* Prevent new USB transfers, stop the current command, and 848 /* Prevent new USB transfers, stop the current command, and
840 * interrupt a SCSI-scan or device-reset delay */ 849 * interrupt a SCSI-scan or device-reset delay */
850 scsi_lock(host);
841 set_bit(US_FLIDX_DISCONNECTING, &us->flags); 851 set_bit(US_FLIDX_DISCONNECTING, &us->flags);
852 scsi_unlock(host);
842 usb_stor_stop_transport(us); 853 usb_stor_stop_transport(us);
843 wake_up(&us->delay_wait); 854 wake_up(&us->delay_wait);
844 855
845 /* It doesn't matter if the SCSI-scanning thread is still running. 856 /* It doesn't matter if the SCSI-scanning thread is still running.
846 * The thread will exit when it sees the DISCONNECTING flag. */ 857 * The thread will exit when it sees the DISCONNECTING flag. */
847 858
848 /* Wait for the current command to finish, then remove the host */
849 mutex_lock(&us->dev_mutex);
850 mutex_unlock(&us->dev_mutex);
851
852 /* queuecommand won't accept any new commands and the control 859 /* queuecommand won't accept any new commands and the control
853 * thread won't execute a previously-queued command. If there 860 * thread won't execute a previously-queued command. If there
854 * is such a command pending, complete it with an error. */ 861 * is such a command pending, complete it with an error. */
862 mutex_lock(&us->dev_mutex);
855 if (us->srb) { 863 if (us->srb) {
856 us->srb->result = DID_NO_CONNECT << 16; 864 us->srb->result = DID_NO_CONNECT << 16;
857 scsi_lock(us_to_host(us)); 865 scsi_lock(host);
858 us->srb->scsi_done(us->srb); 866 us->srb->scsi_done(us->srb);
859 us->srb = NULL; 867 us->srb = NULL;
860 scsi_unlock(us_to_host(us)); 868 scsi_unlock(host);
861 } 869 }
870 mutex_unlock(&us->dev_mutex);
862 871
863 /* Now we own no commands so it's safe to remove the SCSI host */ 872 /* Now we own no commands so it's safe to remove the SCSI host */
864 scsi_remove_host(us_to_host(us)); 873 scsi_remove_host(host);
865} 874}
866 875
867/* Second stage of disconnect processing: deallocate all resources */ 876/* Second stage of disconnect processing: deallocate all resources */
diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
index 5284abe1b5eb..21f3ddbc9080 100644
--- a/drivers/usb/storage/usb.h
+++ b/drivers/usb/storage/usb.h
@@ -176,8 +176,4 @@ extern void fill_inquiry_response(struct us_data *us,
176#define scsi_unlock(host) spin_unlock_irq(host->host_lock) 176#define scsi_unlock(host) spin_unlock_irq(host->host_lock)
177#define scsi_lock(host) spin_lock_irq(host->host_lock) 177#define scsi_lock(host) spin_lock_irq(host->host_lock)
178 178
179
180/* Vendor ID list for devices that require special handling */
181#define USB_VENDOR_ID_GENESYS 0x05e3 /* Genesys Logic */
182
183#endif 179#endif
diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
index 3badb48d662b..6533b0f39231 100644
--- a/drivers/video/Kconfig
+++ b/drivers/video/Kconfig
@@ -1518,6 +1518,26 @@ config FB_PXA_PARAMETERS
1518 1518
1519 <file:Documentation/fb/pxafb.txt> describes the available parameters. 1519 <file:Documentation/fb/pxafb.txt> describes the available parameters.
1520 1520
1521config FB_MBX
1522 tristate "2700G LCD framebuffer support"
1523 depends on FB && ARCH_PXA
1524 select FB_CFB_FILLRECT
1525 select FB_CFB_COPYAREA
1526 select FB_CFB_IMAGEBLIT
1527 ---help---
1528 Framebuffer driver for the Intel 2700G (Marathon) Graphics
1529 Accelerator
1530
1531config FB_MBX_DEBUG
1532 bool "Enable debugging info via debugfs"
1533 depends on FB_MBX && DEBUG_FS
1534 default n
1535 ---help---
1536 Enable this if you want debugging information using the debug
1537 filesystem (debugfs)
1538
1539 If unsure, say N.
1540
1521config FB_W100 1541config FB_W100
1522 tristate "W100 frame buffer support" 1542 tristate "W100 frame buffer support"
1523 depends on FB && PXA_SHARPSL 1543 depends on FB && PXA_SHARPSL
diff --git a/drivers/video/Makefile b/drivers/video/Makefile
index 6283d015f8f5..95563c9c6b9c 100644
--- a/drivers/video/Makefile
+++ b/drivers/video/Makefile
@@ -38,6 +38,7 @@ obj-$(CONFIG_FB_SIS) += sis/
38obj-$(CONFIG_FB_KYRO) += kyro/ 38obj-$(CONFIG_FB_KYRO) += kyro/
39obj-$(CONFIG_FB_SAVAGE) += savage/ 39obj-$(CONFIG_FB_SAVAGE) += savage/
40obj-$(CONFIG_FB_GEODE) += geode/ 40obj-$(CONFIG_FB_GEODE) += geode/
41obj-$(CONFIG_FB_MBX) += mbx/
41obj-$(CONFIG_FB_I810) += vgastate.o 42obj-$(CONFIG_FB_I810) += vgastate.o
42obj-$(CONFIG_FB_NEOMAGIC) += neofb.o vgastate.o 43obj-$(CONFIG_FB_NEOMAGIC) += neofb.o vgastate.o
43obj-$(CONFIG_FB_VIRGE) += virgefb.o 44obj-$(CONFIG_FB_VIRGE) += virgefb.o
diff --git a/drivers/video/mbx/Makefile b/drivers/video/mbx/Makefile
new file mode 100644
index 000000000000..16c1165cf9c7
--- /dev/null
+++ b/drivers/video/mbx/Makefile
@@ -0,0 +1,4 @@
1# Makefile for the 2700G controller driver.
2
3obj-$(CONFIG_FB_MBX) += mbxfb.o
4obj-$(CONFIG_FB_MBX_DEBUG) += mbxfbdebugfs.o
diff --git a/drivers/video/mbx/mbxdebugfs.c b/drivers/video/mbx/mbxdebugfs.c
new file mode 100644
index 000000000000..84aab3ad024e
--- /dev/null
+++ b/drivers/video/mbx/mbxdebugfs.c
@@ -0,0 +1,188 @@
1#include <linux/debugfs.h>
2
3#define BIG_BUFFER_SIZE (1024)
4
5static char big_buffer[BIG_BUFFER_SIZE];
6
7struct mbxfb_debugfs_data {
8 struct dentry *dir;
9 struct dentry *sysconf;
10 struct dentry *clock;
11 struct dentry *display;
12 struct dentry *gsctl;
13};
14
15static int open_file_generic(struct inode *inode, struct file *file)
16{
17 file->private_data = inode->u.generic_ip;
18 return 0;
19}
20
21static ssize_t write_file_dummy(struct file *file, const char __user *buf,
22 size_t count, loff_t *ppos)
23{
24 return count;
25}
26
27static ssize_t sysconf_read_file(struct file *file, char __user *userbuf,
28 size_t count, loff_t *ppos)
29{
30 char * s = big_buffer;
31
32 s += sprintf(s, "SYSCFG = %08lx\n", SYSCFG);
33 s += sprintf(s, "PFBASE = %08lx\n", PFBASE);
34 s += sprintf(s, "PFCEIL = %08lx\n", PFCEIL);
35 s += sprintf(s, "POLLFLAG = %08lx\n", POLLFLAG);
36 s += sprintf(s, "SYSRST = %08lx\n", SYSRST);
37
38 return simple_read_from_buffer(userbuf, count, ppos,
39 big_buffer, s-big_buffer);
40}
41
42
43static ssize_t gsctl_read_file(struct file *file, char __user *userbuf,
44 size_t count, loff_t *ppos)
45{
46 char * s = big_buffer;
47
48 s += sprintf(s, "GSCTRL = %08lx\n", GSCTRL);
49 s += sprintf(s, "VSCTRL = %08lx\n", VSCTRL);
50 s += sprintf(s, "GBBASE = %08lx\n", GBBASE);
51 s += sprintf(s, "VBBASE = %08lx\n", VBBASE);
52 s += sprintf(s, "GDRCTRL = %08lx\n", GDRCTRL);
53 s += sprintf(s, "VCMSK = %08lx\n", VCMSK);
54 s += sprintf(s, "GSCADR = %08lx\n", GSCADR);
55 s += sprintf(s, "VSCADR = %08lx\n", VSCADR);
56 s += sprintf(s, "VUBASE = %08lx\n", VUBASE);
57 s += sprintf(s, "VVBASE = %08lx\n", VVBASE);
58 s += sprintf(s, "GSADR = %08lx\n", GSADR);
59 s += sprintf(s, "VSADR = %08lx\n", VSADR);
60 s += sprintf(s, "HCCTRL = %08lx\n", HCCTRL);
61 s += sprintf(s, "HCSIZE = %08lx\n", HCSIZE);
62 s += sprintf(s, "HCPOS = %08lx\n", HCPOS);
63 s += sprintf(s, "HCBADR = %08lx\n", HCBADR);
64 s += sprintf(s, "HCCKMSK = %08lx\n", HCCKMSK);
65 s += sprintf(s, "GPLUT = %08lx\n", GPLUT);
66
67 return simple_read_from_buffer(userbuf, count, ppos,
68 big_buffer, s-big_buffer);
69}
70
71static ssize_t display_read_file(struct file *file, char __user *userbuf,
72 size_t count, loff_t *ppos)
73{
74 char * s = big_buffer;
75
76 s += sprintf(s, "DSCTRL = %08lx\n", DSCTRL);
77 s += sprintf(s, "DHT01 = %08lx\n", DHT01);
78 s += sprintf(s, "DHT02 = %08lx\n", DHT02);
79 s += sprintf(s, "DHT03 = %08lx\n", DHT03);
80 s += sprintf(s, "DVT01 = %08lx\n", DVT01);
81 s += sprintf(s, "DVT02 = %08lx\n", DVT02);
82 s += sprintf(s, "DVT03 = %08lx\n", DVT03);
83 s += sprintf(s, "DBCOL = %08lx\n", DBCOL);
84 s += sprintf(s, "BGCOLOR = %08lx\n", BGCOLOR);
85 s += sprintf(s, "DINTRS = %08lx\n", DINTRS);
86 s += sprintf(s, "DINTRE = %08lx\n", DINTRE);
87 s += sprintf(s, "DINTRCNT = %08lx\n", DINTRCNT);
88 s += sprintf(s, "DSIG = %08lx\n", DSIG);
89 s += sprintf(s, "DMCTRL = %08lx\n", DMCTRL);
90 s += sprintf(s, "CLIPCTRL = %08lx\n", CLIPCTRL);
91 s += sprintf(s, "SPOCTRL = %08lx\n", SPOCTRL);
92 s += sprintf(s, "SVCTRL = %08lx\n", SVCTRL);
93 s += sprintf(s, "DLSTS = %08lx\n", DLSTS);
94 s += sprintf(s, "DLLCTRL = %08lx\n", DLLCTRL);
95 s += sprintf(s, "DVLNUM = %08lx\n", DVLNUM);
96 s += sprintf(s, "DUCTRL = %08lx\n", DUCTRL);
97 s += sprintf(s, "DVECTRL = %08lx\n", DVECTRL);
98 s += sprintf(s, "DHDET = %08lx\n", DHDET);
99 s += sprintf(s, "DVDET = %08lx\n", DVDET);
100 s += sprintf(s, "DODMSK = %08lx\n", DODMSK);
101 s += sprintf(s, "CSC01 = %08lx\n", CSC01);
102 s += sprintf(s, "CSC02 = %08lx\n", CSC02);
103 s += sprintf(s, "CSC03 = %08lx\n", CSC03);
104 s += sprintf(s, "CSC04 = %08lx\n", CSC04);
105 s += sprintf(s, "CSC05 = %08lx\n", CSC05);
106
107 return simple_read_from_buffer(userbuf, count, ppos,
108 big_buffer, s-big_buffer);
109}
110
111static ssize_t clock_read_file(struct file *file, char __user *userbuf,
112 size_t count, loff_t *ppos)
113{
114 char * s = big_buffer;
115
116 s += sprintf(s, "SYSCLKSRC = %08lx\n", SYSCLKSRC);
117 s += sprintf(s, "PIXCLKSRC = %08lx\n", PIXCLKSRC);
118 s += sprintf(s, "CLKSLEEP = %08lx\n", CLKSLEEP);
119 s += sprintf(s, "COREPLL = %08lx\n", COREPLL);
120 s += sprintf(s, "DISPPLL = %08lx\n", DISPPLL);
121 s += sprintf(s, "PLLSTAT = %08lx\n", PLLSTAT);
122 s += sprintf(s, "VOVRCLK = %08lx\n", VOVRCLK);
123 s += sprintf(s, "PIXCLK = %08lx\n", PIXCLK);
124 s += sprintf(s, "MEMCLK = %08lx\n", MEMCLK);
125 s += sprintf(s, "M24CLK = %08lx\n", M24CLK);
126 s += sprintf(s, "MBXCLK = %08lx\n", MBXCLK);
127 s += sprintf(s, "SDCLK = %08lx\n", SDCLK);
128 s += sprintf(s, "PIXCLKDIV = %08lx\n", PIXCLKDIV);
129
130 return simple_read_from_buffer(userbuf, count, ppos,
131 big_buffer, s-big_buffer);
132}
133
134static struct file_operations sysconf_fops = {
135 .read = sysconf_read_file,
136 .write = write_file_dummy,
137 .open = open_file_generic,
138};
139
140static struct file_operations clock_fops = {
141 .read = clock_read_file,
142 .write = write_file_dummy,
143 .open = open_file_generic,
144};
145
146static struct file_operations display_fops = {
147 .read = display_read_file,
148 .write = write_file_dummy,
149 .open = open_file_generic,
150};
151
152static struct file_operations gsctl_fops = {
153 .read = gsctl_read_file,
154 .write = write_file_dummy,
155 .open = open_file_generic,
156};
157
158
159static void __devinit mbxfb_debugfs_init(struct fb_info *fbi)
160{
161 struct mbxfb_info *mfbi = fbi->par;
162 struct mbxfb_debugfs_data *dbg;
163
164 dbg = kzalloc(sizeof(struct mbxfb_debugfs_data), GFP_KERNEL);
165 mfbi->debugfs_data = dbg;
166
167 dbg->dir = debugfs_create_dir("mbxfb", NULL);
168 dbg->sysconf = debugfs_create_file("sysconf", 0444, dbg->dir,
169 fbi, &sysconf_fops);
170 dbg->clock = debugfs_create_file("clock", 0444, dbg->dir,
171 fbi, &clock_fops);
172 dbg->display = debugfs_create_file("display", 0444, dbg->dir,
173 fbi, &display_fops);
174 dbg->gsctl = debugfs_create_file("gsctl", 0444, dbg->dir,
175 fbi, &gsctl_fops);
176}
177
178static void __devexit mbxfb_debugfs_remove(struct fb_info *fbi)
179{
180 struct mbxfb_info *mfbi = fbi->par;
181 struct mbxfb_debugfs_data *dbg = mfbi->debugfs_data;
182
183 debugfs_remove(dbg->gsctl);
184 debugfs_remove(dbg->display);
185 debugfs_remove(dbg->clock);
186 debugfs_remove(dbg->sysconf);
187 debugfs_remove(dbg->dir);
188}
diff --git a/drivers/video/mbx/mbxfb.c b/drivers/video/mbx/mbxfb.c
new file mode 100644
index 000000000000..6849ab75d403
--- /dev/null
+++ b/drivers/video/mbx/mbxfb.c
@@ -0,0 +1,683 @@
1/*
2 * linux/drivers/video/mbx/mbxfb.c
3 *
4 * Copyright (C) 2006 Compulab, Ltd.
5 * Mike Rapoport <mike@compulab.co.il>
6 *
7 * Based on pxafb.c
8 *
9 * This file is subject to the terms and conditions of the GNU General Public
10 * License. See the file COPYING in the main directory of this archive for
11 * more details.
12 *
13 * Intel 2700G (Marathon) Graphics Accelerator Frame Buffer Driver
14 *
15 */
16
17#include <linux/delay.h>
18#include <linux/fb.h>
19#include <linux/init.h>
20#include <linux/module.h>
21#include <linux/platform_device.h>
22
23#include <asm/io.h>
24
25#include <video/mbxfb.h>
26
27#include "regs.h"
28#include "reg_bits.h"
29
30static unsigned long virt_base_2700;
31
32#define MIN_XRES 16
33#define MIN_YRES 16
34#define MAX_XRES 2048
35#define MAX_YRES 2048
36
37#define MAX_PALETTES 16
38
39/* FIXME: take care of different chip revisions with different sizes
40 of ODFB */
41#define MEMORY_OFFSET 0x60000
42
43struct mbxfb_info {
44 struct device *dev;
45
46 struct resource *fb_res;
47 struct resource *fb_req;
48
49 struct resource *reg_res;
50 struct resource *reg_req;
51
52 void __iomem *fb_virt_addr;
53 unsigned long fb_phys_addr;
54
55 void __iomem *reg_virt_addr;
56 unsigned long reg_phys_addr;
57
58 int (*platform_probe) (struct fb_info * fb);
59 int (*platform_remove) (struct fb_info * fb);
60
61 u32 pseudo_palette[MAX_PALETTES];
62#ifdef CONFIG_FB_MBX_DEBUG
63 void *debugfs_data;
64#endif
65
66};
67
68static struct fb_var_screeninfo mbxfb_default __devinitdata = {
69 .xres = 640,
70 .yres = 480,
71 .xres_virtual = 640,
72 .yres_virtual = 480,
73 .bits_per_pixel = 16,
74 .red = {11, 5, 0},
75 .green = {5, 6, 0},
76 .blue = {0, 5, 0},
77 .activate = FB_ACTIVATE_TEST,
78 .height = -1,
79 .width = -1,
80 .pixclock = 40000,
81 .left_margin = 48,
82 .right_margin = 16,
83 .upper_margin = 33,
84 .lower_margin = 10,
85 .hsync_len = 96,
86 .vsync_len = 2,
87 .vmode = FB_VMODE_NONINTERLACED,
88 .sync = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
89};
90
91static struct fb_fix_screeninfo mbxfb_fix __devinitdata = {
92 .id = "MBX",
93 .type = FB_TYPE_PACKED_PIXELS,
94 .visual = FB_VISUAL_TRUECOLOR,
95 .xpanstep = 0,
96 .ypanstep = 0,
97 .ywrapstep = 0,
98 .accel = FB_ACCEL_NONE,
99};
100
101struct pixclock_div {
102 u8 m;
103 u8 n;
104 u8 p;
105};
106
107static unsigned int mbxfb_get_pixclock(unsigned int pixclock_ps,
108 struct pixclock_div *div)
109{
110 u8 m, n, p;
111 unsigned int err = 0;
112 unsigned int min_err = ~0x0;
113 unsigned int clk;
114 unsigned int best_clk = 0;
115 unsigned int ref_clk = 13000; /* FIXME: take from platform data */
116 unsigned int pixclock;
117
118 /* convert pixclock to KHz */
119 pixclock = PICOS2KHZ(pixclock_ps);
120
121 for (m = 1; m < 64; m++) {
122 for (n = 1; n < 8; n++) {
123 for (p = 0; p < 8; p++) {
124 clk = (ref_clk * m) / (n * (1 << p));
125 err = (clk > pixclock) ? (clk - pixclock) :
126 (pixclock - clk);
127 if (err < min_err) {
128 min_err = err;
129 best_clk = clk;
130 div->m = m;
131 div->n = n;
132 div->p = p;
133 }
134 }
135 }
136 }
137 return KHZ2PICOS(best_clk);
138}
139
140static int mbxfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
141 u_int trans, struct fb_info *info)
142{
143 u32 val, ret = 1;
144
145 if (regno < MAX_PALETTES) {
146 u32 *pal = info->pseudo_palette;
147
148 val = (red & 0xf800) | ((green & 0xfc00) >> 5) |
149 ((blue & 0xf800) >> 11);
150 pal[regno] = val;
151 ret = 0;
152 }
153
154 return ret;
155}
156
157static int mbxfb_check_var(struct fb_var_screeninfo *var, struct fb_info *info)
158{
159 struct pixclock_div div;
160
161 var->pixclock = mbxfb_get_pixclock(var->pixclock, &div);
162
163 if (var->xres < MIN_XRES)
164 var->xres = MIN_XRES;
165 if (var->yres < MIN_YRES)
166 var->yres = MIN_YRES;
167 if (var->xres > MAX_XRES)
168 return -EINVAL;
169 if (var->yres > MAX_YRES)
170 return -EINVAL;
171 var->xres_virtual = max(var->xres_virtual, var->xres);
172 var->yres_virtual = max(var->yres_virtual, var->yres);
173
174 switch (var->bits_per_pixel) {
175 /* 8 bits-per-pixel is not supported yet */
176 case 8:
177 return -EINVAL;
178 case 16:
179 var->green.length = (var->green.length == 5) ? 5 : 6;
180 var->red.length = 5;
181 var->blue.length = 5;
182 var->transp.length = 6 - var->green.length;
183 var->blue.offset = 0;
184 var->green.offset = 5;
185 var->red.offset = 5 + var->green.length;
186 var->transp.offset = (5 + var->red.offset) & 15;
187 break;
188 case 24: /* RGB 888 */
189 case 32: /* RGBA 8888 */
190 var->red.offset = 16;
191 var->red.length = 8;
192 var->green.offset = 8;
193 var->green.length = 8;
194 var->blue.offset = 0;
195 var->blue.length = 8;
196 var->transp.length = var->bits_per_pixel - 24;
197 var->transp.offset = (var->transp.length) ? 24 : 0;
198 break;
199 }
200 var->red.msb_right = 0;
201 var->green.msb_right = 0;
202 var->blue.msb_right = 0;
203 var->transp.msb_right = 0;
204
205 return 0;
206}
207
208static int mbxfb_set_par(struct fb_info *info)
209{
210 struct fb_var_screeninfo *var = &info->var;
211 struct pixclock_div div;
212 ushort hbps, ht, hfps, has;
213 ushort vbps, vt, vfps, vas;
214 u32 gsctrl = readl(GSCTRL);
215 u32 gsadr = readl(GSADR);
216
217 info->fix.line_length = var->xres_virtual * var->bits_per_pixel / 8;
218
219 /* setup color mode */
220 gsctrl &= ~(FMsk(GSCTRL_GPIXFMT));
221 /* FIXME: add *WORKING* support for 8-bits per color */
222 if (info->var.bits_per_pixel == 8) {
223 return -EINVAL;
224 } else {
225 fb_dealloc_cmap(&info->cmap);
226 gsctrl &= ~GSCTRL_LUT_EN;
227
228 info->fix.visual = FB_VISUAL_TRUECOLOR;
229 switch (info->var.bits_per_pixel) {
230 case 16:
231 if (info->var.green.length == 5)
232 gsctrl |= GSCTRL_GPIXFMT_ARGB1555;
233 else
234 gsctrl |= GSCTRL_GPIXFMT_RGB565;
235 break;
236 case 24:
237 gsctrl |= GSCTRL_GPIXFMT_RGB888;
238 break;
239 case 32:
240 gsctrl |= GSCTRL_GPIXFMT_ARGB8888;
241 break;
242 }
243 }
244
245 /* setup resolution */
246 gsctrl &= ~(FMsk(GSCTRL_GSWIDTH) | FMsk(GSCTRL_GSHEIGHT));
247 gsctrl |= Gsctrl_Width(info->var.xres - 1) |
248 Gsctrl_Height(info->var.yres - 1);
249 writel(gsctrl, GSCTRL);
250 udelay(1000);
251
252 gsadr &= ~(FMsk(GSADR_SRCSTRIDE));
253 gsadr |= Gsadr_Srcstride(info->var.xres * info->var.bits_per_pixel /
254 (8 * 16) - 1);
255 writel(gsadr, GSADR);
256 udelay(1000);
257
258 /* setup timings */
259 var->pixclock = mbxfb_get_pixclock(info->var.pixclock, &div);
260
261 writel((Disp_Pll_M(div.m) | Disp_Pll_N(div.n) |
262 Disp_Pll_P(div.p) | DISP_PLL_EN), DISPPLL);
263
264 hbps = var->hsync_len;
265 has = hbps + var->left_margin;
266 hfps = has + var->xres;
267 ht = hfps + var->right_margin;
268
269 vbps = var->vsync_len;
270 vas = vbps + var->upper_margin;
271 vfps = vas + var->yres;
272 vt = vfps + var->lower_margin;
273
274 writel((Dht01_Hbps(hbps) | Dht01_Ht(ht)), DHT01);
275 writel((Dht02_Hlbs(has) | Dht02_Has(has)), DHT02);
276 writel((Dht03_Hfps(hfps) | Dht03_Hrbs(hfps)), DHT03);
277 writel((Dhdet_Hdes(has) | Dhdet_Hdef(hfps)), DHDET);
278
279 writel((Dvt01_Vbps(vbps) | Dvt01_Vt(vt)), DVT01);
280 writel((Dvt02_Vtbs(vas) | Dvt02_Vas(vas)), DVT02);
281 writel((Dvt03_Vfps(vfps) | Dvt03_Vbbs(vfps)), DVT03);
282 writel((Dvdet_Vdes(vas) | Dvdet_Vdef(vfps)), DVDET);
283 writel((Dvectrl_Vevent(vfps) | Dvectrl_Vfetch(vbps)), DVECTRL);
284
285 writel((readl(DSCTRL) | DSCTRL_SYNCGEN_EN), DSCTRL);
286
287 return 0;
288}
289
290static int mbxfb_blank(int blank, struct fb_info *info)
291{
292 switch (blank) {
293 case FB_BLANK_POWERDOWN:
294 case FB_BLANK_VSYNC_SUSPEND:
295 case FB_BLANK_HSYNC_SUSPEND:
296 case FB_BLANK_NORMAL:
297 writel((readl(DSCTRL) & ~DSCTRL_SYNCGEN_EN), DSCTRL);
298 udelay(1000);
299 writel((readl(PIXCLK) & ~PIXCLK_EN), PIXCLK);
300 udelay(1000);
301 writel((readl(VOVRCLK) & ~VOVRCLK_EN), VOVRCLK);
302 udelay(1000);
303 break;
304 case FB_BLANK_UNBLANK:
305 writel((readl(DSCTRL) | DSCTRL_SYNCGEN_EN), DSCTRL);
306 udelay(1000);
307 writel((readl(PIXCLK) | PIXCLK_EN), PIXCLK);
308 udelay(1000);
309 break;
310 }
311 return 0;
312}
313
314static struct fb_ops mbxfb_ops = {
315 .owner = THIS_MODULE,
316 .fb_check_var = mbxfb_check_var,
317 .fb_set_par = mbxfb_set_par,
318 .fb_setcolreg = mbxfb_setcolreg,
319 .fb_fillrect = cfb_fillrect,
320 .fb_copyarea = cfb_copyarea,
321 .fb_imageblit = cfb_imageblit,
322 .fb_blank = mbxfb_blank,
323};
324
325/*
326 Enable external SDRAM controller. Assume that all clocks are active
327 by now.
328*/
329static void __devinit setup_memc(struct fb_info *fbi)
330{
331 struct mbxfb_info *mfbi = fbi->par;
332 unsigned long tmp;
333 int i;
334
335 /* FIXME: use platfrom specific parameters */
336 /* setup SDRAM controller */
337 writel((LMCFG_LMC_DS | LMCFG_LMC_TS | LMCFG_LMD_TS |
338 LMCFG_LMA_TS),
339 LMCFG);
340 udelay(1000);
341
342 writel(LMPWR_MC_PWR_ACT, LMPWR);
343 udelay(1000);
344
345 /* setup SDRAM timings */
346 writel((Lmtim_Tras(7) | Lmtim_Trp(3) | Lmtim_Trcd(3) |
347 Lmtim_Trc(9) | Lmtim_Tdpl(2)),
348 LMTIM);
349 udelay(1000);
350 /* setup SDRAM refresh rate */
351 writel(0xc2b, LMREFRESH);
352 udelay(1000);
353 /* setup SDRAM type parameters */
354 writel((LMTYPE_CASLAT_3 | LMTYPE_BKSZ_2 | LMTYPE_ROWSZ_11 |
355 LMTYPE_COLSZ_8),
356 LMTYPE);
357 udelay(1000);
358 /* enable memory controller */
359 writel(LMPWR_MC_PWR_ACT, LMPWR);
360 udelay(1000);
361
362 /* perform dummy reads */
363 for ( i = 0; i < 16; i++ ) {
364 tmp = readl(fbi->screen_base);
365 }
366}
367
368static void enable_clocks(struct fb_info *fbi)
369{
370 /* enable clocks */
371 writel(SYSCLKSRC_PLL_2, SYSCLKSRC);
372 udelay(1000);
373 writel(PIXCLKSRC_PLL_1, PIXCLKSRC);
374 udelay(1000);
375 writel(0x00000000, CLKSLEEP);
376 udelay(1000);
377 writel((Core_Pll_M(0x17) | Core_Pll_N(0x3) | Core_Pll_P(0x0) |
378 CORE_PLL_EN),
379 COREPLL);
380 udelay(1000);
381 writel((Disp_Pll_M(0x1b) | Disp_Pll_N(0x7) | Disp_Pll_P(0x1) |
382 DISP_PLL_EN),
383 DISPPLL);
384
385 writel(0x00000000, VOVRCLK);
386 udelay(1000);
387 writel(PIXCLK_EN, PIXCLK);
388 udelay(1000);
389 writel(MEMCLK_EN, MEMCLK);
390 udelay(1000);
391 writel(0x00000006, M24CLK);
392 udelay(1000);
393 writel(0x00000006, MBXCLK);
394 udelay(1000);
395 writel(SDCLK_EN, SDCLK);
396 udelay(1000);
397 writel(0x00000001, PIXCLKDIV);
398 udelay(1000);
399}
400
401static void __devinit setup_graphics(struct fb_info *fbi)
402{
403 unsigned long gsctrl;
404
405 gsctrl = GSCTRL_GAMMA_EN | Gsctrl_Width(fbi->var.xres - 1) |
406 Gsctrl_Height(fbi->var.yres - 1);
407 switch (fbi->var.bits_per_pixel) {
408 case 16:
409 if (fbi->var.green.length == 5)
410 gsctrl |= GSCTRL_GPIXFMT_ARGB1555;
411 else
412 gsctrl |= GSCTRL_GPIXFMT_RGB565;
413 break;
414 case 24:
415 gsctrl |= GSCTRL_GPIXFMT_RGB888;
416 break;
417 case 32:
418 gsctrl |= GSCTRL_GPIXFMT_ARGB8888;
419 break;
420 }
421
422 writel(gsctrl, GSCTRL);
423 udelay(1000);
424 writel(0x00000000, GBBASE);
425 udelay(1000);
426 writel(0x00ffffff, GDRCTRL);
427 udelay(1000);
428 writel((GSCADR_STR_EN | Gscadr_Gbase_Adr(0x6000)), GSCADR);
429 udelay(1000);
430 writel(0x00000000, GPLUT);
431 udelay(1000);
432}
433
434static void __devinit setup_display(struct fb_info *fbi)
435{
436 unsigned long dsctrl = 0;
437
438 dsctrl = DSCTRL_BLNK_POL;
439 if (fbi->var.sync & FB_SYNC_HOR_HIGH_ACT)
440 dsctrl |= DSCTRL_HS_POL;
441 if (fbi->var.sync & FB_SYNC_VERT_HIGH_ACT)
442 dsctrl |= DSCTRL_VS_POL;
443 writel(dsctrl, DSCTRL);
444 udelay(1000);
445 writel(0xd0303010, DMCTRL);
446 udelay(1000);
447 writel((readl(DSCTRL) | DSCTRL_SYNCGEN_EN), DSCTRL);
448}
449
450static void __devinit enable_controller(struct fb_info *fbi)
451{
452 writel(SYSRST_RST, SYSRST);
453 udelay(1000);
454
455
456 enable_clocks(fbi);
457 setup_memc(fbi);
458 setup_graphics(fbi);
459 setup_display(fbi);
460}
461
462#ifdef CONFIG_PM
463/*
464 * Power management hooks. Note that we won't be called from IRQ context,
465 * unlike the blank functions above, so we may sleep.
466 */
467static int mbxfb_suspend(struct platform_device *dev, pm_message_t state)
468{
469 /* make frame buffer memory enter self-refresh mode */
470 writel(LMPWR_MC_PWR_SRM, LMPWR);
471 while (LMPWRSTAT != LMPWRSTAT_MC_PWR_SRM)
472 ; /* empty statement */
473
474 /* reset the device, since it's initial state is 'mostly sleeping' */
475 writel(SYSRST_RST, SYSRST);
476 return 0;
477}
478
479static int mbxfb_resume(struct platform_device *dev)
480{
481 struct fb_info *fbi = platform_get_drvdata(dev);
482
483 enable_clocks(fbi);
484/* setup_graphics(fbi); */
485/* setup_display(fbi); */
486
487 writel((readl(DSCTRL) | DSCTRL_SYNCGEN_EN), DSCTRL);
488 return 0;
489}
490#else
491#define mbxfb_suspend NULL
492#define mbxfb_resume NULL
493#endif
494
495/* debugfs entries */
496#ifndef CONFIG_FB_MBX_DEBUG
497#define mbxfb_debugfs_init(x) do {} while(0)
498#define mbxfb_debugfs_remove(x) do {} while(0)
499#endif
500
501#define res_size(_r) (((_r)->end - (_r)->start) + 1)
502
503static int __devinit mbxfb_probe(struct platform_device *dev)
504{
505 int ret;
506 struct fb_info *fbi;
507 struct mbxfb_info *mfbi;
508 struct mbxfb_platform_data *pdata;
509
510 dev_dbg(dev, "mbxfb_probe\n");
511
512 fbi = framebuffer_alloc(sizeof(struct mbxfb_info), &dev->dev);
513 if (fbi == NULL) {
514 dev_err(&dev->dev, "framebuffer_alloc failed\n");
515 return -ENOMEM;
516 }
517
518 mfbi = fbi->par;
519 fbi->pseudo_palette = mfbi->pseudo_palette;
520 pdata = dev->dev.platform_data;
521 if (pdata->probe)
522 mfbi->platform_probe = pdata->probe;
523 if (pdata->remove)
524 mfbi->platform_remove = pdata->remove;
525
526 mfbi->fb_res = platform_get_resource(dev, IORESOURCE_MEM, 0);
527 mfbi->reg_res = platform_get_resource(dev, IORESOURCE_MEM, 1);
528
529 if (!mfbi->fb_res || !mfbi->reg_res) {
530 dev_err(&dev->dev, "no resources found\n");
531 ret = -ENODEV;
532 goto err1;
533 }
534
535 mfbi->fb_req = request_mem_region(mfbi->fb_res->start,
536 res_size(mfbi->fb_res), dev->name);
537 if (mfbi->fb_req == NULL) {
538 dev_err(&dev->dev, "failed to claim framebuffer memory\n");
539 ret = -EINVAL;
540 goto err1;
541 }
542 mfbi->fb_phys_addr = mfbi->fb_res->start;
543
544 mfbi->reg_req = request_mem_region(mfbi->reg_res->start,
545 res_size(mfbi->reg_res), dev->name);
546 if (mfbi->reg_req == NULL) {
547 dev_err(&dev->dev, "failed to claim Marathon registers\n");
548 ret = -EINVAL;
549 goto err2;
550 }
551 mfbi->reg_phys_addr = mfbi->reg_res->start;
552
553 mfbi->reg_virt_addr = ioremap_nocache(mfbi->reg_phys_addr,
554 res_size(mfbi->reg_req));
555 if (!mfbi->reg_virt_addr) {
556 dev_err(&dev->dev, "failed to ioremap Marathon registers\n");
557 ret = -EINVAL;
558 goto err3;
559 }
560 virt_base_2700 = (unsigned long)mfbi->reg_virt_addr;
561
562 mfbi->fb_virt_addr = ioremap_nocache(mfbi->fb_phys_addr,
563 res_size(mfbi->fb_req));
564 if (!mfbi->reg_virt_addr) {
565 dev_err(&dev->dev, "failed to ioremap frame buffer\n");
566 ret = -EINVAL;
567 goto err4;
568 }
569
570 /* FIXME: get from platform */
571 fbi->screen_base = (char __iomem *)(mfbi->fb_virt_addr + 0x60000);
572 fbi->screen_size = 8 * 1024 * 1024; /* 8 Megs */
573 fbi->fbops = &mbxfb_ops;
574
575 fbi->var = mbxfb_default;
576 fbi->fix = mbxfb_fix;
577 fbi->fix.smem_start = mfbi->fb_phys_addr + 0x60000;
578 fbi->fix.smem_len = 8 * 1024 * 1024;
579 fbi->fix.line_length = 640 * 2;
580
581 ret = fb_alloc_cmap(&fbi->cmap, 256, 0);
582 if (ret < 0) {
583 dev_err(&dev->dev, "fb_alloc_cmap failed\n");
584 ret = -EINVAL;
585 goto err5;
586 }
587
588 platform_set_drvdata(dev, fbi);
589
590 printk(KERN_INFO "fb%d: mbx frame buffer device\n", fbi->node);
591
592 if (mfbi->platform_probe)
593 mfbi->platform_probe(fbi);
594
595 enable_controller(fbi);
596
597 mbxfb_debugfs_init(fbi);
598
599 ret = register_framebuffer(fbi);
600 if (ret < 0) {
601 dev_err(&dev->dev, "register_framebuffer failed\n");
602 ret = -EINVAL;
603 goto err6;
604 }
605
606 return 0;
607
608err6:
609 fb_dealloc_cmap(&fbi->cmap);
610err5:
611 iounmap(mfbi->fb_virt_addr);
612err4:
613 iounmap(mfbi->reg_virt_addr);
614err3:
615 release_mem_region(mfbi->reg_res->start, res_size(mfbi->reg_res));
616err2:
617 release_mem_region(mfbi->fb_res->start, res_size(mfbi->fb_res));
618err1:
619 framebuffer_release(fbi);
620
621 return ret;
622}
623
624static int __devexit mbxfb_remove(struct platform_device *dev)
625{
626 struct fb_info *fbi = platform_get_drvdata(dev);
627
628 writel(SYSRST_RST, SYSRST);
629 udelay(1000);
630
631 mbxfb_debugfs_remove(fbi);
632
633 if (fbi) {
634 struct mbxfb_info *mfbi = fbi->par;
635
636 unregister_framebuffer(fbi);
637 if (mfbi) {
638 if (mfbi->platform_remove)
639 mfbi->platform_remove(fbi);
640
641 if (mfbi->fb_virt_addr)
642 iounmap(mfbi->fb_virt_addr);
643 if (mfbi->reg_virt_addr)
644 iounmap(mfbi->reg_virt_addr);
645 if (mfbi->reg_req)
646 release_mem_region(mfbi->reg_req->start,
647 res_size(mfbi->reg_req));
648 if (mfbi->fb_req)
649 release_mem_region(mfbi->fb_req->start,
650 res_size(mfbi->fb_req));
651 }
652 framebuffer_release(fbi);
653 }
654
655 return 0;
656}
657
658static struct platform_driver mbxfb_driver = {
659 .probe = mbxfb_probe,
660 .remove = mbxfb_remove,
661 .suspend = mbxfb_suspend,
662 .resume = mbxfb_resume,
663 .driver = {
664 .name = "mbx-fb",
665 },
666};
667
668int __devinit mbxfb_init(void)
669{
670 return platform_driver_register(&mbxfb_driver);
671}
672
673static void __devexit mbxfb_exit(void)
674{
675 platform_driver_unregister(&mbxfb_driver);
676}
677
678module_init(mbxfb_init);
679module_exit(mbxfb_exit);
680
681MODULE_DESCRIPTION("loadable framebuffer driver for Marathon device");
682MODULE_AUTHOR("Mike Rapoport, Compulab");
683MODULE_LICENSE("GPL");
diff --git a/drivers/video/mbx/reg_bits.h b/drivers/video/mbx/reg_bits.h
new file mode 100644
index 000000000000..c226a8e45312
--- /dev/null
+++ b/drivers/video/mbx/reg_bits.h
@@ -0,0 +1,418 @@
1#ifndef __REG_BITS_2700G_
2#define __REG_BITS_2700G_
3
4/* use defines from asm-arm/arch-pxa/bitfields.h for bit fields access */
5#define UData(Data) ((unsigned long) (Data))
6#define Fld(Size, Shft) (((Size) << 16) + (Shft))
7#define FSize(Field) ((Field) >> 16)
8#define FShft(Field) ((Field) & 0x0000FFFF)
9#define FMsk(Field) (((UData (1) << FSize (Field)) - 1) << FShft (Field))
10#define FAlnMsk(Field) ((UData (1) << FSize (Field)) - 1)
11#define F1stBit(Field) (UData (1) << FShft (Field))
12
13#define SYSRST_RST (1 << 0)
14
15/* SYSCLKSRC - SYSCLK Source Control Register */
16#define SYSCLKSRC_SEL Fld(2,0)
17#define SYSCLKSRC_REF ((0x0) << FShft(SYSCLKSRC_SEL))
18#define SYSCLKSRC_PLL_1 ((0x1) << FShft(SYSCLKSRC_SEL))
19#define SYSCLKSRC_PLL_2 ((0x2) << FShft(SYSCLKSRC_SEL))
20
21/* PIXCLKSRC - PIXCLK Source Control Register */
22#define PIXCLKSRC_SEL Fld(2,0)
23#define PIXCLKSRC_REF ((0x0) << FShft(PIXCLKSRC_SEL))
24#define PIXCLKSRC_PLL_1 ((0x1) << FShft(PIXCLKSRC_SEL))
25#define PIXCLKSRC_PLL_2 ((0x2) << FShft(PIXCLKSRC_SEL))
26
27/* Clock Disable Register */
28#define CLKSLEEP_SLP (1 << 0)
29
30/* Core PLL Control Register */
31#define CORE_PLL_M Fld(6,7)
32#define Core_Pll_M(x) ((x) << FShft(CORE_PLL_M))
33#define CORE_PLL_N Fld(3,4)
34#define Core_Pll_N(x) ((x) << FShft(CORE_PLL_N))
35#define CORE_PLL_P Fld(3,1)
36#define Core_Pll_P(x) ((x) << FShft(CORE_PLL_P))
37#define CORE_PLL_EN (1 << 0)
38
39/* Display PLL Control Register */
40#define DISP_PLL_M Fld(6,7)
41#define Disp_Pll_M(x) ((x) << FShft(DISP_PLL_M))
42#define DISP_PLL_N Fld(3,4)
43#define Disp_Pll_N(x) ((x) << FShft(DISP_PLL_N))
44#define DISP_PLL_P Fld(3,1)
45#define Disp_Pll_P(x) ((x) << FShft(DISP_PLL_P))
46#define DISP_PLL_EN (1 << 0)
47
48/* PLL status register */
49#define PLLSTAT_CORE_PLL_LOST_L (1 << 3)
50#define PLLSTAT_CORE_PLL_LSTS (1 << 2)
51#define PLLSTAT_DISP_PLL_LOST_L (1 << 1)
52#define PLLSTAT_DISP_PLL_LSTS (1 << 0)
53
54/* Video and scale clock control register */
55#define VOVRCLK_EN (1 << 0)
56
57/* Pixel clock control register */
58#define PIXCLK_EN (1 << 0)
59
60/* Memory clock control register */
61#define MEMCLK_EN (1 << 0)
62
63/* MBX clock control register */
64#define MBXCLK_DIV Fld(2,2)
65#define MBXCLK_DIV_1 ((0x0) << FShft(MBXCLK_DIV))
66#define MBXCLK_DIV_2 ((0x1) << FShft(MBXCLK_DIV))
67#define MBXCLK_DIV_3 ((0x2) << FShft(MBXCLK_DIV))
68#define MBXCLK_DIV_4 ((0x3) << FShft(MBXCLK_DIV))
69#define MBXCLK_EN Fld(2,0)
70#define MBXCLK_EN_NONE ((0x0) << FShft(MBXCLK_EN))
71#define MBXCLK_EN_2D ((0x1) << FShft(MBXCLK_EN))
72#define MBXCLK_EN_BOTH ((0x2) << FShft(MBXCLK_EN))
73
74/* M24 clock control register */
75#define M24CLK_DIV Fld(2,1)
76#define M24CLK_DIV_1 ((0x0) << FShft(M24CLK_DIV))
77#define M24CLK_DIV_2 ((0x1) << FShft(M24CLK_DIV))
78#define M24CLK_DIV_3 ((0x2) << FShft(M24CLK_DIV))
79#define M24CLK_DIV_4 ((0x3) << FShft(M24CLK_DIV))
80#define M24CLK_EN (1 << 0)
81
82/* SDRAM clock control register */
83#define SDCLK_EN (1 << 0)
84
85/* PixClk Divisor Register */
86#define PIXCLKDIV_PD Fld(9,0)
87#define Pixclkdiv_Pd(x) ((x) << FShft(PIXCLKDIV_PD))
88
89/* LCD Config control register */
90#define LCDCFG_IN_FMT Fld(3,28)
91#define Lcdcfg_In_Fmt(x) ((x) << FShft(LCDCFG_IN_FMT))
92#define LCDCFG_LCD1DEN_POL (1 << 27)
93#define LCDCFG_LCD1FCLK_POL (1 << 26)
94#define LCDCFG_LCD1LCLK_POL (1 << 25)
95#define LCDCFG_LCD1D_POL (1 << 24)
96#define LCDCFG_LCD2DEN_POL (1 << 23)
97#define LCDCFG_LCD2FCLK_POL (1 << 22)
98#define LCDCFG_LCD2LCLK_POL (1 << 21)
99#define LCDCFG_LCD2D_POL (1 << 20)
100#define LCDCFG_LCD1_TS (1 << 19)
101#define LCDCFG_LCD1D_DS (1 << 18)
102#define LCDCFG_LCD1C_DS (1 << 17)
103#define LCDCFG_LCD1_IS_IN (1 << 16)
104#define LCDCFG_LCD2_TS (1 << 3)
105#define LCDCFG_LCD2D_DS (1 << 2)
106#define LCDCFG_LCD2C_DS (1 << 1)
107#define LCDCFG_LCD2_IS_IN (1 << 0)
108
109/* On-Die Frame Buffer Power Control Register */
110#define ODFBPWR_SLOW (1 << 2)
111#define ODFBPWR_MODE Fld(2,0)
112#define ODFBPWR_MODE_ACT ((0x0) << FShft(ODFBPWR_MODE))
113#define ODFBPWR_MODE_ACT_LP ((0x1) << FShft(ODFBPWR_MODE))
114#define ODFBPWR_MODE_SLEEP ((0x2) << FShft(ODFBPWR_MODE))
115#define ODFBPWR_MODE_SHUTD ((0x3) << FShft(ODFBPWR_MODE))
116
117/* On-Die Frame Buffer Power State Status Register */
118#define ODFBSTAT_ACT (1 << 2)
119#define ODFBSTAT_SLP (1 << 1)
120#define ODFBSTAT_SDN (1 << 0)
121
122/* LMRST - Local Memory (SDRAM) Reset */
123#define LMRST_MC_RST (1 << 0)
124
125/* LMCFG - Local Memory (SDRAM) Configuration Register */
126#define LMCFG_LMC_DS (1 << 5)
127#define LMCFG_LMD_DS (1 << 4)
128#define LMCFG_LMA_DS (1 << 3)
129#define LMCFG_LMC_TS (1 << 2)
130#define LMCFG_LMD_TS (1 << 1)
131#define LMCFG_LMA_TS (1 << 0)
132
133/* LMPWR - Local Memory (SDRAM) Power Control Register */
134#define LMPWR_MC_PWR_CNT Fld(2,0)
135#define LMPWR_MC_PWR_ACT ((0x0) << FShft(LMPWR_MC_PWR_CNT)) /* Active */
136#define LMPWR_MC_PWR_SRM ((0x1) << FShft(LMPWR_MC_PWR_CNT)) /* Self-refresh */
137#define LMPWR_MC_PWR_DPD ((0x3) << FShft(LMPWR_MC_PWR_CNT)) /* deep power down */
138
139/* LMPWRSTAT - Local Memory (SDRAM) Power Status Register */
140#define LMPWRSTAT_MC_PWR_CNT Fld(2,0)
141#define LMPWRSTAT_MC_PWR_ACT ((0x0) << FShft(LMPWRSTAT_MC_PWR_CNT)) /* Active */
142#define LMPWRSTAT_MC_PWR_SRM ((0x1) << FShft(LMPWRSTAT_MC_PWR_CNT)) /* Self-refresh */
143#define LMPWRSTAT_MC_PWR_DPD ((0x3) << FShft(LMPWRSTAT_MC_PWR_CNT)) /* deep power down */
144
145/* LMTYPE - Local Memory (SDRAM) Type Register */
146#define LMTYPE_CASLAT Fld(3,10)
147#define LMTYPE_CASLAT_1 ((0x1) << FShft(LMTYPE_CASLAT))
148#define LMTYPE_CASLAT_2 ((0x2) << FShft(LMTYPE_CASLAT))
149#define LMTYPE_CASLAT_3 ((0x3) << FShft(LMTYPE_CASLAT))
150#define LMTYPE_BKSZ Fld(2,8)
151#define LMTYPE_BKSZ_1 ((0x1) << FShft(LMTYPE_BKSZ))
152#define LMTYPE_BKSZ_2 ((0x2) << FShft(LMTYPE_BKSZ))
153#define LMTYPE_ROWSZ Fld(4,4)
154#define LMTYPE_ROWSZ_11 ((0xb) << FShft(LMTYPE_ROWSZ))
155#define LMTYPE_ROWSZ_12 ((0xc) << FShft(LMTYPE_ROWSZ))
156#define LMTYPE_ROWSZ_13 ((0xd) << FShft(LMTYPE_ROWSZ))
157#define LMTYPE_COLSZ Fld(4,0)
158#define LMTYPE_COLSZ_7 ((0x7) << FShft(LMTYPE_COLSZ))
159#define LMTYPE_COLSZ_8 ((0x8) << FShft(LMTYPE_COLSZ))
160#define LMTYPE_COLSZ_9 ((0x9) << FShft(LMTYPE_COLSZ))
161#define LMTYPE_COLSZ_10 ((0xa) << FShft(LMTYPE_COLSZ))
162#define LMTYPE_COLSZ_11 ((0xb) << FShft(LMTYPE_COLSZ))
163#define LMTYPE_COLSZ_12 ((0xc) << FShft(LMTYPE_COLSZ))
164
165/* LMTIM - Local Memory (SDRAM) Timing Register */
166#define LMTIM_TRAS Fld(4,16)
167#define Lmtim_Tras(x) ((x) << FShft(LMTIM_TRAS))
168#define LMTIM_TRP Fld(4,12)
169#define Lmtim_Trp(x) ((x) << FShft(LMTIM_TRP))
170#define LMTIM_TRCD Fld(4,8)
171#define Lmtim_Trcd(x) ((x) << FShft(LMTIM_TRCD))
172#define LMTIM_TRC Fld(4,4)
173#define Lmtim_Trc(x) ((x) << FShft(LMTIM_TRC))
174#define LMTIM_TDPL Fld(4,0)
175#define Lmtim_Tdpl(x) ((x) << FShft(LMTIM_TDPL))
176
177/* LMREFRESH - Local Memory (SDRAM) tREF Control Register */
178#define LMREFRESH_TREF Fld(2,0)
179#define Lmrefresh_Tref(x) ((x) << FShft(LMREFRESH_TREF))
180
181/* GSCTRL - Graphics surface control register */
182#define GSCTRL_LUT_EN (1 << 31)
183#define GSCTRL_GPIXFMT Fld(4,27)
184#define GSCTRL_GPIXFMT_INDEXED ((0x0) << FShft(GSCTRL_GPIXFMT))
185#define GSCTRL_GPIXFMT_ARGB4444 ((0x4) << FShft(GSCTRL_GPIXFMT))
186#define GSCTRL_GPIXFMT_ARGB1555 ((0x5) << FShft(GSCTRL_GPIXFMT))
187#define GSCTRL_GPIXFMT_RGB888 ((0x6) << FShft(GSCTRL_GPIXFMT))
188#define GSCTRL_GPIXFMT_RGB565 ((0x7) << FShft(GSCTRL_GPIXFMT))
189#define GSCTRL_GPIXFMT_ARGB8888 ((0x8) << FShft(GSCTRL_GPIXFMT))
190#define GSCTRL_GAMMA_EN (1 << 26)
191
192#define GSCTRL_GSWIDTH Fld(11,11)
193#define Gsctrl_Width(Pixel) /* Display Width [1..2048 pix.] */ \
194 (((Pixel) - 1) << FShft(GSCTRL_GSWIDTH))
195
196#define GSCTRL_GSHEIGHT Fld(11,0)
197#define Gsctrl_Height(Pixel) /* Display Height [1..2048 pix.] */ \
198 (((Pixel) - 1) << FShft(GSCTRL_GSHEIGHT))
199
200/* GBBASE fileds */
201#define GBBASE_GLALPHA Fld(8,24)
202#define Gbbase_Glalpha(x) ((x) << FShft(GBBASE_GLALPHA))
203
204#define GBBASE_COLKEY Fld(24,0)
205#define Gbbase_Colkey(x) ((x) << FShft(GBBASE_COLKEY))
206
207/* GDRCTRL fields */
208#define GDRCTRL_PIXDBL (1 << 31)
209#define GDRCTRL_PIXHLV (1 << 30)
210#define GDRCTRL_LNDBL (1 << 29)
211#define GDRCTRL_LNHLV (1 << 28)
212#define GDRCTRL_COLKEYM Fld(24,0)
213#define Gdrctrl_Colkeym(x) ((x) << FShft(GDRCTRL_COLKEYM))
214
215/* GSCADR graphics stream control address register fields */
216#define GSCADR_STR_EN (1 << 31)
217#define GSCADR_COLKEY_EN (1 << 30)
218#define GSCADR_COLKEYSCR (1 << 29)
219#define GSCADR_BLEND_M Fld(2,27)
220#define GSCADR_BLEND_NONE ((0x0) << FShft(GSCADR_BLEND_M))
221#define GSCADR_BLEND_INV ((0x1) << FShft(GSCADR_BLEND_M))
222#define GSCADR_BLEND_GLOB ((0x2) << FShft(GSCADR_BLEND_M))
223#define GSCADR_BLEND_PIX ((0x3) << FShft(GSCADR_BLEND_M))
224#define GSCADR_BLEND_POS Fld(2,24)
225#define GSCADR_BLEND_GFX ((0x0) << FShft(GSCADR_BLEND_POS))
226#define GSCADR_BLEND_VID ((0x1) << FShft(GSCADR_BLEND_POS))
227#define GSCADR_BLEND_CUR ((0x2) << FShft(GSCADR_BLEND_POS))
228#define GSCADR_GBASE_ADR Fld(23,0)
229#define Gscadr_Gbase_Adr(x) ((x) << FShft(GSCADR_GBASE_ADR))
230
231/* GSADR graphics stride address register fields */
232#define GSADR_SRCSTRIDE Fld(10,22)
233#define Gsadr_Srcstride(x) ((x) << FShft(GSADR_SRCSTRIDE))
234#define GSADR_XSTART Fld(11,11)
235#define Gsadr_Xstart(x) ((x) << FShft(GSADR_XSTART))
236#define GSADR_YSTART Fld(11,0)
237#define Gsadr_Ystart(y) ((y) << FShft(GSADR_YSTART))
238
239/* GPLUT graphics palette register fields */
240#define GPLUT_LUTADR Fld(8,24)
241#define Gplut_Lutadr(x) ((x) << FShft(GPLUT_LUTADR))
242#define GPLUT_LUTDATA Fld(24,0)
243#define Gplut_Lutdata(x) ((x) << FShft(GPLUT_LUTDATA))
244
245/* HCCTRL - Hardware Cursor Register fields */
246#define HCCTRL_CUR_EN (1 << 31)
247#define HCCTRL_COLKEY_EN (1 << 29)
248#define HCCTRL_COLKEYSRC (1 << 28)
249#define HCCTRL_BLEND_M Fld(2,26)
250#define HCCTRL_BLEND_NONE ((0x0) << FShft(HCCTRL_BLEND_M))
251#define HCCTRL_BLEND_INV ((0x1) << FShft(HCCTRL_BLEND_M))
252#define HCCTRL_BLEND_GLOB ((0x2) << FShft(HCCTRL_BLEND_M))
253#define HCCTRL_BLEND_PIX ((0x3) << FShft(HCCTRL_BLEND_M))
254#define HCCTRL_CPIXFMT Fld(3,23)
255#define HCCTRL_CPIXFMT_RGB332 ((0x3) << FShft(HCCTRL_CPIXFMT))
256#define HCCTRL_CPIXFMT_ARGB4444 ((0x4) << FShft(HCCTRL_CPIXFMT))
257#define HCCTRL_CPIXFMT_ARGB1555 ((0x5) << FShft(HCCTRL_CPIXFMT))
258#define HCCTRL_CBASE_ADR Fld(23,0)
259#define Hcctrl_Cbase_Adr(x) ((x) << FShft(HCCTRL_CBASE_ADR))
260
261/* HCSIZE Hardware Cursor Size Register fields */
262#define HCSIZE_BLEND_POS Fld(2,29)
263#define HCSIZE_BLEND_GFX ((0x0) << FShft(HCSIZE_BLEND_POS))
264#define HCSIZE_BLEND_VID ((0x1) << FShft(HCSIZE_BLEND_POS))
265#define HCSIZE_BLEND_CUR ((0x2) << FShft(HCSIZE_BLEND_POS))
266#define HCSIZE_CWIDTH Fld(3,16)
267#define Hcsize_Cwidth(x) ((x) << FShft(HCSIZE_CWIDTH))
268#define HCSIZE_CHEIGHT Fld(3,0)
269#define Hcsize_Cheight(x) ((x) << FShft(HCSIZE_CHEIGHT))
270
271/* HCPOS Hardware Cursor Position Register fields */
272#define HCPOS_SWITCHSRC (1 << 30)
273#define HCPOS_CURBLINK Fld(6,24)
274#define Hcpos_Curblink(x) ((x) << FShft(HCPOS_CURBLINK))
275#define HCPOS_XSTART Fld(12,12)
276#define Hcpos_Xstart(x) ((x) << FShft(HCPOS_XSTART))
277#define HCPOS_YSTART Fld(12,0)
278#define Hcpos_Ystart(y) ((y) << FShft(HCPOS_YSTART))
279
280/* HCBADR Hardware Cursor Blend Address Register */
281#define HCBADR_GLALPHA Fld(8,24)
282#define Hcbadr_Glalpha(x) ((x) << FShft(HCBADR_GLALPHA))
283#define HCBADR_COLKEY Fld(24,0)
284#define Hcbadr_Colkey(x) ((x) << FShft(HCBADR_COLKEY))
285
286/* HCCKMSK - Hardware Cursor Color Key Mask Register */
287#define HCCKMSK_COLKEY_M Fld(24,0)
288#define Hcckmsk_Colkey_M(x) ((x) << FShft(HCCKMSK_COLKEY_M))
289
290/* DSCTRL - Display sync control register */
291#define DSCTRL_SYNCGEN_EN (1 << 31)
292#define DSCTRL_DPL_RST (1 << 29)
293#define DSCTRL_PWRDN_M (1 << 28)
294#define DSCTRL_UPDSYNCCNT (1 << 26)
295#define DSCTRL_UPDINTCNT (1 << 25)
296#define DSCTRL_UPDCNT (1 << 24)
297#define DSCTRL_UPDWAIT Fld(4,16)
298#define Dsctrl_Updwait(x) ((x) << FShft(DSCTRL_UPDWAIT))
299#define DSCTRL_CLKPOL (1 << 11)
300#define DSCTRL_CSYNC_EN (1 << 10)
301#define DSCTRL_VS_SLAVE (1 << 7)
302#define DSCTRL_HS_SLAVE (1 << 6)
303#define DSCTRL_BLNK_POL (1 << 5)
304#define DSCTRL_BLNK_DIS (1 << 4)
305#define DSCTRL_VS_POL (1 << 3)
306#define DSCTRL_VS_DIS (1 << 2)
307#define DSCTRL_HS_POL (1 << 1)
308#define DSCTRL_HS_DIS (1 << 0)
309
310/* DHT01 - Display horizontal timing register 01 */
311#define DHT01_HBPS Fld(12,16)
312#define Dht01_Hbps(x) ((x) << FShft(DHT01_HBPS))
313#define DHT01_HT Fld(12,0)
314#define Dht01_Ht(x) ((x) << FShft(DHT01_HT))
315
316/* DHT02 - Display horizontal timing register 02 */
317#define DHT02_HAS Fld(12,16)
318#define Dht02_Has(x) ((x) << FShft(DHT02_HAS))
319#define DHT02_HLBS Fld(12,0)
320#define Dht02_Hlbs(x) ((x) << FShft(DHT02_HLBS))
321
322/* DHT03 - Display horizontal timing register 03 */
323#define DHT03_HFPS Fld(12,16)
324#define Dht03_Hfps(x) ((x) << FShft(DHT03_HFPS))
325#define DHT03_HRBS Fld(12,0)
326#define Dht03_Hrbs(x) ((x) << FShft(DHT03_HRBS))
327
328/* DVT01 - Display vertical timing register 01 */
329#define DVT01_VBPS Fld(12,16)
330#define Dvt01_Vbps(x) ((x) << FShft(DVT01_VBPS))
331#define DVT01_VT Fld(12,0)
332#define Dvt01_Vt(x) ((x) << FShft(DVT01_VT))
333
334/* DVT02 - Display vertical timing register 02 */
335#define DVT02_VAS Fld(12,16)
336#define Dvt02_Vas(x) ((x) << FShft(DVT02_VAS))
337#define DVT02_VTBS Fld(12,0)
338#define Dvt02_Vtbs(x) ((x) << FShft(DVT02_VTBS))
339
340/* DVT03 - Display vertical timing register 03 */
341#define DVT03_VFPS Fld(12,16)
342#define Dvt03_Vfps(x) ((x) << FShft(DVT03_VFPS))
343#define DVT03_VBBS Fld(12,0)
344#define Dvt03_Vbbs(x) ((x) << FShft(DVT03_VBBS))
345
346/* DVECTRL - display vertical event control register */
347#define DVECTRL_VEVENT Fld(12,16)
348#define Dvectrl_Vevent(x) ((x) << FShft(DVECTRL_VEVENT))
349#define DVECTRL_VFETCH Fld(12,0)
350#define Dvectrl_Vfetch(x) ((x) << FShft(DVECTRL_VFETCH))
351
352/* DHDET - display horizontal DE timing register */
353#define DHDET_HDES Fld(12,16)
354#define Dhdet_Hdes(x) ((x) << FShft(DHDET_HDES))
355#define DHDET_HDEF Fld(12,0)
356#define Dhdet_Hdef(x) ((x) << FShft(DHDET_HDEF))
357
358/* DVDET - display vertical DE timing register */
359#define DVDET_VDES Fld(12,16)
360#define Dvdet_Vdes(x) ((x) << FShft(DVDET_VDES))
361#define DVDET_VDEF Fld(12,0)
362#define Dvdet_Vdef(x) ((x) << FShft(DVDET_VDEF))
363
364/* DODMSK - display output data mask register */
365#define DODMSK_MASK_LVL (1 << 31)
366#define DODMSK_BLNK_LVL (1 << 30)
367#define DODMSK_MASK_B Fld(8,16)
368#define Dodmsk_Mask_B(x) ((x) << FShft(DODMSK_MASK_B))
369#define DODMSK_MASK_G Fld(8,8)
370#define Dodmsk_Mask_G(x) ((x) << FShft(DODMSK_MASK_G))
371#define DODMSK_MASK_R Fld(8,0)
372#define Dodmsk_Mask_R(x) ((x) << FShft(DODMSK_MASK_R))
373
374/* DBCOL - display border color control register */
375#define DBCOL_BORDCOL Fld(24,0)
376#define Dbcol_Bordcol(x) ((x) << FShft(DBCOL_BORDCOL))
377
378/* DVLNUM - display vertical line number register */
379#define DVLNUM_VLINE Fld(12,0)
380#define Dvlnum_Vline(x) ((x) << FShft(DVLNUM_VLINE))
381
382/* DMCTRL - Display Memory Control Register */
383#define DMCTRL_MEM_REF Fld(2,30)
384#define DMCTRL_MEM_REF_ACT ((0x0) << FShft(DMCTRL_MEM_REF))
385#define DMCTRL_MEM_REF_HB ((0x1) << FShft(DMCTRL_MEM_REF))
386#define DMCTRL_MEM_REF_VB ((0x2) << FShft(DMCTRL_MEM_REF))
387#define DMCTRL_MEM_REF_BOTH ((0x3) << FShft(DMCTRL_MEM_REF))
388#define DMCTRL_UV_THRHLD Fld(6,24)
389#define Dmctrl_Uv_Thrhld(x) ((x) << FShft(DMCTRL_UV_THRHLD))
390#define DMCTRL_V_THRHLD Fld(7,16)
391#define Dmctrl_V_Thrhld(x) ((x) << FShft(DMCTRL_V_THRHLD))
392#define DMCTRL_D_THRHLD Fld(7,8)
393#define Dmctrl_D_Thrhld(x) ((x) << FShft(DMCTRL_D_THRHLD))
394#define DMCTRL_BURSTLEN Fld(6,0)
395#define Dmctrl_Burstlen(x) ((x) << FShft(DMCTRL_BURSTLEN))
396
397
398/* DLSTS - display load status register */
399#define DLSTS_RLD_ADONE (1 << 23)
400/* #define DLSTS_RLD_ADOUT Fld(23,0) */
401
402/* DLLCTRL - display list load control register */
403#define DLLCTRL_RLD_ADRLN Fld(8,24)
404#define Dllctrl_Rld_Adrln(x) ((x) << FShft(DLLCTRL_RLD_ADRLN))
405
406/* SPOCTRL - Scale Pitch/Order Control Register */
407#define SPOCTRL_H_SC_BP (1 << 31)
408#define SPOCTRL_V_SC_BP (1 << 30)
409#define SPOCTRL_HV_SC_OR (1 << 29)
410#define SPOCTRL_VS_UR_C (1 << 27)
411#define SPOCTRL_VORDER Fld(2,16)
412#define SPOCTRL_VORDER_1TAP ((0x0) << FShft(SPOCTRL_VORDER))
413#define SPOCTRL_VORDER_2TAP ((0x1) << FShft(SPOCTRL_VORDER))
414#define SPOCTRL_VORDER_4TAP ((0x3) << FShft(SPOCTRL_VORDER))
415#define SPOCTRL_VPITCH Fld(16,0)
416#define Spoctrl_Vpitch(x) ((x) << FShft(SPOCTRL_VPITCH))
417
418#endif /* __REG_BITS_2700G_ */
diff --git a/drivers/video/mbx/regs.h b/drivers/video/mbx/regs.h
new file mode 100644
index 000000000000..ad20be07666b
--- /dev/null
+++ b/drivers/video/mbx/regs.h
@@ -0,0 +1,195 @@
1#ifndef __REGS_2700G_
2#define __REGS_2700G_
3
4/* extern unsigned long virt_base_2700; */
5/* #define __REG_2700G(x) (*(volatile unsigned long*)((x)+virt_base_2700)) */
6#define __REG_2700G(x) ((x)+virt_base_2700)
7
8/* System Configuration Registers (0x0000_0000 0x0000_0010) */
9#define SYSCFG __REG_2700G(0x00000000)
10#define PFBASE __REG_2700G(0x00000004)
11#define PFCEIL __REG_2700G(0x00000008)
12#define POLLFLAG __REG_2700G(0x0000000c)
13#define SYSRST __REG_2700G(0x00000010)
14
15/* Interrupt Control Registers (0x0000_0014 0x0000_002F) */
16#define NINTPW __REG_2700G(0x00000014)
17#define MINTENABLE __REG_2700G(0x00000018)
18#define MINTSTAT __REG_2700G(0x0000001c)
19#define SINTENABLE __REG_2700G(0x00000020)
20#define SINTSTAT __REG_2700G(0x00000024)
21#define SINTCLR __REG_2700G(0x00000028)
22
23/* Clock Control Registers (0x0000_002C 0x0000_005F) */
24#define SYSCLKSRC __REG_2700G(0x0000002c)
25#define PIXCLKSRC __REG_2700G(0x00000030)
26#define CLKSLEEP __REG_2700G(0x00000034)
27#define COREPLL __REG_2700G(0x00000038)
28#define DISPPLL __REG_2700G(0x0000003c)
29#define PLLSTAT __REG_2700G(0x00000040)
30#define VOVRCLK __REG_2700G(0x00000044)
31#define PIXCLK __REG_2700G(0x00000048)
32#define MEMCLK __REG_2700G(0x0000004c)
33#define M24CLK __REG_2700G(0x00000054)
34#define MBXCLK __REG_2700G(0x00000054)
35#define SDCLK __REG_2700G(0x00000058)
36#define PIXCLKDIV __REG_2700G(0x0000005c)
37
38/* LCD Port Control Register (0x0000_0060 0x0000_006F) */
39#define LCD_CONFIG __REG_2700G(0x00000060)
40
41/* On-Die Frame Buffer Registers (0x0000_0064 0x0000_006B) */
42#define ODFBPWR __REG_2700G(0x00000064)
43#define ODFBSTAT __REG_2700G(0x00000068)
44
45/* GPIO Registers (0x0000_006C 0x0000_007F) */
46#define GPIOCGF __REG_2700G(0x0000006c)
47#define GPIOHI __REG_2700G(0x00000070)
48#define GPIOLO __REG_2700G(0x00000074)
49#define GPIOSTAT __REG_2700G(0x00000078)
50
51/* Pulse Width Modulator (PWM) Registers (0x0000_0200 0x0000_02FF) */
52#define PWMRST __REG_2700G(0x00000200)
53#define PWMCFG __REG_2700G(0x00000204)
54#define PWM0DIV __REG_2700G(0x00000210)
55#define PWM0DUTY __REG_2700G(0x00000214)
56#define PWM0PER __REG_2700G(0x00000218)
57#define PWM1DIV __REG_2700G(0x00000220)
58#define PWM1DUTY __REG_2700G(0x00000224)
59#define PWM1PER __REG_2700G(0x00000228)
60
61/* Identification (ID) Registers (0x0000_0300 0x0000_0FFF) */
62#define ID __REG_2700G(0x00000FF0)
63
64/* Local Memory (SDRAM) Interface Registers (0x0000_1000 0x0000_1FFF) */
65#define LMRST __REG_2700G(0x00001000)
66#define LMCFG __REG_2700G(0x00001004)
67#define LMPWR __REG_2700G(0x00001008)
68#define LMPWRSTAT __REG_2700G(0x0000100c)
69#define LMCEMR __REG_2700G(0x00001010)
70#define LMTYPE __REG_2700G(0x00001014)
71#define LMTIM __REG_2700G(0x00001018)
72#define LMREFRESH __REG_2700G(0x0000101c)
73#define LMPROTMIN __REG_2700G(0x00001020)
74#define LMPROTMAX __REG_2700G(0x00001024)
75#define LMPROTCFG __REG_2700G(0x00001028)
76#define LMPROTERR __REG_2700G(0x0000102c)
77
78/* Plane Controller Registers (0x0000_2000 0x0000_2FFF) */
79#define GSCTRL __REG_2700G(0x00002000)
80#define VSCTRL __REG_2700G(0x00002004)
81#define GBBASE __REG_2700G(0x00002020)
82#define VBBASE __REG_2700G(0x00002024)
83#define GDRCTRL __REG_2700G(0x00002040)
84#define VCMSK __REG_2700G(0x00002044)
85#define GSCADR __REG_2700G(0x00002060)
86#define VSCADR __REG_2700G(0x00002064)
87#define VUBASE __REG_2700G(0x00002084)
88#define VVBASE __REG_2700G(0x000020a4)
89#define GSADR __REG_2700G(0x000020c0)
90#define VSADR __REG_2700G(0x000020c4)
91#define HCCTRL __REG_2700G(0x00002100)
92#define HCSIZE __REG_2700G(0x00002110)
93#define HCPOS __REG_2700G(0x00002120)
94#define HCBADR __REG_2700G(0x00002130)
95#define HCCKMSK __REG_2700G(0x00002140)
96#define GPLUT __REG_2700G(0x00002150)
97#define DSCTRL __REG_2700G(0x00002154)
98#define DHT01 __REG_2700G(0x00002158)
99#define DHT02 __REG_2700G(0x0000215c)
100#define DHT03 __REG_2700G(0x00002160)
101#define DVT01 __REG_2700G(0x00002164)
102#define DVT02 __REG_2700G(0x00002168)
103#define DVT03 __REG_2700G(0x0000216c)
104#define DBCOL __REG_2700G(0x00002170)
105#define BGCOLOR __REG_2700G(0x00002174)
106#define DINTRS __REG_2700G(0x00002178)
107#define DINTRE __REG_2700G(0x0000217c)
108#define DINTRCNT __REG_2700G(0x00002180)
109#define DSIG __REG_2700G(0x00002184)
110#define DMCTRL __REG_2700G(0x00002188)
111#define CLIPCTRL __REG_2700G(0x0000218c)
112#define SPOCTRL __REG_2700G(0x00002190)
113#define SVCTRL __REG_2700G(0x00002194)
114
115/* 0x0000_2198 */
116/* 0x0000_21A8 VSCOEFF[0:4] Video Scalar Vertical Coefficient [0:4] 4.14.5 */
117#define VSCOEFF0 __REG_2700G(0x00002198)
118#define VSCOEFF1 __REG_2700G(0x0000219c)
119#define VSCOEFF2 __REG_2700G(0x000021a0)
120#define VSCOEFF3 __REG_2700G(0x000021a4)
121#define VSCOEFF4 __REG_2700G(0x000021a8)
122
123#define SHCTRL __REG_2700G(0x000021b0)
124
125/* 0x0000_21B4 */
126/* 0x0000_21D4 HSCOEFF[0:8] Video Scalar Horizontal Coefficient [0:8] 4.14.7 */
127#define HSCOEFF0 __REG_2700G(0x000021b4)
128#define HSCOEFF1 __REG_2700G(0x000021b8)
129#define HSCOEFF2 __REG_2700G(0x000021bc)
130#define HSCOEFF3 __REG_2700G(0x000021b0)
131#define HSCOEFF4 __REG_2700G(0x000021c4)
132#define HSCOEFF5 __REG_2700G(0x000021c8)
133#define HSCOEFF6 __REG_2700G(0x000021cc)
134#define HSCOEFF7 __REG_2700G(0x000021d0)
135#define HSCOEFF8 __REG_2700G(0x000021d4)
136
137#define SSSIZE __REG_2700G(0x000021D8)
138
139/* 0x0000_2200 */
140/* 0x0000_2240 VIDGAM[0:16] Video Gamma LUT Index [0:16] 4.15.2 */
141#define VIDGAM0 __REG_2700G(0x00002200)
142#define VIDGAM1 __REG_2700G(0x00002204)
143#define VIDGAM2 __REG_2700G(0x00002208)
144#define VIDGAM3 __REG_2700G(0x0000220c)
145#define VIDGAM4 __REG_2700G(0x00002210)
146#define VIDGAM5 __REG_2700G(0x00002214)
147#define VIDGAM6 __REG_2700G(0x00002218)
148#define VIDGAM7 __REG_2700G(0x0000221c)
149#define VIDGAM8 __REG_2700G(0x00002220)
150#define VIDGAM9 __REG_2700G(0x00002224)
151#define VIDGAM10 __REG_2700G(0x00002228)
152#define VIDGAM11 __REG_2700G(0x0000222c)
153#define VIDGAM12 __REG_2700G(0x00002230)
154#define VIDGAM13 __REG_2700G(0x00002234)
155#define VIDGAM14 __REG_2700G(0x00002238)
156#define VIDGAM15 __REG_2700G(0x0000223c)
157#define VIDGAM16 __REG_2700G(0x00002240)
158
159/* 0x0000_2250 */
160/* 0x0000_2290 GFXGAM[0:16] Graphics Gamma LUT Index [0:16] 4.15.3 */
161#define GFXGAM0 __REG_2700G(0x00002250)
162#define GFXGAM1 __REG_2700G(0x00002254)
163#define GFXGAM2 __REG_2700G(0x00002258)
164#define GFXGAM3 __REG_2700G(0x0000225c)
165#define GFXGAM4 __REG_2700G(0x00002260)
166#define GFXGAM5 __REG_2700G(0x00002264)
167#define GFXGAM6 __REG_2700G(0x00002268)
168#define GFXGAM7 __REG_2700G(0x0000226c)
169#define GFXGAM8 __REG_2700G(0x00002270)
170#define GFXGAM9 __REG_2700G(0x00002274)
171#define GFXGAM10 __REG_2700G(0x00002278)
172#define GFXGAM11 __REG_2700G(0x0000227c)
173#define GFXGAM12 __REG_2700G(0x00002280)
174#define GFXGAM13 __REG_2700G(0x00002284)
175#define GFXGAM14 __REG_2700G(0x00002288)
176#define GFXGAM15 __REG_2700G(0x0000228c)
177#define GFXGAM16 __REG_2700G(0x00002290)
178
179#define DLSTS __REG_2700G(0x00002300)
180#define DLLCTRL __REG_2700G(0x00002304)
181#define DVLNUM __REG_2700G(0x00002308)
182#define DUCTRL __REG_2700G(0x0000230c)
183#define DVECTRL __REG_2700G(0x00002310)
184#define DHDET __REG_2700G(0x00002314)
185#define DVDET __REG_2700G(0x00002318)
186#define DODMSK __REG_2700G(0x0000231c)
187#define CSC01 __REG_2700G(0x00002330)
188#define CSC02 __REG_2700G(0x00002334)
189#define CSC03 __REG_2700G(0x00002338)
190#define CSC04 __REG_2700G(0x0000233c)
191#define CSC05 __REG_2700G(0x00002340)
192
193#define FB_MEMORY_START __REG_2700G(0x00060000)
194
195#endif /* __REGS_2700G_ */
diff --git a/drivers/w1/masters/ds2482.c b/drivers/w1/masters/ds2482.c
index af492cc48db2..d93eb626b2f0 100644
--- a/drivers/w1/masters/ds2482.c
+++ b/drivers/w1/masters/ds2482.c
@@ -218,7 +218,7 @@ static int ds2482_wait_1wire_idle(struct ds2482_data *pdev)
218 do { 218 do {
219 temp = i2c_smbus_read_byte(&pdev->client); 219 temp = i2c_smbus_read_byte(&pdev->client);
220 } while ((temp >= 0) && (temp & DS2482_REG_STS_1WB) && 220 } while ((temp >= 0) && (temp & DS2482_REG_STS_1WB) &&
221 (++retries > DS2482_WAIT_IDLE_TIMEOUT)); 221 (++retries < DS2482_WAIT_IDLE_TIMEOUT));
222 } 222 }
223 223
224 if (retries > DS2482_WAIT_IDLE_TIMEOUT) 224 if (retries > DS2482_WAIT_IDLE_TIMEOUT)
diff --git a/drivers/w1/w1_io.h b/drivers/w1/w1_io.h
deleted file mode 100644
index 9a76d2ad69c5..000000000000
--- a/drivers/w1/w1_io.h
+++ /dev/null
@@ -1,36 +0,0 @@
1/*
2 * w1_io.h
3 *
4 * Copyright (c) 2004 Evgeniy Polyakov <johnpol@2ka.mipt.ru>
5 *
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 */
21
22#ifndef __W1_IO_H
23#define __W1_IO_H
24
25#include "w1.h"
26
27u8 w1_triplet(struct w1_master *dev, int bdir);
28void w1_write_8(struct w1_master *, u8);
29int w1_reset_bus(struct w1_master *);
30u8 w1_calc_crc8(u8 *, int);
31void w1_write_block(struct w1_master *, const u8 *, int);
32u8 w1_read_block(struct w1_master *, u8 *, int);
33void w1_search_devices(struct w1_master *dev, w1_slave_found_callback cb);
34int w1_reset_select_slave(struct w1_slave *sl);
35
36#endif /* __W1_IO_H */
diff --git a/fs/Kconfig b/fs/Kconfig
index 53f5c6d61121..3f00a9faabcb 100644
--- a/fs/Kconfig
+++ b/fs/Kconfig
@@ -1801,6 +1801,7 @@ config CIFS_POSIX
1801 1801
1802config CIFS_DEBUG2 1802config CIFS_DEBUG2
1803 bool "Enable additional CIFS debugging routines" 1803 bool "Enable additional CIFS debugging routines"
1804 depends on CIFS
1804 help 1805 help
1805 Enabling this option adds a few more debugging routines 1806 Enabling this option adds a few more debugging routines
1806 to the cifs code which slightly increases the size of 1807 to the cifs code which slightly increases the size of
diff --git a/fs/char_dev.c b/fs/char_dev.c
index a4cbc6706ef0..3483d3cf8087 100644
--- a/fs/char_dev.c
+++ b/fs/char_dev.c
@@ -182,6 +182,28 @@ int alloc_chrdev_region(dev_t *dev, unsigned baseminor, unsigned count,
182 return 0; 182 return 0;
183} 183}
184 184
185/**
186 * register_chrdev() - Register a major number for character devices.
187 * @major: major device number or 0 for dynamic allocation
188 * @name: name of this range of devices
189 * @fops: file operations associated with this devices
190 *
191 * If @major == 0 this functions will dynamically allocate a major and return
192 * its number.
193 *
194 * If @major > 0 this function will attempt to reserve a device with the given
195 * major number and will return zero on success.
196 *
197 * Returns a -ve errno on failure.
198 *
199 * The name of this device has nothing to do with the name of the device in
200 * /dev. It only helps to keep track of the different owners of devices. If
201 * your module name has only one type of devices it's ok to use e.g. the name
202 * of the module here.
203 *
204 * This function registers a range of 256 minor numbers. The first minor number
205 * is 0.
206 */
185int register_chrdev(unsigned int major, const char *name, 207int register_chrdev(unsigned int major, const char *name,
186 const struct file_operations *fops) 208 const struct file_operations *fops)
187{ 209{
diff --git a/fs/file.c b/fs/file.c
index 3f356086061d..b3c6b82e6a9d 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -240,7 +240,7 @@ static struct fdtable *alloc_fdtable(int nr)
240 if (!fdt) 240 if (!fdt)
241 goto out; 241 goto out;
242 242
243 nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nfds)); 243 nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nr + 1));
244 if (nfds > NR_OPEN) 244 if (nfds > NR_OPEN)
245 nfds = NR_OPEN; 245 nfds = NR_OPEN;
246 246
@@ -273,11 +273,13 @@ static struct fdtable *alloc_fdtable(int nr)
273 } while (nfds <= nr); 273 } while (nfds <= nr);
274 new_fds = alloc_fd_array(nfds); 274 new_fds = alloc_fd_array(nfds);
275 if (!new_fds) 275 if (!new_fds)
276 goto out; 276 goto out2;
277 fdt->fd = new_fds; 277 fdt->fd = new_fds;
278 fdt->max_fds = nfds; 278 fdt->max_fds = nfds;
279 fdt->free_files = NULL; 279 fdt->free_files = NULL;
280 return fdt; 280 return fdt;
281out2:
282 nfds = fdt->max_fdset;
281out: 283out:
282 if (new_openset) 284 if (new_openset)
283 free_fdset(new_openset, nfds); 285 free_fdset(new_openset, nfds);
diff --git a/fs/jfs/jfs_txnmgr.c b/fs/jfs/jfs_txnmgr.c
index 10c46231ce15..efbb586bed4b 100644
--- a/fs/jfs/jfs_txnmgr.c
+++ b/fs/jfs/jfs_txnmgr.c
@@ -2944,7 +2944,7 @@ int jfs_sync(void *arg)
2944 * Inode is being freed 2944 * Inode is being freed
2945 */ 2945 */
2946 list_del_init(&jfs_ip->anon_inode_list); 2946 list_del_init(&jfs_ip->anon_inode_list);
2947 } else if (! !mutex_trylock(&jfs_ip->commit_mutex)) { 2947 } else if (mutex_trylock(&jfs_ip->commit_mutex)) {
2948 /* 2948 /*
2949 * inode will be removed from anonymous list 2949 * inode will be removed from anonymous list
2950 * when it is committed 2950 * when it is committed
diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c
index 09ea03f62277..295268ad231b 100644
--- a/fs/jfs/namei.c
+++ b/fs/jfs/namei.c
@@ -165,8 +165,8 @@ static int jfs_create(struct inode *dip, struct dentry *dentry, int mode,
165 165
166 out3: 166 out3:
167 txEnd(tid); 167 txEnd(tid);
168 mutex_unlock(&JFS_IP(dip)->commit_mutex);
169 mutex_unlock(&JFS_IP(ip)->commit_mutex); 168 mutex_unlock(&JFS_IP(ip)->commit_mutex);
169 mutex_unlock(&JFS_IP(dip)->commit_mutex);
170 if (rc) { 170 if (rc) {
171 free_ea_wmap(ip); 171 free_ea_wmap(ip);
172 ip->i_nlink = 0; 172 ip->i_nlink = 0;
@@ -300,8 +300,8 @@ static int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode)
300 300
301 out3: 301 out3:
302 txEnd(tid); 302 txEnd(tid);
303 mutex_unlock(&JFS_IP(dip)->commit_mutex);
304 mutex_unlock(&JFS_IP(ip)->commit_mutex); 303 mutex_unlock(&JFS_IP(ip)->commit_mutex);
304 mutex_unlock(&JFS_IP(dip)->commit_mutex);
305 if (rc) { 305 if (rc) {
306 free_ea_wmap(ip); 306 free_ea_wmap(ip);
307 ip->i_nlink = 0; 307 ip->i_nlink = 0;
@@ -384,8 +384,8 @@ static int jfs_rmdir(struct inode *dip, struct dentry *dentry)
384 if (rc == -EIO) 384 if (rc == -EIO)
385 txAbort(tid, 1); 385 txAbort(tid, 1);
386 txEnd(tid); 386 txEnd(tid);
387 mutex_unlock(&JFS_IP(dip)->commit_mutex);
388 mutex_unlock(&JFS_IP(ip)->commit_mutex); 387 mutex_unlock(&JFS_IP(ip)->commit_mutex);
388 mutex_unlock(&JFS_IP(dip)->commit_mutex);
389 389
390 goto out2; 390 goto out2;
391 } 391 }
@@ -422,8 +422,8 @@ static int jfs_rmdir(struct inode *dip, struct dentry *dentry)
422 422
423 txEnd(tid); 423 txEnd(tid);
424 424
425 mutex_unlock(&JFS_IP(dip)->commit_mutex);
426 mutex_unlock(&JFS_IP(ip)->commit_mutex); 425 mutex_unlock(&JFS_IP(ip)->commit_mutex);
426 mutex_unlock(&JFS_IP(dip)->commit_mutex);
427 427
428 /* 428 /*
429 * Truncating the directory index table is not guaranteed. It 429 * Truncating the directory index table is not guaranteed. It
@@ -503,8 +503,8 @@ static int jfs_unlink(struct inode *dip, struct dentry *dentry)
503 if (rc == -EIO) 503 if (rc == -EIO)
504 txAbort(tid, 1); /* Marks FS Dirty */ 504 txAbort(tid, 1); /* Marks FS Dirty */
505 txEnd(tid); 505 txEnd(tid);
506 mutex_unlock(&JFS_IP(dip)->commit_mutex);
507 mutex_unlock(&JFS_IP(ip)->commit_mutex); 506 mutex_unlock(&JFS_IP(ip)->commit_mutex);
507 mutex_unlock(&JFS_IP(dip)->commit_mutex);
508 IWRITE_UNLOCK(ip); 508 IWRITE_UNLOCK(ip);
509 goto out1; 509 goto out1;
510 } 510 }
@@ -527,8 +527,8 @@ static int jfs_unlink(struct inode *dip, struct dentry *dentry)
527 if ((new_size = commitZeroLink(tid, ip)) < 0) { 527 if ((new_size = commitZeroLink(tid, ip)) < 0) {
528 txAbort(tid, 1); /* Marks FS Dirty */ 528 txAbort(tid, 1); /* Marks FS Dirty */
529 txEnd(tid); 529 txEnd(tid);
530 mutex_unlock(&JFS_IP(dip)->commit_mutex);
531 mutex_unlock(&JFS_IP(ip)->commit_mutex); 530 mutex_unlock(&JFS_IP(ip)->commit_mutex);
531 mutex_unlock(&JFS_IP(dip)->commit_mutex);
532 IWRITE_UNLOCK(ip); 532 IWRITE_UNLOCK(ip);
533 rc = new_size; 533 rc = new_size;
534 goto out1; 534 goto out1;
@@ -556,9 +556,8 @@ static int jfs_unlink(struct inode *dip, struct dentry *dentry)
556 556
557 txEnd(tid); 557 txEnd(tid);
558 558
559 mutex_unlock(&JFS_IP(dip)->commit_mutex);
560 mutex_unlock(&JFS_IP(ip)->commit_mutex); 559 mutex_unlock(&JFS_IP(ip)->commit_mutex);
561 560 mutex_unlock(&JFS_IP(dip)->commit_mutex);
562 561
563 while (new_size && (rc == 0)) { 562 while (new_size && (rc == 0)) {
564 tid = txBegin(dip->i_sb, 0); 563 tid = txBegin(dip->i_sb, 0);
@@ -847,8 +846,8 @@ static int jfs_link(struct dentry *old_dentry,
847 out: 846 out:
848 txEnd(tid); 847 txEnd(tid);
849 848
850 mutex_unlock(&JFS_IP(dir)->commit_mutex);
851 mutex_unlock(&JFS_IP(ip)->commit_mutex); 849 mutex_unlock(&JFS_IP(ip)->commit_mutex);
850 mutex_unlock(&JFS_IP(dir)->commit_mutex);
852 851
853 jfs_info("jfs_link: rc:%d", rc); 852 jfs_info("jfs_link: rc:%d", rc);
854 return rc; 853 return rc;
@@ -1037,8 +1036,8 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry,
1037 1036
1038 out3: 1037 out3:
1039 txEnd(tid); 1038 txEnd(tid);
1040 mutex_unlock(&JFS_IP(dip)->commit_mutex);
1041 mutex_unlock(&JFS_IP(ip)->commit_mutex); 1039 mutex_unlock(&JFS_IP(ip)->commit_mutex);
1040 mutex_unlock(&JFS_IP(dip)->commit_mutex);
1042 if (rc) { 1041 if (rc) {
1043 free_ea_wmap(ip); 1042 free_ea_wmap(ip);
1044 ip->i_nlink = 0; 1043 ip->i_nlink = 0;
@@ -1160,10 +1159,11 @@ static int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
1160 if (S_ISDIR(new_ip->i_mode)) { 1159 if (S_ISDIR(new_ip->i_mode)) {
1161 new_ip->i_nlink--; 1160 new_ip->i_nlink--;
1162 if (new_ip->i_nlink) { 1161 if (new_ip->i_nlink) {
1163 mutex_unlock(&JFS_IP(new_dir)->commit_mutex); 1162 mutex_unlock(&JFS_IP(new_ip)->commit_mutex);
1164 mutex_unlock(&JFS_IP(old_ip)->commit_mutex);
1165 if (old_dir != new_dir) 1163 if (old_dir != new_dir)
1166 mutex_unlock(&JFS_IP(old_dir)->commit_mutex); 1164 mutex_unlock(&JFS_IP(old_dir)->commit_mutex);
1165 mutex_unlock(&JFS_IP(old_ip)->commit_mutex);
1166 mutex_unlock(&JFS_IP(new_dir)->commit_mutex);
1167 if (!S_ISDIR(old_ip->i_mode) && new_ip) 1167 if (!S_ISDIR(old_ip->i_mode) && new_ip)
1168 IWRITE_UNLOCK(new_ip); 1168 IWRITE_UNLOCK(new_ip);
1169 jfs_error(new_ip->i_sb, 1169 jfs_error(new_ip->i_sb,
@@ -1281,13 +1281,12 @@ static int jfs_rename(struct inode *old_dir, struct dentry *old_dentry,
1281 1281
1282 out4: 1282 out4:
1283 txEnd(tid); 1283 txEnd(tid);
1284
1285 mutex_unlock(&JFS_IP(new_dir)->commit_mutex);
1286 mutex_unlock(&JFS_IP(old_ip)->commit_mutex);
1287 if (old_dir != new_dir)
1288 mutex_unlock(&JFS_IP(old_dir)->commit_mutex);
1289 if (new_ip) 1284 if (new_ip)
1290 mutex_unlock(&JFS_IP(new_ip)->commit_mutex); 1285 mutex_unlock(&JFS_IP(new_ip)->commit_mutex);
1286 if (old_dir != new_dir)
1287 mutex_unlock(&JFS_IP(old_dir)->commit_mutex);
1288 mutex_unlock(&JFS_IP(old_ip)->commit_mutex);
1289 mutex_unlock(&JFS_IP(new_dir)->commit_mutex);
1291 1290
1292 while (new_size && (rc == 0)) { 1291 while (new_size && (rc == 0)) {
1293 tid = txBegin(new_ip->i_sb, 0); 1292 tid = txBegin(new_ip->i_sb, 0);
diff --git a/fs/namei.c b/fs/namei.c
index c9750d755aff..e01070d7bf58 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -1712,8 +1712,14 @@ do_link:
1712 if (error) 1712 if (error)
1713 goto exit_dput; 1713 goto exit_dput;
1714 error = __do_follow_link(&path, nd); 1714 error = __do_follow_link(&path, nd);
1715 if (error) 1715 if (error) {
1716 /* Does someone understand code flow here? Or it is only
1717 * me so stupid? Anathema to whoever designed this non-sense
1718 * with "intent.open".
1719 */
1720 release_open_intent(nd);
1716 return error; 1721 return error;
1722 }
1717 nd->flags &= ~LOOKUP_PARENT; 1723 nd->flags &= ~LOOKUP_PARENT;
1718 if (nd->last_type == LAST_BIND) 1724 if (nd->last_type == LAST_BIND)
1719 goto ok; 1725 goto ok;
diff --git a/fs/proc/array.c b/fs/proc/array.c
index 7495d3e20775..0b615d62a159 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -74,6 +74,7 @@
74#include <linux/times.h> 74#include <linux/times.h>
75#include <linux/cpuset.h> 75#include <linux/cpuset.h>
76#include <linux/rcupdate.h> 76#include <linux/rcupdate.h>
77#include <linux/delayacct.h>
77 78
78#include <asm/uaccess.h> 79#include <asm/uaccess.h>
79#include <asm/pgtable.h> 80#include <asm/pgtable.h>
@@ -411,7 +412,7 @@ static int do_task_stat(struct task_struct *task, char * buffer, int whole)
411 412
412 res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \ 413 res = sprintf(buffer,"%d (%s) %c %d %d %d %d %d %lu %lu \
413%lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \ 414%lu %lu %lu %lu %lu %ld %ld %ld %ld %d 0 %llu %lu %ld %lu %lu %lu %lu %lu \
414%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu\n", 415%lu %lu %lu %lu %lu %lu %lu %lu %d %d %lu %lu %llu\n",
415 task->pid, 416 task->pid,
416 tcomm, 417 tcomm,
417 state, 418 state,
@@ -455,7 +456,8 @@ static int do_task_stat(struct task_struct *task, char * buffer, int whole)
455 task->exit_signal, 456 task->exit_signal,
456 task_cpu(task), 457 task_cpu(task),
457 task->rt_priority, 458 task->rt_priority,
458 task->policy); 459 task->policy,
460 (unsigned long long)delayacct_blkio_ticks(task));
459 if(mm) 461 if(mm)
460 mmput(mm); 462 mmput(mm);
461 return res; 463 return res;
diff --git a/fs/proc/base.c b/fs/proc/base.c
index 243a94af0427..fe8d55fb17cc 100644
--- a/fs/proc/base.c
+++ b/fs/proc/base.c
@@ -551,6 +551,27 @@ static int proc_fd_access_allowed(struct inode *inode)
551 return allowed; 551 return allowed;
552} 552}
553 553
554static int proc_setattr(struct dentry *dentry, struct iattr *attr)
555{
556 int error;
557 struct inode *inode = dentry->d_inode;
558
559 if (attr->ia_valid & ATTR_MODE)
560 return -EPERM;
561
562 error = inode_change_ok(inode, attr);
563 if (!error) {
564 error = security_inode_setattr(dentry, attr);
565 if (!error)
566 error = inode_setattr(inode, attr);
567 }
568 return error;
569}
570
571static struct inode_operations proc_def_inode_operations = {
572 .setattr = proc_setattr,
573};
574
554extern struct seq_operations mounts_op; 575extern struct seq_operations mounts_op;
555struct proc_mounts { 576struct proc_mounts {
556 struct seq_file m; 577 struct seq_file m;
@@ -1111,7 +1132,8 @@ out:
1111 1132
1112static struct inode_operations proc_pid_link_inode_operations = { 1133static struct inode_operations proc_pid_link_inode_operations = {
1113 .readlink = proc_pid_readlink, 1134 .readlink = proc_pid_readlink,
1114 .follow_link = proc_pid_follow_link 1135 .follow_link = proc_pid_follow_link,
1136 .setattr = proc_setattr,
1115}; 1137};
1116 1138
1117static int proc_readfd(struct file * filp, void * dirent, filldir_t filldir) 1139static int proc_readfd(struct file * filp, void * dirent, filldir_t filldir)
@@ -1285,6 +1307,7 @@ static struct inode *proc_pid_make_inode(struct super_block * sb, struct task_st
1285 ei = PROC_I(inode); 1307 ei = PROC_I(inode);
1286 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; 1308 inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME;
1287 inode->i_ino = fake_ino(task->pid, ino); 1309 inode->i_ino = fake_ino(task->pid, ino);
1310 inode->i_op = &proc_def_inode_operations;
1288 1311
1289 /* 1312 /*
1290 * grab the reference to task. 1313 * grab the reference to task.
@@ -1339,6 +1362,7 @@ static int pid_revalidate(struct dentry *dentry, struct nameidata *nd)
1339 inode->i_uid = 0; 1362 inode->i_uid = 0;
1340 inode->i_gid = 0; 1363 inode->i_gid = 0;
1341 } 1364 }
1365 inode->i_mode &= ~(S_ISUID | S_ISGID);
1342 security_task_to_inode(task, inode); 1366 security_task_to_inode(task, inode);
1343 put_task_struct(task); 1367 put_task_struct(task);
1344 return 1; 1368 return 1;
@@ -1389,6 +1413,7 @@ static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd)
1389 inode->i_uid = 0; 1413 inode->i_uid = 0;
1390 inode->i_gid = 0; 1414 inode->i_gid = 0;
1391 } 1415 }
1416 inode->i_mode &= ~(S_ISUID | S_ISGID);
1392 security_task_to_inode(task, inode); 1417 security_task_to_inode(task, inode);
1393 put_task_struct(task); 1418 put_task_struct(task);
1394 return 1; 1419 return 1;
@@ -1527,11 +1552,13 @@ static struct file_operations proc_task_operations = {
1527 */ 1552 */
1528static struct inode_operations proc_fd_inode_operations = { 1553static struct inode_operations proc_fd_inode_operations = {
1529 .lookup = proc_lookupfd, 1554 .lookup = proc_lookupfd,
1555 .setattr = proc_setattr,
1530}; 1556};
1531 1557
1532static struct inode_operations proc_task_inode_operations = { 1558static struct inode_operations proc_task_inode_operations = {
1533 .lookup = proc_task_lookup, 1559 .lookup = proc_task_lookup,
1534 .getattr = proc_task_getattr, 1560 .getattr = proc_task_getattr,
1561 .setattr = proc_setattr,
1535}; 1562};
1536 1563
1537#ifdef CONFIG_SECURITY 1564#ifdef CONFIG_SECURITY
@@ -1845,11 +1872,13 @@ static struct file_operations proc_tid_base_operations = {
1845static struct inode_operations proc_tgid_base_inode_operations = { 1872static struct inode_operations proc_tgid_base_inode_operations = {
1846 .lookup = proc_tgid_base_lookup, 1873 .lookup = proc_tgid_base_lookup,
1847 .getattr = pid_getattr, 1874 .getattr = pid_getattr,
1875 .setattr = proc_setattr,
1848}; 1876};
1849 1877
1850static struct inode_operations proc_tid_base_inode_operations = { 1878static struct inode_operations proc_tid_base_inode_operations = {
1851 .lookup = proc_tid_base_lookup, 1879 .lookup = proc_tid_base_lookup,
1852 .getattr = pid_getattr, 1880 .getattr = pid_getattr,
1881 .setattr = proc_setattr,
1853}; 1882};
1854 1883
1855#ifdef CONFIG_SECURITY 1884#ifdef CONFIG_SECURITY
@@ -1892,11 +1921,13 @@ static struct dentry *proc_tid_attr_lookup(struct inode *dir,
1892static struct inode_operations proc_tgid_attr_inode_operations = { 1921static struct inode_operations proc_tgid_attr_inode_operations = {
1893 .lookup = proc_tgid_attr_lookup, 1922 .lookup = proc_tgid_attr_lookup,
1894 .getattr = pid_getattr, 1923 .getattr = pid_getattr,
1924 .setattr = proc_setattr,
1895}; 1925};
1896 1926
1897static struct inode_operations proc_tid_attr_inode_operations = { 1927static struct inode_operations proc_tid_attr_inode_operations = {
1898 .lookup = proc_tid_attr_lookup, 1928 .lookup = proc_tid_attr_lookup,
1899 .getattr = pid_getattr, 1929 .getattr = pid_getattr,
1930 .setattr = proc_setattr,
1900}; 1931};
1901#endif 1932#endif
1902 1933
diff --git a/fs/proc/inode.c b/fs/proc/inode.c
index 6dcef089e18e..49dfb2ab783e 100644
--- a/fs/proc/inode.c
+++ b/fs/proc/inode.c
@@ -192,7 +192,7 @@ int proc_fill_super(struct super_block *s, void *data, int silent)
192{ 192{
193 struct inode * root_inode; 193 struct inode * root_inode;
194 194
195 s->s_flags |= MS_NODIRATIME; 195 s->s_flags |= MS_NODIRATIME | MS_NOSUID | MS_NOEXEC;
196 s->s_blocksize = 1024; 196 s->s_blocksize = 1024;
197 s->s_blocksize_bits = 10; 197 s->s_blocksize_bits = 10;
198 s->s_magic = PROC_SUPER_MAGIC; 198 s->s_magic = PROC_SUPER_MAGIC;
diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
index 8d6d85d7400f..6a984f64edd7 100644
--- a/fs/proc/kcore.c
+++ b/fs/proc/kcore.c
@@ -382,7 +382,7 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
382 */ 382 */
383 if (n) { 383 if (n) {
384 if (clear_user(buffer + tsz - n, 384 if (clear_user(buffer + tsz - n,
385 tsz - n)) 385 n))
386 return -EFAULT; 386 return -EFAULT;
387 } 387 }
388 } else { 388 } else {
diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
index 5d8a8cfebc70..c533ec1bcaec 100644
--- a/fs/reiserfs/procfs.c
+++ b/fs/reiserfs/procfs.c
@@ -492,9 +492,17 @@ static void add_file(struct super_block *sb, char *name,
492 492
493int reiserfs_proc_info_init(struct super_block *sb) 493int reiserfs_proc_info_init(struct super_block *sb)
494{ 494{
495 char b[BDEVNAME_SIZE];
496 char *s;
497
498 /* Some block devices use /'s */
499 strlcpy(b, reiserfs_bdevname(sb), BDEVNAME_SIZE);
500 s = strchr(b, '/');
501 if (s)
502 *s = '!';
503
495 spin_lock_init(&__PINFO(sb).lock); 504 spin_lock_init(&__PINFO(sb).lock);
496 REISERFS_SB(sb)->procdir = 505 REISERFS_SB(sb)->procdir = proc_mkdir(b, proc_info_root);
497 proc_mkdir(reiserfs_bdevname(sb), proc_info_root);
498 if (REISERFS_SB(sb)->procdir) { 506 if (REISERFS_SB(sb)->procdir) {
499 REISERFS_SB(sb)->procdir->owner = THIS_MODULE; 507 REISERFS_SB(sb)->procdir->owner = THIS_MODULE;
500 REISERFS_SB(sb)->procdir->data = sb; 508 REISERFS_SB(sb)->procdir->data = sb;
@@ -508,13 +516,22 @@ int reiserfs_proc_info_init(struct super_block *sb)
508 return 0; 516 return 0;
509 } 517 }
510 reiserfs_warning(sb, "reiserfs: cannot create /proc/%s/%s", 518 reiserfs_warning(sb, "reiserfs: cannot create /proc/%s/%s",
511 proc_info_root_name, reiserfs_bdevname(sb)); 519 proc_info_root_name, b);
512 return 1; 520 return 1;
513} 521}
514 522
515int reiserfs_proc_info_done(struct super_block *sb) 523int reiserfs_proc_info_done(struct super_block *sb)
516{ 524{
517 struct proc_dir_entry *de = REISERFS_SB(sb)->procdir; 525 struct proc_dir_entry *de = REISERFS_SB(sb)->procdir;
526 char b[BDEVNAME_SIZE];
527 char *s;
528
529 /* Some block devices use /'s */
530 strlcpy(b, reiserfs_bdevname(sb), BDEVNAME_SIZE);
531 s = strchr(b, '/');
532 if (s)
533 *s = '!';
534
518 if (de) { 535 if (de) {
519 remove_proc_entry("journal", de); 536 remove_proc_entry("journal", de);
520 remove_proc_entry("oidmap", de); 537 remove_proc_entry("oidmap", de);
@@ -528,7 +545,7 @@ int reiserfs_proc_info_done(struct super_block *sb)
528 __PINFO(sb).exiting = 1; 545 __PINFO(sb).exiting = 1;
529 spin_unlock(&__PINFO(sb).lock); 546 spin_unlock(&__PINFO(sb).lock);
530 if (proc_info_root) { 547 if (proc_info_root) {
531 remove_proc_entry(reiserfs_bdevname(sb), proc_info_root); 548 remove_proc_entry(b, proc_info_root);
532 REISERFS_SB(sb)->procdir = NULL; 549 REISERFS_SB(sb)->procdir = NULL;
533 } 550 }
534 return 0; 551 return 0;
diff --git a/fs/splice.c b/fs/splice.c
index 05fd2787be98..684bca3d3a10 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -1307,6 +1307,85 @@ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in,
1307} 1307}
1308 1308
1309/* 1309/*
1310 * Make sure there's data to read. Wait for input if we can, otherwise
1311 * return an appropriate error.
1312 */
1313static int link_ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1314{
1315 int ret;
1316
1317 /*
1318 * Check ->nrbufs without the inode lock first. This function
1319 * is speculative anyways, so missing one is ok.
1320 */
1321 if (pipe->nrbufs)
1322 return 0;
1323
1324 ret = 0;
1325 mutex_lock(&pipe->inode->i_mutex);
1326
1327 while (!pipe->nrbufs) {
1328 if (signal_pending(current)) {
1329 ret = -ERESTARTSYS;
1330 break;
1331 }
1332 if (!pipe->writers)
1333 break;
1334 if (!pipe->waiting_writers) {
1335 if (flags & SPLICE_F_NONBLOCK) {
1336 ret = -EAGAIN;
1337 break;
1338 }
1339 }
1340 pipe_wait(pipe);
1341 }
1342
1343 mutex_unlock(&pipe->inode->i_mutex);
1344 return ret;
1345}
1346
1347/*
1348 * Make sure there's writeable room. Wait for room if we can, otherwise
1349 * return an appropriate error.
1350 */
1351static int link_opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
1352{
1353 int ret;
1354
1355 /*
1356 * Check ->nrbufs without the inode lock first. This function
1357 * is speculative anyways, so missing one is ok.
1358 */
1359 if (pipe->nrbufs < PIPE_BUFFERS)
1360 return 0;
1361
1362 ret = 0;
1363 mutex_lock(&pipe->inode->i_mutex);
1364
1365 while (pipe->nrbufs >= PIPE_BUFFERS) {
1366 if (!pipe->readers) {
1367 send_sig(SIGPIPE, current, 0);
1368 ret = -EPIPE;
1369 break;
1370 }
1371 if (flags & SPLICE_F_NONBLOCK) {
1372 ret = -EAGAIN;
1373 break;
1374 }
1375 if (signal_pending(current)) {
1376 ret = -ERESTARTSYS;
1377 break;
1378 }
1379 pipe->waiting_writers++;
1380 pipe_wait(pipe);
1381 pipe->waiting_writers--;
1382 }
1383
1384 mutex_unlock(&pipe->inode->i_mutex);
1385 return ret;
1386}
1387
1388/*
1310 * Link contents of ipipe to opipe. 1389 * Link contents of ipipe to opipe.
1311 */ 1390 */
1312static int link_pipe(struct pipe_inode_info *ipipe, 1391static int link_pipe(struct pipe_inode_info *ipipe,
@@ -1314,9 +1393,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
1314 size_t len, unsigned int flags) 1393 size_t len, unsigned int flags)
1315{ 1394{
1316 struct pipe_buffer *ibuf, *obuf; 1395 struct pipe_buffer *ibuf, *obuf;
1317 int ret, do_wakeup, i, ipipe_first; 1396 int ret = 0, i = 0, nbuf;
1318
1319 ret = do_wakeup = ipipe_first = 0;
1320 1397
1321 /* 1398 /*
1322 * Potential ABBA deadlock, work around it by ordering lock 1399 * Potential ABBA deadlock, work around it by ordering lock
@@ -1324,126 +1401,62 @@ static int link_pipe(struct pipe_inode_info *ipipe,
1324 * could deadlock (one doing tee from A -> B, the other from B -> A). 1401 * could deadlock (one doing tee from A -> B, the other from B -> A).
1325 */ 1402 */
1326 if (ipipe->inode < opipe->inode) { 1403 if (ipipe->inode < opipe->inode) {
1327 ipipe_first = 1; 1404 mutex_lock_nested(&ipipe->inode->i_mutex, I_MUTEX_PARENT);
1328 mutex_lock(&ipipe->inode->i_mutex); 1405 mutex_lock_nested(&opipe->inode->i_mutex, I_MUTEX_CHILD);
1329 mutex_lock(&opipe->inode->i_mutex);
1330 } else { 1406 } else {
1331 mutex_lock(&opipe->inode->i_mutex); 1407 mutex_lock_nested(&opipe->inode->i_mutex, I_MUTEX_PARENT);
1332 mutex_lock(&ipipe->inode->i_mutex); 1408 mutex_lock_nested(&ipipe->inode->i_mutex, I_MUTEX_CHILD);
1333 } 1409 }
1334 1410
1335 for (i = 0;; i++) { 1411 do {
1336 if (!opipe->readers) { 1412 if (!opipe->readers) {
1337 send_sig(SIGPIPE, current, 0); 1413 send_sig(SIGPIPE, current, 0);
1338 if (!ret) 1414 if (!ret)
1339 ret = -EPIPE; 1415 ret = -EPIPE;
1340 break; 1416 break;
1341 } 1417 }
1342 if (ipipe->nrbufs - i) {
1343 ibuf = ipipe->bufs + ((ipipe->curbuf + i) & (PIPE_BUFFERS - 1));
1344 1418
1345 /* 1419 /*
1346 * If we have room, fill this buffer 1420 * If we have iterated all input buffers or ran out of
1347 */ 1421 * output room, break.
1348 if (opipe->nrbufs < PIPE_BUFFERS) { 1422 */
1349 int nbuf = (opipe->curbuf + opipe->nrbufs) & (PIPE_BUFFERS - 1); 1423 if (i >= ipipe->nrbufs || opipe->nrbufs >= PIPE_BUFFERS)
1350 1424 break;
1351 /*
1352 * Get a reference to this pipe buffer,
1353 * so we can copy the contents over.
1354 */
1355 ibuf->ops->get(ipipe, ibuf);
1356
1357 obuf = opipe->bufs + nbuf;
1358 *obuf = *ibuf;
1359
1360 /*
1361 * Don't inherit the gift flag, we need to
1362 * prevent multiple steals of this page.
1363 */
1364 obuf->flags &= ~PIPE_BUF_FLAG_GIFT;
1365
1366 if (obuf->len > len)
1367 obuf->len = len;
1368
1369 opipe->nrbufs++;
1370 do_wakeup = 1;
1371 ret += obuf->len;
1372 len -= obuf->len;
1373
1374 if (!len)
1375 break;
1376 if (opipe->nrbufs < PIPE_BUFFERS)
1377 continue;
1378 }
1379
1380 /*
1381 * We have input available, but no output room.
1382 * If we already copied data, return that. If we
1383 * need to drop the opipe lock, it must be ordered
1384 * last to avoid deadlocks.
1385 */
1386 if ((flags & SPLICE_F_NONBLOCK) || !ipipe_first) {
1387 if (!ret)
1388 ret = -EAGAIN;
1389 break;
1390 }
1391 if (signal_pending(current)) {
1392 if (!ret)
1393 ret = -ERESTARTSYS;
1394 break;
1395 }
1396 if (do_wakeup) {
1397 smp_mb();
1398 if (waitqueue_active(&opipe->wait))
1399 wake_up_interruptible(&opipe->wait);
1400 kill_fasync(&opipe->fasync_readers, SIGIO, POLL_IN);
1401 do_wakeup = 0;
1402 }
1403 1425
1404 opipe->waiting_writers++; 1426 ibuf = ipipe->bufs + ((ipipe->curbuf + i) & (PIPE_BUFFERS - 1));
1405 pipe_wait(opipe); 1427 nbuf = (opipe->curbuf + opipe->nrbufs) & (PIPE_BUFFERS - 1);
1406 opipe->waiting_writers--;
1407 continue;
1408 }
1409 1428
1410 /* 1429 /*
1411 * No input buffers, do the usual checks for available 1430 * Get a reference to this pipe buffer,
1412 * writers and blocking and wait if necessary 1431 * so we can copy the contents over.
1413 */ 1432 */
1414 if (!ipipe->writers) 1433 ibuf->ops->get(ipipe, ibuf);
1415 break; 1434
1416 if (!ipipe->waiting_writers) { 1435 obuf = opipe->bufs + nbuf;
1417 if (ret) 1436 *obuf = *ibuf;
1418 break; 1437
1419 }
1420 /* 1438 /*
1421 * pipe_wait() drops the ipipe mutex. To avoid deadlocks 1439 * Don't inherit the gift flag, we need to
1422 * with another process, we can only safely do that if 1440 * prevent multiple steals of this page.
1423 * the ipipe lock is ordered last.
1424 */ 1441 */
1425 if ((flags & SPLICE_F_NONBLOCK) || ipipe_first) { 1442 obuf->flags &= ~PIPE_BUF_FLAG_GIFT;
1426 if (!ret)
1427 ret = -EAGAIN;
1428 break;
1429 }
1430 if (signal_pending(current)) {
1431 if (!ret)
1432 ret = -ERESTARTSYS;
1433 break;
1434 }
1435 1443
1436 if (waitqueue_active(&ipipe->wait)) 1444 if (obuf->len > len)
1437 wake_up_interruptible_sync(&ipipe->wait); 1445 obuf->len = len;
1438 kill_fasync(&ipipe->fasync_writers, SIGIO, POLL_OUT);
1439 1446
1440 pipe_wait(ipipe); 1447 opipe->nrbufs++;
1441 } 1448 ret += obuf->len;
1449 len -= obuf->len;
1450 i++;
1451 } while (len);
1442 1452
1443 mutex_unlock(&ipipe->inode->i_mutex); 1453 mutex_unlock(&ipipe->inode->i_mutex);
1444 mutex_unlock(&opipe->inode->i_mutex); 1454 mutex_unlock(&opipe->inode->i_mutex);
1445 1455
1446 if (do_wakeup) { 1456 /*
1457 * If we put data in the output pipe, wakeup any potential readers.
1458 */
1459 if (ret > 0) {
1447 smp_mb(); 1460 smp_mb();
1448 if (waitqueue_active(&opipe->wait)) 1461 if (waitqueue_active(&opipe->wait))
1449 wake_up_interruptible(&opipe->wait); 1462 wake_up_interruptible(&opipe->wait);
@@ -1464,14 +1477,29 @@ static long do_tee(struct file *in, struct file *out, size_t len,
1464{ 1477{
1465 struct pipe_inode_info *ipipe = in->f_dentry->d_inode->i_pipe; 1478 struct pipe_inode_info *ipipe = in->f_dentry->d_inode->i_pipe;
1466 struct pipe_inode_info *opipe = out->f_dentry->d_inode->i_pipe; 1479 struct pipe_inode_info *opipe = out->f_dentry->d_inode->i_pipe;
1480 int ret = -EINVAL;
1467 1481
1468 /* 1482 /*
1469 * Link ipipe to the two output pipes, consuming as we go along. 1483 * Duplicate the contents of ipipe to opipe without actually
1484 * copying the data.
1470 */ 1485 */
1471 if (ipipe && opipe) 1486 if (ipipe && opipe && ipipe != opipe) {
1472 return link_pipe(ipipe, opipe, len, flags); 1487 /*
1488 * Keep going, unless we encounter an error. The ipipe/opipe
1489 * ordering doesn't really matter.
1490 */
1491 ret = link_ipipe_prep(ipipe, flags);
1492 if (!ret) {
1493 ret = link_opipe_prep(opipe, flags);
1494 if (!ret) {
1495 ret = link_pipe(ipipe, opipe, len, flags);
1496 if (!ret && (flags & SPLICE_F_NONBLOCK))
1497 ret = -EAGAIN;
1498 }
1499 }
1500 }
1473 1501
1474 return -EINVAL; 1502 return ret;
1475} 1503}
1476 1504
1477asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags) 1505asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags)
diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
index 5e0e31cc46f5..9889e54e1f13 100644
--- a/fs/sysfs/inode.c
+++ b/fs/sysfs/inode.c
@@ -109,6 +109,17 @@ static inline void set_inode_attr(struct inode * inode, struct iattr * iattr)
109 inode->i_ctime = iattr->ia_ctime; 109 inode->i_ctime = iattr->ia_ctime;
110} 110}
111 111
112
113/*
114 * sysfs has a different i_mutex lock order behavior for i_mutex than other
115 * filesystems; sysfs i_mutex is called in many places with subsystem locks
116 * held. At the same time, many of the VFS locking rules do not apply to
117 * sysfs at all (cross directory rename for example). To untangle this mess
118 * (which gives false positives in lockdep), we're giving sysfs inodes their
119 * own class for i_mutex.
120 */
121static struct lock_class_key sysfs_inode_imutex_key;
122
112struct inode * sysfs_new_inode(mode_t mode, struct sysfs_dirent * sd) 123struct inode * sysfs_new_inode(mode_t mode, struct sysfs_dirent * sd)
113{ 124{
114 struct inode * inode = new_inode(sysfs_sb); 125 struct inode * inode = new_inode(sysfs_sb);
@@ -118,6 +129,7 @@ struct inode * sysfs_new_inode(mode_t mode, struct sysfs_dirent * sd)
118 inode->i_mapping->a_ops = &sysfs_aops; 129 inode->i_mapping->a_ops = &sysfs_aops;
119 inode->i_mapping->backing_dev_info = &sysfs_backing_dev_info; 130 inode->i_mapping->backing_dev_info = &sysfs_backing_dev_info;
120 inode->i_op = &sysfs_inode_operations; 131 inode->i_op = &sysfs_inode_operations;
132 lockdep_set_class(&inode->i_mutex, &sysfs_inode_imutex_key);
121 133
122 if (sd->s_iattr) { 134 if (sd->s_iattr) {
123 /* sysfs_dirent has non-default attributes 135 /* sysfs_dirent has non-default attributes
diff --git a/include/asm-alpha/barrier.h b/include/asm-alpha/barrier.h
index 681ff581afa5..384dc08d6f53 100644
--- a/include/asm-alpha/barrier.h
+++ b/include/asm-alpha/barrier.h
@@ -30,7 +30,4 @@ __asm__ __volatile__("mb": : :"memory")
30#define set_mb(var, value) \ 30#define set_mb(var, value) \
31do { var = value; mb(); } while (0) 31do { var = value; mb(); } while (0)
32 32
33#define set_wmb(var, value) \
34do { var = value; wmb(); } while (0)
35
36#endif /* __BARRIER_H */ 33#endif /* __BARRIER_H */
diff --git a/include/asm-arm/arch-versatile/platform.h b/include/asm-arm/arch-versatile/platform.h
index 72ef874567d5..2af9d7c9c63c 100644
--- a/include/asm-arm/arch-versatile/platform.h
+++ b/include/asm-arm/arch-versatile/platform.h
@@ -65,6 +65,8 @@
65#define VERSATILE_SYS_OSC1_OFFSET 0x1C 65#define VERSATILE_SYS_OSC1_OFFSET 0x1C
66#endif 66#endif
67 67
68#define VERSATILE_SYS_OSCCLCD_OFFSET 0x1c
69
68#define VERSATILE_SYS_LOCK_OFFSET 0x20 70#define VERSATILE_SYS_LOCK_OFFSET 0x20
69#define VERSATILE_SYS_100HZ_OFFSET 0x24 71#define VERSATILE_SYS_100HZ_OFFSET 0x24
70#define VERSATILE_SYS_CFGDATA1_OFFSET 0x28 72#define VERSATILE_SYS_CFGDATA1_OFFSET 0x28
diff --git a/include/asm-arm/system.h b/include/asm-arm/system.h
index 6001febfe63b..0947cbf9b69a 100644
--- a/include/asm-arm/system.h
+++ b/include/asm-arm/system.h
@@ -176,7 +176,6 @@ extern unsigned int user_debug;
176#define wmb() mb() 176#define wmb() mb()
177#define read_barrier_depends() do { } while(0) 177#define read_barrier_depends() do { } while(0)
178#define set_mb(var, value) do { var = value; mb(); } while (0) 178#define set_mb(var, value) do { var = value; mb(); } while (0)
179#define set_wmb(var, value) do { var = value; wmb(); } while (0)
180#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t"); 179#define nop() __asm__ __volatile__("mov\tr0,r0\t@ nop\n\t");
181 180
182/* 181/*
diff --git a/include/asm-arm26/system.h b/include/asm-arm26/system.h
index d1f69d706198..00ae32aa1dba 100644
--- a/include/asm-arm26/system.h
+++ b/include/asm-arm26/system.h
@@ -90,7 +90,6 @@ extern unsigned int user_debug;
90 90
91#define read_barrier_depends() do { } while(0) 91#define read_barrier_depends() do { } while(0)
92#define set_mb(var, value) do { var = value; mb(); } while (0) 92#define set_mb(var, value) do { var = value; mb(); } while (0)
93#define set_wmb(var, value) do { var = value; wmb(); } while (0)
94 93
95/* 94/*
96 * We assume knowledge of how 95 * We assume knowledge of how
diff --git a/include/asm-cris/system.h b/include/asm-cris/system.h
index b1c593b6dbff..b869f6161aaa 100644
--- a/include/asm-cris/system.h
+++ b/include/asm-cris/system.h
@@ -17,7 +17,6 @@ extern struct task_struct *resume(struct task_struct *prev, struct task_struct *
17#define wmb() mb() 17#define wmb() mb()
18#define read_barrier_depends() do { } while(0) 18#define read_barrier_depends() do { } while(0)
19#define set_mb(var, value) do { var = value; mb(); } while (0) 19#define set_mb(var, value) do { var = value; mb(); } while (0)
20#define set_wmb(var, value) do { var = value; wmb(); } while (0)
21 20
22#ifdef CONFIG_SMP 21#ifdef CONFIG_SMP
23#define smp_mb() mb() 22#define smp_mb() mb()
diff --git a/include/asm-frv/processor.h b/include/asm-frv/processor.h
index 1c4dba1c5f57..3744f2e47f48 100644
--- a/include/asm-frv/processor.h
+++ b/include/asm-frv/processor.h
@@ -21,6 +21,7 @@
21 */ 21 */
22#define current_text_addr() ({ __label__ _l; _l: &&_l;}) 22#define current_text_addr() ({ __label__ _l; _l: &&_l;})
23 23
24#include <linux/compiler.h>
24#include <linux/linkage.h> 25#include <linux/linkage.h>
25#include <asm/sections.h> 26#include <asm/sections.h>
26#include <asm/segment.h> 27#include <asm/segment.h>
@@ -139,7 +140,7 @@ unsigned long get_wchan(struct task_struct *p);
139extern struct task_struct *alloc_task_struct(void); 140extern struct task_struct *alloc_task_struct(void);
140extern void free_task_struct(struct task_struct *p); 141extern void free_task_struct(struct task_struct *p);
141 142
142#define cpu_relax() do { } while (0) 143#define cpu_relax() barrier()
143 144
144/* data cache prefetch */ 145/* data cache prefetch */
145#define ARCH_HAS_PREFETCH 146#define ARCH_HAS_PREFETCH
diff --git a/include/asm-frv/system.h b/include/asm-frv/system.h
index 351863dfd06e..1166899317d7 100644
--- a/include/asm-frv/system.h
+++ b/include/asm-frv/system.h
@@ -179,7 +179,6 @@ do { \
179#define rmb() asm volatile ("membar" : : :"memory") 179#define rmb() asm volatile ("membar" : : :"memory")
180#define wmb() asm volatile ("membar" : : :"memory") 180#define wmb() asm volatile ("membar" : : :"memory")
181#define set_mb(var, value) do { var = value; mb(); } while (0) 181#define set_mb(var, value) do { var = value; mb(); } while (0)
182#define set_wmb(var, value) do { var = value; wmb(); } while (0)
183 182
184#define smp_mb() mb() 183#define smp_mb() mb()
185#define smp_rmb() rmb() 184#define smp_rmb() rmb()
diff --git a/include/asm-generic/Kbuild.asm b/include/asm-generic/Kbuild.asm
index d8d0bcecd23f..6b16dda18115 100644
--- a/include/asm-generic/Kbuild.asm
+++ b/include/asm-generic/Kbuild.asm
@@ -1,11 +1,8 @@
1unifdef-y += a.out.h auxvec.h byteorder.h errno.h fcntl.h ioctl.h \ 1unifdef-y += a.out.h auxvec.h byteorder.h errno.h fcntl.h ioctl.h \
2 ioctls.h ipcbuf.h irq.h mman.h msgbuf.h param.h poll.h \ 2 ioctls.h ipcbuf.h mman.h msgbuf.h param.h poll.h \
3 posix_types.h ptrace.h resource.h sembuf.h shmbuf.h shmparam.h \ 3 posix_types.h ptrace.h resource.h sembuf.h shmbuf.h shmparam.h \
4 sigcontext.h siginfo.h signal.h socket.h sockios.h stat.h \ 4 sigcontext.h siginfo.h signal.h socket.h sockios.h stat.h \
5 statfs.h termbits.h termios.h timex.h types.h unistd.h user.h 5 statfs.h termbits.h termios.h timex.h types.h unistd.h user.h
6 6
7# These really shouldn't be exported
8unifdef-y += atomic.h io.h
9
10# These probably shouldn't be exported 7# These probably shouldn't be exported
11unifdef-y += elf.h page.h 8unifdef-y += elf.h page.h
diff --git a/include/asm-h8300/processor.h b/include/asm-h8300/processor.h
index c7e2f454b83a..99b664aa2083 100644
--- a/include/asm-h8300/processor.h
+++ b/include/asm-h8300/processor.h
@@ -17,6 +17,7 @@
17 */ 17 */
18#define current_text_addr() ({ __label__ _l; _l: &&_l;}) 18#define current_text_addr() ({ __label__ _l; _l: &&_l;})
19 19
20#include <linux/compiler.h>
20#include <asm/segment.h> 21#include <asm/segment.h>
21#include <asm/fpu.h> 22#include <asm/fpu.h>
22#include <asm/ptrace.h> 23#include <asm/ptrace.h>
@@ -129,6 +130,6 @@ unsigned long get_wchan(struct task_struct *p);
129 eip; }) 130 eip; })
130#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp) 131#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
131 132
132#define cpu_relax() do { } while (0) 133#define cpu_relax() barrier()
133 134
134#endif 135#endif
diff --git a/include/asm-h8300/system.h b/include/asm-h8300/system.h
index 134e0929fce5..5084a9d42922 100644
--- a/include/asm-h8300/system.h
+++ b/include/asm-h8300/system.h
@@ -84,7 +84,6 @@ asmlinkage void resume(void);
84#define wmb() asm volatile ("" : : :"memory") 84#define wmb() asm volatile ("" : : :"memory")
85#define set_rmb(var, value) do { xchg(&var, value); } while (0) 85#define set_rmb(var, value) do { xchg(&var, value); } while (0)
86#define set_mb(var, value) set_rmb(var, value) 86#define set_mb(var, value) set_rmb(var, value)
87#define set_wmb(var, value) do { var = value; wmb(); } while (0)
88 87
89#ifdef CONFIG_SMP 88#ifdef CONFIG_SMP
90#define smp_mb() mb() 89#define smp_mb() mb()
diff --git a/include/asm-i386/system.h b/include/asm-i386/system.h
index db398d88b1d9..49928eb33f8b 100644
--- a/include/asm-i386/system.h
+++ b/include/asm-i386/system.h
@@ -82,10 +82,6 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
82#define savesegment(seg, value) \ 82#define savesegment(seg, value) \
83 asm volatile("mov %%" #seg ",%0":"=rm" (value)) 83 asm volatile("mov %%" #seg ",%0":"=rm" (value))
84 84
85/*
86 * Clear and set 'TS' bit respectively
87 */
88#define clts() __asm__ __volatile__ ("clts")
89#define read_cr0() ({ \ 85#define read_cr0() ({ \
90 unsigned int __dummy; \ 86 unsigned int __dummy; \
91 __asm__ __volatile__( \ 87 __asm__ __volatile__( \
@@ -94,7 +90,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
94 __dummy; \ 90 __dummy; \
95}) 91})
96#define write_cr0(x) \ 92#define write_cr0(x) \
97 __asm__ __volatile__("movl %0,%%cr0": :"r" (x)); 93 __asm__ __volatile__("movl %0,%%cr0": :"r" (x))
98 94
99#define read_cr2() ({ \ 95#define read_cr2() ({ \
100 unsigned int __dummy; \ 96 unsigned int __dummy; \
@@ -104,7 +100,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
104 __dummy; \ 100 __dummy; \
105}) 101})
106#define write_cr2(x) \ 102#define write_cr2(x) \
107 __asm__ __volatile__("movl %0,%%cr2": :"r" (x)); 103 __asm__ __volatile__("movl %0,%%cr2": :"r" (x))
108 104
109#define read_cr3() ({ \ 105#define read_cr3() ({ \
110 unsigned int __dummy; \ 106 unsigned int __dummy; \
@@ -114,7 +110,7 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
114 __dummy; \ 110 __dummy; \
115}) 111})
116#define write_cr3(x) \ 112#define write_cr3(x) \
117 __asm__ __volatile__("movl %0,%%cr3": :"r" (x)); 113 __asm__ __volatile__("movl %0,%%cr3": :"r" (x))
118 114
119#define read_cr4() ({ \ 115#define read_cr4() ({ \
120 unsigned int __dummy; \ 116 unsigned int __dummy; \
@@ -123,7 +119,6 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
123 :"=r" (__dummy)); \ 119 :"=r" (__dummy)); \
124 __dummy; \ 120 __dummy; \
125}) 121})
126
127#define read_cr4_safe() ({ \ 122#define read_cr4_safe() ({ \
128 unsigned int __dummy; \ 123 unsigned int __dummy; \
129 /* This could fault if %cr4 does not exist */ \ 124 /* This could fault if %cr4 does not exist */ \
@@ -135,15 +130,19 @@ __asm__ __volatile__ ("movw %%dx,%1\n\t" \
135 : "=r" (__dummy): "0" (0)); \ 130 : "=r" (__dummy): "0" (0)); \
136 __dummy; \ 131 __dummy; \
137}) 132})
138
139#define write_cr4(x) \ 133#define write_cr4(x) \
140 __asm__ __volatile__("movl %0,%%cr4": :"r" (x)); 134 __asm__ __volatile__("movl %0,%%cr4": :"r" (x))
135
136/*
137 * Clear and set 'TS' bit respectively
138 */
139#define clts() __asm__ __volatile__ ("clts")
141#define stts() write_cr0(8 | read_cr0()) 140#define stts() write_cr0(8 | read_cr0())
142 141
143#endif /* __KERNEL__ */ 142#endif /* __KERNEL__ */
144 143
145#define wbinvd() \ 144#define wbinvd() \
146 __asm__ __volatile__ ("wbinvd": : :"memory"); 145 __asm__ __volatile__ ("wbinvd": : :"memory")
147 146
148static inline unsigned long get_limit(unsigned long segment) 147static inline unsigned long get_limit(unsigned long segment)
149{ 148{
@@ -454,8 +453,6 @@ static inline unsigned long long __cmpxchg64(volatile void *ptr, unsigned long l
454#define set_mb(var, value) do { var = value; barrier(); } while (0) 453#define set_mb(var, value) do { var = value; barrier(); } while (0)
455#endif 454#endif
456 455
457#define set_wmb(var, value) do { var = value; wmb(); } while (0)
458
459#include <linux/irqflags.h> 456#include <linux/irqflags.h>
460 457
461/* 458/*
diff --git a/include/asm-ia64/system.h b/include/asm-ia64/system.h
index 65db43ce4de6..fc9677bc87ee 100644
--- a/include/asm-ia64/system.h
+++ b/include/asm-ia64/system.h
@@ -98,12 +98,11 @@ extern struct ia64_boot_param {
98#endif 98#endif
99 99
100/* 100/*
101 * XXX check on these---I suspect what Linus really wants here is 101 * XXX check on this ---I suspect what Linus really wants here is
102 * acquire vs release semantics but we can't discuss this stuff with 102 * acquire vs release semantics but we can't discuss this stuff with
103 * Linus just yet. Grrr... 103 * Linus just yet. Grrr...
104 */ 104 */
105#define set_mb(var, value) do { (var) = (value); mb(); } while (0) 105#define set_mb(var, value) do { (var) = (value); mb(); } while (0)
106#define set_wmb(var, value) do { (var) = (value); mb(); } while (0)
107 106
108#define safe_halt() ia64_pal_halt_light() /* PAL_HALT_LIGHT */ 107#define safe_halt() ia64_pal_halt_light() /* PAL_HALT_LIGHT */
109 108
diff --git a/include/asm-m32r/system.h b/include/asm-m32r/system.h
index 311cebf44eff..9e618afec6ed 100644
--- a/include/asm-m32r/system.h
+++ b/include/asm-m32r/system.h
@@ -336,7 +336,6 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
336#endif 336#endif
337 337
338#define set_mb(var, value) do { xchg(&var, value); } while (0) 338#define set_mb(var, value) do { xchg(&var, value); } while (0)
339#define set_wmb(var, value) do { var = value; wmb(); } while (0)
340 339
341#define arch_align_stack(x) (x) 340#define arch_align_stack(x) (x)
342 341
diff --git a/include/asm-m68k/system.h b/include/asm-m68k/system.h
index d6dd8052cd6f..131a0cb0f491 100644
--- a/include/asm-m68k/system.h
+++ b/include/asm-m68k/system.h
@@ -80,7 +80,6 @@ static inline int irqs_disabled(void)
80#define wmb() barrier() 80#define wmb() barrier()
81#define read_barrier_depends() do { } while(0) 81#define read_barrier_depends() do { } while(0)
82#define set_mb(var, value) do { xchg(&var, value); } while (0) 82#define set_mb(var, value) do { xchg(&var, value); } while (0)
83#define set_wmb(var, value) do { var = value; wmb(); } while (0)
84 83
85#define smp_mb() barrier() 84#define smp_mb() barrier()
86#define smp_rmb() barrier() 85#define smp_rmb() barrier()
diff --git a/include/asm-m68knommu/processor.h b/include/asm-m68knommu/processor.h
index 0ee158e09abb..9d3a1bf41231 100644
--- a/include/asm-m68knommu/processor.h
+++ b/include/asm-m68knommu/processor.h
@@ -13,6 +13,7 @@
13 */ 13 */
14#define current_text_addr() ({ __label__ _l; _l: &&_l;}) 14#define current_text_addr() ({ __label__ _l; _l: &&_l;})
15 15
16#include <linux/compiler.h>
16#include <linux/threads.h> 17#include <linux/threads.h>
17#include <asm/types.h> 18#include <asm/types.h>
18#include <asm/segment.h> 19#include <asm/segment.h>
@@ -137,6 +138,6 @@ unsigned long get_wchan(struct task_struct *p);
137 eip; }) 138 eip; })
138#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp) 139#define KSTK_ESP(tsk) ((tsk) == current ? rdusp() : (tsk)->thread.usp)
139 140
140#define cpu_relax() do { } while (0) 141#define cpu_relax() barrier()
141 142
142#endif 143#endif
diff --git a/include/asm-m68knommu/system.h b/include/asm-m68knommu/system.h
index 2bbe2db00a22..2a814498672d 100644
--- a/include/asm-m68knommu/system.h
+++ b/include/asm-m68knommu/system.h
@@ -106,7 +106,6 @@ asmlinkage void resume(void);
106#define wmb() asm volatile ("" : : :"memory") 106#define wmb() asm volatile ("" : : :"memory")
107#define set_rmb(var, value) do { xchg(&var, value); } while (0) 107#define set_rmb(var, value) do { xchg(&var, value); } while (0)
108#define set_mb(var, value) set_rmb(var, value) 108#define set_mb(var, value) set_rmb(var, value)
109#define set_wmb(var, value) do { var = value; wmb(); } while (0)
110 109
111#ifdef CONFIG_SMP 110#ifdef CONFIG_SMP
112#define smp_mb() mb() 111#define smp_mb() mb()
diff --git a/include/asm-m68knommu/uaccess.h b/include/asm-m68knommu/uaccess.h
index 05be9515a2d2..62b29b10bc6d 100644
--- a/include/asm-m68knommu/uaccess.h
+++ b/include/asm-m68knommu/uaccess.h
@@ -93,7 +93,7 @@ extern int __put_user_bad(void);
93#define get_user(x, ptr) \ 93#define get_user(x, ptr) \
94({ \ 94({ \
95 int __gu_err = 0; \ 95 int __gu_err = 0; \
96 typeof(*(ptr)) __gu_val = 0; \ 96 typeof(x) __gu_val = 0; \
97 switch (sizeof(*(ptr))) { \ 97 switch (sizeof(*(ptr))) { \
98 case 1: \ 98 case 1: \
99 __get_user_asm(__gu_err, __gu_val, ptr, b, "=d"); \ 99 __get_user_asm(__gu_err, __gu_val, ptr, b, "=d"); \
@@ -105,23 +105,23 @@ extern int __put_user_bad(void);
105 __get_user_asm(__gu_err, __gu_val, ptr, l, "=r"); \ 105 __get_user_asm(__gu_err, __gu_val, ptr, l, "=r"); \
106 break; \ 106 break; \
107 case 8: \ 107 case 8: \
108 memcpy(&__gu_val, ptr, sizeof (*(ptr))); \ 108 memcpy((void *) &__gu_val, ptr, sizeof (*(ptr))); \
109 break; \ 109 break; \
110 default: \ 110 default: \
111 __gu_val = 0; \ 111 __gu_val = 0; \
112 __gu_err = __get_user_bad(); \ 112 __gu_err = __get_user_bad(); \
113 break; \ 113 break; \
114 } \ 114 } \
115 (x) = __gu_val; \ 115 (x) = (typeof(*(ptr))) __gu_val; \
116 __gu_err; \ 116 __gu_err; \
117}) 117})
118#define __get_user(x, ptr) get_user(x, ptr) 118#define __get_user(x, ptr) get_user(x, ptr)
119 119
120extern int __get_user_bad(void); 120extern int __get_user_bad(void);
121 121
122#define __get_user_asm(err,x,ptr,bwl,reg) \ 122#define __get_user_asm(err,x,ptr,bwl,reg) \
123 __asm__ ("move" #bwl " %1,%0" \ 123 __asm__ ("move" #bwl " %1,%0" \
124 : "=d" (x) \ 124 : "=d" (x) \
125 : "m" (*__ptr(ptr))) 125 : "m" (*__ptr(ptr)))
126 126
127#define copy_from_user(to, from, n) (memcpy(to, from, n), 0) 127#define copy_from_user(to, from, n) (memcpy(to, from, n), 0)
diff --git a/include/asm-mips/apm.h b/include/asm-mips/apm.h
index e8c69208f63a..4b99ffc11529 100644
--- a/include/asm-mips/apm.h
+++ b/include/asm-mips/apm.h
@@ -13,7 +13,6 @@
13#ifndef MIPS_ASM_SA1100_APM_H 13#ifndef MIPS_ASM_SA1100_APM_H
14#define MIPS_ASM_SA1100_APM_H 14#define MIPS_ASM_SA1100_APM_H
15 15
16#include <linux/config.h>
17#include <linux/apm_bios.h> 16#include <linux/apm_bios.h>
18 17
19/* 18/*
diff --git a/include/asm-mips/atomic.h b/include/asm-mips/atomic.h
index 13d44e14025a..e64abc0d8221 100644
--- a/include/asm-mips/atomic.h
+++ b/include/asm-mips/atomic.h
@@ -22,8 +22,8 @@
22#ifndef _ASM_ATOMIC_H 22#ifndef _ASM_ATOMIC_H
23#define _ASM_ATOMIC_H 23#define _ASM_ATOMIC_H
24 24
25#include <linux/irqflags.h>
25#include <asm/cpu-features.h> 26#include <asm/cpu-features.h>
26#include <asm/interrupt.h>
27#include <asm/war.h> 27#include <asm/war.h>
28 28
29typedef struct { volatile int counter; } atomic_t; 29typedef struct { volatile int counter; } atomic_t;
diff --git a/include/asm-mips/bitops.h b/include/asm-mips/bitops.h
index 098cec263681..1bb89c5a10ee 100644
--- a/include/asm-mips/bitops.h
+++ b/include/asm-mips/bitops.h
@@ -31,7 +31,7 @@
31 31
32#ifdef __KERNEL__ 32#ifdef __KERNEL__
33 33
34#include <asm/interrupt.h> 34#include <linux/irqflags.h>
35#include <asm/sgidefs.h> 35#include <asm/sgidefs.h>
36#include <asm/war.h> 36#include <asm/war.h>
37 37
diff --git a/include/asm-mips/cpu-features.h b/include/asm-mips/cpu-features.h
index 44285a9d5520..eadca266f159 100644
--- a/include/asm-mips/cpu-features.h
+++ b/include/asm-mips/cpu-features.h
@@ -143,12 +143,8 @@
143#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP) 143#define cpu_has_dsp (cpu_data[0].ases & MIPS_ASE_DSP)
144#endif 144#endif
145 145
146#ifdef CONFIG_MIPS_MT
147#ifndef cpu_has_mipsmt 146#ifndef cpu_has_mipsmt
148# define cpu_has_mipsmt (cpu_data[0].ases & MIPS_ASE_MIPSMT) 147#define cpu_has_mipsmt (cpu_data[0].ases & MIPS_ASE_MIPSMT)
149#endif
150#else
151# define cpu_has_mipsmt 0
152#endif 148#endif
153 149
154#ifdef CONFIG_32BIT 150#ifdef CONFIG_32BIT
@@ -199,8 +195,8 @@
199# define cpu_has_veic 0 195# define cpu_has_veic 0
200#endif 196#endif
201 197
202#ifndef cpu_has_subset_pcaches 198#ifndef cpu_has_inclusive_pcaches
203#define cpu_has_subset_pcaches (cpu_data[0].options & MIPS_CPU_SUBSET_CACHES) 199#define cpu_has_inclusive_pcaches (cpu_data[0].options & MIPS_CPU_INCLUSIVE_CACHES)
204#endif 200#endif
205 201
206#ifndef cpu_dcache_line_size 202#ifndef cpu_dcache_line_size
diff --git a/include/asm-mips/cpu.h b/include/asm-mips/cpu.h
index dff2a0a52f8f..d38fdbf845b2 100644
--- a/include/asm-mips/cpu.h
+++ b/include/asm-mips/cpu.h
@@ -242,7 +242,7 @@
242#define MIPS_CPU_EJTAG 0x00008000 /* EJTAG exception */ 242#define MIPS_CPU_EJTAG 0x00008000 /* EJTAG exception */
243#define MIPS_CPU_NOFPUEX 0x00010000 /* no FPU exception */ 243#define MIPS_CPU_NOFPUEX 0x00010000 /* no FPU exception */
244#define MIPS_CPU_LLSC 0x00020000 /* CPU has ll/sc instructions */ 244#define MIPS_CPU_LLSC 0x00020000 /* CPU has ll/sc instructions */
245#define MIPS_CPU_SUBSET_CACHES 0x00040000 /* P-cache subset enforced */ 245#define MIPS_CPU_INCLUSIVE_CACHES 0x00040000 /* P-cache subset enforced */
246#define MIPS_CPU_PREFETCH 0x00080000 /* CPU has usable prefetch */ 246#define MIPS_CPU_PREFETCH 0x00080000 /* CPU has usable prefetch */
247#define MIPS_CPU_VINT 0x00100000 /* CPU supports MIPSR2 vectored interrupts */ 247#define MIPS_CPU_VINT 0x00100000 /* CPU supports MIPSR2 vectored interrupts */
248#define MIPS_CPU_VEIC 0x00200000 /* CPU supports MIPSR2 external interrupt controller mode */ 248#define MIPS_CPU_VEIC 0x00200000 /* CPU supports MIPSR2 external interrupt controller mode */
diff --git a/include/asm-mips/inst.h b/include/asm-mips/inst.h
index 1ed8d0f62577..6489f00731ca 100644
--- a/include/asm-mips/inst.h
+++ b/include/asm-mips/inst.h
@@ -74,7 +74,7 @@ enum spec3_op {
74 ins_op, dinsm_op, dinsu_op, dins_op, 74 ins_op, dinsm_op, dinsu_op, dins_op,
75 bshfl_op = 0x20, 75 bshfl_op = 0x20,
76 dbshfl_op = 0x24, 76 dbshfl_op = 0x24,
77 rdhwr_op = 0x3f 77 rdhwr_op = 0x3b
78}; 78};
79 79
80/* 80/*
diff --git a/include/asm-mips/interrupt.h b/include/asm-mips/irqflags.h
index a99d6867510f..43ca09a3a3d0 100644
--- a/include/asm-mips/interrupt.h
+++ b/include/asm-mips/irqflags.h
@@ -8,13 +8,15 @@
8 * Copyright (C) 1999 Silicon Graphics 8 * Copyright (C) 1999 Silicon Graphics
9 * Copyright (C) 2000 MIPS Technologies, Inc. 9 * Copyright (C) 2000 MIPS Technologies, Inc.
10 */ 10 */
11#ifndef _ASM_INTERRUPT_H 11#ifndef _ASM_IRQFLAGS_H
12#define _ASM_INTERRUPT_H 12#define _ASM_IRQFLAGS_H
13
14#ifndef __ASSEMBLY__
13 15
14#include <asm/hazards.h> 16#include <asm/hazards.h>
15 17
16__asm__ ( 18__asm__ (
17 " .macro local_irq_enable \n" 19 " .macro raw_local_irq_enable \n"
18 " .set push \n" 20 " .set push \n"
19 " .set reorder \n" 21 " .set reorder \n"
20 " .set noat \n" 22 " .set noat \n"
@@ -35,10 +37,10 @@ __asm__ (
35 " .set pop \n" 37 " .set pop \n"
36 " .endm"); 38 " .endm");
37 39
38static inline void local_irq_enable(void) 40static inline void raw_local_irq_enable(void)
39{ 41{
40 __asm__ __volatile__( 42 __asm__ __volatile__(
41 "local_irq_enable" 43 "raw_local_irq_enable"
42 : /* no outputs */ 44 : /* no outputs */
43 : /* no inputs */ 45 : /* no inputs */
44 : "memory"); 46 : "memory");
@@ -63,7 +65,7 @@ static inline void local_irq_enable(void)
63 * Workaround: mask EXL bit of the result or place a nop before mfc0. 65 * Workaround: mask EXL bit of the result or place a nop before mfc0.
64 */ 66 */
65__asm__ ( 67__asm__ (
66 " .macro local_irq_disable\n" 68 " .macro raw_local_irq_disable\n"
67 " .set push \n" 69 " .set push \n"
68 " .set noat \n" 70 " .set noat \n"
69#ifdef CONFIG_MIPS_MT_SMTC 71#ifdef CONFIG_MIPS_MT_SMTC
@@ -84,17 +86,17 @@ __asm__ (
84 " .set pop \n" 86 " .set pop \n"
85 " .endm \n"); 87 " .endm \n");
86 88
87static inline void local_irq_disable(void) 89static inline void raw_local_irq_disable(void)
88{ 90{
89 __asm__ __volatile__( 91 __asm__ __volatile__(
90 "local_irq_disable" 92 "raw_local_irq_disable"
91 : /* no outputs */ 93 : /* no outputs */
92 : /* no inputs */ 94 : /* no inputs */
93 : "memory"); 95 : "memory");
94} 96}
95 97
96__asm__ ( 98__asm__ (
97 " .macro local_save_flags flags \n" 99 " .macro raw_local_save_flags flags \n"
98 " .set push \n" 100 " .set push \n"
99 " .set reorder \n" 101 " .set reorder \n"
100#ifdef CONFIG_MIPS_MT_SMTC 102#ifdef CONFIG_MIPS_MT_SMTC
@@ -105,13 +107,13 @@ __asm__ (
105 " .set pop \n" 107 " .set pop \n"
106 " .endm \n"); 108 " .endm \n");
107 109
108#define local_save_flags(x) \ 110#define raw_local_save_flags(x) \
109__asm__ __volatile__( \ 111__asm__ __volatile__( \
110 "local_save_flags %0" \ 112 "raw_local_save_flags %0" \
111 : "=r" (x)) 113 : "=r" (x))
112 114
113__asm__ ( 115__asm__ (
114 " .macro local_irq_save result \n" 116 " .macro raw_local_irq_save result \n"
115 " .set push \n" 117 " .set push \n"
116 " .set reorder \n" 118 " .set reorder \n"
117 " .set noat \n" 119 " .set noat \n"
@@ -135,15 +137,15 @@ __asm__ (
135 " .set pop \n" 137 " .set pop \n"
136 " .endm \n"); 138 " .endm \n");
137 139
138#define local_irq_save(x) \ 140#define raw_local_irq_save(x) \
139__asm__ __volatile__( \ 141__asm__ __volatile__( \
140 "local_irq_save\t%0" \ 142 "raw_local_irq_save\t%0" \
141 : "=r" (x) \ 143 : "=r" (x) \
142 : /* no inputs */ \ 144 : /* no inputs */ \
143 : "memory") 145 : "memory")
144 146
145__asm__ ( 147__asm__ (
146 " .macro local_irq_restore flags \n" 148 " .macro raw_local_irq_restore flags \n"
147 " .set push \n" 149 " .set push \n"
148 " .set noreorder \n" 150 " .set noreorder \n"
149 " .set noat \n" 151 " .set noat \n"
@@ -182,40 +184,42 @@ __asm__ (
182 " .set pop \n" 184 " .set pop \n"
183 " .endm \n"); 185 " .endm \n");
184 186
185#define local_irq_restore(flags) \ 187#define raw_local_irq_restore(flags) \
186do { \ 188do { \
187 unsigned long __tmp1; \ 189 unsigned long __tmp1; \
188 \ 190 \
189 __asm__ __volatile__( \ 191 __asm__ __volatile__( \
190 "local_irq_restore\t%0" \ 192 "raw_local_irq_restore\t%0" \
191 : "=r" (__tmp1) \ 193 : "=r" (__tmp1) \
192 : "0" (flags) \ 194 : "0" (flags) \
193 : "memory"); \ 195 : "memory"); \
194} while(0) 196} while(0)
195 197
196static inline int irqs_disabled(void) 198static inline int raw_irqs_disabled_flags(unsigned long flags)
197{ 199{
198#ifdef CONFIG_MIPS_MT_SMTC 200#ifdef CONFIG_MIPS_MT_SMTC
199 /* 201 /*
200 * SMTC model uses TCStatus.IXMT to disable interrupts for a thread/CPU 202 * SMTC model uses TCStatus.IXMT to disable interrupts for a thread/CPU
201 */ 203 */
202 unsigned long __result; 204 return flags & 0x400;
203
204 __asm__ __volatile__(
205 " .set noreorder \n"
206 " mfc0 %0, $2, 1 \n"
207 " andi %0, 0x400 \n"
208 " slt %0, $0, %0 \n"
209 " .set reorder \n"
210 : "=r" (__result));
211
212 return __result;
213#else 205#else
214 unsigned long flags;
215 local_save_flags(flags);
216
217 return !(flags & 1); 206 return !(flags & 1);
218#endif 207#endif
219} 208}
220 209
221#endif /* _ASM_INTERRUPT_H */ 210#endif
211
212/*
213 * Do the CPU's IRQ-state tracing from assembly code.
214 */
215#ifdef CONFIG_TRACE_IRQFLAGS
216# define TRACE_IRQS_ON \
217 jal trace_hardirqs_on
218# define TRACE_IRQS_OFF \
219 jal trace_hardirqs_off
220#else
221# define TRACE_IRQS_ON
222# define TRACE_IRQS_OFF
223#endif
224
225#endif /* _ASM_IRQFLAGS_H */
diff --git a/include/asm-mips/mach-cobalt/cpu-feature-overrides.h b/include/asm-mips/mach-cobalt/cpu-feature-overrides.h
index e0e08fc5d7f7..c6dfa59d1986 100644
--- a/include/asm-mips/mach-cobalt/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-cobalt/cpu-feature-overrides.h
@@ -27,7 +27,7 @@
27#define cpu_has_mcheck 0 27#define cpu_has_mcheck 0
28#define cpu_has_ejtag 0 28#define cpu_has_ejtag 0
29 29
30#define cpu_has_subset_pcaches 0 30#define cpu_has_inclusive_pcaches 0
31#define cpu_dcache_line_size() 32 31#define cpu_dcache_line_size() 32
32#define cpu_icache_line_size() 32 32#define cpu_icache_line_size() 32
33#define cpu_scache_line_size() 0 33#define cpu_scache_line_size() 0
diff --git a/include/asm-mips/mach-excite/cpu-feature-overrides.h b/include/asm-mips/mach-excite/cpu-feature-overrides.h
index abb76b2fd865..0d31854222f9 100644
--- a/include/asm-mips/mach-excite/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-excite/cpu-feature-overrides.h
@@ -31,7 +31,7 @@
31#define cpu_has_nofpuex 0 31#define cpu_has_nofpuex 0
32#define cpu_has_64bits 1 32#define cpu_has_64bits 1
33 33
34#define cpu_has_subset_pcaches 0 34#define cpu_has_inclusive_pcaches 0
35 35
36#define cpu_dcache_line_size() 32 36#define cpu_dcache_line_size() 32
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
diff --git a/include/asm-mips/mach-excite/excite.h b/include/asm-mips/mach-excite/excite.h
index c52610de2b3a..130bd4b8edce 100644
--- a/include/asm-mips/mach-excite/excite.h
+++ b/include/asm-mips/mach-excite/excite.h
@@ -1,7 +1,6 @@
1#ifndef __EXCITE_H__ 1#ifndef __EXCITE_H__
2#define __EXCITE_H__ 2#define __EXCITE_H__
3 3
4#include <linux/config.h>
5#include <linux/init.h> 4#include <linux/init.h>
6#include <asm/addrspace.h> 5#include <asm/addrspace.h>
7#include <asm/types.h> 6#include <asm/types.h>
diff --git a/include/asm-mips/mach-ip27/cpu-feature-overrides.h b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
index 19c2d135985b..a071974b67bb 100644
--- a/include/asm-mips/mach-ip27/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ip27/cpu-feature-overrides.h
@@ -34,7 +34,7 @@
34#define cpu_has_4kex 1 34#define cpu_has_4kex 1
35#define cpu_has_4k_cache 1 35#define cpu_has_4k_cache 1
36 36
37#define cpu_has_subset_pcaches 1 37#define cpu_has_inclusive_pcaches 1
38 38
39#define cpu_dcache_line_size() 32 39#define cpu_dcache_line_size() 32
40#define cpu_icache_line_size() 64 40#define cpu_icache_line_size() 64
diff --git a/include/asm-mips/mach-ja/cpu-feature-overrides.h b/include/asm-mips/mach-ja/cpu-feature-overrides.h
index 90ff087083b9..84b6dead0e8a 100644
--- a/include/asm-mips/mach-ja/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ja/cpu-feature-overrides.h
@@ -31,7 +31,7 @@
31#define cpu_has_nofpuex 0 31#define cpu_has_nofpuex 0
32#define cpu_has_64bits 1 32#define cpu_has_64bits 1
33 33
34#define cpu_has_subset_pcaches 0 34#define cpu_has_inclusive_pcaches 0
35 35
36#define cpu_dcache_line_size() 32 36#define cpu_dcache_line_size() 32
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
diff --git a/include/asm-mips/mach-mips/cpu-feature-overrides.h b/include/asm-mips/mach-mips/cpu-feature-overrides.h
index e960679f54ba..7f3e3f9bd23a 100644
--- a/include/asm-mips/mach-mips/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-mips/cpu-feature-overrides.h
@@ -39,7 +39,7 @@
39#define cpu_has_nofpuex 0 39#define cpu_has_nofpuex 0
40/* #define cpu_has_64bits ? */ 40/* #define cpu_has_64bits ? */
41/* #define cpu_has_64bit_zero_reg ? */ 41/* #define cpu_has_64bit_zero_reg ? */
42/* #define cpu_has_subset_pcaches ? */ 42/* #define cpu_has_inclusive_pcaches ? */
43#define cpu_icache_snoops_remote_store 1 43#define cpu_icache_snoops_remote_store 1
44#endif 44#endif
45 45
@@ -65,7 +65,7 @@
65#define cpu_has_nofpuex 0 65#define cpu_has_nofpuex 0
66/* #define cpu_has_64bits ? */ 66/* #define cpu_has_64bits ? */
67/* #define cpu_has_64bit_zero_reg ? */ 67/* #define cpu_has_64bit_zero_reg ? */
68/* #define cpu_has_subset_pcaches ? */ 68/* #define cpu_has_inclusive_pcaches ? */
69#define cpu_icache_snoops_remote_store 1 69#define cpu_icache_snoops_remote_store 1
70#endif 70#endif
71 71
diff --git a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
index 782b986241dd..57a12ded0613 100644
--- a/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-ocelot3/cpu-feature-overrides.h
@@ -34,7 +34,7 @@
34#define cpu_has_nofpuex 0 34#define cpu_has_nofpuex 0
35#define cpu_has_64bits 1 35#define cpu_has_64bits 1
36 36
37#define cpu_has_subset_pcaches 0 37#define cpu_has_inclusive_pcaches 0
38 38
39#define cpu_dcache_line_size() 32 39#define cpu_dcache_line_size() 32
40#define cpu_icache_line_size() 32 40#define cpu_icache_line_size() 32
diff --git a/include/asm-mips/mach-sibyte/cpu-feature-overrides.h b/include/asm-mips/mach-sibyte/cpu-feature-overrides.h
index 193a666cd131..a25968f277a2 100644
--- a/include/asm-mips/mach-sibyte/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-sibyte/cpu-feature-overrides.h
@@ -31,7 +31,7 @@
31#define cpu_has_nofpuex 0 31#define cpu_has_nofpuex 0
32#define cpu_has_64bits 1 32#define cpu_has_64bits 1
33 33
34#define cpu_has_subset_pcaches 0 34#define cpu_has_inclusive_pcaches 0
35 35
36#define cpu_dcache_line_size() 32 36#define cpu_dcache_line_size() 32
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
diff --git a/include/asm-mips/mach-sim/cpu-feature-overrides.h b/include/asm-mips/mach-sim/cpu-feature-overrides.h
index d736bdadb6df..779b02205737 100644
--- a/include/asm-mips/mach-sim/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-sim/cpu-feature-overrides.h
@@ -34,7 +34,7 @@
34#define cpu_has_nofpuex 0 34#define cpu_has_nofpuex 0
35/* #define cpu_has_64bits ? */ 35/* #define cpu_has_64bits ? */
36/* #define cpu_has_64bit_zero_reg ? */ 36/* #define cpu_has_64bit_zero_reg ? */
37/* #define cpu_has_subset_pcaches ? */ 37/* #define cpu_has_inclusive_pcaches ? */
38#endif 38#endif
39 39
40#ifdef CONFIG_CPU_MIPS64 40#ifdef CONFIG_CPU_MIPS64
@@ -59,7 +59,7 @@
59#define cpu_has_nofpuex 0 59#define cpu_has_nofpuex 0
60/* #define cpu_has_64bits ? */ 60/* #define cpu_has_64bits ? */
61/* #define cpu_has_64bit_zero_reg ? */ 61/* #define cpu_has_64bit_zero_reg ? */
62/* #define cpu_has_subset_pcaches ? */ 62/* #define cpu_has_inclusive_pcaches ? */
63#endif 63#endif
64 64
65#endif /* __ASM_MACH_MIPS_CPU_FEATURE_OVERRIDES_H */ 65#endif /* __ASM_MACH_MIPS_CPU_FEATURE_OVERRIDES_H */
diff --git a/include/asm-mips/mach-yosemite/cpu-feature-overrides.h b/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
index 3073542c93c7..42cebb7ce7a6 100644
--- a/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
+++ b/include/asm-mips/mach-yosemite/cpu-feature-overrides.h
@@ -31,7 +31,7 @@
31#define cpu_has_nofpuex 0 31#define cpu_has_nofpuex 0
32#define cpu_has_64bits 1 32#define cpu_has_64bits 1
33 33
34#define cpu_has_subset_pcaches 0 34#define cpu_has_inclusive_pcaches 0
35 35
36#define cpu_dcache_line_size() 32 36#define cpu_dcache_line_size() 32
37#define cpu_icache_line_size() 32 37#define cpu_icache_line_size() 32
diff --git a/include/asm-mips/mipsregs.h b/include/asm-mips/mipsregs.h
index 9192d76c133d..1f318d707998 100644
--- a/include/asm-mips/mipsregs.h
+++ b/include/asm-mips/mipsregs.h
@@ -470,6 +470,8 @@
470 470
471/* Bits specific to the VR41xx. */ 471/* Bits specific to the VR41xx. */
472#define VR41_CONF_CS (_ULCAST_(1) << 12) 472#define VR41_CONF_CS (_ULCAST_(1) << 12)
473#define VR41_CONF_P4K (_ULCAST_(1) << 13)
474#define VR41_CONF_BP (_ULCAST_(1) << 16)
473#define VR41_CONF_M16 (_ULCAST_(1) << 20) 475#define VR41_CONF_M16 (_ULCAST_(1) << 20)
474#define VR41_CONF_AD (_ULCAST_(1) << 23) 476#define VR41_CONF_AD (_ULCAST_(1) << 23)
475 477
@@ -1416,7 +1418,7 @@ change_c0_##name(unsigned int change, unsigned int new) \
1416 1418
1417#else /* SMTC versions that manage MT scheduling */ 1419#else /* SMTC versions that manage MT scheduling */
1418 1420
1419#include <asm/interrupt.h> 1421#include <linux/irqflags.h>
1420 1422
1421/* 1423/*
1422 * This is a duplicate of dmt() in mipsmtregs.h to avoid problems with 1424 * This is a duplicate of dmt() in mipsmtregs.h to avoid problems with
diff --git a/include/asm-mips/page.h b/include/asm-mips/page.h
index 6b97744f00cd..6ed1151a05a3 100644
--- a/include/asm-mips/page.h
+++ b/include/asm-mips/page.h
@@ -138,16 +138,14 @@ typedef struct { unsigned long pgprot; } pgprot_t;
138 138
139#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) 139#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
140 140
141#ifndef CONFIG_SPARSEMEM
142#ifndef CONFIG_NEED_MULTIPLE_NODES
143#define pfn_valid(pfn) ((pfn) < max_mapnr)
144#endif
145#endif
146
147#ifdef CONFIG_FLATMEM 141#ifdef CONFIG_FLATMEM
148 142
149#define pfn_valid(pfn) ((pfn) < max_mapnr) 143#define pfn_valid(pfn) ((pfn) < max_mapnr)
150 144
145#elif defined(CONFIG_SPARSEMEM)
146
147/* pfn_valid is defined in linux/mmzone.h */
148
151#elif defined(CONFIG_NEED_MULTIPLE_NODES) 149#elif defined(CONFIG_NEED_MULTIPLE_NODES)
152 150
153#define pfn_valid(pfn) \ 151#define pfn_valid(pfn) \
@@ -159,8 +157,6 @@ typedef struct { unsigned long pgprot; } pgprot_t;
159 : 0); \ 157 : 0); \
160}) 158})
161 159
162#else
163#error Provide a definition of pfn_valid
164#endif 160#endif
165 161
166#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT) 162#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
diff --git a/include/asm-mips/system.h b/include/asm-mips/system.h
index 130333d7c4ee..dcb4701d5728 100644
--- a/include/asm-mips/system.h
+++ b/include/asm-mips/system.h
@@ -13,13 +13,13 @@
13#define _ASM_SYSTEM_H 13#define _ASM_SYSTEM_H
14 14
15#include <linux/types.h> 15#include <linux/types.h>
16#include <linux/irqflags.h>
16 17
17#include <asm/addrspace.h> 18#include <asm/addrspace.h>
18#include <asm/cpu-features.h> 19#include <asm/cpu-features.h>
19#include <asm/dsp.h> 20#include <asm/dsp.h>
20#include <asm/ptrace.h> 21#include <asm/ptrace.h>
21#include <asm/war.h> 22#include <asm/war.h>
22#include <asm/interrupt.h>
23 23
24/* 24/*
25 * read_barrier_depends - Flush all pending reads that subsequents reads 25 * read_barrier_depends - Flush all pending reads that subsequents reads
@@ -143,9 +143,6 @@
143#define set_mb(var, value) \ 143#define set_mb(var, value) \
144do { var = value; mb(); } while (0) 144do { var = value; mb(); } while (0)
145 145
146#define set_wmb(var, value) \
147do { var = value; wmb(); } while (0)
148
149/* 146/*
150 * switch_to(n) should switch tasks to task nr n, first 147 * switch_to(n) should switch tasks to task nr n, first
151 * checking that n isn't the current task, in which case it does nothing. 148 * checking that n isn't the current task, in which case it does nothing.
diff --git a/include/asm-mips/time.h b/include/asm-mips/time.h
index d897c8bb554d..2d543735668b 100644
--- a/include/asm-mips/time.h
+++ b/include/asm-mips/time.h
@@ -83,11 +83,11 @@ extern asmlinkage void ll_local_timer_interrupt(int irq, struct pt_regs *regs);
83/* 83/*
84 * board specific routines required by time_init(). 84 * board specific routines required by time_init().
85 * board_time_init is defaulted to NULL and can remain so. 85 * board_time_init is defaulted to NULL and can remain so.
86 * board_timer_setup must be setup properly in machine setup routine. 86 * plat_timer_setup must be setup properly in machine setup routine.
87 */ 87 */
88struct irqaction; 88struct irqaction;
89extern void (*board_time_init)(void); 89extern void (*board_time_init)(void);
90extern void (*board_timer_setup)(struct irqaction *irq); 90extern void plat_timer_setup(struct irqaction *irq);
91 91
92/* 92/*
93 * mips_hpt_frequency - must be set if you intend to use an R4k-compatible 93 * mips_hpt_frequency - must be set if you intend to use an R4k-compatible
diff --git a/include/asm-mips/unistd.h b/include/asm-mips/unistd.h
index 809f9f55bacb..610ccb8a50b3 100644
--- a/include/asm-mips/unistd.h
+++ b/include/asm-mips/unistd.h
@@ -327,16 +327,18 @@
327#define __NR_splice (__NR_Linux + 304) 327#define __NR_splice (__NR_Linux + 304)
328#define __NR_sync_file_range (__NR_Linux + 305) 328#define __NR_sync_file_range (__NR_Linux + 305)
329#define __NR_tee (__NR_Linux + 306) 329#define __NR_tee (__NR_Linux + 306)
330#define __NR_vmsplice (__NR_Linux + 307)
331#define __NR_move_pages (__NR_Linux + 308)
330 332
331/* 333/*
332 * Offset of the last Linux o32 flavoured syscall 334 * Offset of the last Linux o32 flavoured syscall
333 */ 335 */
334#define __NR_Linux_syscalls 306 336#define __NR_Linux_syscalls 308
335 337
336#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */ 338#endif /* _MIPS_SIM == _MIPS_SIM_ABI32 */
337 339
338#define __NR_O32_Linux 4000 340#define __NR_O32_Linux 4000
339#define __NR_O32_Linux_syscalls 306 341#define __NR_O32_Linux_syscalls 308
340 342
341#if _MIPS_SIM == _MIPS_SIM_ABI64 343#if _MIPS_SIM == _MIPS_SIM_ABI64
342 344
@@ -610,16 +612,18 @@
610#define __NR_splice (__NR_Linux + 263) 612#define __NR_splice (__NR_Linux + 263)
611#define __NR_sync_file_range (__NR_Linux + 264) 613#define __NR_sync_file_range (__NR_Linux + 264)
612#define __NR_tee (__NR_Linux + 265) 614#define __NR_tee (__NR_Linux + 265)
615#define __NR_vmsplice (__NR_Linux + 266)
616#define __NR_move_pages (__NR_Linux + 267)
613 617
614/* 618/*
615 * Offset of the last Linux 64-bit flavoured syscall 619 * Offset of the last Linux 64-bit flavoured syscall
616 */ 620 */
617#define __NR_Linux_syscalls 265 621#define __NR_Linux_syscalls 267
618 622
619#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */ 623#endif /* _MIPS_SIM == _MIPS_SIM_ABI64 */
620 624
621#define __NR_64_Linux 5000 625#define __NR_64_Linux 5000
622#define __NR_64_Linux_syscalls 265 626#define __NR_64_Linux_syscalls 267
623 627
624#if _MIPS_SIM == _MIPS_SIM_NABI32 628#if _MIPS_SIM == _MIPS_SIM_NABI32
625 629
@@ -897,16 +901,18 @@
897#define __NR_splice (__NR_Linux + 267) 901#define __NR_splice (__NR_Linux + 267)
898#define __NR_sync_file_range (__NR_Linux + 268) 902#define __NR_sync_file_range (__NR_Linux + 268)
899#define __NR_tee (__NR_Linux + 269) 903#define __NR_tee (__NR_Linux + 269)
904#define __NR_vmsplice (__NR_Linux + 270)
905#define __NR_move_pages (__NR_Linux + 271)
900 906
901/* 907/*
902 * Offset of the last N32 flavoured syscall 908 * Offset of the last N32 flavoured syscall
903 */ 909 */
904#define __NR_Linux_syscalls 269 910#define __NR_Linux_syscalls 271
905 911
906#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */ 912#endif /* _MIPS_SIM == _MIPS_SIM_NABI32 */
907 913
908#define __NR_N32_Linux 6000 914#define __NR_N32_Linux 6000
909#define __NR_N32_Linux_syscalls 269 915#define __NR_N32_Linux_syscalls 271
910 916
911#ifdef __KERNEL__ 917#ifdef __KERNEL__
912 918
diff --git a/include/asm-mips/vr41xx/capcella.h b/include/asm-mips/vr41xx/capcella.h
index d10ffda50de7..e0ee05a3dfcc 100644
--- a/include/asm-mips/vr41xx/capcella.h
+++ b/include/asm-mips/vr41xx/capcella.h
@@ -20,7 +20,7 @@
20#ifndef __ZAO_CAPCELLA_H 20#ifndef __ZAO_CAPCELLA_H
21#define __ZAO_CAPCELLA_H 21#define __ZAO_CAPCELLA_H
22 22
23#include <asm/vr41xx/vr41xx.h> 23#include <asm/vr41xx/irq.h>
24 24
25/* 25/*
26 * General-Purpose I/O Pin Number 26 * General-Purpose I/O Pin Number
diff --git a/include/asm-mips/vr41xx/cmbvr4133.h b/include/asm-mips/vr41xx/cmbvr4133.h
index 42af389019ea..9490ade58b46 100644
--- a/include/asm-mips/vr41xx/cmbvr4133.h
+++ b/include/asm-mips/vr41xx/cmbvr4133.h
@@ -15,8 +15,7 @@
15#ifndef __NEC_CMBVR4133_H 15#ifndef __NEC_CMBVR4133_H
16#define __NEC_CMBVR4133_H 16#define __NEC_CMBVR4133_H
17 17
18#include <asm/addrspace.h> 18#include <asm/vr41xx/irq.h>
19#include <asm/vr41xx/vr41xx.h>
20 19
21/* 20/*
22 * General-Purpose I/O Pin Number 21 * General-Purpose I/O Pin Number
@@ -55,7 +54,4 @@
55#define IDE_SECONDARY_IRQ I8259_IRQ(15) 54#define IDE_SECONDARY_IRQ I8259_IRQ(15)
56#define I8259_IRQ_LAST IDE_SECONDARY_IRQ 55#define I8259_IRQ_LAST IDE_SECONDARY_IRQ
57 56
58#define RTC_PORT(x) (0xaf000100 + (x))
59#define RTC_IO_EXTENT 0x140
60
61#endif /* __NEC_CMBVR4133_H */ 57#endif /* __NEC_CMBVR4133_H */
diff --git a/include/asm-mips/vr41xx/e55.h b/include/asm-mips/vr41xx/e55.h
deleted file mode 100644
index 558f2269bf37..000000000000
--- a/include/asm-mips/vr41xx/e55.h
+++ /dev/null
@@ -1,43 +0,0 @@
1/*
2 * e55.h, Include file for CASIO CASSIOPEIA E-10/15/55/65.
3 *
4 * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __CASIO_E55_H
21#define __CASIO_E55_H
22
23#include <asm/addrspace.h>
24#include <asm/vr41xx/vr41xx.h>
25
26/*
27 * Board specific address mapping
28 */
29#define VR41XX_ISA_MEM_BASE 0x10000000
30#define VR41XX_ISA_MEM_SIZE 0x04000000
31
32/* VR41XX_ISA_IO_BASE includes offset from real base. */
33#define VR41XX_ISA_IO_BASE 0x1400c000
34#define VR41XX_ISA_IO_SIZE 0x03ff4000
35
36#define ISA_BUS_IO_BASE 0
37#define ISA_BUS_IO_SIZE VR41XX_ISA_IO_SIZE
38
39#define IO_PORT_BASE KSEG1ADDR(VR41XX_ISA_IO_BASE)
40#define IO_PORT_RESOURCE_START ISA_BUS_IO_BASE
41#define IO_PORT_RESOURCE_END (ISA_BUS_IO_BASE + ISA_BUS_IO_SIZE - 1)
42
43#endif /* __CASIO_E55_H */
diff --git a/include/asm-mips/vr41xx/irq.h b/include/asm-mips/vr41xx/irq.h
new file mode 100644
index 000000000000..d315dfbc08f2
--- /dev/null
+++ b/include/asm-mips/vr41xx/irq.h
@@ -0,0 +1,101 @@
1/*
2 * include/asm-mips/vr41xx/irq.h
3 *
4 * Interrupt numbers for NEC VR4100 series.
5 *
6 * Copyright (C) 1999 Michael Klar
7 * Copyright (C) 2001, 2002 Paul Mundt
8 * Copyright (C) 2002 MontaVista Software, Inc.
9 * Copyright (C) 2002 TimeSys Corp.
10 * Copyright (C) 2003-2006 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
11 *
12 * This program is free software; you can redistribute it and/or modify it
13 * under the terms of the GNU General Public License as published by the
14 * Free Software Foundation; either version 2 of the License, or (at your
15 * option) any later version.
16 */
17#ifndef __NEC_VR41XX_IRQ_H
18#define __NEC_VR41XX_IRQ_H
19
20/*
21 * CPU core Interrupt Numbers
22 */
23#define MIPS_CPU_IRQ_BASE 0
24#define MIPS_CPU_IRQ(x) (MIPS_CPU_IRQ_BASE + (x))
25#define MIPS_SOFTINT0_IRQ MIPS_CPU_IRQ(0)
26#define MIPS_SOFTINT1_IRQ MIPS_CPU_IRQ(1)
27#define INT0_IRQ MIPS_CPU_IRQ(2)
28#define INT1_IRQ MIPS_CPU_IRQ(3)
29#define INT2_IRQ MIPS_CPU_IRQ(4)
30#define INT3_IRQ MIPS_CPU_IRQ(5)
31#define INT4_IRQ MIPS_CPU_IRQ(6)
32#define TIMER_IRQ MIPS_CPU_IRQ(7)
33
34/*
35 * SYINT1 Interrupt Numbers
36 */
37#define SYSINT1_IRQ_BASE 8
38#define SYSINT1_IRQ(x) (SYSINT1_IRQ_BASE + (x))
39#define BATTRY_IRQ SYSINT1_IRQ(0)
40#define POWER_IRQ SYSINT1_IRQ(1)
41#define RTCLONG1_IRQ SYSINT1_IRQ(2)
42#define ELAPSEDTIME_IRQ SYSINT1_IRQ(3)
43/* RFU */
44#define PIU_IRQ SYSINT1_IRQ(5)
45#define AIU_IRQ SYSINT1_IRQ(6)
46#define KIU_IRQ SYSINT1_IRQ(7)
47#define GIUINT_IRQ SYSINT1_IRQ(8)
48#define SIU_IRQ SYSINT1_IRQ(9)
49#define BUSERR_IRQ SYSINT1_IRQ(10)
50#define SOFTINT_IRQ SYSINT1_IRQ(11)
51#define CLKRUN_IRQ SYSINT1_IRQ(12)
52#define DOZEPIU_IRQ SYSINT1_IRQ(13)
53#define SYSINT1_IRQ_LAST DOZEPIU_IRQ
54
55/*
56 * SYSINT2 Interrupt Numbers
57 */
58#define SYSINT2_IRQ_BASE 24
59#define SYSINT2_IRQ(x) (SYSINT2_IRQ_BASE + (x))
60#define RTCLONG2_IRQ SYSINT2_IRQ(0)
61#define LED_IRQ SYSINT2_IRQ(1)
62#define HSP_IRQ SYSINT2_IRQ(2)
63#define TCLOCK_IRQ SYSINT2_IRQ(3)
64#define FIR_IRQ SYSINT2_IRQ(4)
65#define CEU_IRQ SYSINT2_IRQ(4) /* same number as FIR_IRQ */
66#define DSIU_IRQ SYSINT2_IRQ(5)
67#define PCI_IRQ SYSINT2_IRQ(6)
68#define SCU_IRQ SYSINT2_IRQ(7)
69#define CSI_IRQ SYSINT2_IRQ(8)
70#define BCU_IRQ SYSINT2_IRQ(9)
71#define ETHERNET_IRQ SYSINT2_IRQ(10)
72#define SYSINT2_IRQ_LAST ETHERNET_IRQ
73
74/*
75 * GIU Interrupt Numbers
76 */
77#define GIU_IRQ_BASE 40
78#define GIU_IRQ(x) (GIU_IRQ_BASE + (x)) /* IRQ 40-71 */
79#define GIU_IRQ_LAST GIU_IRQ(31)
80
81/*
82 * VRC4173 Interrupt Numbers
83 */
84#define VRC4173_IRQ_BASE 72
85#define VRC4173_IRQ(x) (VRC4173_IRQ_BASE + (x))
86#define VRC4173_USB_IRQ VRC4173_IRQ(0)
87#define VRC4173_PCMCIA2_IRQ VRC4173_IRQ(1)
88#define VRC4173_PCMCIA1_IRQ VRC4173_IRQ(2)
89#define VRC4173_PS2CH2_IRQ VRC4173_IRQ(3)
90#define VRC4173_PS2CH1_IRQ VRC4173_IRQ(4)
91#define VRC4173_PIU_IRQ VRC4173_IRQ(5)
92#define VRC4173_AIU_IRQ VRC4173_IRQ(6)
93#define VRC4173_KIU_IRQ VRC4173_IRQ(7)
94#define VRC4173_GIU_IRQ VRC4173_IRQ(8)
95#define VRC4173_AC97_IRQ VRC4173_IRQ(9)
96#define VRC4173_AC97INT1_IRQ VRC4173_IRQ(10)
97/* RFU */
98#define VRC4173_DOZEPIU_IRQ VRC4173_IRQ(13)
99#define VRC4173_IRQ_LAST VRC4173_DOZEPIU_IRQ
100
101#endif /* __NEC_VR41XX_IRQ_H */
diff --git a/include/asm-mips/vr41xx/mpc30x.h b/include/asm-mips/vr41xx/mpc30x.h
index a6cbe4da6667..1d67df843dc3 100644
--- a/include/asm-mips/vr41xx/mpc30x.h
+++ b/include/asm-mips/vr41xx/mpc30x.h
@@ -20,7 +20,7 @@
20#ifndef __VICTOR_MPC30X_H 20#ifndef __VICTOR_MPC30X_H
21#define __VICTOR_MPC30X_H 21#define __VICTOR_MPC30X_H
22 22
23#include <asm/vr41xx/vr41xx.h> 23#include <asm/vr41xx/irq.h>
24 24
25/* 25/*
26 * General-Purpose I/O Pin Number 26 * General-Purpose I/O Pin Number
diff --git a/include/asm-mips/vr41xx/tb0219.h b/include/asm-mips/vr41xx/tb0219.h
index b318b9612a83..dc981b4be0a4 100644
--- a/include/asm-mips/vr41xx/tb0219.h
+++ b/include/asm-mips/vr41xx/tb0219.h
@@ -23,7 +23,7 @@
23#ifndef __TANBAC_TB0219_H 23#ifndef __TANBAC_TB0219_H
24#define __TANBAC_TB0219_H 24#define __TANBAC_TB0219_H
25 25
26#include <asm/vr41xx/vr41xx.h> 26#include <asm/vr41xx/irq.h>
27 27
28/* 28/*
29 * General-Purpose I/O Pin Number 29 * General-Purpose I/O Pin Number
diff --git a/include/asm-mips/vr41xx/tb0226.h b/include/asm-mips/vr41xx/tb0226.h
index 2513f450e2d6..de527dcfa5f3 100644
--- a/include/asm-mips/vr41xx/tb0226.h
+++ b/include/asm-mips/vr41xx/tb0226.h
@@ -20,7 +20,7 @@
20#ifndef __TANBAC_TB0226_H 20#ifndef __TANBAC_TB0226_H
21#define __TANBAC_TB0226_H 21#define __TANBAC_TB0226_H
22 22
23#include <asm/vr41xx/vr41xx.h> 23#include <asm/vr41xx/irq.h>
24 24
25/* 25/*
26 * General-Purpose I/O Pin Number 26 * General-Purpose I/O Pin Number
diff --git a/include/asm-mips/vr41xx/tb0287.h b/include/asm-mips/vr41xx/tb0287.h
index dd9832313afe..61bead68abf0 100644
--- a/include/asm-mips/vr41xx/tb0287.h
+++ b/include/asm-mips/vr41xx/tb0287.h
@@ -22,7 +22,7 @@
22#ifndef __TANBAC_TB0287_H 22#ifndef __TANBAC_TB0287_H
23#define __TANBAC_TB0287_H 23#define __TANBAC_TB0287_H
24 24
25#include <asm/vr41xx/vr41xx.h> 25#include <asm/vr41xx/irq.h>
26 26
27/* 27/*
28 * General-Purpose I/O Pin Number 28 * General-Purpose I/O Pin Number
diff --git a/include/asm-mips/vr41xx/vr41xx.h b/include/asm-mips/vr41xx/vr41xx.h
index 70828d5fae9c..dd3eb3dc5886 100644
--- a/include/asm-mips/vr41xx/vr41xx.h
+++ b/include/asm-mips/vr41xx/vr41xx.h
@@ -74,59 +74,6 @@ extern void vr41xx_mask_clock(vr41xx_clock_t clock);
74/* 74/*
75 * Interrupt Control Unit 75 * Interrupt Control Unit
76 */ 76 */
77/* CPU core Interrupt Numbers */
78#define MIPS_CPU_IRQ_BASE 0
79#define MIPS_CPU_IRQ(x) (MIPS_CPU_IRQ_BASE + (x))
80#define MIPS_SOFTINT0_IRQ MIPS_CPU_IRQ(0)
81#define MIPS_SOFTINT1_IRQ MIPS_CPU_IRQ(1)
82#define INT0_IRQ MIPS_CPU_IRQ(2)
83#define INT1_IRQ MIPS_CPU_IRQ(3)
84#define INT2_IRQ MIPS_CPU_IRQ(4)
85#define INT3_IRQ MIPS_CPU_IRQ(5)
86#define INT4_IRQ MIPS_CPU_IRQ(6)
87#define TIMER_IRQ MIPS_CPU_IRQ(7)
88
89/* SYINT1 Interrupt Numbers */
90#define SYSINT1_IRQ_BASE 8
91#define SYSINT1_IRQ(x) (SYSINT1_IRQ_BASE + (x))
92#define BATTRY_IRQ SYSINT1_IRQ(0)
93#define POWER_IRQ SYSINT1_IRQ(1)
94#define RTCLONG1_IRQ SYSINT1_IRQ(2)
95#define ELAPSEDTIME_IRQ SYSINT1_IRQ(3)
96/* RFU */
97#define PIU_IRQ SYSINT1_IRQ(5)
98#define AIU_IRQ SYSINT1_IRQ(6)
99#define KIU_IRQ SYSINT1_IRQ(7)
100#define GIUINT_IRQ SYSINT1_IRQ(8)
101#define SIU_IRQ SYSINT1_IRQ(9)
102#define BUSERR_IRQ SYSINT1_IRQ(10)
103#define SOFTINT_IRQ SYSINT1_IRQ(11)
104#define CLKRUN_IRQ SYSINT1_IRQ(12)
105#define DOZEPIU_IRQ SYSINT1_IRQ(13)
106#define SYSINT1_IRQ_LAST DOZEPIU_IRQ
107
108/* SYSINT2 Interrupt Numbers */
109#define SYSINT2_IRQ_BASE 24
110#define SYSINT2_IRQ(x) (SYSINT2_IRQ_BASE + (x))
111#define RTCLONG2_IRQ SYSINT2_IRQ(0)
112#define LED_IRQ SYSINT2_IRQ(1)
113#define HSP_IRQ SYSINT2_IRQ(2)
114#define TCLOCK_IRQ SYSINT2_IRQ(3)
115#define FIR_IRQ SYSINT2_IRQ(4)
116#define CEU_IRQ SYSINT2_IRQ(4) /* same number as FIR_IRQ */
117#define DSIU_IRQ SYSINT2_IRQ(5)
118#define PCI_IRQ SYSINT2_IRQ(6)
119#define SCU_IRQ SYSINT2_IRQ(7)
120#define CSI_IRQ SYSINT2_IRQ(8)
121#define BCU_IRQ SYSINT2_IRQ(9)
122#define ETHERNET_IRQ SYSINT2_IRQ(10)
123#define SYSINT2_IRQ_LAST ETHERNET_IRQ
124
125/* GIU Interrupt Numbers */
126#define GIU_IRQ_BASE 40
127#define GIU_IRQ(x) (GIU_IRQ_BASE + (x)) /* IRQ 40-71 */
128#define GIU_IRQ_LAST GIU_IRQ(31)
129
130extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign); 77extern int vr41xx_set_intassign(unsigned int irq, unsigned char intassign);
131extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int, struct pt_regs *)); 78extern int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int, struct pt_regs *));
132 79
diff --git a/include/asm-mips/vr41xx/vrc4173.h b/include/asm-mips/vr41xx/vrc4173.h
deleted file mode 100644
index 96fdcd54cec7..000000000000
--- a/include/asm-mips/vr41xx/vrc4173.h
+++ /dev/null
@@ -1,221 +0,0 @@
1/*
2 * vrc4173.h, Include file for NEC VRC4173.
3 *
4 * Copyright (C) 2000 Michael R. McDonald
5 * Copyright (C) 2001-2003 Montavista Software Inc.
6 * Author: Yoichi Yuasa <yyuasa@mvista.com, or source@mvista.com>
7 * Copyright (C) 2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
8 * Copyright (C) 2005 Ralf Baechle (ralf@linux-mips.org)
9 *
10 * This program is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License as published by
12 * the Free Software Foundation; either version 2 of the License, or
13 * (at your option) any later version.
14 *
15 * This program is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU General Public License for more details.
19 *
20 * You should have received a copy of the GNU General Public License
21 * along with this program; if not, write to the Free Software
22 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 */
24#ifndef __NEC_VRC4173_H
25#define __NEC_VRC4173_H
26
27#include <asm/io.h>
28
29/*
30 * Interrupt Number
31 */
32#define VRC4173_IRQ_BASE 72
33#define VRC4173_IRQ(x) (VRC4173_IRQ_BASE + (x))
34#define VRC4173_USB_IRQ VRC4173_IRQ(0)
35#define VRC4173_PCMCIA2_IRQ VRC4173_IRQ(1)
36#define VRC4173_PCMCIA1_IRQ VRC4173_IRQ(2)
37#define VRC4173_PS2CH2_IRQ VRC4173_IRQ(3)
38#define VRC4173_PS2CH1_IRQ VRC4173_IRQ(4)
39#define VRC4173_PIU_IRQ VRC4173_IRQ(5)
40#define VRC4173_AIU_IRQ VRC4173_IRQ(6)
41#define VRC4173_KIU_IRQ VRC4173_IRQ(7)
42#define VRC4173_GIU_IRQ VRC4173_IRQ(8)
43#define VRC4173_AC97_IRQ VRC4173_IRQ(9)
44#define VRC4173_AC97INT1_IRQ VRC4173_IRQ(10)
45/* RFU */
46#define VRC4173_DOZEPIU_IRQ VRC4173_IRQ(13)
47#define VRC4173_IRQ_LAST VRC4173_DOZEPIU_IRQ
48
49/*
50 * PCI I/O accesses
51 */
52#ifdef CONFIG_VRC4173
53
54extern unsigned long vrc4173_io_offset;
55
56#define set_vrc4173_io_offset(offset) do { vrc4173_io_offset = (offset); } while (0)
57
58#define vrc4173_outb(val,port) outb((val), vrc4173_io_offset+(port))
59#define vrc4173_outw(val,port) outw((val), vrc4173_io_offset+(port))
60#define vrc4173_outl(val,port) outl((val), vrc4173_io_offset+(port))
61#define vrc4173_outb_p(val,port) outb_p((val), vrc4173_io_offset+(port))
62#define vrc4173_outw_p(val,port) outw_p((val), vrc4173_io_offset+(port))
63#define vrc4173_outl_p(val,port) outl_p((val), vrc4173_io_offset+(port))
64
65#define vrc4173_inb(port) inb(vrc4173_io_offset+(port))
66#define vrc4173_inw(port) inw(vrc4173_io_offset+(port))
67#define vrc4173_inl(port) inl(vrc4173_io_offset+(port))
68#define vrc4173_inb_p(port) inb_p(vrc4173_io_offset+(port))
69#define vrc4173_inw_p(port) inw_p(vrc4173_io_offset+(port))
70#define vrc4173_inl_p(port) inl_p(vrc4173_io_offset+(port))
71
72#define vrc4173_outsb(port,addr,count) outsb(vrc4173_io_offset+(port),(addr),(count))
73#define vrc4173_outsw(port,addr,count) outsw(vrc4173_io_offset+(port),(addr),(count))
74#define vrc4173_outsl(port,addr,count) outsl(vrc4173_io_offset+(port),(addr),(count))
75
76#define vrc4173_insb(port,addr,count) insb(vrc4173_io_offset+(port),(addr),(count))
77#define vrc4173_insw(port,addr,count) insw(vrc4173_io_offset+(port),(addr),(count))
78#define vrc4173_insl(port,addr,count) insl(vrc4173_io_offset+(port),(addr),(count))
79
80#else
81
82#define set_vrc4173_io_offset(offset) do {} while (0)
83
84#define vrc4173_outb(val,port) do {} while (0)
85#define vrc4173_outw(val,port) do {} while (0)
86#define vrc4173_outl(val,port) do {} while (0)
87#define vrc4173_outb_p(val,port) do {} while (0)
88#define vrc4173_outw_p(val,port) do {} while (0)
89#define vrc4173_outl_p(val,port) do {} while (0)
90
91#define vrc4173_inb(port) 0
92#define vrc4173_inw(port) 0
93#define vrc4173_inl(port) 0
94#define vrc4173_inb_p(port) 0
95#define vrc4173_inw_p(port) 0
96#define vrc4173_inl_p(port) 0
97
98#define vrc4173_outsb(port,addr,count) do {} while (0)
99#define vrc4173_outsw(port,addr,count) do {} while (0)
100#define vrc4173_outsl(port,addr,count) do {} while (0)
101
102#define vrc4173_insb(port,addr,count) do {} while (0)
103#define vrc4173_insw(port,addr,count) do {} while (0)
104#define vrc4173_insl(port,addr,count) do {} while (0)
105
106#endif
107
108/*
109 * Clock Mask Unit
110 */
111typedef enum vrc4173_clock {
112 VRC4173_PIU_CLOCK,
113 VRC4173_KIU_CLOCK,
114 VRC4173_AIU_CLOCK,
115 VRC4173_PS2_CH1_CLOCK,
116 VRC4173_PS2_CH2_CLOCK,
117 VRC4173_USBU_PCI_CLOCK,
118 VRC4173_CARDU1_PCI_CLOCK,
119 VRC4173_CARDU2_PCI_CLOCK,
120 VRC4173_AC97U_PCI_CLOCK,
121 VRC4173_USBU_48MHz_CLOCK,
122 VRC4173_EXT_48MHz_CLOCK,
123 VRC4173_48MHz_CLOCK,
124} vrc4173_clock_t;
125
126#ifdef CONFIG_VRC4173
127
128extern void vrc4173_supply_clock(vrc4173_clock_t clock);
129extern void vrc4173_mask_clock(vrc4173_clock_t clock);
130
131#else
132
133static inline void vrc4173_supply_clock(vrc4173_clock_t clock) {}
134static inline void vrc4173_mask_clock(vrc4173_clock_t clock) {}
135
136#endif
137
138/*
139 * Interupt Control Unit
140 */
141
142#define VRC4173_PIUINT_COMMAND 0x0040
143#define VRC4173_PIUINT_DATA 0x0020
144#define VRC4173_PIUINT_PAGE1 0x0010
145#define VRC4173_PIUINT_PAGE0 0x0008
146#define VRC4173_PIUINT_DATALOST 0x0004
147#define VRC4173_PIUINT_STATUSCHANGE 0x0001
148
149#ifdef CONFIG_VRC4173
150
151extern void vrc4173_enable_piuint(uint16_t mask);
152extern void vrc4173_disable_piuint(uint16_t mask);
153
154#else
155
156static inline void vrc4173_enable_piuint(uint16_t mask) {}
157static inline void vrc4173_disable_piuint(uint16_t mask) {}
158
159#endif
160
161#define VRC4173_AIUINT_INPUT_DMAEND 0x0800
162#define VRC4173_AIUINT_INPUT_DMAHALT 0x0400
163#define VRC4173_AIUINT_INPUT_DATALOST 0x0200
164#define VRC4173_AIUINT_INPUT_DATA 0x0100
165#define VRC4173_AIUINT_OUTPUT_DMAEND 0x0008
166#define VRC4173_AIUINT_OUTPUT_DMAHALT 0x0004
167#define VRC4173_AIUINT_OUTPUT_NODATA 0x0002
168
169#ifdef CONFIG_VRC4173
170
171extern void vrc4173_enable_aiuint(uint16_t mask);
172extern void vrc4173_disable_aiuint(uint16_t mask);
173
174#else
175
176static inline void vrc4173_enable_aiuint(uint16_t mask) {}
177static inline void vrc4173_disable_aiuint(uint16_t mask) {}
178
179#endif
180
181#define VRC4173_KIUINT_DATALOST 0x0004
182#define VRC4173_KIUINT_DATAREADY 0x0002
183#define VRC4173_KIUINT_SCAN 0x0001
184
185#ifdef CONFIG_VRC4173
186
187extern void vrc4173_enable_kiuint(uint16_t mask);
188extern void vrc4173_disable_kiuint(uint16_t mask);
189
190#else
191
192static inline void vrc4173_enable_kiuint(uint16_t mask) {}
193static inline void vrc4173_disable_kiuint(uint16_t mask) {}
194
195#endif
196
197/*
198 * General-Purpose I/O Unit
199 */
200typedef enum vrc4173_function {
201 PS2_CHANNEL1,
202 PS2_CHANNEL2,
203 TOUCHPANEL,
204 KEYBOARD_8SCANLINES,
205 KEYBOARD_10SCANLINES,
206 KEYBOARD_12SCANLINES,
207 GPIO_0_15PINS,
208 GPIO_16_20PINS,
209} vrc4173_function_t;
210
211#ifdef CONFIG_VRC4173
212
213extern void vrc4173_select_function(vrc4173_function_t function);
214
215#else
216
217static inline void vrc4173_select_function(vrc4173_function_t function) {}
218
219#endif
220
221#endif /* __NEC_VRC4173_H */
diff --git a/include/asm-mips/vr41xx/workpad.h b/include/asm-mips/vr41xx/workpad.h
deleted file mode 100644
index 6bfa9c009a9b..000000000000
--- a/include/asm-mips/vr41xx/workpad.h
+++ /dev/null
@@ -1,43 +0,0 @@
1/*
2 * workpad.h, Include file for IBM WorkPad z50.
3 *
4 * Copyright (C) 2002-2004 Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20#ifndef __IBM_WORKPAD_H
21#define __IBM_WORKPAD_H
22
23#include <asm/addrspace.h>
24#include <asm/vr41xx/vr41xx.h>
25
26/*
27 * Board specific address mapping
28 */
29#define VR41XX_ISA_MEM_BASE 0x10000000
30#define VR41XX_ISA_MEM_SIZE 0x04000000
31
32/* VR41XX_ISA_IO_BASE includes offset from real base. */
33#define VR41XX_ISA_IO_BASE 0x15000000
34#define VR41XX_ISA_IO_SIZE 0x03000000
35
36#define ISA_BUS_IO_BASE 0
37#define ISA_BUS_IO_SIZE VR41XX_ISA_IO_SIZE
38
39#define IO_PORT_BASE KSEG1ADDR(VR41XX_ISA_IO_BASE)
40#define IO_PORT_RESOURCE_START ISA_BUS_IO_BASE
41#define IO_PORT_RESOURCE_END (ISA_BUS_IO_BASE + ISA_BUS_IO_SIZE - 1)
42
43#endif /* __IBM_WORKPAD_H */
diff --git a/include/asm-parisc/system.h b/include/asm-parisc/system.h
index 5fe2d2329ab5..74f037a39e6f 100644
--- a/include/asm-parisc/system.h
+++ b/include/asm-parisc/system.h
@@ -143,8 +143,6 @@ static inline void set_eiem(unsigned long val)
143#define read_barrier_depends() do { } while(0) 143#define read_barrier_depends() do { } while(0)
144 144
145#define set_mb(var, value) do { var = value; mb(); } while (0) 145#define set_mb(var, value) do { var = value; mb(); } while (0)
146#define set_wmb(var, value) do { var = value; wmb(); } while (0)
147
148 146
149#ifndef CONFIG_PA20 147#ifndef CONFIG_PA20
150/* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data, 148/* Because kmalloc only guarantees 8-byte alignment for kmalloc'd data,
diff --git a/include/asm-powerpc/system.h b/include/asm-powerpc/system.h
index c6569516ba35..7307aa775671 100644
--- a/include/asm-powerpc/system.h
+++ b/include/asm-powerpc/system.h
@@ -39,7 +39,6 @@
39#define read_barrier_depends() do { } while(0) 39#define read_barrier_depends() do { } while(0)
40 40
41#define set_mb(var, value) do { var = value; mb(); } while (0) 41#define set_mb(var, value) do { var = value; mb(); } while (0)
42#define set_wmb(var, value) do { var = value; wmb(); } while (0)
43 42
44#ifdef __KERNEL__ 43#ifdef __KERNEL__
45#ifdef CONFIG_SMP 44#ifdef CONFIG_SMP
diff --git a/include/asm-ppc/system.h b/include/asm-ppc/system.h
index fb49c0c49ea1..738943584c01 100644
--- a/include/asm-ppc/system.h
+++ b/include/asm-ppc/system.h
@@ -33,7 +33,6 @@
33#define read_barrier_depends() do { } while(0) 33#define read_barrier_depends() do { } while(0)
34 34
35#define set_mb(var, value) do { var = value; mb(); } while (0) 35#define set_mb(var, value) do { var = value; mb(); } while (0)
36#define set_wmb(var, value) do { var = value; wmb(); } while (0)
37 36
38#ifdef CONFIG_SMP 37#ifdef CONFIG_SMP
39#define smp_mb() mb() 38#define smp_mb() mb()
diff --git a/include/asm-s390/bug.h b/include/asm-s390/bug.h
index 7ddaa05b98d8..876898363944 100644
--- a/include/asm-s390/bug.h
+++ b/include/asm-s390/bug.h
@@ -5,9 +5,18 @@
5 5
6#ifdef CONFIG_BUG 6#ifdef CONFIG_BUG
7 7
8static inline __attribute__((noreturn)) void __do_illegal_op(void)
9{
10#if __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 3)
11 __builtin_trap();
12#else
13 asm volatile(".long 0");
14#endif
15}
16
8#define BUG() do { \ 17#define BUG() do { \
9 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \ 18 printk("kernel BUG at %s:%d!\n", __FILE__, __LINE__); \
10 __builtin_trap(); \ 19 __do_illegal_op(); \
11} while (0) 20} while (0)
12 21
13#define HAVE_ARCH_BUG 22#define HAVE_ARCH_BUG
diff --git a/include/asm-s390/ccwdev.h b/include/asm-s390/ccwdev.h
index 12456cb2f882..58c70acffc73 100644
--- a/include/asm-s390/ccwdev.h
+++ b/include/asm-s390/ccwdev.h
@@ -63,7 +63,7 @@ ccw_device_id_match(const struct ccw_device_id *array,
63 return id; 63 return id;
64 } 64 }
65 65
66 return 0; 66 return NULL;
67} 67}
68 68
69/* The struct ccw device is our replacement for the globally accessible 69/* The struct ccw device is our replacement for the globally accessible
diff --git a/include/asm-s390/cio.h b/include/asm-s390/cio.h
index 2b1619306351..28fdd6e2b8ba 100644
--- a/include/asm-s390/cio.h
+++ b/include/asm-s390/cio.h
@@ -276,6 +276,8 @@ extern void wait_cons_dev(void);
276 276
277extern void clear_all_subchannels(void); 277extern void clear_all_subchannels(void);
278 278
279extern void cio_reset_channel_paths(void);
280
279extern void css_schedule_reprobe(void); 281extern void css_schedule_reprobe(void);
280 282
281#endif 283#endif
diff --git a/include/asm-s390/futex.h b/include/asm-s390/futex.h
index 1802775568b9..ffedf14f89f6 100644
--- a/include/asm-s390/futex.h
+++ b/include/asm-s390/futex.h
@@ -98,9 +98,10 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
98 98
99 if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int))) 99 if (! access_ok (VERIFY_WRITE, uaddr, sizeof(int)))
100 return -EFAULT; 100 return -EFAULT;
101 asm volatile(" cs %1,%4,0(%5)\n" 101 asm volatile(" sacf 256\n"
102 " cs %1,%4,0(%5)\n"
102 "0: lr %0,%1\n" 103 "0: lr %0,%1\n"
103 "1:\n" 104 "1: sacf 0\n"
104#ifndef __s390x__ 105#ifndef __s390x__
105 ".section __ex_table,\"a\"\n" 106 ".section __ex_table,\"a\"\n"
106 " .align 4\n" 107 " .align 4\n"
diff --git a/include/asm-s390/irqflags.h b/include/asm-s390/irqflags.h
index 65f4db627e7a..3b566a5b3cc7 100644
--- a/include/asm-s390/irqflags.h
+++ b/include/asm-s390/irqflags.h
@@ -25,16 +25,22 @@
25 __flags; \ 25 __flags; \
26 }) 26 })
27 27
28#define raw_local_save_flags(x) \ 28#define raw_local_save_flags(x) \
29 __asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ) 29do { \
30 30 typecheck(unsigned long, x); \
31#define raw_local_irq_restore(x) \ 31 __asm__ __volatile__("stosm 0(%1),0" : "=m" (x) : "a" (&x), "m" (x) ); \
32 __asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory") 32} while (0)
33
34#define raw_local_irq_restore(x) \
35do { \
36 typecheck(unsigned long, x); \
37 __asm__ __volatile__("ssm 0(%0)" : : "a" (&x), "m" (x) : "memory"); \
38} while (0)
33 39
34#define raw_irqs_disabled() \ 40#define raw_irqs_disabled() \
35({ \ 41({ \
36 unsigned long flags; \ 42 unsigned long flags; \
37 local_save_flags(flags); \ 43 raw_local_save_flags(flags); \
38 !((flags >> __FLAG_SHIFT) & 3); \ 44 !((flags >> __FLAG_SHIFT) & 3); \
39}) 45})
40 46
diff --git a/include/asm-s390/pgalloc.h b/include/asm-s390/pgalloc.h
index 3002fda89d33..a78e853e0dd5 100644
--- a/include/asm-s390/pgalloc.h
+++ b/include/asm-s390/pgalloc.h
@@ -142,7 +142,7 @@ pte_alloc_one(struct mm_struct *mm, unsigned long vmaddr)
142 pte_t *pte = pte_alloc_one_kernel(mm, vmaddr); 142 pte_t *pte = pte_alloc_one_kernel(mm, vmaddr);
143 if (pte) 143 if (pte)
144 return virt_to_page(pte); 144 return virt_to_page(pte);
145 return 0; 145 return NULL;
146} 146}
147 147
148static inline void pte_free_kernel(pte_t *pte) 148static inline void pte_free_kernel(pte_t *pte)
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h
index c5cbc4bd8414..5b71d3731723 100644
--- a/include/asm-s390/processor.h
+++ b/include/asm-s390/processor.h
@@ -199,15 +199,13 @@ unsigned long get_wchan(struct task_struct *p);
199/* 199/*
200 * Give up the time slice of the virtual PU. 200 * Give up the time slice of the virtual PU.
201 */ 201 */
202#ifndef __s390x__ 202static inline void cpu_relax(void)
203# define cpu_relax() asm volatile ("diag 0,0,68" : : : "memory") 203{
204#else /* __s390x__ */ 204 if (MACHINE_HAS_DIAG44)
205# define cpu_relax() \ 205 asm volatile ("diag 0,0,68" : : : "memory");
206 do { \ 206 else
207 if (MACHINE_HAS_DIAG44) \ 207 barrier();
208 asm volatile ("diag 0,0,68" : : : "memory"); \ 208}
209 } while (0)
210#endif /* __s390x__ */
211 209
212/* 210/*
213 * Set PSW to specified value. 211 * Set PSW to specified value.
diff --git a/include/asm-s390/setup.h b/include/asm-s390/setup.h
index da3fd4a7bb32..19e31979309a 100644
--- a/include/asm-s390/setup.h
+++ b/include/asm-s390/setup.h
@@ -40,15 +40,16 @@ extern unsigned long machine_flags;
40#define MACHINE_IS_VM (machine_flags & 1) 40#define MACHINE_IS_VM (machine_flags & 1)
41#define MACHINE_IS_P390 (machine_flags & 4) 41#define MACHINE_IS_P390 (machine_flags & 4)
42#define MACHINE_HAS_MVPG (machine_flags & 16) 42#define MACHINE_HAS_MVPG (machine_flags & 16)
43#define MACHINE_HAS_DIAG44 (machine_flags & 32)
44#define MACHINE_HAS_IDTE (machine_flags & 128) 43#define MACHINE_HAS_IDTE (machine_flags & 128)
45 44
46#ifndef __s390x__ 45#ifndef __s390x__
47#define MACHINE_HAS_IEEE (machine_flags & 2) 46#define MACHINE_HAS_IEEE (machine_flags & 2)
48#define MACHINE_HAS_CSP (machine_flags & 8) 47#define MACHINE_HAS_CSP (machine_flags & 8)
48#define MACHINE_HAS_DIAG44 (1)
49#else /* __s390x__ */ 49#else /* __s390x__ */
50#define MACHINE_HAS_IEEE (1) 50#define MACHINE_HAS_IEEE (1)
51#define MACHINE_HAS_CSP (1) 51#define MACHINE_HAS_CSP (1)
52#define MACHINE_HAS_DIAG44 (machine_flags & 32)
52#endif /* __s390x__ */ 53#endif /* __s390x__ */
53 54
54 55
diff --git a/include/asm-s390/system.h b/include/asm-s390/system.h
index 9ab186ffde23..36a3a85d611a 100644
--- a/include/asm-s390/system.h
+++ b/include/asm-s390/system.h
@@ -299,7 +299,6 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new, int size)
299 299
300 300
301#define set_mb(var, value) do { var = value; mb(); } while (0) 301#define set_mb(var, value) do { var = value; mb(); } while (0)
302#define set_wmb(var, value) do { var = value; wmb(); } while (0)
303 302
304#ifdef __s390x__ 303#ifdef __s390x__
305 304
diff --git a/include/asm-sh/processor.h b/include/asm-sh/processor.h
index fa5bd2d8803e..eeb0f48bb99e 100644
--- a/include/asm-sh/processor.h
+++ b/include/asm-sh/processor.h
@@ -9,6 +9,7 @@
9#define __ASM_SH_PROCESSOR_H 9#define __ASM_SH_PROCESSOR_H
10#ifdef __KERNEL__ 10#ifdef __KERNEL__
11 11
12#include <linux/compiler.h>
12#include <asm/page.h> 13#include <asm/page.h>
13#include <asm/types.h> 14#include <asm/types.h>
14#include <asm/cache.h> 15#include <asm/cache.h>
@@ -263,7 +264,7 @@ extern unsigned long get_wchan(struct task_struct *p);
263#define KSTK_ESP(tsk) ((tsk)->thread.sp) 264#define KSTK_ESP(tsk) ((tsk)->thread.sp)
264 265
265#define cpu_sleep() __asm__ __volatile__ ("sleep" : : : "memory") 266#define cpu_sleep() __asm__ __volatile__ ("sleep" : : : "memory")
266#define cpu_relax() do { } while (0) 267#define cpu_relax() barrier()
267 268
268#endif /* __KERNEL__ */ 269#endif /* __KERNEL__ */
269#endif /* __ASM_SH_PROCESSOR_H */ 270#endif /* __ASM_SH_PROCESSOR_H */
diff --git a/include/asm-sh/system.h b/include/asm-sh/system.h
index ce2e60664a86..ad35ad4958f4 100644
--- a/include/asm-sh/system.h
+++ b/include/asm-sh/system.h
@@ -101,7 +101,6 @@ extern void __xchg_called_with_bad_pointer(void);
101#endif 101#endif
102 102
103#define set_mb(var, value) do { xchg(&var, value); } while (0) 103#define set_mb(var, value) do { xchg(&var, value); } while (0)
104#define set_wmb(var, value) do { var = value; wmb(); } while (0)
105 104
106/* Interrupt Control */ 105/* Interrupt Control */
107static __inline__ void local_irq_enable(void) 106static __inline__ void local_irq_enable(void)
diff --git a/include/asm-sh64/processor.h b/include/asm-sh64/processor.h
index 1bf252dad824..eb2bee4b47b9 100644
--- a/include/asm-sh64/processor.h
+++ b/include/asm-sh64/processor.h
@@ -22,6 +22,7 @@
22#include <asm/cache.h> 22#include <asm/cache.h>
23#include <asm/registers.h> 23#include <asm/registers.h>
24#include <linux/threads.h> 24#include <linux/threads.h>
25#include <linux/compiler.h>
25 26
26/* 27/*
27 * Default implementation of macro that returns current 28 * Default implementation of macro that returns current
@@ -279,7 +280,7 @@ extern unsigned long get_wchan(struct task_struct *p);
279#define KSTK_EIP(tsk) ((tsk)->thread.pc) 280#define KSTK_EIP(tsk) ((tsk)->thread.pc)
280#define KSTK_ESP(tsk) ((tsk)->thread.sp) 281#define KSTK_ESP(tsk) ((tsk)->thread.sp)
281 282
282#define cpu_relax() do { } while (0) 283#define cpu_relax() barrier()
283 284
284#endif /* __ASSEMBLY__ */ 285#endif /* __ASSEMBLY__ */
285#endif /* __ASM_SH64_PROCESSOR_H */ 286#endif /* __ASM_SH64_PROCESSOR_H */
diff --git a/include/asm-sh64/system.h b/include/asm-sh64/system.h
index 7606f6e1f01e..87ef6f1ad5a4 100644
--- a/include/asm-sh64/system.h
+++ b/include/asm-sh64/system.h
@@ -66,7 +66,6 @@ extern void __xchg_called_with_bad_pointer(void);
66 66
67#define set_rmb(var, value) do { xchg(&var, value); } while (0) 67#define set_rmb(var, value) do { xchg(&var, value); } while (0)
68#define set_mb(var, value) set_rmb(var, value) 68#define set_mb(var, value) set_rmb(var, value)
69#define set_wmb(var, value) do { var = value; wmb(); } while (0)
70 69
71/* Interrupt Control */ 70/* Interrupt Control */
72#ifndef HARD_CLI 71#ifndef HARD_CLI
diff --git a/include/asm-sparc/system.h b/include/asm-sparc/system.h
index cb7dda1e5e91..100c3eaf3c1f 100644
--- a/include/asm-sparc/system.h
+++ b/include/asm-sparc/system.h
@@ -199,7 +199,6 @@ static inline unsigned long getipl(void)
199#define wmb() mb() 199#define wmb() mb()
200#define read_barrier_depends() do { } while(0) 200#define read_barrier_depends() do { } while(0)
201#define set_mb(__var, __value) do { __var = __value; mb(); } while(0) 201#define set_mb(__var, __value) do { __var = __value; mb(); } while(0)
202#define set_wmb(__var, __value) set_mb(__var, __value)
203#define smp_mb() __asm__ __volatile__("":::"memory") 202#define smp_mb() __asm__ __volatile__("":::"memory")
204#define smp_rmb() __asm__ __volatile__("":::"memory") 203#define smp_rmb() __asm__ __volatile__("":::"memory")
205#define smp_wmb() __asm__ __volatile__("":::"memory") 204#define smp_wmb() __asm__ __volatile__("":::"memory")
diff --git a/include/asm-sparc64/Kbuild b/include/asm-sparc64/Kbuild
index c78d44bb195f..9284c3cb27ec 100644
--- a/include/asm-sparc64/Kbuild
+++ b/include/asm-sparc64/Kbuild
@@ -4,7 +4,7 @@ ALTARCH := sparc
4ARCHDEF := defined __sparc__ && defined __arch64__ 4ARCHDEF := defined __sparc__ && defined __arch64__
5ALTARCHDEF := defined __sparc__ && !defined __arch64__ 5ALTARCHDEF := defined __sparc__ && !defined __arch64__
6 6
7unifdef-y := fbio.h perfctr.h 7unifdef-y += fbio.h perfctr.h
8header-y += apb.h asi.h bbc.h bpp.h display7seg.h envctrl.h floppy.h \ 8header-y += apb.h asi.h bbc.h bpp.h display7seg.h envctrl.h floppy.h \
9 ipc.h kdebug.h mostek.h openprom.h openpromio.h parport.h \ 9 ipc.h kdebug.h mostek.h openprom.h openpromio.h parport.h \
10 pconf.h psrcompat.h pstate.h reg.h uctx.h utrap.h watchdog.h 10 pconf.h psrcompat.h pstate.h reg.h uctx.h utrap.h watchdog.h
diff --git a/include/asm-sparc64/system.h b/include/asm-sparc64/system.h
index 4ca68600c670..a8b7432c9a70 100644
--- a/include/asm-sparc64/system.h
+++ b/include/asm-sparc64/system.h
@@ -123,8 +123,6 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
123#define read_barrier_depends() do { } while(0) 123#define read_barrier_depends() do { } while(0)
124#define set_mb(__var, __value) \ 124#define set_mb(__var, __value) \
125 do { __var = __value; membar_storeload_storestore(); } while(0) 125 do { __var = __value; membar_storeload_storestore(); } while(0)
126#define set_wmb(__var, __value) \
127 do { __var = __value; wmb(); } while(0)
128 126
129#ifdef CONFIG_SMP 127#ifdef CONFIG_SMP
130#define smp_mb() mb() 128#define smp_mb() mb()
diff --git a/include/asm-v850/processor.h b/include/asm-v850/processor.h
index 6965b66ccaed..979e3467f9af 100644
--- a/include/asm-v850/processor.h
+++ b/include/asm-v850/processor.h
@@ -18,6 +18,7 @@
18#include <linux/thread_info.h> 18#include <linux/thread_info.h>
19#endif 19#endif
20 20
21#include <linux/compiler.h>
21#include <asm/ptrace.h> 22#include <asm/ptrace.h>
22#include <asm/entry.h> 23#include <asm/entry.h>
23 24
@@ -106,7 +107,7 @@ unsigned long get_wchan (struct task_struct *p);
106#define KSTK_ESP(task) task_sp (task) 107#define KSTK_ESP(task) task_sp (task)
107 108
108 109
109#define cpu_relax() ((void)0) 110#define cpu_relax() barrier()
110 111
111 112
112#else /* __ASSEMBLY__ */ 113#else /* __ASSEMBLY__ */
diff --git a/include/asm-v850/system.h b/include/asm-v850/system.h
index 7091af4b7866..da39916f10b0 100644
--- a/include/asm-v850/system.h
+++ b/include/asm-v850/system.h
@@ -68,7 +68,6 @@ static inline int irqs_disabled (void)
68#define read_barrier_depends() ((void)0) 68#define read_barrier_depends() ((void)0)
69#define set_rmb(var, value) do { xchg (&var, value); } while (0) 69#define set_rmb(var, value) do { xchg (&var, value); } while (0)
70#define set_mb(var, value) set_rmb (var, value) 70#define set_mb(var, value) set_rmb (var, value)
71#define set_wmb(var, value) do { var = value; wmb (); } while (0)
72 71
73#define smp_mb() mb () 72#define smp_mb() mb ()
74#define smp_rmb() rmb () 73#define smp_rmb() rmb ()
diff --git a/include/asm-x86_64/system.h b/include/asm-x86_64/system.h
index f67f2873a922..6bf170bceae1 100644
--- a/include/asm-x86_64/system.h
+++ b/include/asm-x86_64/system.h
@@ -240,7 +240,6 @@ static inline unsigned long __cmpxchg(volatile void *ptr, unsigned long old,
240#endif 240#endif
241#define read_barrier_depends() do {} while(0) 241#define read_barrier_depends() do {} while(0)
242#define set_mb(var, value) do { (void) xchg(&var, value); } while (0) 242#define set_mb(var, value) do { (void) xchg(&var, value); } while (0)
243#define set_wmb(var, value) do { var = value; wmb(); } while (0)
244 243
245#define warn_if_not_ulong(x) do { unsigned long foo; (void) (&(x) == &foo); } while (0) 244#define warn_if_not_ulong(x) do { unsigned long foo; (void) (&(x) == &foo); } while (0)
246 245
diff --git a/include/asm-xtensa/processor.h b/include/asm-xtensa/processor.h
index d1d72ad36f08..8b96e77c9d82 100644
--- a/include/asm-xtensa/processor.h
+++ b/include/asm-xtensa/processor.h
@@ -20,6 +20,7 @@
20#include <xtensa/config/tie.h> 20#include <xtensa/config/tie.h>
21#include <xtensa/config/system.h> 21#include <xtensa/config/system.h>
22 22
23#include <linux/compiler.h>
23#include <asm/ptrace.h> 24#include <asm/ptrace.h>
24#include <asm/types.h> 25#include <asm/types.h>
25#include <asm/coprocessor.h> 26#include <asm/coprocessor.h>
@@ -191,7 +192,7 @@ extern unsigned long get_wchan(struct task_struct *p);
191#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc) 192#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc)
192#define KSTK_ESP(tsk) (task_pt_regs(tsk)->areg[1]) 193#define KSTK_ESP(tsk) (task_pt_regs(tsk)->areg[1])
193 194
194#define cpu_relax() do { } while (0) 195#define cpu_relax() barrier()
195 196
196/* Special register access. */ 197/* Special register access. */
197 198
diff --git a/include/asm-xtensa/system.h b/include/asm-xtensa/system.h
index f986170bd2a1..932bda92a21c 100644
--- a/include/asm-xtensa/system.h
+++ b/include/asm-xtensa/system.h
@@ -99,7 +99,6 @@ static inline void disable_coprocessor(int i)
99#endif 99#endif
100 100
101#define set_mb(var, value) do { var = value; mb(); } while (0) 101#define set_mb(var, value) do { var = value; mb(); } while (0)
102#define set_wmb(var, value) do { var = value; wmb(); } while (0)
103 102
104#if !defined (__ASSEMBLY__) 103#if !defined (__ASSEMBLY__)
105 104
diff --git a/include/linux/delayacct.h b/include/linux/delayacct.h
new file mode 100644
index 000000000000..7e8b6011b8f3
--- /dev/null
+++ b/include/linux/delayacct.h
@@ -0,0 +1,119 @@
1/* delayacct.h - per-task delay accounting
2 *
3 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 *
15 */
16
17#ifndef _LINUX_DELAYACCT_H
18#define _LINUX_DELAYACCT_H
19
20#include <linux/sched.h>
21#include <linux/taskstats_kern.h>
22
23/*
24 * Per-task flags relevant to delay accounting
25 * maintained privately to avoid exhausting similar flags in sched.h:PF_*
26 * Used to set current->delays->flags
27 */
28#define DELAYACCT_PF_SWAPIN 0x00000001 /* I am doing a swapin */
29
30#ifdef CONFIG_TASK_DELAY_ACCT
31
32extern int delayacct_on; /* Delay accounting turned on/off */
33extern kmem_cache_t *delayacct_cache;
34extern void delayacct_init(void);
35extern void __delayacct_tsk_init(struct task_struct *);
36extern void __delayacct_tsk_exit(struct task_struct *);
37extern void __delayacct_blkio_start(void);
38extern void __delayacct_blkio_end(void);
39extern int __delayacct_add_tsk(struct taskstats *, struct task_struct *);
40extern __u64 __delayacct_blkio_ticks(struct task_struct *);
41
42static inline void delayacct_set_flag(int flag)
43{
44 if (current->delays)
45 current->delays->flags |= flag;
46}
47
48static inline void delayacct_clear_flag(int flag)
49{
50 if (current->delays)
51 current->delays->flags &= ~flag;
52}
53
54static inline void delayacct_tsk_init(struct task_struct *tsk)
55{
56 /* reinitialize in case parent's non-null pointer was dup'ed*/
57 tsk->delays = NULL;
58 if (unlikely(delayacct_on))
59 __delayacct_tsk_init(tsk);
60}
61
62static inline void delayacct_tsk_exit(struct task_struct *tsk)
63{
64 if (tsk->delays)
65 __delayacct_tsk_exit(tsk);
66}
67
68static inline void delayacct_blkio_start(void)
69{
70 if (current->delays)
71 __delayacct_blkio_start();
72}
73
74static inline void delayacct_blkio_end(void)
75{
76 if (current->delays)
77 __delayacct_blkio_end();
78}
79
80static inline int delayacct_add_tsk(struct taskstats *d,
81 struct task_struct *tsk)
82{
83 if (likely(!delayacct_on))
84 return -EINVAL;
85 if (!tsk->delays)
86 return 0;
87 return __delayacct_add_tsk(d, tsk);
88}
89
90static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk)
91{
92 if (tsk->delays)
93 return __delayacct_blkio_ticks(tsk);
94 return 0;
95}
96
97#else
98static inline void delayacct_set_flag(int flag)
99{}
100static inline void delayacct_clear_flag(int flag)
101{}
102static inline void delayacct_init(void)
103{}
104static inline void delayacct_tsk_init(struct task_struct *tsk)
105{}
106static inline void delayacct_tsk_exit(struct task_struct *tsk)
107{}
108static inline void delayacct_blkio_start(void)
109{}
110static inline void delayacct_blkio_end(void)
111{}
112static inline int delayacct_add_tsk(struct taskstats *d,
113 struct task_struct *tsk)
114{ return 0; }
115static inline __u64 delayacct_blkio_ticks(struct task_struct *tsk)
116{ return 0; }
117#endif /* CONFIG_TASK_DELAY_ACCT */
118
119#endif
diff --git a/include/linux/hdlc.h b/include/linux/hdlc.h
index 4513f9e40937..d5ebbb29aeae 100644
--- a/include/linux/hdlc.h
+++ b/include/linux/hdlc.h
@@ -224,8 +224,6 @@ static __inline__ void debug_frame(const struct sk_buff *skb)
224int hdlc_open(struct net_device *dev); 224int hdlc_open(struct net_device *dev);
225/* Must be called by hardware driver when HDLC device is being closed */ 225/* Must be called by hardware driver when HDLC device is being closed */
226void hdlc_close(struct net_device *dev); 226void hdlc_close(struct net_device *dev);
227/* Called by hardware driver when DCD line level changes */
228void hdlc_set_carrier(int on, struct net_device *dev);
229 227
230/* May be used by hardware driver to gain control over HDLC device */ 228/* May be used by hardware driver to gain control over HDLC device */
231static __inline__ void hdlc_proto_detach(hdlc_device *hdlc) 229static __inline__ void hdlc_proto_detach(hdlc_device *hdlc)
diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
index 21338bb3441d..9418519a55d1 100644
--- a/include/linux/i2c-id.h
+++ b/include/linux/i2c-id.h
@@ -115,6 +115,7 @@
115#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */ 115#define I2C_DRIVERID_BT866 85 /* Conexant bt866 video encoder */
116#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */ 116#define I2C_DRIVERID_KS0127 86 /* Samsung ks0127 video decoder */
117#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */ 117#define I2C_DRIVERID_TLV320AIC23B 87 /* TI TLV320AIC23B audio codec */
118#define I2C_DRIVERID_ISL1208 88 /* Intersil ISL1208 RTC */
118 119
119#define I2C_DRIVERID_I2CDEV 900 120#define I2C_DRIVERID_I2CDEV 900
120#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */ 121#define I2C_DRIVERID_ARP 902 /* SMBus ARP Client */
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 526ddc8eecfb..eb0628a7ecc6 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -193,6 +193,8 @@ struct i2c_algorithm {
193 to NULL. If an adapter algorithm can do SMBus access, set 193 to NULL. If an adapter algorithm can do SMBus access, set
194 smbus_xfer. If set to NULL, the SMBus protocol is simulated 194 smbus_xfer. If set to NULL, the SMBus protocol is simulated
195 using common I2C messages */ 195 using common I2C messages */
196 /* master_xfer should return the number of messages successfully
197 processed, or a negative value on error */
196 int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg *msgs, 198 int (*master_xfer)(struct i2c_adapter *adap,struct i2c_msg *msgs,
197 int num); 199 int num);
198 int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr, 200 int (*smbus_xfer) (struct i2c_adapter *adap, u16 addr,
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
index eef0876d8307..383627ad328f 100644
--- a/include/linux/if_vlan.h
+++ b/include/linux/if_vlan.h
@@ -23,8 +23,8 @@ struct vlan_collection;
23struct vlan_dev_info; 23struct vlan_dev_info;
24struct hlist_node; 24struct hlist_node;
25 25
26#include <linux/proc_fs.h> /* for proc_dir_entry */
27#include <linux/netdevice.h> 26#include <linux/netdevice.h>
27#include <linux/etherdevice.h>
28 28
29#define VLAN_HLEN 4 /* The additional bytes (on top of the Ethernet header) 29#define VLAN_HLEN 4 /* The additional bytes (on top of the Ethernet header)
30 * that VLAN requires. 30 * that VLAN requires.
@@ -185,7 +185,8 @@ static inline int __vlan_hwaccel_rx(struct sk_buff *skb,
185 * This allows the VLAN to have a different MAC than the underlying 185 * This allows the VLAN to have a different MAC than the underlying
186 * device, and still route correctly. 186 * device, and still route correctly.
187 */ 187 */
188 if (!memcmp(eth_hdr(skb)->h_dest, skb->dev->dev_addr, ETH_ALEN)) 188 if (!compare_ether_addr(eth_hdr(skb)->h_dest,
189 skb->dev->dev_addr))
189 skb->pkt_type = PACKET_HOST; 190 skb->pkt_type = PACKET_HOST;
190 break; 191 break;
191 }; 192 };
diff --git a/include/linux/ioport.h b/include/linux/ioport.h
index 5612dfeeae50..d42c83399071 100644
--- a/include/linux/ioport.h
+++ b/include/linux/ioport.h
@@ -97,7 +97,7 @@ extern struct resource iomem_resource;
97extern int request_resource(struct resource *root, struct resource *new); 97extern int request_resource(struct resource *root, struct resource *new);
98extern struct resource * ____request_resource(struct resource *root, struct resource *new); 98extern struct resource * ____request_resource(struct resource *root, struct resource *new);
99extern int release_resource(struct resource *new); 99extern int release_resource(struct resource *new);
100extern __deprecated_for_modules int insert_resource(struct resource *parent, struct resource *new); 100extern int insert_resource(struct resource *parent, struct resource *new);
101extern int allocate_resource(struct resource *root, struct resource *new, 101extern int allocate_resource(struct resource *root, struct resource *new,
102 resource_size_t size, resource_size_t min, 102 resource_size_t size, resource_size_t min,
103 resource_size_t max, resource_size_t align, 103 resource_size_t max, resource_size_t align,
diff --git a/include/linux/kthread.h b/include/linux/kthread.h
index 7cce5dfa092f..1c65e7a9f186 100644
--- a/include/linux/kthread.h
+++ b/include/linux/kthread.h
@@ -28,7 +28,6 @@ struct task_struct *kthread_create(int (*threadfn)(void *data),
28 28
29void kthread_bind(struct task_struct *k, unsigned int cpu); 29void kthread_bind(struct task_struct *k, unsigned int cpu);
30int kthread_stop(struct task_struct *k); 30int kthread_stop(struct task_struct *k);
31int kthread_stop_sem(struct task_struct *k, struct semaphore *s);
32int kthread_should_stop(void); 31int kthread_should_stop(void);
33 32
34#endif /* _LINUX_KTHREAD_H */ 33#endif /* _LINUX_KTHREAD_H */
diff --git a/include/linux/list.h b/include/linux/list.h
index 6b74adf5297f..65a5b5ceda49 100644
--- a/include/linux/list.h
+++ b/include/linux/list.h
@@ -265,6 +265,17 @@ static inline void list_move_tail(struct list_head *list,
265} 265}
266 266
267/** 267/**
268 * list_is_last - tests whether @list is the last entry in list @head
269 * @list: the entry to test
270 * @head: the head of the list
271 */
272static inline int list_is_last(const struct list_head *list,
273 const struct list_head *head)
274{
275 return list->next == head;
276}
277
278/**
268 * list_empty - tests whether a list is empty 279 * list_empty - tests whether a list is empty
269 * @head: the list to test. 280 * @head: the list to test.
270 */ 281 */
diff --git a/include/linux/module.h b/include/linux/module.h
index d06c74fb8c26..0dfb794c52d3 100644
--- a/include/linux/module.h
+++ b/include/linux/module.h
@@ -362,10 +362,8 @@ int is_module_address(unsigned long addr);
362 362
363/* Returns module and fills in value, defined and namebuf, or NULL if 363/* Returns module and fills in value, defined and namebuf, or NULL if
364 symnum out of range. */ 364 symnum out of range. */
365struct module *module_get_kallsym(unsigned int symnum, 365struct module *module_get_kallsym(unsigned int symnum, unsigned long *value,
366 unsigned long *value, 366 char *type, char *name, size_t namelen);
367 char *type,
368 char namebuf[128]);
369 367
370/* Look for this name: can be of form module:name. */ 368/* Look for this name: can be of form module:name. */
371unsigned long module_kallsyms_lookup_name(const char *name); 369unsigned long module_kallsyms_lookup_name(const char *name);
@@ -535,8 +533,8 @@ static inline const char *module_address_lookup(unsigned long addr,
535 533
536static inline struct module *module_get_kallsym(unsigned int symnum, 534static inline struct module *module_get_kallsym(unsigned int symnum,
537 unsigned long *value, 535 unsigned long *value,
538 char *type, 536 char *type, char *name,
539 char namebuf[128]) 537 size_t namelen)
540{ 538{
541 return NULL; 539 return NULL;
542} 540}
diff --git a/include/linux/namei.h b/include/linux/namei.h
index 58cb3d3d44b4..45511a5918d3 100644
--- a/include/linux/namei.h
+++ b/include/linux/namei.h
@@ -11,7 +11,7 @@ struct open_intent {
11 struct file *file; 11 struct file *file;
12}; 12};
13 13
14enum { MAX_NESTED_LINKS = 5 }; 14enum { MAX_NESTED_LINKS = 8 };
15 15
16struct nameidata { 16struct nameidata {
17 struct dentry *dentry; 17 struct dentry *dentry;
diff --git a/include/linux/nsc_gpio.h b/include/linux/nsc_gpio.h
index 135742cfada5..7da0cf3702ee 100644
--- a/include/linux/nsc_gpio.h
+++ b/include/linux/nsc_gpio.h
@@ -25,8 +25,6 @@ struct nsc_gpio_ops {
25 void (*gpio_dump) (struct nsc_gpio_ops *amp, unsigned iminor); 25 void (*gpio_dump) (struct nsc_gpio_ops *amp, unsigned iminor);
26 int (*gpio_get) (unsigned iminor); 26 int (*gpio_get) (unsigned iminor);
27 void (*gpio_set) (unsigned iminor, int state); 27 void (*gpio_set) (unsigned iminor, int state);
28 void (*gpio_set_high)(unsigned iminor);
29 void (*gpio_set_low) (unsigned iminor);
30 void (*gpio_change) (unsigned iminor); 28 void (*gpio_change) (unsigned iminor);
31 int (*gpio_current) (unsigned iminor); 29 int (*gpio_current) (unsigned iminor);
32 struct device* dev; /* for dev_dbg() support, set in init */ 30 struct device* dev; /* for dev_dbg() support, set in init */
diff --git a/include/linux/pci.h b/include/linux/pci.h
index 983fca251b25..8565b81d7fbc 100644
--- a/include/linux/pci.h
+++ b/include/linux/pci.h
@@ -161,6 +161,7 @@ struct pci_dev {
161 unsigned int is_enabled:1; /* pci_enable_device has been called */ 161 unsigned int is_enabled:1; /* pci_enable_device has been called */
162 unsigned int is_busmaster:1; /* device is busmaster */ 162 unsigned int is_busmaster:1; /* device is busmaster */
163 unsigned int no_msi:1; /* device may not use msi */ 163 unsigned int no_msi:1; /* device may not use msi */
164 unsigned int no_d1d2:1; /* only allow d0 or d3 */
164 unsigned int block_ucfg_access:1; /* userspace config space access is blocked */ 165 unsigned int block_ucfg_access:1; /* userspace config space access is blocked */
165 unsigned int broken_parity_status:1; /* Device generates false positive parity */ 166 unsigned int broken_parity_status:1; /* Device generates false positive parity */
166 unsigned int msi_enabled:1; 167 unsigned int msi_enabled:1;
diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
index 6bce4a240364..96930cb5927c 100644
--- a/include/linux/pci_regs.h
+++ b/include/linux/pci_regs.h
@@ -422,7 +422,23 @@
422#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */ 422#define PCI_ERR_CAP_ECRC_CHKE 0x00000100 /* ECRC Check Enable */
423#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */ 423#define PCI_ERR_HEADER_LOG 28 /* Header Log Register (16 bytes) */
424#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */ 424#define PCI_ERR_ROOT_COMMAND 44 /* Root Error Command */
425/* Correctable Err Reporting Enable */
426#define PCI_ERR_ROOT_CMD_COR_EN 0x00000001
427/* Non-fatal Err Reporting Enable */
428#define PCI_ERR_ROOT_CMD_NONFATAL_EN 0x00000002
429/* Fatal Err Reporting Enable */
430#define PCI_ERR_ROOT_CMD_FATAL_EN 0x00000004
425#define PCI_ERR_ROOT_STATUS 48 431#define PCI_ERR_ROOT_STATUS 48
432#define PCI_ERR_ROOT_COR_RCV 0x00000001 /* ERR_COR Received */
433/* Multi ERR_COR Received */
434#define PCI_ERR_ROOT_MULTI_COR_RCV 0x00000002
435/* ERR_FATAL/NONFATAL Recevied */
436#define PCI_ERR_ROOT_UNCOR_RCV 0x00000004
437/* Multi ERR_FATAL/NONFATAL Recevied */
438#define PCI_ERR_ROOT_MULTI_UNCOR_RCV 0x00000008
439#define PCI_ERR_ROOT_FIRST_FATAL 0x00000010 /* First Fatal */
440#define PCI_ERR_ROOT_NONFATAL_RCV 0x00000020 /* Non-Fatal Received */
441#define PCI_ERR_ROOT_FATAL_RCV 0x00000040 /* Fatal Received */
426#define PCI_ERR_ROOT_COR_SRC 52 442#define PCI_ERR_ROOT_COR_SRC 52
427#define PCI_ERR_ROOT_SRC 54 443#define PCI_ERR_ROOT_SRC 54
428 444
diff --git a/include/linux/pm_legacy.h b/include/linux/pm_legacy.h
index 78027c533b94..514729a44688 100644
--- a/include/linux/pm_legacy.h
+++ b/include/linux/pm_legacy.h
@@ -15,11 +15,6 @@ struct pm_dev __deprecated *
15pm_register(pm_dev_t type, unsigned long id, pm_callback callback); 15pm_register(pm_dev_t type, unsigned long id, pm_callback callback);
16 16
17/* 17/*
18 * Unregister all devices with matching callback
19 */
20void __deprecated pm_unregister_all(pm_callback callback);
21
22/*
23 * Send a request to all devices 18 * Send a request to all devices
24 */ 19 */
25int __deprecated pm_send_all(pm_request_t rqst, void *data); 20int __deprecated pm_send_all(pm_request_t rqst, void *data);
@@ -35,8 +30,6 @@ static inline struct pm_dev *pm_register(pm_dev_t type,
35 return NULL; 30 return NULL;
36} 31}
37 32
38static inline void pm_unregister_all(pm_callback callback) {}
39
40static inline int pm_send_all(pm_request_t rqst, void *data) 33static inline int pm_send_all(pm_request_t rqst, void *data)
41{ 34{
42 return 0; 35 return 0;
diff --git a/include/linux/root_dev.h b/include/linux/root_dev.h
index ea4bc9d13735..ed241aad7c17 100644
--- a/include/linux/root_dev.h
+++ b/include/linux/root_dev.h
@@ -2,6 +2,8 @@
2#define _ROOT_DEV_H_ 2#define _ROOT_DEV_H_
3 3
4#include <linux/major.h> 4#include <linux/major.h>
5#include <linux/types.h>
6#include <linux/kdev_t.h>
5 7
6enum { 8enum {
7 Root_NFS = MKDEV(UNNAMED_MAJOR, 255), 9 Root_NFS = MKDEV(UNNAMED_MAJOR, 255),
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 1c876e27ff93..6afa72e080cb 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -463,6 +463,10 @@ struct signal_struct {
463#ifdef CONFIG_BSD_PROCESS_ACCT 463#ifdef CONFIG_BSD_PROCESS_ACCT
464 struct pacct_struct pacct; /* per-process accounting information */ 464 struct pacct_struct pacct; /* per-process accounting information */
465#endif 465#endif
466#ifdef CONFIG_TASKSTATS
467 spinlock_t stats_lock;
468 struct taskstats *stats;
469#endif
466}; 470};
467 471
468/* Context switch must be unlocked if interrupts are to be enabled */ 472/* Context switch must be unlocked if interrupts are to be enabled */
@@ -537,7 +541,7 @@ extern struct user_struct root_user;
537struct backing_dev_info; 541struct backing_dev_info;
538struct reclaim_state; 542struct reclaim_state;
539 543
540#ifdef CONFIG_SCHEDSTATS 544#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
541struct sched_info { 545struct sched_info {
542 /* cumulative counters */ 546 /* cumulative counters */
543 unsigned long cpu_time, /* time spent on the cpu */ 547 unsigned long cpu_time, /* time spent on the cpu */
@@ -548,9 +552,53 @@ struct sched_info {
548 unsigned long last_arrival, /* when we last ran on a cpu */ 552 unsigned long last_arrival, /* when we last ran on a cpu */
549 last_queued; /* when we were last queued to run */ 553 last_queued; /* when we were last queued to run */
550}; 554};
555#endif /* defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT) */
551 556
557#ifdef CONFIG_SCHEDSTATS
552extern struct file_operations proc_schedstat_operations; 558extern struct file_operations proc_schedstat_operations;
559#endif /* CONFIG_SCHEDSTATS */
560
561#ifdef CONFIG_TASK_DELAY_ACCT
562struct task_delay_info {
563 spinlock_t lock;
564 unsigned int flags; /* Private per-task flags */
565
566 /* For each stat XXX, add following, aligned appropriately
567 *
568 * struct timespec XXX_start, XXX_end;
569 * u64 XXX_delay;
570 * u32 XXX_count;
571 *
572 * Atomicity of updates to XXX_delay, XXX_count protected by
573 * single lock above (split into XXX_lock if contention is an issue).
574 */
575
576 /*
577 * XXX_count is incremented on every XXX operation, the delay
578 * associated with the operation is added to XXX_delay.
579 * XXX_delay contains the accumulated delay time in nanoseconds.
580 */
581 struct timespec blkio_start, blkio_end; /* Shared by blkio, swapin */
582 u64 blkio_delay; /* wait for sync block io completion */
583 u64 swapin_delay; /* wait for swapin block io completion */
584 u32 blkio_count; /* total count of the number of sync block */
585 /* io operations performed */
586 u32 swapin_count; /* total count of the number of swapin block */
587 /* io operations performed */
588};
589#endif /* CONFIG_TASK_DELAY_ACCT */
590
591static inline int sched_info_on(void)
592{
593#ifdef CONFIG_SCHEDSTATS
594 return 1;
595#elif defined(CONFIG_TASK_DELAY_ACCT)
596 extern int delayacct_on;
597 return delayacct_on;
598#else
599 return 0;
553#endif 600#endif
601}
554 602
555enum idle_type 603enum idle_type
556{ 604{
@@ -747,7 +795,7 @@ struct task_struct {
747 cpumask_t cpus_allowed; 795 cpumask_t cpus_allowed;
748 unsigned int time_slice, first_time_slice; 796 unsigned int time_slice, first_time_slice;
749 797
750#ifdef CONFIG_SCHEDSTATS 798#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
751 struct sched_info sched_info; 799 struct sched_info sched_info;
752#endif 800#endif
753 801
@@ -945,6 +993,10 @@ struct task_struct {
945 * cache last used pipe for splice 993 * cache last used pipe for splice
946 */ 994 */
947 struct pipe_inode_info *splice_pipe; 995 struct pipe_inode_info *splice_pipe;
996#ifdef CONFIG_TASK_DELAY_ACCT
997 spinlock_t delays_lock;
998 struct task_delay_info *delays;
999#endif
948}; 1000};
949 1001
950static inline pid_t process_group(struct task_struct *tsk) 1002static inline pid_t process_group(struct task_struct *tsk)
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 058cba70818a..86501a3de2ac 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -227,6 +227,7 @@ struct uart_port {
227#define UPIO_MEM (2) 227#define UPIO_MEM (2)
228#define UPIO_MEM32 (3) 228#define UPIO_MEM32 (3)
229#define UPIO_AU (4) /* Au1x00 type IO */ 229#define UPIO_AU (4) /* Au1x00 type IO */
230#define UPIO_TSI (5) /* Tsi108/109 type IO */
230 231
231 unsigned int read_status_mask; /* driver specific */ 232 unsigned int read_status_mask; /* driver specific */
232 unsigned int ignore_status_mask; /* driver specific */ 233 unsigned int ignore_status_mask; /* driver specific */
diff --git a/include/linux/taskstats.h b/include/linux/taskstats.h
new file mode 100644
index 000000000000..f1cb6cddd19d
--- /dev/null
+++ b/include/linux/taskstats.h
@@ -0,0 +1,137 @@
1/* taskstats.h - exporting per-task statistics
2 *
3 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4 * (C) Balbir Singh, IBM Corp. 2006
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of version 2.1 of the GNU Lesser General Public License
8 * as published by the Free Software Foundation.
9 *
10 * This program is distributed in the hope that it would be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 */
14
15#ifndef _LINUX_TASKSTATS_H
16#define _LINUX_TASKSTATS_H
17
18/* Format for per-task data returned to userland when
19 * - a task exits
20 * - listener requests stats for a task
21 *
22 * The struct is versioned. Newer versions should only add fields to
23 * the bottom of the struct to maintain backward compatibility.
24 *
25 *
26 * To add new fields
27 * a) bump up TASKSTATS_VERSION
28 * b) add comment indicating new version number at end of struct
29 * c) add new fields after version comment; maintain 64-bit alignment
30 */
31
32#define TASKSTATS_VERSION 1
33
34struct taskstats {
35
36 /* Version 1 */
37 __u16 version;
38 __u16 padding[3]; /* Userspace should not interpret the padding
39 * field which can be replaced by useful
40 * fields if struct taskstats is extended.
41 */
42
43 /* Delay accounting fields start
44 *
45 * All values, until comment "Delay accounting fields end" are
46 * available only if delay accounting is enabled, even though the last
47 * few fields are not delays
48 *
49 * xxx_count is the number of delay values recorded
50 * xxx_delay_total is the corresponding cumulative delay in nanoseconds
51 *
52 * xxx_delay_total wraps around to zero on overflow
53 * xxx_count incremented regardless of overflow
54 */
55
56 /* Delay waiting for cpu, while runnable
57 * count, delay_total NOT updated atomically
58 */
59 __u64 cpu_count;
60 __u64 cpu_delay_total;
61
62 /* Following four fields atomically updated using task->delays->lock */
63
64 /* Delay waiting for synchronous block I/O to complete
65 * does not account for delays in I/O submission
66 */
67 __u64 blkio_count;
68 __u64 blkio_delay_total;
69
70 /* Delay waiting for page fault I/O (swap in only) */
71 __u64 swapin_count;
72 __u64 swapin_delay_total;
73
74 /* cpu "wall-clock" running time
75 * On some architectures, value will adjust for cpu time stolen
76 * from the kernel in involuntary waits due to virtualization.
77 * Value is cumulative, in nanoseconds, without a corresponding count
78 * and wraps around to zero silently on overflow
79 */
80 __u64 cpu_run_real_total;
81
82 /* cpu "virtual" running time
83 * Uses time intervals seen by the kernel i.e. no adjustment
84 * for kernel's involuntary waits due to virtualization.
85 * Value is cumulative, in nanoseconds, without a corresponding count
86 * and wraps around to zero silently on overflow
87 */
88 __u64 cpu_run_virtual_total;
89 /* Delay accounting fields end */
90 /* version 1 ends here */
91};
92
93
94/*
95 * Commands sent from userspace
96 * Not versioned. New commands should only be inserted at the enum's end
97 * prior to __TASKSTATS_CMD_MAX
98 */
99
100enum {
101 TASKSTATS_CMD_UNSPEC = 0, /* Reserved */
102 TASKSTATS_CMD_GET, /* user->kernel request/get-response */
103 TASKSTATS_CMD_NEW, /* kernel->user event */
104 __TASKSTATS_CMD_MAX,
105};
106
107#define TASKSTATS_CMD_MAX (__TASKSTATS_CMD_MAX - 1)
108
109enum {
110 TASKSTATS_TYPE_UNSPEC = 0, /* Reserved */
111 TASKSTATS_TYPE_PID, /* Process id */
112 TASKSTATS_TYPE_TGID, /* Thread group id */
113 TASKSTATS_TYPE_STATS, /* taskstats structure */
114 TASKSTATS_TYPE_AGGR_PID, /* contains pid + stats */
115 TASKSTATS_TYPE_AGGR_TGID, /* contains tgid + stats */
116 __TASKSTATS_TYPE_MAX,
117};
118
119#define TASKSTATS_TYPE_MAX (__TASKSTATS_TYPE_MAX - 1)
120
121enum {
122 TASKSTATS_CMD_ATTR_UNSPEC = 0,
123 TASKSTATS_CMD_ATTR_PID,
124 TASKSTATS_CMD_ATTR_TGID,
125 TASKSTATS_CMD_ATTR_REGISTER_CPUMASK,
126 TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK,
127 __TASKSTATS_CMD_ATTR_MAX,
128};
129
130#define TASKSTATS_CMD_ATTR_MAX (__TASKSTATS_CMD_ATTR_MAX - 1)
131
132/* NETLINK_GENERIC related info */
133
134#define TASKSTATS_GENL_NAME "TASKSTATS"
135#define TASKSTATS_GENL_VERSION 0x1
136
137#endif /* _LINUX_TASKSTATS_H */
diff --git a/include/linux/taskstats_kern.h b/include/linux/taskstats_kern.h
new file mode 100644
index 000000000000..16894b7edcc8
--- /dev/null
+++ b/include/linux/taskstats_kern.h
@@ -0,0 +1,89 @@
1/* taskstats_kern.h - kernel header for per-task statistics interface
2 *
3 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4 * (C) Balbir Singh, IBM Corp. 2006
5 */
6
7#ifndef _LINUX_TASKSTATS_KERN_H
8#define _LINUX_TASKSTATS_KERN_H
9
10#include <linux/taskstats.h>
11#include <linux/sched.h>
12#include <net/genetlink.h>
13
14#ifdef CONFIG_TASKSTATS
15extern kmem_cache_t *taskstats_cache;
16extern struct mutex taskstats_exit_mutex;
17
18static inline void taskstats_exit_free(struct taskstats *tidstats)
19{
20 if (tidstats)
21 kmem_cache_free(taskstats_cache, tidstats);
22}
23
24static inline void taskstats_tgid_init(struct signal_struct *sig)
25{
26 spin_lock_init(&sig->stats_lock);
27 sig->stats = NULL;
28}
29
30static inline void taskstats_tgid_alloc(struct signal_struct *sig)
31{
32 struct taskstats *stats;
33 unsigned long flags;
34
35 stats = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL);
36 if (!stats)
37 return;
38
39 spin_lock_irqsave(&sig->stats_lock, flags);
40 if (!sig->stats) {
41 sig->stats = stats;
42 stats = NULL;
43 }
44 spin_unlock_irqrestore(&sig->stats_lock, flags);
45
46 if (stats)
47 kmem_cache_free(taskstats_cache, stats);
48}
49
50static inline void taskstats_tgid_free(struct signal_struct *sig)
51{
52 struct taskstats *stats = NULL;
53 unsigned long flags;
54
55 spin_lock_irqsave(&sig->stats_lock, flags);
56 if (sig->stats) {
57 stats = sig->stats;
58 sig->stats = NULL;
59 }
60 spin_unlock_irqrestore(&sig->stats_lock, flags);
61 if (stats)
62 kmem_cache_free(taskstats_cache, stats);
63}
64
65extern void taskstats_exit_alloc(struct taskstats **, unsigned int *);
66extern void taskstats_exit_send(struct task_struct *, struct taskstats *, int, unsigned int);
67extern void taskstats_init_early(void);
68extern void taskstats_tgid_alloc(struct signal_struct *);
69#else
70static inline void taskstats_exit_alloc(struct taskstats **ptidstats, unsigned int *mycpu)
71{}
72static inline void taskstats_exit_free(struct taskstats *ptidstats)
73{}
74static inline void taskstats_exit_send(struct task_struct *tsk,
75 struct taskstats *tidstats,
76 int group_dead, unsigned int cpu)
77{}
78static inline void taskstats_tgid_init(struct signal_struct *sig)
79{}
80static inline void taskstats_tgid_alloc(struct signal_struct *sig)
81{}
82static inline void taskstats_tgid_free(struct signal_struct *sig)
83{}
84static inline void taskstats_init_early(void)
85{}
86#endif /* CONFIG_TASKSTATS */
87
88#endif
89
diff --git a/include/linux/time.h b/include/linux/time.h
index c05f8bb9a323..a5b739967b74 100644
--- a/include/linux/time.h
+++ b/include/linux/time.h
@@ -71,6 +71,18 @@ extern unsigned long mktime(const unsigned int year, const unsigned int mon,
71extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec); 71extern void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec);
72 72
73/* 73/*
74 * sub = lhs - rhs, in normalized form
75 */
76static inline struct timespec timespec_sub(struct timespec lhs,
77 struct timespec rhs)
78{
79 struct timespec ts_delta;
80 set_normalized_timespec(&ts_delta, lhs.tv_sec - rhs.tv_sec,
81 lhs.tv_nsec - rhs.tv_nsec);
82 return ts_delta;
83}
84
85/*
74 * Returns true if the timespec is norm, false if denorm: 86 * Returns true if the timespec is norm, false if denorm:
75 */ 87 */
76#define timespec_valid(ts) \ 88#define timespec_valid(ts) \
diff --git a/include/linux/usb.h b/include/linux/usb.h
index 8dead32e7ebf..c944e8f06a4a 100644
--- a/include/linux/usb.h
+++ b/include/linux/usb.h
@@ -48,7 +48,7 @@ struct ep_device;
48 * @urb_list: urbs queued to this endpoint; maintained by usbcore 48 * @urb_list: urbs queued to this endpoint; maintained by usbcore
49 * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH) 49 * @hcpriv: for use by HCD; typically holds hardware dma queue head (QH)
50 * with one or more transfer descriptors (TDs) per urb 50 * with one or more transfer descriptors (TDs) per urb
51 * @kobj: kobject for sysfs info 51 * @ep_dev: ep_device for sysfs info
52 * @extra: descriptors following this endpoint in the configuration 52 * @extra: descriptors following this endpoint in the configuration
53 * @extralen: how many bytes of "extra" are valid 53 * @extralen: how many bytes of "extra" are valid
54 * 54 *
diff --git a/drivers/usb/serial/usb-serial.h b/include/linux/usb/serial.h
index 0f2802a60194..91c983eef899 100644
--- a/drivers/usb/serial/usb-serial.h
+++ b/include/linux/usb/serial.h
@@ -1,12 +1,12 @@
1/* 1/*
2 * USB Serial Converter driver 2 * USB Serial Converter stuff
3 * 3 *
4 * Copyright (C) 1999 - 2005 4 * Copyright (C) 1999 - 2005
5 * Greg Kroah-Hartman (greg@kroah.com) 5 * Greg Kroah-Hartman (greg@kroah.com)
6 * 6 *
7 * This program is free software; you can redistribute it and/or modify 7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by 8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License. 9 * the Free Software Foundation; version 2 of the License.
10 * 10 *
11 */ 11 */
12 12
@@ -171,7 +171,7 @@ static inline void usb_set_serial_data (struct usb_serial *serial, void *data)
171 * but before the device has been fully initialized by the usb_serial 171 * but before the device has been fully initialized by the usb_serial
172 * subsystem. Use this function to download any firmware to the device, 172 * subsystem. Use this function to download any firmware to the device,
173 * or any other early initialization that might be needed. 173 * or any other early initialization that might be needed.
174 * Return 0 to continue on with the initialization sequence. Anything 174 * Return 0 to continue on with the initialization sequence. Anything
175 * else will abort it. 175 * else will abort it.
176 * @attach: pointer to the driver's attach function. 176 * @attach: pointer to the driver's attach function.
177 * This will be called when the struct usb_serial structure is fully set 177 * This will be called when the struct usb_serial structure is fully set
diff --git a/include/linux/usb_ch9.h b/include/linux/usb_ch9.h
index a2aacfc7af2f..c720d107ff29 100644
--- a/include/linux/usb_ch9.h
+++ b/include/linux/usb_ch9.h
@@ -51,6 +51,9 @@
51#define USB_RECIP_INTERFACE 0x01 51#define USB_RECIP_INTERFACE 0x01
52#define USB_RECIP_ENDPOINT 0x02 52#define USB_RECIP_ENDPOINT 0x02
53#define USB_RECIP_OTHER 0x03 53#define USB_RECIP_OTHER 0x03
54/* From Wireless USB 1.0 */
55#define USB_RECIP_PORT 0x04
56#define USB_RECIP_RPIPE 0x05
54 57
55/* 58/*
56 * Standard requests, for the bRequest field of a SETUP packet. 59 * Standard requests, for the bRequest field of a SETUP packet.
@@ -73,7 +76,9 @@
73 76
74#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */ 77#define USB_REQ_SET_ENCRYPTION 0x0D /* Wireless USB */
75#define USB_REQ_GET_ENCRYPTION 0x0E 78#define USB_REQ_GET_ENCRYPTION 0x0E
79#define USB_REQ_RPIPE_ABORT 0x0E
76#define USB_REQ_SET_HANDSHAKE 0x0F 80#define USB_REQ_SET_HANDSHAKE 0x0F
81#define USB_REQ_RPIPE_RESET 0x0F
77#define USB_REQ_GET_HANDSHAKE 0x10 82#define USB_REQ_GET_HANDSHAKE 0x10
78#define USB_REQ_SET_CONNECTION 0x11 83#define USB_REQ_SET_CONNECTION 0x11
79#define USB_REQ_SET_SECURITY_DATA 0x12 84#define USB_REQ_SET_SECURITY_DATA 0x12
@@ -159,6 +164,8 @@ struct usb_ctrlrequest {
159#define USB_DT_BOS 0x0f 164#define USB_DT_BOS 0x0f
160#define USB_DT_DEVICE_CAPABILITY 0x10 165#define USB_DT_DEVICE_CAPABILITY 0x10
161#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11 166#define USB_DT_WIRELESS_ENDPOINT_COMP 0x11
167#define USB_DT_WIRE_ADAPTER 0x21
168#define USB_DT_RPIPE 0x22
162 169
163/* conventional codes for class-specific descriptors */ 170/* conventional codes for class-specific descriptors */
164#define USB_DT_CS_DEVICE 0x21 171#define USB_DT_CS_DEVICE 0x21
diff --git a/include/linux/usb_gadget.h b/include/linux/usb_gadget.h
index 1d78870ed8af..e17186dbcdca 100644
--- a/include/linux/usb_gadget.h
+++ b/include/linux/usb_gadget.h
@@ -872,9 +872,9 @@ int usb_gadget_config_buf(const struct usb_config_descriptor *config,
872/* utility wrapping a simple endpoint selection policy */ 872/* utility wrapping a simple endpoint selection policy */
873 873
874extern struct usb_ep *usb_ep_autoconfig (struct usb_gadget *, 874extern struct usb_ep *usb_ep_autoconfig (struct usb_gadget *,
875 struct usb_endpoint_descriptor *) __init; 875 struct usb_endpoint_descriptor *) __devinit;
876 876
877extern void usb_ep_autoconfig_reset (struct usb_gadget *) __init; 877extern void usb_ep_autoconfig_reset (struct usb_gadget *) __devinit;
878 878
879#endif /* __KERNEL__ */ 879#endif /* __KERNEL__ */
880 880
diff --git a/include/linux/usb_usual.h b/include/linux/usb_usual.h
index 608487a62c98..f38f43f20fae 100644
--- a/include/linux/usb_usual.h
+++ b/include/linux/usb_usual.h
@@ -43,6 +43,8 @@
43 /* Need delay after Command phase */ \ 43 /* Need delay after Command phase */ \
44 US_FLAG(NO_WP_DETECT, 0x00000200) \ 44 US_FLAG(NO_WP_DETECT, 0x00000200) \
45 /* Don't check for write-protect */ \ 45 /* Don't check for write-protect */ \
46 US_FLAG(MAX_SECTORS_64, 0x00000400) \
47 /* Sets max_sectors to 64 */
46 48
47#define US_FLAG(name, value) US_FL_##name = value , 49#define US_FLAG(name, value) US_FL_##name = value ,
48enum { US_DO_ALL_FLAGS }; 50enum { US_DO_ALL_FLAGS };
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
index f6024ab4eff0..71b6363caaaf 100644
--- a/include/linux/vmalloc.h
+++ b/include/linux/vmalloc.h
@@ -11,6 +11,7 @@ struct vm_area_struct;
11#define VM_ALLOC 0x00000002 /* vmalloc() */ 11#define VM_ALLOC 0x00000002 /* vmalloc() */
12#define VM_MAP 0x00000004 /* vmap()ed pages */ 12#define VM_MAP 0x00000004 /* vmap()ed pages */
13#define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */ 13#define VM_USERMAP 0x00000008 /* suitable for remap_vmalloc_range */
14#define VM_VPAGES 0x00000010 /* buffer for pages was vmalloc'ed */
14/* bits [20..32] reserved for arch specific ioremap internals */ 15/* bits [20..32] reserved for arch specific ioremap internals */
15 16
16/* 17/*
diff --git a/include/net/genetlink.h b/include/net/genetlink.h
index 805de50df00d..8c2287264266 100644
--- a/include/net/genetlink.h
+++ b/include/net/genetlink.h
@@ -150,4 +150,24 @@ static inline int genlmsg_unicast(struct sk_buff *skb, u32 pid)
150 return nlmsg_unicast(genl_sock, skb, pid); 150 return nlmsg_unicast(genl_sock, skb, pid);
151} 151}
152 152
153/**
154 * gennlmsg_data - head of message payload
155 * @gnlh: genetlink messsage header
156 */
157static inline void *genlmsg_data(const struct genlmsghdr *gnlh)
158{
159 return ((unsigned char *) gnlh + GENL_HDRLEN);
160}
161
162/**
163 * genlmsg_len - length of message payload
164 * @gnlh: genetlink message header
165 */
166static inline int genlmsg_len(const struct genlmsghdr *gnlh)
167{
168 struct nlmsghdr *nlh = (struct nlmsghdr *)((unsigned char *)gnlh -
169 NLMSG_HDRLEN);
170 return (nlh->nlmsg_len - GENL_HDRLEN - NLMSG_HDRLEN);
171}
172
153#endif /* __NET_GENERIC_NETLINK_H */ 173#endif /* __NET_GENERIC_NETLINK_H */
diff --git a/include/rdma/ib_addr.h b/include/rdma/ib_addr.h
index fcb5ba87dcc5..0ff67398928d 100644
--- a/include/rdma/ib_addr.h
+++ b/include/rdma/ib_addr.h
@@ -89,9 +89,10 @@ static inline void ib_addr_set_pkey(struct rdma_dev_addr *dev_addr, u16 pkey)
89 dev_addr->broadcast[9] = (unsigned char) pkey; 89 dev_addr->broadcast[9] = (unsigned char) pkey;
90} 90}
91 91
92static inline union ib_gid *ib_addr_get_sgid(struct rdma_dev_addr *dev_addr) 92static inline void ib_addr_get_sgid(struct rdma_dev_addr *dev_addr,
93 union ib_gid *gid)
93{ 94{
94 return (union ib_gid *) (dev_addr->src_dev_addr + 4); 95 memcpy(gid, dev_addr->src_dev_addr + 4, sizeof *gid);
95} 96}
96 97
97static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr, 98static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr,
@@ -100,9 +101,10 @@ static inline void ib_addr_set_sgid(struct rdma_dev_addr *dev_addr,
100 memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid); 101 memcpy(dev_addr->src_dev_addr + 4, gid, sizeof *gid);
101} 102}
102 103
103static inline union ib_gid *ib_addr_get_dgid(struct rdma_dev_addr *dev_addr) 104static inline void ib_addr_get_dgid(struct rdma_dev_addr *dev_addr,
105 union ib_gid *gid)
104{ 106{
105 return (union ib_gid *) (dev_addr->dst_dev_addr + 4); 107 memcpy(gid, dev_addr->dst_dev_addr + 4, sizeof *gid);
106} 108}
107 109
108static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr, 110static inline void ib_addr_set_dgid(struct rdma_dev_addr *dev_addr,
diff --git a/include/rdma/ib_fmr_pool.h b/include/rdma/ib_fmr_pool.h
index 4ace54cd0cce..00dadbf94e1d 100644
--- a/include/rdma/ib_fmr_pool.h
+++ b/include/rdma/ib_fmr_pool.h
@@ -88,7 +88,7 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool);
88struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle, 88struct ib_pool_fmr *ib_fmr_pool_map_phys(struct ib_fmr_pool *pool_handle,
89 u64 *page_list, 89 u64 *page_list,
90 int list_len, 90 int list_len,
91 u64 *io_virtual_address); 91 u64 io_virtual_address);
92 92
93int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr); 93int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr);
94 94
diff --git a/include/sound/core.h b/include/sound/core.h
index 5d184be0ff72..bab3ff457e40 100644
--- a/include/sound/core.h
+++ b/include/sound/core.h
@@ -188,8 +188,6 @@ struct snd_minor {
188 int device; /* device number */ 188 int device; /* device number */
189 const struct file_operations *f_ops; /* file operations */ 189 const struct file_operations *f_ops; /* file operations */
190 void *private_data; /* private data for f_ops->open */ 190 void *private_data; /* private data for f_ops->open */
191 char name[0]; /* device name (keep at the end of
192 structure) */
193}; 191};
194 192
195/* sound.c */ 193/* sound.c */
diff --git a/include/sound/cs46xx.h b/include/sound/cs46xx.h
index 80b2979c0cba..685928e6f65a 100644
--- a/include/sound/cs46xx.h
+++ b/include/sound/cs46xx.h
@@ -1704,6 +1704,7 @@ struct snd_cs46xx {
1704 int acpi_port; 1704 int acpi_port;
1705 struct snd_kcontrol *eapd_switch; /* for amplifier hack */ 1705 struct snd_kcontrol *eapd_switch; /* for amplifier hack */
1706 int accept_valid; /* accept mmap valid (for OSS) */ 1706 int accept_valid; /* accept mmap valid (for OSS) */
1707 int in_suspend;
1707 1708
1708 struct gameport *gameport; 1709 struct gameport *gameport;
1709 1710
diff --git a/include/video/mbxfb.h b/include/video/mbxfb.h
new file mode 100644
index 000000000000..3bde0f5cd55c
--- /dev/null
+++ b/include/video/mbxfb.h
@@ -0,0 +1,28 @@
1#ifndef __MBX_FB_H
2#define __MBX_FB_H
3
4struct mbxfb_val {
5 unsigned int defval;
6 unsigned int min;
7 unsigned int max;
8};
9
10struct fb_info;
11
12struct mbxfb_platform_data {
13 /* Screen info */
14 struct mbxfb_val xres;
15 struct mbxfb_val yres;
16 struct mbxfb_val bpp;
17
18 /* Memory info */
19 unsigned long memsize; /* if 0 use ODFB? */
20 unsigned long timings1;
21 unsigned long timings2;
22 unsigned long timings3;
23
24 int (*probe)(struct fb_info *fb);
25 int (*remove)(struct fb_info *fb);
26};
27
28#endif /* __MBX_FB_H */
diff --git a/init/Kconfig b/init/Kconfig
index a5b073a103e7..a099fc6526d9 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -158,6 +158,30 @@ config BSD_PROCESS_ACCT_V3
158 for processing it. A preliminary version of these tools is available 158 for processing it. A preliminary version of these tools is available
159 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>. 159 at <http://www.physik3.uni-rostock.de/tim/kernel/utils/acct/>.
160 160
161config TASKSTATS
162 bool "Export task/process statistics through netlink (EXPERIMENTAL)"
163 depends on NET
164 default n
165 help
166 Export selected statistics for tasks/processes through the
167 generic netlink interface. Unlike BSD process accounting, the
168 statistics are available during the lifetime of tasks/processes as
169 responses to commands. Like BSD accounting, they are sent to user
170 space on task exit.
171
172 Say N if unsure.
173
174config TASK_DELAY_ACCT
175 bool "Enable per-task delay accounting (EXPERIMENTAL)"
176 depends on TASKSTATS
177 help
178 Collect information on time spent by a task waiting for system
179 resources like cpu, synchronous block I/O completion and swapping
180 in pages. Such statistics can help in setting a task's priorities
181 relative to other tasks for cpu, io, rss limits etc.
182
183 Say N if unsure.
184
161config SYSCTL 185config SYSCTL
162 bool "Sysctl support" if EMBEDDED 186 bool "Sysctl support" if EMBEDDED
163 default y 187 default y
diff --git a/init/main.c b/init/main.c
index 628b8e9e841a..8651a720a092 100644
--- a/init/main.c
+++ b/init/main.c
@@ -41,6 +41,8 @@
41#include <linux/cpu.h> 41#include <linux/cpu.h>
42#include <linux/cpuset.h> 42#include <linux/cpuset.h>
43#include <linux/efi.h> 43#include <linux/efi.h>
44#include <linux/taskstats_kern.h>
45#include <linux/delayacct.h>
44#include <linux/unistd.h> 46#include <linux/unistd.h>
45#include <linux/rmap.h> 47#include <linux/rmap.h>
46#include <linux/mempolicy.h> 48#include <linux/mempolicy.h>
@@ -574,6 +576,8 @@ asmlinkage void __init start_kernel(void)
574 proc_root_init(); 576 proc_root_init();
575#endif 577#endif
576 cpuset_init(); 578 cpuset_init();
579 taskstats_init_early();
580 delayacct_init();
577 581
578 check_bugs(); 582 check_bugs();
579 583
diff --git a/kernel/Makefile b/kernel/Makefile
index 47dbcd570cd8..d62ec66c1af2 100644
--- a/kernel/Makefile
+++ b/kernel/Makefile
@@ -48,6 +48,8 @@ obj-$(CONFIG_GENERIC_HARDIRQS) += irq/
48obj-$(CONFIG_SECCOMP) += seccomp.o 48obj-$(CONFIG_SECCOMP) += seccomp.o
49obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o 49obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o
50obj-$(CONFIG_RELAY) += relay.o 50obj-$(CONFIG_RELAY) += relay.o
51obj-$(CONFIG_TASK_DELAY_ACCT) += delayacct.o
52obj-$(CONFIG_TASKSTATS) += taskstats.o
51 53
52ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y) 54ifneq ($(CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER),y)
53# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is 55# According to Alan Modra <alan@linuxcare.com.au>, the -fno-omit-frame-pointer is
diff --git a/kernel/acct.c b/kernel/acct.c
index f18e0b8df3e1..2a7c933651c7 100644
--- a/kernel/acct.c
+++ b/kernel/acct.c
@@ -488,7 +488,7 @@ static void do_acct_process(struct file *file)
488 old_encode_dev(tty_devnum(current->signal->tty)) : 0; 488 old_encode_dev(tty_devnum(current->signal->tty)) : 0;
489 read_unlock(&tasklist_lock); 489 read_unlock(&tasklist_lock);
490 490
491 spin_lock(&current->sighand->siglock); 491 spin_lock_irq(&current->sighand->siglock);
492 ac.ac_utime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_utime))); 492 ac.ac_utime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_utime)));
493 ac.ac_stime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_stime))); 493 ac.ac_stime = encode_comp_t(jiffies_to_AHZ(cputime_to_jiffies(pacct->ac_stime)));
494 ac.ac_flag = pacct->ac_flag; 494 ac.ac_flag = pacct->ac_flag;
@@ -496,7 +496,7 @@ static void do_acct_process(struct file *file)
496 ac.ac_minflt = encode_comp_t(pacct->ac_minflt); 496 ac.ac_minflt = encode_comp_t(pacct->ac_minflt);
497 ac.ac_majflt = encode_comp_t(pacct->ac_majflt); 497 ac.ac_majflt = encode_comp_t(pacct->ac_majflt);
498 ac.ac_exitcode = pacct->ac_exitcode; 498 ac.ac_exitcode = pacct->ac_exitcode;
499 spin_unlock(&current->sighand->siglock); 499 spin_unlock_irq(&current->sighand->siglock);
500 ac.ac_io = encode_comp_t(0 /* current->io_usage */); /* %% */ 500 ac.ac_io = encode_comp_t(0 /* current->io_usage */); /* %% */
501 ac.ac_rw = encode_comp_t(ac.ac_io / 1024); 501 ac.ac_rw = encode_comp_t(ac.ac_io / 1024);
502 ac.ac_swaps = encode_comp_t(0); 502 ac.ac_swaps = encode_comp_t(0);
diff --git a/kernel/delayacct.c b/kernel/delayacct.c
new file mode 100644
index 000000000000..f05392d64267
--- /dev/null
+++ b/kernel/delayacct.c
@@ -0,0 +1,178 @@
1/* delayacct.c - per-task delay accounting
2 *
3 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it would be useful, but
11 * WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
13 * the GNU General Public License for more details.
14 */
15
16#include <linux/sched.h>
17#include <linux/slab.h>
18#include <linux/time.h>
19#include <linux/sysctl.h>
20#include <linux/delayacct.h>
21
22int delayacct_on __read_mostly; /* Delay accounting turned on/off */
23kmem_cache_t *delayacct_cache;
24
25static int __init delayacct_setup_enable(char *str)
26{
27 delayacct_on = 1;
28 return 1;
29}
30__setup("delayacct", delayacct_setup_enable);
31
32void delayacct_init(void)
33{
34 delayacct_cache = kmem_cache_create("delayacct_cache",
35 sizeof(struct task_delay_info),
36 0,
37 SLAB_PANIC,
38 NULL, NULL);
39 delayacct_tsk_init(&init_task);
40}
41
42void __delayacct_tsk_init(struct task_struct *tsk)
43{
44 spin_lock_init(&tsk->delays_lock);
45 /* No need to acquire tsk->delays_lock for allocation here unless
46 __delayacct_tsk_init called after tsk is attached to tasklist
47 */
48 tsk->delays = kmem_cache_zalloc(delayacct_cache, SLAB_KERNEL);
49 if (tsk->delays)
50 spin_lock_init(&tsk->delays->lock);
51}
52
53void __delayacct_tsk_exit(struct task_struct *tsk)
54{
55 struct task_delay_info *delays = tsk->delays;
56 spin_lock(&tsk->delays_lock);
57 tsk->delays = NULL;
58 spin_unlock(&tsk->delays_lock);
59 kmem_cache_free(delayacct_cache, delays);
60}
61
62/*
63 * Start accounting for a delay statistic using
64 * its starting timestamp (@start)
65 */
66
67static inline void delayacct_start(struct timespec *start)
68{
69 do_posix_clock_monotonic_gettime(start);
70}
71
72/*
73 * Finish delay accounting for a statistic using
74 * its timestamps (@start, @end), accumalator (@total) and @count
75 */
76
77static void delayacct_end(struct timespec *start, struct timespec *end,
78 u64 *total, u32 *count)
79{
80 struct timespec ts;
81 s64 ns;
82
83 do_posix_clock_monotonic_gettime(end);
84 ts = timespec_sub(*end, *start);
85 ns = timespec_to_ns(&ts);
86 if (ns < 0)
87 return;
88
89 spin_lock(&current->delays->lock);
90 *total += ns;
91 (*count)++;
92 spin_unlock(&current->delays->lock);
93}
94
95void __delayacct_blkio_start(void)
96{
97 delayacct_start(&current->delays->blkio_start);
98}
99
100void __delayacct_blkio_end(void)
101{
102 if (current->delays->flags & DELAYACCT_PF_SWAPIN)
103 /* Swapin block I/O */
104 delayacct_end(&current->delays->blkio_start,
105 &current->delays->blkio_end,
106 &current->delays->swapin_delay,
107 &current->delays->swapin_count);
108 else /* Other block I/O */
109 delayacct_end(&current->delays->blkio_start,
110 &current->delays->blkio_end,
111 &current->delays->blkio_delay,
112 &current->delays->blkio_count);
113}
114
115int __delayacct_add_tsk(struct taskstats *d, struct task_struct *tsk)
116{
117 s64 tmp;
118 struct timespec ts;
119 unsigned long t1,t2,t3;
120
121 spin_lock(&tsk->delays_lock);
122
123 /* Though tsk->delays accessed later, early exit avoids
124 * unnecessary returning of other data
125 */
126 if (!tsk->delays)
127 goto done;
128
129 tmp = (s64)d->cpu_run_real_total;
130 cputime_to_timespec(tsk->utime + tsk->stime, &ts);
131 tmp += timespec_to_ns(&ts);
132 d->cpu_run_real_total = (tmp < (s64)d->cpu_run_real_total) ? 0 : tmp;
133
134 /*
135 * No locking available for sched_info (and too expensive to add one)
136 * Mitigate by taking snapshot of values
137 */
138 t1 = tsk->sched_info.pcnt;
139 t2 = tsk->sched_info.run_delay;
140 t3 = tsk->sched_info.cpu_time;
141
142 d->cpu_count += t1;
143
144 jiffies_to_timespec(t2, &ts);
145 tmp = (s64)d->cpu_delay_total + timespec_to_ns(&ts);
146 d->cpu_delay_total = (tmp < (s64)d->cpu_delay_total) ? 0 : tmp;
147
148 tmp = (s64)d->cpu_run_virtual_total + (s64)jiffies_to_usecs(t3) * 1000;
149 d->cpu_run_virtual_total =
150 (tmp < (s64)d->cpu_run_virtual_total) ? 0 : tmp;
151
152 /* zero XXX_total, non-zero XXX_count implies XXX stat overflowed */
153
154 spin_lock(&tsk->delays->lock);
155 tmp = d->blkio_delay_total + tsk->delays->blkio_delay;
156 d->blkio_delay_total = (tmp < d->blkio_delay_total) ? 0 : tmp;
157 tmp = d->swapin_delay_total + tsk->delays->swapin_delay;
158 d->swapin_delay_total = (tmp < d->swapin_delay_total) ? 0 : tmp;
159 d->blkio_count += tsk->delays->blkio_count;
160 d->swapin_count += tsk->delays->swapin_count;
161 spin_unlock(&tsk->delays->lock);
162
163done:
164 spin_unlock(&tsk->delays_lock);
165 return 0;
166}
167
168__u64 __delayacct_blkio_ticks(struct task_struct *tsk)
169{
170 __u64 ret;
171
172 spin_lock(&tsk->delays->lock);
173 ret = nsec_to_clock_t(tsk->delays->blkio_delay +
174 tsk->delays->swapin_delay);
175 spin_unlock(&tsk->delays->lock);
176 return ret;
177}
178
diff --git a/kernel/exit.c b/kernel/exit.c
index 6664c084783d..dba194a8d416 100644
--- a/kernel/exit.c
+++ b/kernel/exit.c
@@ -25,6 +25,8 @@
25#include <linux/mount.h> 25#include <linux/mount.h>
26#include <linux/proc_fs.h> 26#include <linux/proc_fs.h>
27#include <linux/mempolicy.h> 27#include <linux/mempolicy.h>
28#include <linux/taskstats_kern.h>
29#include <linux/delayacct.h>
28#include <linux/cpuset.h> 30#include <linux/cpuset.h>
29#include <linux/syscalls.h> 31#include <linux/syscalls.h>
30#include <linux/signal.h> 32#include <linux/signal.h>
@@ -843,7 +845,9 @@ static void exit_notify(struct task_struct *tsk)
843fastcall NORET_TYPE void do_exit(long code) 845fastcall NORET_TYPE void do_exit(long code)
844{ 846{
845 struct task_struct *tsk = current; 847 struct task_struct *tsk = current;
848 struct taskstats *tidstats;
846 int group_dead; 849 int group_dead;
850 unsigned int mycpu;
847 851
848 profile_task_exit(tsk); 852 profile_task_exit(tsk);
849 853
@@ -881,6 +885,8 @@ fastcall NORET_TYPE void do_exit(long code)
881 current->comm, current->pid, 885 current->comm, current->pid,
882 preempt_count()); 886 preempt_count());
883 887
888 taskstats_exit_alloc(&tidstats, &mycpu);
889
884 acct_update_integrals(tsk); 890 acct_update_integrals(tsk);
885 if (tsk->mm) { 891 if (tsk->mm) {
886 update_hiwater_rss(tsk->mm); 892 update_hiwater_rss(tsk->mm);
@@ -900,6 +906,10 @@ fastcall NORET_TYPE void do_exit(long code)
900#endif 906#endif
901 if (unlikely(tsk->audit_context)) 907 if (unlikely(tsk->audit_context))
902 audit_free(tsk); 908 audit_free(tsk);
909 taskstats_exit_send(tsk, tidstats, group_dead, mycpu);
910 taskstats_exit_free(tidstats);
911 delayacct_tsk_exit(tsk);
912
903 exit_mm(tsk); 913 exit_mm(tsk);
904 914
905 if (group_dead) 915 if (group_dead)
diff --git a/kernel/fork.c b/kernel/fork.c
index 926e5a68ea9e..1b0f7b1e0881 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -43,6 +43,8 @@
43#include <linux/rmap.h> 43#include <linux/rmap.h>
44#include <linux/acct.h> 44#include <linux/acct.h>
45#include <linux/cn_proc.h> 45#include <linux/cn_proc.h>
46#include <linux/delayacct.h>
47#include <linux/taskstats_kern.h>
46 48
47#include <asm/pgtable.h> 49#include <asm/pgtable.h>
48#include <asm/pgalloc.h> 50#include <asm/pgalloc.h>
@@ -818,6 +820,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts
818 if (clone_flags & CLONE_THREAD) { 820 if (clone_flags & CLONE_THREAD) {
819 atomic_inc(&current->signal->count); 821 atomic_inc(&current->signal->count);
820 atomic_inc(&current->signal->live); 822 atomic_inc(&current->signal->live);
823 taskstats_tgid_alloc(current->signal);
821 return 0; 824 return 0;
822 } 825 }
823 sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL); 826 sig = kmem_cache_alloc(signal_cachep, GFP_KERNEL);
@@ -862,6 +865,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts
862 INIT_LIST_HEAD(&sig->cpu_timers[0]); 865 INIT_LIST_HEAD(&sig->cpu_timers[0]);
863 INIT_LIST_HEAD(&sig->cpu_timers[1]); 866 INIT_LIST_HEAD(&sig->cpu_timers[1]);
864 INIT_LIST_HEAD(&sig->cpu_timers[2]); 867 INIT_LIST_HEAD(&sig->cpu_timers[2]);
868 taskstats_tgid_init(sig);
865 869
866 task_lock(current->group_leader); 870 task_lock(current->group_leader);
867 memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim); 871 memcpy(sig->rlim, current->signal->rlim, sizeof sig->rlim);
@@ -883,6 +887,7 @@ static inline int copy_signal(unsigned long clone_flags, struct task_struct * ts
883void __cleanup_signal(struct signal_struct *sig) 887void __cleanup_signal(struct signal_struct *sig)
884{ 888{
885 exit_thread_group_keys(sig); 889 exit_thread_group_keys(sig);
890 taskstats_tgid_free(sig);
886 kmem_cache_free(signal_cachep, sig); 891 kmem_cache_free(signal_cachep, sig);
887} 892}
888 893
@@ -1000,6 +1005,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1000 goto bad_fork_cleanup_put_domain; 1005 goto bad_fork_cleanup_put_domain;
1001 1006
1002 p->did_exec = 0; 1007 p->did_exec = 0;
1008 delayacct_tsk_init(p); /* Must remain after dup_task_struct() */
1003 copy_flags(clone_flags, p); 1009 copy_flags(clone_flags, p);
1004 p->pid = pid; 1010 p->pid = pid;
1005 retval = -EFAULT; 1011 retval = -EFAULT;
diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index 39277dd6bf90..ab16a5a4cfe9 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -275,8 +275,8 @@ static void upcase_if_global(struct kallsym_iter *iter)
275static int get_ksymbol_mod(struct kallsym_iter *iter) 275static int get_ksymbol_mod(struct kallsym_iter *iter)
276{ 276{
277 iter->owner = module_get_kallsym(iter->pos - kallsyms_num_syms, 277 iter->owner = module_get_kallsym(iter->pos - kallsyms_num_syms,
278 &iter->value, 278 &iter->value, &iter->type,
279 &iter->type, iter->name); 279 iter->name, sizeof(iter->name));
280 if (iter->owner == NULL) 280 if (iter->owner == NULL)
281 return 0; 281 return 0;
282 282
diff --git a/kernel/kthread.c b/kernel/kthread.c
index 24be714b04c7..4f9c60ef95e8 100644
--- a/kernel/kthread.c
+++ b/kernel/kthread.c
@@ -216,23 +216,6 @@ EXPORT_SYMBOL(kthread_bind);
216 */ 216 */
217int kthread_stop(struct task_struct *k) 217int kthread_stop(struct task_struct *k)
218{ 218{
219 return kthread_stop_sem(k, NULL);
220}
221EXPORT_SYMBOL(kthread_stop);
222
223/**
224 * kthread_stop_sem - stop a thread created by kthread_create().
225 * @k: thread created by kthread_create().
226 * @s: semaphore that @k waits on while idle.
227 *
228 * Does essentially the same thing as kthread_stop() above, but wakes
229 * @k by calling up(@s).
230 *
231 * Returns the result of threadfn(), or %-EINTR if wake_up_process()
232 * was never called.
233 */
234int kthread_stop_sem(struct task_struct *k, struct semaphore *s)
235{
236 int ret; 219 int ret;
237 220
238 mutex_lock(&kthread_stop_lock); 221 mutex_lock(&kthread_stop_lock);
@@ -246,10 +229,7 @@ int kthread_stop_sem(struct task_struct *k, struct semaphore *s)
246 229
247 /* Now set kthread_should_stop() to true, and wake it up. */ 230 /* Now set kthread_should_stop() to true, and wake it up. */
248 kthread_stop_info.k = k; 231 kthread_stop_info.k = k;
249 if (s) 232 wake_up_process(k);
250 up(s);
251 else
252 wake_up_process(k);
253 put_task_struct(k); 233 put_task_struct(k);
254 234
255 /* Once it dies, reset stop ptr, gather result and we're done. */ 235 /* Once it dies, reset stop ptr, gather result and we're done. */
@@ -260,7 +240,7 @@ int kthread_stop_sem(struct task_struct *k, struct semaphore *s)
260 240
261 return ret; 241 return ret;
262} 242}
263EXPORT_SYMBOL(kthread_stop_sem); 243EXPORT_SYMBOL(kthread_stop);
264 244
265static __init int helper_init(void) 245static __init int helper_init(void)
266{ 246{
diff --git a/kernel/module.c b/kernel/module.c
index 35e1b1f859d7..2a19cd47c046 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2019,10 +2019,8 @@ const char *module_address_lookup(unsigned long addr,
2019 return NULL; 2019 return NULL;
2020} 2020}
2021 2021
2022struct module *module_get_kallsym(unsigned int symnum, 2022struct module *module_get_kallsym(unsigned int symnum, unsigned long *value,
2023 unsigned long *value, 2023 char *type, char *name, size_t namelen)
2024 char *type,
2025 char namebuf[128])
2026{ 2024{
2027 struct module *mod; 2025 struct module *mod;
2028 2026
@@ -2031,9 +2029,8 @@ struct module *module_get_kallsym(unsigned int symnum,
2031 if (symnum < mod->num_symtab) { 2029 if (symnum < mod->num_symtab) {
2032 *value = mod->symtab[symnum].st_value; 2030 *value = mod->symtab[symnum].st_value;
2033 *type = mod->symtab[symnum].st_info; 2031 *type = mod->symtab[symnum].st_info;
2034 strncpy(namebuf, 2032 strlcpy(name, mod->strtab + mod->symtab[symnum].st_name,
2035 mod->strtab + mod->symtab[symnum].st_name, 2033 namelen);
2036 127);
2037 mutex_unlock(&module_mutex); 2034 mutex_unlock(&module_mutex);
2038 return mod; 2035 return mod;
2039 } 2036 }
diff --git a/kernel/power/pm.c b/kernel/power/pm.c
index 84063ac8fcfc..c50d15266c10 100644
--- a/kernel/power/pm.c
+++ b/kernel/power/pm.c
@@ -75,42 +75,6 @@ struct pm_dev *pm_register(pm_dev_t type,
75 return dev; 75 return dev;
76} 76}
77 77
78static void __pm_unregister(struct pm_dev *dev)
79{
80 if (dev) {
81 list_del(&dev->entry);
82 kfree(dev);
83 }
84}
85
86/**
87 * pm_unregister_all - unregister all devices with matching callback
88 * @callback: callback function pointer
89 *
90 * Unregister every device that would call the callback passed. This
91 * is primarily meant as a helper function for loadable modules. It
92 * enables a module to give up all its managed devices without keeping
93 * its own private list.
94 */
95
96void pm_unregister_all(pm_callback callback)
97{
98 struct list_head *entry;
99
100 if (!callback)
101 return;
102
103 mutex_lock(&pm_devs_lock);
104 entry = pm_devs.next;
105 while (entry != &pm_devs) {
106 struct pm_dev *dev = list_entry(entry, struct pm_dev, entry);
107 entry = entry->next;
108 if (dev->callback == callback)
109 __pm_unregister(dev);
110 }
111 mutex_unlock(&pm_devs_lock);
112}
113
114/** 78/**
115 * pm_send - send request to a single device 79 * pm_send - send request to a single device
116 * @dev: device to send to 80 * @dev: device to send to
@@ -239,7 +203,6 @@ int pm_send_all(pm_request_t rqst, void *data)
239} 203}
240 204
241EXPORT_SYMBOL(pm_register); 205EXPORT_SYMBOL(pm_register);
242EXPORT_SYMBOL(pm_unregister_all);
243EXPORT_SYMBOL(pm_send_all); 206EXPORT_SYMBOL(pm_send_all);
244EXPORT_SYMBOL(pm_active); 207EXPORT_SYMBOL(pm_active);
245 208
diff --git a/kernel/resource.c b/kernel/resource.c
index 129cf046e561..0dd3a857579e 100644
--- a/kernel/resource.c
+++ b/kernel/resource.c
@@ -404,8 +404,6 @@ int insert_resource(struct resource *parent, struct resource *new)
404 return result; 404 return result;
405} 405}
406 406
407EXPORT_SYMBOL(insert_resource);
408
409/* 407/*
410 * Given an existing resource, change its start and size to match the 408 * Given an existing resource, change its start and size to match the
411 * arguments. Returns -EBUSY if it can't fit. Existing children of 409 * arguments. Returns -EBUSY if it can't fit. Existing children of
diff --git a/kernel/rtmutex-tester.c b/kernel/rtmutex-tester.c
index 494dac872a13..948bd8f643e2 100644
--- a/kernel/rtmutex-tester.c
+++ b/kernel/rtmutex-tester.c
@@ -275,6 +275,7 @@ static int test_func(void *data)
275 275
276 /* Wait for the next command to be executed */ 276 /* Wait for the next command to be executed */
277 schedule(); 277 schedule();
278 try_to_freeze();
278 279
279 if (signal_pending(current)) 280 if (signal_pending(current))
280 flush_signals(current); 281 flush_signals(current);
diff --git a/kernel/sched.c b/kernel/sched.c
index d714611f1691..b44b9a43b0fc 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -51,6 +51,7 @@
51#include <linux/times.h> 51#include <linux/times.h>
52#include <linux/acct.h> 52#include <linux/acct.h>
53#include <linux/kprobes.h> 53#include <linux/kprobes.h>
54#include <linux/delayacct.h>
54#include <asm/tlb.h> 55#include <asm/tlb.h>
55 56
56#include <asm/unistd.h> 57#include <asm/unistd.h>
@@ -501,9 +502,36 @@ struct file_operations proc_schedstat_operations = {
501 .release = single_release, 502 .release = single_release,
502}; 503};
503 504
505/*
506 * Expects runqueue lock to be held for atomicity of update
507 */
508static inline void
509rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies)
510{
511 if (rq) {
512 rq->rq_sched_info.run_delay += delta_jiffies;
513 rq->rq_sched_info.pcnt++;
514 }
515}
516
517/*
518 * Expects runqueue lock to be held for atomicity of update
519 */
520static inline void
521rq_sched_info_depart(struct rq *rq, unsigned long delta_jiffies)
522{
523 if (rq)
524 rq->rq_sched_info.cpu_time += delta_jiffies;
525}
504# define schedstat_inc(rq, field) do { (rq)->field++; } while (0) 526# define schedstat_inc(rq, field) do { (rq)->field++; } while (0)
505# define schedstat_add(rq, field, amt) do { (rq)->field += (amt); } while (0) 527# define schedstat_add(rq, field, amt) do { (rq)->field += (amt); } while (0)
506#else /* !CONFIG_SCHEDSTATS */ 528#else /* !CONFIG_SCHEDSTATS */
529static inline void
530rq_sched_info_arrive(struct rq *rq, unsigned long delta_jiffies)
531{}
532static inline void
533rq_sched_info_depart(struct rq *rq, unsigned long delta_jiffies)
534{}
507# define schedstat_inc(rq, field) do { } while (0) 535# define schedstat_inc(rq, field) do { } while (0)
508# define schedstat_add(rq, field, amt) do { } while (0) 536# define schedstat_add(rq, field, amt) do { } while (0)
509#endif 537#endif
@@ -523,7 +551,7 @@ static inline struct rq *this_rq_lock(void)
523 return rq; 551 return rq;
524} 552}
525 553
526#ifdef CONFIG_SCHEDSTATS 554#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
527/* 555/*
528 * Called when a process is dequeued from the active array and given 556 * Called when a process is dequeued from the active array and given
529 * the cpu. We should note that with the exception of interactive 557 * the cpu. We should note that with the exception of interactive
@@ -551,21 +579,16 @@ static inline void sched_info_dequeued(struct task_struct *t)
551 */ 579 */
552static void sched_info_arrive(struct task_struct *t) 580static void sched_info_arrive(struct task_struct *t)
553{ 581{
554 unsigned long now = jiffies, diff = 0; 582 unsigned long now = jiffies, delta_jiffies = 0;
555 struct rq *rq = task_rq(t);
556 583
557 if (t->sched_info.last_queued) 584 if (t->sched_info.last_queued)
558 diff = now - t->sched_info.last_queued; 585 delta_jiffies = now - t->sched_info.last_queued;
559 sched_info_dequeued(t); 586 sched_info_dequeued(t);
560 t->sched_info.run_delay += diff; 587 t->sched_info.run_delay += delta_jiffies;
561 t->sched_info.last_arrival = now; 588 t->sched_info.last_arrival = now;
562 t->sched_info.pcnt++; 589 t->sched_info.pcnt++;
563 590
564 if (!rq) 591 rq_sched_info_arrive(task_rq(t), delta_jiffies);
565 return;
566
567 rq->rq_sched_info.run_delay += diff;
568 rq->rq_sched_info.pcnt++;
569} 592}
570 593
571/* 594/*
@@ -585,8 +608,9 @@ static void sched_info_arrive(struct task_struct *t)
585 */ 608 */
586static inline void sched_info_queued(struct task_struct *t) 609static inline void sched_info_queued(struct task_struct *t)
587{ 610{
588 if (!t->sched_info.last_queued) 611 if (unlikely(sched_info_on()))
589 t->sched_info.last_queued = jiffies; 612 if (!t->sched_info.last_queued)
613 t->sched_info.last_queued = jiffies;
590} 614}
591 615
592/* 616/*
@@ -595,13 +619,10 @@ static inline void sched_info_queued(struct task_struct *t)
595 */ 619 */
596static inline void sched_info_depart(struct task_struct *t) 620static inline void sched_info_depart(struct task_struct *t)
597{ 621{
598 struct rq *rq = task_rq(t); 622 unsigned long delta_jiffies = jiffies - t->sched_info.last_arrival;
599 unsigned long diff = jiffies - t->sched_info.last_arrival;
600
601 t->sched_info.cpu_time += diff;
602 623
603 if (rq) 624 t->sched_info.cpu_time += delta_jiffies;
604 rq->rq_sched_info.cpu_time += diff; 625 rq_sched_info_depart(task_rq(t), delta_jiffies);
605} 626}
606 627
607/* 628/*
@@ -610,7 +631,7 @@ static inline void sched_info_depart(struct task_struct *t)
610 * the idle task.) We are only called when prev != next. 631 * the idle task.) We are only called when prev != next.
611 */ 632 */
612static inline void 633static inline void
613sched_info_switch(struct task_struct *prev, struct task_struct *next) 634__sched_info_switch(struct task_struct *prev, struct task_struct *next)
614{ 635{
615 struct rq *rq = task_rq(prev); 636 struct rq *rq = task_rq(prev);
616 637
@@ -625,10 +646,16 @@ sched_info_switch(struct task_struct *prev, struct task_struct *next)
625 if (next != rq->idle) 646 if (next != rq->idle)
626 sched_info_arrive(next); 647 sched_info_arrive(next);
627} 648}
649static inline void
650sched_info_switch(struct task_struct *prev, struct task_struct *next)
651{
652 if (unlikely(sched_info_on()))
653 __sched_info_switch(prev, next);
654}
628#else 655#else
629#define sched_info_queued(t) do { } while (0) 656#define sched_info_queued(t) do { } while (0)
630#define sched_info_switch(t, next) do { } while (0) 657#define sched_info_switch(t, next) do { } while (0)
631#endif /* CONFIG_SCHEDSTATS */ 658#endif /* CONFIG_SCHEDSTATS || CONFIG_TASK_DELAY_ACCT */
632 659
633/* 660/*
634 * Adding/removing a task to/from a priority array: 661 * Adding/removing a task to/from a priority array:
@@ -1530,8 +1557,9 @@ void fastcall sched_fork(struct task_struct *p, int clone_flags)
1530 1557
1531 INIT_LIST_HEAD(&p->run_list); 1558 INIT_LIST_HEAD(&p->run_list);
1532 p->array = NULL; 1559 p->array = NULL;
1533#ifdef CONFIG_SCHEDSTATS 1560#if defined(CONFIG_SCHEDSTATS) || defined(CONFIG_TASK_DELAY_ACCT)
1534 memset(&p->sched_info, 0, sizeof(p->sched_info)); 1561 if (unlikely(sched_info_on()))
1562 memset(&p->sched_info, 0, sizeof(p->sched_info));
1535#endif 1563#endif
1536#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW) 1564#if defined(CONFIG_SMP) && defined(__ARCH_WANT_UNLOCKED_CTXSW)
1537 p->oncpu = 0; 1565 p->oncpu = 0;
@@ -1788,7 +1816,15 @@ context_switch(struct rq *rq, struct task_struct *prev,
1788 WARN_ON(rq->prev_mm); 1816 WARN_ON(rq->prev_mm);
1789 rq->prev_mm = oldmm; 1817 rq->prev_mm = oldmm;
1790 } 1818 }
1819 /*
1820 * Since the runqueue lock will be released by the next
1821 * task (which is an invalid locking op but in the case
1822 * of the scheduler it's an obvious special-case), so we
1823 * do an early lockdep release here:
1824 */
1825#ifndef __ARCH_WANT_UNLOCKED_CTXSW
1791 spin_release(&rq->lock.dep_map, 1, _THIS_IP_); 1826 spin_release(&rq->lock.dep_map, 1, _THIS_IP_);
1827#endif
1792 1828
1793 /* Here we just switch the register state and the stack. */ 1829 /* Here we just switch the register state and the stack. */
1794 switch_to(prev, next, prev); 1830 switch_to(prev, next, prev);
@@ -4526,9 +4562,11 @@ void __sched io_schedule(void)
4526{ 4562{
4527 struct rq *rq = &__raw_get_cpu_var(runqueues); 4563 struct rq *rq = &__raw_get_cpu_var(runqueues);
4528 4564
4565 delayacct_blkio_start();
4529 atomic_inc(&rq->nr_iowait); 4566 atomic_inc(&rq->nr_iowait);
4530 schedule(); 4567 schedule();
4531 atomic_dec(&rq->nr_iowait); 4568 atomic_dec(&rq->nr_iowait);
4569 delayacct_blkio_end();
4532} 4570}
4533EXPORT_SYMBOL(io_schedule); 4571EXPORT_SYMBOL(io_schedule);
4534 4572
@@ -4537,9 +4575,11 @@ long __sched io_schedule_timeout(long timeout)
4537 struct rq *rq = &__raw_get_cpu_var(runqueues); 4575 struct rq *rq = &__raw_get_cpu_var(runqueues);
4538 long ret; 4576 long ret;
4539 4577
4578 delayacct_blkio_start();
4540 atomic_inc(&rq->nr_iowait); 4579 atomic_inc(&rq->nr_iowait);
4541 ret = schedule_timeout(timeout); 4580 ret = schedule_timeout(timeout);
4542 atomic_dec(&rq->nr_iowait); 4581 atomic_dec(&rq->nr_iowait);
4582 delayacct_blkio_end();
4543 return ret; 4583 return ret;
4544} 4584}
4545 4585
diff --git a/kernel/softirq.c b/kernel/softirq.c
index fd12f2556f0d..0f08a84ae307 100644
--- a/kernel/softirq.c
+++ b/kernel/softirq.c
@@ -311,8 +311,6 @@ void open_softirq(int nr, void (*action)(struct softirq_action*), void *data)
311 softirq_vec[nr].action = action; 311 softirq_vec[nr].action = action;
312} 312}
313 313
314EXPORT_UNUSED_SYMBOL(open_softirq); /* June 2006 */
315
316/* Tasklets */ 314/* Tasklets */
317struct tasklet_head 315struct tasklet_head
318{ 316{
diff --git a/kernel/sys.c b/kernel/sys.c
index dbb3b9c7ea64..e236f98f7ec5 100644
--- a/kernel/sys.c
+++ b/kernel/sys.c
@@ -1983,7 +1983,7 @@ asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
1983 error = current->mm->dumpable; 1983 error = current->mm->dumpable;
1984 break; 1984 break;
1985 case PR_SET_DUMPABLE: 1985 case PR_SET_DUMPABLE:
1986 if (arg2 < 0 || arg2 > 2) { 1986 if (arg2 < 0 || arg2 > 1) {
1987 error = -EINVAL; 1987 error = -EINVAL;
1988 break; 1988 break;
1989 } 1989 }
diff --git a/kernel/taskstats.c b/kernel/taskstats.c
new file mode 100644
index 000000000000..f45179ce028e
--- /dev/null
+++ b/kernel/taskstats.c
@@ -0,0 +1,568 @@
1/*
2 * taskstats.c - Export per-task statistics to userland
3 *
4 * Copyright (C) Shailabh Nagar, IBM Corp. 2006
5 * (C) Balbir Singh, IBM Corp. 2006
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 */
18
19#include <linux/kernel.h>
20#include <linux/taskstats_kern.h>
21#include <linux/delayacct.h>
22#include <linux/cpumask.h>
23#include <linux/percpu.h>
24#include <net/genetlink.h>
25#include <asm/atomic.h>
26
27/*
28 * Maximum length of a cpumask that can be specified in
29 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
30 */
31#define TASKSTATS_CPUMASK_MAXLEN (100+6*NR_CPUS)
32
33static DEFINE_PER_CPU(__u32, taskstats_seqnum) = { 0 };
34static int family_registered;
35kmem_cache_t *taskstats_cache;
36
37static struct genl_family family = {
38 .id = GENL_ID_GENERATE,
39 .name = TASKSTATS_GENL_NAME,
40 .version = TASKSTATS_GENL_VERSION,
41 .maxattr = TASKSTATS_CMD_ATTR_MAX,
42};
43
44static struct nla_policy taskstats_cmd_get_policy[TASKSTATS_CMD_ATTR_MAX+1]
45__read_mostly = {
46 [TASKSTATS_CMD_ATTR_PID] = { .type = NLA_U32 },
47 [TASKSTATS_CMD_ATTR_TGID] = { .type = NLA_U32 },
48 [TASKSTATS_CMD_ATTR_REGISTER_CPUMASK] = { .type = NLA_STRING },
49 [TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK] = { .type = NLA_STRING },};
50
51struct listener {
52 struct list_head list;
53 pid_t pid;
54 char valid;
55};
56
57struct listener_list {
58 struct rw_semaphore sem;
59 struct list_head list;
60};
61static DEFINE_PER_CPU(struct listener_list, listener_array);
62
63enum actions {
64 REGISTER,
65 DEREGISTER,
66 CPU_DONT_CARE
67};
68
69static int prepare_reply(struct genl_info *info, u8 cmd, struct sk_buff **skbp,
70 void **replyp, size_t size)
71{
72 struct sk_buff *skb;
73 void *reply;
74
75 /*
76 * If new attributes are added, please revisit this allocation
77 */
78 skb = nlmsg_new(size);
79 if (!skb)
80 return -ENOMEM;
81
82 if (!info) {
83 int seq = get_cpu_var(taskstats_seqnum)++;
84 put_cpu_var(taskstats_seqnum);
85
86 reply = genlmsg_put(skb, 0, seq,
87 family.id, 0, 0,
88 cmd, family.version);
89 } else
90 reply = genlmsg_put(skb, info->snd_pid, info->snd_seq,
91 family.id, 0, 0,
92 cmd, family.version);
93 if (reply == NULL) {
94 nlmsg_free(skb);
95 return -EINVAL;
96 }
97
98 *skbp = skb;
99 *replyp = reply;
100 return 0;
101}
102
103/*
104 * Send taskstats data in @skb to listener with nl_pid @pid
105 */
106static int send_reply(struct sk_buff *skb, pid_t pid)
107{
108 struct genlmsghdr *genlhdr = nlmsg_data((struct nlmsghdr *)skb->data);
109 void *reply = genlmsg_data(genlhdr);
110 int rc;
111
112 rc = genlmsg_end(skb, reply);
113 if (rc < 0) {
114 nlmsg_free(skb);
115 return rc;
116 }
117
118 return genlmsg_unicast(skb, pid);
119}
120
121/*
122 * Send taskstats data in @skb to listeners registered for @cpu's exit data
123 */
124static int send_cpu_listeners(struct sk_buff *skb, unsigned int cpu)
125{
126 struct genlmsghdr *genlhdr = nlmsg_data((struct nlmsghdr *)skb->data);
127 struct listener_list *listeners;
128 struct listener *s, *tmp;
129 struct sk_buff *skb_next, *skb_cur = skb;
130 void *reply = genlmsg_data(genlhdr);
131 int rc, ret, delcount = 0;
132
133 rc = genlmsg_end(skb, reply);
134 if (rc < 0) {
135 nlmsg_free(skb);
136 return rc;
137 }
138
139 rc = 0;
140 listeners = &per_cpu(listener_array, cpu);
141 down_read(&listeners->sem);
142 list_for_each_entry_safe(s, tmp, &listeners->list, list) {
143 skb_next = NULL;
144 if (!list_is_last(&s->list, &listeners->list)) {
145 skb_next = skb_clone(skb_cur, GFP_KERNEL);
146 if (!skb_next) {
147 nlmsg_free(skb_cur);
148 rc = -ENOMEM;
149 break;
150 }
151 }
152 ret = genlmsg_unicast(skb_cur, s->pid);
153 if (ret == -ECONNREFUSED) {
154 s->valid = 0;
155 delcount++;
156 rc = ret;
157 }
158 skb_cur = skb_next;
159 }
160 up_read(&listeners->sem);
161
162 if (!delcount)
163 return rc;
164
165 /* Delete invalidated entries */
166 down_write(&listeners->sem);
167 list_for_each_entry_safe(s, tmp, &listeners->list, list) {
168 if (!s->valid) {
169 list_del(&s->list);
170 kfree(s);
171 }
172 }
173 up_write(&listeners->sem);
174 return rc;
175}
176
177static int fill_pid(pid_t pid, struct task_struct *pidtsk,
178 struct taskstats *stats)
179{
180 int rc;
181 struct task_struct *tsk = pidtsk;
182
183 if (!pidtsk) {
184 read_lock(&tasklist_lock);
185 tsk = find_task_by_pid(pid);
186 if (!tsk) {
187 read_unlock(&tasklist_lock);
188 return -ESRCH;
189 }
190 get_task_struct(tsk);
191 read_unlock(&tasklist_lock);
192 } else
193 get_task_struct(tsk);
194
195 /*
196 * Each accounting subsystem adds calls to its functions to
197 * fill in relevant parts of struct taskstsats as follows
198 *
199 * rc = per-task-foo(stats, tsk);
200 * if (rc)
201 * goto err;
202 */
203
204 rc = delayacct_add_tsk(stats, tsk);
205 stats->version = TASKSTATS_VERSION;
206
207 /* Define err: label here if needed */
208 put_task_struct(tsk);
209 return rc;
210
211}
212
213static int fill_tgid(pid_t tgid, struct task_struct *tgidtsk,
214 struct taskstats *stats)
215{
216 struct task_struct *tsk, *first;
217 unsigned long flags;
218
219 /*
220 * Add additional stats from live tasks except zombie thread group
221 * leaders who are already counted with the dead tasks
222 */
223 first = tgidtsk;
224 if (!first) {
225 read_lock(&tasklist_lock);
226 first = find_task_by_pid(tgid);
227 if (!first) {
228 read_unlock(&tasklist_lock);
229 return -ESRCH;
230 }
231 get_task_struct(first);
232 read_unlock(&tasklist_lock);
233 } else
234 get_task_struct(first);
235
236 /* Start with stats from dead tasks */
237 spin_lock_irqsave(&first->signal->stats_lock, flags);
238 if (first->signal->stats)
239 memcpy(stats, first->signal->stats, sizeof(*stats));
240 spin_unlock_irqrestore(&first->signal->stats_lock, flags);
241
242 tsk = first;
243 read_lock(&tasklist_lock);
244 do {
245 if (tsk->exit_state == EXIT_ZOMBIE && thread_group_leader(tsk))
246 continue;
247 /*
248 * Accounting subsystem can call its functions here to
249 * fill in relevant parts of struct taskstsats as follows
250 *
251 * per-task-foo(stats, tsk);
252 */
253 delayacct_add_tsk(stats, tsk);
254
255 } while_each_thread(first, tsk);
256 read_unlock(&tasklist_lock);
257 stats->version = TASKSTATS_VERSION;
258
259 /*
260 * Accounting subsytems can also add calls here to modify
261 * fields of taskstats.
262 */
263
264 return 0;
265}
266
267
268static void fill_tgid_exit(struct task_struct *tsk)
269{
270 unsigned long flags;
271
272 spin_lock_irqsave(&tsk->signal->stats_lock, flags);
273 if (!tsk->signal->stats)
274 goto ret;
275
276 /*
277 * Each accounting subsystem calls its functions here to
278 * accumalate its per-task stats for tsk, into the per-tgid structure
279 *
280 * per-task-foo(tsk->signal->stats, tsk);
281 */
282 delayacct_add_tsk(tsk->signal->stats, tsk);
283ret:
284 spin_unlock_irqrestore(&tsk->signal->stats_lock, flags);
285 return;
286}
287
288static int add_del_listener(pid_t pid, cpumask_t *maskp, int isadd)
289{
290 struct listener_list *listeners;
291 struct listener *s, *tmp;
292 unsigned int cpu;
293 cpumask_t mask = *maskp;
294
295 if (!cpus_subset(mask, cpu_possible_map))
296 return -EINVAL;
297
298 if (isadd == REGISTER) {
299 for_each_cpu_mask(cpu, mask) {
300 s = kmalloc_node(sizeof(struct listener), GFP_KERNEL,
301 cpu_to_node(cpu));
302 if (!s)
303 goto cleanup;
304 s->pid = pid;
305 INIT_LIST_HEAD(&s->list);
306 s->valid = 1;
307
308 listeners = &per_cpu(listener_array, cpu);
309 down_write(&listeners->sem);
310 list_add(&s->list, &listeners->list);
311 up_write(&listeners->sem);
312 }
313 return 0;
314 }
315
316 /* Deregister or cleanup */
317cleanup:
318 for_each_cpu_mask(cpu, mask) {
319 listeners = &per_cpu(listener_array, cpu);
320 down_write(&listeners->sem);
321 list_for_each_entry_safe(s, tmp, &listeners->list, list) {
322 if (s->pid == pid) {
323 list_del(&s->list);
324 kfree(s);
325 break;
326 }
327 }
328 up_write(&listeners->sem);
329 }
330 return 0;
331}
332
333static int parse(struct nlattr *na, cpumask_t *mask)
334{
335 char *data;
336 int len;
337 int ret;
338
339 if (na == NULL)
340 return 1;
341 len = nla_len(na);
342 if (len > TASKSTATS_CPUMASK_MAXLEN)
343 return -E2BIG;
344 if (len < 1)
345 return -EINVAL;
346 data = kmalloc(len, GFP_KERNEL);
347 if (!data)
348 return -ENOMEM;
349 nla_strlcpy(data, na, len);
350 ret = cpulist_parse(data, *mask);
351 kfree(data);
352 return ret;
353}
354
355static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
356{
357 int rc = 0;
358 struct sk_buff *rep_skb;
359 struct taskstats stats;
360 void *reply;
361 size_t size;
362 struct nlattr *na;
363 cpumask_t mask;
364
365 rc = parse(info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK], &mask);
366 if (rc < 0)
367 return rc;
368 if (rc == 0)
369 return add_del_listener(info->snd_pid, &mask, REGISTER);
370
371 rc = parse(info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK], &mask);
372 if (rc < 0)
373 return rc;
374 if (rc == 0)
375 return add_del_listener(info->snd_pid, &mask, DEREGISTER);
376
377 /*
378 * Size includes space for nested attributes
379 */
380 size = nla_total_size(sizeof(u32)) +
381 nla_total_size(sizeof(struct taskstats)) + nla_total_size(0);
382
383 memset(&stats, 0, sizeof(stats));
384 rc = prepare_reply(info, TASKSTATS_CMD_NEW, &rep_skb, &reply, size);
385 if (rc < 0)
386 return rc;
387
388 if (info->attrs[TASKSTATS_CMD_ATTR_PID]) {
389 u32 pid = nla_get_u32(info->attrs[TASKSTATS_CMD_ATTR_PID]);
390 rc = fill_pid(pid, NULL, &stats);
391 if (rc < 0)
392 goto err;
393
394 na = nla_nest_start(rep_skb, TASKSTATS_TYPE_AGGR_PID);
395 NLA_PUT_U32(rep_skb, TASKSTATS_TYPE_PID, pid);
396 NLA_PUT_TYPE(rep_skb, struct taskstats, TASKSTATS_TYPE_STATS,
397 stats);
398 } else if (info->attrs[TASKSTATS_CMD_ATTR_TGID]) {
399 u32 tgid = nla_get_u32(info->attrs[TASKSTATS_CMD_ATTR_TGID]);
400 rc = fill_tgid(tgid, NULL, &stats);
401 if (rc < 0)
402 goto err;
403
404 na = nla_nest_start(rep_skb, TASKSTATS_TYPE_AGGR_TGID);
405 NLA_PUT_U32(rep_skb, TASKSTATS_TYPE_TGID, tgid);
406 NLA_PUT_TYPE(rep_skb, struct taskstats, TASKSTATS_TYPE_STATS,
407 stats);
408 } else {
409 rc = -EINVAL;
410 goto err;
411 }
412
413 nla_nest_end(rep_skb, na);
414
415 return send_reply(rep_skb, info->snd_pid);
416
417nla_put_failure:
418 return genlmsg_cancel(rep_skb, reply);
419err:
420 nlmsg_free(rep_skb);
421 return rc;
422}
423
424void taskstats_exit_alloc(struct taskstats **ptidstats, unsigned int *mycpu)
425{
426 struct listener_list *listeners;
427 struct taskstats *tmp;
428 /*
429 * This is the cpu on which the task is exiting currently and will
430 * be the one for which the exit event is sent, even if the cpu
431 * on which this function is running changes later.
432 */
433 *mycpu = raw_smp_processor_id();
434
435 *ptidstats = NULL;
436 tmp = kmem_cache_zalloc(taskstats_cache, SLAB_KERNEL);
437 if (!tmp)
438 return;
439
440 listeners = &per_cpu(listener_array, *mycpu);
441 down_read(&listeners->sem);
442 if (!list_empty(&listeners->list)) {
443 *ptidstats = tmp;
444 tmp = NULL;
445 }
446 up_read(&listeners->sem);
447 kfree(tmp);
448}
449
450/* Send pid data out on exit */
451void taskstats_exit_send(struct task_struct *tsk, struct taskstats *tidstats,
452 int group_dead, unsigned int mycpu)
453{
454 int rc;
455 struct sk_buff *rep_skb;
456 void *reply;
457 size_t size;
458 int is_thread_group;
459 struct nlattr *na;
460 unsigned long flags;
461
462 if (!family_registered || !tidstats)
463 return;
464
465 spin_lock_irqsave(&tsk->signal->stats_lock, flags);
466 is_thread_group = tsk->signal->stats ? 1 : 0;
467 spin_unlock_irqrestore(&tsk->signal->stats_lock, flags);
468
469 rc = 0;
470 /*
471 * Size includes space for nested attributes
472 */
473 size = nla_total_size(sizeof(u32)) +
474 nla_total_size(sizeof(struct taskstats)) + nla_total_size(0);
475
476 if (is_thread_group)
477 size = 2 * size; /* PID + STATS + TGID + STATS */
478
479 rc = prepare_reply(NULL, TASKSTATS_CMD_NEW, &rep_skb, &reply, size);
480 if (rc < 0)
481 goto ret;
482
483 rc = fill_pid(tsk->pid, tsk, tidstats);
484 if (rc < 0)
485 goto err_skb;
486
487 na = nla_nest_start(rep_skb, TASKSTATS_TYPE_AGGR_PID);
488 NLA_PUT_U32(rep_skb, TASKSTATS_TYPE_PID, (u32)tsk->pid);
489 NLA_PUT_TYPE(rep_skb, struct taskstats, TASKSTATS_TYPE_STATS,
490 *tidstats);
491 nla_nest_end(rep_skb, na);
492
493 if (!is_thread_group)
494 goto send;
495
496 /*
497 * tsk has/had a thread group so fill the tsk->signal->stats structure
498 * Doesn't matter if tsk is the leader or the last group member leaving
499 */
500
501 fill_tgid_exit(tsk);
502 if (!group_dead)
503 goto send;
504
505 na = nla_nest_start(rep_skb, TASKSTATS_TYPE_AGGR_TGID);
506 NLA_PUT_U32(rep_skb, TASKSTATS_TYPE_TGID, (u32)tsk->tgid);
507 /* No locking needed for tsk->signal->stats since group is dead */
508 NLA_PUT_TYPE(rep_skb, struct taskstats, TASKSTATS_TYPE_STATS,
509 *tsk->signal->stats);
510 nla_nest_end(rep_skb, na);
511
512send:
513 send_cpu_listeners(rep_skb, mycpu);
514 return;
515
516nla_put_failure:
517 genlmsg_cancel(rep_skb, reply);
518 goto ret;
519err_skb:
520 nlmsg_free(rep_skb);
521ret:
522 return;
523}
524
525static struct genl_ops taskstats_ops = {
526 .cmd = TASKSTATS_CMD_GET,
527 .doit = taskstats_user_cmd,
528 .policy = taskstats_cmd_get_policy,
529};
530
531/* Needed early in initialization */
532void __init taskstats_init_early(void)
533{
534 unsigned int i;
535
536 taskstats_cache = kmem_cache_create("taskstats_cache",
537 sizeof(struct taskstats),
538 0, SLAB_PANIC, NULL, NULL);
539 for_each_possible_cpu(i) {
540 INIT_LIST_HEAD(&(per_cpu(listener_array, i).list));
541 init_rwsem(&(per_cpu(listener_array, i).sem));
542 }
543}
544
545static int __init taskstats_init(void)
546{
547 int rc;
548
549 rc = genl_register_family(&family);
550 if (rc)
551 return rc;
552
553 rc = genl_register_ops(&family, &taskstats_ops);
554 if (rc < 0)
555 goto err;
556
557 family_registered = 1;
558 return 0;
559err:
560 genl_unregister_family(&family);
561 return rc;
562}
563
564/*
565 * late initcall ensures initialization of statistics collection
566 * mechanisms precedes initialization of the taskstats interface
567 */
568late_initcall(taskstats_init);
diff --git a/kernel/timer.c b/kernel/timer.c
index 2a87430a58d4..05809c2e2fd6 100644
--- a/kernel/timer.c
+++ b/kernel/timer.c
@@ -374,6 +374,7 @@ int del_timer_sync(struct timer_list *timer)
374 int ret = try_to_del_timer_sync(timer); 374 int ret = try_to_del_timer_sync(timer);
375 if (ret >= 0) 375 if (ret >= 0)
376 return ret; 376 return ret;
377 cpu_relax();
377 } 378 }
378} 379}
379 380
@@ -968,6 +969,7 @@ void __init timekeeping_init(void)
968} 969}
969 970
970 971
972static int timekeeping_suspended;
971/* 973/*
972 * timekeeping_resume - Resumes the generic timekeeping subsystem. 974 * timekeeping_resume - Resumes the generic timekeeping subsystem.
973 * @dev: unused 975 * @dev: unused
@@ -983,6 +985,18 @@ static int timekeeping_resume(struct sys_device *dev)
983 write_seqlock_irqsave(&xtime_lock, flags); 985 write_seqlock_irqsave(&xtime_lock, flags);
984 /* restart the last cycle value */ 986 /* restart the last cycle value */
985 clock->cycle_last = clocksource_read(clock); 987 clock->cycle_last = clocksource_read(clock);
988 clock->error = 0;
989 timekeeping_suspended = 0;
990 write_sequnlock_irqrestore(&xtime_lock, flags);
991 return 0;
992}
993
994static int timekeeping_suspend(struct sys_device *dev, pm_message_t state)
995{
996 unsigned long flags;
997
998 write_seqlock_irqsave(&xtime_lock, flags);
999 timekeeping_suspended = 1;
986 write_sequnlock_irqrestore(&xtime_lock, flags); 1000 write_sequnlock_irqrestore(&xtime_lock, flags);
987 return 0; 1001 return 0;
988} 1002}
@@ -990,6 +1004,7 @@ static int timekeeping_resume(struct sys_device *dev)
990/* sysfs resume/suspend bits for timekeeping */ 1004/* sysfs resume/suspend bits for timekeeping */
991static struct sysdev_class timekeeping_sysclass = { 1005static struct sysdev_class timekeeping_sysclass = {
992 .resume = timekeeping_resume, 1006 .resume = timekeeping_resume,
1007 .suspend = timekeeping_suspend,
993 set_kset_name("timekeeping"), 1008 set_kset_name("timekeeping"),
994}; 1009};
995 1010
@@ -1100,13 +1115,16 @@ static void update_wall_time(void)
1100{ 1115{
1101 cycle_t offset; 1116 cycle_t offset;
1102 1117
1103 clock->xtime_nsec += (s64)xtime.tv_nsec << clock->shift; 1118 /* Make sure we're fully resumed: */
1119 if (unlikely(timekeeping_suspended))
1120 return;
1104 1121
1105#ifdef CONFIG_GENERIC_TIME 1122#ifdef CONFIG_GENERIC_TIME
1106 offset = (clocksource_read(clock) - clock->cycle_last) & clock->mask; 1123 offset = (clocksource_read(clock) - clock->cycle_last) & clock->mask;
1107#else 1124#else
1108 offset = clock->cycle_interval; 1125 offset = clock->cycle_interval;
1109#endif 1126#endif
1127 clock->xtime_nsec += (s64)xtime.tv_nsec << clock->shift;
1110 1128
1111 /* normally this loop will run just once, however in the 1129 /* normally this loop will run just once, however in the
1112 * case of lost or late ticks, it will accumulate correctly. 1130 * case of lost or late ticks, it will accumulate correctly.
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index e5889b1a33ff..554ee688a9f8 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -158,7 +158,7 @@ config DEBUG_RWSEMS
158 158
159config DEBUG_LOCK_ALLOC 159config DEBUG_LOCK_ALLOC
160 bool "Lock debugging: detect incorrect freeing of live locks" 160 bool "Lock debugging: detect incorrect freeing of live locks"
161 depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 161 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
162 select DEBUG_SPINLOCK 162 select DEBUG_SPINLOCK
163 select DEBUG_MUTEXES 163 select DEBUG_MUTEXES
164 select DEBUG_RWSEMS 164 select DEBUG_RWSEMS
@@ -173,7 +173,7 @@ config DEBUG_LOCK_ALLOC
173 173
174config PROVE_LOCKING 174config PROVE_LOCKING
175 bool "Lock debugging: prove locking correctness" 175 bool "Lock debugging: prove locking correctness"
176 depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 176 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
177 select LOCKDEP 177 select LOCKDEP
178 select DEBUG_SPINLOCK 178 select DEBUG_SPINLOCK
179 select DEBUG_MUTEXES 179 select DEBUG_MUTEXES
@@ -216,7 +216,7 @@ config PROVE_LOCKING
216 216
217config LOCKDEP 217config LOCKDEP
218 bool 218 bool
219 depends on TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT 219 depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
220 select STACKTRACE 220 select STACKTRACE
221 select FRAME_POINTER 221 select FRAME_POINTER
222 select KALLSYMS 222 select KALLSYMS
@@ -224,13 +224,14 @@ config LOCKDEP
224 224
225config DEBUG_LOCKDEP 225config DEBUG_LOCKDEP
226 bool "Lock dependency engine debugging" 226 bool "Lock dependency engine debugging"
227 depends on LOCKDEP 227 depends on DEBUG_KERNEL && LOCKDEP
228 help 228 help
229 If you say Y here, the lock dependency engine will do 229 If you say Y here, the lock dependency engine will do
230 additional runtime checks to debug itself, at the price 230 additional runtime checks to debug itself, at the price
231 of more runtime overhead. 231 of more runtime overhead.
232 232
233config TRACE_IRQFLAGS 233config TRACE_IRQFLAGS
234 depends on DEBUG_KERNEL
234 bool 235 bool
235 default y 236 default y
236 depends on TRACE_IRQFLAGS_SUPPORT 237 depends on TRACE_IRQFLAGS_SUPPORT
@@ -256,6 +257,7 @@ config DEBUG_LOCKING_API_SELFTESTS
256 257
257config STACKTRACE 258config STACKTRACE
258 bool 259 bool
260 depends on DEBUG_KERNEL
259 depends on STACKTRACE_SUPPORT 261 depends on STACKTRACE_SUPPORT
260 262
261config DEBUG_KOBJECT 263config DEBUG_KOBJECT
diff --git a/lib/idr.c b/lib/idr.c
index 4d096819511a..16d2143fea48 100644
--- a/lib/idr.c
+++ b/lib/idr.c
@@ -38,14 +38,15 @@ static kmem_cache_t *idr_layer_cache;
38static struct idr_layer *alloc_layer(struct idr *idp) 38static struct idr_layer *alloc_layer(struct idr *idp)
39{ 39{
40 struct idr_layer *p; 40 struct idr_layer *p;
41 unsigned long flags;
41 42
42 spin_lock(&idp->lock); 43 spin_lock_irqsave(&idp->lock, flags);
43 if ((p = idp->id_free)) { 44 if ((p = idp->id_free)) {
44 idp->id_free = p->ary[0]; 45 idp->id_free = p->ary[0];
45 idp->id_free_cnt--; 46 idp->id_free_cnt--;
46 p->ary[0] = NULL; 47 p->ary[0] = NULL;
47 } 48 }
48 spin_unlock(&idp->lock); 49 spin_unlock_irqrestore(&idp->lock, flags);
49 return(p); 50 return(p);
50} 51}
51 52
@@ -59,12 +60,14 @@ static void __free_layer(struct idr *idp, struct idr_layer *p)
59 60
60static void free_layer(struct idr *idp, struct idr_layer *p) 61static void free_layer(struct idr *idp, struct idr_layer *p)
61{ 62{
63 unsigned long flags;
64
62 /* 65 /*
63 * Depends on the return element being zeroed. 66 * Depends on the return element being zeroed.
64 */ 67 */
65 spin_lock(&idp->lock); 68 spin_lock_irqsave(&idp->lock, flags);
66 __free_layer(idp, p); 69 __free_layer(idp, p);
67 spin_unlock(&idp->lock); 70 spin_unlock_irqrestore(&idp->lock, flags);
68} 71}
69 72
70/** 73/**
@@ -168,6 +171,7 @@ static int idr_get_new_above_int(struct idr *idp, void *ptr, int starting_id)
168{ 171{
169 struct idr_layer *p, *new; 172 struct idr_layer *p, *new;
170 int layers, v, id; 173 int layers, v, id;
174 unsigned long flags;
171 175
172 id = starting_id; 176 id = starting_id;
173build_up: 177build_up:
@@ -191,14 +195,14 @@ build_up:
191 * The allocation failed. If we built part of 195 * The allocation failed. If we built part of
192 * the structure tear it down. 196 * the structure tear it down.
193 */ 197 */
194 spin_lock(&idp->lock); 198 spin_lock_irqsave(&idp->lock, flags);
195 for (new = p; p && p != idp->top; new = p) { 199 for (new = p; p && p != idp->top; new = p) {
196 p = p->ary[0]; 200 p = p->ary[0];
197 new->ary[0] = NULL; 201 new->ary[0] = NULL;
198 new->bitmap = new->count = 0; 202 new->bitmap = new->count = 0;
199 __free_layer(idp, new); 203 __free_layer(idp, new);
200 } 204 }
201 spin_unlock(&idp->lock); 205 spin_unlock_irqrestore(&idp->lock, flags);
202 return -1; 206 return -1;
203 } 207 }
204 new->ary[0] = p; 208 new->ary[0] = p;
diff --git a/mm/memory.c b/mm/memory.c
index dc0d82cf2a1c..109e9866237e 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -47,6 +47,7 @@
47#include <linux/pagemap.h> 47#include <linux/pagemap.h>
48#include <linux/rmap.h> 48#include <linux/rmap.h>
49#include <linux/module.h> 49#include <linux/module.h>
50#include <linux/delayacct.h>
50#include <linux/init.h> 51#include <linux/init.h>
51 52
52#include <asm/pgalloc.h> 53#include <asm/pgalloc.h>
@@ -1549,9 +1550,9 @@ gotten:
1549 flush_cache_page(vma, address, pte_pfn(orig_pte)); 1550 flush_cache_page(vma, address, pte_pfn(orig_pte));
1550 entry = mk_pte(new_page, vma->vm_page_prot); 1551 entry = mk_pte(new_page, vma->vm_page_prot);
1551 entry = maybe_mkwrite(pte_mkdirty(entry), vma); 1552 entry = maybe_mkwrite(pte_mkdirty(entry), vma);
1553 lazy_mmu_prot_update(entry);
1552 ptep_establish(vma, address, page_table, entry); 1554 ptep_establish(vma, address, page_table, entry);
1553 update_mmu_cache(vma, address, entry); 1555 update_mmu_cache(vma, address, entry);
1554 lazy_mmu_prot_update(entry);
1555 lru_cache_add_active(new_page); 1556 lru_cache_add_active(new_page);
1556 page_add_new_anon_rmap(new_page, vma, address); 1557 page_add_new_anon_rmap(new_page, vma, address);
1557 1558
@@ -1934,6 +1935,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
1934 migration_entry_wait(mm, pmd, address); 1935 migration_entry_wait(mm, pmd, address);
1935 goto out; 1936 goto out;
1936 } 1937 }
1938 delayacct_set_flag(DELAYACCT_PF_SWAPIN);
1937 page = lookup_swap_cache(entry); 1939 page = lookup_swap_cache(entry);
1938 if (!page) { 1940 if (!page) {
1939 swapin_readahead(entry, address, vma); 1941 swapin_readahead(entry, address, vma);
@@ -1946,6 +1948,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
1946 page_table = pte_offset_map_lock(mm, pmd, address, &ptl); 1948 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
1947 if (likely(pte_same(*page_table, orig_pte))) 1949 if (likely(pte_same(*page_table, orig_pte)))
1948 ret = VM_FAULT_OOM; 1950 ret = VM_FAULT_OOM;
1951 delayacct_clear_flag(DELAYACCT_PF_SWAPIN);
1949 goto unlock; 1952 goto unlock;
1950 } 1953 }
1951 1954
@@ -1955,6 +1958,7 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
1955 grab_swap_token(); 1958 grab_swap_token();
1956 } 1959 }
1957 1960
1961 delayacct_clear_flag(DELAYACCT_PF_SWAPIN);
1958 mark_page_accessed(page); 1962 mark_page_accessed(page);
1959 lock_page(page); 1963 lock_page(page);
1960 1964
diff --git a/mm/nommu.c b/mm/nommu.c
index 5151c44a8257..c576df71e3bb 100644
--- a/mm/nommu.c
+++ b/mm/nommu.c
@@ -1070,6 +1070,7 @@ int remap_pfn_range(struct vm_area_struct *vma, unsigned long from,
1070 vma->vm_start = vma->vm_pgoff << PAGE_SHIFT; 1070 vma->vm_start = vma->vm_pgoff << PAGE_SHIFT;
1071 return 0; 1071 return 0;
1072} 1072}
1073EXPORT_SYMBOL(remap_pfn_range);
1073 1074
1074void swap_unplug_io_fn(struct backing_dev_info *bdi, struct page *page) 1075void swap_unplug_io_fn(struct backing_dev_info *bdi, struct page *page)
1075{ 1076{
@@ -1090,6 +1091,7 @@ void unmap_mapping_range(struct address_space *mapping,
1090 int even_cows) 1091 int even_cows)
1091{ 1092{
1092} 1093}
1094EXPORT_SYMBOL(unmap_mapping_range);
1093 1095
1094/* 1096/*
1095 * Check that a process has enough memory to allocate a new virtual 1097 * Check that a process has enough memory to allocate a new virtual
diff --git a/mm/slab.c b/mm/slab.c
index 85c2e03098a7..0f20843beffd 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -674,6 +674,37 @@ static struct kmem_cache cache_cache = {
674#endif 674#endif
675}; 675};
676 676
677#ifdef CONFIG_LOCKDEP
678
679/*
680 * Slab sometimes uses the kmalloc slabs to store the slab headers
681 * for other slabs "off slab".
682 * The locking for this is tricky in that it nests within the locks
683 * of all other slabs in a few places; to deal with this special
684 * locking we put on-slab caches into a separate lock-class.
685 */
686static struct lock_class_key on_slab_key;
687
688static inline void init_lock_keys(struct cache_sizes *s)
689{
690 int q;
691
692 for (q = 0; q < MAX_NUMNODES; q++) {
693 if (!s->cs_cachep->nodelists[q] || OFF_SLAB(s->cs_cachep))
694 continue;
695 lockdep_set_class(&s->cs_cachep->nodelists[q]->list_lock,
696 &on_slab_key);
697 }
698}
699
700#else
701static inline void init_lock_keys(struct cache_sizes *s)
702{
703}
704#endif
705
706
707
677/* Guard access to the cache-chain. */ 708/* Guard access to the cache-chain. */
678static DEFINE_MUTEX(cache_chain_mutex); 709static DEFINE_MUTEX(cache_chain_mutex);
679static struct list_head cache_chain; 710static struct list_head cache_chain;
@@ -1021,8 +1052,7 @@ static void drain_alien_cache(struct kmem_cache *cachep,
1021 } 1052 }
1022} 1053}
1023 1054
1024static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, 1055static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
1025 int nesting)
1026{ 1056{
1027 struct slab *slabp = virt_to_slab(objp); 1057 struct slab *slabp = virt_to_slab(objp);
1028 int nodeid = slabp->nodeid; 1058 int nodeid = slabp->nodeid;
@@ -1040,7 +1070,7 @@ static inline int cache_free_alien(struct kmem_cache *cachep, void *objp,
1040 STATS_INC_NODEFREES(cachep); 1070 STATS_INC_NODEFREES(cachep);
1041 if (l3->alien && l3->alien[nodeid]) { 1071 if (l3->alien && l3->alien[nodeid]) {
1042 alien = l3->alien[nodeid]; 1072 alien = l3->alien[nodeid];
1043 spin_lock_nested(&alien->lock, nesting); 1073 spin_lock(&alien->lock);
1044 if (unlikely(alien->avail == alien->limit)) { 1074 if (unlikely(alien->avail == alien->limit)) {
1045 STATS_INC_ACOVERFLOW(cachep); 1075 STATS_INC_ACOVERFLOW(cachep);
1046 __drain_alien_cache(cachep, alien, nodeid); 1076 __drain_alien_cache(cachep, alien, nodeid);
@@ -1069,8 +1099,7 @@ static inline void free_alien_cache(struct array_cache **ac_ptr)
1069{ 1099{
1070} 1100}
1071 1101
1072static inline int cache_free_alien(struct kmem_cache *cachep, void *objp, 1102static inline int cache_free_alien(struct kmem_cache *cachep, void *objp)
1073 int nesting)
1074{ 1103{
1075 return 0; 1104 return 0;
1076} 1105}
@@ -1393,6 +1422,7 @@ void __init kmem_cache_init(void)
1393 ARCH_KMALLOC_FLAGS|SLAB_PANIC, 1422 ARCH_KMALLOC_FLAGS|SLAB_PANIC,
1394 NULL, NULL); 1423 NULL, NULL);
1395 } 1424 }
1425 init_lock_keys(sizes);
1396 1426
1397 sizes->cs_dmacachep = kmem_cache_create(names->name_dma, 1427 sizes->cs_dmacachep = kmem_cache_create(names->name_dma,
1398 sizes->cs_size, 1428 sizes->cs_size,
@@ -1760,8 +1790,6 @@ static void slab_destroy_objs(struct kmem_cache *cachep, struct slab *slabp)
1760} 1790}
1761#endif 1791#endif
1762 1792
1763static void __cache_free(struct kmem_cache *cachep, void *objp, int nesting);
1764
1765/** 1793/**
1766 * slab_destroy - destroy and release all objects in a slab 1794 * slab_destroy - destroy and release all objects in a slab
1767 * @cachep: cache pointer being destroyed 1795 * @cachep: cache pointer being destroyed
@@ -1785,17 +1813,8 @@ static void slab_destroy(struct kmem_cache *cachep, struct slab *slabp)
1785 call_rcu(&slab_rcu->head, kmem_rcu_free); 1813 call_rcu(&slab_rcu->head, kmem_rcu_free);
1786 } else { 1814 } else {
1787 kmem_freepages(cachep, addr); 1815 kmem_freepages(cachep, addr);
1788 if (OFF_SLAB(cachep)) { 1816 if (OFF_SLAB(cachep))
1789 unsigned long flags; 1817 kmem_cache_free(cachep->slabp_cache, slabp);
1790
1791 /*
1792 * lockdep: we may nest inside an already held
1793 * ac->lock, so pass in a nesting flag:
1794 */
1795 local_irq_save(flags);
1796 __cache_free(cachep->slabp_cache, slabp, 1);
1797 local_irq_restore(flags);
1798 }
1799 } 1818 }
1800} 1819}
1801 1820
@@ -3100,16 +3119,7 @@ static void free_block(struct kmem_cache *cachep, void **objpp, int nr_objects,
3100 if (slabp->inuse == 0) { 3119 if (slabp->inuse == 0) {
3101 if (l3->free_objects > l3->free_limit) { 3120 if (l3->free_objects > l3->free_limit) {
3102 l3->free_objects -= cachep->num; 3121 l3->free_objects -= cachep->num;
3103 /*
3104 * It is safe to drop the lock. The slab is
3105 * no longer linked to the cache. cachep
3106 * cannot disappear - we are using it and
3107 * all destruction of caches must be
3108 * serialized properly by the user.
3109 */
3110 spin_unlock(&l3->list_lock);
3111 slab_destroy(cachep, slabp); 3122 slab_destroy(cachep, slabp);
3112 spin_lock(&l3->list_lock);
3113 } else { 3123 } else {
3114 list_add(&slabp->list, &l3->slabs_free); 3124 list_add(&slabp->list, &l3->slabs_free);
3115 } 3125 }
@@ -3135,7 +3145,7 @@ static void cache_flusharray(struct kmem_cache *cachep, struct array_cache *ac)
3135#endif 3145#endif
3136 check_irq_off(); 3146 check_irq_off();
3137 l3 = cachep->nodelists[node]; 3147 l3 = cachep->nodelists[node];
3138 spin_lock_nested(&l3->list_lock, SINGLE_DEPTH_NESTING); 3148 spin_lock(&l3->list_lock);
3139 if (l3->shared) { 3149 if (l3->shared) {
3140 struct array_cache *shared_array = l3->shared; 3150 struct array_cache *shared_array = l3->shared;
3141 int max = shared_array->limit - shared_array->avail; 3151 int max = shared_array->limit - shared_array->avail;
@@ -3178,14 +3188,14 @@ free_done:
3178 * Release an obj back to its cache. If the obj has a constructed state, it must 3188 * Release an obj back to its cache. If the obj has a constructed state, it must
3179 * be in this state _before_ it is released. Called with disabled ints. 3189 * be in this state _before_ it is released. Called with disabled ints.
3180 */ 3190 */
3181static void __cache_free(struct kmem_cache *cachep, void *objp, int nesting) 3191static inline void __cache_free(struct kmem_cache *cachep, void *objp)
3182{ 3192{
3183 struct array_cache *ac = cpu_cache_get(cachep); 3193 struct array_cache *ac = cpu_cache_get(cachep);
3184 3194
3185 check_irq_off(); 3195 check_irq_off();
3186 objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0)); 3196 objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0));
3187 3197
3188 if (cache_free_alien(cachep, objp, nesting)) 3198 if (cache_free_alien(cachep, objp))
3189 return; 3199 return;
3190 3200
3191 if (likely(ac->avail < ac->limit)) { 3201 if (likely(ac->avail < ac->limit)) {
@@ -3424,7 +3434,7 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
3424 BUG_ON(virt_to_cache(objp) != cachep); 3434 BUG_ON(virt_to_cache(objp) != cachep);
3425 3435
3426 local_irq_save(flags); 3436 local_irq_save(flags);
3427 __cache_free(cachep, objp, 0); 3437 __cache_free(cachep, objp);
3428 local_irq_restore(flags); 3438 local_irq_restore(flags);
3429} 3439}
3430EXPORT_SYMBOL(kmem_cache_free); 3440EXPORT_SYMBOL(kmem_cache_free);
@@ -3449,7 +3459,7 @@ void kfree(const void *objp)
3449 kfree_debugcheck(objp); 3459 kfree_debugcheck(objp);
3450 c = virt_to_cache(objp); 3460 c = virt_to_cache(objp);
3451 debug_check_no_locks_freed(objp, obj_size(c)); 3461 debug_check_no_locks_freed(objp, obj_size(c));
3452 __cache_free(c, (void *)objp, 0); 3462 __cache_free(c, (void *)objp);
3453 local_irq_restore(flags); 3463 local_irq_restore(flags);
3454} 3464}
3455EXPORT_SYMBOL(kfree); 3465EXPORT_SYMBOL(kfree);
diff --git a/mm/vmalloc.c b/mm/vmalloc.c
index 7b450798b458..266162d2ba28 100644
--- a/mm/vmalloc.c
+++ b/mm/vmalloc.c
@@ -340,7 +340,7 @@ void __vunmap(void *addr, int deallocate_pages)
340 __free_page(area->pages[i]); 340 __free_page(area->pages[i]);
341 } 341 }
342 342
343 if (area->nr_pages > PAGE_SIZE/sizeof(struct page *)) 343 if (area->flags & VM_VPAGES)
344 vfree(area->pages); 344 vfree(area->pages);
345 else 345 else
346 kfree(area->pages); 346 kfree(area->pages);
@@ -427,9 +427,10 @@ void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask,
427 427
428 area->nr_pages = nr_pages; 428 area->nr_pages = nr_pages;
429 /* Please note that the recursion is strictly bounded. */ 429 /* Please note that the recursion is strictly bounded. */
430 if (array_size > PAGE_SIZE) 430 if (array_size > PAGE_SIZE) {
431 pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node); 431 pages = __vmalloc_node(array_size, gfp_mask, PAGE_KERNEL, node);
432 else 432 area->flags |= VM_VPAGES;
433 } else
433 pages = kmalloc_node(array_size, (gfp_mask & ~__GFP_HIGHMEM), node); 434 pages = kmalloc_node(array_size, (gfp_mask & ~__GFP_HIGHMEM), node);
434 area->pages = pages; 435 area->pages = pages;
435 if (!area->pages) { 436 if (!area->pages) {
diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
index f12be2acf9bc..000695c48583 100644
--- a/net/ax25/af_ax25.c
+++ b/net/ax25/af_ax25.c
@@ -145,7 +145,7 @@ struct sock *ax25_find_listener(ax25_address *addr, int digi,
145 ax25_cb *s; 145 ax25_cb *s;
146 struct hlist_node *node; 146 struct hlist_node *node;
147 147
148 spin_lock_bh(&ax25_list_lock); 148 spin_lock(&ax25_list_lock);
149 ax25_for_each(s, node, &ax25_list) { 149 ax25_for_each(s, node, &ax25_list) {
150 if ((s->iamdigi && !digi) || (!s->iamdigi && digi)) 150 if ((s->iamdigi && !digi) || (!s->iamdigi && digi))
151 continue; 151 continue;
@@ -154,12 +154,12 @@ struct sock *ax25_find_listener(ax25_address *addr, int digi,
154 /* If device is null we match any device */ 154 /* If device is null we match any device */
155 if (s->ax25_dev == NULL || s->ax25_dev->dev == dev) { 155 if (s->ax25_dev == NULL || s->ax25_dev->dev == dev) {
156 sock_hold(s->sk); 156 sock_hold(s->sk);
157 spin_unlock_bh(&ax25_list_lock); 157 spin_unlock(&ax25_list_lock);
158 return s->sk; 158 return s->sk;
159 } 159 }
160 } 160 }
161 } 161 }
162 spin_unlock_bh(&ax25_list_lock); 162 spin_unlock(&ax25_list_lock);
163 163
164 return NULL; 164 return NULL;
165} 165}
@@ -174,7 +174,7 @@ struct sock *ax25_get_socket(ax25_address *my_addr, ax25_address *dest_addr,
174 ax25_cb *s; 174 ax25_cb *s;
175 struct hlist_node *node; 175 struct hlist_node *node;
176 176
177 spin_lock_bh(&ax25_list_lock); 177 spin_lock(&ax25_list_lock);
178 ax25_for_each(s, node, &ax25_list) { 178 ax25_for_each(s, node, &ax25_list) {
179 if (s->sk && !ax25cmp(&s->source_addr, my_addr) && 179 if (s->sk && !ax25cmp(&s->source_addr, my_addr) &&
180 !ax25cmp(&s->dest_addr, dest_addr) && 180 !ax25cmp(&s->dest_addr, dest_addr) &&
@@ -185,7 +185,7 @@ struct sock *ax25_get_socket(ax25_address *my_addr, ax25_address *dest_addr,
185 } 185 }
186 } 186 }
187 187
188 spin_unlock_bh(&ax25_list_lock); 188 spin_unlock(&ax25_list_lock);
189 189
190 return sk; 190 return sk;
191} 191}
@@ -235,7 +235,7 @@ void ax25_send_to_raw(ax25_address *addr, struct sk_buff *skb, int proto)
235 struct sk_buff *copy; 235 struct sk_buff *copy;
236 struct hlist_node *node; 236 struct hlist_node *node;
237 237
238 spin_lock_bh(&ax25_list_lock); 238 spin_lock(&ax25_list_lock);
239 ax25_for_each(s, node, &ax25_list) { 239 ax25_for_each(s, node, &ax25_list) {
240 if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 && 240 if (s->sk != NULL && ax25cmp(&s->source_addr, addr) == 0 &&
241 s->sk->sk_type == SOCK_RAW && 241 s->sk->sk_type == SOCK_RAW &&
@@ -248,7 +248,7 @@ void ax25_send_to_raw(ax25_address *addr, struct sk_buff *skb, int proto)
248 kfree_skb(copy); 248 kfree_skb(copy);
249 } 249 }
250 } 250 }
251 spin_unlock_bh(&ax25_list_lock); 251 spin_unlock(&ax25_list_lock);
252} 252}
253 253
254/* 254/*
diff --git a/net/ax25/ax25_ds_subr.c b/net/ax25/ax25_ds_subr.c
index 1d4ab641f82b..4d22d4430ec8 100644
--- a/net/ax25/ax25_ds_subr.c
+++ b/net/ax25/ax25_ds_subr.c
@@ -80,7 +80,7 @@ void ax25_ds_enquiry_response(ax25_cb *ax25)
80 ax25_start_t3timer(ax25); 80 ax25_start_t3timer(ax25);
81 ax25_ds_set_timer(ax25->ax25_dev); 81 ax25_ds_set_timer(ax25->ax25_dev);
82 82
83 spin_lock_bh(&ax25_list_lock); 83 spin_lock(&ax25_list_lock);
84 ax25_for_each(ax25o, node, &ax25_list) { 84 ax25_for_each(ax25o, node, &ax25_list) {
85 if (ax25o == ax25) 85 if (ax25o == ax25)
86 continue; 86 continue;
@@ -106,7 +106,7 @@ void ax25_ds_enquiry_response(ax25_cb *ax25)
106 if (ax25o->state != AX25_STATE_0) 106 if (ax25o->state != AX25_STATE_0)
107 ax25_start_t3timer(ax25o); 107 ax25_start_t3timer(ax25o);
108 } 108 }
109 spin_unlock_bh(&ax25_list_lock); 109 spin_unlock(&ax25_list_lock);
110} 110}
111 111
112void ax25_ds_establish_data_link(ax25_cb *ax25) 112void ax25_ds_establish_data_link(ax25_cb *ax25)
@@ -162,13 +162,13 @@ static int ax25_check_dama_slave(ax25_dev *ax25_dev)
162 int res = 0; 162 int res = 0;
163 struct hlist_node *node; 163 struct hlist_node *node;
164 164
165 spin_lock_bh(&ax25_list_lock); 165 spin_lock(&ax25_list_lock);
166 ax25_for_each(ax25, node, &ax25_list) 166 ax25_for_each(ax25, node, &ax25_list)
167 if (ax25->ax25_dev == ax25_dev && (ax25->condition & AX25_COND_DAMA_MODE) && ax25->state > AX25_STATE_1) { 167 if (ax25->ax25_dev == ax25_dev && (ax25->condition & AX25_COND_DAMA_MODE) && ax25->state > AX25_STATE_1) {
168 res = 1; 168 res = 1;
169 break; 169 break;
170 } 170 }
171 spin_unlock_bh(&ax25_list_lock); 171 spin_unlock(&ax25_list_lock);
172 172
173 return res; 173 return res;
174} 174}
diff --git a/net/ax25/ax25_ds_timer.c b/net/ax25/ax25_ds_timer.c
index 5961459935eb..4f44185955c7 100644
--- a/net/ax25/ax25_ds_timer.c
+++ b/net/ax25/ax25_ds_timer.c
@@ -85,7 +85,7 @@ static void ax25_ds_timeout(unsigned long arg)
85 return; 85 return;
86 } 86 }
87 87
88 spin_lock_bh(&ax25_list_lock); 88 spin_lock(&ax25_list_lock);
89 ax25_for_each(ax25, node, &ax25_list) { 89 ax25_for_each(ax25, node, &ax25_list) {
90 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE)) 90 if (ax25->ax25_dev != ax25_dev || !(ax25->condition & AX25_COND_DAMA_MODE))
91 continue; 91 continue;
@@ -93,7 +93,7 @@ static void ax25_ds_timeout(unsigned long arg)
93 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND); 93 ax25_send_control(ax25, AX25_DISC, AX25_POLLON, AX25_COMMAND);
94 ax25_disconnect(ax25, ETIMEDOUT); 94 ax25_disconnect(ax25, ETIMEDOUT);
95 } 95 }
96 spin_unlock_bh(&ax25_list_lock); 96 spin_unlock(&ax25_list_lock);
97 97
98 ax25_dev_dama_off(ax25_dev); 98 ax25_dev_dama_off(ax25_dev);
99} 99}
diff --git a/net/ax25/ax25_iface.c b/net/ax25/ax25_iface.c
index 77ba07c67682..07ac0207eb69 100644
--- a/net/ax25/ax25_iface.c
+++ b/net/ax25/ax25_iface.c
@@ -66,10 +66,10 @@ int ax25_protocol_register(unsigned int pid,
66 protocol->pid = pid; 66 protocol->pid = pid;
67 protocol->func = func; 67 protocol->func = func;
68 68
69 write_lock(&protocol_list_lock); 69 write_lock_bh(&protocol_list_lock);
70 protocol->next = protocol_list; 70 protocol->next = protocol_list;
71 protocol_list = protocol; 71 protocol_list = protocol;
72 write_unlock(&protocol_list_lock); 72 write_unlock_bh(&protocol_list_lock);
73 73
74 return 1; 74 return 1;
75} 75}
@@ -80,16 +80,16 @@ void ax25_protocol_release(unsigned int pid)
80{ 80{
81 struct protocol_struct *s, *protocol; 81 struct protocol_struct *s, *protocol;
82 82
83 write_lock(&protocol_list_lock); 83 write_lock_bh(&protocol_list_lock);
84 protocol = protocol_list; 84 protocol = protocol_list;
85 if (protocol == NULL) { 85 if (protocol == NULL) {
86 write_unlock(&protocol_list_lock); 86 write_unlock_bh(&protocol_list_lock);
87 return; 87 return;
88 } 88 }
89 89
90 if (protocol->pid == pid) { 90 if (protocol->pid == pid) {
91 protocol_list = protocol->next; 91 protocol_list = protocol->next;
92 write_unlock(&protocol_list_lock); 92 write_unlock_bh(&protocol_list_lock);
93 kfree(protocol); 93 kfree(protocol);
94 return; 94 return;
95 } 95 }
@@ -98,14 +98,14 @@ void ax25_protocol_release(unsigned int pid)
98 if (protocol->next->pid == pid) { 98 if (protocol->next->pid == pid) {
99 s = protocol->next; 99 s = protocol->next;
100 protocol->next = protocol->next->next; 100 protocol->next = protocol->next->next;
101 write_unlock(&protocol_list_lock); 101 write_unlock_bh(&protocol_list_lock);
102 kfree(s); 102 kfree(s);
103 return; 103 return;
104 } 104 }
105 105
106 protocol = protocol->next; 106 protocol = protocol->next;
107 } 107 }
108 write_unlock(&protocol_list_lock); 108 write_unlock_bh(&protocol_list_lock);
109} 109}
110 110
111EXPORT_SYMBOL(ax25_protocol_release); 111EXPORT_SYMBOL(ax25_protocol_release);
@@ -266,13 +266,13 @@ int ax25_protocol_is_registered(unsigned int pid)
266 struct protocol_struct *protocol; 266 struct protocol_struct *protocol;
267 int res = 0; 267 int res = 0;
268 268
269 read_lock(&protocol_list_lock); 269 read_lock_bh(&protocol_list_lock);
270 for (protocol = protocol_list; protocol != NULL; protocol = protocol->next) 270 for (protocol = protocol_list; protocol != NULL; protocol = protocol->next)
271 if (protocol->pid == pid) { 271 if (protocol->pid == pid) {
272 res = 1; 272 res = 1;
273 break; 273 break;
274 } 274 }
275 read_unlock(&protocol_list_lock); 275 read_unlock_bh(&protocol_list_lock);
276 276
277 return res; 277 return res;
278} 278}
diff --git a/net/bluetooth/cmtp/capi.c b/net/bluetooth/cmtp/capi.c
index 6fb47e00e188..be04e9fb11f6 100644
--- a/net/bluetooth/cmtp/capi.c
+++ b/net/bluetooth/cmtp/capi.c
@@ -75,15 +75,13 @@
75 75
76static struct cmtp_application *cmtp_application_add(struct cmtp_session *session, __u16 appl) 76static struct cmtp_application *cmtp_application_add(struct cmtp_session *session, __u16 appl)
77{ 77{
78 struct cmtp_application *app = kmalloc(sizeof(*app), GFP_KERNEL); 78 struct cmtp_application *app = kzalloc(sizeof(*app), GFP_KERNEL);
79 79
80 BT_DBG("session %p application %p appl %d", session, app, appl); 80 BT_DBG("session %p application %p appl %d", session, app, appl);
81 81
82 if (!app) 82 if (!app)
83 return NULL; 83 return NULL;
84 84
85 memset(app, 0, sizeof(*app));
86
87 app->state = BT_OPEN; 85 app->state = BT_OPEN;
88 app->appl = appl; 86 app->appl = appl;
89 87
diff --git a/net/bluetooth/cmtp/core.c b/net/bluetooth/cmtp/core.c
index 182254a580e2..b81a01c64aea 100644
--- a/net/bluetooth/cmtp/core.c
+++ b/net/bluetooth/cmtp/core.c
@@ -335,10 +335,9 @@ int cmtp_add_connection(struct cmtp_connadd_req *req, struct socket *sock)
335 baswap(&src, &bt_sk(sock->sk)->src); 335 baswap(&src, &bt_sk(sock->sk)->src);
336 baswap(&dst, &bt_sk(sock->sk)->dst); 336 baswap(&dst, &bt_sk(sock->sk)->dst);
337 337
338 session = kmalloc(sizeof(struct cmtp_session), GFP_KERNEL); 338 session = kzalloc(sizeof(struct cmtp_session), GFP_KERNEL);
339 if (!session) 339 if (!session)
340 return -ENOMEM; 340 return -ENOMEM;
341 memset(session, 0, sizeof(struct cmtp_session));
342 341
343 down_write(&cmtp_session_sem); 342 down_write(&cmtp_session_sem);
344 343
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
index 54e8e5ea2154..5ed474277903 100644
--- a/net/bluetooth/hci_core.c
+++ b/net/bluetooth/hci_core.c
@@ -336,9 +336,8 @@ void hci_inquiry_cache_update(struct hci_dev *hdev, struct inquiry_data *data)
336 336
337 if (!(e = hci_inquiry_cache_lookup(hdev, &data->bdaddr))) { 337 if (!(e = hci_inquiry_cache_lookup(hdev, &data->bdaddr))) {
338 /* Entry not in the cache. Add new one. */ 338 /* Entry not in the cache. Add new one. */
339 if (!(e = kmalloc(sizeof(struct inquiry_entry), GFP_ATOMIC))) 339 if (!(e = kzalloc(sizeof(struct inquiry_entry), GFP_ATOMIC)))
340 return; 340 return;
341 memset(e, 0, sizeof(struct inquiry_entry));
342 e->next = cache->list; 341 e->next = cache->list;
343 cache->list = e; 342 cache->list = e;
344 } 343 }
@@ -800,12 +799,10 @@ struct hci_dev *hci_alloc_dev(void)
800{ 799{
801 struct hci_dev *hdev; 800 struct hci_dev *hdev;
802 801
803 hdev = kmalloc(sizeof(struct hci_dev), GFP_KERNEL); 802 hdev = kzalloc(sizeof(struct hci_dev), GFP_KERNEL);
804 if (!hdev) 803 if (!hdev)
805 return NULL; 804 return NULL;
806 805
807 memset(hdev, 0, sizeof(struct hci_dev));
808
809 skb_queue_head_init(&hdev->driver_init); 806 skb_queue_head_init(&hdev->driver_init);
810 807
811 return hdev; 808 return hdev;
diff --git a/net/bluetooth/hidp/Kconfig b/net/bluetooth/hidp/Kconfig
index edfea772fb67..c6abf2a5a932 100644
--- a/net/bluetooth/hidp/Kconfig
+++ b/net/bluetooth/hidp/Kconfig
@@ -1,7 +1,6 @@
1config BT_HIDP 1config BT_HIDP
2 tristate "HIDP protocol support" 2 tristate "HIDP protocol support"
3 depends on BT && BT_L2CAP && (BROKEN || !S390) 3 depends on BT && BT_L2CAP && INPUT
4 select INPUT
5 help 4 help
6 HIDP (Human Interface Device Protocol) is a transport layer 5 HIDP (Human Interface Device Protocol) is a transport layer
7 for HID reports. HIDP is required for the Bluetooth Human 6 for HID reports. HIDP is required for the Bluetooth Human
diff --git a/net/bluetooth/hidp/core.c b/net/bluetooth/hidp/core.c
index b9c24a55425c..c6e3a2c27c6e 100644
--- a/net/bluetooth/hidp/core.c
+++ b/net/bluetooth/hidp/core.c
@@ -582,10 +582,9 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
582 bacmp(&bt_sk(ctrl_sock->sk)->dst, &bt_sk(intr_sock->sk)->dst)) 582 bacmp(&bt_sk(ctrl_sock->sk)->dst, &bt_sk(intr_sock->sk)->dst))
583 return -ENOTUNIQ; 583 return -ENOTUNIQ;
584 584
585 session = kmalloc(sizeof(struct hidp_session), GFP_KERNEL); 585 session = kzalloc(sizeof(struct hidp_session), GFP_KERNEL);
586 if (!session) 586 if (!session)
587 return -ENOMEM; 587 return -ENOMEM;
588 memset(session, 0, sizeof(struct hidp_session));
589 588
590 session->input = input_allocate_device(); 589 session->input = input_allocate_device();
591 if (!session->input) { 590 if (!session->input) {
diff --git a/net/bluetooth/l2cap.c b/net/bluetooth/l2cap.c
index eaaad658d11d..d56f60b392ac 100644
--- a/net/bluetooth/l2cap.c
+++ b/net/bluetooth/l2cap.c
@@ -185,7 +185,7 @@ static inline void l2cap_chan_unlink(struct l2cap_chan_list *l, struct sock *sk)
185{ 185{
186 struct sock *next = l2cap_pi(sk)->next_c, *prev = l2cap_pi(sk)->prev_c; 186 struct sock *next = l2cap_pi(sk)->next_c, *prev = l2cap_pi(sk)->prev_c;
187 187
188 write_lock(&l->lock); 188 write_lock_bh(&l->lock);
189 if (sk == l->head) 189 if (sk == l->head)
190 l->head = next; 190 l->head = next;
191 191
@@ -193,7 +193,7 @@ static inline void l2cap_chan_unlink(struct l2cap_chan_list *l, struct sock *sk)
193 l2cap_pi(next)->prev_c = prev; 193 l2cap_pi(next)->prev_c = prev;
194 if (prev) 194 if (prev)
195 l2cap_pi(prev)->next_c = next; 195 l2cap_pi(prev)->next_c = next;
196 write_unlock(&l->lock); 196 write_unlock_bh(&l->lock);
197 197
198 __sock_put(sk); 198 __sock_put(sk);
199} 199}
@@ -313,9 +313,9 @@ static void l2cap_conn_del(struct hci_conn *hcon, int err)
313static inline void l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk, struct sock *parent) 313static inline void l2cap_chan_add(struct l2cap_conn *conn, struct sock *sk, struct sock *parent)
314{ 314{
315 struct l2cap_chan_list *l = &conn->chan_list; 315 struct l2cap_chan_list *l = &conn->chan_list;
316 write_lock(&l->lock); 316 write_lock_bh(&l->lock);
317 __l2cap_chan_add(conn, sk, parent); 317 __l2cap_chan_add(conn, sk, parent);
318 write_unlock(&l->lock); 318 write_unlock_bh(&l->lock);
319} 319}
320 320
321static inline u8 l2cap_get_ident(struct l2cap_conn *conn) 321static inline u8 l2cap_get_ident(struct l2cap_conn *conn)
@@ -328,14 +328,14 @@ static inline u8 l2cap_get_ident(struct l2cap_conn *conn)
328 * 200 - 254 are used by utilities like l2ping, etc. 328 * 200 - 254 are used by utilities like l2ping, etc.
329 */ 329 */
330 330
331 spin_lock(&conn->lock); 331 spin_lock_bh(&conn->lock);
332 332
333 if (++conn->tx_ident > 128) 333 if (++conn->tx_ident > 128)
334 conn->tx_ident = 1; 334 conn->tx_ident = 1;
335 335
336 id = conn->tx_ident; 336 id = conn->tx_ident;
337 337
338 spin_unlock(&conn->lock); 338 spin_unlock_bh(&conn->lock);
339 339
340 return id; 340 return id;
341} 341}
@@ -1416,11 +1416,11 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1416 if (!sk) 1416 if (!sk)
1417 goto response; 1417 goto response;
1418 1418
1419 write_lock(&list->lock); 1419 write_lock_bh(&list->lock);
1420 1420
1421 /* Check if we already have channel with that dcid */ 1421 /* Check if we already have channel with that dcid */
1422 if (__l2cap_get_chan_by_dcid(list, scid)) { 1422 if (__l2cap_get_chan_by_dcid(list, scid)) {
1423 write_unlock(&list->lock); 1423 write_unlock_bh(&list->lock);
1424 sock_set_flag(sk, SOCK_ZAPPED); 1424 sock_set_flag(sk, SOCK_ZAPPED);
1425 l2cap_sock_kill(sk); 1425 l2cap_sock_kill(sk);
1426 goto response; 1426 goto response;
@@ -1458,7 +1458,7 @@ static inline int l2cap_connect_req(struct l2cap_conn *conn, struct l2cap_cmd_hd
1458 result = status = 0; 1458 result = status = 0;
1459 1459
1460done: 1460done:
1461 write_unlock(&list->lock); 1461 write_unlock_bh(&list->lock);
1462 1462
1463response: 1463response:
1464 bh_unlock_sock(parent); 1464 bh_unlock_sock(parent);
diff --git a/net/bluetooth/rfcomm/core.c b/net/bluetooth/rfcomm/core.c
index 155a2b93760e..77eab8f4c7fd 100644
--- a/net/bluetooth/rfcomm/core.c
+++ b/net/bluetooth/rfcomm/core.c
@@ -273,10 +273,10 @@ static void rfcomm_dlc_clear_state(struct rfcomm_dlc *d)
273 273
274struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio) 274struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio)
275{ 275{
276 struct rfcomm_dlc *d = kmalloc(sizeof(*d), prio); 276 struct rfcomm_dlc *d = kzalloc(sizeof(*d), prio);
277
277 if (!d) 278 if (!d)
278 return NULL; 279 return NULL;
279 memset(d, 0, sizeof(*d));
280 280
281 init_timer(&d->timer); 281 init_timer(&d->timer);
282 d->timer.function = rfcomm_dlc_timeout; 282 d->timer.function = rfcomm_dlc_timeout;
@@ -289,6 +289,7 @@ struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio)
289 rfcomm_dlc_clear_state(d); 289 rfcomm_dlc_clear_state(d);
290 290
291 BT_DBG("%p", d); 291 BT_DBG("%p", d);
292
292 return d; 293 return d;
293} 294}
294 295
@@ -522,10 +523,10 @@ int rfcomm_dlc_get_modem_status(struct rfcomm_dlc *d, u8 *v24_sig)
522/* ---- RFCOMM sessions ---- */ 523/* ---- RFCOMM sessions ---- */
523static struct rfcomm_session *rfcomm_session_add(struct socket *sock, int state) 524static struct rfcomm_session *rfcomm_session_add(struct socket *sock, int state)
524{ 525{
525 struct rfcomm_session *s = kmalloc(sizeof(*s), GFP_KERNEL); 526 struct rfcomm_session *s = kzalloc(sizeof(*s), GFP_KERNEL);
527
526 if (!s) 528 if (!s)
527 return NULL; 529 return NULL;
528 memset(s, 0, sizeof(*s));
529 530
530 BT_DBG("session %p sock %p", s, sock); 531 BT_DBG("session %p sock %p", s, sock);
531 532
diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
index 2ff2d5b87c93..bd8d671a0ba6 100644
--- a/net/bluetooth/rfcomm/tty.c
+++ b/net/bluetooth/rfcomm/tty.c
@@ -169,10 +169,9 @@ static int rfcomm_dev_add(struct rfcomm_dev_req *req, struct rfcomm_dlc *dlc)
169 169
170 BT_DBG("id %d channel %d", req->dev_id, req->channel); 170 BT_DBG("id %d channel %d", req->dev_id, req->channel);
171 171
172 dev = kmalloc(sizeof(struct rfcomm_dev), GFP_KERNEL); 172 dev = kzalloc(sizeof(struct rfcomm_dev), GFP_KERNEL);
173 if (!dev) 173 if (!dev)
174 return -ENOMEM; 174 return -ENOMEM;
175 memset(dev, 0, sizeof(struct rfcomm_dev));
176 175
177 write_lock_bh(&rfcomm_dev_lock); 176 write_lock_bh(&rfcomm_dev_lock);
178 177
diff --git a/net/bluetooth/sco.c b/net/bluetooth/sco.c
index 85defccc0287..7714a2ec3854 100644
--- a/net/bluetooth/sco.c
+++ b/net/bluetooth/sco.c
@@ -108,17 +108,14 @@ static void sco_sock_init_timer(struct sock *sk)
108static struct sco_conn *sco_conn_add(struct hci_conn *hcon, __u8 status) 108static struct sco_conn *sco_conn_add(struct hci_conn *hcon, __u8 status)
109{ 109{
110 struct hci_dev *hdev = hcon->hdev; 110 struct hci_dev *hdev = hcon->hdev;
111 struct sco_conn *conn; 111 struct sco_conn *conn = hcon->sco_data;
112
113 if ((conn = hcon->sco_data))
114 return conn;
115 112
116 if (status) 113 if (conn || status)
117 return conn; 114 return conn;
118 115
119 if (!(conn = kmalloc(sizeof(struct sco_conn), GFP_ATOMIC))) 116 conn = kzalloc(sizeof(struct sco_conn), GFP_ATOMIC);
117 if (!conn)
120 return NULL; 118 return NULL;
121 memset(conn, 0, sizeof(struct sco_conn));
122 119
123 spin_lock_init(&conn->lock); 120 spin_lock_init(&conn->lock);
124 121
@@ -134,6 +131,7 @@ static struct sco_conn *sco_conn_add(struct hci_conn *hcon, __u8 status)
134 conn->mtu = 60; 131 conn->mtu = 60;
135 132
136 BT_DBG("hcon %p conn %p", hcon, conn); 133 BT_DBG("hcon %p conn %p", hcon, conn);
134
137 return conn; 135 return conn;
138} 136}
139 137
diff --git a/net/core/ethtool.c b/net/core/ethtool.c
index 27ce1683caf5..2797e2815418 100644
--- a/net/core/ethtool.c
+++ b/net/core/ethtool.c
@@ -437,7 +437,7 @@ static int ethtool_set_pauseparam(struct net_device *dev, void __user *useraddr)
437{ 437{
438 struct ethtool_pauseparam pauseparam; 438 struct ethtool_pauseparam pauseparam;
439 439
440 if (!dev->ethtool_ops->get_pauseparam) 440 if (!dev->ethtool_ops->set_pauseparam)
441 return -EOPNOTSUPP; 441 return -EOPNOTSUPP;
442 442
443 if (copy_from_user(&pauseparam, useraddr, sizeof(pauseparam))) 443 if (copy_from_user(&pauseparam, useraddr, sizeof(pauseparam)))
diff --git a/net/core/skbuff.c b/net/core/skbuff.c
index 44f6a181a754..476aa3978504 100644
--- a/net/core/skbuff.c
+++ b/net/core/skbuff.c
@@ -257,11 +257,11 @@ nodata:
257} 257}
258 258
259 259
260static void skb_drop_fraglist(struct sk_buff *skb) 260static void skb_drop_list(struct sk_buff **listp)
261{ 261{
262 struct sk_buff *list = skb_shinfo(skb)->frag_list; 262 struct sk_buff *list = *listp;
263 263
264 skb_shinfo(skb)->frag_list = NULL; 264 *listp = NULL;
265 265
266 do { 266 do {
267 struct sk_buff *this = list; 267 struct sk_buff *this = list;
@@ -270,6 +270,11 @@ static void skb_drop_fraglist(struct sk_buff *skb)
270 } while (list); 270 } while (list);
271} 271}
272 272
273static inline void skb_drop_fraglist(struct sk_buff *skb)
274{
275 skb_drop_list(&skb_shinfo(skb)->frag_list);
276}
277
273static void skb_clone_fraglist(struct sk_buff *skb) 278static void skb_clone_fraglist(struct sk_buff *skb)
274{ 279{
275 struct sk_buff *list; 280 struct sk_buff *list;
@@ -830,41 +835,75 @@ free_skb:
830 835
831int ___pskb_trim(struct sk_buff *skb, unsigned int len) 836int ___pskb_trim(struct sk_buff *skb, unsigned int len)
832{ 837{
838 struct sk_buff **fragp;
839 struct sk_buff *frag;
833 int offset = skb_headlen(skb); 840 int offset = skb_headlen(skb);
834 int nfrags = skb_shinfo(skb)->nr_frags; 841 int nfrags = skb_shinfo(skb)->nr_frags;
835 int i; 842 int i;
843 int err;
844
845 if (skb_cloned(skb) &&
846 unlikely((err = pskb_expand_head(skb, 0, 0, GFP_ATOMIC))))
847 return err;
836 848
837 for (i = 0; i < nfrags; i++) { 849 for (i = 0; i < nfrags; i++) {
838 int end = offset + skb_shinfo(skb)->frags[i].size; 850 int end = offset + skb_shinfo(skb)->frags[i].size;
839 if (end > len) { 851
840 if (skb_cloned(skb)) { 852 if (end < len) {
841 if (pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) 853 offset = end;
842 return -ENOMEM; 854 continue;
843 }
844 if (len <= offset) {
845 put_page(skb_shinfo(skb)->frags[i].page);
846 skb_shinfo(skb)->nr_frags--;
847 } else {
848 skb_shinfo(skb)->frags[i].size = len - offset;
849 }
850 } 855 }
851 offset = end; 856
857 if (len > offset)
858 skb_shinfo(skb)->frags[i++].size = len - offset;
859
860 skb_shinfo(skb)->nr_frags = i;
861
862 for (; i < nfrags; i++)
863 put_page(skb_shinfo(skb)->frags[i].page);
864
865 if (skb_shinfo(skb)->frag_list)
866 skb_drop_fraglist(skb);
867 break;
852 } 868 }
853 869
854 if (offset < len) { 870 for (fragp = &skb_shinfo(skb)->frag_list; (frag = *fragp);
871 fragp = &frag->next) {
872 int end = offset + frag->len;
873
874 if (skb_shared(frag)) {
875 struct sk_buff *nfrag;
876
877 nfrag = skb_clone(frag, GFP_ATOMIC);
878 if (unlikely(!nfrag))
879 return -ENOMEM;
880
881 nfrag->next = frag->next;
882 frag = nfrag;
883 *fragp = frag;
884 }
885
886 if (end < len) {
887 offset = end;
888 continue;
889 }
890
891 if (end > len &&
892 unlikely((err = pskb_trim(frag, len - offset))))
893 return err;
894
895 if (frag->next)
896 skb_drop_list(&frag->next);
897 break;
898 }
899
900 if (len > skb_headlen(skb)) {
855 skb->data_len -= skb->len - len; 901 skb->data_len -= skb->len - len;
856 skb->len = len; 902 skb->len = len;
857 } else { 903 } else {
858 if (len <= skb_headlen(skb)) { 904 skb->len = len;
859 skb->len = len; 905 skb->data_len = 0;
860 skb->data_len = 0; 906 skb->tail = skb->data + len;
861 skb->tail = skb->data + len;
862 if (skb_shinfo(skb)->frag_list && !skb_cloned(skb))
863 skb_drop_fraglist(skb);
864 } else {
865 skb->data_len -= skb->len - len;
866 skb->len = len;
867 }
868 } 907 }
869 908
870 return 0; 909 return 0;
diff --git a/net/core/stream.c b/net/core/stream.c
index e9489696f694..d1d7decf70b0 100644
--- a/net/core/stream.c
+++ b/net/core/stream.c
@@ -196,15 +196,13 @@ EXPORT_SYMBOL(sk_stream_error);
196 196
197void __sk_stream_mem_reclaim(struct sock *sk) 197void __sk_stream_mem_reclaim(struct sock *sk)
198{ 198{
199 if (sk->sk_forward_alloc >= SK_STREAM_MEM_QUANTUM) { 199 atomic_sub(sk->sk_forward_alloc / SK_STREAM_MEM_QUANTUM,
200 atomic_sub(sk->sk_forward_alloc / SK_STREAM_MEM_QUANTUM, 200 sk->sk_prot->memory_allocated);
201 sk->sk_prot->memory_allocated); 201 sk->sk_forward_alloc &= SK_STREAM_MEM_QUANTUM - 1;
202 sk->sk_forward_alloc &= SK_STREAM_MEM_QUANTUM - 1; 202 if (*sk->sk_prot->memory_pressure &&
203 if (*sk->sk_prot->memory_pressure && 203 (atomic_read(sk->sk_prot->memory_allocated) <
204 (atomic_read(sk->sk_prot->memory_allocated) < 204 sk->sk_prot->sysctl_mem[0]))
205 sk->sk_prot->sysctl_mem[0])) 205 *sk->sk_prot->memory_pressure = 0;
206 *sk->sk_prot->memory_pressure = 0;
207 }
208} 206}
209 207
210EXPORT_SYMBOL(__sk_stream_mem_reclaim); 208EXPORT_SYMBOL(__sk_stream_mem_reclaim);
diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
index 1cb65305e102..23fb9d9768e3 100644
--- a/net/ipv4/fib_trie.c
+++ b/net/ipv4/fib_trie.c
@@ -1252,8 +1252,8 @@ fn_trie_insert(struct fib_table *tb, struct rtmsg *r, struct kern_rta *rta,
1252 */ 1252 */
1253 1253
1254 if (!fa_head) { 1254 if (!fa_head) {
1255 fa_head = fib_insert_node(t, &err, key, plen);
1256 err = 0; 1255 err = 0;
1256 fa_head = fib_insert_node(t, &err, key, plen);
1257 if (err) 1257 if (err)
1258 goto out_free_new_fa; 1258 goto out_free_new_fa;
1259 } 1259 }
diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
index e1a7dba2fa8a..184c78ca79e6 100644
--- a/net/ipv4/ip_input.c
+++ b/net/ipv4/ip_input.c
@@ -428,6 +428,9 @@ int ip_rcv(struct sk_buff *skb, struct net_device *dev, struct packet_type *pt,
428 goto drop; 428 goto drop;
429 } 429 }
430 430
431 /* Remove any debris in the socket control block */
432 memset(&(IPCB(skb)->opt), 0, sizeof(struct ip_options));
433
431 return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL, 434 return NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, dev, NULL,
432 ip_rcv_finish); 435 ip_rcv_finish);
433 436
diff --git a/net/ipv4/ipcomp.c b/net/ipv4/ipcomp.c
index 8e0374847532..8a8b5cf2f7fe 100644
--- a/net/ipv4/ipcomp.c
+++ b/net/ipv4/ipcomp.c
@@ -70,7 +70,8 @@ static int ipcomp_decompress(struct xfrm_state *x, struct sk_buff *skb)
70 if (err) 70 if (err)
71 goto out; 71 goto out;
72 72
73 skb_put(skb, dlen - plen); 73 skb->truesize += dlen - plen;
74 __skb_put(skb, dlen - plen);
74 memcpy(skb->data, scratch, dlen); 75 memcpy(skb->data, scratch, dlen);
75out: 76out:
76 put_cpu(); 77 put_cpu();
diff --git a/net/ipv4/tcp_highspeed.c b/net/ipv4/tcp_highspeed.c
index aaa1538c0692..fa3e1aad660c 100644
--- a/net/ipv4/tcp_highspeed.c
+++ b/net/ipv4/tcp_highspeed.c
@@ -139,14 +139,19 @@ static void hstcp_cong_avoid(struct sock *sk, u32 adk, u32 rtt,
139 tp->snd_cwnd++; 139 tp->snd_cwnd++;
140 } 140 }
141 } else { 141 } else {
142 /* Update AIMD parameters */ 142 /* Update AIMD parameters.
143 *
144 * We want to guarantee that:
145 * hstcp_aimd_vals[ca->ai-1].cwnd <
146 * snd_cwnd <=
147 * hstcp_aimd_vals[ca->ai].cwnd
148 */
143 if (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd) { 149 if (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd) {
144 while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd && 150 while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd &&
145 ca->ai < HSTCP_AIMD_MAX - 1) 151 ca->ai < HSTCP_AIMD_MAX - 1)
146 ca->ai++; 152 ca->ai++;
147 } else if (tp->snd_cwnd < hstcp_aimd_vals[ca->ai].cwnd) { 153 } else if (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd) {
148 while (tp->snd_cwnd > hstcp_aimd_vals[ca->ai].cwnd && 154 while (ca->ai && tp->snd_cwnd <= hstcp_aimd_vals[ca->ai-1].cwnd)
149 ca->ai > 0)
150 ca->ai--; 155 ca->ai--;
151 } 156 }
152 157
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index c250d0af10d7..2316a4315a18 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -508,6 +508,26 @@ void inet6_ifa_finish_destroy(struct inet6_ifaddr *ifp)
508 kfree(ifp); 508 kfree(ifp);
509} 509}
510 510
511static void
512ipv6_link_dev_addr(struct inet6_dev *idev, struct inet6_ifaddr *ifp)
513{
514 struct inet6_ifaddr *ifa, **ifap;
515 int ifp_scope = ipv6_addr_src_scope(&ifp->addr);
516
517 /*
518 * Each device address list is sorted in order of scope -
519 * global before linklocal.
520 */
521 for (ifap = &idev->addr_list; (ifa = *ifap) != NULL;
522 ifap = &ifa->if_next) {
523 if (ifp_scope >= ipv6_addr_src_scope(&ifa->addr))
524 break;
525 }
526
527 ifp->if_next = *ifap;
528 *ifap = ifp;
529}
530
511/* On success it returns ifp with increased reference count */ 531/* On success it returns ifp with increased reference count */
512 532
513static struct inet6_ifaddr * 533static struct inet6_ifaddr *
@@ -573,8 +593,7 @@ ipv6_add_addr(struct inet6_dev *idev, const struct in6_addr *addr, int pfxlen,
573 593
574 write_lock(&idev->lock); 594 write_lock(&idev->lock);
575 /* Add to inet6_dev unicast addr list. */ 595 /* Add to inet6_dev unicast addr list. */
576 ifa->if_next = idev->addr_list; 596 ipv6_link_dev_addr(idev, ifa);
577 idev->addr_list = ifa;
578 597
579#ifdef CONFIG_IPV6_PRIVACY 598#ifdef CONFIG_IPV6_PRIVACY
580 if (ifa->flags&IFA_F_TEMPORARY) { 599 if (ifa->flags&IFA_F_TEMPORARY) {
@@ -987,7 +1006,7 @@ int ipv6_dev_get_saddr(struct net_device *daddr_dev,
987 continue; 1006 continue;
988 } else if (score.scope < hiscore.scope) { 1007 } else if (score.scope < hiscore.scope) {
989 if (score.scope < daddr_scope) 1008 if (score.scope < daddr_scope)
990 continue; 1009 break; /* addresses sorted by scope */
991 else { 1010 else {
992 score.rule = 2; 1011 score.rule = 2;
993 goto record_it; 1012 goto record_it;
diff --git a/net/ipv6/ipcomp6.c b/net/ipv6/ipcomp6.c
index b285b0357084..7e4d1c17bfbc 100644
--- a/net/ipv6/ipcomp6.c
+++ b/net/ipv6/ipcomp6.c
@@ -109,7 +109,8 @@ static int ipcomp6_input(struct xfrm_state *x, struct sk_buff *skb)
109 goto out_put_cpu; 109 goto out_put_cpu;
110 } 110 }
111 111
112 skb_put(skb, dlen - plen); 112 skb->truesize += dlen - plen;
113 __skb_put(skb, dlen - plen);
113 memcpy(skb->data, scratch, dlen); 114 memcpy(skb->data, scratch, dlen);
114 err = ipch->nexthdr; 115 err = ipch->nexthdr;
115 116
diff --git a/net/netrom/af_netrom.c b/net/netrom/af_netrom.c
index ecc796878f38..1d50f801f181 100644
--- a/net/netrom/af_netrom.c
+++ b/net/netrom/af_netrom.c
@@ -66,6 +66,14 @@ static DEFINE_SPINLOCK(nr_list_lock);
66static const struct proto_ops nr_proto_ops; 66static const struct proto_ops nr_proto_ops;
67 67
68/* 68/*
69 * NETROM network devices are virtual network devices encapsulating NETROM
70 * frames into AX.25 which will be sent through an AX.25 device, so form a
71 * special "super class" of normal net devices; split their locks off into a
72 * separate class since they always nest.
73 */
74static struct lock_class_key nr_netdev_xmit_lock_key;
75
76/*
69 * Socket removal during an interrupt is now safe. 77 * Socket removal during an interrupt is now safe.
70 */ 78 */
71static void nr_remove_socket(struct sock *sk) 79static void nr_remove_socket(struct sock *sk)
@@ -986,18 +994,18 @@ int nr_rx_frame(struct sk_buff *skb, struct net_device *dev)
986 nr_make->vl = 0; 994 nr_make->vl = 0;
987 nr_make->state = NR_STATE_3; 995 nr_make->state = NR_STATE_3;
988 sk_acceptq_added(sk); 996 sk_acceptq_added(sk);
989
990 nr_insert_socket(make);
991
992 skb_queue_head(&sk->sk_receive_queue, skb); 997 skb_queue_head(&sk->sk_receive_queue, skb);
993 998
994 nr_start_heartbeat(make);
995 nr_start_idletimer(make);
996
997 if (!sock_flag(sk, SOCK_DEAD)) 999 if (!sock_flag(sk, SOCK_DEAD))
998 sk->sk_data_ready(sk, skb->len); 1000 sk->sk_data_ready(sk, skb->len);
999 1001
1000 bh_unlock_sock(sk); 1002 bh_unlock_sock(sk);
1003
1004 nr_insert_socket(make);
1005
1006 nr_start_heartbeat(make);
1007 nr_start_idletimer(make);
1008
1001 return 1; 1009 return 1;
1002} 1010}
1003 1011
@@ -1405,6 +1413,7 @@ static int __init nr_proto_init(void)
1405 free_netdev(dev); 1413 free_netdev(dev);
1406 goto fail; 1414 goto fail;
1407 } 1415 }
1416 lockdep_set_class(&dev->_xmit_lock, &nr_netdev_xmit_lock_key);
1408 dev_nr[i] = dev; 1417 dev_nr[i] = dev;
1409 } 1418 }
1410 1419
diff --git a/net/netrom/nr_timer.c b/net/netrom/nr_timer.c
index 75b72d389ba9..ddba1c144260 100644
--- a/net/netrom/nr_timer.c
+++ b/net/netrom/nr_timer.c
@@ -138,8 +138,8 @@ static void nr_heartbeat_expiry(unsigned long param)
138 if (sock_flag(sk, SOCK_DESTROY) || 138 if (sock_flag(sk, SOCK_DESTROY) ||
139 (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) { 139 (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) {
140 sock_hold(sk); 140 sock_hold(sk);
141 nr_destroy_socket(sk);
142 bh_unlock_sock(sk); 141 bh_unlock_sock(sk);
142 nr_destroy_socket(sk);
143 sock_put(sk); 143 sock_put(sk);
144 return; 144 return;
145 } 145 }
diff --git a/net/rose/af_rose.c b/net/rose/af_rose.c
index c115295ab431..08a542855654 100644
--- a/net/rose/af_rose.c
+++ b/net/rose/af_rose.c
@@ -67,6 +67,14 @@ static struct proto_ops rose_proto_ops;
67ax25_address rose_callsign; 67ax25_address rose_callsign;
68 68
69/* 69/*
70 * ROSE network devices are virtual network devices encapsulating ROSE
71 * frames into AX.25 which will be sent through an AX.25 device, so form a
72 * special "super class" of normal net devices; split their locks off into a
73 * separate class since they always nest.
74 */
75static struct lock_class_key rose_netdev_xmit_lock_key;
76
77/*
70 * Convert a ROSE address into text. 78 * Convert a ROSE address into text.
71 */ 79 */
72const char *rose2asc(const rose_address *addr) 80const char *rose2asc(const rose_address *addr)
@@ -1515,6 +1523,7 @@ static int __init rose_proto_init(void)
1515 free_netdev(dev); 1523 free_netdev(dev);
1516 goto fail; 1524 goto fail;
1517 } 1525 }
1526 lockdep_set_class(&dev->_xmit_lock, &rose_netdev_xmit_lock_key);
1518 dev_rose[i] = dev; 1527 dev_rose[i] = dev;
1519 } 1528 }
1520 1529
diff --git a/net/sched/act_api.c b/net/sched/act_api.c
index 0972247a839c..9affeeedf107 100644
--- a/net/sched/act_api.c
+++ b/net/sched/act_api.c
@@ -884,8 +884,6 @@ static int __init tc_action_init(void)
884 link_p[RTM_GETACTION-RTM_BASE].dumpit = tc_dump_action; 884 link_p[RTM_GETACTION-RTM_BASE].dumpit = tc_dump_action;
885 } 885 }
886 886
887 printk("TC classifier action (bugs to netdev@vger.kernel.org cc "
888 "hadi@cyberus.ca)\n");
889 return 0; 887 return 0;
890} 888}
891 889
diff --git a/net/sched/sch_htb.c b/net/sched/sch_htb.c
index 34afe41fa2f3..cc5f339e6f91 100644
--- a/net/sched/sch_htb.c
+++ b/net/sched/sch_htb.c
@@ -196,7 +196,7 @@ struct htb_class
196 struct qdisc_rate_table *rate; /* rate table of the class itself */ 196 struct qdisc_rate_table *rate; /* rate table of the class itself */
197 struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */ 197 struct qdisc_rate_table *ceil; /* ceiling rate (limits borrows too) */
198 long buffer,cbuffer; /* token bucket depth/rate */ 198 long buffer,cbuffer; /* token bucket depth/rate */
199 long mbuffer; /* max wait time */ 199 psched_tdiff_t mbuffer; /* max wait time */
200 long tokens,ctokens; /* current number of tokens */ 200 long tokens,ctokens; /* current number of tokens */
201 psched_time_t t_c; /* checkpoint time */ 201 psched_time_t t_c; /* checkpoint time */
202}; 202};
@@ -1601,7 +1601,7 @@ static int htb_change_class(struct Qdisc *sch, u32 classid,
1601 /* set class to be in HTB_CAN_SEND state */ 1601 /* set class to be in HTB_CAN_SEND state */
1602 cl->tokens = hopt->buffer; 1602 cl->tokens = hopt->buffer;
1603 cl->ctokens = hopt->cbuffer; 1603 cl->ctokens = hopt->cbuffer;
1604 cl->mbuffer = 60000000; /* 1min */ 1604 cl->mbuffer = PSCHED_JIFFIE2US(HZ*60); /* 1min */
1605 PSCHED_GET_TIME(cl->t_c); 1605 PSCHED_GET_TIME(cl->t_c);
1606 cl->cmode = HTB_CAN_SEND; 1606 cl->cmode = HTB_CAN_SEND;
1607 1607
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index 2e8b4dfcbc74..a91c961ba38b 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -523,12 +523,16 @@ static int try_context_mount(struct super_block *sb, void *data)
523 goto out_free; 523 goto out_free;
524 } 524 }
525 525
526 rc = may_context_mount_sb_relabel(sid, sbsec, tsec); 526 if (!fscontext) {
527 if (rc) 527 rc = may_context_mount_sb_relabel(sid, sbsec, tsec);
528 goto out_free; 528 if (rc)
529 529 goto out_free;
530 if (!fscontext)
531 sbsec->sid = sid; 530 sbsec->sid = sid;
531 } else {
532 rc = may_context_mount_inode_relabel(sid, sbsec, tsec);
533 if (rc)
534 goto out_free;
535 }
532 sbsec->mntpoint_sid = sid; 536 sbsec->mntpoint_sid = sid;
533 537
534 sbsec->behavior = SECURITY_FS_USE_MNTPOINT; 538 sbsec->behavior = SECURITY_FS_USE_MNTPOINT;
diff --git a/sound/core/sound.c b/sound/core/sound.c
index 264f2efd1af8..7edd1fc58b17 100644
--- a/sound/core/sound.c
+++ b/sound/core/sound.c
@@ -244,7 +244,7 @@ int snd_register_device(int type, struct snd_card *card, int dev,
244 struct device *device = NULL; 244 struct device *device = NULL;
245 245
246 snd_assert(name, return -EINVAL); 246 snd_assert(name, return -EINVAL);
247 preg = kmalloc(sizeof(struct snd_minor) + strlen(name) + 1, GFP_KERNEL); 247 preg = kmalloc(sizeof *preg, GFP_KERNEL);
248 if (preg == NULL) 248 if (preg == NULL)
249 return -ENOMEM; 249 return -ENOMEM;
250 preg->type = type; 250 preg->type = type;
@@ -252,7 +252,6 @@ int snd_register_device(int type, struct snd_card *card, int dev,
252 preg->device = dev; 252 preg->device = dev;
253 preg->f_ops = f_ops; 253 preg->f_ops = f_ops;
254 preg->private_data = private_data; 254 preg->private_data = private_data;
255 strcpy(preg->name, name);
256 mutex_lock(&sound_mutex); 255 mutex_lock(&sound_mutex);
257#ifdef CONFIG_SND_DYNAMIC_MINORS 256#ifdef CONFIG_SND_DYNAMIC_MINORS
258 minor = snd_find_free_minor(); 257 minor = snd_find_free_minor();
diff --git a/sound/core/timer.c b/sound/core/timer.c
index 78199f58b93a..0a984e881c10 100644
--- a/sound/core/timer.c
+++ b/sound/core/timer.c
@@ -628,8 +628,9 @@ static void snd_timer_tasklet(unsigned long arg)
628 struct snd_timer_instance *ti; 628 struct snd_timer_instance *ti;
629 struct list_head *p; 629 struct list_head *p;
630 unsigned long resolution, ticks; 630 unsigned long resolution, ticks;
631 unsigned long flags;
631 632
632 spin_lock(&timer->lock); 633 spin_lock_irqsave(&timer->lock, flags);
633 /* now process all callbacks */ 634 /* now process all callbacks */
634 while (!list_empty(&timer->sack_list_head)) { 635 while (!list_empty(&timer->sack_list_head)) {
635 p = timer->sack_list_head.next; /* get first item */ 636 p = timer->sack_list_head.next; /* get first item */
@@ -649,7 +650,7 @@ static void snd_timer_tasklet(unsigned long arg)
649 spin_lock(&timer->lock); 650 spin_lock(&timer->lock);
650 ti->flags &= ~SNDRV_TIMER_IFLG_CALLBACK; 651 ti->flags &= ~SNDRV_TIMER_IFLG_CALLBACK;
651 } 652 }
652 spin_unlock(&timer->lock); 653 spin_unlock_irqrestore(&timer->lock, flags);
653} 654}
654 655
655/* 656/*
diff --git a/sound/i2c/cs8427.c b/sound/i2c/cs8427.c
index cb89f7eb9236..64388cb8d6e5 100644
--- a/sound/i2c/cs8427.c
+++ b/sound/i2c/cs8427.c
@@ -76,23 +76,28 @@ int snd_cs8427_reg_write(struct snd_i2c_device *device, unsigned char reg,
76 buf[0] = reg & 0x7f; 76 buf[0] = reg & 0x7f;
77 buf[1] = val; 77 buf[1] = val;
78 if ((err = snd_i2c_sendbytes(device, buf, 2)) != 2) { 78 if ((err = snd_i2c_sendbytes(device, buf, 2)) != 2) {
79 snd_printk(KERN_ERR "unable to send bytes 0x%02x:0x%02x to CS8427 (%i)\n", buf[0], buf[1], err); 79 snd_printk(KERN_ERR "unable to send bytes 0x%02x:0x%02x "
80 "to CS8427 (%i)\n", buf[0], buf[1], err);
80 return err < 0 ? err : -EIO; 81 return err < 0 ? err : -EIO;
81 } 82 }
82 return 0; 83 return 0;
83} 84}
84 85
86EXPORT_SYMBOL(snd_cs8427_reg_write);
87
85static int snd_cs8427_reg_read(struct snd_i2c_device *device, unsigned char reg) 88static int snd_cs8427_reg_read(struct snd_i2c_device *device, unsigned char reg)
86{ 89{
87 int err; 90 int err;
88 unsigned char buf; 91 unsigned char buf;
89 92
90 if ((err = snd_i2c_sendbytes(device, &reg, 1)) != 1) { 93 if ((err = snd_i2c_sendbytes(device, &reg, 1)) != 1) {
91 snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg); 94 snd_printk(KERN_ERR "unable to send register 0x%x byte "
95 "to CS8427\n", reg);
92 return err < 0 ? err : -EIO; 96 return err < 0 ? err : -EIO;
93 } 97 }
94 if ((err = snd_i2c_readbytes(device, &buf, 1)) != 1) { 98 if ((err = snd_i2c_readbytes(device, &buf, 1)) != 1) {
95 snd_printk(KERN_ERR "unable to read register 0x%x byte from CS8427\n", reg); 99 snd_printk(KERN_ERR "unable to read register 0x%x byte "
100 "from CS8427\n", reg);
96 return err < 0 ? err : -EIO; 101 return err < 0 ? err : -EIO;
97 } 102 }
98 return buf; 103 return buf;
@@ -121,7 +126,8 @@ static int snd_cs8427_send_corudata(struct snd_i2c_device *device,
121 int count) 126 int count)
122{ 127{
123 struct cs8427 *chip = device->private_data; 128 struct cs8427 *chip = device->private_data;
124 char *hw_data = udata ? chip->playback.hw_udata : chip->playback.hw_status; 129 char *hw_data = udata ?
130 chip->playback.hw_udata : chip->playback.hw_status;
125 char data[32]; 131 char data[32];
126 int err, idx; 132 int err, idx;
127 133
@@ -134,11 +140,11 @@ static int snd_cs8427_send_corudata(struct snd_i2c_device *device,
134 memset(data, 0, sizeof(data)); 140 memset(data, 0, sizeof(data));
135 if (memcmp(hw_data, data, count) == 0) { 141 if (memcmp(hw_data, data, count) == 0) {
136 chip->regmap[CS8427_REG_UDATABUF] &= ~CS8427_UBMMASK; 142 chip->regmap[CS8427_REG_UDATABUF] &= ~CS8427_UBMMASK;
137 chip->regmap[CS8427_REG_UDATABUF] |= CS8427_UBMZEROS | CS8427_EFTUI; 143 chip->regmap[CS8427_REG_UDATABUF] |= CS8427_UBMZEROS |
138 if ((err = snd_cs8427_reg_write(device, CS8427_REG_UDATABUF, 144 CS8427_EFTUI;
139 chip->regmap[CS8427_REG_UDATABUF])) < 0) 145 err = snd_cs8427_reg_write(device, CS8427_REG_UDATABUF,
140 return err; 146 chip->regmap[CS8427_REG_UDATABUF]);
141 return 0; 147 return err < 0 ? err : 0;
142 } 148 }
143 } 149 }
144 data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF; 150 data[0] = CS8427_REG_AUTOINC | CS8427_REG_CORU_DATABUF;
@@ -161,24 +167,32 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
161{ 167{
162 static unsigned char initvals1[] = { 168 static unsigned char initvals1[] = {
163 CS8427_REG_CONTROL1 | CS8427_REG_AUTOINC, 169 CS8427_REG_CONTROL1 | CS8427_REG_AUTOINC,
164 /* CS8427_REG_CONTROL1: RMCK to OMCK, valid PCM audio, disable mutes, TCBL=output */ 170 /* CS8427_REG_CONTROL1: RMCK to OMCK, valid PCM audio, disable mutes,
171 TCBL=output */
165 CS8427_SWCLK | CS8427_TCBLDIR, 172 CS8427_SWCLK | CS8427_TCBLDIR,
166 /* CS8427_REG_CONTROL2: hold last valid audio sample, RMCK=256*Fs, normal stereo operation */ 173 /* CS8427_REG_CONTROL2: hold last valid audio sample, RMCK=256*Fs,
174 normal stereo operation */
167 0x00, 175 0x00,
168 /* CS8427_REG_DATAFLOW: output drivers normal operation, Tx<=serial, Rx=>serial */ 176 /* CS8427_REG_DATAFLOW: output drivers normal operation, Tx<=serial,
177 Rx=>serial */
169 CS8427_TXDSERIAL | CS8427_SPDAES3RECEIVER, 178 CS8427_TXDSERIAL | CS8427_SPDAES3RECEIVER,
170 /* CS8427_REG_CLOCKSOURCE: Run off, CMCK=256*Fs, output time base = OMCK, input time base = 179 /* CS8427_REG_CLOCKSOURCE: Run off, CMCK=256*Fs,
171 recovered input clock, recovered input clock source is ILRCK changed to AES3INPUT (workaround, see snd_cs8427_reset) */ 180 output time base = OMCK, input time base = recovered input clock,
181 recovered input clock source is ILRCK changed to AES3INPUT
182 (workaround, see snd_cs8427_reset) */
172 CS8427_RXDILRCK, 183 CS8427_RXDILRCK,
173 /* CS8427_REG_SERIALINPUT: Serial audio input port data format = I2S, 24-bit, 64*Fsi */ 184 /* CS8427_REG_SERIALINPUT: Serial audio input port data format = I2S,
185 24-bit, 64*Fsi */
174 CS8427_SIDEL | CS8427_SILRPOL, 186 CS8427_SIDEL | CS8427_SILRPOL,
175 /* CS8427_REG_SERIALOUTPUT: Serial audio output port data format = I2S, 24-bit, 64*Fsi */ 187 /* CS8427_REG_SERIALOUTPUT: Serial audio output port data format
188 = I2S, 24-bit, 64*Fsi */
176 CS8427_SODEL | CS8427_SOLRPOL, 189 CS8427_SODEL | CS8427_SOLRPOL,
177 }; 190 };
178 static unsigned char initvals2[] = { 191 static unsigned char initvals2[] = {
179 CS8427_REG_RECVERRMASK | CS8427_REG_AUTOINC, 192 CS8427_REG_RECVERRMASK | CS8427_REG_AUTOINC,
180 /* CS8427_REG_RECVERRMASK: unmask the input PLL clock, V, confidence, biphase, parity status bits */ 193 /* CS8427_REG_RECVERRMASK: unmask the input PLL clock, V, confidence,
181 /* CS8427_UNLOCK | CS8427_V | CS8427_CONF | CS8427_BIP | CS8427_PAR, */ 194 biphase, parity status bits */
195 /* CS8427_UNLOCK | CS8427_V | CS8427_CONF | CS8427_BIP | CS8427_PAR,*/
182 0xff, /* set everything */ 196 0xff, /* set everything */
183 /* CS8427_REG_CSDATABUF: 197 /* CS8427_REG_CSDATABUF:
184 Registers 32-55 window to CS buffer 198 Registers 32-55 window to CS buffer
@@ -201,7 +215,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
201 struct snd_i2c_device *device; 215 struct snd_i2c_device *device;
202 unsigned char buf[24]; 216 unsigned char buf[24];
203 217
204 if ((err = snd_i2c_device_create(bus, "CS8427", CS8427_ADDR | (addr & 7), 218 if ((err = snd_i2c_device_create(bus, "CS8427",
219 CS8427_ADDR | (addr & 7),
205 &device)) < 0) 220 &device)) < 0)
206 return err; 221 return err;
207 chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL); 222 chip = device->private_data = kzalloc(sizeof(*chip), GFP_KERNEL);
@@ -212,8 +227,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
212 device->private_free = snd_cs8427_free; 227 device->private_free = snd_cs8427_free;
213 228
214 snd_i2c_lock(bus); 229 snd_i2c_lock(bus);
215 if ((err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER)) != 230 err = snd_cs8427_reg_read(device, CS8427_REG_ID_AND_VER);
216 CS8427_VER8427A) { 231 if (err != CS8427_VER8427A) {
217 snd_i2c_unlock(bus); 232 snd_i2c_unlock(bus);
218 snd_printk(KERN_ERR "unable to find CS8427 signature " 233 snd_printk(KERN_ERR "unable to find CS8427 signature "
219 "(expected 0x%x, read 0x%x),\n", 234 "(expected 0x%x, read 0x%x),\n",
@@ -222,7 +237,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
222 return -EFAULT; 237 return -EFAULT;
223 } 238 }
224 /* turn off run bit while making changes to configuration */ 239 /* turn off run bit while making changes to configuration */
225 if ((err = snd_cs8427_reg_write(device, CS8427_REG_CLOCKSOURCE, 0x00)) < 0) 240 err = snd_cs8427_reg_write(device, CS8427_REG_CLOCKSOURCE, 0x00);
241 if (err < 0)
226 goto __fail; 242 goto __fail;
227 /* send initial values */ 243 /* send initial values */
228 memcpy(chip->regmap + (initvals1[0] & 0x7f), initvals1 + 1, 6); 244 memcpy(chip->regmap + (initvals1[0] & 0x7f), initvals1 + 1, 6);
@@ -282,6 +298,8 @@ int snd_cs8427_create(struct snd_i2c_bus *bus,
282 return err < 0 ? err : -EIO; 298 return err < 0 ? err : -EIO;
283} 299}
284 300
301EXPORT_SYMBOL(snd_cs8427_create);
302
285/* 303/*
286 * Reset the chip using run bit, also lock PLL using ILRCK and 304 * Reset the chip using run bit, also lock PLL using ILRCK and
287 * put back AES3INPUT. This workaround is described in latest 305 * put back AES3INPUT. This workaround is described in latest
@@ -296,7 +314,8 @@ static void snd_cs8427_reset(struct snd_i2c_device *cs8427)
296 snd_assert(cs8427, return); 314 snd_assert(cs8427, return);
297 chip = cs8427->private_data; 315 chip = cs8427->private_data;
298 snd_i2c_lock(cs8427->bus); 316 snd_i2c_lock(cs8427->bus);
299 if ((chip->regmap[CS8427_REG_CLOCKSOURCE] & CS8427_RXDAES3INPUT) == CS8427_RXDAES3INPUT) /* AES3 bit is set */ 317 if ((chip->regmap[CS8427_REG_CLOCKSOURCE] & CS8427_RXDAES3INPUT) ==
318 CS8427_RXDAES3INPUT) /* AES3 bit is set */
300 aes3input = 1; 319 aes3input = 1;
301 chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK); 320 chip->regmap[CS8427_REG_CLOCKSOURCE] &= ~(CS8427_RUN | CS8427_RXDMASK);
302 snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE, 321 snd_cs8427_reg_write(cs8427, CS8427_REG_CLOCKSOURCE,
@@ -367,12 +386,15 @@ static int snd_cs8427_qsubcode_get(struct snd_kcontrol *kcontrol,
367 386
368 snd_i2c_lock(device->bus); 387 snd_i2c_lock(device->bus);
369 if ((err = snd_i2c_sendbytes(device, &reg, 1)) != 1) { 388 if ((err = snd_i2c_sendbytes(device, &reg, 1)) != 1) {
370 snd_printk(KERN_ERR "unable to send register 0x%x byte to CS8427\n", reg); 389 snd_printk(KERN_ERR "unable to send register 0x%x byte "
390 "to CS8427\n", reg);
371 snd_i2c_unlock(device->bus); 391 snd_i2c_unlock(device->bus);
372 return err < 0 ? err : -EIO; 392 return err < 0 ? err : -EIO;
373 } 393 }
374 if ((err = snd_i2c_readbytes(device, ucontrol->value.bytes.data, 10)) != 10) { 394 err = snd_i2c_readbytes(device, ucontrol->value.bytes.data, 10);
375 snd_printk(KERN_ERR "unable to read Q-subcode bytes from CS8427\n"); 395 if (err != 10) {
396 snd_printk(KERN_ERR "unable to read Q-subcode bytes "
397 "from CS8427\n");
376 snd_i2c_unlock(device->bus); 398 snd_i2c_unlock(device->bus);
377 return err < 0 ? err : -EIO; 399 return err < 0 ? err : -EIO;
378 } 400 }
@@ -380,7 +402,8 @@ static int snd_cs8427_qsubcode_get(struct snd_kcontrol *kcontrol,
380 return 0; 402 return 0;
381} 403}
382 404
383static int snd_cs8427_spdif_info(struct snd_kcontrol *kcontrol, struct snd_ctl_elem_info *uinfo) 405static int snd_cs8427_spdif_info(struct snd_kcontrol *kcontrol,
406 struct snd_ctl_elem_info *uinfo)
384{ 407{
385 uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958; 408 uinfo->type = SNDRV_CTL_ELEM_TYPE_IEC958;
386 uinfo->count = 1; 409 uinfo->count = 1;
@@ -413,7 +436,8 @@ static int snd_cs8427_spdif_put(struct snd_kcontrol *kcontrol,
413 snd_i2c_lock(device->bus); 436 snd_i2c_lock(device->bus);
414 change = memcmp(ucontrol->value.iec958.status, status, 24) != 0; 437 change = memcmp(ucontrol->value.iec958.status, status, 24) != 0;
415 memcpy(status, ucontrol->value.iec958.status, 24); 438 memcpy(status, ucontrol->value.iec958.status, 24);
416 if (change && (kcontrol->private_value ? runtime != NULL : runtime == NULL)) { 439 if (change && (kcontrol->private_value ?
440 runtime != NULL : runtime == NULL)) {
417 err = snd_cs8427_send_corudata(device, 0, status, 24); 441 err = snd_cs8427_send_corudata(device, 0, status, 24);
418 if (err < 0) 442 if (err < 0)
419 change = err; 443 change = err;
@@ -442,7 +466,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
442 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 466 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
443 .info = snd_cs8427_in_status_info, 467 .info = snd_cs8427_in_status_info,
444 .name = "IEC958 CS8427 Input Status", 468 .name = "IEC958 CS8427 Input Status",
445 .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, 469 .access = (SNDRV_CTL_ELEM_ACCESS_READ |
470 SNDRV_CTL_ELEM_ACCESS_VOLATILE),
446 .get = snd_cs8427_in_status_get, 471 .get = snd_cs8427_in_status_get,
447 .private_value = 15, 472 .private_value = 15,
448}, 473},
@@ -450,7 +475,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
450 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 475 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
451 .info = snd_cs8427_in_status_info, 476 .info = snd_cs8427_in_status_info,
452 .name = "IEC958 CS8427 Error Status", 477 .name = "IEC958 CS8427 Error Status",
453 .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, 478 .access = (SNDRV_CTL_ELEM_ACCESS_READ |
479 SNDRV_CTL_ELEM_ACCESS_VOLATILE),
454 .get = snd_cs8427_in_status_get, 480 .get = snd_cs8427_in_status_get,
455 .private_value = 16, 481 .private_value = 16,
456}, 482},
@@ -470,7 +496,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
470 .private_value = 0 496 .private_value = 0
471}, 497},
472{ 498{
473 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE | SNDRV_CTL_ELEM_ACCESS_INACTIVE, 499 .access = (SNDRV_CTL_ELEM_ACCESS_READWRITE |
500 SNDRV_CTL_ELEM_ACCESS_INACTIVE),
474 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 501 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
475 .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM), 502 .name = SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM),
476 .info = snd_cs8427_spdif_info, 503 .info = snd_cs8427_spdif_info,
@@ -482,7 +509,8 @@ static struct snd_kcontrol_new snd_cs8427_iec958_controls[] = {
482 .iface = SNDRV_CTL_ELEM_IFACE_PCM, 509 .iface = SNDRV_CTL_ELEM_IFACE_PCM,
483 .info = snd_cs8427_qsubcode_info, 510 .info = snd_cs8427_qsubcode_info,
484 .name = "IEC958 Q-subcode Capture Default", 511 .name = "IEC958 Q-subcode Capture Default",
485 .access = SNDRV_CTL_ELEM_ACCESS_READ | SNDRV_CTL_ELEM_ACCESS_VOLATILE, 512 .access = (SNDRV_CTL_ELEM_ACCESS_READ |
513 SNDRV_CTL_ELEM_ACCESS_VOLATILE),
486 .get = snd_cs8427_qsubcode_get 514 .get = snd_cs8427_qsubcode_get
487}}; 515}};
488 516
@@ -505,7 +533,8 @@ int snd_cs8427_iec958_build(struct snd_i2c_device *cs8427,
505 err = snd_ctl_add(cs8427->bus->card, kctl); 533 err = snd_ctl_add(cs8427->bus->card, kctl);
506 if (err < 0) 534 if (err < 0)
507 return err; 535 return err;
508 if (!strcmp(kctl->id.name, SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM))) 536 if (! strcmp(kctl->id.name,
537 SNDRV_CTL_NAME_IEC958("",PLAYBACK,PCM_STREAM)))
509 chip->playback.pcm_ctl = kctl; 538 chip->playback.pcm_ctl = kctl;
510 } 539 }
511 540
@@ -515,6 +544,8 @@ int snd_cs8427_iec958_build(struct snd_i2c_device *cs8427,
515 return 0; 544 return 0;
516} 545}
517 546
547EXPORT_SYMBOL(snd_cs8427_iec958_build);
548
518int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active) 549int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active)
519{ 550{
520 struct cs8427 *chip; 551 struct cs8427 *chip;
@@ -522,13 +553,17 @@ int snd_cs8427_iec958_active(struct snd_i2c_device *cs8427, int active)
522 snd_assert(cs8427, return -ENXIO); 553 snd_assert(cs8427, return -ENXIO);
523 chip = cs8427->private_data; 554 chip = cs8427->private_data;
524 if (active) 555 if (active)
525 memcpy(chip->playback.pcm_status, chip->playback.def_status, 24); 556 memcpy(chip->playback.pcm_status,
557 chip->playback.def_status, 24);
526 chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE; 558 chip->playback.pcm_ctl->vd[0].access &= ~SNDRV_CTL_ELEM_ACCESS_INACTIVE;
527 snd_ctl_notify(cs8427->bus->card, SNDRV_CTL_EVENT_MASK_VALUE | 559 snd_ctl_notify(cs8427->bus->card,
528 SNDRV_CTL_EVENT_MASK_INFO, &chip->playback.pcm_ctl->id); 560 SNDRV_CTL_EVENT_MASK_VALUE | SNDRV_CTL_EVENT_MASK_INFO,
561 &chip->playback.pcm_ctl->id);
529 return 0; 562 return 0;
530} 563}
531 564
565EXPORT_SYMBOL(snd_cs8427_iec958_active);
566
532int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate) 567int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate)
533{ 568{
534 struct cs8427 *chip; 569 struct cs8427 *chip;
@@ -568,6 +603,8 @@ int snd_cs8427_iec958_pcm(struct snd_i2c_device *cs8427, unsigned int rate)
568 return err < 0 ? err : 0; 603 return err < 0 ? err : 0;
569} 604}
570 605
606EXPORT_SYMBOL(snd_cs8427_iec958_pcm);
607
571static int __init alsa_cs8427_module_init(void) 608static int __init alsa_cs8427_module_init(void)
572{ 609{
573 return 0; 610 return 0;
@@ -579,10 +616,3 @@ static void __exit alsa_cs8427_module_exit(void)
579 616
580module_init(alsa_cs8427_module_init) 617module_init(alsa_cs8427_module_init)
581module_exit(alsa_cs8427_module_exit) 618module_exit(alsa_cs8427_module_exit)
582
583EXPORT_SYMBOL(snd_cs8427_create);
584EXPORT_SYMBOL(snd_cs8427_reset);
585EXPORT_SYMBOL(snd_cs8427_reg_write);
586EXPORT_SYMBOL(snd_cs8427_iec958_build);
587EXPORT_SYMBOL(snd_cs8427_iec958_active);
588EXPORT_SYMBOL(snd_cs8427_iec958_pcm);
diff --git a/sound/isa/cs423x/Makefile b/sound/isa/cs423x/Makefile
index d2afaea30cbc..2fb4f7409d7c 100644
--- a/sound/isa/cs423x/Makefile
+++ b/sound/isa/cs423x/Makefile
@@ -11,6 +11,7 @@ snd-cs4236-objs := cs4236.o
11 11
12# Toplevel Module Dependency 12# Toplevel Module Dependency
13obj-$(CONFIG_SND_AZT2320) += snd-cs4231-lib.o 13obj-$(CONFIG_SND_AZT2320) += snd-cs4231-lib.o
14obj-$(CONFIG_SND_MIRO) += snd-cs4231-lib.o
14obj-$(CONFIG_SND_OPL3SA2) += snd-cs4231-lib.o 15obj-$(CONFIG_SND_OPL3SA2) += snd-cs4231-lib.o
15obj-$(CONFIG_SND_CS4231) += snd-cs4231.o snd-cs4231-lib.o 16obj-$(CONFIG_SND_CS4231) += snd-cs4231.o snd-cs4231-lib.o
16obj-$(CONFIG_SND_CS4232) += snd-cs4232.o snd-cs4231-lib.o 17obj-$(CONFIG_SND_CS4232) += snd-cs4232.o snd-cs4231-lib.o
diff --git a/sound/isa/gus/gusextreme.c b/sound/isa/gus/gusextreme.c
index 22cdddbfd824..532c56e35ca4 100644
--- a/sound/isa/gus/gusextreme.c
+++ b/sound/isa/gus/gusextreme.c
@@ -87,7 +87,7 @@ MODULE_PARM_DESC(channels, "GF1 channels for GUS Extreme driver.");
87module_param_array(pcm_channels, int, NULL, 0444); 87module_param_array(pcm_channels, int, NULL, 0444);
88MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS Extreme driver."); 88MODULE_PARM_DESC(pcm_channels, "Reserved PCM channels for GUS Extreme driver.");
89 89
90struct platform_device *devices[SNDRV_CARDS]; 90static struct platform_device *devices[SNDRV_CARDS];
91 91
92 92
93#define PFX "gusextreme: " 93#define PFX "gusextreme: "
diff --git a/sound/isa/wavefront/wavefront_fx.c b/sound/isa/wavefront/wavefront_fx.c
index 180661c5ffdc..4f0846feb73f 100644
--- a/sound/isa/wavefront/wavefront_fx.c
+++ b/sound/isa/wavefront/wavefront_fx.c
@@ -34,7 +34,7 @@
34 34
35/* weird stuff, derived from port I/O tracing with dosemu */ 35/* weird stuff, derived from port I/O tracing with dosemu */
36 36
37static unsigned char page_zero[] __initdata = { 37static unsigned char page_zero[] __devinitdata = {
380x01, 0x7c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00, 380x01, 0x7c, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x00,
390x11, 0x00, 0x20, 0x00, 0x32, 0x00, 0x40, 0x00, 0x13, 0x00, 0x00, 390x11, 0x00, 0x20, 0x00, 0x32, 0x00, 0x40, 0x00, 0x13, 0x00, 0x00,
400x00, 0x14, 0x02, 0x76, 0x00, 0x60, 0x00, 0x80, 0x02, 0x00, 0x00, 400x00, 0x14, 0x02, 0x76, 0x00, 0x60, 0x00, 0x80, 0x02, 0x00, 0x00,
@@ -61,7 +61,7 @@ static unsigned char page_zero[] __initdata = {
610x1d, 0x02, 0xdf 610x1d, 0x02, 0xdf
62}; 62};
63 63
64static unsigned char page_one[] __initdata = { 64static unsigned char page_one[] __devinitdata = {
650x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00, 650x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x19, 0x00,
660x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd8, 0x00, 0x00, 660x1f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd8, 0x00, 0x00,
670x02, 0x20, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01, 670x02, 0x20, 0x00, 0x19, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x01,
@@ -88,7 +88,7 @@ static unsigned char page_one[] __initdata = {
880x60, 0x00, 0x1b 880x60, 0x00, 0x1b
89}; 89};
90 90
91static unsigned char page_two[] __initdata = { 91static unsigned char page_two[] __devinitdata = {
920xc4, 0x00, 0x44, 0x07, 0x44, 0x00, 0x40, 0x25, 0x01, 0x06, 0xc4, 920xc4, 0x00, 0x44, 0x07, 0x44, 0x00, 0x40, 0x25, 0x01, 0x06, 0xc4,
930x07, 0x40, 0x25, 0x01, 0x00, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00, 930x07, 0x40, 0x25, 0x01, 0x00, 0x46, 0x46, 0x00, 0x00, 0x00, 0x00,
940x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 940x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -103,7 +103,7 @@ static unsigned char page_two[] __initdata = {
1030x46, 0x05, 0x46, 0x07, 0x46, 0x07, 0x44 1030x46, 0x05, 0x46, 0x07, 0x46, 0x07, 0x44
104}; 104};
105 105
106static unsigned char page_three[] __initdata = { 106static unsigned char page_three[] __devinitdata = {
1070x07, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x40, 0x00, 0x40, 0x06, 1070x07, 0x40, 0x00, 0x00, 0x00, 0x47, 0x00, 0x40, 0x00, 0x40, 0x06,
1080x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1080x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1090x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1090x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -118,7 +118,7 @@ static unsigned char page_three[] __initdata = {
1180x02, 0x00, 0x42, 0x00, 0xc0, 0x00, 0x40 1180x02, 0x00, 0x42, 0x00, 0xc0, 0x00, 0x40
119}; 119};
120 120
121static unsigned char page_four[] __initdata = { 121static unsigned char page_four[] __devinitdata = {
1220x63, 0x03, 0x26, 0x02, 0x2c, 0x00, 0x24, 0x00, 0x2e, 0x02, 0x02, 1220x63, 0x03, 0x26, 0x02, 0x2c, 0x00, 0x24, 0x00, 0x2e, 0x02, 0x02,
1230x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1230x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1240x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1240x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -133,7 +133,7 @@ static unsigned char page_four[] __initdata = {
1330x02, 0x62, 0x02, 0x20, 0x01, 0x21, 0x01 1330x02, 0x62, 0x02, 0x20, 0x01, 0x21, 0x01
134}; 134};
135 135
136static unsigned char page_six[] __initdata = { 136static unsigned char page_six[] __devinitdata = {
1370x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00, 1370x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x04, 0x00, 0x00, 0x06, 0x00,
1380x00, 0x08, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e, 1380x00, 0x08, 0x00, 0x00, 0x0a, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x0e,
1390x00, 0x00, 0x10, 0x00, 0x00, 0x12, 0x00, 0x00, 0x14, 0x00, 0x00, 1390x00, 0x00, 0x10, 0x00, 0x00, 0x12, 0x00, 0x00, 0x14, 0x00, 0x00,
@@ -154,7 +154,7 @@ static unsigned char page_six[] __initdata = {
1540x80, 0x00, 0x7e, 0x80, 0x80 1540x80, 0x00, 0x7e, 0x80, 0x80
155}; 155};
156 156
157static unsigned char page_seven[] __initdata = { 157static unsigned char page_seven[] __devinitdata = {
1580x0f, 0xff, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00, 1580x0f, 0xff, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x02, 0x00, 0x00,
1590x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00, 1590x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x08, 0x00,
1600x08, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f, 1600x08, 0x00, 0x00, 0x00, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x0f,
@@ -181,7 +181,7 @@ static unsigned char page_seven[] __initdata = {
1810x00, 0x02, 0x00 1810x00, 0x02, 0x00
182}; 182};
183 183
184static unsigned char page_zero_v2[] __initdata = { 184static unsigned char page_zero_v2[] __devinitdata = {
1850x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1850x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1860x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1860x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1870x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1870x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -193,7 +193,7 @@ static unsigned char page_zero_v2[] __initdata = {
1930x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 1930x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
194}; 194};
195 195
196static unsigned char page_one_v2[] __initdata = { 196static unsigned char page_one_v2[] __devinitdata = {
1970x01, 0xc0, 0x01, 0xfa, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00, 1970x01, 0xc0, 0x01, 0xfa, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x00, 0x00,
1980x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1980x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1990x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 1990x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -205,21 +205,21 @@ static unsigned char page_one_v2[] __initdata = {
2050x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 2050x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
206}; 206};
207 207
208static unsigned char page_two_v2[] __initdata = { 208static unsigned char page_two_v2[] __devinitdata = {
2090x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2090x46, 0x46, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2100x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2100x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2110x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2110x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2120x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2120x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2130x00, 0x00, 0x00, 0x00 2130x00, 0x00, 0x00, 0x00
214}; 214};
215static unsigned char page_three_v2[] __initdata = { 215static unsigned char page_three_v2[] __devinitdata = {
2160x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2160x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2170x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2170x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2180x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2180x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2190x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2190x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2200x00, 0x00, 0x00, 0x00 2200x00, 0x00, 0x00, 0x00
221}; 221};
222static unsigned char page_four_v2[] __initdata = { 222static unsigned char page_four_v2[] __devinitdata = {
2230x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2230x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2240x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2240x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2250x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2250x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -227,7 +227,7 @@ static unsigned char page_four_v2[] __initdata = {
2270x00, 0x00, 0x00, 0x00 2270x00, 0x00, 0x00, 0x00
228}; 228};
229 229
230static unsigned char page_seven_v2[] __initdata = { 230static unsigned char page_seven_v2[] __devinitdata = {
2310x0f, 0xff, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2310x0f, 0xff, 0x0f, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2320x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2320x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
2330x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 2330x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -239,7 +239,7 @@ static unsigned char page_seven_v2[] __initdata = {
2390x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 2390x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
240}; 240};
241 241
242static unsigned char mod_v2[] __initdata = { 242static unsigned char mod_v2[] __devinitdata = {
2430x01, 0x00, 0x02, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x02, 0x02, 2430x01, 0x00, 0x02, 0x00, 0x01, 0x01, 0x02, 0x00, 0x01, 0x02, 0x02,
2440x00, 0x01, 0x03, 0x02, 0x00, 0x01, 0x04, 0x02, 0x00, 0x01, 0x05, 2440x00, 0x01, 0x03, 0x02, 0x00, 0x01, 0x04, 0x02, 0x00, 0x01, 0x05,
2450x02, 0x00, 0x01, 0x06, 0x02, 0x00, 0x01, 0x07, 0x02, 0x00, 0xb0, 2450x02, 0x00, 0x01, 0x06, 0x02, 0x00, 0x01, 0x07, 0x02, 0x00, 0xb0,
@@ -269,7 +269,7 @@ static unsigned char mod_v2[] __initdata = {
2690x02, 0x01, 0x01, 0x04, 0x02, 0x01, 0x01, 0x05, 0x02, 0x01, 0x01, 2690x02, 0x01, 0x01, 0x04, 0x02, 0x01, 0x01, 0x05, 0x02, 0x01, 0x01,
2700x06, 0x02, 0x01, 0x01, 0x07, 0x02, 0x01 2700x06, 0x02, 0x01, 0x01, 0x07, 0x02, 0x01
271}; 271};
272static unsigned char coefficients[] __initdata = { 272static unsigned char coefficients[] __devinitdata = {
2730x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x00, 0x4b, 0x03, 2730x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x00, 0x4b, 0x03,
2740x11, 0x00, 0x4d, 0x01, 0x32, 0x07, 0x46, 0x00, 0x00, 0x07, 0x49, 2740x11, 0x00, 0x4d, 0x01, 0x32, 0x07, 0x46, 0x00, 0x00, 0x07, 0x49,
2750x00, 0x00, 0x07, 0x40, 0x00, 0x00, 0x07, 0x41, 0x00, 0x00, 0x01, 2750x00, 0x00, 0x07, 0x40, 0x00, 0x00, 0x07, 0x41, 0x00, 0x00, 0x01,
@@ -305,14 +305,14 @@ static unsigned char coefficients[] __initdata = {
3050x06, 0x6c, 0x4c, 0x6c, 0x06, 0x50, 0x52, 0xe2, 0x06, 0x42, 0x02, 3050x06, 0x6c, 0x4c, 0x6c, 0x06, 0x50, 0x52, 0xe2, 0x06, 0x42, 0x02,
3060xba 3060xba
307}; 307};
308static unsigned char coefficients2[] __initdata = { 308static unsigned char coefficients2[] __devinitdata = {
3090x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x45, 0x0f, 3090x07, 0x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x45, 0x0f,
3100xff, 0x07, 0x48, 0x0f, 0xff, 0x07, 0x7b, 0x04, 0xcc, 0x07, 0x7d, 3100xff, 0x07, 0x48, 0x0f, 0xff, 0x07, 0x7b, 0x04, 0xcc, 0x07, 0x7d,
3110x04, 0xcc, 0x07, 0x7c, 0x00, 0x00, 0x07, 0x7e, 0x00, 0x00, 0x07, 3110x04, 0xcc, 0x07, 0x7c, 0x00, 0x00, 0x07, 0x7e, 0x00, 0x00, 0x07,
3120x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x47, 0x00, 0x00, 3120x46, 0x00, 0x00, 0x07, 0x49, 0x00, 0x00, 0x07, 0x47, 0x00, 0x00,
3130x07, 0x4a, 0x00, 0x00, 0x07, 0x4c, 0x00, 0x00, 0x07, 0x4e, 0x00, 0x00 3130x07, 0x4a, 0x00, 0x00, 0x07, 0x4c, 0x00, 0x00, 0x07, 0x4e, 0x00, 0x00
314}; 314};
315static unsigned char coefficients3[] __initdata = { 315static unsigned char coefficients3[] __devinitdata = {
3160x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x51, 0x00, 3160x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x00, 0x28, 0x00, 0x51, 0x00,
3170x51, 0x00, 0x7a, 0x00, 0x7a, 0x00, 0xa3, 0x00, 0xa3, 0x00, 0xcc, 3170x51, 0x00, 0x7a, 0x00, 0x7a, 0x00, 0xa3, 0x00, 0xa3, 0x00, 0xcc,
3180x00, 0xcc, 0x00, 0xf5, 0x00, 0xf5, 0x01, 0x1e, 0x01, 0x1e, 0x01, 3180x00, 0xcc, 0x00, 0xf5, 0x00, 0xf5, 0x01, 0x1e, 0x01, 0x1e, 0x01,
@@ -563,7 +563,7 @@ snd_wavefront_fx_ioctl (struct snd_hwdep *sdev, struct file *file,
563*/ 563*/
564 564
565 565
566int __init 566int __devinit
567snd_wavefront_fx_start (snd_wavefront_t *dev) 567snd_wavefront_fx_start (snd_wavefront_t *dev)
568 568
569{ 569{
diff --git a/sound/isa/wavefront/wavefront_midi.c b/sound/isa/wavefront/wavefront_midi.c
index 15888ba2169b..cb3460094324 100644
--- a/sound/isa/wavefront/wavefront_midi.c
+++ b/sound/isa/wavefront/wavefront_midi.c
@@ -474,7 +474,7 @@ snd_wavefront_midi_disable_virtual (snd_wavefront_card_t *card)
474 spin_unlock_irqrestore (&card->wavefront.midi.virtual, flags); 474 spin_unlock_irqrestore (&card->wavefront.midi.virtual, flags);
475} 475}
476 476
477int __init 477int __devinit
478snd_wavefront_midi_start (snd_wavefront_card_t *card) 478snd_wavefront_midi_start (snd_wavefront_card_t *card)
479 479
480{ 480{
diff --git a/sound/isa/wavefront/wavefront_synth.c b/sound/isa/wavefront/wavefront_synth.c
index 68aa091e8961..bed329edbdd7 100644
--- a/sound/isa/wavefront/wavefront_synth.c
+++ b/sound/isa/wavefront/wavefront_synth.c
@@ -1738,7 +1738,7 @@ snd_wavefront_internal_interrupt (snd_wavefront_card_t *card)
17387 Unused 17387 Unused
1739*/ 1739*/
1740 1740
1741static int __init 1741static int __devinit
1742snd_wavefront_interrupt_bits (int irq) 1742snd_wavefront_interrupt_bits (int irq)
1743 1743
1744{ 1744{
@@ -1766,7 +1766,7 @@ snd_wavefront_interrupt_bits (int irq)
1766 return bits; 1766 return bits;
1767} 1767}
1768 1768
1769static void __init 1769static void __devinit
1770wavefront_should_cause_interrupt (snd_wavefront_t *dev, 1770wavefront_should_cause_interrupt (snd_wavefront_t *dev,
1771 int val, int port, int timeout) 1771 int val, int port, int timeout)
1772 1772
@@ -1787,7 +1787,7 @@ wavefront_should_cause_interrupt (snd_wavefront_t *dev,
1787 } 1787 }
1788} 1788}
1789 1789
1790static int __init 1790static int __devinit
1791wavefront_reset_to_cleanliness (snd_wavefront_t *dev) 1791wavefront_reset_to_cleanliness (snd_wavefront_t *dev)
1792 1792
1793{ 1793{
@@ -1946,7 +1946,7 @@ wavefront_reset_to_cleanliness (snd_wavefront_t *dev)
1946#include <asm/uaccess.h> 1946#include <asm/uaccess.h>
1947 1947
1948 1948
1949static int __init 1949static int __devinit
1950wavefront_download_firmware (snd_wavefront_t *dev, char *path) 1950wavefront_download_firmware (snd_wavefront_t *dev, char *path)
1951 1951
1952{ 1952{
@@ -2047,7 +2047,7 @@ wavefront_download_firmware (snd_wavefront_t *dev, char *path)
2047} 2047}
2048 2048
2049 2049
2050static int __init 2050static int __devinit
2051wavefront_do_reset (snd_wavefront_t *dev) 2051wavefront_do_reset (snd_wavefront_t *dev)
2052 2052
2053{ 2053{
@@ -2136,7 +2136,7 @@ wavefront_do_reset (snd_wavefront_t *dev)
2136 return 1; 2136 return 1;
2137} 2137}
2138 2138
2139int __init 2139int __devinit
2140snd_wavefront_start (snd_wavefront_t *dev) 2140snd_wavefront_start (snd_wavefront_t *dev)
2141 2141
2142{ 2142{
@@ -2178,7 +2178,7 @@ snd_wavefront_start (snd_wavefront_t *dev)
2178 return (0); 2178 return (0);
2179} 2179}
2180 2180
2181int __init 2181int __devinit
2182snd_wavefront_detect (snd_wavefront_card_t *card) 2182snd_wavefront_detect (snd_wavefront_card_t *card)
2183 2183
2184{ 2184{
diff --git a/sound/pci/Kconfig b/sound/pci/Kconfig
index 23e54cedfd4a..d7ad32f514da 100644
--- a/sound/pci/Kconfig
+++ b/sound/pci/Kconfig
@@ -460,17 +460,19 @@ config SND_FM801
460 To compile this driver as a module, choose M here: the module 460 To compile this driver as a module, choose M here: the module
461 will be called snd-fm801. 461 will be called snd-fm801.
462 462
463config SND_FM801_TEA575X 463config SND_FM801_TEA575X_BOOL
464 tristate "ForteMedia FM801 + TEA5757 tuner" 464 bool "ForteMedia FM801 + TEA5757 tuner"
465 depends on SND_FM801 465 depends on SND_FM801
466 select VIDEO_DEV
467 help 466 help
468 Say Y here to include support for soundcards based on the ForteMedia 467 Say Y here to include support for soundcards based on the ForteMedia
469 FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media 468 FM801 chip with a TEA5757 tuner connected to GPIO1-3 pins (Media
470 Forte SF256-PCS-02). 469 Forte SF256-PCS-02) into the snd-fm801 driver.
471 470
472 To compile this driver as a module, choose M here: the module 471config SND_FM801_TEA575X
473 will be called snd-fm801-tea575x. 472 tristate
473 depends on SND_FM801_TEA575X_BOOL
474 default SND_FM801
475 select VIDEO_DEV
474 476
475config SND_HDA_INTEL 477config SND_HDA_INTEL
476 tristate "Intel HD Audio" 478 tristate "Intel HD Audio"
diff --git a/sound/pci/ad1889.c b/sound/pci/ad1889.c
index f7aef8c9cf43..0786d0edaca5 100644
--- a/sound/pci/ad1889.c
+++ b/sound/pci/ad1889.c
@@ -241,14 +241,14 @@ ad1889_channel_reset(struct snd_ad1889 *chip, unsigned int channel)
241 } 241 }
242} 242}
243 243
244static inline u16 244static u16
245snd_ad1889_ac97_read(struct snd_ac97 *ac97, unsigned short reg) 245snd_ad1889_ac97_read(struct snd_ac97 *ac97, unsigned short reg)
246{ 246{
247 struct snd_ad1889 *chip = ac97->private_data; 247 struct snd_ad1889 *chip = ac97->private_data;
248 return ad1889_readw(chip, AD_AC97_BASE + reg); 248 return ad1889_readw(chip, AD_AC97_BASE + reg);
249} 249}
250 250
251static inline void 251static void
252snd_ad1889_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val) 252snd_ad1889_ac97_write(struct snd_ac97 *ac97, unsigned short reg, unsigned short val)
253{ 253{
254 struct snd_ad1889 *chip = ac97->private_data; 254 struct snd_ad1889 *chip = ac97->private_data;
@@ -873,7 +873,7 @@ skip_hw:
873 return 0; 873 return 0;
874} 874}
875 875
876static inline int 876static int
877snd_ad1889_dev_free(struct snd_device *device) 877snd_ad1889_dev_free(struct snd_device *device)
878{ 878{
879 struct snd_ad1889 *chip = device->device_data; 879 struct snd_ad1889 *chip = device->device_data;
@@ -1051,7 +1051,7 @@ snd_ad1889_remove(struct pci_dev *pci)
1051 pci_set_drvdata(pci, NULL); 1051 pci_set_drvdata(pci, NULL);
1052} 1052}
1053 1053
1054static struct pci_device_id snd_ad1889_ids[] __devinitdata = { 1054static struct pci_device_id snd_ad1889_ids[] = {
1055 { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) }, 1055 { PCI_DEVICE(PCI_VENDOR_ID_ANALOG_DEVICES, PCI_DEVICE_ID_AD1889JS) },
1056 { 0, }, 1056 { 0, },
1057}; 1057};
diff --git a/sound/pci/ali5451/ali5451.c b/sound/pci/ali5451/ali5451.c
index e0a815e53d1c..74668398eac5 100644
--- a/sound/pci/ali5451/ali5451.c
+++ b/sound/pci/ali5451/ali5451.c
@@ -279,7 +279,7 @@ struct snd_ali {
279#endif 279#endif
280}; 280};
281 281
282static struct pci_device_id snd_ali_ids[] __devinitdata = { 282static struct pci_device_id snd_ali_ids[] = {
283 {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0}, 283 {PCI_DEVICE(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M5451), 0, 0, 0},
284 {0, } 284 {0, }
285}; 285};
diff --git a/sound/pci/als300.c b/sound/pci/als300.c
index a9c38963188a..96cfb8ae5055 100644
--- a/sound/pci/als300.c
+++ b/sound/pci/als300.c
@@ -146,7 +146,7 @@ struct snd_als300_substream_data {
146 int block_counter_register; 146 int block_counter_register;
147}; 147};
148 148
149static struct pci_device_id snd_als300_ids[] __devinitdata = { 149static struct pci_device_id snd_als300_ids[] = {
150 { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 }, 150 { 0x4005, 0x0300, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300 },
151 { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS }, 151 { 0x4005, 0x0308, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_ALS300_PLUS },
152 { 0, } 152 { 0, }
diff --git a/sound/pci/als4000.c b/sound/pci/als4000.c
index a9f08066459a..9e596f750cbd 100644
--- a/sound/pci/als4000.c
+++ b/sound/pci/als4000.c
@@ -116,7 +116,7 @@ struct snd_card_als4000 {
116#endif 116#endif
117}; 117};
118 118
119static struct pci_device_id snd_als4000_ids[] __devinitdata = { 119static struct pci_device_id snd_als4000_ids[] = {
120 { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */ 120 { 0x4005, 0x4000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ALS4000 */
121 { 0, } 121 { 0, }
122}; 122};
diff --git a/sound/pci/atiixp.c b/sound/pci/atiixp.c
index 9fbb065a810b..347e25ff073d 100644
--- a/sound/pci/atiixp.c
+++ b/sound/pci/atiixp.c
@@ -284,7 +284,7 @@ struct atiixp {
284 284
285/* 285/*
286 */ 286 */
287static struct pci_device_id snd_atiixp_ids[] __devinitdata = { 287static struct pci_device_id snd_atiixp_ids[] = {
288 { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ 288 { 0x1002, 0x4341, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
289 { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */ 289 { 0x1002, 0x4361, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB300 */
290 { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ 290 { 0x1002, 0x4370, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
diff --git a/sound/pci/atiixp_modem.c b/sound/pci/atiixp_modem.c
index 7dcf4941dce2..a89d67c4598b 100644
--- a/sound/pci/atiixp_modem.c
+++ b/sound/pci/atiixp_modem.c
@@ -262,7 +262,7 @@ struct atiixp_modem {
262 262
263/* 263/*
264 */ 264 */
265static struct pci_device_id snd_atiixp_ids[] __devinitdata = { 265static struct pci_device_id snd_atiixp_ids[] = {
266 { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */ 266 { 0x1002, 0x434d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB200 */
267 { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */ 267 { 0x1002, 0x4378, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* SB400 */
268 { 0, } 268 { 0, }
diff --git a/sound/pci/au88x0/au8810.c b/sound/pci/au88x0/au8810.c
index bd3352998ad0..fce22c7af0ea 100644
--- a/sound/pci/au88x0/au8810.c
+++ b/sound/pci/au88x0/au8810.c
@@ -1,6 +1,6 @@
1#include "au8810.h" 1#include "au8810.h"
2#include "au88x0.h" 2#include "au88x0.h"
3static struct pci_device_id snd_vortex_ids[] __devinitdata = { 3static struct pci_device_id snd_vortex_ids[] = {
4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE, 4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_ADVANTAGE,
5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,}, 5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1,},
6 {0,} 6 {0,}
diff --git a/sound/pci/au88x0/au8820.c b/sound/pci/au88x0/au8820.c
index 7e3fd8372d8d..d1fbcce07257 100644
--- a/sound/pci/au88x0/au8820.c
+++ b/sound/pci/au88x0/au8820.c
@@ -1,6 +1,6 @@
1#include "au8820.h" 1#include "au8820.h"
2#include "au88x0.h" 2#include "au88x0.h"
3static struct pci_device_id snd_vortex_ids[] __devinitdata = { 3static struct pci_device_id snd_vortex_ids[] = {
4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1, 4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_1,
5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, 5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,},
6 {0,} 6 {0,}
diff --git a/sound/pci/au88x0/au8830.c b/sound/pci/au88x0/au8830.c
index b840f6608a61..d4f2717c14fb 100644
--- a/sound/pci/au88x0/au8830.c
+++ b/sound/pci/au88x0/au8830.c
@@ -1,6 +1,6 @@
1#include "au8830.h" 1#include "au8830.h"
2#include "au88x0.h" 2#include "au88x0.h"
3static struct pci_device_id snd_vortex_ids[] __devinitdata = { 3static struct pci_device_id snd_vortex_ids[] = {
4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2, 4 {PCI_VENDOR_ID_AUREAL, PCI_DEVICE_ID_AUREAL_VORTEX_2,
5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, 5 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,},
6 {0,} 6 {0,}
diff --git a/sound/pci/au88x0/au88x0.h b/sound/pci/au88x0/au88x0.h
index f078b716d2b0..b1cfc3c79d07 100644
--- a/sound/pci/au88x0/au88x0.h
+++ b/sound/pci/au88x0/au88x0.h
@@ -270,7 +270,8 @@ static void vortex_mix_setvolumebyte(vortex_t * vortex, unsigned char mix,
270 270
271/* A3D functions. */ 271/* A3D functions. */
272#ifndef CHIP_AU8820 272#ifndef CHIP_AU8820
273static void vortex_Vort3D(vortex_t * v, int en); 273static void vortex_Vort3D_enable(vortex_t * v);
274static void vortex_Vort3D_disable(vortex_t * v);
274static void vortex_Vort3D_connect(vortex_t * vortex, int en); 275static void vortex_Vort3D_connect(vortex_t * vortex, int en);
275static void vortex_Vort3D_InitializeSource(a3dsrc_t * a, int en); 276static void vortex_Vort3D_InitializeSource(a3dsrc_t * a, int en);
276#endif 277#endif
diff --git a/sound/pci/au88x0/au88x0_a3d.c b/sound/pci/au88x0/au88x0_a3d.c
index d215f393ea64..649849e540d3 100644
--- a/sound/pci/au88x0/au88x0_a3d.c
+++ b/sound/pci/au88x0/au88x0_a3d.c
@@ -593,24 +593,23 @@ static int Vort3DRend_Initialize(vortex_t * v, unsigned short mode)
593static int vortex_a3d_register_controls(vortex_t * vortex); 593static int vortex_a3d_register_controls(vortex_t * vortex);
594static void vortex_a3d_unregister_controls(vortex_t * vortex); 594static void vortex_a3d_unregister_controls(vortex_t * vortex);
595/* A3D base support init/shudown */ 595/* A3D base support init/shudown */
596static void vortex_Vort3D(vortex_t * v, int en) 596static void __devinit vortex_Vort3D_enable(vortex_t * v)
597{ 597{
598 int i; 598 int i;
599 if (en) { 599
600 Vort3DRend_Initialize(v, XT_HEADPHONE); 600 Vort3DRend_Initialize(v, XT_HEADPHONE);
601 for (i = 0; i < NR_A3D; i++) { 601 for (i = 0; i < NR_A3D; i++) {
602 vortex_A3dSourceHw_Initialize(v, i % 4, i >> 2); 602 vortex_A3dSourceHw_Initialize(v, i % 4, i >> 2);
603 a3dsrc_ZeroStateA3D(&(v->a3d[0])); 603 a3dsrc_ZeroStateA3D(&(v->a3d[0]));
604 }
605 } else {
606 vortex_XtalkHw_Disable(v);
607 } 604 }
608 /* Register ALSA controls */ 605 /* Register ALSA controls */
609 if (en) { 606 vortex_a3d_register_controls(v);
610 vortex_a3d_register_controls(v); 607}
611 } else { 608
612 vortex_a3d_unregister_controls(v); 609static void vortex_Vort3D_disable(vortex_t * v)
613 } 610{
611 vortex_XtalkHw_Disable(v);
612 vortex_a3d_unregister_controls(v);
614} 613}
615 614
616/* Make A3D subsystem connections. */ 615/* Make A3D subsystem connections. */
@@ -855,7 +854,7 @@ static struct snd_kcontrol_new vortex_a3d_kcontrol __devinitdata = {
855}; 854};
856 855
857/* Control (un)registration. */ 856/* Control (un)registration. */
858static int vortex_a3d_register_controls(vortex_t * vortex) 857static int __devinit vortex_a3d_register_controls(vortex_t * vortex)
859{ 858{
860 struct snd_kcontrol *kcontrol; 859 struct snd_kcontrol *kcontrol;
861 int err, i; 860 int err, i;
diff --git a/sound/pci/au88x0/au88x0_core.c b/sound/pci/au88x0/au88x0_core.c
index 4347e6abc1d5..5299cce583d3 100644
--- a/sound/pci/au88x0/au88x0_core.c
+++ b/sound/pci/au88x0/au88x0_core.c
@@ -2690,7 +2690,7 @@ static int __devinit vortex_core_init(vortex_t * vortex)
2690#ifndef CHIP_AU8820 2690#ifndef CHIP_AU8820
2691 vortex_eq_init(vortex); 2691 vortex_eq_init(vortex);
2692 vortex_spdif_init(vortex, 48000, 1); 2692 vortex_spdif_init(vortex, 48000, 1);
2693 vortex_Vort3D(vortex, 1); 2693 vortex_Vort3D_enable(vortex);
2694#endif 2694#endif
2695#ifndef CHIP_AU8810 2695#ifndef CHIP_AU8810
2696 vortex_wt_init(vortex); 2696 vortex_wt_init(vortex);
@@ -2718,7 +2718,7 @@ static int vortex_core_shutdown(vortex_t * vortex)
2718 printk(KERN_INFO "Vortex: shutdown..."); 2718 printk(KERN_INFO "Vortex: shutdown...");
2719#ifndef CHIP_AU8820 2719#ifndef CHIP_AU8820
2720 vortex_eq_free(vortex); 2720 vortex_eq_free(vortex);
2721 vortex_Vort3D(vortex, 0); 2721 vortex_Vort3D_disable(vortex);
2722#endif 2722#endif
2723 //vortex_disable_timer_int(vortex); 2723 //vortex_disable_timer_int(vortex);
2724 vortex_disable_int(vortex); 2724 vortex_disable_int(vortex);
diff --git a/sound/pci/azt3328.c b/sound/pci/azt3328.c
index 15447a3216dd..bac8e9cfd921 100644
--- a/sound/pci/azt3328.c
+++ b/sound/pci/azt3328.c
@@ -238,7 +238,7 @@ struct snd_azf3328 {
238#endif 238#endif
239}; 239};
240 240
241static const struct pci_device_id snd_azf3328_ids[] __devinitdata = { 241static const struct pci_device_id snd_azf3328_ids[] = {
242 { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */ 242 { 0x122D, 0x50DC, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* PCI168/3328 */
243 { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */ 243 { 0x122D, 0x80DA, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* 3328 */
244 { 0, } 244 { 0, }
diff --git a/sound/pci/bt87x.c b/sound/pci/bt87x.c
index 4d4277d045aa..97a280a246cb 100644
--- a/sound/pci/bt87x.c
+++ b/sound/pci/bt87x.c
@@ -774,7 +774,7 @@ static int __devinit snd_bt87x_create(struct snd_card *card,
774 .driver_data = rate } 774 .driver_data = rate }
775 775
776/* driver_data is the default digital_rate value for that device */ 776/* driver_data is the default digital_rate value for that device */
777static struct pci_device_id snd_bt87x_ids[] __devinitdata = { 777static struct pci_device_id snd_bt87x_ids[] = {
778 /* Hauppauge WinTV series */ 778 /* Hauppauge WinTV series */
779 BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000), 779 BT_DEVICE(PCI_DEVICE_ID_BROOKTREE_878, 0x0070, 0x13eb, 32000),
780 /* Hauppauge WinTV series */ 780 /* Hauppauge WinTV series */
diff --git a/sound/pci/ca0106/ca0106_main.c b/sound/pci/ca0106/ca0106_main.c
index a30c019bab64..12bbbb6afd2d 100644
--- a/sound/pci/ca0106/ca0106_main.c
+++ b/sound/pci/ca0106/ca0106_main.c
@@ -1602,7 +1602,7 @@ static void __devexit snd_ca0106_remove(struct pci_dev *pci)
1602} 1602}
1603 1603
1604// PCI IDs 1604// PCI IDs
1605static struct pci_device_id snd_ca0106_ids[] __devinitdata = { 1605static struct pci_device_id snd_ca0106_ids[] = {
1606 { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */ 1606 { 0x1102, 0x0007, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Audigy LS or Live 24bit */
1607 { 0, } 1607 { 0, }
1608}; 1608};
diff --git a/sound/pci/cmipci.c b/sound/pci/cmipci.c
index 03766ad74998..876b64464b6f 100644
--- a/sound/pci/cmipci.c
+++ b/sound/pci/cmipci.c
@@ -2609,7 +2609,7 @@ static inline void snd_cmipci_proc_init(struct cmipci *cm) {}
2609#endif 2609#endif
2610 2610
2611 2611
2612static struct pci_device_id snd_cmipci_ids[] __devinitdata = { 2612static struct pci_device_id snd_cmipci_ids[] = {
2613 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 2613 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
2614 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 2614 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8338B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
2615 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 2615 {PCI_VENDOR_ID_CMEDIA, PCI_DEVICE_ID_CMEDIA_CM8738, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
diff --git a/sound/pci/cs4281.c b/sound/pci/cs4281.c
index d1802487f5be..9631456ec3de 100644
--- a/sound/pci/cs4281.c
+++ b/sound/pci/cs4281.c
@@ -494,7 +494,7 @@ struct cs4281 {
494 494
495static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs); 495static irqreturn_t snd_cs4281_interrupt(int irq, void *dev_id, struct pt_regs *regs);
496 496
497static struct pci_device_id snd_cs4281_ids[] __devinitdata = { 497static struct pci_device_id snd_cs4281_ids[] = {
498 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */ 498 { 0x1013, 0x6005, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4281 */
499 { 0, } 499 { 0, }
500}; 500};
diff --git a/sound/pci/cs46xx/cs46xx.c b/sound/pci/cs46xx/cs46xx.c
index 772dc52bfeb2..8b6cd144d101 100644
--- a/sound/pci/cs46xx/cs46xx.c
+++ b/sound/pci/cs46xx/cs46xx.c
@@ -65,7 +65,7 @@ MODULE_PARM_DESC(thinkpad, "Force to enable Thinkpad's CLKRUN control.");
65module_param_array(mmap_valid, bool, NULL, 0444); 65module_param_array(mmap_valid, bool, NULL, 0444);
66MODULE_PARM_DESC(mmap_valid, "Support OSS mmap."); 66MODULE_PARM_DESC(mmap_valid, "Support OSS mmap.");
67 67
68static struct pci_device_id snd_cs46xx_ids[] __devinitdata = { 68static struct pci_device_id snd_cs46xx_ids[] = {
69 { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */ 69 { 0x1013, 0x6001, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4280 */
70 { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */ 70 { 0x1013, 0x6003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4612 */
71 { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */ 71 { 0x1013, 0x6004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* CS4615 */
diff --git a/sound/pci/cs46xx/cs46xx_lib.c b/sound/pci/cs46xx/cs46xx_lib.c
index 894545ea41fd..4851847180d2 100644
--- a/sound/pci/cs46xx/cs46xx_lib.c
+++ b/sound/pci/cs46xx/cs46xx_lib.c
@@ -2317,7 +2317,7 @@ static struct snd_kcontrol_new snd_cs46xx_front_dup_ctl = {
2317 2317
2318#ifdef CONFIG_SND_CS46XX_NEW_DSP 2318#ifdef CONFIG_SND_CS46XX_NEW_DSP
2319/* Only available on the Hercules Game Theater XP soundcard */ 2319/* Only available on the Hercules Game Theater XP soundcard */
2320static struct snd_kcontrol_new snd_hercules_controls[] __devinitdata = { 2320static struct snd_kcontrol_new snd_hercules_controls[] = {
2321{ 2321{
2322 .iface = SNDRV_CTL_ELEM_IFACE_MIXER, 2322 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
2323 .name = "Optical/Coaxial SPDIF Input Switch", 2323 .name = "Optical/Coaxial SPDIF Input Switch",
@@ -3458,6 +3458,9 @@ static void hercules_mixer_init (struct snd_cs46xx *chip)
3458 snd_printdd ("initializing Hercules mixer\n"); 3458 snd_printdd ("initializing Hercules mixer\n");
3459 3459
3460#ifdef CONFIG_SND_CS46XX_NEW_DSP 3460#ifdef CONFIG_SND_CS46XX_NEW_DSP
3461 if (chip->in_suspend)
3462 return;
3463
3461 for (idx = 0 ; idx < ARRAY_SIZE(snd_hercules_controls); idx++) { 3464 for (idx = 0 ; idx < ARRAY_SIZE(snd_hercules_controls); idx++) {
3462 struct snd_kcontrol *kctl; 3465 struct snd_kcontrol *kctl;
3463 3466
@@ -3669,6 +3672,7 @@ int snd_cs46xx_suspend(struct pci_dev *pci, pm_message_t state)
3669 int amp_saved; 3672 int amp_saved;
3670 3673
3671 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot); 3674 snd_power_change_state(card, SNDRV_CTL_POWER_D3hot);
3675 chip->in_suspend = 1;
3672 snd_pcm_suspend_all(chip->pcm); 3676 snd_pcm_suspend_all(chip->pcm);
3673 // chip->ac97_powerdown = snd_cs46xx_codec_read(chip, AC97_POWER_CONTROL); 3677 // chip->ac97_powerdown = snd_cs46xx_codec_read(chip, AC97_POWER_CONTROL);
3674 // chip->ac97_general_purpose = snd_cs46xx_codec_read(chip, BA0_AC97_GENERAL_PURPOSE); 3678 // chip->ac97_general_purpose = snd_cs46xx_codec_read(chip, BA0_AC97_GENERAL_PURPOSE);
@@ -3722,6 +3726,7 @@ int snd_cs46xx_resume(struct pci_dev *pci)
3722 else 3726 else
3723 chip->active_ctrl(chip, -1); /* disable CLKRUN */ 3727 chip->active_ctrl(chip, -1); /* disable CLKRUN */
3724 chip->amplifier = amp_saved; 3728 chip->amplifier = amp_saved;
3729 chip->in_suspend = 0;
3725 snd_power_change_state(card, SNDRV_CTL_POWER_D0); 3730 snd_power_change_state(card, SNDRV_CTL_POWER_D0);
3726 return 0; 3731 return 0;
3727} 3732}
diff --git a/sound/pci/cs5535audio/cs5535audio.c b/sound/pci/cs5535audio/cs5535audio.c
index c12b24c679f2..64c7826e8b8c 100644
--- a/sound/pci/cs5535audio/cs5535audio.c
+++ b/sound/pci/cs5535audio/cs5535audio.c
@@ -67,7 +67,7 @@ MODULE_PARM_DESC(id, "ID string for " DRIVER_NAME);
67module_param_array(enable, bool, NULL, 0444); 67module_param_array(enable, bool, NULL, 0444);
68MODULE_PARM_DESC(enable, "Enable " DRIVER_NAME); 68MODULE_PARM_DESC(enable, "Enable " DRIVER_NAME);
69 69
70static struct pci_device_id snd_cs5535audio_ids[] __devinitdata = { 70static struct pci_device_id snd_cs5535audio_ids[] = {
71 { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO) }, 71 { PCI_DEVICE(PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_CS5535_AUDIO) },
72 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO) }, 72 { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_AUDIO) },
73 {} 73 {}
diff --git a/sound/pci/emu10k1/emu10k1.c b/sound/pci/emu10k1/emu10k1.c
index 549673ea14a9..289bcd99c19c 100644
--- a/sound/pci/emu10k1/emu10k1.c
+++ b/sound/pci/emu10k1/emu10k1.c
@@ -77,7 +77,7 @@ MODULE_PARM_DESC(subsystem, "Force card subsystem model.");
77/* 77/*
78 * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400 78 * Class 0401: 1102:0008 (rev 00) Subsystem: 1102:1001 -> Audigy2 Value Model:SB0400
79 */ 79 */
80static struct pci_device_id snd_emu10k1_ids[] __devinitdata = { 80static struct pci_device_id snd_emu10k1_ids[] = {
81 { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */ 81 { 0x1102, 0x0002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* EMU10K1 */
82 { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */ 82 { 0x1102, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy */
83 { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */ 83 { 0x1102, 0x0008, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 1 }, /* Audigy 2 Value SB0400 */
diff --git a/sound/pci/emu10k1/emu10k1_main.c b/sound/pci/emu10k1/emu10k1_main.c
index d6f135fe2958..f9b5c3dc3b34 100644
--- a/sound/pci/emu10k1/emu10k1_main.c
+++ b/sound/pci/emu10k1/emu10k1_main.c
@@ -531,7 +531,7 @@ static void snd_emu10k1_ecard_setadcgain(struct snd_emu10k1 * emu,
531 snd_emu10k1_ecard_write(emu, emu->ecard_ctrl); 531 snd_emu10k1_ecard_write(emu, emu->ecard_ctrl);
532} 532}
533 533
534static int __devinit snd_emu10k1_ecard_init(struct snd_emu10k1 * emu) 534static int snd_emu10k1_ecard_init(struct snd_emu10k1 * emu)
535{ 535{
536 unsigned int hc_value; 536 unsigned int hc_value;
537 537
@@ -571,7 +571,7 @@ static int __devinit snd_emu10k1_ecard_init(struct snd_emu10k1 * emu)
571 return 0; 571 return 0;
572} 572}
573 573
574static int __devinit snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu) 574static int snd_emu10k1_cardbus_init(struct snd_emu10k1 * emu)
575{ 575{
576 unsigned long special_port; 576 unsigned long special_port;
577 unsigned int value; 577 unsigned int value;
@@ -633,7 +633,7 @@ static int snd_emu1212m_fpga_netlist_write(struct snd_emu10k1 * emu, int reg, in
633 return 0; 633 return 0;
634} 634}
635 635
636static int __devinit snd_emu10k1_emu1212m_init(struct snd_emu10k1 * emu) 636static int snd_emu10k1_emu1212m_init(struct snd_emu10k1 * emu)
637{ 637{
638 unsigned int i; 638 unsigned int i;
639 int tmp; 639 int tmp;
@@ -1430,6 +1430,10 @@ void snd_emu10k1_resume_init(struct snd_emu10k1 *emu)
1430{ 1430{
1431 if (emu->card_capabilities->ecard) 1431 if (emu->card_capabilities->ecard)
1432 snd_emu10k1_ecard_init(emu); 1432 snd_emu10k1_ecard_init(emu);
1433 else if (emu->card_capabilities->ca_cardbus_chip)
1434 snd_emu10k1_cardbus_init(emu);
1435 else if (emu->card_capabilities->emu1212m)
1436 snd_emu10k1_emu1212m_init(emu);
1433 else 1437 else
1434 snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE); 1438 snd_emu10k1_ptr_write(emu, AC97SLOT, 0, AC97SLOT_CNTR|AC97SLOT_LFE);
1435 snd_emu10k1_init(emu, emu->enable_ir, 1); 1439 snd_emu10k1_init(emu, emu->enable_ir, 1);
diff --git a/sound/pci/emu10k1/emu10k1x.c b/sound/pci/emu10k1/emu10k1x.c
index 2167279429b8..bda8bdf59935 100644
--- a/sound/pci/emu10k1/emu10k1x.c
+++ b/sound/pci/emu10k1/emu10k1x.c
@@ -1286,7 +1286,7 @@ static void snd_emu10k1x_midi_interrupt(struct emu10k1x *emu, unsigned int statu
1286 do_emu10k1x_midi_interrupt(emu, &emu->midi, status); 1286 do_emu10k1x_midi_interrupt(emu, &emu->midi, status);
1287} 1287}
1288 1288
1289static void snd_emu10k1x_midi_cmd(struct emu10k1x * emu, 1289static int snd_emu10k1x_midi_cmd(struct emu10k1x * emu,
1290 struct emu10k1x_midi *midi, unsigned char cmd, int ack) 1290 struct emu10k1x_midi *midi, unsigned char cmd, int ack)
1291{ 1291{
1292 unsigned long flags; 1292 unsigned long flags;
@@ -1312,11 +1312,14 @@ static void snd_emu10k1x_midi_cmd(struct emu10k1x * emu,
1312 ok = 1; 1312 ok = 1;
1313 } 1313 }
1314 spin_unlock_irqrestore(&midi->input_lock, flags); 1314 spin_unlock_irqrestore(&midi->input_lock, flags);
1315 if (!ok) 1315 if (!ok) {
1316 snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n", 1316 snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n",
1317 cmd, emu->port, 1317 cmd, emu->port,
1318 mpu401_read_stat(emu, midi), 1318 mpu401_read_stat(emu, midi),
1319 mpu401_read_data(emu, midi)); 1319 mpu401_read_data(emu, midi));
1320 return 1;
1321 }
1322 return 0;
1320} 1323}
1321 1324
1322static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream) 1325static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream)
@@ -1332,12 +1335,17 @@ static int snd_emu10k1x_midi_input_open(struct snd_rawmidi_substream *substream)
1332 midi->substream_input = substream; 1335 midi->substream_input = substream;
1333 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) { 1336 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
1334 spin_unlock_irqrestore(&midi->open_lock, flags); 1337 spin_unlock_irqrestore(&midi->open_lock, flags);
1335 snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1); 1338 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
1336 snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1); 1339 goto error_out;
1340 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
1341 goto error_out;
1337 } else { 1342 } else {
1338 spin_unlock_irqrestore(&midi->open_lock, flags); 1343 spin_unlock_irqrestore(&midi->open_lock, flags);
1339 } 1344 }
1340 return 0; 1345 return 0;
1346
1347error_out:
1348 return -EIO;
1341} 1349}
1342 1350
1343static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream) 1351static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream)
@@ -1353,12 +1361,17 @@ static int snd_emu10k1x_midi_output_open(struct snd_rawmidi_substream *substream
1353 midi->substream_output = substream; 1361 midi->substream_output = substream;
1354 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) { 1362 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
1355 spin_unlock_irqrestore(&midi->open_lock, flags); 1363 spin_unlock_irqrestore(&midi->open_lock, flags);
1356 snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1); 1364 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 1))
1357 snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1); 1365 goto error_out;
1366 if (snd_emu10k1x_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
1367 goto error_out;
1358 } else { 1368 } else {
1359 spin_unlock_irqrestore(&midi->open_lock, flags); 1369 spin_unlock_irqrestore(&midi->open_lock, flags);
1360 } 1370 }
1361 return 0; 1371 return 0;
1372
1373error_out:
1374 return -EIO;
1362} 1375}
1363 1376
1364static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream) 1377static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream)
@@ -1366,6 +1379,7 @@ static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream
1366 struct emu10k1x *emu; 1379 struct emu10k1x *emu;
1367 struct emu10k1x_midi *midi = substream->rmidi->private_data; 1380 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1368 unsigned long flags; 1381 unsigned long flags;
1382 int err = 0;
1369 1383
1370 emu = midi->emu; 1384 emu = midi->emu;
1371 snd_assert(emu, return -ENXIO); 1385 snd_assert(emu, return -ENXIO);
@@ -1375,11 +1389,11 @@ static int snd_emu10k1x_midi_input_close(struct snd_rawmidi_substream *substream
1375 midi->substream_input = NULL; 1389 midi->substream_input = NULL;
1376 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) { 1390 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_OUTPUT)) {
1377 spin_unlock_irqrestore(&midi->open_lock, flags); 1391 spin_unlock_irqrestore(&midi->open_lock, flags);
1378 snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0); 1392 err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
1379 } else { 1393 } else {
1380 spin_unlock_irqrestore(&midi->open_lock, flags); 1394 spin_unlock_irqrestore(&midi->open_lock, flags);
1381 } 1395 }
1382 return 0; 1396 return err;
1383} 1397}
1384 1398
1385static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substream) 1399static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substream)
@@ -1387,6 +1401,7 @@ static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substrea
1387 struct emu10k1x *emu; 1401 struct emu10k1x *emu;
1388 struct emu10k1x_midi *midi = substream->rmidi->private_data; 1402 struct emu10k1x_midi *midi = substream->rmidi->private_data;
1389 unsigned long flags; 1403 unsigned long flags;
1404 int err = 0;
1390 1405
1391 emu = midi->emu; 1406 emu = midi->emu;
1392 snd_assert(emu, return -ENXIO); 1407 snd_assert(emu, return -ENXIO);
@@ -1396,11 +1411,11 @@ static int snd_emu10k1x_midi_output_close(struct snd_rawmidi_substream *substrea
1396 midi->substream_output = NULL; 1411 midi->substream_output = NULL;
1397 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) { 1412 if (!(midi->midi_mode & EMU10K1X_MIDI_MODE_INPUT)) {
1398 spin_unlock_irqrestore(&midi->open_lock, flags); 1413 spin_unlock_irqrestore(&midi->open_lock, flags);
1399 snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0); 1414 err = snd_emu10k1x_midi_cmd(emu, midi, MPU401_RESET, 0);
1400 } else { 1415 } else {
1401 spin_unlock_irqrestore(&midi->open_lock, flags); 1416 spin_unlock_irqrestore(&midi->open_lock, flags);
1402 } 1417 }
1403 return 0; 1418 return err;
1404} 1419}
1405 1420
1406static void snd_emu10k1x_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) 1421static void snd_emu10k1x_midi_input_trigger(struct snd_rawmidi_substream *substream, int up)
@@ -1594,7 +1609,7 @@ static void __devexit snd_emu10k1x_remove(struct pci_dev *pci)
1594} 1609}
1595 1610
1596// PCI IDs 1611// PCI IDs
1597static struct pci_device_id snd_emu10k1x_ids[] __devinitdata = { 1612static struct pci_device_id snd_emu10k1x_ids[] = {
1598 { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */ 1613 { 0x1102, 0x0006, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Dell OEM version (EMU10K1) */
1599 { 0, } 1614 { 0, }
1600}; 1615};
diff --git a/sound/pci/emu10k1/emumpu401.c b/sound/pci/emu10k1/emumpu401.c
index d96eb455103f..950c6bcd6b7d 100644
--- a/sound/pci/emu10k1/emumpu401.c
+++ b/sound/pci/emu10k1/emumpu401.c
@@ -116,7 +116,7 @@ static void snd_emu10k1_midi_interrupt2(struct snd_emu10k1 *emu, unsigned int st
116 do_emu10k1_midi_interrupt(emu, &emu->midi2, status); 116 do_emu10k1_midi_interrupt(emu, &emu->midi2, status);
117} 117}
118 118
119static void snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_midi *midi, unsigned char cmd, int ack) 119static int snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_midi *midi, unsigned char cmd, int ack)
120{ 120{
121 unsigned long flags; 121 unsigned long flags;
122 int timeout, ok; 122 int timeout, ok;
@@ -141,11 +141,14 @@ static void snd_emu10k1_midi_cmd(struct snd_emu10k1 * emu, struct snd_emu10k1_mi
141 ok = 1; 141 ok = 1;
142 } 142 }
143 spin_unlock_irqrestore(&midi->input_lock, flags); 143 spin_unlock_irqrestore(&midi->input_lock, flags);
144 if (!ok) 144 if (!ok) {
145 snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n", 145 snd_printk(KERN_ERR "midi_cmd: 0x%x failed at 0x%lx (status = 0x%x, data = 0x%x)!!!\n",
146 cmd, emu->port, 146 cmd, emu->port,
147 mpu401_read_stat(emu, midi), 147 mpu401_read_stat(emu, midi),
148 mpu401_read_data(emu, midi)); 148 mpu401_read_data(emu, midi));
149 return 1;
150 }
151 return 0;
149} 152}
150 153
151static int snd_emu10k1_midi_input_open(struct snd_rawmidi_substream *substream) 154static int snd_emu10k1_midi_input_open(struct snd_rawmidi_substream *substream)
@@ -161,12 +164,17 @@ static int snd_emu10k1_midi_input_open(struct snd_rawmidi_substream *substream)
161 midi->substream_input = substream; 164 midi->substream_input = substream;
162 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_OUTPUT)) { 165 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_OUTPUT)) {
163 spin_unlock_irqrestore(&midi->open_lock, flags); 166 spin_unlock_irqrestore(&midi->open_lock, flags);
164 snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 1); 167 if (snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 1))
165 snd_emu10k1_midi_cmd(emu, midi, MPU401_ENTER_UART, 1); 168 goto error_out;
169 if (snd_emu10k1_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
170 goto error_out;
166 } else { 171 } else {
167 spin_unlock_irqrestore(&midi->open_lock, flags); 172 spin_unlock_irqrestore(&midi->open_lock, flags);
168 } 173 }
169 return 0; 174 return 0;
175
176error_out:
177 return -EIO;
170} 178}
171 179
172static int snd_emu10k1_midi_output_open(struct snd_rawmidi_substream *substream) 180static int snd_emu10k1_midi_output_open(struct snd_rawmidi_substream *substream)
@@ -182,12 +190,17 @@ static int snd_emu10k1_midi_output_open(struct snd_rawmidi_substream *substream)
182 midi->substream_output = substream; 190 midi->substream_output = substream;
183 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_INPUT)) { 191 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_INPUT)) {
184 spin_unlock_irqrestore(&midi->open_lock, flags); 192 spin_unlock_irqrestore(&midi->open_lock, flags);
185 snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 1); 193 if (snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 1))
186 snd_emu10k1_midi_cmd(emu, midi, MPU401_ENTER_UART, 1); 194 goto error_out;
195 if (snd_emu10k1_midi_cmd(emu, midi, MPU401_ENTER_UART, 1))
196 goto error_out;
187 } else { 197 } else {
188 spin_unlock_irqrestore(&midi->open_lock, flags); 198 spin_unlock_irqrestore(&midi->open_lock, flags);
189 } 199 }
190 return 0; 200 return 0;
201
202error_out:
203 return -EIO;
191} 204}
192 205
193static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream) 206static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream)
@@ -195,6 +208,7 @@ static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream)
195 struct snd_emu10k1 *emu; 208 struct snd_emu10k1 *emu;
196 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; 209 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
197 unsigned long flags; 210 unsigned long flags;
211 int err = 0;
198 212
199 emu = midi->emu; 213 emu = midi->emu;
200 snd_assert(emu, return -ENXIO); 214 snd_assert(emu, return -ENXIO);
@@ -204,11 +218,11 @@ static int snd_emu10k1_midi_input_close(struct snd_rawmidi_substream *substream)
204 midi->substream_input = NULL; 218 midi->substream_input = NULL;
205 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_OUTPUT)) { 219 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_OUTPUT)) {
206 spin_unlock_irqrestore(&midi->open_lock, flags); 220 spin_unlock_irqrestore(&midi->open_lock, flags);
207 snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 0); 221 err = snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 0);
208 } else { 222 } else {
209 spin_unlock_irqrestore(&midi->open_lock, flags); 223 spin_unlock_irqrestore(&midi->open_lock, flags);
210 } 224 }
211 return 0; 225 return err;
212} 226}
213 227
214static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream) 228static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream)
@@ -216,6 +230,7 @@ static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream
216 struct snd_emu10k1 *emu; 230 struct snd_emu10k1 *emu;
217 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data; 231 struct snd_emu10k1_midi *midi = (struct snd_emu10k1_midi *)substream->rmidi->private_data;
218 unsigned long flags; 232 unsigned long flags;
233 int err = 0;
219 234
220 emu = midi->emu; 235 emu = midi->emu;
221 snd_assert(emu, return -ENXIO); 236 snd_assert(emu, return -ENXIO);
@@ -225,11 +240,11 @@ static int snd_emu10k1_midi_output_close(struct snd_rawmidi_substream *substream
225 midi->substream_output = NULL; 240 midi->substream_output = NULL;
226 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_INPUT)) { 241 if (!(midi->midi_mode & EMU10K1_MIDI_MODE_INPUT)) {
227 spin_unlock_irqrestore(&midi->open_lock, flags); 242 spin_unlock_irqrestore(&midi->open_lock, flags);
228 snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 0); 243 err = snd_emu10k1_midi_cmd(emu, midi, MPU401_RESET, 0);
229 } else { 244 } else {
230 spin_unlock_irqrestore(&midi->open_lock, flags); 245 spin_unlock_irqrestore(&midi->open_lock, flags);
231 } 246 }
232 return 0; 247 return err;
233} 248}
234 249
235static void snd_emu10k1_midi_input_trigger(struct snd_rawmidi_substream *substream, int up) 250static void snd_emu10k1_midi_input_trigger(struct snd_rawmidi_substream *substream, int up)
diff --git a/sound/pci/ens1370.c b/sound/pci/ens1370.c
index 7a985c868007..a8a601fc781f 100644
--- a/sound/pci/ens1370.c
+++ b/sound/pci/ens1370.c
@@ -446,7 +446,7 @@ struct ensoniq {
446 446
447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs); 447static irqreturn_t snd_audiopci_interrupt(int irq, void *dev_id, struct pt_regs *regs);
448 448
449static struct pci_device_id snd_audiopci_ids[] __devinitdata = { 449static struct pci_device_id snd_audiopci_ids[] = {
450#ifdef CHIP1370 450#ifdef CHIP1370
451 { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */ 451 { 0x1274, 0x5000, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* ES1370 */
452#endif 452#endif
diff --git a/sound/pci/es1938.c b/sound/pci/es1938.c
index 1113b10259cf..cc0f34f68185 100644
--- a/sound/pci/es1938.c
+++ b/sound/pci/es1938.c
@@ -242,7 +242,7 @@ struct es1938 {
242 242
243static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs); 243static irqreturn_t snd_es1938_interrupt(int irq, void *dev_id, struct pt_regs *regs);
244 244
245static struct pci_device_id snd_es1938_ids[] __devinitdata = { 245static struct pci_device_id snd_es1938_ids[] = {
246 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */ 246 { 0x125d, 0x1969, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* Solo-1 */
247 { 0, } 247 { 0, }
248}; 248};
diff --git a/sound/pci/es1968.c b/sound/pci/es1968.c
index a491c8f8a6a8..3c5ab7c2e72d 100644
--- a/sound/pci/es1968.c
+++ b/sound/pci/es1968.c
@@ -592,7 +592,7 @@ struct es1968 {
592 592
593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs); 593static irqreturn_t snd_es1968_interrupt(int irq, void *dev_id, struct pt_regs *regs);
594 594
595static struct pci_device_id snd_es1968_ids[] __devinitdata = { 595static struct pci_device_id snd_es1968_ids[] = {
596 /* Maestro 1 */ 596 /* Maestro 1 */
597 { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO }, 597 { 0x1285, 0x0100, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, TYPE_MAESTRO },
598 /* Maestro 2 */ 598 /* Maestro 2 */
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index 3aed27eace2c..13868c985126 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -35,7 +35,7 @@
35 35
36#include <asm/io.h> 36#include <asm/io.h>
37 37
38#if (defined(CONFIG_SND_FM801_TEA575X) || defined(CONFIG_SND_FM801_TEA575X_MODULE)) && (defined(CONFIG_VIDEO_DEV) || defined(CONFIG_VIDEO_DEV_MODULE)) 38#ifdef CONFIG_SND_FM801_TEA575X_BOOL
39#include <sound/tea575x-tuner.h> 39#include <sound/tea575x-tuner.h>
40#define TEA575X_RADIO 1 40#define TEA575X_RADIO 1
41#endif 41#endif
@@ -199,7 +199,7 @@ struct fm801 {
199#endif 199#endif
200}; 200};
201 201
202static struct pci_device_id snd_fm801_ids[] __devinitdata = { 202static struct pci_device_id snd_fm801_ids[] = {
203 { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */ 203 { 0x1319, 0x0801, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* FM801 */
204 { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */ 204 { 0x5213, 0x0510, PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0, }, /* Gallant Odyssey Sound 4 */
205 { 0, } 205 { 0, }
diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
index 025af7c0c6e1..79d63c99f092 100644
--- a/sound/pci/hda/hda_intel.c
+++ b/sound/pci/hda/hda_intel.c
@@ -1629,7 +1629,7 @@ static void __devexit azx_remove(struct pci_dev *pci)
1629} 1629}
1630 1630
1631/* PCI IDs */ 1631/* PCI IDs */
1632static struct pci_device_id azx_ids[] __devinitdata = { 1632static struct pci_device_id azx_ids[] = {
1633 { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */ 1633 { 0x8086, 0x2668, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH6 */
1634 { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */ 1634 { 0x8086, 0x27d8, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ICH7 */
1635 { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */ 1635 { 0x8086, 0x269a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, AZX_DRIVER_ICH }, /* ESB2 */
diff --git a/sound/pci/hda/patch_analog.c b/sound/pci/hda/patch_analog.c
index 33b7d5806469..6823f2bc10b3 100644
--- a/sound/pci/hda/patch_analog.c
+++ b/sound/pci/hda/patch_analog.c
@@ -1545,6 +1545,9 @@ enum {
1545/* reivision id to check workarounds */ 1545/* reivision id to check workarounds */
1546#define AD1988A_REV2 0x100200 1546#define AD1988A_REV2 0x100200
1547 1547
1548#define is_rev2(codec) \
1549 ((codec)->vendor_id == 0x11d41988 && \
1550 (codec)->revision_id == AD1988A_REV2)
1548 1551
1549/* 1552/*
1550 * mixers 1553 * mixers
@@ -1636,6 +1639,7 @@ static struct snd_kcontrol_new ad1988_6stack_mixers1[] = {
1636 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), 1639 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT),
1637 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), 1640 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT),
1638 HDA_CODEC_VOLUME("Side Playback Volume", 0x0a, 0x0, HDA_OUTPUT), 1641 HDA_CODEC_VOLUME("Side Playback Volume", 0x0a, 0x0, HDA_OUTPUT),
1642 { } /* end */
1639}; 1643};
1640 1644
1641static struct snd_kcontrol_new ad1988_6stack_mixers1_rev2[] = { 1645static struct snd_kcontrol_new ad1988_6stack_mixers1_rev2[] = {
@@ -1644,6 +1648,7 @@ static struct snd_kcontrol_new ad1988_6stack_mixers1_rev2[] = {
1644 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT), 1648 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x0a, 1, 0x0, HDA_OUTPUT),
1645 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT), 1649 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x0a, 2, 0x0, HDA_OUTPUT),
1646 HDA_CODEC_VOLUME("Side Playback Volume", 0x06, 0x0, HDA_OUTPUT), 1650 HDA_CODEC_VOLUME("Side Playback Volume", 0x06, 0x0, HDA_OUTPUT),
1651 { } /* end */
1647}; 1652};
1648 1653
1649static struct snd_kcontrol_new ad1988_6stack_mixers2[] = { 1654static struct snd_kcontrol_new ad1988_6stack_mixers2[] = {
@@ -1682,6 +1687,7 @@ static struct snd_kcontrol_new ad1988_3stack_mixers1[] = {
1682 HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), 1687 HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT),
1683 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT), 1688 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x05, 1, 0x0, HDA_OUTPUT),
1684 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT), 1689 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x05, 2, 0x0, HDA_OUTPUT),
1690 { } /* end */
1685}; 1691};
1686 1692
1687static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = { 1693static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = {
@@ -1689,6 +1695,7 @@ static struct snd_kcontrol_new ad1988_3stack_mixers1_rev2[] = {
1689 HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT), 1695 HDA_CODEC_VOLUME("Surround Playback Volume", 0x0a, 0x0, HDA_OUTPUT),
1690 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x06, 1, 0x0, HDA_OUTPUT), 1696 HDA_CODEC_VOLUME_MONO("Center Playback Volume", 0x06, 1, 0x0, HDA_OUTPUT),
1691 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x06, 2, 0x0, HDA_OUTPUT), 1697 HDA_CODEC_VOLUME_MONO("LFE Playback Volume", 0x06, 2, 0x0, HDA_OUTPUT),
1698 { } /* end */
1692}; 1699};
1693 1700
1694static struct snd_kcontrol_new ad1988_3stack_mixers2[] = { 1701static struct snd_kcontrol_new ad1988_3stack_mixers2[] = {
@@ -2195,7 +2202,7 @@ static inline hda_nid_t ad1988_idx_to_dac(struct hda_codec *codec, int idx)
2195 /* A B C D E F G H */ 2202 /* A B C D E F G H */
2196 0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06 2203 0x04, 0x05, 0x0a, 0x04, 0x06, 0x05, 0x0a, 0x06
2197 }; 2204 };
2198 if (codec->revision_id == AD1988A_REV2) 2205 if (is_rev2(codec))
2199 return idx_to_dac_rev2[idx]; 2206 return idx_to_dac_rev2[idx];
2200 else 2207 else
2201 return idx_to_dac[idx]; 2208 return idx_to_dac[idx];
@@ -2564,7 +2571,7 @@ static int patch_ad1988(struct hda_codec *codec)
2564 mutex_init(&spec->amp_mutex); 2571 mutex_init(&spec->amp_mutex);
2565 codec->spec = spec; 2572 codec->spec = spec;
2566 2573
2567 if (codec->revision_id == AD1988A_REV2) 2574 if (is_rev2(codec))
2568 snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n"); 2575 snd_printk(KERN_INFO "patch_analog: AD1988A rev.2 is detected, enable workarounds\n");
2569 2576
2570 board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl); 2577 board_config = snd_hda_check_board_config(codec, ad1988_cfg_tbl);
@@ -2590,13 +2597,13 @@ static int patch_ad1988(struct hda_codec *codec)
2590 case AD1988_6STACK_DIG: 2597 case AD1988_6STACK_DIG:
2591 spec->multiout.max_channels = 8; 2598 spec->multiout.max_channels = 8;
2592 spec->multiout.num_dacs = 4; 2599 spec->multiout.num_dacs = 4;
2593 if (codec->revision_id == AD1988A_REV2) 2600 if (is_rev2(codec))
2594 spec->multiout.dac_nids = ad1988_6stack_dac_nids_rev2; 2601 spec->multiout.dac_nids = ad1988_6stack_dac_nids_rev2;
2595 else 2602 else
2596 spec->multiout.dac_nids = ad1988_6stack_dac_nids; 2603 spec->multiout.dac_nids = ad1988_6stack_dac_nids;
2597 spec->input_mux = &ad1988_6stack_capture_source; 2604 spec->input_mux = &ad1988_6stack_capture_source;
2598 spec->num_mixers = 2; 2605 spec->num_mixers = 2;
2599 if (codec->revision_id == AD1988A_REV2) 2606 if (is_rev2(codec))
2600 spec->mixers[0] = ad1988_6stack_mixers1_rev2; 2607 spec->mixers[0] = ad1988_6stack_mixers1_rev2;
2601 else 2608 else
2602 spec->mixers[0] = ad1988_6stack_mixers1; 2609 spec->mixers[0] = ad1988_6stack_mixers1;
@@ -2612,7 +2619,7 @@ static int patch_ad1988(struct hda_codec *codec)
2612 case AD1988_3STACK_DIG: 2619 case AD1988_3STACK_DIG:
2613 spec->multiout.max_channels = 6; 2620 spec->multiout.max_channels = 6;
2614 spec->multiout.num_dacs = 3; 2621 spec->multiout.num_dacs = 3;
2615 if (codec->revision_id == AD1988A_REV2) 2622 if (is_rev2(codec))
2616 spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2; 2623 spec->multiout.dac_nids = ad1988_3stack_dac_nids_rev2;
2617 else 2624 else
2618 spec->multiout.dac_nids = ad1988_3stack_dac_nids; 2625 spec->multiout.dac_nids = ad1988_3stack_dac_nids;
@@ -2620,7 +2627,7 @@ static int patch_ad1988(struct hda_codec *codec)
2620 spec->channel_mode = ad1988_3stack_modes; 2627 spec->channel_mode = ad1988_3stack_modes;
2621 spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes); 2628 spec->num_channel_mode = ARRAY_SIZE(ad1988_3stack_modes);
2622 spec->num_mixers = 2; 2629 spec->num_mixers = 2;
2623 if (codec->revision_id == AD1988A_REV2) 2630 if (is_rev2(codec))
2624 spec->mixers[0] = ad1988_3stack_mixers1_rev2; 2631 spec->mixers[0] = ad1988_3stack_mixers1_rev2;
2625 else 2632 else
2626 spec->mixers[0] = ad1988_3stack_mixers1; 2633 spec->mixers[0] = ad1988_3stack_mixers1;
diff --git a/sound/pci/ice1712/aureon.c b/sound/pci/ice1712/aureon.c
index ca74f5b85f42..9492f3d2455b 100644
--- a/sound/pci/ice1712/aureon.c
+++ b/sound/pci/ice1712/aureon.c
@@ -2131,7 +2131,7 @@ struct snd_ice1712_card_info snd_vt1724_aureon_cards[] __devinitdata = {
2131 .build_controls = aureon_add_controls, 2131 .build_controls = aureon_add_controls,
2132 .eeprom_size = sizeof(aureon71_eeprom), 2132 .eeprom_size = sizeof(aureon71_eeprom),
2133 .eeprom_data = aureon71_eeprom, 2133 .eeprom_data = aureon71_eeprom,
2134 .driver = "Aureon71Universe", 2134 .driver = "Aureon71Univ", /* keep in 15 letters */
2135 }, 2135 },
2136 { 2136 {
2137 .subvendor = VT1724_SUBDEVICE_PRODIGY71, 2137 .subvendor = VT1724_SUBDEVICE_PRODIGY71,
diff --git a/sound/pci/ice1712/ice1712.c b/sound/pci/ice1712/ice1712.c
index 89a06dec4365..bf20858d9f19 100644
--- a/sound/pci/ice1712/ice1712.c
+++ b/sound/pci/ice1712/ice1712.c
@@ -106,7 +106,7 @@ module_param_array(dxr_enable, int, NULL, 0444);
106MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE."); 106MODULE_PARM_DESC(dxr_enable, "Enable DXR support for Terratec DMX6FIRE.");
107 107
108 108
109static struct pci_device_id snd_ice1712_ids[] __devinitdata = { 109static struct pci_device_id snd_ice1712_ids[] = {
110 { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */ 110 { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_ICE_1712, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* ICE1712 */
111 { 0, } 111 { 0, }
112}; 112};
diff --git a/sound/pci/ice1712/ice1724.c b/sound/pci/ice1712/ice1724.c
index ad69ed7c1b81..71d6aedc0749 100644
--- a/sound/pci/ice1712/ice1724.c
+++ b/sound/pci/ice1712/ice1724.c
@@ -86,7 +86,7 @@ MODULE_PARM_DESC(model, "Use the given board model.");
86 86
87 87
88/* Both VT1720 and VT1724 have the same PCI IDs */ 88/* Both VT1720 and VT1724 have the same PCI IDs */
89static struct pci_device_id snd_vt1724_ids[] __devinitdata = { 89static struct pci_device_id snd_vt1724_ids[] = {
90 { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, 90 { PCI_VENDOR_ID_ICE, PCI_DEVICE_ID_VT1724, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 },
91 { 0, } 91 { 0, }
92}; 92};
diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
index 5634bc349257..6874263f1681 100644
--- a/sound/pci/intel8x0.c
+++ b/sound/pci/intel8x0.c
@@ -413,7 +413,7 @@ struct intel8x0 {
413 u32 int_sta_mask; /* interrupt status mask */ 413 u32 int_sta_mask; /* interrupt status mask */
414}; 414};
415 415
416static struct pci_device_id snd_intel8x0_ids[] __devinitdata = { 416static struct pci_device_id snd_intel8x0_ids[] = {
417 { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ 417 { 0x8086, 0x2415, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */
418 { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ 418 { 0x8086, 0x2425, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */
419 { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ 419 { 0x8086, 0x2445, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */
@@ -1956,6 +1956,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
1956 .type = AC97_TUNE_HP_ONLY 1956 .type = AC97_TUNE_HP_ONLY
1957 }, 1957 },
1958 { 1958 {
1959 .subvendor = 0x10f1,
1960 .subdevice = 0x2895,
1961 .name = "Tyan Thunder K8WE",
1962 .type = AC97_TUNE_HP_ONLY
1963 },
1964 {
1959 .subvendor = 0x110a, 1965 .subvendor = 0x110a,
1960 .subdevice = 0x0056, 1966 .subdevice = 0x0056,
1961 .name = "Fujitsu-Siemens Scenic", /* AD1981? */ 1967 .name = "Fujitsu-Siemens Scenic", /* AD1981? */
diff --git a/sound/pci/intel8x0m.c b/sound/pci/intel8x0m.c
index f28e273ae276..91850281f89b 100644
--- a/sound/pci/intel8x0m.c
+++ b/sound/pci/intel8x0m.c
@@ -224,7 +224,7 @@ struct intel8x0m {
224 unsigned int pcm_pos_shift; 224 unsigned int pcm_pos_shift;
225}; 225};
226 226
227static struct pci_device_id snd_intel8x0m_ids[] __devinitdata = { 227static struct pci_device_id snd_intel8x0m_ids[] = {
228 { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */ 228 { 0x8086, 0x2416, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801AA */
229 { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */ 229 { 0x8086, 0x2426, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82901AB */
230 { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */ 230 { 0x8086, 0x2446, PCI_ANY_ID, PCI_ANY_ID, 0, 0, DEVICE_INTEL }, /* 82801BA */
diff --git a/sound/pci/korg1212/korg1212.c b/sound/pci/korg1212/korg1212.c
index 2b4ce002794a..cfea51f44784 100644
--- a/sound/pci/korg1212/korg1212.c
+++ b/sound/pci/korg1212/korg1212.c
@@ -424,7 +424,7 @@ module_param_array(enable, bool, NULL, 0444);
424MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard."); 424MODULE_PARM_DESC(enable, "Enable Korg 1212 soundcard.");
425MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>"); 425MODULE_AUTHOR("Haroldo Gamal <gamal@alternex.com.br>");
426 426
427static struct pci_device_id snd_korg1212_ids[] __devinitdata = { 427static struct pci_device_id snd_korg1212_ids[] = {
428 { 428 {
429 .vendor = 0x10b5, 429 .vendor = 0x10b5,
430 .device = 0x906d, 430 .device = 0x906d,
diff --git a/sound/pci/maestro3.c b/sound/pci/maestro3.c
index 828eab59253a..45214b3b81be 100644
--- a/sound/pci/maestro3.c
+++ b/sound/pci/maestro3.c
@@ -869,7 +869,7 @@ struct snd_m3 {
869/* 869/*
870 * pci ids 870 * pci ids
871 */ 871 */
872static struct pci_device_id snd_m3_ids[] __devinitdata = { 872static struct pci_device_id snd_m3_ids[] = {
873 {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID, 873 {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO_1, PCI_ANY_ID, PCI_ANY_ID,
874 PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, 874 PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0},
875 {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID, 875 {PCI_VENDOR_ID_ESS, PCI_DEVICE_ID_ESS_ALLEGRO, PCI_ANY_ID, PCI_ANY_ID,
@@ -2137,7 +2137,7 @@ static int __devinit snd_m3_mixer(struct snd_m3 *chip)
2137 * DSP Code images 2137 * DSP Code images
2138 */ 2138 */
2139 2139
2140static const u16 assp_kernel_image[] __devinitdata = { 2140static const u16 assp_kernel_image[] = {
2141 0x7980, 0x0030, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x00FB, 0x7980, 0x00DD, 0x7980, 0x03B4, 2141 0x7980, 0x0030, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x00FB, 0x7980, 0x00DD, 0x7980, 0x03B4,
2142 0x7980, 0x0332, 0x7980, 0x0287, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, 2142 0x7980, 0x0332, 0x7980, 0x0287, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4,
2143 0x7980, 0x031A, 0x7980, 0x03B4, 0x7980, 0x022F, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4, 2143 0x7980, 0x031A, 0x7980, 0x03B4, 0x7980, 0x022F, 0x7980, 0x03B4, 0x7980, 0x03B4, 0x7980, 0x03B4,
@@ -2224,7 +2224,7 @@ static const u16 assp_kernel_image[] __devinitdata = {
2224 * Mini sample rate converter code image 2224 * Mini sample rate converter code image
2225 * that is to be loaded at 0x400 on the DSP. 2225 * that is to be loaded at 0x400 on the DSP.
2226 */ 2226 */
2227static const u16 assp_minisrc_image[] __devinitdata = { 2227static const u16 assp_minisrc_image[] = {
2228 2228
2229 0xBF80, 0x101E, 0x906E, 0x006E, 0x8B88, 0x6980, 0xEF88, 0x906F, 0x0D6F, 0x6900, 0xEB08, 0x0412, 2229 0xBF80, 0x101E, 0x906E, 0x006E, 0x8B88, 0x6980, 0xEF88, 0x906F, 0x0D6F, 0x6900, 0xEB08, 0x0412,
2230 0xBC20, 0x696E, 0xB801, 0x906E, 0x7980, 0x0403, 0xB90E, 0x8807, 0xBE43, 0xBF01, 0xBE47, 0xBE41, 2230 0xBC20, 0x696E, 0xB801, 0x906E, 0x7980, 0x0403, 0xB90E, 0x8807, 0xBE43, 0xBF01, 0xBE47, 0xBE41,
@@ -2267,12 +2267,12 @@ static const u16 assp_minisrc_image[] __devinitdata = {
2267 */ 2267 */
2268 2268
2269#define MINISRC_LPF_LEN 10 2269#define MINISRC_LPF_LEN 10
2270static const u16 minisrc_lpf[MINISRC_LPF_LEN] __devinitdata = { 2270static const u16 minisrc_lpf[MINISRC_LPF_LEN] = {
2271 0X0743, 0X1104, 0X0A4C, 0XF88D, 0X242C, 2271 0X0743, 0X1104, 0X0A4C, 0XF88D, 0X242C,
2272 0X1023, 0X1AA9, 0X0B60, 0XEFDD, 0X186F 2272 0X1023, 0X1AA9, 0X0B60, 0XEFDD, 0X186F
2273}; 2273};
2274 2274
2275static void __devinit snd_m3_assp_init(struct snd_m3 *chip) 2275static void snd_m3_assp_init(struct snd_m3 *chip)
2276{ 2276{
2277 unsigned int i; 2277 unsigned int i;
2278 2278
diff --git a/sound/pci/mixart/mixart.c b/sound/pci/mixart/mixart.c
index a4aaa7b9a231..cc43ecd67906 100644
--- a/sound/pci/mixart/mixart.c
+++ b/sound/pci/mixart/mixart.c
@@ -61,7 +61,7 @@ MODULE_PARM_DESC(enable, "Enable Digigram " CARD_NAME " soundcard.");
61/* 61/*
62 */ 62 */
63 63
64static struct pci_device_id snd_mixart_ids[] __devinitdata = { 64static struct pci_device_id snd_mixart_ids[] = {
65 { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */ 65 { 0x1057, 0x0003, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* MC8240 */
66 { 0, } 66 { 0, }
67}; 67};
diff --git a/sound/pci/nm256/nm256.c b/sound/pci/nm256/nm256.c
index 56d7282e6651..101eee0aa018 100644
--- a/sound/pci/nm256/nm256.c
+++ b/sound/pci/nm256/nm256.c
@@ -263,7 +263,7 @@ struct nm256 {
263/* 263/*
264 * PCI ids 264 * PCI ids
265 */ 265 */
266static struct pci_device_id snd_nm256_ids[] __devinitdata = { 266static struct pci_device_id snd_nm256_ids[] = {
267 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 267 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256AV_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
268 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 268 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256ZX_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
269 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0}, 269 {PCI_VENDOR_ID_NEOMAGIC, PCI_DEVICE_ID_NEOMAGIC_NM256XL_PLUS_AUDIO, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
diff --git a/sound/pci/pcxhr/pcxhr.c b/sound/pci/pcxhr/pcxhr.c
index ae980e11827f..533c672ae8f3 100644
--- a/sound/pci/pcxhr/pcxhr.c
+++ b/sound/pci/pcxhr/pcxhr.c
@@ -73,7 +73,7 @@ enum {
73 PCI_ID_LAST 73 PCI_ID_LAST
74}; 74};
75 75
76static struct pci_device_id pcxhr_ids[] __devinitdata = { 76static struct pci_device_id pcxhr_ids[] = {
77 { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */ 77 { 0x10b5, 0x9656, 0x1369, 0xb001, 0, 0, PCI_ID_VX882HR, }, /* VX882HR */
78 { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */ 78 { 0x10b5, 0x9656, 0x1369, 0xb101, 0, 0, PCI_ID_PCX882HR, }, /* PCX882HR */
79 { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */ 79 { 0x10b5, 0x9656, 0x1369, 0xb201, 0, 0, PCI_ID_VX881HR, }, /* VX881HR */
diff --git a/sound/pci/riptide/riptide.c b/sound/pci/riptide/riptide.c
index 5501a08ca23a..f435fcd6dca9 100644
--- a/sound/pci/riptide/riptide.c
+++ b/sound/pci/riptide/riptide.c
@@ -506,7 +506,7 @@ static int riptide_reset(struct cmdif *cif, struct snd_riptide *chip);
506/* 506/*
507 */ 507 */
508 508
509static struct pci_device_id snd_riptide_ids[] __devinitdata = { 509static struct pci_device_id snd_riptide_ids[] = {
510 { 510 {
511 .vendor = 0x127a,.device = 0x4310, 511 .vendor = 0x127a,.device = 0x4310,
512 .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID, 512 .subvendor = PCI_ANY_ID,.subdevice = PCI_ANY_ID,
diff --git a/sound/pci/rme32.c b/sound/pci/rme32.c
index 2e24b68d07aa..2a71499242fa 100644
--- a/sound/pci/rme32.c
+++ b/sound/pci/rme32.c
@@ -227,7 +227,7 @@ struct rme32 {
227 struct snd_kcontrol *spdif_ctl; 227 struct snd_kcontrol *spdif_ctl;
228}; 228};
229 229
230static struct pci_device_id snd_rme32_ids[] __devinitdata = { 230static struct pci_device_id snd_rme32_ids[] = {
231 {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32, 231 {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32,
232 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,}, 232 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0,},
233 {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8, 233 {PCI_VENDOR_ID_XILINX_RME, PCI_DEVICE_ID_RME_DIGI32_8,
diff --git a/sound/pci/rme96.c b/sound/pci/rme96.c
index fde0f3e20530..f8de7c997017 100644
--- a/sound/pci/rme96.c
+++ b/sound/pci/rme96.c
@@ -232,7 +232,7 @@ struct rme96 {
232 struct snd_kcontrol *spdif_ctl; 232 struct snd_kcontrol *spdif_ctl;
233}; 233};
234 234
235static struct pci_device_id snd_rme96_ids[] __devinitdata = { 235static struct pci_device_id snd_rme96_ids[] = {
236 { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96, 236 { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96,
237 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, 237 PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
238 { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8, 238 { PCI_VENDOR_ID_XILINX, PCI_DEVICE_ID_RME_DIGI96_8,
diff --git a/sound/pci/rme9652/hdsp.c b/sound/pci/rme9652/hdsp.c
index 99cf86244acb..e5a52da77b85 100644
--- a/sound/pci/rme9652/hdsp.c
+++ b/sound/pci/rme9652/hdsp.c
@@ -568,7 +568,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d
568} 568}
569 569
570 570
571static struct pci_device_id snd_hdsp_ids[] __devinitdata = { 571static struct pci_device_id snd_hdsp_ids[] = {
572 { 572 {
573 .vendor = PCI_VENDOR_ID_XILINX, 573 .vendor = PCI_VENDOR_ID_XILINX,
574 .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP, 574 .device = PCI_DEVICE_ID_XILINX_HAMMERFALL_DSP,
@@ -1356,7 +1356,7 @@ static struct snd_rawmidi_ops snd_hdsp_midi_input =
1356 .trigger = snd_hdsp_midi_input_trigger, 1356 .trigger = snd_hdsp_midi_input_trigger,
1357}; 1357};
1358 1358
1359static int __devinit snd_hdsp_create_midi (struct snd_card *card, struct hdsp *hdsp, int id) 1359static int snd_hdsp_create_midi (struct snd_card *card, struct hdsp *hdsp, int id)
1360{ 1360{
1361 char buf[32]; 1361 char buf[32];
1362 1362
diff --git a/sound/pci/rme9652/rme9652.c b/sound/pci/rme9652/rme9652.c
index 9534e1834138..fc15f61ad5d1 100644
--- a/sound/pci/rme9652/rme9652.c
+++ b/sound/pci/rme9652/rme9652.c
@@ -315,7 +315,7 @@ static void snd_hammerfall_free_buffer(struct snd_dma_buffer *dmab, struct pci_d
315} 315}
316 316
317 317
318static struct pci_device_id snd_rme9652_ids[] __devinitdata = { 318static struct pci_device_id snd_rme9652_ids[] = {
319 { 319 {
320 .vendor = 0x10ee, 320 .vendor = 0x10ee,
321 .device = 0x3fc4, 321 .device = 0x3fc4,
diff --git a/sound/pci/sonicvibes.c b/sound/pci/sonicvibes.c
index c4303418668b..e5d4def1aa6f 100644
--- a/sound/pci/sonicvibes.c
+++ b/sound/pci/sonicvibes.c
@@ -243,7 +243,7 @@ struct sonicvibes {
243#endif 243#endif
244}; 244};
245 245
246static struct pci_device_id snd_sonic_ids[] __devinitdata = { 246static struct pci_device_id snd_sonic_ids[] = {
247 { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, 247 { 0x5333, 0xca00, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, },
248 { 0, } 248 { 0, }
249}; 249};
diff --git a/sound/pci/trident/trident.c b/sound/pci/trident/trident.c
index 5629b7eba96d..9145f7c57fb0 100644
--- a/sound/pci/trident/trident.c
+++ b/sound/pci/trident/trident.c
@@ -63,7 +63,7 @@ MODULE_PARM_DESC(pcm_channels, "Number of hardware channels assigned for PCM.");
63module_param_array(wavetable_size, int, NULL, 0444); 63module_param_array(wavetable_size, int, NULL, 0444);
64MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth."); 64MODULE_PARM_DESC(wavetable_size, "Maximum memory size in kB for wavetable synth.");
65 65
66static struct pci_device_id snd_trident_ids[] __devinitdata = { 66static struct pci_device_id snd_trident_ids[] = {
67 {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX), 67 {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_DX),
68 PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0}, 68 PCI_CLASS_MULTIMEDIA_AUDIO << 8, 0xffff00, 0},
69 {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX), 69 {PCI_DEVICE(PCI_VENDOR_ID_TRIDENT, PCI_DEVICE_ID_TRIDENT_4DWAVE_NX),
diff --git a/sound/pci/via82xx.c b/sound/pci/via82xx.c
index 37bd5eb7a380..08da9234efb3 100644
--- a/sound/pci/via82xx.c
+++ b/sound/pci/via82xx.c
@@ -396,7 +396,7 @@ struct via82xx {
396#endif 396#endif
397}; 397};
398 398
399static struct pci_device_id snd_via82xx_ids[] __devinitdata = { 399static struct pci_device_id snd_via82xx_ids[] = {
400 /* 0x1106, 0x3058 */ 400 /* 0x1106, 0x3058 */
401 { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */ 401 { PCI_VENDOR_ID_VIA, PCI_DEVICE_ID_VIA_82C686_5, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA686, }, /* 686A */
402 /* 0x1106, 0x3059 */ 402 /* 0x1106, 0x3059 */
diff --git a/sound/pci/via82xx_modem.c b/sound/pci/via82xx_modem.c
index c1ede6c2a6d4..016f9dac253f 100644
--- a/sound/pci/via82xx_modem.c
+++ b/sound/pci/via82xx_modem.c
@@ -261,7 +261,7 @@ struct via82xx_modem {
261 struct snd_info_entry *proc_entry; 261 struct snd_info_entry *proc_entry;
262}; 262};
263 263
264static struct pci_device_id snd_via82xx_modem_ids[] __devinitdata = { 264static struct pci_device_id snd_via82xx_modem_ids[] = {
265 { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, }, 265 { 0x1106, 0x3068, PCI_ANY_ID, PCI_ANY_ID, 0, 0, TYPE_CARD_VIA82XX_MODEM, },
266 { 0, } 266 { 0, }
267}; 267};
diff --git a/sound/pci/vx222/vx222.c b/sound/pci/vx222/vx222.c
index 7deda25f7adc..9c03c6b4e490 100644
--- a/sound/pci/vx222/vx222.c
+++ b/sound/pci/vx222/vx222.c
@@ -60,7 +60,7 @@ enum {
60 VX_PCI_VX222_NEW 60 VX_PCI_VX222_NEW
61}; 61};
62 62
63static struct pci_device_id snd_vx222_ids[] __devinitdata = { 63static struct pci_device_id snd_vx222_ids[] = {
64 { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */ 64 { 0x10b5, 0x9050, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_OLD, }, /* PLX */
65 { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */ 65 { 0x10b5, 0x9030, 0x1369, PCI_ANY_ID, 0, 0, VX_PCI_VX222_NEW, }, /* PLX */
66 { 0, } 66 { 0, }
diff --git a/sound/pci/ymfpci/ymfpci.c b/sound/pci/ymfpci/ymfpci.c
index 26aa775b7b69..186453f7abe7 100644
--- a/sound/pci/ymfpci/ymfpci.c
+++ b/sound/pci/ymfpci/ymfpci.c
@@ -70,7 +70,7 @@ MODULE_PARM_DESC(rear_switch, "Enable shared rear/line-in switch");
70module_param_array(rear_swap, bool, NULL, 0444); 70module_param_array(rear_swap, bool, NULL, 0444);
71MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output"); 71MODULE_PARM_DESC(rear_swap, "Swap rear channels (must be enabled for correct IEC958 (S/PDIF)) output");
72 72
73static struct pci_device_id snd_ymfpci_ids[] __devinitdata = { 73static struct pci_device_id snd_ymfpci_ids[] = {
74 { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */ 74 { 0x1073, 0x0004, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724 */
75 { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */ 75 { 0x1073, 0x000d, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF724F */
76 { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */ 76 { 0x1073, 0x000a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0, }, /* YMF740 */
diff --git a/sound/pcmcia/pdaudiocf/pdaudiocf.c b/sound/pcmcia/pdaudiocf/pdaudiocf.c
index adfdce7499d1..1c09e5f49da8 100644
--- a/sound/pcmcia/pdaudiocf/pdaudiocf.c
+++ b/sound/pcmcia/pdaudiocf/pdaudiocf.c
@@ -241,12 +241,13 @@ static int pdacf_config(struct pcmcia_device *link)
241 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, parse)); 241 CS_CHECK(ParseTuple, pcmcia_parse_tuple(link, &tuple, parse));
242 link->conf.ConfigBase = parse->config.base; 242 link->conf.ConfigBase = parse->config.base;
243 link->conf.ConfigIndex = 0x5; 243 link->conf.ConfigIndex = 0x5;
244 kfree(parse);
245 244
246 CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io)); 245 CS_CHECK(RequestIO, pcmcia_request_io(link, &link->io));
247 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq)); 246 CS_CHECK(RequestIRQ, pcmcia_request_irq(link, &link->irq));
248 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf)); 247 CS_CHECK(RequestConfiguration, pcmcia_request_configuration(link, &link->conf));
249 248
249 kfree(parse);
250
250 if (snd_pdacf_assign_resources(pdacf, link->io.BasePort1, link->irq.AssignedIRQ) < 0) 251 if (snd_pdacf_assign_resources(pdacf, link->io.BasePort1, link->irq.AssignedIRQ) < 0)
251 goto failed; 252 goto failed;
252 253
@@ -254,6 +255,7 @@ static int pdacf_config(struct pcmcia_device *link)
254 return 0; 255 return 0;
255 256
256cs_failed: 257cs_failed:
258 kfree(parse);
257 cs_error(link, last_fn, last_ret); 259 cs_error(link, last_fn, last_ret);
258failed: 260failed:
259 pcmcia_disable_device(link); 261 pcmcia_disable_device(link);